书写注意事项
- if一定要有fi结尾,否则会出现“then” umatch错误
运算式一定要加上expr,即i=0,i=i+1,echo $i 输出为0+1
i=expr i + 1
,echo $i输出为1,expr的格式要注意,不能无空格$与${}本质上无区别,$后面的变量名无法转换,${}中的变量名可以转换。$A与${A}是一样的,但$a[]会出错,${a[]}为访问全数组
- #注释要另起一行
特殊变量
- $0该bash文件名
- $?上一指令返回值
- $*所有位置参数内容,返回为单个字符串
- $@所有位置参数内容,返回为多个字符串
- $n第n个参数
- $#所有参数
- &0标准输入
- &1标准输出
- &2标准错误
- &n(n>2)为自定义文件描述符
正则表达式
- ${param:-word}若param为空或未赋值,word取代param,返回word
- ${param:=word}若param为空或未赋值,word赋值给param,返回param
- ${param:?msg}若param为空或未赋值,msg输出至STDERR
- ${param:+word}若param为空或未赋值,使word为输出值
元字符
- *匹配0个以上的字符
- ?匹配1个字符
- [0-9]匹配0-9
- [a-z]匹配a-z
- [A-Z]匹配A-Z
- |管道符,前一命令的输出作为后一命令的标注输入
- >重定向,会覆盖原文件
- >>重定向,不会覆盖原文件,在后尾追加
- “将命令输出作为另一命令的参数
- “”字符串,允许转义
- ”字符串,不允许转义
- \转义字符
- ^匹配符(正则)或者否定符
- $匹配符
- \正则表达式
- .单独使用为执行,变量使用为当前目录
- n <&- 把号输入关闭
- n >&- 把号输出关闭
- :空命令
常见操作
- sleep睡眠暂停(按秒计)
- xargs从标准输入中接受单词列表,并将这些单词作为参数传递给指定的命令
- cpio 复制备份
- grep过滤文本
- stty用于检查和修改当前注册的终端的通信终端
- uname确定版本
- let/bc算术命令
- kill退出进程
- trap设置和清除接收到信号时采取的动作
- set调试和设置数组并初始化
- sed/awk文本处理
- man帮助
- su切换用户
- touch修改文件时间或者创建新文件
- dumpe2fs列出文件系统
- df列出文件系统整体磁盘使用量
- du评估文件系统的磁盘使用量
- fsck修复磁盘
- mount挂载磁盘
- parted分区命令
- gzip压缩,后缀为.gz
- bzip2压缩,后缀为.bz2
- tar打包
- dump备份
- restore恢复
- dd备份设备
- env查看环境变量
- read读取键盘输入
- alias别名命名
- unalias去除别名
- history列出历史
- sort排序