第3章 管道符、重定向与环境变量

引言

与文件读写操作有关的重定向技术的5种模式:
- 标准覆盖输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
- 标准追加输出重定向
- 错误覆盖输出重定向(STDERR,文件描述符为2):默认输出到屏幕
- 错误追加输出重定向
- 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或命令行输入

3.1输入输出重定向

输入重定向 是指把文件导入到命令中
输出重定向 是指把原本要输出到屏幕的数据信息写入到指定文件中 (日常使用频率高)

表3-1 输入重定向种用到的符号及其作用

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入种读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2

表3-2 输出重定向种用到的符号及其作用

符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 或 命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有的内容后面)

练习

  • 标准输出重定向:
[root@ecs-7af6 ~]# man bash 

以上命令代表在屏幕中查看bash命令的帮助文档

[root@ecs-7af6 ~]# man bash > readme.txt
[root@ecs-7af6 ~]# head -n 10 readme.txt
BASH(1)                                                                    General Commands Manual                                                                   BASH(1)



NAME
       bash - GNU Bourne-Again SHell

SYNOPSIS
       bash [options] [file]

[root@ecs-7af6 ~]#

以上命令中符号“ > ” 指将原本要在屏幕上打印的bash命令帮助文档写入到readme.txt文档中,且先清空readme.txt文档;
然后用head命令提取readme.txt文档顶部10行,看是否真的写入进去了。
(个人理解) > :箭头所指方向,箭头朝向文件就是输入到文件,箭头朝向命令,则输入到命令中

[root@ecs-7af6 ~]# echo "追加内容到文本中" >> readme.txt
[root@ecs-7af6 ~]# tail -10 readme.txt
       may be stopped as a unit.

       Array variables may not (yet) be exported.

       There may be only one active coprocess at a time.



GNU Bash-4.2                                                                  2010 December 28                                                                       BASH(1)
追加内容到文本中
[root@ecs-7af6 ~]#

以上符号">>"则是把应在屏幕中打印的信息追加readme.txt文档中;用tail命令查看该文档后10行的效果就知道是否已经追加

  • 错误输出重定向:
[root@ecs-7af6 ~]# ls -l readme.txt
-rw-r--r-- 1 root root 287057 Mar 23 12:57 readme.txt
[root@ecs-7af6 ~]# ls -l readme.txt > /root/stderr.txt
[root@ecs-7af6 ~]# cat stderr.txt
-rw-r--r-- 1 root root 287057 Mar 23 12:57 readme.txt
[root@ecs-7af6 ~]# ls -l readme.txt 2> stderr.txt
-rw-r--r-- 1 root root 287057 Mar 23 12:57 readme.txt
[root@ecs-7af6 ~]# cat stderr.txt
[root@ecs-7af6 ~]#

以上示例是说明查看一个真实存在的readme.txt文件详情时,用“>”符号把打印在屏幕上的文件详情写入到stderr.txt文件中,然后再以“2>”把打印再屏幕上的错误信息写入到stderr.txt文件中(且先清空了原有数据),因stderr.txt文件确实存在,所以没有错误信息,而是先清空在写入,没得东西写入,自然 cat命令打出来就没得东西。
下面一个示例,是一个不存在文件来试一下错误信息的写入到文件中:

[root@ecs-7af6 ~]# pwd
/root
[root@ecs-7af6 ~]# ls -a
.   .bash_history  .bash_profile  .cache        caixuan.txt  .history  .mysql_history   .oracle_jre_usage  readme.txt  stderr.txt  test_txt.txt
..  .bash_logout   .bashrc        caixuan2.txt  .cshrc       .lesshst  nologin_txt.txt  .pki               .ssh        .tcshrc     .viminfo
[root@ecs-7af6 ~]# ls -l 123456.txt
ls: cannot access 123456.txt: No such file or directory
[root@ecs-7af6 ~]# cat stderr.txt
[root@ecs-7af6 ~]# ls -l 123456.txt 2> stderr.txt
[root@ecs-7af6 ~]# cat stderr.txt
ls: cannot access 123456.txt: No such file or directory
[root@ecs-7af6 ~]#

从上面看出当第一次执行“ls -l 123456.txt”命令时,有执行命令后的“ls: cannot access 123456.txt: No such file or directory”的错误信息打印在屏幕上,“2>”符号则把这条错误信息写入到了stderr.txt文件中。

  • 标准输入重定向(使用得少):
[root@ecs-7af6 ~]# wc -l readme.txt
3320 readme.txt
[root@ecs-7af6 ~]# wc -l < readme.txt
3320
[root@ecs-7af6 ~]# wc -l readme.txt >> stdin.txt
[root@ecs-7af6 ~]# cat stdin.txt
3320 readme.txt
[root@ecs-7af6 ~]# wc -l < readme.txt >> stdin.txt
[root@ecs-7af6 ~]# cat stdin.txt
3320 readme.txt
3320
[root@ecs-7af6 ~]#

以上符号“<”,把文件直接导入到命令中,以上例子就是把readme.txt文件导入给 wc -l 命令,统计一下文件中的内容行数 ,从上看出,同一个命令不同的组合使用,结果会不一样,实践出真知。

[root@ecs-7af6 ~]# wc -l readme.txt
3320 readme.txt
[root@ecs-7af6 ~]# wc -l < readme.txt
3320
[root@ecs-7af6 ~]# cat readme.txt | wc -l 
3320
[root@ecs-7af6 ~]#

命令“ wc -l < readme.txt”与“cat readme.txt | wc -l”一样
以上记录日期 2019.03.23 周六

3.2管道符

管道符的作用:把前一个命令原本要输出到屏幕的标准正常数据当作是最后一个命令的标准输入。
[root@ecs-7af6 ~]# cat -n /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    18  ntp:x:38:38::/etc/ntp:/sbin/nologin
    19  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    20  tcpdump:x:72:72::/:/sbin/nologin
    21  mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
    22  nginx:x:998:996:nginx user:/var/cache/nginx:/sbin/nologin
[root@ecs-7af6 ~]#
[root@ecs-7af6 ~]# grep "/sbin/nologin" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nginx:x:998:996:nginx user:/var/cache/nginx:/sbin/nologin
[root@ecs-7af6 ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nginx:x:998:996:nginx user:/var/cache/nginx:/sbin/nologin
[root@ecs-7af6 ~]# grep /sbin/nologin /etc/passwd | wc -l
17
[root@ecs-7af6 ~]#
以上grep命令行,发现需要查找的字符,可以不打双引号,效果一样。

用翻页的形式查看/etc/目录中的文件列表及属性信息:

[root@ecs-7af6 ~]# ls -l /etc/
total 1344
-rw-r--r--.  1 root root     16 Dec  2 12:17 adjtime
-rw-r--r--.  1 root root   1518 Jun  7  2013 aliases
-rw-r--r--   1 root root  12288 Dec  2 12:18 aliases.db
drwxr-xr-x.  2 root root   4096 Mar 12 21:55 alternatives
-rw-------.  1 root root    541 Apr 11  2018 anacrontab
-rw-r--r--.  1 root root     55 Apr 11  2018 asound.conf
-rw-r--r--.  1 root root      1 Apr 11  2018 at.deny
drwxr-x---.  3 root root   4096 Dec  2 12:21 audisp
drwxr-x---.  3 root root   4096 Dec  2 12:21 audit
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 bash_completion.d
-rw-r--r--.  1 root root   2853 Apr 11  2018 bashrc
drwxr-xr-x.  2 root root   4096 Sep 27 03:11 binfmt.d
-rw-r--r--.  1 root root     38 Apr 29  2018 centos-release
-rw-r--r--.  1 root root     51 Apr 29  2018 centos-release-upstream
drwxr-xr-x.  2 root root   4096 Aug  4  2017 chkconfig.d
drwxr-xr-x   4 root root   4096 Dec  2 12:22 cloud
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 cron.d
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.daily
-rw-------.  1 root root      0 Apr 11  2018 cron.deny
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 cron.hourly
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.monthly
-rw-r--r--.  1 root root    451 Jun 10  2014 crontab
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.weekly
-rw-------.  1 root root      0 Dec  2 12:14 crypttab
-rw-r--r--.  1 root root   1620 Apr 11  2018 csh.cshrc
-rw-r--r--.  1 root root    866 Apr 11  2018 csh.login
drwxr-xr-x.  4 root root   4096 Dec  2 12:15 dbus-1
drwxr-xr-x.  2 root root   4096 Dec  2 12:21 default
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 depmod.d
drwxr-x---.  4 root root   4096 May 15  2018 dhcp
-rw-r--r--.  1 root root   5090 Apr 11  2018 DIR_COLORS
-rw-r--r--.  1 root root   5725 Apr 11  2018 DIR_COLORS.256color
-rw-r--r--.  1 root root   4669 Apr 11  2018 DIR_COLORS.lightbgcolor
-rw-r--r--   1 root root   1285 Aug 16  2018 dracut.conf
drwxr-xr-x.  2 root root   4096 Aug 16  2018 dracut.conf.d
-rw-r--r--   1 root root    112 May 14  2018 e2fsck.conf
-rw-r--r--.  1 root root      0 Apr 11  2018 environment
-rw-r--r--.  1 root root   1317 Apr 11  2018 ethertypes
-rw-r--r--.  1 root root      0 Jun  7  2013 exports
lrwxrwxrwx.  1 root root     56 Dec  2 12:15 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
-rw-r--r--.  1 root root     70 Apr 11  2018 filesystems
drwxr-x---.  7 root root   4096 Dec  2 12:21 firewalld
-rw-r--r--.  1 root root    313 Dec  2 12:14 fstab
drwxr-xr-x.  2 root root   4096 Aug  2  2017 gcrypt
-rw-r--r--.  1 root root    842 Nov  6  2016 GeoIP.conf
-rw-r--r--.  1 root root    858 Nov  6  2016 GeoIP.conf.default
drwxr-xr-x.  2 root root   4096 Jul 13  2018 gnupg
-rw-r--r--.  1 root root     94 Mar 25  2017 GREP_COLORS
drwxr-xr-x.  4 root root   4096 Dec  2 12:15 groff
-rw-r--r--   1 root root    484 Mar 20 10:15 group
-rw-r--r--.  1 root root    471 Mar 12 22:54 group-
lrwxrwxrwx.  1 root root     22 Dec  2 12:15 grub2.cfg -> ../boot/grub2/grub.cfg
drwx------.  2 root root   4096 Dec  2 12:16 grub.d
----------   1 root root    385 Mar 20 10:15 gshadow
----------.  1 root root    375 Mar 12 22:54 gshadow-
drwxr-xr-x.  3 root root   4096 May  9  2018 gss
-rw-r--r--.  1 root root      9 Jun  7  2013 host.conf
-rw-r--r--   1 root root      9 Mar 12 11:41 hostname
-rw-r--r--.  1 root root    177 Mar 12 11:41 hosts
-rw-r--r--.  1 root root    370 Jun  7  2013 hosts.allow
-rw-r--r--   1 root root    460 Mar 23 01:21 hosts.deny
-rw-r--r--   1 root root    460 Mar 25 08:43 hosts.deny.purge.bak
lrwxrwxrwx.  1 root root     11 Dec  2 12:14 init.d -> rc.d/init.d
-rw-r--r--.  1 root root    511 Apr 11  2018 inittab
-rw-r--r--.  1 root root    942 Jun  7  2013 inputrc
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 iproute2
-rw-r--r--.  1 root root     23 Apr 29  2018 issue
-rw-r--r--.  1 root root     22 Apr 29  2018 issue.net
-rw-r--r--   1 root root   7265 Dec  2 12:21 kdump.conf
drwxr-xr-x.  3 root root   4096 Dec  2 12:15 kernel
-rw-r--r--   1 root root    590 Apr 11  2018 krb5.conf
drwxr-xr-x.  2 root root   4096 May  9  2018 krb5.conf.d
-rw-r--r--   1 root root  19644 Mar 12 22:54 ld.so.cache
-rw-r--r--.  1 root root     28 Feb 28  2013 ld.so.conf
drwxr-xr-x.  2 root root   4096 Mar 12 22:54 ld.so.conf.d
-rw-r-----   1 root root    191 Oct 12  2017 libaudit.conf
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 libnl
-rw-r--r--.  1 root root   2391 Oct 13  2013 libuser.conf
-rw-r--r--.  1 root root     17 Mar 12 11:41 locale.conf
lrwxrwxrwx.  1 root root     35 Dec  2 12:17 localtime -> ../usr/share/zoneinfo/Asia/Shanghai
-rw-r--r--.  1 root root   2028 Nov  5  2016 login.defs
-rw-r--r--.  1 root root    662 Jul 31  2013 logrotate.conf
drwxr-xr-x.  2 root root   4096 Mar 20 10:15 logrotate.d
-r--r--r--.  1 root root     33 Dec  2 12:15 machine-id
-rw-r--r--.  1 root root    111 Nov  6  2016 magic
-rw-r--r--.  1 root root   1968 Apr 11  2018 mail.rc
-rw-r--r--   1 root root   5122 Sep 27 02:29 makedumpfile.conf.sample
-rw-r--r--.  1 root root   5171 Jun 10  2014 man_db.conf
-rw-r--r--   1 root root    936 May 16  2018 mke2fs.conf
drwxr-xr-x.  2 root root   4096 Dec  2 12:21 modprobe.d
drwxr-xr-x.  2 root root   4096 Sep 27 03:11 modules-load.d
-rw-r--r--.  1 root root     36 Dec  2 12:22 motd
lrwxrwxrwx.  1 root root     17 Dec  2 12:14 mtab -> /proc/self/mounts
-rw-r--r--   1 root root   1243 Jan 26 07:06 my.cnf
drwxr-xr-x   2 root root   4096 Jan 26 07:06 my.cnf.d
drwxr-xr-x.  7 root root   4096 Dec  2 12:20 NetworkManager
-rw-r--r--.  1 root root     58 Apr 11  2018 networks
drwxr-xr-x   3 root root   4096 Mar 20 10:15 nginx
-rw-r--r--.  1 root root   1746 Dec  2 12:15 nsswitch.conf
-rw-r--r--.  1 root root   1735 Apr 10  2018 nsswitch.conf.bak
drwxr-xr-x.  3 root root   4096 Dec  2 12:15 ntp
-rw-r--r--.  1 root root    501 Dec  2 12:22 ntp.conf
drwxr-xr-x.  3 root root   4096 Dec  2 12:20 openldap
drwxr-xr-x.  2 root root   4096 Apr 11  2018 opt
-rw-r--r--.  1 root root    393 Apr 29  2018 os-release
drwxr-xr-x.  2 root root   4096 Mar 12 21:55 pam.d
-rw-r--r--   1 root root    978 Mar 20 10:15 passwd
-rw-r--r--.  1 root root    920 Mar 12 22:54 passwd-
drwxr-xr-x.  3 root root   4096 Dec  2 12:15 pkcs11
drwxr-xr-x. 10 root root   4096 Dec  2 12:15 pki
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 plymouth
drwxr-xr-x.  5 root root   4096 Dec  2 12:15 pm
drwxr-xr-x.  5 root root   4096 Dec  2 12:15 polkit-1
drwxr-xr-x.  2 root root   4096 Jun 10  2014 popt.d
drwxr-xr-x.  3 root root   4096 Dec  2 12:15 ppp
drwxr-xr-x.  2 root root   4096 Dec  2 12:20 prelink.conf.d
-rw-r--r--.  1 root root    233 Jun  7  2013 printcap
-rw-r--r--.  1 root root   1819 Apr 11  2018 profile
drwxr-xr-x.  2 root root   4096 Dec  2 12:22 profile.d
-rw-r--r--.  1 root root   6545 Jun  7  2013 protocols
drwxr-xr-x.  2 root root   4096 Dec  2 12:20 python
drwxr-xr-x.  3 root root   4096 Dec  2 12:21 qemu-ga
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc0.d -> rc.d/rc0.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc1.d -> rc.d/rc1.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc2.d -> rc.d/rc2.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc3.d -> rc.d/rc3.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc4.d -> rc.d/rc4.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc5.d -> rc.d/rc5.d
lrwxrwxrwx.  1 root root     10 Dec  2 12:14 rc6.d -> rc.d/rc6.d
drwxr-xr-x. 10 root root   4096 Dec  2 12:20 rc.d
lrwxrwxrwx   1 root root     13 Dec  2 12:20 rc.local -> rc.d/rc.local
lrwxrwxrwx.  1 root root     14 Dec  2 12:15 redhat-release -> centos-release
-rw-r--r--   1 root root    103 Mar 17 09:15 resolv.conf
-rw-r--r--.  1 root root   1634 Dec 25  2012 rpc
drwxr-xr-x.  2 root root   4096 Apr 11  2018 rpm
-rw-r--r--   1 root root   3232 May 14  2018 rsyslog.conf
drwxr-xr-x.  2 root root   4096 May 16  2018 rsyslog.d
-rw-r--r--.  1 root root    966 Apr 11  2018 rwtab
drwxr-xr-x.  2 root root   4096 Apr 11  2018 rwtab.d
drwxr-xr-x.  2 root root   4096 Mar 12 21:55 sasl2
-rw-------.  1 root root    221 Apr 11  2018 securetty
drwxr-xr-x.  6 root root   4096 Dec  2 12:15 security
drwxr-xr-x.  5 root root   4096 Aug 17  2018 selinux
-rw-r--r--.  1 root root 670293 Jun  7  2013 services
-rw-r--r--.  1 root root    216 Apr 12  2018 sestatus.conf
----------   1 root root    651 Mar 20 10:15 shadow
----------.  1 root root    630 Mar 12 22:54 shadow-
-rw-r--r--.  1 root root     76 Jun  7  2013 shells
drwxr-xr-x.  2 root root   4096 Apr 11  2018 skel
drwxr-xr-x.  2 root root   4096 Mar 12 11:41 ssh
drwxr-xr-x.  2 root root   4096 Dec  2 12:21 ssl
-rw-r--r--.  1 root root    212 Apr 11  2018 statetab
drwxr-xr-x.  2 root root   4096 Apr 11  2018 statetab.d
-rw-r--r--.  1 root root      0 Apr 11  2018 subgid
-rw-r--r--.  1 root root      0 Apr 11  2018 subuid
-rw-r-----   1 root root   1786 Jun 27  2018 sudo.conf
-r--r-----   1 root root   3938 Jun 27  2018 sudoers
drwxr-x---.  2 root root   4096 Jun 28  2018 sudoers.d
-rw-r-----   1 root root   3181 Jun 27  2018 sudo-ldap.conf
drwxr-xr-x.  6 root root   4096 Mar 20 10:15 sysconfig
-rw-r--r--.  1 root root    449 Apr 11  2018 sysctl.conf
drwxr-xr-x.  2 root root   4096 Sep 27 03:11 sysctl.d
drwxr-xr-x.  4 root root   4096 Dec  2 12:20 systemd
lrwxrwxrwx.  1 root root     14 Dec  2 12:15 system-release -> centos-release
-rw-r--r--.  1 root root     23 Apr 29  2018 system-release-cpe
drwxr-xr-x.  2 root root   4096 Sep  7  2017 terminfo
drwxr-xr-x.  2 root root   4096 Sep 27 03:11 tmpfiles.d
drwxr-xr-x.  3 root root   4096 Dec  2 12:21 tuned
drwxr-xr-x.  3 root root   4096 Dec  2 12:20 udev
-rw-r--r--.  1 root root     37 Dec  2 12:17 vconsole.conf
-rw-r--r--.  1 root root   1982 Apr 11  2018 vimrc
-rw-r--r--.  1 root root   1982 Apr 11  2018 virc
-rw-r--r--.  1 root root   4479 Oct 27  2017 wgetrc
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 wpa_supplicant
drwxr-xr-x.  5 root root   4096 Dec  2 12:15 X11
drwxr-xr-x.  4 root root   4096 Dec  2 12:15 xdg
drwxr-xr-x.  2 root root   4096 Apr 11  2018 xinetd.d
drwxr-xr-x.  6 root root   4096 Dec  2 12:15 yum
-rw-r--r--.  1 root root    970 Apr 13  2018 yum.conf
drwxr-xr-x.  2 root root   4096 Mar 12 22:17 yum.repos.d
[root@ecs-7af6 ~]# ls -l /etc/ | more
total 1344
-rw-r--r--.  1 root root     16 Dec  2 12:17 adjtime
-rw-r--r--.  1 root root   1518 Jun  7  2013 aliases
-rw-r--r--   1 root root  12288 Dec  2 12:18 aliases.db
drwxr-xr-x.  2 root root   4096 Mar 12 21:55 alternatives
-rw-------.  1 root root    541 Apr 11  2018 anacrontab
-rw-r--r--.  1 root root     55 Apr 11  2018 asound.conf
-rw-r--r--.  1 root root      1 Apr 11  2018 at.deny
drwxr-x---.  3 root root   4096 Dec  2 12:21 audisp
drwxr-x---.  3 root root   4096 Dec  2 12:21 audit
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 bash_completion.d
-rw-r--r--.  1 root root   2853 Apr 11  2018 bashrc
drwxr-xr-x.  2 root root   4096 Sep 27 03:11 binfmt.d
-rw-r--r--.  1 root root     38 Apr 29  2018 centos-release
-rw-r--r--.  1 root root     51 Apr 29  2018 centos-release-upstream
drwxr-xr-x.  2 root root   4096 Aug  4  2017 chkconfig.d
drwxr-xr-x   4 root root   4096 Dec  2 12:22 cloud
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 cron.d
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.daily
-rw-------.  1 root root      0 Apr 11  2018 cron.deny
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 cron.hourly
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.monthly
-rw-r--r--.  1 root root    451 Jun 10  2014 crontab
drwxr-xr-x.  2 root root   4096 Jun 10  2014 cron.weekly
-rw-------.  1 root root      0 Dec  2 12:14 crypttab
-rw-r--r--.  1 root root   1620 Apr 11  2018 csh.cshrc
-rw-r--r--.  1 root root    866 Apr 11  2018 csh.login
drwxr-xr-x.  4 root root   4096 Dec  2 12:15 dbus-1
drwxr-xr-x.  2 root root   4096 Dec  2 12:21 default
drwxr-xr-x.  2 root root   4096 Dec  2 12:15 depmod.d
drwxr-x---.  4 root root   4096 May 15  2018 dhcp
-rw-r--r--.  1 root root   5090 Apr 11  2018 DIR_COLORS
-rw-r--r--.  1 root root   5725 Apr 11  2018 DIR_COLORS.256color
-rw-r--r--.  1 root root   4669 Apr 11  2018 DIR_COLORS.lightbgcolor
-rw-r--r--   1 root root   1285 Aug 16  2018 dracut.conf
drwxr-xr-x.  2 root root   4096 Aug 16  2018 dracut.conf.d
-rw-r--r--   1 root root    112 May 14  2018 e2fsck.conf
-rw-r--r--.  1 root root      0 Apr 11  2018 environment
-rw-r--r--.  1 root root   1317 Apr 11  2018 ethertypes
-rw-r--r--.  1 root root      0 Jun  7  2013 exports
lrwxrwxrwx.  1 root root     56 Dec  2 12:15 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
-rw-r--r--.  1 root root     70 Apr 11  2018 filesystems
drwxr-x---.  7 root root   4096 Dec  2 12:21 firewalld
-rw-r--r--.  1 root root    313 Dec  2 12:14 fstab
drwxr-xr-x.  2 root root   4096 Aug  2  2017 gcrypt
-rw-r--r--.  1 root root    842 Nov  6  2016 GeoIP.conf
-rw-r--r--.  1 root root    858 Nov  6  2016 GeoIP.conf.default
drwxr-xr-x.  2 root root   4096 Jul 13  2018 gnupg
-rw-r--r--.  1 root root     94 Mar 25  2017 GREP_COLORS
drwxr-xr-x.  4 root root   4096 Dec  2 12:15 groff
-rw-r--r--   1 root root    484 Mar 20 10:15 group
-rw-r--r--.  1 root root    471 Mar 12 22:54 group-
lrwxrwxrwx.  1 root root     22 Dec  2 12:15 grub2.cfg -> ../boot/grub2/grub.cfg
drwx------.  2 root root   4096 Dec  2 12:16 grub.d
----------   1 root root    385 Mar 20 10:15 gshadow
----------.  1 root root    375 Mar 12 22:54 gshadow-
drwxr-xr-x.  3 root root   4096 May  9  2018 gss
-rw-r--r--.  1 root root      9 Jun  7  2013 host.conf
--More--

以上命令行中敲击空格键,则往下翻页。

任意门:命令A | 命令B | 命令C | 命令D 

3.3命令行的通配符

通配符就是通用的匹配信息的符号,比如:
星号(*)代表:匹配零个或多个字符
问好(?)代表:匹配单个字符
中括号([0-9])代表:内加上数字[0-9]代表0~9之间的单个数字的字符
中括号([a-z])代表:内加上字母[a-z]代表a至z中的任意一个字符
[root@ecs-7af6 ~]# ls -l /dev
total 0
crw------- 1 root root     10, 235 Mar 17 09:15 autofs
drwxr-xr-x 2 root root         100 Mar 17 09:15 block
crw------- 1 root root     10, 234 Mar 17 09:15 btrfs-control
drwxr-xr-x 3 root root          60 Mar 17 09:15 bus
drwxr-xr-x 2 root root        2720 Mar 17 09:15 char
crw------- 1 root root      5,   1 Mar 17 09:16 console
lrwxrwxrwx 1 root root          11 Mar 17 09:15 core -> /proc/kcore
drwxr-xr-x 4 root root          80 Mar 17 09:15 cpu
crw------- 1 root root     10,  61 Mar 17 09:15 cpu_dma_latency
crw------- 1 root root     10,  62 Mar 17 09:15 crash
drwxr-xr-x 5 root root         100 Mar 17 09:15 disk
drwxr-xr-x 2 root root          60 Mar 17 09:15 dri
crw-rw---- 1 root video    29,   0 Mar 17 09:15 fb0
lrwxrwxrwx 1 root root          13 Mar 17 09:15 fd -> /proc/self/fd
crw-rw-rw- 1 root root      1,   7 Mar 17 09:15 full
crw-rw-rw- 1 root root     10, 229 Mar 17 09:15 fuse
crw------- 1 root root    246,   0 Mar 17 09:15 hidraw0
crw------- 1 root root     10, 228 Mar 17 09:15 hpet
drwxr-xr-x 2 root root           0 Mar 17 09:15 hugepages
crw------- 1 root root     10, 183 Mar 17 09:15 hwrng
lrwxrwxrwx 1 root root          25 Mar 17 09:15 initctl -> /run/systemd/initctl/fifo
drwxr-xr-x 4 root root         320 Mar 17 09:15 input
crw-r--r-- 1 root root      1,  11 Mar 17 09:15 kmsg
srw-rw-rw- 1 root root           0 Mar 17 09:15 log
crw-rw---- 1 root disk     10, 237 Mar 17 09:15 loop-control
drwxr-xr-x 2 root root          60 Mar 17 09:15 mapper
crw------- 1 root root     10, 227 Mar 17 09:15 mcelog
crw-r----- 1 root kmem      1,   1 Mar 17 09:15 mem
drwxrwxrwt 2 root root          40 Mar 17 09:15 mqueue
drwxr-xr-x 2 root root          60 Mar 17 09:15 net
crw------- 1 root root     10,  60 Mar 17 09:15 network_latency
crw------- 1 root root     10,  59 Mar 17 09:15 network_throughput
crw-rw-rw- 1 root root      1,   3 Mar 17 09:15 null
crw------- 1 root root     10, 144 Mar 17 09:15 nvram
crw------- 1 root root      1,  12 Mar 17 09:15 oldmem
crw-r----- 1 root kmem      1,   4 Mar 17 09:15 port
crw------- 1 root root    108,   0 Mar 17 09:15 ppp
crw-rw-rw- 1 root tty       5,   2 Mar 25 09:22 ptmx
drwxr-xr-x 2 root root           0 Mar 17 09:15 pts
crw-rw-rw- 1 root root      1,   8 Mar 17 09:15 random
drwxr-xr-x 2 root root          60 Mar 17 09:15 raw
lrwxrwxrwx 1 root root           4 Mar 17 09:15 rtc -> rtc0
crw------- 1 root root    252,   0 Mar 17 09:15 rtc0
drwxrwxrwt 2 root root          40 Mar 17 09:15 shm
crw------- 1 root root     10, 231 Mar 17 09:15 snapshot
drwxr-xr-x 2 root root          80 Mar 17 09:15 snd
lrwxrwxrwx 1 root root          15 Mar 17 09:15 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root          15 Mar 17 09:15 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root          15 Mar 17 09:15 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root tty       5,   0 Mar 17 09:15 tty
crw--w---- 1 root tty       4,   0 Mar 17 09:15 tty0
crw--w---- 1 root tty       4,   1 Mar 17 09:16 tty1
crw--w---- 1 root tty       4,  10 Mar 17 09:15 tty10
crw--w---- 1 root tty       4,  11 Mar 17 09:15 tty11
crw--w---- 1 root tty       4,  12 Mar 17 09:15 tty12
crw--w---- 1 root tty       4,  13 Mar 17 09:15 tty13
crw--w---- 1 root tty       4,  14 Mar 17 09:15 tty14
crw--w---- 1 root tty       4,  15 Mar 17 09:15 tty15
crw--w---- 1 root tty       4,  16 Mar 17 09:15 tty16
crw--w---- 1 root tty       4,  17 Mar 17 09:15 tty17
crw--w---- 1 root tty       4,  18 Mar 17 09:15 tty18
crw--w---- 1 root tty       4,  19 Mar 17 09:15 tty19
crw--w---- 1 root tty       4,   2 Mar 17 09:15 tty2
crw--w---- 1 root tty       4,  20 Mar 17 09:15 tty20
crw--w---- 1 root tty       4,  21 Mar 17 09:15 tty21
crw--w---- 1 root tty       4,  22 Mar 17 09:15 tty22
crw--w---- 1 root tty       4,  23 Mar 17 09:15 tty23
crw--w---- 1 root tty       4,  24 Mar 17 09:15 tty24
crw--w---- 1 root tty       4,  25 Mar 17 09:15 tty25
crw--w---- 1 root tty       4,  26 Mar 17 09:15 tty26
crw--w---- 1 root tty       4,  27 Mar 17 09:15 tty27
crw--w---- 1 root tty       4,  28 Mar 17 09:15 tty28
crw--w---- 1 root tty       4,  29 Mar 17 09:15 tty29
crw--w---- 1 root tty       4,   3 Mar 17 09:15 tty3
crw--w---- 1 root tty       4,  30 Mar 17 09:15 tty30
crw--w---- 1 root tty       4,  31 Mar 17 09:15 tty31
crw--w---- 1 root tty       4,  32 Mar 17 09:15 tty32
crw--w---- 1 root tty       4,  33 Mar 17 09:15 tty33
crw--w---- 1 root tty       4,  34 Mar 17 09:15 tty34
crw--w---- 1 root tty       4,  35 Mar 17 09:15 tty35
crw--w---- 1 root tty       4,  36 Mar 17 09:15 tty36
crw--w---- 1 root tty       4,  37 Mar 17 09:15 tty37
crw--w---- 1 root tty       4,  38 Mar 17 09:15 tty38
crw--w---- 1 root tty       4,  39 Mar 17 09:15 tty39
crw--w---- 1 root tty       4,   4 Mar 17 09:15 tty4
crw--w---- 1 root tty       4,  40 Mar 17 09:15 tty40
crw--w---- 1 root tty       4,  41 Mar 17 09:15 tty41
crw--w---- 1 root tty       4,  42 Mar 17 09:15 tty42
crw--w---- 1 root tty       4,  43 Mar 17 09:15 tty43
crw--w---- 1 root tty       4,  44 Mar 17 09:15 tty44
crw--w---- 1 root tty       4,  45 Mar 17 09:15 tty45
crw--w---- 1 root tty       4,  46 Mar 17 09:15 tty46
crw--w---- 1 root tty       4,  47 Mar 17 09:15 tty47
crw--w---- 1 root tty       4,  48 Mar 17 09:15 tty48
crw--w---- 1 root tty       4,  49 Mar 17 09:15 tty49
crw--w---- 1 root tty       4,   5 Mar 17 09:15 tty5
crw--w---- 1 root tty       4,  50 Mar 17 09:15 tty50
crw--w---- 1 root tty       4,  51 Mar 17 09:15 tty51
crw--w---- 1 root tty       4,  52 Mar 17 09:15 tty52
crw--w---- 1 root tty       4,  53 Mar 17 09:15 tty53
crw--w---- 1 root tty       4,  54 Mar 17 09:15 tty54
crw--w---- 1 root tty       4,  55 Mar 17 09:15 tty55
crw--w---- 1 root tty       4,  56 Mar 17 09:15 tty56
crw--w---- 1 root tty       4,  57 Mar 17 09:15 tty57
crw--w---- 1 root tty       4,  58 Mar 17 09:15 tty58
crw--w---- 1 root tty       4,  59 Mar 17 09:15 tty59
crw--w---- 1 root tty       4,   6 Mar 17 09:15 tty6
crw--w---- 1 root tty       4,  60 Mar 17 09:15 tty60
crw--w---- 1 root tty       4,  61 Mar 17 09:15 tty61
crw--w---- 1 root tty       4,  62 Mar 17 09:15 tty62
crw--w---- 1 root tty       4,  63 Mar 17 09:15 tty63
crw--w---- 1 root tty       4,   7 Mar 17 09:15 tty7
crw--w---- 1 root tty       4,   8 Mar 17 09:15 tty8
crw--w---- 1 root tty       4,   9 Mar 17 09:15 tty9
crw-rw---- 1 root dialout   4,  64 Mar 17 09:15 ttyS0
crw-rw---- 1 root dialout   4,  65 Mar 17 09:15 ttyS1
crw-rw---- 1 root dialout   4,  66 Mar 17 09:15 ttyS2
crw-rw---- 1 root dialout   4,  67 Mar 17 09:15 ttyS3
crw------- 1 root root     10, 239 Mar 17 09:15 uhid
crw------- 1 root root     10, 223 Mar 17 09:15 uinput
crw-rw-rw- 1 root root      1,   9 Mar 17 09:15 urandom
crw------- 1 root root    247,   0 Mar 17 09:15 usbmon0
crw------- 1 root root    247,   1 Mar 17 09:15 usbmon1
crw-rw---- 1 root tty       7,   0 Mar 17 09:15 vcs
crw-rw---- 1 root tty       7,   1 Mar 17 09:15 vcs1
crw-rw---- 1 root tty       7,   2 Mar 17 09:15 vcs2
crw-rw---- 1 root tty       7,   3 Mar 17 09:15 vcs3
crw-rw---- 1 root tty       7,   4 Mar 17 09:15 vcs4
crw-rw---- 1 root tty       7,   5 Mar 17 09:15 vcs5
crw-rw---- 1 root tty       7,   6 Mar 17 09:15 vcs6
crw-rw---- 1 root tty       7, 128 Mar 17 09:15 vcsa
crw-rw---- 1 root tty       7, 129 Mar 17 09:15 vcsa1
crw-rw---- 1 root tty       7, 130 Mar 17 09:15 vcsa2
crw-rw---- 1 root tty       7, 131 Mar 17 09:15 vcsa3
crw-rw---- 1 root tty       7, 132 Mar 17 09:15 vcsa4
crw-rw---- 1 root tty       7, 133 Mar 17 09:15 vcsa5
crw-rw---- 1 root tty       7, 134 Mar 17 09:15 vcsa6
brw-rw---- 1 root disk    253,   0 Mar 17 09:15 vda
brw-rw---- 1 root disk    253,   1 Mar 17 09:16 vda1
brw-rw---- 1 root disk    253,  16 Mar 17 09:15 vdb
drwxr-xr-x 2 root root          60 Mar 17 09:15 vfio
crw------- 1 root root     10,  63 Mar 17 09:15 vga_arbiter
crw------- 1 root root     10, 137 Mar 17 09:15 vhci
crw------- 1 root root     10, 238 Mar 17 09:15 vhost-net
drwxr-xr-x 2 root root         120 Mar 17 09:15 virtio-ports
crw------- 1 root root    244,   1 Mar 17 09:15 vport0p1
crw------- 1 root root    244,   2 Mar 17 09:15 vport0p2
crw------- 1 root root    244,   3 Mar 17 09:15 vport0p3
crw------- 1 root root    244,   4 Mar 17 09:15 vport0p4
crw-rw-rw- 1 root root      1,   5 Mar 17 09:15 zero
[root@ecs-7af6 ~]# ls -l /dev | grep vd[a-z]
brw-rw---- 1 root disk    253,   0 Mar 17 09:15 vda
brw-rw---- 1 root disk    253,   1 Mar 17 09:16 vda1
brw-rw---- 1 root disk    253,  16 Mar 17 09:15 vdb
[root@ecs-7af6 ~]# ls -l /dev/vd[a-z]
brw-rw---- 1 root disk 253,  0 Mar 17 09:15 /dev/vda
brw-rw---- 1 root disk 253, 16 Mar 17 09:15 /dev/vdb
[root@ecs-7af6 ~]#

以上命令查出当前计算机的硬盘及分区,a盘(2个区)、b盘,一般是sd开头,怎么这个是vd开头呢?

3.4常用的转义符

4个最常用的转义字符如下:
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串
单引号(''):转义其中所有的变量为单纯的字符串
双引号(""):保留其中的变量属性,不进行转义处理
反引号(``):把其中的命令执行后返回结果
[root@ecs-7af6 ~]# name=caixuan
[root@ecs-7af6 ~]# echo "my name is $name"
my name is caixuan
[root@ecs-7af6 ~]# echo "my name is \$name"
my name is $name
[root@ecs-7af6 ~]# echo 'my name is $name'
my name is $name
[root@ecs-7af6 ~]# echo `uname -a`
Linux ecs-7af6 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@ecs-7af6 ~]#

3.5重要的环境变量

变量是计算机系统用于保存可变值的数据类型。
在Linux系统中,变量名称一般都是大写的,这是一种约定俗成的规范。
[root@ecs-7af6 ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=119
DIRSTACK=()
EUID=0
GROUPS=()
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=10000
HISTSIZE=10000
HISTTIMEFORMAT='%F %T root '
HOME=/root
HOSTNAME=ecs-7af6
HOSTTYPE=x86_64
ID=0
IFS=$' \t\n'
LANG=en_US.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LINES=38
LOGNAME=root
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PIPESTATUS=([0]="0")
PPID=12700
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
PWD=/root
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_CLIENT='113.246.61.47 22782 22'
SSH_CONNECTION='113.246.61.47 22782 192.168.1.13 22'
SSH_TTY=/dev/pts/1
TERM=xterm
UID=0
USER=root
XDG_RUNTIME_DIR=/run/user/0
XDG_SESSION_ID=297
_=PATH
colors=/root/.dircolors
[root@ecs-7af6 ~]# NAME=caixuan
[root@ecs-7af6 ~]# echo "my name is $NAME"
my name is caixuan
[root@ecs-7af6 ~]# unset NAME
[root@ecs-7af6 ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=119
DIRSTACK=()
EUID=0
GROUPS=()
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=10000
HISTSIZE=10000
HISTTIMEFORMAT='%F %T root '
HOME=/root
HOSTNAME=ecs-7af6
HOSTTYPE=x86_64
ID=0
IFS=$' \t\n'
LANG=en_US.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LINES=38
LOGNAME=root
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PIPESTATUS=([0]="0")
PPID=12700
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
PWD=/root
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_CLIENT='113.246.61.47 22782 22'
SSH_CONNECTION='113.246.61.47 22782 192.168.1.13 22'
SSH_TTY=/dev/pts/1
TERM=xterm
UID=0
USER=root
XDG_RUNTIME_DIR=/run/user/0
XDG_SESSION_ID=297
_=NAME
colors=/root/.dircolors
[root@ecs-7af6 ~]#
 判断用户输入的是外部命令还是内部命令:
[root@ecs-7af6 ~]# type set
set is a shell builtin
[root@ecs-7af6 ~]# type echo
echo is a shell builtin
[root@ecs-7af6 ~]#
 使用env命令来查看Linux系统中所有的环境变量:
[root@ecs-7af6 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@ecs-7af6 ~]# env
XDG_SESSION_ID=299
HOSTNAME=ecs-7af6
TERM=xterm
SHELL=/bin/bash
HISTSIZE=10000
SSH_CLIENT=113.246.61.47 24714 22
SSH_TTY=/dev/pts/2
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=113.246.61.47 24714 192.168.1.13 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
HISTTIMEFORMAT=%F %T root
_=/usr/bin/env
[root@ecs-7af6 ~]#
  Linux系统中最重要的10个环境变量:
[root@ecs-7af6 ~]# echo $HOME
/root
[root@ecs-7af6 ~]# echo $SHELL
/bin/bash
[root@ecs-7af6 ~]# echo $$
14122
[root@ecs-7af6 ~]# echo $HISSIZE

[root@ecs-7af6 ~]# echo $HISTSIZE
10000
[root@ecs-7af6 ~]# echo $HISTFILESIZE
10000
[root@ecs-7af6 ~]# echo $MAIL
/var/spool/mail/root
[root@ecs-7af6 ~]# echo $LANG
en_US.UTF-8
[root@ecs-7af6 ~]# echo $RANDOM
4483
[root@ecs-7af6 ~]# echo $PS1
[\u@\h \W]\$
[root@ecs-7af6 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@ecs-7af6 ~]# echo $EDITOR

[root@ecs-7af6 ~]#

表3-3 Linux系统中最重要的10个环境变量

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数
PS1 Bash解释器的提示符(没理解,暂时没用过)
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
 把名为LINUX的一般变量转换成全局变量
[root@ecs-7af6 ~]# export LINUX
  想起一个命令:
[root@ecs-7af6 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@ecs-7af6 ~]# cut -d: -f1 $PATH
cut: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
[root@ecs-7af6 ~]# echo $PATH | cut -d: -f1
/usr/local/sbin
[root@ecs-7af6 ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
postfix
ntp
sshd
tcpdump
mysql
nginx
[root@ecs-7af6 ~]#

cut -d: -f1
-d参数来设置间隔符号,这里是冒号(:);
-f参数来设置需要查看的列数,这里是1行

以上记录日期 2019.03.25 周一

你可能感兴趣的:(第3章 管道符、重定向与环境变量)