Linux学习--3.命令及查看命令帮助

命令及查看命令的详细使用

前言:

  通过这篇图文,读者可以了解 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 命令配合 man 命令查看帮助文档

  这种查看方法的优点是全,支持查询的命令全,关于帮助文档的内容全,所以缺点也明显,查看帮助文档操作略麻烦,但是他能解决几乎所有命令使用的问题,他绝对是我们学习 linux 的主力。就以查看最基础的 cd 命令为例

  • whatis 命令的作用查看帮助手册页和命令描述,什么意思呢既然能查看命令描述,那就先看下它怎么用呗,键入下面的命令

    whatis whatis

    看下他执行的结果,怎么说的,显示手册页码描述,手册页码呢就是(1),描述呢就是 - display ... 这段,至于页码等下马上在 man 命令里用到了

  • 好了 whatis 命令知道啥意思了可以查 cd 命令了

    whatis cd

    看下他的执行结果,怎么有两个?一样么?诶看下描述,第一个 cd 说的是 bash 内置的命令,详见 bash(1),那下面这个 cd 呢,说的是切换工作路径,好了下面这个 cd 就是我们要找的 cd 帮助了

  • 那下面可以用 man 命令了,它的作用是查看帮助文档,用法是 man + 手册页码 + 要查看的命令,如下所示,所以页码作用就是区分相同命令名,但是是不同命令的手册位置

    man 1p cd

    看下执行结果,跳出来一个新的窗口界面,底下有提示按 h 获取帮助,按 q 退出,其实这就是帮助文档了,怎么看文档 pageup 和 pagedn 可以上下翻页,按 e 和 y 可以下上逐行翻看,按 d 和 u 可以半页的翻看,不多说了这些会一个就行,具体操作按 h 可以看到。比较常用的我说下如查找某个关键字可以键入 / 要找的内容 ,按回车关键字就都会标记出来,还有上下左右键可以看文档这两个操作就够了。感觉这看文档操作都能写篇长文了,就先讲这些。先关注现在要看的 cd 帮助文档,下面跟着我的分析慢慢往下翻文档(因为文档实在太长我就不一一截图了,顺带可以练练文档的查看操作)

      下面是我的分析:

  • PROLOG:这个不重要,可忽略 
  • NAME:命令的名字 cd —— 它的功能描述,切换工作路径
  • SYNOPSIS:用法,也即命令格式,cd 有两种用法,第一种是 cd +【可选项】 +【目录】,第二种是 cd -
  • DESCRIPTION:对 cd 命令详细用法描述,这里有细节,看这个对 cd 的使用有很大的提升,当然它的内容不少,所以视情况一般关键字搜索找自己需要看的细节效率高点,全看没必要
  • OPTIONS:对 cd 命令后面跟的可选项的作用描述,如 cd -L 是后面跟 .. 和链接文件的话先处理 .. 再处理链接文件, -P 选项相反,这什么意思我也不太清楚,但是上面DESCRIPTION描述里应该有解释,这个我就不多说了,因为这也不常用(当然这是对于我来说,我还没怎么碰到这个选项用法)
  • OPERANDS:这个是讲 cd 后面跟的操作数(参数)可以有哪些,看内容 cd 后面可以有目录和 - 两个选项,目录这个我们早会用了,就是要切到的路径,那 cd - 又有什么作用呢,看内容说的是跟 cd "$OLDPWD" && pwd ,其实就是上次的路径跟当前路径可以来回切换,这个还挺常用,长得也很特殊挺好记的,记下吧
  • STDIN:标准输入,就是键盘敲东西进来给命令处理,cd 没有,不过可以看 cat 命令是支持的,这个重要不过暂时可不管
  • INPUT FILES:就是把文档内容输入进来给命令处理,显然 cd 不支持,这个重要不过暂时可不管
  • ENVIRONMENT VARIABLES:环境变量,他们可以前面加 $ 查看,如 $HOME 设置的是家目录的变量,这个可先忽略,不过确实重要
  • ASYNCHRONOUS EVENTS:这个我也不知道干嘛的,不重要,跳过
  • STDOUT STDERR OUTPUTFILES:标准输出,标准错误输出,输出到文件,同上面标准输入和文件输入对待,暂时不考虑使用
  • EXTENDED DESCRIPTION:扩展描述,适合扩展,不过先不考虑
  • EXIT STATUS:执行结果返回值,可以了解到命令执行成功和失败时返回的值,也有可能不返回,这里就有介绍
  • 后面还有很多,就重要的我说下,EXAMPLES,SEE ALSO 这两个内容可以看下,EXAMPLES有不少例子,不过 cd 没有例子,可能太简单了,可以换其他命令试下。SEE ALSO 是相关的命令、变量等。多的不讲了。我感觉自己都要把自己陷进去了,不过重要的都已经说了,第一种方法就讲到这了。
  • 第二种方法:type 命令配合 help 命令查看帮助

  这个方法优点是帮助说明显示简洁明了,所以上手快,主要还是省事,缺点就是他只支持内部命令,所以需要 type 命令先判断这个命令是不是内部命令,是才能用。还有命令帮助文档太长的话就很麻烦。所以他比较适合查看简单命令。

  • type 命令之前讲过了,那 help 命令有什么用呢,那不妨直接用它查他自己怎么用的,看下下面的例子

    help help

    下面是执行结果,大多数内容跟上面的文档差不多,所以我简单分析下:

    • 第一行是他的命令格式,help 后面跟命令(至于可选项,可不选,可选模式,可不选),然后下面是它的功能,显示内置命令的帮助信息,至于【pattern】是文字通配符的模式,学会它效率会提升不少,不过先不讲,查一堆命令的时候才有用

    • 中间是 OPTION 可选项,有三个可选项,后面跟各自的功能介绍,下面是 Argument 可选参数

    • Exit Status:执行命令后的返回结果

    简单提下,本地查找的话还可以命令后面跟 -h 或 --help 也能查看帮助,可以自行试下效果,不过不支持所有命令。下面简单说下网络查找

网络查找

   网上的相关资料我没有特别整理过,不过在找内置 Shell 命令的帮助文档上,我首推 GNU 的 coreultils 官方文档,Shell 命令就是 coreutils 这个软件包里的,这是他的使用手册http://www.gnu.org/software/coreutils/manual/ ,能解决99%的问题。GNU 是个倡导开源软件的组织,就是提供免费软件的团队。

   对了在查看网页版文档的时候,如果是谷歌浏览器的话,可以用 CTRL + F 键找关键字,这样会省事很多,毕竟命令一堆滚动条拉到什么时候,别的没了。

   在查外部命令的时候那就还是 man 命令吧,如果没看懂,可以找下 man 帮助文档的底下说不定会有一个帮助网页。对我就是这么发现 GNU 官网帮助的。

总结    

  命令的外表与本质-->用 type 判断命令本质配合 help 命令查内部命令帮助--> whatis 配合 man 看命令外在形式-->实现自学

  本质三种:shell 命令,外部命令,其他命令的别名

  外表多样,一般样子长这样:命令+可选项+一个参数或多个

  重点掌握了 type,help,whatis,man 四个命令及他们之间的组合用法,了解 -h 和 --help 可选项的用法。哦对了 -h 选项有时候不一定是列出帮助文档,如 poweroff -h 里的 -h 是 halt(挂起的意思),电脑就关机了,所以能用 --help 长选项别用 -h 短选项,指不定发生奇怪的事情,然后还不知道发生了什么。网页帮助文档的话是最后一种手段,而且尽量选择看官方的帮助。

互动环节

  大家有没有比较好的学习 Linux 的资源和网站可以分享下,我需要慢慢改进我的奇怪理解。还有帮助文档里带下划线的单词有什么特殊含义么,现在才发现这个我自己都不知道。

  

  

(0)

相关推荐