Linux每日一讲---Shell纳须弥2
-
== 本贴欢迎转载,转载请注明出处==
今天再看到这些个每日一讲的帖子就感觉搞笑。信誓旦旦讲了三天,大家还在云里雾里之时,老兄我不知云游到什么地方去了。接下去帖子要改名为每年一讲了。好了,闲话少叙,总之,“我,....(不是胡汉三啦), 又回来了”。
上一讲我们讲到,Shell是Linux操作系统的一部分,但是又与操作系统的其他部分相分离,所以我们可以任意选择Shell家族中一堆名字古怪的兄弟('ksh','zsh','csh','tcsh','bash' ...) 为我们打工。它们运行于终端环境中,主要任务解释输入的命令交由操作系统执行。其实,我们主要讨论的bash这位老兄,就比较有文化了。它不仅充当翻译的角色--向操作系统解释我们输入的命令,同时他还是一位语言大师--bash是一门编程语言。
我曾经在终端里鼓捣的时候,我的一个朋友很鄙视的说:“你丫现在还在玩DOS?”是的,Shell的运行环境和方法看起来与DOS相似,那么区别是什么呢?实际上就是上面讲过的:1、与系统其它部分想分离,可自由替换,2、更灵活,强大的命令支持,3、不仅仅是命令解释,还是一个编程语言(不是dos下简单的批处理)。我回答朋友,“这个DOS有点意思”
那么我们如何才能使用Shell呢?Linux的终端环境下都默认运行着Shell程序。所以,当你启动的Linux直接进入的是文本模式,就是黑乎乎没有图形的界面,你就在壳(Shell)里了;你也可以用CTRL+ALT+F1~F6这几个组合键进入Linux的虚拟终端从而钻到那个壳里,当然也可以在X图形界面下启动一个模拟终端窗口,窥探壳里的世界。
在bash的Shell环境中我们最熟悉看到的显示:
tony@tony-desktop:~$
这个就是bash一般情况下出现的提示符。其含义为:
tony -- 就是目前使用shell的用户名(本人自称tony所以它显示的是tony,不要捧着你的电脑来问我为什么你的电脑这里叫Sashimi,如果你请吃Sashimi的话,我会告诉你的:P )
tony-desktop --就是目前使用的电脑名称
~表示tony用户的主目录,一般为: /home/tony
所以tony用户要进入目录:/home/tony可以使用命令:cd /home/tony
更方便的你也可以使用:
cd ~
$符号通常表示一般用户,如果是root用户,这里就会变成#
当然提示符是完全可以自己定义的,比如你可以插入日期时间信息,改变显示的符号等等,以后有空来讨论。Bash是一个很体贴的朋友,举两个例子:
1、自动补全
比如在输入很长的目录时,你可以输入目录名称的一部分然后按Tab键,它会自动补全该目录的名称。如果你要进入/opt/ThisisaVeryLongDirectoryName/,你可以只输入 cd This[TAB]。(方括号中的内容不需要你输入,意思是按一下TAB键)你看,系统是不是自动把你的命令补全为:cd /opt/ThisisaVeryLongDirectoryName/
灵活的运用自动补全可以让你更快速的访问目录和执行命令。
2、历史命令
当你经常性的执行某些命令,你可以不必重新输入,按向上,向下的箭头来翻阅以前执行的命令,然后按回车键执行。这对于重复执行一些很长的指令是很节省命令输入时间的。以上的这两个特性在bash中可以有更方便的配置和复杂的应用,这要等我们熟悉了系统之后再研究。
在上一讲里,我们提到Shell强大到当你不知道你自己是谁的时候,通过输入whoami命令,它会告诉你。那么在本讲的最后,我想让你了解,当你在Linux的迷宫里“迷路”的时候,你可以输入pwd,让Linux告诉你现在身处何地。
pwd 意思是 print working directory(显示当前工作目录),好了,这下咱再也不会迷路了。