当前位置:网站首页>管道重定向
管道重定向
2022-08-04 05:31:00 【anqiujiaduizhang】
1、重定向
标准输出 | 标准正确输出 | 标准错误输出 |
进程在运行的过程中根据需要会打开多个文件,每打开一个文件会有一个数字标识。这个标识叫文件描述符。
进程使用文件描述符来管理打开的文件(FD file descriptors)
文件描述符:每打开一个程序都会有文件描述
0 | 标准输入 |
1 | 标准正确 |
2 | 标准错误 |
3+ | 进程在执行过程中打开的其他文件 |
& | 表示正确错误混合输出 |
2、输出重定向(覆盖,追加)
覆盖 | > | |
追加 | >> | |
正确输出 | 1> 1>> | > >> |
错误输出 | 2> | 2>> |
2.1输出重定向覆盖
# date > date.txt
2.2输出重定向追加
#date +%X >> date.txt
2.3错误输出重定向
#ls /root /hhhhhjjjjjj (1)>list.txt
2.4错误输出重定向到不同的位置
#ls /root /hhhhhjjjjjj >list.txt 2>nolist.txt
2.5正确和错误都输入相同位置
#ls /root /hhhhhjjjjjj &>list.txt
2.6重定向到空设备/dev/null
#ls /root /hhhhhjjjjjj 2>/dev/null
#ls /root /hhhhhjjjjjj >/dev/null
#ls /root /hhhhhjjjjjj &>/dev/null
- 注: echo 会将输入的内容送往标准输出 echo 内容 >> 文件名或脚本里面 (等于w)
2.7脚本中使用重定向
# vim a.txt
#
ping -c1 10.18.40.100
if [ $? -eq 0 ];then
echo "10.18.40.100 is up."
else
echo "10.18.40.100 is down!"
fi
#./a.txt (权限不够)
#chown +x a.txt
#./a.txt
[[email protected] ~]# ./a.txt
PING 10.18.40.100 (10.18.40.100) 56(84) bytes of data.
--- 10.18.40.100 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
10.18.40.100 is down!
使用重定向
ping -c1 10.18.40.100 >/dev/null
if [ $? -eq 0 ];then
echo "10.18.40.100 is up." >>up.txt
else
echo "10.18.40.100 is down!" >>down.txt
fi
#./a.txt
# cat down.txt
3、输出重定向
标准输入 : < 等价 0<
默认情况下,cat命令会接受标准输入设备 (键盘)的输入,并显示到控制台,但如果用文件代替键盘作为输入设备,那么该命令会以指定的文件作为输入设备,并将文件中的内容读取并显示到控制台 |
#cat /etc/passwd
#cat < /etc/passwd
虽然执行结果相同,但第一行代表的是以键盘作为输入设备,而第二行代码是以/etc/passwd 文件作为输入设备
将/etc/passwd作为cat 的输入,读出/etc/passwd 的内容
3.1通过输入重定向创建文件
(cat > file << EOF)是用来创建文件或者在脚本中使用,并向文件中输入信息 输入的任何东西会被写入文件中 ,EOF 命令结束
cat >> file5 <<EOF #可以写到脚本里或者文件里面
EOF : 开始和结束的标记 成对使用 结尾的另一个必须定格写。
3.2利用重定向建立多行的文件 脚本创建多行文件
# vim b.txt
#cat >> c.sh <<EOF
#damifan
tangculiji
ludouya
EOF
#chown +x b.txt
#./b.txt
#cat c.sh
4、管道
#rpm -qa | grep 'httpd' #查询所有安装的软件包,过滤包含httpd 的包
4.1将/etc/passwd中的用户按UID 大小排序
# sort -t":" -k3 -n /etc/passwd
# sort -t":" -k3 -n /etc/passwd -r
# sort -t":" -k3 -n /etc/passwd | head -5
# sort -t":" -k3 -n /etc/passwd | tail -5
# sort -t":" -k3 -n /etc/passwd | tail -n +5
参数详解
- sort 排序,默认升序
- -t 指定分隔符
- -k 指定列
- -n 升序
- -r 降序
- | head
- | tail
5、参数传递:xargs
对 ls cp mv 管道不能执行,所以通过xargs
#vim a.txt
/home/c.sh
/home/d.sh
/home/e.sh
#touch /home/{c..e}.sh
# cat a.txt | xargs -i ls {}
#cat a.txt | xargs -i cp -rvf{} 目的地址
#cat a.txt | xargs -i mv {} 目的地址
#cat a.txt | xargs -i rm -rvf{}
边栏推荐
- 光条提取中的连通域筛除
- 强化学习中,Q-Learning与Sarsa的差别有多大?
- Brief description of database and common operation guide
- MNIST handwritten digit recognition - based on Mindspore to quickly build a perceptron to achieve ten categories
- 理想的生活
- Copy攻城狮信手”粘“来 AI 对对联
- MNIST Handwritten Digit Recognition - Lenet-5's First Commercial Grade Convolutional Neural Network
- The second official example analysis of the MOOSE platform - about creating a Kernel and solving the convection-diffusion equation
- 浅谈游戏音效测试点
- 安装MySQL的详细步骤
猜你喜欢
光条中心提取方法总结(一)
Copy Siege Lions "sticky" to AI couplets
第三章 标准单元库(上)
Halcon缺陷检测
arm-2-基础阶段
LeetCode_Dec_2nd_Week
【深度学习日记】第一天:Hello world,Hello CNN MNIST
yoloV5 使用——训练速度慢,加速训练
The second official example analysis of the MOOSE platform - about creating a Kernel and solving the convection-diffusion equation
CSDN spree -- college round table spree
随机推荐
浅谈游戏音效测试点
【论文阅读】Multi-View Spectral Clustering with Optimal Neighborhood Laplacian Matrix
Machine Learning - Processing of Text Labels for Classification Problems (Feature Engineering)
第三章 标准单元库(上)
MNIST手写数字识别 —— 从零构建感知机实现二分类
软著撰写注意事项
双向LSTM
MNIST handwritten digit recognition, sorted by from two to ten
(Navigation page) OpenStack-M version - manual construction of two nodes - with video from station B
彻底删除MySQL教程
Install Minikube Cluster in AWS-EC2
光条中心提取方法总结(一)
Thunderbolt turns off automatic updates
题目1000:输入两个整数a和b,计算a+b的和,此题是多组测试数据
No matching function for call to ‘RCTBridgeModuleNameForClass‘
语音驱动嘴型与面部动画生成的现状和趋势
tensorRT教程——使用tensorRT OP 搭建自己的网络
MNIST手写数字识别 —— 从感知机到卷积神经网络
"A minute" Copy siege lion log 】 【 run MindSpore LeNet model
Introduction to Convolutional Neural Networks