第七天9月25笔记-管道与重定向

管道与重定向

1、重定向

 >			---覆盖
 >> 		---追加
标准输入
标准正确:1			标准错误:2
3+,进程在执行过程中打开的其他文件。  
&:表示正确错误混合输出
标准正确重定向:ls  / /hello   1> a.txt		#1可以省略不写
标准错误重定向:ls  / /hello   2> b.txt
标准正确和标准错误一起重定向进入hunhe.txt
ls  /  /hello  &> hunhe.txt

2、 ; 、&&、||用法:

; :( 命令分割,没有实际意义)
&&:(上一条执行失败,下一条不执行)
||:(上一条命令执行成功,下一条命令不执行,上一条命令执行失败,下一条命令执行。)
echo  a ; echo b			#  ;  两个命令互不影响
echo  a   &&  echo b				#前面的错误了会影响后面的。echo  a执行成功之后则会执echo b,否则不会执行echo b。
echo  a   ||  echo b				#上一个命令执行成功,则不会向下执行,若上一条命令执行失败,则会向下执行
黑洞文件:/dev/null #重定向到 >/dev/null
ping  -W1 -c4 www.baidu.com    >/dev/null			#ping4次以后自动停
通过返回值来看命令是否执行成功:
echo $?
#返回值为0则执行成功。
1>&2	#正确当错误用
2>&1	#错误的当正确的用
nginx  -V   2>&1  | grep "version"
把错误的当正确的使用:

image-20240925105427435

判断能否ping通公网:
ping -W1 -c4  www.baidu.com  &>/dev/null
if [ $? -eq 0 ];then
        echo "通"  >>up.txt
        date &>>up.txt
else
        echo "不通"
fi

image-20240925110047841

3、输入重定向:

 cat > file.txt <<EOF

> 锄禾日当午,
> 汗滴禾下土。
> 谁知盘中餐,
> 粒粒皆辛苦。
> EOF

image-20240925110657500

4、管道:

用法:command1	|	command2	|	command3  |.... 
ip a  | grep inet  | grep ens33			#过滤显示ip地址。
rpm  -qa  | grep  'htppd'		#查询所有安装的软件包,过滤包含htpd的包

ps  -aux  | grep 'sshd'

打印同时追加到文件。
rpm  -qa  | tee rpm.txt			#打印同时覆盖到prmtxt中
rpm  -qa  | tee -a rpm.txt		#打印同时追加到prmtxt中

排序:

sort  --help		#说明书
用法:
	sort  -t":"  -k3  /etc/passwd		#第三列按" : "排序
	sort  -t":"  -k3 -n  /etc/passwd	#第三列从小到大排序
	sort  -t":"  -k3 -n -r /etc/passwd	#第三列从大到小排序
	
sort  -t":"  -k3 -n  /etc/passwd  | head -n 3
sort  -t":"  -k3 -n  /etc/passwd  | tail -n 3

image-20240925143844894

awk、cut

netstat -lntp | awk 'NR==3 {print $4}' | awk -F':' '{print $2}'
25

image-20240925144203978

过滤端口:awk

netstat  -lntp | awk 'NR==3{print $4}'		#过滤出第三行第四列
netstat  -lntp | awk 'NR==3{print $4}' | awk -F':' '{print $2}'  #以" : "为分隔符,打印第二列

image-20240925144311002

过滤ip地址:

ip a | grep ens33 | awk 'NR==2' | awk  -F" " '{print $2}'

ifconfig  | grep netmask | awk 'NR==1' | awk '{print $2}'
ifconfig  | grep netmask | awk 'NR==1' | cut -d" " -f10

image-20240925144638276

tr和cut

ip a | grep ens33 | awk 'NR==2{print $2}' | tr -d "/24"		#删除“ /24 ”
ip a | grep ens33 | awk 'NR==2{print $2}' | cut -d"/" -f1	#以/为分隔符切割,选取第一个

image-20240925144918843

变量切割:
echo  ${ip%/*}		#切割  /  后所有的内容
echo  ${ip#*/}  	#切割  /  前面的所有内容

image-20240925145047601

5、参数传递:

对:ls cp rm  管道不能执行。所以通过xargs传递参数。
用法:
 语法:
 cat a.txt | xargs  -i cp {} /目录  
 {}:前面传过来的内容
 -i :为了让大括号生效
 目录时  -r
 解释:前面传过来的东西交给大括号
 
 cat file.txt |xargs ls -l          
 前面是目录或者目录的路径。  ls - l  后面可以不加大括号,直接执行。
[root@qfedu.com ~]# touch /home/file{1..5}
[root@qfedu.com ~]# vim files.txt
/home/file1
/home/file2
/home/file3 
/home/file4
/home/file5
[root@qfedu.com ~]# cat files.txt |ls -l #不加xargs传参,看输出结果
[root@qfedu.com ~]# cat files.txt |rm -rvf  #不加xargs传参,看输出结果

参数传递:
cat files.txt  | xargs ls -l	
cat files.txt  | xargs rm -rvf	

image-20240925160336057

查看目录大小:

du
[root@cat2404 practice]# du -sh  /etc/		# -h  人性化显示
31M     /etc/

du   -sh  /*		#查看根下所有的的目录所占的大小
查看目录的大小:du
du  -h  --max-depth=1 /etc/		#查看/etc/下子目录的大小
du  -d 1 -h /etc/ | grep passwd
统计行数、单词数、字符。:wc
wc  -l			#统计有多少行
ls /etc/ | wc -l
cat /etc/passwd	| wc  -w		#统计有多少个单词
wc -c			统计字节数
wc  -m			#查看有多少字符(空格也算)
#一个中文3字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值