您的位置:首页 > 运维架构 > Linux

课时19 Linux多命令协作:管道及重定向

2017-08-09 22:39 316 查看
Linux课程学习笔记来源于网易云课堂:Linux
入门基础

1 不要重复发明轮子

       开源文化的核心理念之一就是不要重复发明轮子,很多的开源软件都是现有软件、代码、功能的重新组合,就好像通过零件装配机器一样,源代码的开放和共享让这成为了可能,同时也大大的提高了效率和生产力。(大教堂和集市)

2. 管道和重定向

  在Linux系统当中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现和一个或几个很简单的功能,我们可以通过将不同功能的命令组合在一起使用,以达到完成某个复杂功能的目的。
  Linux中,几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI(命令行)下),而纯文本形式的数据又是绝大多书命令的输入格式,这就让多命令协作成为可能。
  Linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的。
  命令行shell的数据流有以下定义方便管理shell中的信息流

                   名称       说明      编号             默认

              *STDIN     标准输入   0           键盘--用来采集信息

              *STDOUT 标准输出    1           终端--用来输出正常信息

              *STDERR 标准错误    2           终端--用来输出报错信息

     
4000
  *命令通过STDIN接收参数或数据,通过STDOUT输出结果或通过STDERR输出错误

  通过管道和重定向我们可以控制CLI的数据流`标准输入、标准输出、标准错误`

(一) 重定向

(1)>  功能:将标准输出(STDOUT)重定向到文件(覆盖)【只能保存标准输出信息,错误信息(STDERR)不可以保存】。例如:

echo “linuxcast” > outfile  //将ehco的输出保存到outfile文件中;

ls -l >outside  //后面可以跟路径

(2)>>  功能:将标准输出(STDOUT)重定向到文件(追加到原有文件的内容之后)【只能保存标准输出信息,错误信息(STDERR)不可以保存】。

(3)2>  功能:仅将标准输出错误(STDERR)重定向到文件,不再将标准输出(STDOUT)重定向到文件。例如:

ls -l 2> outside  //这条命令只保存报错信息

(4)2>&1  功能:将标准输出和标准错误结合在一起。例如:

ls nothere 2>&1 alloutput

(5)<  功能:重定向标准输入例如:

grep linuxcast< /etc/passwd  //将/etc/passwd输入给grep linuxcast,这种命令不太常用。相当于在/etc/passwd中查找含有linuxcast关键字的内容

(二)管道

 将一个命令的标准输出作为另一个命令的标准输入,可以做到多命令的协作。例如:

ls -l | grep linuxcast  //将ls -l的输出结果传给grep,对ls –l输出的信息进行grep操作

find / -user linuxcast | grep Video //在linuxcast用户中查找含有Video内容的信息`

  管道通常用来组合不同的命令,以实现一个复杂的功能
  重定向通常用来保存某命令的输出信息或错误信息,可以用来记录之行结果或保存错误信息到一个指定的文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: