标准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)

    学习笔记

    Linux笔记 2018-05-13
  • Ansible简介与实验

    ansille简单实现keepalived一主一备

    2018-08-08
  • rm 和 inode

    mv和inode :  

    Linux笔记 2018-04-01
  • LVM ,RAID详解及实例分析

    lvm 逻辑卷:由 dm 模块实现PV :物理卷 物理设备:可以是分区,raidVG :由多个pv组合的一个卷组相当于扩展分区,不能直接使用,它会将多个pv组合的逻辑设备上划分为多个大小为PE的块,PE大小比block chunk 大的多,由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent…

    Linux笔记 2018-04-23
  • 马哥教育– 第一周作业

    一、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有其他部件。 存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电、磁、光学等方式的媒…

    2018-05-12