bash

Posted on Aug 16, 2020

bash notes

reference: https://wangdoc.com/bash/

基本语法

pwd – 显示当前目录

echo 多行加“ ” 输出文本末尾有回车符

  1. -n参数 取消末尾的回车符
  2. -e参数 解释单双引号中的特殊字符(e.g. \n)

type 判断命令的来源

  1. -a参数 查看命令的所有定义
  2. -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 关闭

  1. 波浪号 自动扩展成当前用户的主目录 ~+ equal to pwsd
  2. 问号 代表文件路径中的任意单个字符,不包含空字符
  3. 星号 代表文件路径中任意数量的任意字符,包括零个字符,但是不会匹配隐藏文件,如果需要匹配隐藏文件需要写成.*
  4. [...] 匹配方括号中的任意一个字符 [!...] or [^...]是非的表达 匹配连字符- 只能放在方括号内部首尾位置
  5. [start-end]
  6. {...} 扩展成大括号里的所有值,各个值之间用逗号分隔,逗号前后不能有空格
  7. {start..end} 大括号扩展的简写形式,支持逆序 {start..end..step}中step为步长
  8. 变量扩展 e.g. ${SHELL}
  9. 子命令扩展 $(…) 可以扩展为另一个命令的运行结果
  10. 算数扩展$((…))
  11. 字符类
  • [[: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)