2 shell
2.1 shell家族
shell:命令解释器,根据输入的命令执行相应命令。
察看当前系统下有哪些shell:
cat /etc/shells
查看当前系统正在使用的shell
echo $SHELL
常见shell:
/bin/sh (已经被 /bin/bash 所取代)
/bin/bash (就是 Linux 默认的 shell)
/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已经被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
2.2 bash
bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-AgainSHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)
bash bash是许多 Linux平台的内定 Shell,事实上,还有许多传统 UNIX上用的 Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种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:
$ source /etc/bash_completion
建议将这一行加入∼/.bashrc启动脚本中。比如使用sudo后面接命令,如果没有bashcompletion则只有sudo可以补全,后面的命令不能补全。如果启用了bash completion,则后面的命令,包括命令的某些参数(比如aptitude命令的install)都可以补全了。比如在主目录下要列出桌面目录的内容,输入(不回车)
$ ls op
然后敲Tab键,如果以op开头的文件或文件夹只有opt一个,就自动补全为
$ cd opt/
否则,再敲一次Tab键,将会把所有以m开头的文件或文件夹列在下面供你选择
$ cd m
敲一次Tab键:
有的人是从 DOS时代过来的,留下一个很不好的习惯就是在找一个文件时反复地cd、ls、cd、ls。。。等找到了要找的文件时再想回到先前的目录,已经不记得先前是从哪个目录转到这里来的了。
我们从上面可以看出,Tab补全本身就具备了ls的功能,上面的Tab补全相当于ls -FdDe*命令。所以我们完全不必反复地cd到别的目录然后ls去找文件,多按几次Tab就可以一条命令完成了,这样的好处是我们的当前目录不用变,不需要找完了文件再cd回来,同时省去了大量的按键次数。更重要的是,自动补全同时兼具了检查拼写错误的功能,如果前面几个字母拼写错了,就补全不出东西来,用户就知道拼写错了,如果前面几个字母没有拼写错,那么由系统补全出来的文件名肯定也不会有拼写错误,避免了用户在敲很长的文件名时易犯的拼写错误。
2.4 历史记录
历史记录是另外一个非常方便的功能。按上下移动光标键(或者Ctrl-p、Ctrl-n)可以一条一条浏览以前输过的命令。如果有需要重复输入的命令就不用输第二次了。如果你能记住以前输过的某条命令中的某个关键字,可以按Ctrl-r,然后输入关键字,随着你每输入一个字母,bash会做增量式(increasingly)查找,也可以反复按Ctrl-r或Ctrl-s向前向后查找。如果找到了,按左右移动光标键或Home键(Ctrl-a)或End键(Ctrl-e)将该命令带回提示符下进一步修改,或者直接按Enter键原封不动地执行该命令。
2.5 主键盘快捷键
bash的快捷键和emacs保持一致,用惯其中之一再用另一个程序会很顺手的。请记住一条原则:尽量使用主键盘快捷键而不使用移动光标键和编辑键。因为手不必离开主键盘是效率最高的,这样在你一生之中所节省的来回移动手的时间绝对可以用星期来计算,是绝对值得你花十分钟的时间记住这些快捷键的。
功能 | 快捷键 | 助记 |
---|---|---|
上 | Ctrl-p | previous |
下 | Ctrl-n | next |
左 | Ctrl-b | backward |
右 | Ctrl-f | forward |
Del | Ctrl-d | delete光标后面的 |
Home | Ctrl-a | the first letter |
End | Ctrl-e | end |
Backspace | Backspace | delete光标前面的 |
You make millions of decisions that mean nothing, and then one day your order takes out and it changes your life.
你每天都在做很多看起来毫无意义的决定,但某天你的某个决定就能改变你的一生。
个人微信公众号,专注于学习资源、笔记分享,欢迎关注哇,。我们一起成长,一起学习。一直纯真着,善良着,温情地热爱生活。
XiangLin
2020年2月18日于重庆城口
好好学习,天天向上,终有所获