LINUX学习之管道和重定向(十)
输入/输出流控制
在Linux系统中, 执行一个shell命令通常会自动打开三个标准文件, 分别是标准输入文件、标准输出文件和标准错误输出文件。进程将从标准输入文件得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件
如下表格所示, linux shell下有三种标准的文件描述符:
文件描述符 | 描述 | 操作符 |
---|---|---|
0 | 标准输入(stdin) |
< ,<<
|
1 | 标准输出(stdout) |
> , >> , 1 >或1>>
|
2 | 标准错误输出(stderr) |
2> 或 2>>
|
输入重定向
输入重定向用于改变命令的输入源, 指输入可以不来自标准输入,而来自指定的文件
输入重定向的符号为<
, 命令格式为命令<文件名
如下代码所示, 通过重定向输入将文件file的内容作为输入让cat命令执行
[herry@localhost ~]$ cat test.txt
hello world
[herry@localhost ~]$ cat<test.txt
hello world
虽然执行结果相同,但第一行代表是以键盘作为输入设备,而第二行代码是以
test.txt
文件作为输入设备。
输出重定向
在LINUX中,输出重定向是指将命令的输出重定向到一个文件或者设备上。这可以通过使用">“或”>>"符号来实现
类型 | 操作符 | 描述 |
---|---|---|
重定向标准输出 |
>
|
输出重定向将命令执行的结果输出至指定的文件中, 而不会显示在屏幕上 |
重定向标准输出 |
>>
|
将命令的执行结果追加输出至指定文件 |
重定向标准错误 |
2>
|
清空指定文件的内容, 并将标准错误信息输出至此文件 |
重定向标准错误 |
2>>
|
将标准错误信息追加输出至指定的文件 |
重定向标准输出和标准错误 |
&>
|
将标准输出、标准错误的内容全部输出至指定文件, 而不会显示在屏幕上 当 >& 后面接文件时,表示将标准输出和标准错误输出重定向至文件当 >& 后面接文件描述符时,表示将前面的文件描述符重定向至后面的文件描述符
|
将`ls /etc`的执行结果输出至test.txt文件
[root@localhost 桌面]# ls /root/ >test.txt
[root@localhost 桌面]# cat test.txt
anaconda-ks.cfg
file
initial-setup-ks.cfg
test
将`ls /etc`的执行结果追加至test.txt文件
[root@localhost 桌面]# ls /root/ >>test.txt
[root@localhost 桌面]# cat test.txt
anaconda-ks.cfg
file
initial-setup-ks.cfg
test
anaconda-ks.cfg
file
initial-setup-ks.cfg
test
将执行`fuckcmd`命令的错误信息输出至test.txt文件
[root@localhost 桌面]# fuckcmd 2>test.txt
[root@localhost 桌面]# cat test.txt
bash: fuckcmd: 未找到命令...
将执行`fuckcmd`命令的错误信息追加输出至test.txt文件
[root@localhost 桌面]# fuckcmd 2>>test.txt
[root@localhost 桌面]# cat test.txt
bash: fuckcmd: 未找到命令...
bash: fuckcmd: 未找到命令...
管道操作
管道可以把一系列的命令连接起来, 将第一个命令的输出作为第二个命令的输入, 而第二个命令的输出又会作为第三个命令的输入, 以此类推下去, 显示在屏幕上的内容是管道行最后一个命令的输出
管道命令由若干个指令组成, 每个指令用|
隔开, 仅有在前一个指令执行正确后才会执行后面的指令, 管道命令的使用格式如下:
command1 | command2 | command3
cut
cut命令可将字符串按指定分隔符分割成多个部分,其中-f
参数是用来指定输出哪些区块,默认是输出所有区块。
-d
:后接分割字符,默认是制表符(tab),可以指定分割字符。-f
:后接表示输出第几个区块或者区块范围,多个区块可以用逗号分隔
例如,将/etc/passwd文件中所有用户名输出:
cut -f 1 -d ":" /etc/passwd
使用实例
1.查询PATH变量的第三部分内容
[root@localhost 桌面]# echo $PATH | cut -d: -f 3
/usr/bin
2.查询系统中有多少个用户使用bash
[root@localhost 桌面]# cat /etc/passwd | grep /bin/bash | wc -l
2
wc
命令是Linux中的一个文本统计工具,用于统计文本中的字符数、单词数和行数, 其中-l
参数用于统计行数
LINUX学习之管道和重定向(十)相关推荐
- LINUX学习基础篇(三十五)日志管理
LINUX学习基础篇(三十五)日志管理 日志管理 系统中常见的日志文件 日志文件格式 rsyslogd服务的配置文件 日志轮替 logrotate配置文件 配置文件夹 /etc/logrotate.d ...
- LINUX学习基础篇(二十二)硬盘结构
LINUX学习基础篇(二十二)文件系统管理 硬盘 磁盘结构 硬盘接口 硬盘 磁盘结构 扇区是磁盘的最小存储单位,每个扇区的大小是固定的,为512Byte.硬盘里有多个磁盘,每个磁盘中,有多个同心圆,这 ...
- LINUX学习基础篇(二十六)swap分区
LINUX学习基础篇(二十六)swap分区 swap分区 查看swap分区大小 分配swap分区 格式化swap分区 增加swap分区 swap分区 Linux中的swap分区相当于Windows中的 ...
- Linux中的管道与重定向
前言: 这篇博文主要参考了鸟哥的<鸟哥的Linux私房菜>和杨鹏(NetSnake)的<Linux服务器架设>这两本书,以及在网络上查阅的资料.此博文作为我阅读<鸟哥的L ...
- Linux学习笔记4.4-Linux重定向
运算器.控制器:CPU 存储器:RAM 输入/输入设备 程序:数据+指令 控制器:指令 运算器: 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:CPU暂时存储器 I/O ...
- linux中的管道和重定向
I/O重定向: Linux: >: 覆盖输出 >>:追加输出 set -C: 禁止对已经存在文件使用覆盖重定向: 强制覆盖输出,则使用 >| set +C: 关闭上述功能 2 ...
- Linux学习笔记RHEL 7(十)--使用Vsftpd服务传输文件和使用Samba或NFS实现文件共享
一.文件传输协议 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性 ...
- Linux学习笔记-管道的读写特性
目录 理论 栗子 理论 管道的读写特性 1.通过打开两个管道来创建一个双向的管道: 2.管道默认是阻塞性的,当进程从管道中读取数据,若没有数据进程会阻塞: 3.当一个进程往管道中不断地写入数据但是没有 ...
- [linux学习](linuxprobe课程)十二 使用Bind提供域名解析服务
DNS(domain NAME SYSTEM)域名解析系统 用来地址解析,比如内网环境想外网听歌,可以配置个DNS服务器,服务器联通内外网,听歌的地址解析成一个IP,再将IP映射到外网.也可进行反向解 ...
最新文章
- Halcon算子盘点:Chapter 19:轮廓线XLD
- JAVA调用C语言写的SO文件
- Android错误-error:Foundtextwhereitemtagisexpected
- eda技术试卷_《EDA技术》试题及答案
- android Content provider 组件
- oracle-约束-序列
- 「小程序JAVA实战」小程序页面的上拉下拉刷新(50)
- Linux网络操作系统及应用教程( 项目式)项目二
- Linux修改MySQL数据库密码
- plc梯形图如何转c语言,梯形图和指令怎么转换?plc梯形图转换指令表
- 微信小程序(八 配置和请求)
- 时间线vue,类似物流快递运单追踪
- HTML如何使用隐藏图片,css3如何隐藏图片?
- 【考研英语】作文只是背模板?正确复习姿势了解下
- LiveQing私有云端流媒体-拉转直播功能
- [深入研究4G/5G/6G专题-8]: 测试-测试终端-高端无线CPE/Router的高通SDX55 5G NR芯片方案
- 【JavaWeb篇】快速上手Tomcat|实战项目详解
- 十四、51单片机之AD转换
- 解决ROS包校验不符问题,国内易科ros源
- 2021-09-17电子芯片开发——环形补光灯方案
热门文章
- 转型成为项目经理,鬼知道我经历了什么
- 有一个和尚负责做馒头,做好30个其它三个和尚就可以吃馒头, *当馒头吃完了,第一个和尚就再做30个馒头 生产消费
- MOOC 北京大学 《人工智能实践》 课程笔记(文末有全部代码)
- 全国计算机等级一级b真题,全国计算机等级考试:一级B选择题真题(3)
- Kickstarter的商业模式: Kickstarter如何赚钱?
- 架构师接龙:盛大许式伟 VS 金山张宴
- could not initialize proxy - no Session:解决懒加载(排除不需要查询显示的属性)
- 老猿学5G扫盲贴:中国移动5G融合计费漫游计费架构和路由方案
- (转)漫谈CMS:ZOOMLA、NETCMS、风讯、动易异同
- 七夕祭(贪心、难点)