标准IO和管道

一.三种I/O设备

  1. 标准输入(STDIN) -0   默认接受来自键盘的输入
  2. 标准输出(STDOUT) -1  默认输出到终端窗口
  3. 标准错误(STDERR) -2   默认输出到终端窗口

程序:指令加数据

每个文件打开都有一个文件描述符(fd)

ll /proc/$$/fd      //可以查看文件的描述符

exec 8<>/data/hosts   //自己指定一个文件的描述符(数字)

I/O重定向:改变默认位置

ls  >  /dev/pts/5    重定向到其他窗口显示

ls  >  /data/ls.out      重定向到指定文件

cmd  2>  /data/err.log     重定向错误信息到指定文件

>    实现功能相当于覆盖

>|      实现强行覆盖

>>     相当于追加,保留文件原内容

set  -C   禁止覆盖

set   +C   允许覆盖

ls   /error  /data   >f1   2>f2    //实现标准输出和错误各保存在一个文件中

ls   /error  /data  >all.log   2>&1   //将标准输出和错误都放在同一个文件中

ls   /error  /data  &>all.log     或(ls   /error  /data   2>&1 )  >all.log

多条命令的输出重定向:例如(ls;pwd)  >  all.log

/dev/null    用来吸收消化不想输出的内容

>>    创建空文件(比touch更安全)

>    软链接文件    //清空原文件

<     标准输入重定向

echo redhat |passwd –stdin user     //实现修改用户user的口令

cat <f1 >f1    //将f1 文件清空

 

tr命令:   转换和删除字符

-c   取字符集的补集

-d   删除所有属于第一字符集的字符

-s     将连续重复的字符以单独一个显示

-t      将第一个字符集对应字符转化为第二个字符集对应的字符

 

cat   >f1    //创建一个空文件

aaaa   后回车   实现单行重定向

 

使用<<EOF或<<END  实现多行重定向 (指定结束词后,文本结束必有结束词)

 

dos2unix      //将Windows文件格式转换为Linux文件格式

unix2dos      //将linux文件格式转化为Windows文件格式

 

mail    命令:  发/收邮件

mail  -s  ‘hello’  user     //给用户user发邮件标题为hello

mail  -s  ‘hello’  user  <<END    //可手动输入多行邮件内容(可引用变量和命令)

mail  -s  ‘hello’  user  <mail.txt   //将文件内容作为邮件的内容来发送

mail    收邮件

 

二.管道:用于连接命令

命令1  |    命令2       命令1的标准输出作为命令2 的标准输入

hostname | tr ‘a-z’ ‘A-Z’     //输出大写的主机名

cat   mail.txt   |  mail  -s  ‘hello’  user      //将文件内容作为邮件的内容来发送

|&     可实现将错误信息转化为正确信息传给下个命令(旧版本不支持)

echo {1..100} | tr ‘ ‘ ‘+’ |bc     //实现1到100加和(或seq -s + 100 |bc)

 

tar 命令:打包文件

tar –cvf  –  /home  |  tar  -xvf  –     //打包文件后解包该文件

 

tee   重定向到多个目标

-a    追加

三.命令补充

mktemp   xxxx.log    //创建临时的文件或目录(名字随机)

touch f$[RANDOM%20]   用这条就行

systemctl enable autofs     //启用autofs功能

systemctl  autofs      //开启autofs功能后才可以挂载光盘

lsb_release   -a    //   查看操作系统版本信息(centos6中)

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94700

(0)
qljqlj
上一篇 2018-04-02 15:07
下一篇 2018-04-02 19:25

相关推荐

  • shell脚本编程基础(2)——新手注意事项及技巧16条

    总结了一些shell脚本编程初学者常犯的错误、注意事项及技巧

    2018-04-14
  • bash脚本进阶

    过程式编程语言:顺序执行选择执行if判断if 判断条件;那么条件为真的分支代码fi if 判断条件;then条件为真的分支代码else条件为假的分支代码fi多分支if 判断条件1; then条件为真的分支代码elif 判断条件2; then条件为真的分支代码elif 判断条件3; then条件为真的分支代码else以上条件都为假的分支代码ficase 变量引…

    2018-05-11
  • 磁盘存储和文件系统

    磁盘存储和文件系统: 磁盘设备的文件命名:/dev/dev_file虚拟磁盘:/dev/vd磁盘标识: /dev/sda,/dev/sdb……磁盘分区:/dev/sda1,/dev/sdb2…… chs 磁盘sector 扇区 512bytestrack 磁道head 磁头cylinder柱面 使用磁盘: 分区创建文件系统:格式化挂载:分配目录名 hexdu…

    Linux笔记 2018-05-20
  • Linux 基础

    Linux 基础 一.计算机组成及其功能 当今计算机采用冯·诺依曼架构,必须具备的五大基本组成部件,包括: 1.输入数据和程序的输入设备 2.记忆程序和数据的存储器 3.完成数据加工处理的运算器 4.控制程序执行的控制器 5.输出处理结果的输出设备 计算机基本组成结构图 二.Linux的发行版,不同发行版之间的联系与区别 1.Linux 严格来说Linux是…

    2018-05-12