一.重定向
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
查找用户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>输出错误重定向 &>输出正确和错误的重定向