IO重定向及管道(输入输出重定向)

程序=指令+数据;

可用于输入的设备:文件

键盘设备、文件系统中的常规文件、网卡等;

可用于输出的设备:文件

显示器、文件系统中的常规文件、网卡等;

程序的数据流有三种:

输入数据流:标准输入(stdin),通常指键盘;

输出数据流:标准输出(stdout),通常指显示器;

错误输出流:错误输出(stderr),通常是显示器;

fd:file descriptor,文件描述符;

标准输入通常用0表示;

标准输出通常用1表示;

错误输出通常用2表示;

IO重定向:输出重定向(> 大于号)

标准输出:输出重定向:>;调整指定输出位置;例如:cat /etc/issue > /tmp/issue.out

特性:覆盖输出(不做提示直接覆盖指定位置内容);

标准输出:输出重定向:>>;例如:cat /etc/issue >> /tmp/issue.out

特性:追加输出(在原有文件内容尾部新增输出内容)

错误输出:错误输出重定向:2>;   特性:覆盖输出;

错误输出:错误输出重定向:2>>;   特性:追加输出;

合并标准输出流和错误输出流(一):&>;特性:覆盖输出;

例如:cat /etc/issue &> /tmp/issue.out ;

合并标准输出流和错误输出流(一):&>>;特性:追加输出;

例如:cat /etc/issue &>> /tmp/issue.out ;

合并标准输出流和错误输出流(二):command(命令) > /path/to/somefile (文件路径) 2>&1;特性:覆盖输出;

例如:cat /etc/issue > /tmp/issue.out  2>&1;

合并标准输出流和错误输出流(二):command(命令) >> /path/to/somefile (文件路径) 2>&1;特性:追加输出;

例如:cat /etc/issue >> /tmp/issue.out  2>&1;

特殊设备:/dev/null  位同,数据黑洞,这是一个假设备,输入数据后,数据会被悄悄丢弃,输出数据没有任何意义时,可以把数据重定向至/dev/null ;

set命令:能设置所使用shell的执行方式,可依照不同的需求来做设置;

set -C:禁止覆盖输出重定向至已存在的文件;(注:仅对当前进程有效)

此时可使用强制覆盖重定向:>|;(在-C作用下依然可以覆盖指定文件)

例如:cat /etc/issue >| /tmp/issue.out ;

set +C:关闭以上特性;

IO重定向:输入重定向 (< 小于号)

tr命令:字符转换命令

使用方式:tr [OPTION(选项)]......SET1[SET2]

把输入的数据当中的字符,凡事SET1定义范围内出现的字符,通通对位(一对一)替换为SET2出现在字符;

例如:tr [a-z] [A-Z] 

用法1:tr  SET1 SET2 < /path/from/somefile  读取数据,完成转换;

例如:tr [a-z] [A-Z] < /etc/issue

用法2:tr -d SET1  < /path/from/somefile 读取数据,删除字符;

-d:删除字符串1中出现的所有字符;

例如:tr -d 'abc' < /etc/issue   

注意:tr命令不会修改原文件,只是读取数据,修改后展示出来;

<<:此处创建文档;(EOF,END 为命令结束符)

用法:1、输出提示:cat << EOF;

2、提示保存在文件中:cat > /path/to/somefile << EOF

 

 

 

 

 

 

 

 

posted on 2022-10-18 10:43  暮夜~  阅读(64)  评论(0)    收藏  举报

导航