shell简化功能:命令行自动补全
来源:《Linux 命令、编程器、Shell编程、实例大全.pdf》
- 如果想对输入进行自动补全,只需输入初始的几个字符,然后按“tab”键,系统会自动匹配所需的其余输入。当有多种匹配时,系统会给出警告提示,按“ESC+?”或两次“Tab”键,可以列出所有可能的匹配
- 环境变量名补齐
如果输入的文本以“$”开始,shell就以当前shell的一个环境变量补齐文本,如下:
studytest@linux-nlzy:~> echo $P <tab><tab> //按两次tab键,系统列出环境变量中所有第一个字母
//为“P”的可能匹配,在显示所有的可能性后,
//返回原来命令行,等待用户的选择
$PAGER $PIPESTATUS $PROFILEREAD $PS2 $PWD
$PATH $PPID $PS1 $PS4 $PYTHONSTARTUP
studytest@linux-nlzy:~> echo $PATH //输入了PAT<tab>,自动匹配了PATH,并返回PATH环境变量
/usr/lib64/mpi/gcc/openmpi/bin:/home/studytest/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/home/studytest/bin
如果仅输入“$”,则系统会按字母顺序列出所有的环境变量,如下:
studytest@linux-nlzy:~> $ <tab><tab> //按两次tab键,系统列出所有的系统变量
Display all 121 possibilities? (y or n)
$_ $HOSTNAME $OSTYPE
$ALSA_CONFIG_PATH $HOSTTYPE $PAGER
$BASH $IFS
...
- 用户名补全
如果输入的文本以“~”开始,shell会以用户名补全文本,如下:
studytest@linux-nlzy:~> cd ~s <tab><tab> //按两次tab,系统列出所有以字母s开头的用户名
~smolt/ ~sshd/ ~statd/ ~studytest/ ~studyzsh/
- 命令、别名或函数的名字补齐
如果文本以常规字符开始,shell将尝试利用命令、别名或函数名来补全文本,如下:
studytest@linux-nlzy:/home> ls
usera studytest studyzsh
studytest@linux-nlzy:/home> cd u <tab>//按一次tab,匹配了usera目录名
studytest@linux-nlzy:/home/usera>
- 主机名补全
如果输入的文本以“@”符号,系统会利用/etc/hosts文件中的主机名来补齐文本,如下:
studytest@linux-nlzy:~> mail root@ <tab><tab>//按两次tab,系统列出所有可用的主机名
自动补全快捷方式及说明
快捷键 | 说明 |
---|---|
Alt+~ | 以一个用户名补全此处的文本 |
Alt+$ | 以一个变量补全此处的文本 |
Alt+@ | 以一个主机名补全此处的文本 |
Ctrl+x+~ | 列出可能的用户名补全 |
Ctrl+x+$ | 列出可能的环境变量补全 |
Ctrl+x+@ | 列出可能的主机名补全 |
Ctrl+x+! | 列出可能的命令名补全 |