1、多命令顺序执行()
多命令执行符 | 格式 | 作用 |
; | 命令1 ; 命令2 | 多个命令顺序执行,命令之间没有任何逻辑联系 |
&& | 命令1 && 命令2 | 逻辑与 当命令1正确执行,则命令2才会执行 当命令1执行不正确,命令2不会执行 |
|| | 命令1 || 命令2 | 逻辑或 当命令1执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行 |
示例1:
[root@localhost ~]# ls ; date ; cd/user ; pwd
abc cde install.log sh 模板 图片 下载 桌面
anaconda-ks.cfg cdef install.log.syslog 公共的 视频 文档 音乐
2018年 12月 16日 星期日 13:21:00 CST
-bash: cd/user: 没有那个文件或目录
/root
[root@localhost ~]#
因为当前系统中,cd 目录下没有user,所以执行结果如第三行,但不影响后面的结果,所以最后一条命令结果正确输出了
示例2:
扩展:dd命令是进行Linux中磁盘、分区、文件等特殊内容复制的命令,比cp更强大,或特殊
[root@localhost ~]# dd if=输入文件 of=输出文件 bs=字节数 count=个数
选项:
if=输入文件 :指定源文件或源设备
of=输出文件 :指定目标文件或目标设备
bs=字节数 :指定一次输入/输出多少字节,即把这些字节看做一个数据块
count=个数 :指定输入/输出多少个数据块
例子:
[root@localhost ~]# date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
# 把/dev/zero 特殊文件,就是0,;该命令相当于创建一个100MB的文件testfile ,路径为/root/testfile
每次向其中写个0,每次为1k,并把创建磁盘的始末时间。用以测试当前系统创建一个100MB的文件需要多久
[root@localhost ~]# date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
2018年 12月 16日 星期日 13:29:07 CST
记录了100000+0 的读入
记录了100000+0 的写出
102400000字节(102 MB)已复制,2.15774 秒,47.5 MB/秒
2018年 12月 16日 星期日 13:29:09 CST
[root@localhost ~]#
示例3:
[root@localhost ~]# ls anaconda-ks.cfg && echo yes
[root@localhost ~]#ls /root/test || echo "no
[root@localhost ~]# 命令 && echo yes || echo no
注:以上内容用于判断命令是否被正确执行,
主要用于shell编程中,用于系统自动判定某个命令是否正确被执行的后续逻辑
[root@localhost ~]# ls
abc cde install.log sh 公共的 视频 文档 音乐
anaconda-ks.cfg cdef install.log.syslog testfile 模板 图片 下载 桌面
[root@localhost ~]#
[root@localhost ~]# ls && echo yes
abc cde install.log sh 公共的 视频 文档 音乐
anaconda-ks.cfg cdef install.log.syslog testfile 模板 图片 下载 桌面
yes
[root@localhost ~]# ls gdasdga && echo yes
ls: 无法访问gdasdga: 没有那个文件或目录
[root@localhost ~]# ./con
-bash: ./con: 没有那个文件或目录
[root@localhost ~]# ls
abc cde install.log sh 公共的 视频 文档 音乐
anaconda-ks.cfg cdef install.log.syslog testfile 模板 图片 下载 桌面
[root@localhost ~]# ./configure && echo yes || echo no
-bash: ./configure: 没有那个文件或目录
no
[root@localhost ~]#
2、管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
注意:命令1必须有正确的输出,命令2才有可能执行
示例:
[root@localhost ~]# ll -a /etc/ | more
# ll -a /etc/ 的查询结果 作为管道符后面的输入,
#在此表示分屏显示 /etc/ 下文件的长格式信息显示
[root@localhost ~]# ll -a /etc/ | more
总用量 2064
drwxr-xr-x. 118 root root 12288 12月 16 10:44 .
dr-xr-xr-x. 28 root root 4096 12月 16 07:08 ..
drwxr-xr-x. 3 root root 4096 11月 25 22:55 abrt
drwxr-xr-x. 4 root root 4096 11月 25 23:06 acpi
-rw-r--r--. 1 root root 45 12月 10 08:57 adjtime
-rw-r--r--. 1 root root 1512 1月 12 2010 aliases
-rw-r--r--. 1 root root 12288 11月 25 23:24 aliases.db
drwxr-xr-x. 2 root root 4096 11月 25 23:03 alsa
drwxr-xr-x. 2 root root 4096 11月 25 23:07 alternatives
-rw-------. 1 root root 541 8月 24 2016 anacrontab
-rw-r--r--. 1 root root 245 11月 11 2010 anthy-conf
-rw-r--r--. 1 root root 148 1月 12 2016 asound.conf
-rw-r--r--. 1 root root 1 3月 22 2017 at.deny
drwxr-x---. 3 root root 4096 11月 25 23:07 audisp
drwxr-x---. 3 root root 4096 11月 25 23:07 audit
-rw-r--r--. 1 root root 13641 6月 20 00:20 autofs.conf
-rw-------. 1 root root 232 6月 20 00:20 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 667 6月 20 00:20 auto.master
-rw-r--r--. 1 root root 524 6月 20 00:20 auto.misc
-rwxr-xr-x. 1 root root 1260 6月 20 00:20 auto.net
-rwxr-xr-x. 1 root root 687 6月 20 00:20 auto.smb
drwxr-xr-x. 2 root root 4096 11月 25 22:55 avahi
drwxr-xr-x. 2 root root 4096 11月 25 23:08 bash_completion.d
-rw-r--r--. 1 root root 2699 3月 22 2017 bashrc
drwxr-xr-x. 2 root root 4096 11月 25 23:27 blkid
drwxr-xr-x. 2 root root 4096 11月 25 23:02 bluetooth
drwxr-xr-x. 2 root root 4096 11月 25 22:53 bonobo-activation
-rw-r--r--. 1 root root 1780 10月 16 2009 cas.conf
-rw-r--r--. 1 root root 28 6月 26 22:52 centos-release
drwxr-xr-x. 2 root root 4096 11月 25 23:01 certmonger
drwxr-xr-x. 2 root root 4096 5月 11 2016 chkconfig.d
drwxr-xr-x. 5 root root 4096 11月 25 22:55 ConsoleKit
--More--
[root@localhost ~]# netstat -an | grep "ESTABLISHED"
3、grep 搜索命令补充
[root@localhost ~]# grep 【选项】“搜索内容” 文件名
选项:
-i : 忽略大小写
-n :输出行号
-v : 反向查找
--color=auto 搜索出的关键字用颜色显示