Bash特性的详解
Shell是壳的意思,在linux中人就是通过在shell程序下输入命令,启动一系列的程序和进程,与linux系统交流,所以熟悉shell是非常必要的。
在linux中常用的shell有: sh, ksh,bash,tcsh,zsh,其中我们用的最多的就是bash。
首先我们先总结一下在linux中bash的常用功能:
命令行编辑:
Ctrl +a: 跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl +u:删除当前光标到命令行首的内容
Ctrl +k:删除当前光标到命令行尾的内容
Ctrl+l:清屏 =clear
命令历史:
history: 查看输入的命令历史
-w 保存命令历史到历史文件中
-c 清空命令历史
-d [num] [num] 从第几行开始删除多少行历史
eg: history -d 500 10
对命令历史常用的用法:
!n :执行命令历史中的第n条命令
!-n :执行命令历史中的倒数第n条命令
!! :执行上一条命令
!string :执行命令历史中最近一个以指定字符串开头的命令
!$:引用上一个命令的最后一个参数 =Esc+.和Alt+.
环境变量:
$PATH :当前用户环境中可以执行的二进制程序的路径
$HISTSIZE :统计命令历史的大小
命令补全:
TAB键
命令别名:
Alias 别名=命令 eg: alias cls=clear
注意在shell中定义的别名仅在当前shell生命周期中有效
unalias cmdalias 取消别名 eg: unalias cls
命令替换: 把命令中某个子命令替换为命令的执行结果
$(command) 变量的引用
`command` 反引号
温馨提示:推荐使用第一种
Eg: echo “The date is `date +%F`”
Bash支持的引号:
`` : 反引号,命令的引用
“”: 双引号,弱引用,可以实现变量替换
‘’: 单引号,强引用,不会进行变量的替换,直接原样输入
Eg: a=12
echo “$a”
echo ‘$a’
文件名通配符使用:(man 7 glob---帮助文档)
* : 任意长度的任意字符
? :任意一个字符
[];匹配中括号内的任意单个字符 [abc],[a-g]
[^]:匹配中括号以外的任意单个字符[^0-9]
[[:space:]]: 空白字符
[[:lower:]]:小写字母
[[:upper:]]:大写字母
[[:digit: ]] :数字
[[:alnum:]]:数字和大小写字母
[[:alpha:]]:大小写字母