引言
与文件读写操作有关的重定向技术的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 | 保存的历史命令记录条数 |
邮件保存路径 | |
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 周一