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

相关推荐

  • yum

    rpm yum

    Linux笔记 2018-04-20
  • Linux 第一週作業 (6.18–6.24)

    计算机的组成及其功能
    罗列Linux的发行版
    Linux的哲学思想
    一些簡單命令
    如何在Linux系统上获取命令的帮助信息
    Linux发行版的基础目录名称命名法则及功用规定

    Linux笔记 2018-06-23
  • 学习笔记(13)

    学习笔记(13)

    Linux笔记 2018-04-30
  • 计算机原理与Linux基础

    计算机的组成及功能 1、其实计算机的组织分为内部设备和外部设备, 内部设备:         CPU:运算器、寄存器、缓存         存储器:内存,RAM(Random Access Memory)         控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 外部…

    Linux笔记 2018-05-13
  • linux运维学习的常用命令总结以及需要注意的地方(2)

    少壮不努力,老大徒伤悲,努力加油!
    5.设置时区,日期,时间的相应命令以及用法
    6 如何获得帮助,这个能力决定了你的技术能力!
    7.简单的挂载光盘,安装应用程序的方法,以screen为例(包含了screen防止大文件备份失败的技巧)
    8.反向单引号,双引号,以及单引号对于命令和变量的识别
    9.bc计算器,date命令,history命令,passwd修改密码,$pwd变量,父/子目录,basename,dirname
    10.windows和linux互传文件的方法,普通用户非图形界面下挂载光盘

    2018-04-02
  • linux 文本处理三剑客

    grep 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本符所编写的过滤条件 grep  命令选项: 正则表达式: 基本正则表达式元字符      字符匹配: 正则表达式: 正则表达式: 正则表达式: 示例:a\|b: a或b    C\|cat :C或cat         \(C\|c\…

    Linux笔记 2018-04-15