Linux操作系统之重定向和管道

一、重定向

1、标准

  标准输入(stdin)  0      标准输出(stdout)  1      标准错误(stderr)  2

2、FD

file descriptors 文件描述符 又叫文件句柄
进程使用文件描述符来管理打开的文件,还是访问文件的标识,即链接文件(L)

	0   键盘只读
	1,2  是终端,可以理解为屏幕
	3+  是文件,可读可写

3、在/proc中查看文本程序的FD

    通过ps查看文本程序的进程号,如ps   aux   |  grep  vim 
    ll  /proc/5655/fd        5655是进程号
    lrwx------. 1 root root 64 10月 10 07:37 0 -> /dev/pts/2    标准输入
    lrwx------. 1 root root 64 10月 10 07:37 1 -> /dev/pts/2    标准输出
    lrwx------. 1 root root 64 10月 10 07:37 2 -> /dev/pts/2    标准错误输出
    lrwx------. 1 root root 64 10月 10 07:37 3 -> /root/.1.txt.swp   常规文件

4、输出重定向及综合案例

分为正确输出和错误输出
(1)正确输出1(stdout):1>1等价于> 是覆盖的意思;>>是追加的意思
Date >> date.txt date是实时显示当前时间信息。将显示的时间追加到date.txt文件中。

(2)错误输出(stderr)2:输出错误的信息。
但是2>2不等价于>,系统默认情况下>左右是1
ls /aaaaaa 2>> file.txt 前提是没有aaaaaa这个目录,这是一个错误的命令。将显示的错误信息追加到file.txt文件中。这里2不能省略。

(3)正确和错误都输出到同一个文件:用&连接符。
ls /home /aaaaaa &>list.txt 将/home的正确输出和/aaaaaa的错误输出输出到list.txt,用cat查询。

5、输入重定向及综合案例:stdin 0

(1)标注输入:< 或 0<

(2)输入重定向发送邮件

==A.默认发送邮件 ==
mail -s(参数,主题的意思) “编辑主题” 邮件接收人(如:alice)
回车之后可以编辑发送的内容,然后按“.”结束编辑并发送。
Su - alice 切换到Alice用户下
Mail 查看该用户可以查看邮件的详细信息
按“邮件编号”即可查看邮件内容
按q退出

B.输入重定向快速发送邮件
如果已经有了现成的邮件,可以用重定向快速输入邮件内容并发送。
Vim list.txt 准备邮件内容
Mail -s “邮件主题” 邮件接收人 < list.txt 发送list.txt内的内容给接收人。
查看邮件具体信息和默认发送邮件相同

二、管道(|)

1、进程管道Piping:cat /etc/passwd | grep nologin

2、Tee管道:三通管道,即交给另一个程序处理,并保存一份副本。
Cat /etc/passwd |tee a.txt |tail -3 | grep nologin
Tee 就是将前一个文件里面的所有内容写入a.txt,然后在提供给tail命令。

3、参数传递Xargs:对于一些特殊命令,用管道进行操作是无法执行。此时需要xargs
Touch file{1…5} 创建五个file文件
Vim files.txt
/root/file1
/root/file2
/root/file3
/root/file4
:wq
cat files.txt |xargs rm -rf
利用rm -rf 命令在xargs帮助下删除files.txt文件中需要删除的内容。当不使用xargs时无法进行删除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值