一、系统输入输出的理解

  •  运行一个程序时,需要从某个位置读取输入信息,然后CPU处理,最后将输出

  显示在屏幕或文件中;其中,某个位置相当于输入设备,屏幕或文件为输出设备。

  •  标准输入:stdin,默认是键盘,只能进行读取操作
  •  标准输出:stdout,默认是显示屏,只能进行写入操作
  •  标准错误:stderr,默认连接是显示屏,只能进行写入操作

  二、系统输入输出的管理

  1、输出重定向

    >     ## 重定向正确输出
    2>   ## 重定向错误输出
    &>   ## 重定向所有输出

  注意:重定向会覆盖源文件内容;一般错误会被重定向到/dev/null中

  实例:(以下实验必须在student用户下完成)

  • 使用命令*** find /ect/ -name passwd > file *** 定向正确输出到file,并使用cat命令查看:

  

  •  使用命令*** find /etc/ -name passwd 2>file.err *** 定向错误输出到file.err

  

  •  命令*** find /etc/ -name passwd &>file.all ***定向所有输出到file中

  

  •  使用命令*** >file *** 进行清空file文件

  

  2、输出追加

    >>     ##追加正确输出到文件最后
    2>>   ##追加错误输出到文件最后
    &>>   ##追加所有输出到文件最后

  注意:追加不会覆盖源文件,内容会加在源文件末尾

  实例:此实例在普通用户下操作

  •  使用***find  /etc/ -name passwd >> file***命令,把正确结果追加在file文件末尾

  

  •  使用*** find /etc/ -name passwd  2>> file1 ***命令,把错误结果追加在file1中:

  

  •  使用*** find /etc/ -name passwd  &>> file2***命令,把所有输出追加在文件file2中:

  

  3、管道符 

  •  管道的作用:’|’是把前一条命令的输出变成后一条命令的输入
  •  注意:

     管道只允许正确输出通过;
     通过管道的输入将变成输出,而变成输入的这些输出会被第二条命令处理的;
     如果需要保存输出内容,那么要复制一份输出,用到的命令是”tee“;

     使用2>&1可以把stderr转换成stdout。

  •  实例:(在普通用户下进行操作)

   使用***find /etc/ -name passwd | wc -l ***命令时,则会显示出错误结果,正确结果

   通过管道后执行wc -l,同时显示行数,结果如下:

   

     使用*** find /etc/ -name passwd 2>&1 | wc -l ***命令,是错误结果通过管道后,在第

   二条命令执行,最终显示结果为6:

   

   使用***find /etc/ -name passwd 2>&1 | tee file | wc -l***命令,先保存一份输出在file

文件中,并输出行数6,结果如下:(使用tee命令会使file中的内容被覆盖):

   

  4、输入重定向

    <<  ## 重定向输入

  实例:重定向输入到文件file中,结果如下:

  

练习二:

1、显示当前时间,显示格式为hh:mm:ss,并保存到文件time.txt中;

命令:date +%T | tee time.txt

2、显示/etc/passwd 文件的第15-18行内容

命令:head -n 18 /etc/passed | tail -n 4

 

3、显示/bin中文件包含大写字母的文件,保存在bin_westos_file.txt文件中,并统计个数显示到

屏幕上;

命令:find  /bin/ -name *[[:upper:]]*  |  tee  bin_westos_filetxt | wc -l

命令:find /etc/ -name passwd 2>> /dev/null

5、在student用户下查找/etc下passwd文件,正确输出保存到/tem/westos.out,错误输出保存

到/tem/westos.err;

find /etc/ -name passwd > /tem/westos.out 1>/tem/westos.err

6、在student用户下查找/etc下passed文件,显示命令输出,并保存输出到/tem/westos.all中

命令:find /etc/ -name passwd | tee /tem/westos.all

  

  

Linux输入输出管理的更多相关文章

  1. Linux进程管理(3):总结

    7. exit与_exit的差异    为了理解这两个系统调用的差异,先来讨论文件内存缓存区的问题. 在linux中,标准输入输出(I/O)函数都是作为文件来处理.对应于打开的每个文件,在内存中都有对 ...

  2. Linux进程管理(二)

    目录 Linux进程管理(二) 参考 vmstat命令 top命令 Linux进程管理(二)

  3. 浅谈Linux内存管理机制

    经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在这 ...

  4. linux内存管理

    一.Linux 进程在内存中的数据结构 一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:    1) 代码段:存放CPU执行的机器指令.通常代码区是共享的,即其它执行程 ...

  5. Linux软件包管理

    Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...

  6. Linux 软件包管理

    简介: linux中软件包的管理随着linux版本的不同而不同,一般RPM和DPKG是最常见的两类软件包管理工具.分别应用基于rpm软件包的linux发行版本和基于deb软件包的linux发行版本. ...

  7. 【CentOS】Linux日常管理

    /////////////////////////目录///////////////////////////////////////// 一.日常监控指标相关 1.监控系统状态命令 2.查看系统进程 ...

  8. linux 用户管理

    linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ...

  9. Linux进程管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...

随机推荐

  1. 20145309《Java程序设计》第八周学习总结

    日志 •java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类 ...

  2. 20145313Java第一次实验

    实验内容 1.JVM.JRE.JDK的安装位置与区别: 2.命令行运行javac:java:javac -cp; java -cp: 3.PATH,CLASSPATH,SOURCEPATH的设定方法与 ...

  3. Btrace使用入门

    1.什么是BTrace BTrace是sun公司推出的一款Java 动态.安全追踪(监控)工具,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数.返回值.全局变量和堆 ...

  4. rocketmq事务消息

    rocketmq事务消息 参考: https://blog.csdn.net/u011686226/article/details/78106215 https://yq.aliyun.com/art ...

  5. 爬虫框架Scrapy之CrawlSpiders

    CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com 上一个案例中,我 ...

  6. 初入spring boot(七 )Spring Data JPA

    Spring Data JPA通过提供基于JPA的Repository极大地减少JPA作为数据访问方案的代码量. 1.定义数据访问层 使用Spring Data JPA建立数据访问层十分简单,只需定义 ...

  7. centos cgroup配置

    centOS 6:1. 启用cgroup    查看内核是否支持cgroup功能:cat /boot/config-`uname -r` | grep -i rt_group    查看支持的子系统: ...

  8. 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序

    最近在准备笔试题和面试题,把学到的东西整理出来,一来是给自己留个笔记,二来是帮助大家学习. 题目: 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例:  输入:[1,2,3,5,2, ...

  9. MongoDB开启安全认证

    MongoDB开启安全认证 注意 对MongoDB部署启用访问控制会强制执行身份验证,要求用户识别自己.当访问启用了访问控制的MongoDB部署时,用户只能执行由其角色确定的操作. 启用访问控制后,请 ...

  10. Python面向过程和面向对象基础

    总结一下: 面向过程编程:根据业务逻辑从上到下的写代码-----就是一个project写到底,重复利用性比较差 函数式:将某些特定功能代码封装到函数中------方便日后调用 面向对象:对函数进行分类 ...