bash的基本特性之globbing,IO重定向及管道

bash的基本特性之globbing,IO重定向及管道

giobbing:文件名通配

在bash的操作环境中有一个分厂有用的功能那就是gilobbing:文件名通配,这样我们在处理数据的时候就更方便了。下面我们来罗列一些常用的通配符。(注:globbing是做整体的文件名匹配而非部分)

匹配模式:元字符
*:表示匹配任意长度的任意字符
    例:a* 表示a后面任意长度任意字符
        a*b 表示a和b中间夹带任意长度的任意字符
?:表示匹配任意的单个字符
    例:a? 表示a后面只能跟单个的任意字符
        a?b 表示a和b之间只有一个单个字符
[]:表示指定范围的任意单个字符或者字符集
    例:[a-z]:表示小写的a到z中任意单个字符
        [A-Z]:表示大写
        [0-9]:
        [a-z0-9]:表示小写字母或者数字
    [[:upper:]]:表示所有的大写字母
    [[:lower:]]:表示所有的小写字母
    [[:alpha:]]:表示所有字母
    [[:digit:]]:表示所有数字
    [[:alnum:]]:表示所有的字母和数字
    [[:space:]]:表示空白字符
    [[:punct:]]:所有标点符号
[^]:匹配指定范围之外的任意单个字符
    例:[^[:lower:]]:表示匹配小写字母之外的任意单个字符
    例:[^0-9]:表示匹配数字之外的字符

练习:找出/etc/下以cron开头的文件

ll -d /etc/cron*   -d是为了只显示目录

找出/etc/下面文件名刚好是五个字符的文件 ll -d /etc/?????

IO重定向

说道IO重定向就不得不说说命令的执行结果,一般用户执行一个命令之后这个命令会从文件中读入数据然后将处理过的数据输出默认到屏幕上,而IO重定向就是将本来要输出到屏幕上的数据流重新指定一个输出位置。而输入也是同理

计算机上可用于输入的设备:键盘设备,文件系统上的常规文件,网卡等

可用于输出的设备:显示器,文件系统上的常规文件,网卡等

程序在执行正确之后所传出来的数据流我们叫做标准输出,而执行失败之后传输出来的错误信息叫做错误输出,所以程序的数据流有三种

输入的数据流<–标准输入 输出的数据流–>标准输出 错误的输出流–>错误输出

这里的输入输出我们会给予一个文件描述符

标准输入(stdin):代码为0 使用 <或<<
标准输出(stdout):代码为1 使用>或>>
错误输出(stderr):代码为2 使用2>或2>>

输出重定向:>

特性:覆盖输出 会覆盖原文件内容

输出重定向:>>

特性:追加输出 不会覆盖原文件内容 只会在文件尾部追加

set -C 可以禁止输出重定向至已存在文件

此时可以使用强制覆盖输出:>|

set +C 可以关闭上述特性

错误输出流重定向:2>,2>>

特性同上

合并标准输出流和错误输出流:&>,&>>

COMMADN > /path/to/somefile 2>&1

输入重定向:<

这里我们要给大家讲一个/etc/下比较特殊的两设备个文件

/dev/null 数据黑洞

/dev/zero 吐零机 可以无限输出0

管道

连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流

COMMAND1 | COMMAND2 | COMMAND3

linux的基本命令

tr:转换或者删除字符
    tr [OPTION]... SET1 [SET2]
    把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

原创文章,作者:N24-执念,如若转载,请注明出处:http://www.178linux.com/64169

(0)
N24-执念N24-执念
上一篇 2016-12-19 11:53
下一篇 2016-12-19 13:53

相关推荐

  • Linux用户、组和权限管理详解

    用户管理简要说明:     1.越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。     2.在Linux中主要是通过用户配置文件来查看和修改用户信息。 初始组和附加组     初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的…

    Linux干货 2016-08-05
  • Java输入输出流

    1.什么是IO       Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 &nb…

    Linux干货 2015-04-10
  • 如何在Linux上创建文件系统

        谈到如何创建文件系统,在这里就不得不提一下什么是文件系统,在百度上搜索得到的定义是这样的:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统,简单的看这个概念可能感觉还是有点茫茫然,其实简单的说,就是定义磁盘存取数据的一种逻辑组织,我们都知道磁盘是一种存储数据的硬件,首先但这个硬件的工作当…

    Linux干货 2016-01-18
  • 第九周:shell脚本之判断练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i LoginUser=0 declare -i NologinUser=0 while r…

    Linux干货 2016-11-21
  • Linux的发行版及哲学思想

    Linux是一套免费使用和自由传播的类Unix系统,是一个基于Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,联合GNU 组织里的各种强大的应用软件而组成的操作系统。 从Linux的诞生至今,…

    Linux干货 2016-10-30
  • 笔记–8.2–用户管理,权限管理

    ·硬链接,软链接区别 大小 链接数 设备,分区 类型 硬连接 一样大,显示的是本身的大小 会增加 不能跨分区 是一个文件,相同inode号,忘了位置可通过inode号找到源文件 软链接 不一样大,链接文件大小是路径的大小 不会增加 可以跨分区,跨设备 两个文件,不同inode号,像发小广告,忘了源连接,文件就找不到了 软链接格式:ln -s +绝对路径或相对…

    Linux干货 2016-08-05