Linux初入7 重定向和管道符

理解Linux重定向与管道符
本文详细介绍了Linux系统中的重定向概念,包括标准输入、标准输出和标准异常的重定向方法,以及如何使用管道符连接命令进行数据处理。通过实例展示了如何利用这些功能进行高效的操作。

重定向

什么是标准输入、标准输出、标准异常重定向?

  1. 一般的标准输入输出都是从键盘中获得输入,
    一般的标准输出表示命令执行正确,并把结果在屏幕上显示
    一般的标准异常表示命令执行不正确,把异常的情况在屏幕上显示。
[huang@localhost ~]$ ls -al
total 16
drwx------. 2 huang huang  83 Jan 18 11:55 .
drwxr-xr-x. 3 root  root   19 Jan 17 22:49 ..
-rw-------. 1 huang huang  87 Jan 18 11:55 .bash_history
-rw-r--r--. 1 huang huang  18 Apr 11  2018 .bash_logout
-rw-r--r--. 1 huang huang 193 Apr 11  2018 .bash_profile
-rw-r--r--. 1 huang huang 231 Apr 11  2018 .bashrc
[huang@localhost ~]$ ls -zz
ls: invalid option -- 'z'
Try 'ls --help' for more information.
  1. 那么输入的源头可以改变吗,可以是一个文件中的内容吗?输出的目的地可以改变吗,可以是一个文件吗?异常情况的目的地可以改变吗,可以是一个文件吗?当然可以。
    这种以特定的方向获取命令的输入,发送输出和异常的方法就叫重定向。这个方向可以是一个文件的内容。

如何重定向到文件

1.输入重定向,在许多需要提供文件名的命令中,都把文件的内容作为输入流中的数据,因此可以通过输入重定向符<把实现和直接提供文件名相同的结果。

符号作用
命令 < 文件把文件的内容作为命令的标准输入
命令<<分割符从屏幕读入字符,直到遇见分界符才执行命令
命令 < 文件1 > 文件2将文件1作为命令的标准输入并将标准输出到文件2

2.输出,异常重定向

符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 >>文件将标准输出追加到一个文件中
命令 2> 文件将标准异常重定向到一个文件中(清空原有文件的数据)
命令 2>>文件将标准异常追加到一个文件中
命令&> 文件 或 命令 >> 文件 2>&1将标准输出和标准异常重定向到一个文件中(清空原有文件的数据)
命令 &>> 文件 或 命令 >> 文件 2>&1将标准输出和异常追加到一个文件中

3.应用:以后需要输入文件名的地方都可以使用重定向来进行设置了。
(1)输入重定向。

[root@localhost ~]# wc -l < /etc/selinux/config
[root@localhost ~]# wc -l << over

(2)输出重定向

[root@localhost ~]# echo Hello > readme.txt
[root@localhost ~]# echo Linux >> readme.txt

管道符

1.命令1 |命令2,把命令1的标准输出作为命令2的标准输入。最终屏幕显示的是命令2的输出。

管道符与重定向符有所不同:
重定向符,通过文件名把文件内容传递给命令。
管道符,命令1把输出内容传递给命令2.

例检查当目录下所有文件的权限,ls -al显示当前目录下所有文件的信息,并传给cut。cut获得第一列的字符。

[huang@localhost ~]$ ls -al | cut -d" " -f1
total
drwx------.
drwxr-xr-x.
-rw-------.
-rw-r--r--.
-rw-r--r--.
-rw-r--r--.
drwxrwxr-x.
drwxrwxr-x.
-rw-rw-r--.
drwxr-xr-x.
-rw-------.

2.最常用的就是管道符命令和grep命令连起来使用。
便于寻找符合条件的行,grep
grep的一般用法 :gerp 关键字 文件名
grep的特殊用法:命令1 | grep 关键字 用于在命令1的输出中寻找符合关键字条件的行。

[huang@localhost ~]$ ls -al | grep test
-rw-rw-r--. 1 huang huang    0 Jan 22 11:58 test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值