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] [output]

[ftt@localhost pictures]$ tr 'A-Z' 'a-z' catlower.txt //把cat.txt内大写变小写,同时输出为文件catlower.txt


//将输出同时发送到文件和stdout

[ftt@localhost pictures]$ ls -1 /home/ftt | tee new.txt








你可能感兴趣的:(Linux)