---IO重定向:

  典型的冯诺依曼计算机由5大部件组成:运算器,控制器,存储器,输入设备和输出设备。而一台计算机上可能有很多输入设备和输出设备,键盘、麦克风是输入设备,显示器、声卡是输出设备,网卡、硬盘、U盘既是输入设备又是输出设备。如此众多的输入输出设备中系统设定了默认输入设备是键盘,又称标准输入,用STDIN表示,文件描述符0;默认输出设备是显示器,又称标准输出,用STDOUT表示,文件描述符为1;默认错误输出也是显示器,用STDERR表示,文件描述符为2。虽然标准输出设备和标准错误输出设备都是显示器,但两者其实是不同的数据流。IO重定向就是将默认的输入输出重定向到另一个设备或者文件。

  标准输出重定向符号:

  > :覆盖输出重定向

  >| :强制覆盖重定向

  >>:追加覆盖重定向

  set命令是bash的一条内建命令,用于更改shell属性和位置参数,具体用法可以参见help set,其中set -C用于关闭输出重定向,set +C开启输出重定向

示例:

  ls     /var   >    /tmp/var1.txt    本来ls /var 的输出结果会打印在屏幕上,但此时被重定向到/tmp/var1.txt文件中了

ls    /varr    >   /tmp/var2.txt    bash提示     ls: 无法访问'/varr': 没有那个文件或目录    因为ls /varr是一个错误输出,不能使用标准输出重定向,若要重定向应该使用标准错误重定向,

ls    .varr    2>   /tmp/var2.txt

标准错误输出重定向符:

  2>:覆盖错误输出重定向

  2>>:追加错误输出重定向

有没有既能重定向标准输出又重定向标准错误输出呢?当然是有的

&>   表示重定向标准输出或者标准错误输出

输入重定向:

<   :输入重定向

wc  -l  <   /etc/passwd  计算passwd文件的行数

<<  :此处生成文档,用这种方式可以在脚本中生成文档,例如:

cat     >>  /tmp/myfile.txt    << EOF      将用户从终端中输入的内容重定向到/tmp/myfile.txt文件中,直到用户输入EOF才结束输入

---管道:

COMMAND1   |  COMMAND2  | COMMAND3

管道的含义是将前一个命令的输出作为后一个命令的输入

ls  /var   |   tr   'a-z'   'A-Z'

输出都被替换成了大写

BACKUPS
  CACHE
  LIB
  LOCAL
  LOCK
  LOG
  MAIL
  OPT
  RUN
  SPOOL
  TMP
  WWW
    举几个例子吧:

1、求/etc/passwd文件的行数

wc  -l     /etc/passwd  | awk '{print $1}'

wc   -l   /etc/passwd   |    cut  -d" "  -f1   这里单引号或双引号都行
2、取出当前计算机上所有用户的默认shell,要求每种shell只显示一次,并且按顺序输出

cat    /etc/passwd |  awk -F:   '{print $7}'   |    sort    -u

cat  /etc/passwd |   cut -d: -f7   |   sort -u

3、显示var/log目录下每个文件的类型

sudo  file     /var/log/*

4、取出/etc/passwd文件的第6行

cat  /etc/passwd    |   head   -6   |   tail  -1

5、取出/etc/passwd文件中第9个用户的用户名和默认shell,显示到屏幕上并保存至/tmp/users文件中

cat /etc/passwd   |    head   -9   |   tail -1  |    awk -F:    '{print $1,$7}'  |  tee /tmp/users

cat /etc/passwd   |   head   -9   |  tail -1  | cut -d: -f1,7

  

GNU/Linux复习笔记(2)的更多相关文章

  1. GNU/Linux复习笔记(1)

    第一次接触GNU/Linux还是大四上学期实习的那两个月在window里装了 个虚拟机玩红帽的系统,那段时间稍微学了一点命令就不玩了.后来大四下学期认识了王总,装了双系统,那段时间又对linux有了进 ...

  2. Linux复习笔记-001-进程的管理

    1.什么是进程? 进程是已经启动的可执行的程序运行实例. 程序是二进制文件,静态 ./bin/date/ /usr/sbin/ 进程:是程序运行的过程 2.Linux为1的进程? centos5或6为 ...

  3. linux 学习笔记 GNU工具链简介

    我们通常无法直接通过Linux内核,而需要借助Linux内核之上的GUN工具链来进行 文件处理 文本操作 进程管理 等操作. GNU/Linux shell为用户提供了 启动程序 管理文件系统上的文件 ...

  4. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  5. Linux 读书笔记 一

    一.Linux 简介 实验介绍 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识.如果你已经有过充分的了解,可以跳过本节,直接进入下一个实验. 一.Linux 为何物 ...

  6. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  7. Linux学习笔记——如何使用共享库交叉编译

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  8. Linux学习笔记——怎样在交叉编译时使用共享库

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  9. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

随机推荐

  1. JS函数的上下文环境

    var i=1; var fn1=function(){ console.log(i); } var fn2=function(){ var i=2; fn1(); } fn2();      // ...

  2. JavaScript模块化编程

    为什么模块化很重要?因为有了模块,我们就可以更方便的使用别人的代码,想要什么功能,就加载什么模块. 万事都有规矩,就是规范化! 目前,通行的Javascript模块规范有两种: CommonJS和AM ...

  3. 上传到github!

    今天课上在冯老师的带领下终于在github上成功上传了东西但是还有很多没用的东西,慢慢研究改进! https://github.com/Hxy94264/GitHubTest https://gith ...

  4. 第六章第一个linux个程序:统计单词个数

    第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数.  第 1 步:建立 Linu x 驱 ...

  5. RMQ算法模板

    分别写了下标从0和1开始的两种 #include<stdio.h> #include<string.h> #include<algorithm> #include& ...

  6. ZTOOLS HTTP&REGEXTEST&JSONS 工具包

    下载地址:点击下载

  7. Web性能测试的简介

    一.术语 1.并发用户:并发一般分两种.1)严格意义上的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般指做同一类型的业务:2)广义范围的并发,与前者主要区别,尽管多个用户对系统发出了请求 ...

  8. 【耐克】【空军一号 Nike Air Force 1】【软木塞】

     [高帮 全白 36-45] [空军一号 低帮 36-46] [空军一号 36-45] [Nike Air Force 1 Flyknit 空军中帮飞线系列 全黑 36-44] [耐克空军一号 软木塞 ...

  9. Web 应用程序中的安全向量 – ASP.NET MVC 4 系列

           Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施.   威胁:跨站脚本 ...

  10. $.map和$.extend来复制数组(OA差旅)

    $.map:对数组的每个元素调用定义的回调函数并返回包含结果的数组. 对数组用指定的方法. //将原数组中每个元素加 4 转换为一个新数组. //jQuery 代码: $.map( [0,1,2], ...