输入/输出流控制

在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学习之管道和重定向(十)相关推荐

  1. LINUX学习基础篇(三十五)日志管理

    LINUX学习基础篇(三十五)日志管理 日志管理 系统中常见的日志文件 日志文件格式 rsyslogd服务的配置文件 日志轮替 logrotate配置文件 配置文件夹 /etc/logrotate.d ...

  2. LINUX学习基础篇(二十二)硬盘结构

    LINUX学习基础篇(二十二)文件系统管理 硬盘 磁盘结构 硬盘接口 硬盘 磁盘结构 扇区是磁盘的最小存储单位,每个扇区的大小是固定的,为512Byte.硬盘里有多个磁盘,每个磁盘中,有多个同心圆,这 ...

  3. LINUX学习基础篇(二十六)swap分区

    LINUX学习基础篇(二十六)swap分区 swap分区 查看swap分区大小 分配swap分区 格式化swap分区 增加swap分区 swap分区 Linux中的swap分区相当于Windows中的 ...

  4. Linux中的管道与重定向

    前言: 这篇博文主要参考了鸟哥的<鸟哥的Linux私房菜>和杨鹏(NetSnake)的<Linux服务器架设>这两本书,以及在网络上查阅的资料.此博文作为我阅读<鸟哥的L ...

  5. Linux学习笔记4.4-Linux重定向

    运算器.控制器:CPU 存储器:RAM 输入/输入设备 程序:数据+指令 控制器:指令 运算器: 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:CPU暂时存储器 I/O ...

  6. linux中的管道和重定向

    I/O重定向: Linux: >: 覆盖输出 >>:追加输出 set -C: 禁止对已经存在文件使用覆盖重定向:  强制覆盖输出,则使用 >| set +C: 关闭上述功能 2 ...

  7. Linux学习笔记RHEL 7(十)--使用Vsftpd服务传输文件和使用Samba或NFS实现文件共享

    一.文件传输协议 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性 ...

  8. Linux学习笔记-管道的读写特性

    目录 理论 栗子 理论 管道的读写特性 1.通过打开两个管道来创建一个双向的管道: 2.管道默认是阻塞性的,当进程从管道中读取数据,若没有数据进程会阻塞: 3.当一个进程往管道中不断地写入数据但是没有 ...

  9. [linux学习](linuxprobe课程)十二 使用Bind提供域名解析服务

    DNS(domain NAME SYSTEM)域名解析系统 用来地址解析,比如内网环境想外网听歌,可以配置个DNS服务器,服务器联通内外网,听歌的地址解析成一个IP,再将IP映射到外网.也可进行反向解 ...

最新文章

  1. Halcon算子盘点:Chapter 19:轮廓线XLD
  2. JAVA调用C语言写的SO文件
  3. Android错误-error:Foundtextwhereitemtagisexpected
  4. eda技术试卷_《EDA技术》试题及答案
  5. android Content provider 组件
  6. oracle-约束-序列
  7. 「小程序JAVA实战」小程序页面的上拉下拉刷新(50)
  8. Linux网络操作系统及应用教程( 项目式)项目二
  9. Linux修改MySQL数据库密码
  10. plc梯形图如何转c语言,梯形图和指令怎么转换?plc梯形图转换指令表
  11. 微信小程序(八 配置和请求)
  12. 时间线vue,类似物流快递运单追踪
  13. HTML如何使用隐藏图片,css3如何隐藏图片?
  14. 【考研英语】作文只是背模板?正确复习姿势了解下
  15. LiveQing私有云端流媒体-拉转直播功能
  16. [深入研究4G/5G/6G专题-8]: 测试-测试终端-高端无线CPE/Router的高通SDX55 5G NR芯片方案
  17. 【JavaWeb篇】快速上手Tomcat|实战项目详解
  18. 十四、51单片机之AD转换
  19. 解决ROS包校验不符问题,国内易科ros源
  20. 2021-09-17电子芯片开发——环形补光灯方案

热门文章

  1. 转型成为项目经理,鬼知道我经历了什么
  2. 有一个和尚负责做馒头,做好30个其它三个和尚就可以吃馒头, *当馒头吃完了,第一个和尚就再做30个馒头 生产消费
  3. MOOC 北京大学 《人工智能实践》 课程笔记(文末有全部代码)
  4. 全国计算机等级一级b真题,全国计算机等级考试:一级B选择题真题(3)
  5. Kickstarter的商业模式: Kickstarter如何赚钱?
  6. 架构师接龙:盛大许式伟 VS 金山张宴
  7. could not initialize proxy - no Session:解决懒加载(排除不需要查询显示的属性)
  8. 老猿学5G扫盲贴:中国移动5G融合计费漫游计费架构和路由方案
  9. (转)漫谈CMS:ZOOMLA、NETCMS、风讯、动易异同
  10. 七夕祭(贪心、难点)