1、标准输入输出
我们知道,执行一个shell命令行时通常会自动打开三个标准文件, 即标准输入文件(stdin),通常对应终端的键盘; 标准输出文件(stdout) 标准错误输出文件(stderr),这两个文件都对应终端的屏幕。 进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 >默认为标准输出重定向,与 1>相同 2>&1意思是把 标准错误输出 重定向到 标准输出. &>file意思是把 标准输出 和 标准错误输出 都重定向到文件file中 2>&1 > file 把错误输出定向到标准输出(此时标准输出为终端,所以输出到终端), 标准输出定位到文件 > file 2>&1 把标准输出定位到文件,错误输出到标准输出(此时标准输出指向文件,所以输出到文件) ():合并多个程序的STDOUT ( cal 2007 ; cal 2008 ) > all.txt
2、tr命令
tr 转换和删除字符 tr [OPTION]... SET1 [SET2] 选项: [root@localhost ~]# tr ‘a-z’ ‘A-Z’< /etc/issue CENTOS RELEASE 6.8 (FINAL) KERNEL \R ON AN \M -c或--complerment:取字符集的补集 -d或--delete:删除所有属于第一字符集的字符 [root@localhost ~]# echo "0123asdf..**-" |tr -cd '[0-9]' 0123 -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示 -t或--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
3、此处文档(Here documents)
用法:1、多行传递文本 [root@localhost ~]# cat << EOF > nihao > hello > EOF nihao hello EOF为标识符字符,可随意写。 用法:2、传递参数给需要参数的脚本或程序 vi $1 <<CLOUD i # 进入vim编辑模式 This is line 1 This is line 2 ^[ # ^[ 一个特殊转义符用于返回命令行模式。写脚本时按ctrl+v再按<Esc>就能自动打出这个字符。 ZZ # 保存退出vim CLOUD # 结束标识符
4、管道
管道命令 操作符是:| ,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。 “错误输出”默认不能通过管道转发,可利用2>&1 或 |& 实现 [root@localhost ~]# cat /e |& tr 'a-z' 'A-Z' CAT: /E: 没有那个文件或目录 #set -C :禁止覆盖输出重定向至已存在文件,仅对当前shell有效 >|:强制覆盖输出 #set +C:关闭上述特性
5、重定向到多个目标:tee命令
[root@localhost ~]# ls /root/ |tee a.txt|tr 'a-z' 'A-Z' ANACONDA-KS.CFG INSTALL.LOG INSTALL.LOG.SYSLOG 公共的 模板 视频 图片 [root@localhost ~]# cat a.txt anaconda-ks.cfg install.log install.log.syslog 公共的 模板 视频 图片 把命令1的STDOUT保存在文件名中,然后管道输入给命令2使用 -a:追加至文件而非覆盖
用户和组
原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/27275