input:输入读入数据
output:输出数据文件的
打开的文件都有一个fd: file descriptor (文件描述符)
ll /proc/$$/fd #查看fd
exec 8<>/data/hosts #指定fd
I/O重定向:该变默认位置
> #把标准输出重定向到文件(一个”>”是覆盖,”>>”是追加)
2> #把错误输出重定向到文件
&> #把所有输出重定向到文件
ls /error /etc >f1 2>f2 #把对的输出放到f1文件中错的输出放到f2文件中
() #提升命令输出的优先级
例如:ls /error /etc 2>&1 >all.log #不加()错误信息显示正确信息重定向到all.log
(ls /error /etc 2>&1) >all.log #家()先把错误信息重定向到all.log再把正确的追加进去
set –C 禁止将内容覆盖已有文件,但可追加
>| file 强制覆盖
set +C 允许覆盖
>> 原有内容基础上,追加内容
&> /dev/null #不显示输出结果
>文件名 #创建空文件夹
>>文件名 #文件名不重名的情况下创建空文件夹,重名译为追加
tr #替换和删除字符(文本处理命令)
tr ‘a-z’和[:upper:]不能混用,语法错误
-d #删除输入
-s #删除连续重复输入
-sc ‘a’ #除了a压缩(删除)连续重复输入,c表示取反
-dc ‘a\n’ #除了a删除所有输入回车
seq 1 10 #列出1到10以列的形式
hexdump #查看文件内容的机器码
cat #查看
cat < file #吧file文件中的内容发送给cat相当于cat file
cat > filea <fileb #吧fileb文件中的内容重定向给filea
cat > file #单行重定向,回车一次写入一行,Ctrl+d结束(如果文件中有内容会被覆盖)
cat > file <<EOF #多行重定向,以EOF(end of file约定俗成的,也可以用其他字符 )结束
| #管道符,吧前一个命令的标准输出传送给下一个命令
错误输出默认不能通过管道转发,可用2>&1或者|&实现
|& #把标准输出和错误输出同时传输给下一个命令
echo {1 .. 100} | tr ‘ ’ ‘ +’ | bc #显示1到100的结果给tr,tr把空格替换成+的结果给bc命令实现计算1+2+3…. +100 。等同于seq -s + 100 | bc命令
命令1 | tee [-a] 文件名 | 命令2
把命令1的标准输出保存到文件中,作为命令2的输入,-a追加,否则覆盖
touch `openssl rand -base64 9 |tr ‘’’`.log生成指定字符的随机文件名
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94701