shell: 壳(shell)程序,使用户与计算机交互

       分类 :GUI(Gnome ,KDE, Xface)

              CLI(sh,csh,ksh,bash,tcsh,zsh等)

                  sh(已经被bash所取代)

                  bash(就是Linux预设的shell)

                  ksh(konshell由AT&T Bell lab 发展出来,兼容于bash)

                  tcsh(整合C shell,提供更多的功能)

                  csh(已经被tcsh所取代)

                  zsh(基于ksh发展出来的,功能更强大的shell)


bash的功能:命令行编辑,命令别名,命令历史,命令补全,命令替换,通配符


命令行编辑:光标跳转

[ctrl] + a :跳到命令行首

[ctrl] + e :跳到命令行尾

[ctrl] + u : 删除光标至命令行首的内容(不包括光标所在点)

[ctrl] + k : 删除光标至命令行尾的内容(包括光标所在点)

[ctrl] + l : 清屏



命令别名:alias ,unalias

alias [command]='command [option] [arguments]'   定义别名 如果命令本身有[space]就用' '引起来

alias  显示系统所有别名

unalias [command] 取消别名

\command   使用命令本身

在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前shell进程


命令历史:history

display or manipulate the hiatory list

-n  :数字,列出最近的n条命令行表

-c  : 清空命令历史

-d  :删除指定位置的命令

-w  : 将目前的history内容保存至histfiles中(立刻)

-a  :将目前新增的history指令新增入histfiles中,若没有加histfiles,则预设写入~/.bash_history

echo $HISTORY :查看 ~/.bash_history记录的数量,默认为1000条

!n : 执行历史命令中的第几条命令

!-n :执行历史命令中倒数的第几条命令

!!:执行上一条命令

!string :执行历史命令中最近一个以指定字符串开头的命令

!$ :引用前一个命令的最后一个参数

[esc] . :引用前一个命令的最后一个参数

[alt] + . :引用前一个命令的最后一个参数(远程终端部支持)



命令补全:双击[tab]

    路径补全:搜索我们给出的起始路径下的每个文件名,并试图补全

    命令补全:搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件,如果多于一个,双击[tab]可以给出列表,否则将直接补全



命令替换:$(command)'command'

把命令中某个子命令替换成某执行结果的过程

bash支持的引号:' '(单引号),强引用,不完成变量替换

                " "(双引号),弱引用,可以实现变量替换


通配符:wildcard

*  : 任意长度的任意字符

?  : 任意单个字符

[] : 匹配指定范围内的任意单个字符

[^] :匹配指定范围之外的任意单个字符

[:space:] :空白字符

[:punct:] :标点符号

[:lower:] : 小写字母

[:upper:] :大写字母

[:alpha:] :大小写字母

[:digit:] :数字

[:alnum:] :数字和大小写字母