内容简介 1、第二部分第二课:命令行,世界尽在掌握 2、第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主流的标题呢?不能愉快地玩耍么?” 小编:“那我问你,老子他为什么要写《道德经》咧?” 读者:“为什么咧?” 小编:“因为老子愿意!” 开个玩笑轻松一下 O(∩_∩)O~ 没办法,不能不激动,因为我们终于来到了这一刻,命令行的征程将从此课开始。 而且你会发现,一旦入门并且精通了Linux命令行,那么你就离极客又近了一步。想要像电影里面那样分分钟破解密码么,想要像《钢铁侠》里的托尼.斯塔克一样用命令行编译录入钢衣中的程序么?那命令行是一大利器。 当然了,一开始我们肯定会带大家从基础的知识点入门,不会一上来就上演《骇客帝国》的。 命令行提示符 首先,我们假设您已经打开了一个终端。如果不知道什么是终端或者不知道如何打开一个终端,那你肯定没看我们的上一课(【Linux探索之旅】第二部分第一课:终端Terminal,好戏上场)。 上一课我们也介绍了两种终端的模式:
我们强烈推荐使用图形模式的终端。我们打开一个图形模式的终端,如下图: 可以看到终端的一行中开头是一串字符,后面白色的那一小块其实是闪动的光标,提示我们输入会从光标处开始。 那一串oscar@oscar-laptop:~$是什么意思呢?我们还什么都没有输入呢,怎么就显示了这一串不明所以的文字呢? 不要慌,你可以把它看成电脑跟你说“你好”呢,这是终端打招呼的方式(我承认这种打招呼的方式有点非主流,但是考虑到命令行是在20世纪六七十年代出生的,请多多担待),术语叫做“命令行提示符”,顾名思义就是提示在其后面输入命令。 在你输入新的一行命令前,这个命令提示符都会出现。 很想知道到底这一串字符表示什么意思对吗?我们把其拆分开来讲解:
因此,oscar@oscar-laptop:~$的意思就是: 《你好,你目前是以oscar这个用户登录;你的电脑名称为oscar-laptop;你目前位于 ~ 目录下,就是你的用户家目录。你是普通用户,拥有有限的权限》。 假如我此时把用户切换为root,你可以看到命令提示符的变化,如下图: 看到了吗?我一切换成root,命令提示符就变成了root@oscar-laptop:/home/oscar# 其实oscar/root和oscar-laptop这两个名字可以分别用hostname和whoami这两个命令来获知,如下图所示: 当然了,这个提示符的格式和内容是可以自行配置的,如果你嫌它太长,你可以精简它;如果你嫌它不够详细,可以再加显示的内容。如何来配置,我们在之后的课程,等你学会如何在Linux下使用文本编辑器之后再说。 命令和命令参数 我们在终端中工作时,就是给它传递指令,让它做我们要求的事情。这些指令都是通过命令的形式来输入的。 Linux中有很多很多命令,好消息是我们不需要全部记住,只需要记得一些常用的就可以了。对于那些不常用的命令,我们只要在使用前懂得如何去阅读命令的使用手册就好了。 是的,Linux的开发者们为我们写了丰富详尽的命令使用手册,英语是manual。 Linux的使用手册可以说是Linux开发者的“圣经”,你会发现他们只信靠这本“圣经”。 为什么呢?因为这是参考的工具书。命令的使用方法,各种用例,都详细地记载在这部“圣经”里。只要我们肯花功夫去读,就能找到想要的答案。 我们之后会用单独的一课教大家如何阅读Linux的使用手册:太重要了。 特别提一下,你可能看到过一些Linux老手,当一些Linux初学者问他们看似很简单,百度就能搜出来的问题,比如这个命令怎么用之类时,会对新手说:RTFM。 你会诧异RTFM是什么意思,其实RTFM是Read The F***ing Manual的首字母缩写,意为:“阅读那该*死的使用手册”。这并不是侮辱人的话,而是有点无奈的叹息。 类似的还有RTFSC,是Read The F***ing Source Code,“阅读那该*死的源代码”的缩写,据说是Linus Torvalds最先说的。 所以,为了避免以后有人对你说这样的话,还是好好学习如何阅读使用手册吧。 简单的命令 OK,停止了饶舌,我们终于要输入我们的第一个Linux命令了! 首先,我们从最简单的命令开始。 在终端中输入 date,然后按下回车键。你可以看到如下显示: 所以,我们输入 date 这个命令,终端显示了以下信息: Sat Aug 1 20:30:09 CEST 2015 这是什么意思呢?我们知道date在英语中是“日期”的意思,所以机灵的读者应该已经猜到date这个命令的作用了吧。 是的,就是显示当前时间和日期。
所以可知小编输入此命令时正是《欧洲中部夏令时间 2015年8月1日的20点30分09秒》,小编此时在法国居住。 怎么样,你已经学会了第一个Linux的命令,date,用于显示当前时间。激动莫? 再来学习第二个常用命令:ls 在终端中输入ls,按回车键,可以看到输出如下图: ls是list的缩写,list是英语“列举,列出”的意思。所以ls命令用于列出当前目录下的文件和目录。 不好意思,通常如果你刚装了Linux系统的话,是不可能有这么多文件的,小编因为学编程时在家目录下创建了上百个文件夹,所以一页显示不全。 如果ls命令没有返回任何信息,那么就说明当前目录下什么也没有。 看到了吗?命令其实很简单,就是不包含空格的字母组合。有时候是一个完整的英语单词,有时候是一个英语单词的一部分,有时候是几个单词连在一起。但是有很多时候,我们不仅仅只是输入一个命令,这个命令后还要跟一些参数。 参数 参数就是写在命令之后的一些补充选项。命令和参数之间有空格隔开。例如这样: command parameters 上面的command和parameter分别是英语“命令”和“参数”的意思,只是演示一下格式,并不是说真有command这个命令和parameters这个参数。 参数里可以包含多个参数,由空格隔开,也可以包含数字,字母,等等。可以说,参数没有固定的格式,但是一般来说还是遵循一定的规范的。 短参数(一个字母) 最常用的参数形式就是一个短横线后接一个字母。例如: command -p 如果我们要一次加好几个短参数,可以用空格隔开,例如: command -p -a -T -c 多个短参数也可以合并在一起,例如上面的命令等价于: command -paTc 请注意:参数的字母的大小写是有区别的,大写的T和小写的t通常表示不同意思。 我们来举一个实际的例子,比如我们用下面的命令来演示: ls -a 输入之后回车,就会显示如下图信息: 这个参数中的a是英语all的缩写,表示“全部”,所以 ls -a就是列出当前目录下所有文件,包括隐藏文件。 LInux的隐藏文件是以一个点开头的,如 .bashrc 。如果此时我们的目录是家目录,那么应该会有不少隐藏文件,大多是配置文件。 长参数(多个字母) 长参数没有短参数那么常用,但也是很有用的。短参数是以一个短横线开始,而长参数是以两个短横线开始的。例如: command --parameter 如果有多个长参数,是不能像多个短参数那样合并写的。而是只能以空格隔开,例如: command --parameter1 --parameter2 当然我们也可以组合使用短参数和长参数,例如: command -paTc --parameter1 --parameter2 有时候,同一个意义的参数有短参数和长参数两种形式,效果是一样的,可以任选哪一种。 例如 ls -a 和 ls --all 是一个作用,都是列出当前目录下的所有文件,包括隐藏文件。 参数的值 有一些参数你还需要给它赋一个值才行。而且短参数和长参数的赋值的方式不尽相同。 例如,短参数赋值,通常是这样的: command -p 10 表示把10赋值给p参数。 如果是长参数,则一般是这样赋值: command --parameter=10 长参数的方式更加容易理解,但是不如短参数那么简洁。 其他参数 正如我们说过的,参数的形式没有绝对的准则。我们上面给出的规则是一般的,有些命令的参数格式可能是我们没怎么见过的。 有些参数就不一样,而且取决于命令。例如对于 ls 这个命令,假如后面带了一个参数,这个参数是一个目录的路径名的话,那么就会列出此目录下的文件。 如下图: 我在 ~ 目录下执行了 ls linux_c 这个命令,因此列出了子目录 linux_c 中的文件。 如何找到一个命令 Linux的命令千千万,查找起来实在难。 那么如何在芸芸众令中找到你想要的那个命令呢?小编有时候就会想不起来一个命令到底是如何拼写的。 但是幸好,Linux的开发者们很有先见之明,早就为我们准备了对策,就是用Tab键来补全命令! 说实话,小编以前学Linux,学了有段时间了,还不知道Tab键的这个妙用。后来还是一个Linux高手演示给我看的,当时就震惊了,怎么还有如此好用的技能。“我读书少,你可不要骗我~”, 小编当时的内心也是醉醉的。 而且Tab键不仅可以补全命令,还可以补全文件名,路径名,绝对让你效率倍增。例如,我输入 da 这两个字母,然后按两次Tab键(记得不是按一次Tab键,是按两次),它将为我展示所有可能的补全选项,我们可以看到只有两个可能的选项: dash和date两个命令。如下图: 此时,如果我继续输入,变为dat。再按两次Tab键,那么它就为我自动补全成了date了。因为只有一个可能了。 又例如,我用ls命令,后跟一个目录名,我可以写目录名的几个首字母,然后用Tab来帮我补全,有很长的路径名时极为方便: 如果按Tab键N次一直没有显示什么选项,那说明不存在这几个字母开头的命令或路径。 有时候我们的命令候选项会太多,例如,我们来测试一下。假如,我不输入任何字符,而只是按两次Tab键,那么终端将会提示我所有可能的命令选项,如下图: 是不是有点吓人,因为我的系统里竟然有3408个命令。不同的人的系统里命令的数目是不一样的,取决于你安装了多少软件。安装的软件越多,可供选用的命令就越多。 我按下两次Tab键后,终端就询问我:Display all 3408 possibilities ? (y or n) 翻出来的意思就是“显示所有3408个可能的选项吗?(输入y表示确定,输入n表示否决)”。 我们可以输入y,按回车键,然后它就真的为我们显示了3408个命令。当然不是在一页中显示,分了很多页。 我们如何浏览这些页面呢?
一般情况下,我们是输入n,回车的,就什么都不显示了。毕竟要在3408个命令中找一个命令简直是大海捞针么。 命令的历史记录 很多时候,我们都需要找回我们之前输入的命令。不仅是因为有时我们忘了那句命令是什么,更重要的是,假如这句命令很长,我不想再花时间重新输入一遍了。那么显示命令的历史就很有用了。 有两个按键是很常用的:
如果你觉得用上下键每次进一个命令太花时间,那么你也可以用查找的方法: Ctrl + R : 用于查找使用过的命令。 例如,我查找date这个命令,就可以用Ctrl + R,按回车,然后只输入da,因为我之前使用过date这个命令,它就为我自动补全了date命令,如下图: history命令 history这个命令,用于列出之前使用过的所有命令,如下图: 可以看到,系统自动保存了小编输入过的2003条命令,最近的一条命令正式history。 可以方便我们了解自己之前输入过那些命令。 一些实用的快捷键 Linux系统不但提供了N多的命令,而且其键盘快捷键组合也是大大滴多。练好了快捷键,足以让你键盘飞起来,就是这个feel,倍儿爽。想象自己是《骇客帝国》的Neo。 下面列举一些经常使用的快捷键:
下面的快捷键在你编辑一条比较长的命令时很有用:
当然了,好的快捷键绝不止这些。 总结
第二部分第三课预告 今天的课就到这里,一起加油吧!
|
|