//多条命令之间以“;”间隔,就组成组合命令,依次执行linux常用命令,上条语句执行成功与否不影响下个语句的执行。哦嗯
//如果使用“&&”代替“;”linux常用命令,在上条语句执行成功的前提下才能执行下条命令
//当用“||”代替“;”时,上条命令执行失败时才能执行下条语句
[ftt@localhost pictures]$ ls
cat.log copy.jpg p2.jpg test
[ftt@localhost pictures]$ rm copy.jpg;cp p2.jpg new.jpg
[ftt@localhost pictures]$ ls
cat.log new.jpg p2.jpg test
[ftt@localhost pictures]$ rm copy.jpg && cp p2.jpg p2.jpg
rm: 无法删除"copy.jpg": 没有那个文件或目录
[ftt@localhost pictures]$ cp sctq.log dog.log || rm new.jpg
cp: 无法获取"sctq.log" 的文件状态(stat): 没有那个文件或目录
[ftt@localhost pictures]$ ls
cat.log p2.jpg test
//防止定向时覆盖文件
set -o noclobber //开启noclobber,不允许覆盖已经存在的文件
set +0noclobber //关闭noclobber
[ftt@localhost pictures]$ ls -1F cat.log > cat.txt
[ftt@localhost pictures]$ ls
2018-06-29 cat.log cat.txt p2.jpg test
[ftt@localhost pictures]$ ls -F
2018-06-29/ cat.log cat.txt p2.jpg test/
[ftt@localhost pictures]$ set -o noclobber
[ftt@localhost pictures]$ ls cat.log>cat.txt
bash: cat.txt: 无法覆盖已存在的文件
//用“>>"代替">"把输出追加到文件中,如过文件不存在,则创建一个新的文件
//“|”可以把一个命令的输出用作另一条命令的输入
ls -1 | less
//将文件用作命令的输入
cat commands.txt
tr 'A-Z' 'a-z' < commands.txt
stdin :标准输入,键盘;stdout:标准输出,显示器; stderr:终端上显示的错误
[ftt@localhost pictures]$ cat cat.txt //连接cat.tx文件,并输出内容
[command] <file> [output]
[ftt@localhost pictures]$ tr 'A-Z' 'a-z' <cat.txt>catlower.txt //把cat.txt内大写变小写,同时输出为文件catlower.txt
//将输出同时发送到文件和stdout
[ftt@localhost pictures]$ ls -1 /home/ftt | tee new.txt