Linux 提高操作效率之 tab 命令补全
最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助。
安装
Linux 最小化安装时,是没有 tab 命令补全的,需要自己手动安装。
# 安装
$ yum -y install bash-completion
# 重新登录生效
命令补全
默认情况下,在 Linux 中提供下列补全功能:
- 变量补全
- 用户名补全
- 可执行命令补全
- 文件名和目录补全
- 主机名补全
变量补全
# echo 在 $ 符号后按两次 tab 将显示所有可用的变量
$ echo $[tab] [tab]
用户名补全
# su 在 “- ” 符号后,按两次 tab 将显示所有用户名
$ su - [tab] [tab]
# 同上,按两次 tab 将显示所有用户名
$ cd ~[tab] [tab]
注意:用户名是从 /etc/passwd 文件中获取的。
可执行命令补全
在执行命令时,如果找到单个匹配项的可执行文件,则一个 tab 就会将可执行命令自动补全。
$ ls -lt
总用量 5736
-rwxr-xr-x 1 nginx nginx 5872560 3月 24 15:33 nginx
# ./n 之后按一次 tab 将补全可执行命令:./nginx
$ ./n[tab]
当找到多个匹配项时,则两个 tab 将会显示可用命令。
$ ./yum[tab] [tab]
yum yum-builddep yum-config-manager yum-debug-dump yum-debug-restore yumdownloader yum-groups-manager
文件名和目录补全
与可执行命令补全类似,找到单个匹配项时,一个 tab 自动补全,两个 tab 列出所有匹配项。
$ ls -lt
总用量 80
-rw-r--r-- 1 nginx nginx 6542 3月 26 21:06 nginx.conf
drwxr-xr-x 2 root root 4096 3月 26 20:59 site-enable
drwxr-xr-x 2 nginx nginx 4096 3月 24 15:33 ssl
-rw-r--r-- 1 nginx nginx 2656 3月 24 15:33 nginx.conf.default
-rw-r--r-- 1 nginx nginx 636 3月 24 15:33 scgi_params.default
-rw-r--r-- 1 nginx nginx 636 3月 24 15:33 scgi_params
-rw-r--r-- 1 nginx nginx 664 3月 24 15:33 uwsgi_params.default
-rw-r--r-- 1 nginx nginx 664 3月 24 15:33 uwsgi_params
-rw-r--r-- 1 nginx nginx 1077 3月 24 15:33 fastcgi.conf.default
-rw-r--r-- 1 nginx nginx 1077 3月 24 15:33 fastcgi.conf
-rw-r--r-- 1 nginx nginx 1007 3月 24 15:33 fastcgi_params.default
-rw-r--r-- 1 nginx nginx 1007 3月 24 15:33 fastcgi_params
-rw-r--r-- 1 nginx nginx 5231 3月 24 15:33 mime.types.default
-rw-r--r-- 1 nginx nginx 5231 3月 24 15:33 mime.types
-rw-r--r-- 1 nginx nginx 3610 3月 24 15:33 win-utf
-rw-r--r-- 1 nginx nginx 2837 3月 24 15:33 koi-utf
-rw-r--r-- 1 nginx nginx 2223 3月 24 15:33 koi-win
# 在cat n 之后按一次 tab 键,会自动补全 cat nginx.conf
$ cat n[tab]
# “cd ” 之后按一次 tab 键,会
$ cd [tab]
$ cd s[tab]
site-enable/ ssl/
# 当有很多文件要显示时,会显示以下警告消息
$ ls -l /etc/[tab] [tab]
Display all 194 possibilities? (y or n)
主机名补全
# ssh 在 @ 符号后,按两次 tab 键,获取要连接的主机名
$ ssh root@ [tab] [tab]
# 同上,按两次 tab 键,获取要连接的主机名
$ scp nginx.conf nginx@ [tab] [tab]
注意:主机名是从 /etc/hosts 文件中获取的。
查看已有的命令行补全
# 查看已有的命令行补全
$ complete | more
complete -F _minimal
complete -F _filedir_xspec oodraw
complete -F _filedir_xspec elinks
complete -F _filedir_xspec freeamp
complete -F _longopt split
complete -F _longopt sed
complete -F _longopt ld
complete -F _longopt grep
complete -j -P '"%' -S '"' jobs
complete -d pushd
complete -F _minimal sh
complete -F _filedir_xspec playmidi
complete -F _longopt mv
complete -F _known_hosts rlogin
complete -F _service service
complete -b help
complete -A stopped -P '"%' -S '"' bg
complete -F _filedir_xspec cdiff
complete -F _filedir_xspec bibtex
complete -F _filedir_xspec rgview
complete -F _filedir_xspec realplay
complete -F _filedir_xspec xine
complete -F _filedir_xspec xpdf
complete -F _longopt strip
complete -F _longopt pr
complete -F _longopt grub
complete -F _longopt gperf
complete -F _known_hosts ftp
complete -o filenames -F _yu_debug_dump yum-debug-dump.py
complete -o filenames -F _yu_builddep yum-builddep
complete -o filenames -F _yu_repoclosure repoclosure
complete -o filenames -F _yu_repo_rss repo-rss
complete -F _filedir_xspec oowriter
complete -F _filedir_xspec chromium-browser
complete -F _filedir_xspec gqmpeg
complete -F _filedir_xspec tex
complete -F _filedir_xspec zathura
complete -F _filedir_xspec lzegrep
complete -F _longopt m4
complete -F _command time
--More--
# complete 命令详情
$ man complete
另外,complete 可以让自己写的程序也支持自动补全功能,目前我没有此需求,需要时再研究。
Linux 提高操作效率之 tab 命令补全的更多相关文章
- CentOS 安装tab命令补全
CentOS 安装tab命令补全 1. 安装epel 源 yum -y install epel-release 2. 加快yum速度 yum -y install yum-plugin-fastes ...
- Python tab 命令补全,以及 vim 补全
在python 命令行中,使用补全 python 查看 packages 的目录 可用 sys.path 查看. /usr/lib/python2.7/site-packages vim tab.py ...
- CentOS7系统tab命令补全
在新安装的CentOS7系统中,如果没有安装命令补全的话,在systemctl管理服务的时候就没法用tab来自动补全,因此在安装完系统后,我们要再安装命令补全这个软件: yum -y install ...
- ubuntu tab命令补全失效
主要是由于环境变量设置出了问题,修改/etc/environment即可. sudo nano /etc/environment 修改后source /etc/environment
- shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
第5周第5次课(4月20日) 课程内容: 8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 8.1 shell介绍 使用yum+管道方式查看zsh和ks ...
- Linux命令之tab 键补全
tab 键补全 tab 键可以实现命令及路径等补全,提高输入效率,避免出错 命令补全 用户给定的字符串只有一条惟一对应的命令,直接补全, 两次Tab会给出列表 内部命令: 外部命令:bash根据PAT ...
- Linux使用退格键时出现^H + Tab键命令补全失效/方向键失效 + ls文件夹和文件没有颜色
删除问题 安装kalilinux使用普通用户的的时候按退格键无法实现删除功能 解决的办法有两个 一改变快捷键: 使用Ctrl+Backspace组合键可以实现删除功能 ctrl + backspace ...
- linux命令补全 忘记命令只记得开头
linux的shell不仅提供上下箭头来翻阅历史使用过的命令,还提供命令补全功能. 例如,你想创建一个文件夹,只记得是m开头的命令,此时可以: ①输入m ②按键盘上的Tab键两次 (有可能还出现这句话 ...
- Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向
一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计 ...
随机推荐
- SQL的分类使用(增删改查)
1.SQL的分类使用(*代表重点的程度) DDL ** (Data Definition Language)数据库定义语言 用来定义数据库对象: 库 表 列 等 DCL (D ...
- socket基本语法和粘包
一.基本语法 127.0.0.1 是本地回环地址 客户端 ...
- Longest subarray of target sum
2018-07-08 13:24:31 一.525. Contiguous Array 问题描述: 问题求解: 我们都知道对于subarray的问题,暴力求解的时间复杂度为O(n ^ 2),问题规模已 ...
- 面试刷题24:介绍一枚 JAVA妹妹?
java提供的自动垃圾收集机制大大提高了程序员的开发效率. 但是自动垃圾收集不是万能的,明确jvm的内存结构,工作机制是设计高扩展应用的基础. 也是诊断jvm运行时问题的必备技能. 我是李福春,我在准 ...
- 曹工说Spring Boot源码(28)-- Spring的component-scan机制,让你自己来进行简单实现,怎么办
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- [vijos1234]口袋的天空<最小生成树>
题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉krusk ...
- Linux上的软件安装有哪些方式?
Linux上的软件安装有以下几种常见方式介绍 1.二进制发布包 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 2.RPM包 软件已经按照redhat的包管理工具规范RPM进行打包发布,需要 ...
- SQL 实战(五)
一. 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01.CREATE TABLE IF NOT EXISTS titles_test ( ...
- Pytest系列(6) - conftest.py的详细讲解
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 什么是conftest.py 可以 ...
- block 的内存结构衍生出来的面试题
今天在群里看到大佬们在讨论一个面试题,问如下代码在 32bit 和 64bit 系统上分别报什么错误: #import <Foundation/Foundation.h> int main ...