按 tab 键可以帮我们补全一个命令、一个路径或者一个文件名。连续按两次 tab 键,系统则会把所有的命令或者文件名都列出来
命令补全
输入ls后按两下 tab,会把 ls 开头的都列出来
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# ls
输入lsn后按一下 tab,会把 lsns 补全
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# lsn
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# lsns
参数补全
之前我们接触过,输入 systemctl … 这些的时候,按 tab 并不能自动补全,想要这个功能的话,需要安装 bash-completion
没安装之前按tab键就没用
[root@evan-01 ~]# systemctl restart net
安装bash-completion
[root@evan-01 ~]# yum install -y bash-completion
重启下设备
[root@evan-01 ~]# init 6
再试下,输入 systemctl re 按两下 tab
[root@evan-01 ~]# systemctl re
reboot reload reload-or-try-restart reset-failed
reenable reload-or-restart rescue restart
[root@evan-01 ~]#
按一下 tab,可以自动补全
[root@evan-01 ~]# systemctl rest
[root@evan-01 ~]# systemctl restart
alias别名
前面用过 alias,它是 bash 所特有的功能之一。我们可以通过 alias 把一个常用的并且很长的命令另取一个简单易记的命令。如果不想用了,还可以使用 unalias 命令解除别名功能。直接执行 alias 命令,会看到目前系统预设的别名
查看 alias
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@evan-01 ~]#
设置 alias
[root@evan-01 ~]# alias restartnet='systemctl restart network.service'
[root@evan-01 ~]# restartnet
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias restartnet='systemctl restart network.service'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@evan-01 ~]#
取消 alias
[root@evan-01 ~]# unalias restartnet
[root@evan-01 ~]# restartnet
-bash: restartnet: command not found
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@evan-01 ~]#
alias 都是在这些脚本里定义的
[root@evan-01 ~]# vi .bashrc