(一)bash的基础特性

  • globbing:文件名通配

    • *:匹配零或零个以上的任意字符
    • ?:匹配任意的单个字符,不可以为零个
    • []:匹配指定范围内的任意单个字符,有几种特殊格式
      • [a-z]/[A-Z]:任意一个字母,注意不区分大小写,p[a-z]a,外面的p和a区分大小写,里面的a-z不区分
      • [[:upper:]]:匹配一个大写字母,外层的中括号是通配符,里面的所有的表示一个范围
      • [[:lower:]]:匹配一个小写字母
      • [[:alpha:]]:匹配一个字母
      • [[:digit:]]:匹配一个数字
      • [[:alnum:]]:匹配一个字母或数字,等于[[:alpha:][:digit:]]
      • [[:space:]]:匹配一个空白字符
      • [[:punct:]]:匹配一个标点符号
      • [0-9]:任意一个数字
      • [a-z0-9]:任意一个字母或者数字
      • [abcxyz]:从六个字母中匹配一个
    • [^]:匹配指定范围外的任意单个字符
      • [^[:upper:]]:非大写字母
      • [^0-9]:非数字

(二)IO重定向及管道

  • 可用于输入的设备(一切皆文件)

    • 键盘,文件系统上的常规文件,网卡
  • 可用于输出的设备(一切皆文件)
    • 显示器,文件系统上的常规文件,网卡
  • 程序的数据流有三种
    • 输入的数据流:<--标准输入(stdin)是键盘
    • 输出的数据流:-->标准输出(stdout)是显示器
    • 错误输出流:   -->错误输出(stderr)是显示器
  • fd:file descriptor/文件描述符/Windows中叫做文件句柄
    • 标准输入:0
    • 标准输出:1
    • 错误输出:2
  • IO重定向
    • 输出重定向:>

      • 例如:cat /etc/issue > /tmp/issue.out;
      • 再例如:cat /etc/issue > /dev/tty1
      • 这样写很危险:cat /etc/issue > /dev/sda
      • 属于覆盖输出重定向。如果使用>>就是追加输出重定向
      • set -C:
        • 禁止覆盖输出重定向至已存在的文件。
        • 可以使用“>|”强制覆盖重定向
        • 仅对当前shell进程有效
        • set +C取消限制
    • 错误输出重定向:2>
      • 例如:cat /etc/issue1 2> /tmp/issue.err
      • 覆盖输出,2>>是追加输出
    • 合并正常输出流和错误输出流:&>
      • 覆盖输出,&>>是追加输出
      • 还有一种写法:cat /etc/issue >> /tmp/issue.out 2>&1
    • 特殊设备:/dev/null
      • 数据黑洞
      • 例如:head -1 /etc/passwd &> /dev/null;echo $?。就是想看看这个文件有没有第一行,不关心结果,只关心命令执行状态结果。
    • 输入重定向:<
      • <<后面加结束符,表示输入结束。

        • 例如:cat > /tmp/cat.out << EOF
    • 介绍一个tr命令
      • tr [OPTION]...SET1[SET2]
      • 把输入的数据当中的字符,凡是在SET1定义范围内出现的,统统对位转换为SET2中出现的字符。如果加-d,则不需要SET2,此时会把和SET1匹配的删除。
      • 例如:tr abc ABC
      • 该命令只能从标准输入读取输入,如果后面跟文件会出错
      • 所以可以使用输入重定向:tr abc ABC < /etc/issue。注意,不会修改源文件,只是将结果输出到屏幕中。
  • 管道
    • 连接程序,实现将前一个命令的输出直接定向给后一个命令当作输入数据流
    • 用法:COMMAND1 | COMMAND2 | COMMAND3 | 。。。
    • 例如:cat /etc/issue | tr 'a-z' 'A-Z'
    • 再例如:who | head -2 | tr -d '0-9'
    • Linux的重要思想之一:组合小程序,完成复杂任务
    • tee命令既可以将前一个命令的输出保存或者输出,又可以继续往后传。例如:cat /etc/issue | tee /tmp/issue.tee | tr 'a-z' 'A-Z'

练习1:把/etc/passwd文件的前6行的信息转换为大写字母后输出

答案:head -n 6 /etc/passwd | tr 'a-z' 'A-Z'

新命令总结:tr,tee

转载于:https://www.cnblogs.com/jacky1982/p/7622467.html

glob及IO重定向相关推荐

  1. 文件名重定向到txt中Linux,Linux上glob用于实现文件名的通配、IO重定向及管道

    Linux中所谓的通配是指,显示以指定条件为条件的文件:即通配的含义是指搜寻以已知条件为前提的目标文件. 常用文件通配符有: 文件通配符 含义 例子 * 任意长度的任意字符 如a*,搜寻所有以a为首的 ...

  2. glob通配及IO重定向 笔记

    bash的基础特性:         globbing:文件名通配 (整体文件匹配,而非部分)             匹配模式:元字符                 *:匹配任意长度的任意字符   ...

  3. SRE运维工程师笔记-Linux文件管理和IO重定向

    SRE运维工程师笔记-Linux文件管理和IO重定向 1. 文件系统目录结构 1.1 文件系统的目录结构 1.2 常见的文件系统目录功能 1.3 应用程序的组成部分 1.4 CentOS 7 以后版本 ...

  4. Linux8-bash shell的基础特性:globbing、IO重定向及管道

    globbing 文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符,即一个字符出现以后,它并不表示字符本身的意义,而是用来匹配一定范围内的或者制定符合条件的字符, *:匹配任意长度的任意字符 ...

  5. linux 重定向_Unix/Linux编程实践之IO重定向和管道

    I/O重定向的原理模型 ls > test.file是如何工作的?shell是如何告诉程序把结果输出到文件,而不是屏幕? 在who | sort > user.file中,shell是如何 ...

  6. Linux C:文件描述符、IO重定向、恢复标准输入输出

    目录 一.文件描述符 二.IO重定向 三.重定向回终端.伪终端 四.恢复标准输入输出 一.文件描述符 在Linux中,文件描述符是一个非负整数的数据类型.是FILE结构体中的一个成员属性. 每打开或者 ...

  7. linux 导出io,Linux基础知识之IO重定向

    该博文以CentOS6.8_x86_64系统为基础,Xshell 5远程连接CentOS系统,以root身份登录系统. 什么是I/O重定向? 所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件 ...

  8. linux下的IO重定向与管道相关的知识简析

    一.bash重定向部分简单翻译 1.1.bash手册关于重定向短短的注解(因为过于经典,所以摘录出来) 我的翻译要开始毁经典啦... 参考: https://blog.csdn.net/spch200 ...

  9. 实验1:用户的登录与退出、IO重定向与简单文件操作

    实验1:用户的登录与退出.IO重定向与简单文件操作 1.实验目的 (1).掌握系统开启和关闭的方法及正常关闭系统的意义和必要性: (2).掌握用户的登录与退出的方法及用户退出系统或注销的意义和必要性: ...

最新文章

  1. Java JDK 学习笔记:File类
  2. mysql有3个共同好友_共同好友mysql
  3. 系统部署文档_详解window系统下安装部署SWFTools(文档转换)工具教程
  4. 未來用工新趨勢_浅谈2019年灵活用工五大新趋势
  5. WSS3.0安装后,系统资源消耗这么大
  6. 数据结构严蔚敏4.7习题2应用题(1)
  7. 调用微信公众号API,实现主动给粉丝发送消息
  8. forge是用java装吗_我的世界forge怎么安装 forge使用方法
  9. Windows强制删除文件的方法
  10. 中兴新支点操作系统_中兴新支点操作系统v3.2.2 最新版
  11. linux终端vim配色方案,Vim自定义配色方案图文并茂
  12. Android waitting for debugger
  13. 收藏随身查,光纤光缆60条必备知识!
  14. vscode 插件 markdown-preview-enhanced 设置深色预览主题
  15. 室内定位技术:分类、方法与应用综述
  16. php update when,iphone will restart when update什么意思
  17. 黑马程序员————IO流------(3)
  18. java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY
  19. Matlab凸轮设计
  20. 鸿鑫汽车配件进销存管理系统总结

热门文章

  1. Dirichlet分布与多项分布的共轭性
  2. VC++设置软件断点和“XXX已停止工作“对话框
  3. 使用VC++ 读取显示DEM文件
  4. 使用 Spring Boot CLI 运行第一个Spring boot程序
  5. C# 使用公共字段进行窗体传值实例
  6. [转]SQL,LINQ,Lambda语法对照图
  7. Django—模板渲染
  8. SignalR集成Autofac
  9. 论云计算对传统软件工程的影响
  10. curl访问nagios中Host Status Details For All Host Groups页面的方法