I/O重定向与管道符

一、重定向

对系统默认执行方式进行改变,包括输入重定向和输出重定向。

1.输入重定向
  • 输入重定向:把命令(或可执行程序)的标准输入从定向到指定的文件中。也就是说,输入可以不来自键盘,而是来自一个指定的文件。主要用于改变需要大量输入的输入源。

  • 用法1:命令<文件名 #把文件作为命令的输入 命令 < 文件名

2.输出重定向
 ">"    代表以覆盖的方式将命令的正确输出输出到指定的文件或设备当中。
 ">>"   代表以追加方式输出。

例如:wc<文件名 返回该文件的行数,单词数,字符数

[root@foundation79 ~]# find /etc/ -name passwd
/etc/passwd
/etc/pam.d/passwd
[root@foundation79 ~]# find /etc/ -name passwd > /home/kiosk/Desktop/null
[root@foundation79 ~]# cat /home/kiosk/Desktop/null
/etc/passwd
/etc/pam.d/passwd

常用的输出重定向:

1.命令 >> 文件 2>&1 :以追加的方式,把正确输出和错误输出都保存在文件中。
2.命令&>文件名:以覆盖的方式将正确和错误输出都保存在文件中。
3.命令&>>文件名:以追加的方式将正确和错误输出都保存在文件中。

4.命令>>文件A 2>>文件B:正确的输出到A文件中,错误的输出到B文件中。
多命令顺序执行
  • 1.命令1;命令2 :执行完1再执行2,命令之间没有任何逻辑联系
  • 2.命令1&&命令2:&&是一个“自私”符号,即命令1正确我命令2才执行,你错误了我2就不执行。
  • 3.命令1||命令2:是一个备胎符号,即1不行了2就上,1行的话我就不执行。
管道符

命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象。
Bash中的其他特殊符号
1.将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

单引号‘’:引号内的所有字符都只是字符而已,没有特殊含义。
双引号”“: 除了$`和\之外,均无特殊含义。
“:反引号,反引号内部的内容是系统命令,在Bash中会先执行他,例如aa=$(ls),那么ls执行的结果会赋给aa。
$(): 和反引号作用一样,推荐使用。
#:shell脚本中代表注释。
$:用于调用变量的值,相当于C语言的*。

:转义符。

猜你喜欢

转载自blog.csdn.net/qq_36747237/article/details/80363856