bash的基础特性
? ? 命令行展开
? ? ? ? ? ? ~:自动展开为用户的家目录,或指定用户的家目录
? ? ? ? ? ? { }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
? ? ? tree命令:
? ? ? ? ? -L level:制定显示的层级:
? bash的基础特性:命令的执行状态结果
? ? ? ? ? 成功:0
? ? ? ? ? 失败:1-255
? ? 命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
? ? ? 命令正常执行时,有的还会有命令返回值
? ? ? ? ? 根据命令及其功能不同,结果各不相同
? ? ? ? 引用命令的执行结果
? ? ? ? ? ? ? $(cmd)或‘cmd’
? ? ? bash的基础特性:引用
? ? ? ? ? 强引用:‘’不做替换
? ? ? ? ? 弱引用:“”
? ? ? ? ? 命令引用:反引号
bash基础特性:快捷键
? ? ? ? Ctrl+a? 跳转至命令行行首
? ? ? ? Ctrl+e? 跳转至命令行
? ? ? ? Ctrl+u? 删除行首至光标所在处之间的所有字符
? ? ? ? Ctrl+k? 删除光标所在处至行尾的所有字符
? globbing:文件名通配
? ? 匹配模式:元字符
? ? ? ? ? ? ? *:匹配任意长度的任意字符
? ? ? ? ? ? ?:匹配任意单个字符
? ? ? ? ? ? [? ]:匹配制定范围内的任意单个字符
? ? ? ? ? ? ? ? ? 有几种特殊格式? ?
? ? ? ? ? ? ? ? [a-z],[A-Z], [0-9]
? ? ? ? ? ? ? ? ? [[:upper:]]:所有大写字母
? ? ? ? ? ? ? ? ? [[:lower:]]:所有小写字母
? ? ? ? ? ? ? ? ? [[:alpha:]]:所有字母
? ? ? ? ? ? ? ? ? [[:digit:]]:所有数字
? ? ? ? ? ? ? ? ? [[:alnum:]]:所有字母和数字
? ? ? ? ? ? ? ? ? ? [[:space:]]:所有空白字符
? ? ? ? ? ? ? ? ? ? [[:punct:]]:所有标点符号
? ? ? ? ? [^]:匹配制定范围外的任意单个字符
IO重定向及管道
? ? 程序:指令+数据
? ? ? ? ? ? 程序:IO
? ? ? ? ? ? 可用输入的设备:键盘,文件
? ? ? ? ? ? ? ? ? ? ? ? ? 键盘设备、文件系统上的常规文件,网卡等;
? ? ? ? ? ? 可用于输出的设备,文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? 显示器,文件系统上的常规文件,网卡等
? ? ? ? ? ? ? 程序的数据流有三种:
? ? ? ? ? ? ? ? ? ? ? ? 输入的数据流:<--标准输入(stdin),键盘
? ? ? ? ? ? ? ? ? ? ? ? 输出的数据流:-->标准输出(stdout),显示器
? ? ? ? ? ? ? ? ? ? ? ? 错误输出流: -->错误输出(stderr):显示器
? ? ? ? fd:file descriptor,文件描述符
? ? ? ? ? ? ? ? ? ? 标准输入:0
? ? ? ? ? ? ? ? ? ? 标准输出:1
? ? ? ? ? ? ? ? ? ? 错误输出:2
? ? ? ? IO重定向:
? ? ? ? ? ? ? ? ? ? 输出重定向:>
? ? ? ? ? ? ? ? ? ? ? ? 特性:覆盖输出
? ? ? ? ? ? ? ? ? 输出重定向:>>
? ? ? ? ? ? ? ? ? ? ? 特性:追加输出
? ? ? ? ? ? ? #set -C? 禁止覆盖输出重定向至已经存在的文件
? ? ? ? ? ? ? ? ? ? ? 此时可使用强制覆盖输出:>|
? ? ? ? ? ? ? #set +C关闭上述特性
? ? ? ? ? ? ? ? ? ? 错误输出流重定向:2>, 2>>?
? ? ? ? ? ? 合并正常输出流和错误输出流
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1、? &>,&>>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、cmd > /path/to/samefile 2>&1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cmd >> /path/to/samefile 2>&1
? ? ? 特殊设备:/dev/null? ?
? ? ? ? ? ? 输入重定向:<
? ? ? ? ? ? ? ? ? ? ? ? ? tr命令:
? ? ? ? ? ? ? ? ? ? ? ? ? ? tr? [OPTION]... SET1 [SET2]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 把输入的数据当中的字符,凡是在SET1定义范围内出现的,统统对位转换为SET2出现的字符
? ? ? ? ? ? ? 用法1、tr? ? ? SET1? SET2? /PATH/TO/SOMEFILE << EOF
? ? ? ? ? 管道:连接程序,实现将前一个命令的输出直接定向后一个程序当做输入数据流
? ? ? ? tee命令:
? ? ? ? ? ? ? ? ? cmd | tee /path/to/somefile