linux管道与重定向

281 阅读2分钟

一.重定向

0 标准输出-键盘
1 标准输入
2 标准错误
3+ 进程在执行过程中打开的其他文件
& 表示正确错误混合输出

二.输出重定向

>  覆盖
>> 追加
正确输出 1> 1>> 等于 > >>
错误输出 2> 2>>
2.1案例:输出重定向-覆盖
find /opt -name '*.txt' > /data/abc/abc.txt
2.2案例:输出重定向-追加
ls -l /data/ >> /data/abc/abc.txt
2.3案例:输出错误重定向
abcdefg 2>> /data/abc/abc.txt
2.4正确和错误都输入到相同位置
ahfddsg  &>> /data/abc/abc.txt 
​
ll /data &>> /data/abc/abc.txt 
2.5重定向到空设备
空设备,将正确的和错误的输出丢掉
ls -l /home/ /abcdefg &> /dev/null
清空文件
cat /dev/null > /root/journal.log.log 

3.管道

用法:command1 | command2 |command3 | ...
实战案例
查询所有安装的软件包,过滤含有vim的包
rpm -qa | grep 'vim'
​
vim-common-7.4.629-8.el7_9.x86_64
vim-filesystem-7.4.629-8.el7_9.x86_64
vim-minimal-7.4.629-7.el7.x86_64
vim-enhanced-7.4.629-8.el7_9.x86_64
||和&&
|| 前面的命令没有成功执行,则执行后面的
查询所有安装的软件包,过滤出vim,将正确或者错误的输出丢掉,执行失败则下载vim
rpm -qa | grep 'vim' &> /dev/null || yum install vim
​
&& 前面的命令成功执行才会执行后面的
abcd && mkdir a1  #都执行失败
mkdir a2 && abcd  #mkdir a2 执行成功
​
查找用户lucy,回收正确和错误的输出,没有lucy则创建用户lucy,并且修改密码为123456,回收正确和错误的输出
id lucy &> /dev/null || (useradd lucy && echo '123456' | passwd --stdin lucy &> /dev/null)
常用小命令
查看目录以及目录中的文件大小
du -h /data
查看目录的总大小
du -sh /data
查看目录中有多少个文件
ls /data/ | wc -l
练习
1.cat /2.txt 将它的结果混合输出到/opt/file.txt
cat /root/2.txt &> /opt.file.txt
​
2.怎么判断一个账户是否存在??
id lisi
​
3.>与>>区别是什么
> 覆盖  >> 追加
​
4.将cat /home/b.txt中将正确的输出重定向到a.txt中将错误的输出重定向到c.txt
cat /home/b.txt > a.txt
cat /home/b.txt 2> c.txt
​
5.请将vsftpd的进程杀掉,他的PID为11223
kill -9 11223
​
6.如何删除当前目录下以.log结尾的文件?
rm -rf *.log
​
7.打印当前工作目录的Linux命令是?
pwd
​
8.如何查看在后台运行的程序?
ps aux | grep 'sshd'
​
9.如何将后台运行的程序调出至前台运行?
​
10.2>与&>是什么意思?
2>输出错误重定向  &>输出正确和错误的重定向