bash
bash notes
reference: https://wangdoc.com/bash/
基本语法
pwd – 显示当前目录
echo 多行加“ ” 输出文本末尾有回车符
- -n参数 取消末尾的回车符
- -e参数 解释单双引号中的特殊字符(e.g. \n)
type 判断命令的来源
- -a参数 查看命令的所有定义
- -t参数 返回一个命令的类型:别名(alias),关键词(keyword),函数(function),内置命令(builtin)和文件(file)
快捷键:
Ctrl + L:清除屏幕并将当前行移到页面顶部Ctrl + C:中止当前正在执行的命令Shift + PageUp:向上滚动Shift + PageDown:向下滚动Ctrl + U:从光标位置删除到行首Ctrl + K:从光标位置删除到行尾Ctrl + D:关闭 Shell 会话↑,↓:浏览已执行命令的历史记录
模式扩展->简单的正则
shell接收命令,根据空格拆分为一个个词元,然后扩展词元里的特殊字符。
set -f 开启 set +f 关闭
- 波浪号 自动扩展成当前用户的主目录 ~+ equal to pwsd
- 问号 代表文件路径中的任意单个字符,不包含空字符
- 星号 代表文件路径中任意数量的任意字符,包括零个字符,但是不会匹配隐藏文件,如果需要匹配隐藏文件需要写成
.* [...]匹配方括号中的任意一个字符[!...] or [^...]是非的表达 匹配连字符- 只能放在方括号内部首尾位置[start-end]{...}扩展成大括号里的所有值,各个值之间用逗号分隔,逗号前后不能有空格{start..end}大括号扩展的简写形式,支持逆序{start..end..step}中step为步长- 变量扩展 e.g. ${SHELL}
- 子命令扩展 $(…) 可以扩展为另一个命令的运行结果
- 算数扩展$((…))
- 字符类
[[:alnum:]]:匹配任意英文字母与数字[[:alpha:]]:匹配任意英文字母[[:blank:]]:空格和 Tab 键[[:cntrl:]]:ASCII 码 0-31 的不可打印字符[[:digit:]]:匹配任意数字 0-9[[:graph:]]:A-Z、a-z、0-9 和标点符号[[:lower:]]:匹配任意小写字母 a-z[[:print:]]:ASCII 码 32-127 的可打印字符[[:punct:]]:标点符号(除了 A-Z、a-z、0-9 的可打印字符)[[:space:]]:空格、Tab、LF(10)、VT(11)、FF(12)、CR(13)[[:upper:]]:匹配任意大写字母 A-Z[[:xdigit:]]:16进制字符(A-F、a-f、0-9)