重定向和管道符:
1、重定向
 程序 = 指令 + 数据
        命令   变量
 在程序中,数据如何输入?有如何输出?
 
 数据输入:键盘 -- 标准输入,但是并不是唯一输入方式;
    --stdin
    echo "123456"|passwd --stdin"username"
 
    例如:功能添加用户 useradd.sh user.txt文本文档1000个用户
    ./useradd.sh a
    ./useradd.sh b
    ...
    ./useradd.sh < user.txt
   while line;do
    循环体 $line
   done < /etc/passwd
 数据输出:显示器 -- 标准输出,但是并不是唯一输出方式
    ls /etc/ > a.txt
 fd文件标识符 0-9 -- 相当于给文件分类;
    0  1  2
    0 -- 标准输出
    1 -- 标准输入
    2 -- 错误输入输出
  常见重定向符号
    1、标准输出
    >          覆盖重定向、非常危险
          set -C 关闭覆盖重定向功能
        >| 强制重定向
    >>         追加重定向
2.标准输入
  <
   tr 替换文件内容
   tr set1[set2] < file.txt
   
   tr abc ABC /etc/passwd
   tr abc ABC /etc/passwd > /etc/passwd
     将passwd文件中的a、b、c替换成A、B、C
  
  <<
    多行数据同时输入
    cat >>a.txt<<EOF
    >11
    >2
    >3
    >EOF
  3.错误输出
   2> 2>>
   /dev/null 黑洞文件(删除)
   /dev/zero
   ls /etc/ > /dev/null 2> /dev/null——
   &> &>> == 2&>1                       |=
     ls /etc/ &> /dev/null<———— 
   扩展:不需要输出内容,只需要输出状态;
    ls /etc/ > /dev/null
    if[$?(命令执行状态) -eq 0];then
     循环体
    fi
   ls >  /dev/null 2>dev/null
2.管道-tee
 command1|command2|command3|...
 前一个命令的执行结果交给后一个命令来执行;
 【Linux思想:结合小功能实现大功能】
 free -m|grep "^Mem"|cut -d'' -f19
 free -m|grep "^Mem"|awk '{print $3}'
 
 tee[option]...屏幕上输出一次,然后保存一次(一路输入,两路输出)
 tee /tmp/tee.out //如果没有文件,会创建,默认如果文件存在有内容,会覆盖
练习:
 1.将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中
  head -5 /etc/passwd | tr [a-z][A-Z] > /tmp/passwd.out
 2.将登录至当前系统上的用户信息汇总的后3位信息转换为大写后保存至/tmp/who.out文件中
  who | tail -3 | cut -d'' -f1 | tr [[:lower:]] [[:upper:]] | tree /tmp/who.out
  tail——查看文件尾部多少行(默认为10行)
   -n tail -(n)5 /etc/passwd
    -f 实时查看文件更新内容
    tial -f /var/log/message
   sleep 等待多长时间后再向下执行
  head——查看文件头部多少行(默认10行)
   -n # 前#行,简写-#
   取10-20行:head -20 /etc/passwd | tail -10
 文本处理工具-wc,cut,sort,uniq

Shell:Day02.笔记的更多相关文章

  1. Learning The Bash Shell读书笔记(整理)

    最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning Th ...

  2. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  3. Shell编程笔记

    Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理.   修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...

  4. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  5. 菜鸟教程之学习Shell script笔记(上)

    菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...

  6. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  7. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  8. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  9. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

随机推荐

  1. ubuntu16.04 + caffe + SSD 硬件配置

    搞了几个月,终于把SSD试通了,不是科班出身的就是弯路多啊.几个月才跑通了caffe + ssd,痛苦至极,好在柳暗花明.好了,废话不多说,入正题. SSD作为object detection的论文, ...

  2. pyppeteer使用时常见的bug及基本使用(转)

    pyppeteer使用时常见的bug及解决办法: https://blog.csdn.net/Mr__lqy/article/details/102626025 pyppeteer的基本使用: htt ...

  3. vue中moment.js的使用

    一.介绍 moment.js是一款现在对时间处理的强大的函数. Moment被设计用于在浏览器和Node.js中工作. 目前ci系统使用的浏览器有:IE8.IE9在Windows 7上.Chrome在 ...

  4. javaScript 基础知识汇总(八)

    1.Map Set WeakMap 和WeakSet Map 是一个键值对的集合,主要的方法包括: new Map() 创建Map map.set(key,value)  根据键(key)存储值(va ...

  5. Java并发编程学习前期知识下篇

    Java并发编程学习前期知识下篇 通过上一篇<Java并发编程学习前期知识上篇>我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义.我们先来看看几个大厂真实的 ...

  6. LSTM + linear-CRF序列标注笔记

    CRF 许多随机变量组成一个无向图G = {V, E},V代表顶点,E代表顶点间相连的边, 每个顶点代表一个随机变量,边代表两个随机变量间存在相互影响关系(变量非独立), 如果随机变量根据图的结构而具 ...

  7. 我用STM32MP1做了个疫情监控平台4—功能完善界面重新设计

    目录 前言 界面展示 新增功能 API 接口说明 多个接口数据的获取和解析 FontAwesome字体图标库的使用 代码下载 系列教程 @ 前言 之前我用STM32MP1和Qt实现了疫情监控平台,系列 ...

  8. Natas4 Writeup(Referer篡改)

    Natas4: 提示来源出错,合法用户只能来自"http://natas5.natas.labs.overthewire.org/". 在http的header中,referer代 ...

  9. 图数据库 Nebula Graph TTL 特性

    导读 身处在现在这个大数据时代,我们处理的数据量需以 TB.PB, 甚至 EB 来计算,怎么处理庞大的数据集是从事数据库领域人员的共同问题.解决这个问题的核心在于,数据库中存储的数据是否都是有效的.有 ...

  10. NeurIPS 2019 Spotlight | Cascade RPN,结构的艺术带来极致的提升

    论文提出Cascade RPN算法来提升RPN模块的性能,该算法重点解决了RPN在迭代时anchor和feature不对齐的问题,论文创新点足,效果也很惊艳,相对于原始的RPN提升13.4%AR 论文 ...