查看历史命令
可以用history命令来查看用户在命令行输入执行的命令列表(默认显示前1000条,可以通过环境变量来设置),在查看历史命令的过程中可以用快捷键Ctrl+R 来通过关键字来对命令列表进行过滤。
快速执行上一条命令
可以用!!来执行是上一次执行过的命令。
Shell 中的扩展
大括号扩展:大括号括号扩展是一种能够生成任意字符串序列的机制,其语法是有一个可选的钱缀和一个可选的后缀,中间是一组用大括号包裹用逗号分隔的字符串,例如
echo a{a,b,c} a
输出的结果为
aaa
aba
aca
echo {a..z} #输出a到z的所有字母a b c .... z
echo {0..10} #输出0到10的所有数字 0 1 3 .. 10
echo {a...c}{1...3}
波浪号扩展:大波浪号扩展,可以用来指代自己的主目录,或其他人的组目录
cd ~ # 进入自己的主目录
cd ~XX # 进入XX的主目录
命令替换:用命令的输出替换命令本身,主要有下面这两种形式
$(COMMAND)
'CPMMAND'
bash 进行这个扩展的时候,先执行命令,然后用命令标准输出结果来取代命令
文件名扩展:如果shell没有设置-f选项,就支持文件名扩展,主要以下面三中统配符实现
* 匹配任意的字符串
?匹配任意单个字符串
[...]匹配方括号中任意的字符
例如显示etc 下所有的配置文件
ls /etc/*.conf
#和%扩展
这种扩展只可以扩展参数值得一部分,用来指定的模式移除参数值中字符移除指定的一部分,“#”和“%”表示移除匹配字符串的最短字符串,“#”从字符串的开头开始匹配,“%”从字符串的末尾开始匹配。而扩展字符“##”和“%%”移除匹配到的最长字符串。
例如:
执行的结果如下:
字符长度扩展
此扩展可以用来得到参数值字符串的长度值,如下:
fileName="hello worad"
echo ${#fileName}
子字符串扩展
语法:${参数}