![](https://csdnimg.cn/release/download_crawler_static/10916465/bgc.jpg)
4 第2章 shell
bash是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格
的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的
POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。
2.3 命令和路径补齐
在bash下敲命令时,Tab键可以补全已经敲了一部分的文件名和目录名。如果是Ubuntu
系统,系统默认启用了bash completion,还可以补全命令的某些参数、Makefile目标等
等。如果是Debian系统,可以用以下命令启用bash completion:
建议将这一行加入∼/.bashrc启动脚本中。比如使用sudo后面接命令,如果没有bash
completion则只有sudo可以补全,后面的命令不能补全。如果启用了bash completion,则
后面的命令,包括命令的某些参数(比如aptitude命令的install)都可以补全了。
比如在主目录下要列出桌面目录的内容,输入(不回车)
然后敲Tab键,如果以De开头的文件或文件夹只有Desktop一个,就自动补全为
否则,再敲一次Tab键,将会把所有以De开头的文件或文件夹列在下面供你选择(在这里
我们手动创建另外一个以De开头的文件)
你可以再补敲一个s再Tab,这次Desktop就会补全到命令后面了。
有的人 是从 DOS时 代过 来 的,留 下一 个很 不好的 习惯 就是 在找 一 个文 件时 反复 地
cd、ls、cd、ls。。。等找到了要找的文件时再想回到先前的目录,已经不记得先前是
从哪个目录转到这里来的了。
我们从上面可以看出,Tab补全本身就具备了ls的功能,上面的Tab补全相当于ls -Fd
De*命令。所以我们完全不必反复地cd到别的目录然后ls去找文件,多按几次Tab就可以一条
命令完成了,这样的好处是我们的当前目录不用变,不需要找完了文件再cd回来,同时省去
了大量的按键次数。更重要的是,自动补全同时兼具了检查拼写错误的功能,如果前面几个
字母拼写错了,就补全不出东西来,用户就知道拼写错了,如果前面几个字母没有拼写错,
那么由系统补全出来的文件名肯定也不会有拼写错误,避免了用户在敲很长的文件名时易犯
的拼写错误。