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/FROM/SOMEFILE
用法2、tr-d SET1 <
/PATH/FROM/SOMEFILE
注意不修改源文件
Here Documents:<< 此处创建文档
cat <<EOF
cat > /PATH/TO/SOMEFILE << EOF
管道:连接程序,实现将前一个命令的输出直接定向后一个程序当做输入数据流
tee命令:
cmd | tee /path/to/somefile
组合小程序完成大任务 (linux哲学思想)