初学Linux之标准I/O和管道

标准输入和输出

程序是由指令+数据组成

程序的数据流有三种:

输入数据流:<–标准输入(stdin),一般默认是键盘

输出数据流:–>标准输出(stdout),一般默认到终端窗口

错误输出流:–>标准错误(stderr),一般默认到终端窗口

标准输入:0

标准输出:1

错误输出:2

I/O重定向:改变默认位置

输出重定向将标准输出(stdout)和标准错误(stderr)重定向到指定位置

格式: 命令 操作符号 文件名

支持的操作符号:

> :把标准输出(stdout)重定向到文件,会覆盖原文件内容

>> :把标准输出(stdout)重定向到文件,会在原有内容基础上,追加内容

说明:上面是讲ll显示的结果输出重定向到文件file中,使用>时,file文件被覆盖了,使用>>时,原文件file和重定向的内容都显示了,是追加内容

2> :把标准错误(stderr)重定向到文件,会覆盖原内容

2>>:把标准错误(stderr)重定向到文件,会在原内容基础上,追加内容

说明:将命令执行的错误结果显示在file文件中,使用2>时,覆盖了原文件file输出的,使用2>>时,原文 件内容和标准错误都显示了,是追加内容

&>:把所有的输出重定向到文件,不管对错都输出到指定位置,覆盖输出

&>>:把所有的输出重定向到文件,不管对错都输出到指定位置,追加输出

说明:使用&>或者&>>时,执行ll时,是标准输出,lls是标准错误,但是不管是哪个的输出都重定向到file 文件中,2>&1和&>,&>>效果一样,2>&1是老版本使用,要在最后使用,才有效果。

command >/path/toshmefile 2>&1

command>>/path/to/somefile 2>&1

理解:A和B,将A输出到B上,如果对了,就正常输出到B上,如果错误了,内容还是输出在B上

set -C:禁止将内容覆盖已有的文件,但是可以追加强制覆盖 :

set +C:允许覆盖

合并多个程序的标准输出

(command ;command)>file

说明:将ll和echo shell的标准输出一起重定向到file文件中,此法只能用于标准输出,

标准错误不能使用

tr:转换和删除字符

tr [option] .. SET1 [SET2]==>[]非必选

选项:

-c:取字符的补集==>取代所有不属于第一字符集的字符

-d:删除所有属于第一个字符集的字符

-s:把连续重复的字符以单独一个字符表示

-t:将第一个字符集对应字符转换为第二字符集对应的字

管道使用符号|来连接命令

command1 |command2 |command3…

1.将命令1的标准输出发送给命令2,作为命令2的标准输入,命令2的标准输出发给command3,作为command3 的标准输入….

2.标准错误默认不能通过管道转发,但是可以利用2>&1或者|&实现

3.最后一个命令会在当前shell 进程的子shell 进程中执行

4.可以组合多种工具

tee命令:

command1 |tee filename | command2

把command1的标准输出保存在文件中,然后管道输入给command2

特点:

1.保存不同阶段的输出

2. 复杂管道的故障排除

3.同时查看和记录输出

练习

1.将/root/下文件列表,显示成一行,并文件名之间用空格隔开

ls /root/ |tr  ‘\n‘ ‘ ‘

2.计算1+2+3+..+99+100的总和

echo {1..100}|tr ‘ ‘ ‘+‘ |bc

3.将PATH变量每个目录显示在独立的一行

echo $PATH |tr ":" "\n"

4.将指定文件中0-9分别替代成a-j

cat /etc/issue | tr ‘0-9‘ ‘a-j‘

5.将文件/etc/centos-release中每个单词(由字母组成)显示在独立的一行,并无空行

cat /etc/centos-release | tr " " "\n"

原文地址:https://www.cnblogs.com/yaun1498078591/p/8805312.html

时间: 2024-10-09 23:51:54

初学Linux之标准I/O和管道的相关文章

Linux的标准I/O和管道

标准输入输出与管道  1.标准输入和输出 程序:指令+数据 指令:计算.加减乘除 数据:输入数据.输出数据 2.在Linux中每一个打开的文件都会分配一个当前进程中唯一的文件描述符,用来标识文件的状态 fd:file descripor 3.Linux提供给程序的有三种I/O设备 1.标准输入(stdin)      -0 默认接受来自键盘的输入 2.标准输出 (stdou)    -1 默认输出到终端窗口 3.标准错误   (stderr)  -2 默认输出到终端窗口 4.I/O 重定向:改变

Linux——标准I/O以及管道

标准I/O以及管道 目录 一.什么是I/O 二.什么是管道 三.三种I/O设备 四.把I/O输出错误重定向入文件 五.tr 六.从文件中导入STDIN 七.使用管道链接命令 八.tee 一.什么是I/O I/O(input/output),即输入/输出端口. 每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息.CPU与外部设备.存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器        接口.存储器通常在CPU的同步控制下工作,接口电路比

了解linux的标准目录结构

初学linux需要了解系统的文件目录及其用途 FHS (Filesystem Hierarchy Standard 文件系统目录标准) /:根目录,一般根目录下只存放目 /etc./bin./dev./lib./sbin应该和根目录放置在一个分区中 /bin 系统自身启动和运行时可能用到的二进制命令 /boot 系统引导加载时用到的静态文件 /dev 所有设备文件 也称为特殊文件 /etc 配置文件 /home 用户家目录 /lib ,lib64 共享库文件和内核模块 /media 挂载点便携可

标准I/O与管道;用户、组和权限;文件处理工具及正则表达式总结

四.标准I/O与管道标准输入和输出程序:指令+数据读入数据:Input输出数据:Output?打开的文件都有一个fd: file descriptor (文件描述符)?Linux给程序提供三种I/O设备?标准输入(STDIN)-0 默认接受来自键盘的输入?标准输出(STDOUT)-1 默认输出到终端窗口?标准错误(STDERR)-2 默认输出到终端窗口?I/O重定向:改变默认位置把输出和错误重新定向到文件?STDOUT和STDERR可以被重定向到文件命令 操作符号 文件名支持的操作符号包括: 把

标准I/O与管道

标准I/O与管道 标准输入和输出 读入数据:Input 输出数据:Output Linux给程序提供三种I/O设备 标准输入(STDIN)-0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标准错误(STDERR)-2 默认输出到终端窗口 I/O重定向:改变默认位置 把输出和错误重新定向到文件 STDOUT和STDERR可以被重定向到文件 命令 ~ 操作符号 ~ 文件名 支持的操作符号包括: 把STDOUT重定向到文件> 2> 把STDERR重定向到文件 &

初学Linux到底怎么学才是正确的学习方法?

首先从行业的角度分析Linux运维工程师这个职位,随着互联网行业不断发展壮大,越来越多复杂系统应运而生,为了保证系统稳定运行,必须要有足够多的Linux运维工程师.毕竟维护是软件生命周期中非常重要一个阶段,但是据统计目前国内的运维工程师人才是相对稀缺,故在近几年,运维工程师是一个热门职业. 对于2019年上半年,马哥教育做了一个考察,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快.从研究机构的数据来看,Linux职位数量和工资水平涨幅均在IT行业的前五之列

初学linux网络服务之vsftp服务实验

实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:测试默认安装vsftpd的结果 匿名用户与本地用户都可以登录 匿名用户登录到/var/ftp,只能下载不能上传 本地用户登录到本地用户的家目录,可以上传和下载 服务器端设置 [[email protected] ~]# cd /misc/cd/Server                 //进入RHEL5.9光盘 [[email protected

初学linux网络服务之samba服务实验

实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:Samba匿名共享 工作组为Tarena 将目录 /usr/src 共享给所有人 共享名设为 tools 允许所有人访问.无需密码验证 访问权限为只读 1.安装软件包 [[email protected] ~]# rpm -q samba-client samba samba-common  //查看安装包 package samba-client

初学linux网络服务之HTTP服务实验

实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:查看默认HTTP配置 找到默认红帽欢迎页面 (/etc/httpd/conf/httpd.conf ---->Include ----> /etc/httpd/conf.d  ----> welcome.conf  ----> /var/www/error/noindex.html) 前提条件: 1.配置IP [[email prote