file 标准输入输出以及输出重定向 > tr |管道 mail
1.file
file [options] <filename>… 确定文件内容,是根据文件的头部信息来判断
hexdump -C -n 100 文件名 查询头部信息(查询二进制信息,-n 100前100行,头部信息)
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型
2.标准输入和输出
打开的文件都有一个fd: file descriptor ( 文件描述符)
Linux 给程序提供三种I/O 设备
标准输入(STDIN )-0 默认接受来自键盘的输入
标准输出(STDOUT )-1 默认输出到终端窗口
标准错误(STDERR )-2 默认输出到终端窗口
输出重定向 >
> 把正确内容重定向到文件,文件不存在创建一个文件,存在覆盖
2> 把错误提示重定向到文件
> 最后加上1>&2 把所有输出重定向到文件(旧的) &> (新的)
> 最后加上2>&1 把正确的变成错误的
&> /dev/null 全部导入null设备中 “黑洞” set -C: 禁止将内容覆盖已有文件, 但可追加
>| file :临时强制覆盖
set +C: 允许覆盖
( cal 2007 ; cal 2008 ) > all.txt () :合并多个程序的STDOUT
3.tr 转换和删除字符 必须跟标准输入
使用< 来重定向标准输入;某些命令能够接受从文件中导入的STDIN
tr ‘a-z’ ‘A-Z’< /etc/issue该命令会把/etc/issue的内容小写变大写
-d –delete :删除所有属于第一字符集的字符
-s –squeeze-repeats :把连续重复的字符以单独一个字符表示
-t –truncate-set1 :将第一个字符集对应字符转化为第二字符集,强制对应
例: echo aaabbbcccdddd |tr -t ‘abcd’ ‘efg’ eeefffgggdddd
-c 补集 df -h |tr -c [a-zA-Z] ‘\n’|tr -s [:space:]
-dc ‘ ’ 除‘ ’的删除其他所有 -sc ‘ ‘ 除‘ ‘其他的连续重复的字符以单独一个字符表示
[:alnum:]字母和数字 [:alpha:]字母 [:cntrl:] 控制(非打印符)字符 [:digit:]数字
[:graph:]图形字符 [:lower:]小写字母 [:print:]可打印字符 [:punct:]标点符号
[:space:]空白符 [:upper:]大写字母 [:xdigit:]十六进制 字符
cat > file “<< 终止词”命令
从键盘把多行重导向给STDIN,直到终止词位置的所有文本都发送给STDIN
4.| 管道 减少垃圾文件
| 将正确结果 重定向给下一条命令
2>&1 | 或 |& 全部结果重定向
例: 获取boot目录所在分区的可用空间
5.tee
命令1 | tee 文件名 | 命令2 同时查看和记录输出
-a 把命令1 的STDOUT 保存在文件中,做为命令2 的输入-a追加
6.mail (利用< |)
mail 邮件
mail -s “主题” 收信人 < 文件内容 发邮件
cat 文件 | mail -s “主题” 收信人 发邮件
mail 查询邮件 & n 选择第几封打开
有 什 么 错 误 请 大 家 指 教!
原创文章,作者:along,如若转载,请注明出处:http://www.178linux.com/81874