通过这篇图文,读者可以了解 Linux 里命令的外表和本质,及如何利用 linux 自带的帮助说明来自学一个自己没用过的命令。
自学要求:有点英语基础最好,这个等下看帮助文档的时候就知道了,能看懂大多数英语单词自学就没问题
首先,Linux 里的命令分为内置的Shell命令和外部命令,那这两种命令有区别么,本质是什么?
下面是我的个人理解:其实你可以把他们简单理解为系统预装的工具软件和自己后来装的工具软件,深入到本质讲的话,一个具体的命令就是一段编程语言编写的程序以二进制的方式保存的可执行文件,shell是c语言编写的,外部命令那可能是各种编程语言写的。所以说 shell 命令是肯定有的,是系统自带的;而外部命令可能默认没有,所以要用这个命令得先安装,比如我的第一篇 linux 笔记里的 tree 命令默认就是没有,得自己装 tree 这个软件。其实安装系统的时候就有自定义安装哪些软件的界面,也就是在装个人工具包。这都是我个人的奇怪理解,各位视个人理解程度看吧,有不对望提出。
一步步来,上面讲了我理解的 linux 里命令的本质,下面说下他的外表,也就是我们常看到它的样子
一般命令的格式:command 【option】 arguments ...
很简单举个例子像下面这个命令
rm -rf test.txt
rm:就是 command,命令
-rf:就是 option,可选项
test.txt:就是argument,参数
这里就简单了解下就好,实际上后面看帮助文档就明白一个命令的外表能有多花哨了,所以这个没必要认真记,看看过好了,就是参数的话后面可以跟好多个,也就是 test.txt 后面还能跟其他文件,rm 可以一次性删一堆文件,就这些
本质和外表都讲完了,然后怎么知道一个命令(内在)到底是那个类型呢,可以用 type 命令后面跟要查的命令,这个命令有三种返回结果。
上面的命令是查看 cd 命令的类型,执行结果看到 shell 就知道了,cd 是内部命令;那外部命令的执行结果呢,我就用 tree 命令举个例子。
执行结果返回的是一个路径,那就是 tree 命令的存放路径,所以 /usr/bin 就是用户的二进制命令存放的地方,usr 其实是 user 的缩写,bin 其实是 binary(二进制)的缩写,这样方便记忆,现在也正好开始积累起 linux 目录了,再可以用 ls -l /usr/bin/tree 命令看下文件类型,是可执行文件。所以当我们执行一个命令的时候其实是到他存放的路径里打开了这个文件。
但是用 type 命令有时候会有第三个执行结果,就比方说 mv 命令。
执行结果:mv 是 mv -i 的别名,这个什么意思呢,其实有个 alias 的命令,可以把一段命令起个其他的名字,也就是说执行 mv 其实就是执行 mv -i 这个命令。至于 alias 命令和 mv 后面多了 -i 是怎么回事我下面讲完查看帮助文档你就会自学了,先理解下 type 命令吧。
多想了一下,其实可能还有第四种情况,就是既是外部命令又取了别名,执行结果可能是既返回路径又显示别名的情况,那实际上也是上面这三种情况的组合,这个个人自行尝试下吧,也就当练习type命令的使用。
查看帮助有两种手段,一种网络上查看相关帮助文档,另一种也是最常用的,linux 上直接查看帮助文档。先讲最常用的本地查看方法
whatis whatis
看下他执行的结果,怎么说的,显示手册页码描述,手册页码呢就是(1),描述呢就是 - display ... 这段,至于页码等下马上在 man 命令里用到了
whatis cd
看下他的执行结果,怎么有两个?一样么?诶看下描述,第一个 cd 说的是 bash 内置的命令,详见 bash(1),那下面这个 cd 呢,说的是切换工作路径,好了就是我们要找的 cd 帮助
man 1p cd
看下执行结果,跳出来一个新的窗口界面,底下有提示按 h 获取帮助,按 q 退出,其实这就是帮助文档了,怎么看文档 pageup 和 pagedn 可以上下翻页,按 e 和 y 可以下上逐行翻看,按 d 和 u 可以半页的翻看,不多说了这些会一个就行,具体操作按 h 可以看到。比较常用的我说下如查找某个关键字可以键入 / 要找的内容 ,按回车关键字就都会标记出来,还有上下左右键可以看文档这两个操作就够了。感觉这看文档操作都能写篇长文了,就先讲这些。先关注现在要看的 cd 帮助文档
下面是我的分析:
第二种方法:在查看帮助的命令后面加 --help 或 -h 选项,这个方法优点是帮助说明显示简洁明了(就是 man 文档里跟命令不搭嘎还有太过于细致的内容删减了),所以上手快,也不需要掌握浏览文档要会的按键(当然这个不是关键)主要还是省事,缺点就是支持的命令没有 man 多,还有命令帮助文档一个屏幕没显示出来的话就很麻烦。所以他比较适合可选项不多的简单命令。
cat --help
下面是执行结果,大多数内容跟上面的文档差不多,所以我简单分析下:
Usage :用法,可以看到一般命令的格式,cat 后面加选项再加要查看的文件名(或者是跟标准输入输出)
中间是OPTION可选的参数,-A 是短选项,--show-all 是长选项,这两个是等价的,然后后面是它的功能,等价 -vET,这是组合选项相当于 -v -E -T 的功能之和,所以又要看这三个参数了,不过我就不细讲了,后面是英语问题了
本地查找的话就这些,下面简单说下网络查找
网上的相关资料我没有特别整理过,不过在找内置 Shell 命令的帮助文档上,我首推 GNU 的 coreultils 官方文档,Shell 命令就是 coreutils 这个软件包里的,这是他的使用手册http://www.gnu.org/software/coreutils/manual/ ,能解决99%的问题。GNU 是个倡导开源软件的组织,就是提供免费软件的团队。
对了在查看网页版文档的时候,如果是谷歌浏览器的话,可以用 CTRL + F 键找关键字,这样会省事很多,毕竟命令一堆滚动条拉到什么时候,别的没了。
在查外部命令的时候那就还是 man 命令吧,如果没看懂,可以找下 man 帮助文档的底下说不定会有一个帮助网页,你可以看我上面那张图最底下是不是写着 GNU coreutils online help 后面跟着一个网址。对我就是这么发现 GNU 官网帮助的。
命令的外表与本质-->用 type 判断命令本质--> whatis 配合 man 看命令外在形式-->实现自学
本质三种:shell 命令,外部命令,其他命令的别名
外表多样,一般样子长这样:命令+可选项+一个参数或多个
重点掌握了 type,whatis,man三个命令的用法,了解 -h 和 --help 可选项的用法。哦对了 -h 选项有时候不一定是列出帮助文档,如 poweroff -h 里的 -h 是 halt(挂起的意思),电脑就挂机了,所以能用 --help 长选项别用 -h 短选项,指不定发生奇怪的事情,然后还不知道发生了什么。网页帮助文档的话是最后一种手段,而且尽量选择看官方的帮助。
大家有没有比较好的学习 Linux 的资源和网站可以分享下,我现在苦学中,需要慢慢改进我的奇怪理解。
参与评论
手机查看
返回顶部