01-Linux获取命令使用帮助详解
01-Linux获取命令使用帮助详解

01-Linux获取命令使用帮助详解

命令的语法通用格式:COMMAND OPTINS ARGUMENTS

  • COMMAND OPTINS ARGUMENTS

    • 发起一个命令:请求内核将某个二进制程序运行为一个进程
    • 程序 ----> 进程
    • 静态 ----> 动态(有生命周期)
  • 命令本身是一个可执行的程序文件(内部直接调用了CPU指令集当中一颗CPU所允许运行指令当中的某个或某些)

    • 是二进制格式的文件, 有可能调用共享库文件;
    • 多数程序文件都存放在: /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin/, /usr/local/sbin
    • 普通命令: /bin, /usr/bin, /usr/local/bin
    • 管理命令: /sbin, /usr/sbin, /usr/local/sbin
    • 共享库: /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
    • 32bits的库: /lib, /usr/lib, /usr/local/lib
    • 64bits的库:/lib64, /usr/lib64, /usr/local/lib64
    • 注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
  • 命令必须遵循特定格式规范:exe,msi, RLF(Linux)

    • ~]# file /bin/ls
  • 命令可分为两类:

    1. 由shell程序自带的命令:内置命令(builtin)
    2. 独立的可执行程序文件,文件名即命令名:外部命令
  • shell程序是独特的程序,负责解析用户提供的命令:

    • 环境变量:

    • PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件

      ubuntu@VM-0-6-ubuntu:~$ echo $PATH
      /home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

      查找次序为:自左向右

    • 查看命令类型type COMMAND

    内建的命令类型没有与之匹配的路径名

    [rhino@rhino014 ~]$ type type
    type is a shell builtin
    type 是 shell 内建
    [rhino@rhino014 ~]$ type ls
    ls is aliased to `ls --color=auto'
    ls 是 "ls --color=auto" 的别名

OPTIONS

  • 指定命令的运行特性

  • 选项有两种表现形式

    1. 短选项: -C,例如-l, -d

      注意:有些命令的选项没有-符号;

      如果同一个命令同时使用多个短选项,多数可合并: -l -d = -ld

    2. 长选项: --word, 例如 --help, --human-readable

      注意:长选项不能合并

    注意:有些选项可以带参数,此称为选项参数

ARGUMENTS

  • 命令的作用对象:命令对什么生效
  • 注意:不同的命令的参数;有些命令可同事带多个参数,多个之间以空白字符分割

获取命令的使用帮助

内部命令:

help COMMAND

ubuntu@VM-0-6-ubuntu:~$ help type
type: type [-afptP] 名称 [名称 ...]
    显示关于命令类型的信息。

    对于每一个 <名称>,指出如果作为命令名使用时,它将如何被解释。

    选项:
      -a        当且仅当没有同时使用 "-p" 选项时,显示所有包含名为 <名称>
                的可执行文件的位置;包括别名、内建和函数
      -f        阻止 shell 函数查找流程
      -P        强制对每个 <名称> 搜索 PATH,即使它是别名、内建或函数,
                并且返回将被执行的磁盘上的文件的名称
      -p        返回将被执行的磁盘上的文件的名称,或者当 "type -t 名称"
                不返回 "file" 时,不返回任何值
      -t        返回下列单词中的一个:"alias"、"keyword"、"function"、
                "builtin"、"file" 或者 "",分别表示 <名称> 是一个别名、
                shell 保留字、shell 函数、shell 内建、磁盘文件或者未找到

    参数:
      名称      需要解释的命令。

    退出状态:
    如果所有的 <名称> 都被找到则返回成功;任何一个未找到则失败。

外部命令:

1.命令自带简要格式的使用帮助

~]# COMMAND --help

2.使用手册: manual

位置: /usr/share/man

~]# man COMMAND

SECTION:

  • NAME: 功能性说明
  • SYNOPSIS:语法格式
  • DESCRIPTION:描述
  • OPTIONS:选项
  • EXAMPLES:使用示例
  • AUTHOR:作者
  • BUGS:报告程序bug的方式
  • SEE ALSO:参考
  • ...

SYNOPSIS:

  • []: 可选内容
  • <>: 必须提供的内容
  • a|b|c: 多选一
  • ...: 同类内容可出现多个

使用手册:压缩格式的文件,有章节之分;

  • ll /usr/share/man

    数字代表内容

    1:用户在shell环境可操作的命令或执行文件;
    2:系统内核可调用的函数与工具等
    3:一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)
    4:设备文件说明,通常在/dev下的文件
    5:配置文件或某些文件格式
    6:游戏(games)
    7:惯例与协议等,如Linux文件系统,网络协议,ASCII code等说明
    8:系统管理员可用的管理命令
    9:跟kernel有关的文件
  • ~]# man CHAPTER COMMAND

  • 注意:并非每个COMMAND在所有章节下都有手册,如何知道哪个命令在哪个章节下有手册?

    • 查看:~]# whatis COMMAND
    ubuntu@VM-0-6-ubuntu:~$ whatis passwd
    passwd (1)           - 更改用户密码
    passwd (5)           - 密码文件
    passwd (1ssl)        - OpenSSL application commands

    注意:其中执行过程是查询数据库进行的

    • 手动更新数据库:~]# makewhatis
  • 实例:

    我们输入man ls,它会在最左上角显示LS(1),在这里,LS 表示手册名称,而(1)表示该手册位于第一节章,同样,我们输man ifconfig它会在最左上角显示 IFCONFIG(8)。也可以这样输入命令:man [章节号] 手册名称

    man 是按照手册的章节号的顺序进行搜索的,比如

    > man sleep

    只会显示 sleep 命令的手册, 如果想查看库函数 sleep,就要输入:

    man 3 sleep
  • man命令打开手册以后的操作方法:

    1. 翻屏
      • 空格键:向文件尾部翻屏;
      • b: 向文件首部翻屏;
      • Ctrl + d:向文件尾部翻半屏
      • Ctrl + k:向文件首部翻半屏
      • 回车键:向问价那位不翻一行;
      • k:向文件首部翻一行
      • G:跳转最后一行
      • nG: n代指数字,跳转至指定行
      • 1G:跳转至文件首部(第一行)
    2. 搜索
      • /keyword: 从文件首部向文件尾部依次查找;不区分字符大小写
      • ?keyword:从文件尾部向文件首部依次查找
      • n:与查找命令方向相同
      • N:与查找命令方向相反
    3. 退出
      • q: quit
  • 选项

    • -M /PATH/TO/SOMEDIR: 到指定目录下查找命令手册并打开之;
  • 练习:获取useradd命令的用法

    1. 添加用户gentoo

      useradd gentoo
      id gentoo
    2. 添加用户slackware,要求指定其所用的shell为/bin/tcshell

      useradd -s /bin/tcsh slackware
      tail -1 /etc/passwd

3.info COMMAND

获取命令的在线文档,一般作为man指令文档的补充性文档,不是每一个命令都有在线文档,一般使用频率较低

4.程序自带的帮助文档

很多应用程序会自带帮助文档: /usr/share/doc/APP-VERSION

  • README: 程序的相关信息;

  • INSTALL: 安装帮助

  • CHANGES: 版本迭代时的改动信息

5.Linux主流发行版的官方文档

http://www.redhat.com/doc

6.程序的官方文档

官方站点上的Document

7.用好搜索引擎

keyword filetype:pdf
keyword site:domain.tld
...

书籍推荐

  • 书籍的出版社
    • O'Reiley
    • Wrox
    • 机械工业/电子工业/人邮/清华大学/水利水电

发表回复

您的电子邮箱地址不会被公开。