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
浙公网安备 33010602011771号