• Linux命令帮助


    1 命令格式介绍

    命令的语法通用格式:

    # COMMAND OPTIONS ARGUMENTS
    

    COMMAND

    • 发起一个命令表示请求内核将某个二进制程序运行为一个进程;
    • 程序启动为进程,静态程序变为动态的进程(有生命周期)。
    • 命令本身是一个可执行的二进制格式的程序文件,有可能会调用共享库文件。
    • 多数系统程序文件都存放在:/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下。
        注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件,Linux内置命令没有与之对应的可执行程序文件。
    • 命令必须遵循特定格式规范,如Windows中的exe, msi, Linux中的ELF;
    • 查看文件内容格式的类型:
      [root@localhost ~]# file /bin/ls
      /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, 
      BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
      
    • 命令分为两类:由shell程序的自带的命令叫做内置命令(builtin),独立的可执行程序文件,文件名即命令名,叫做外部命令。
    • shell程序是独特的程序,负责解析用户提供的命令,其通过查找PATH环境变量来查找用户键入的命令字符串所对应的命令文件。查找次序:自左而右。
      [root@localhost ~]# echo $PATH
      /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      
    • 查看命令类型:type COMMAND
      [root@localhost ~]# type ls
      ls is aliased to 'ls --color=auto'
      [root@localhost ~]# type type
      type is a shell builtin
      
    • which ls:可查看 ls 命令对应的可执行程序(也可以使用 whereis ls);
    • whereis ls:也可以获得 ls 有哪些帮助文件;

    OPTIONS

    • 指定命令的运行特性,指明要运行命令中的哪一部分功能代码。
    • 选项有两种表现形式:
      • 短选项:-C,例如-l,-d。注意:有些命令的选项没有-。如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld。
      • 长选项:–word,例如–help,–human-readable。注意:长选项不能合并。
        注意:有些选项可以带参数,此称为选项参数;短选项的参数用空格分隔,长选项的参数用=连接。

    ARGUMENTS

    • 命令的作用对象,命令对什么生效。
      注意:不同的命令有不同的参数,有些命令可同时带多个参数,多个之间以空白字符分隔。
      例如:ls -ld /var /etc

    2 获取命令的使用帮助

    help获取命令帮助(命令自带简要格式的使用帮助)

    • 内部命令获取帮助:help COMMAND
      help type
      
    • 外部命令获取帮助:COMMAND --help
      ls --help
      

    使用手册:manual

    • 位置:/usr/share/man
    • 命令:# man COMMAND
      man poweroff
      
    • 试想一下man命令怎么知道去哪里找呢?其实man有自己的配置文件,会在配置文件里面定义man文档的路径,配置文件为:
      • CentOS 6:/etc/man.config;
      • CentOS 7:/etc/man_db.conf;
        man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索手册并显示之。
    • 手册的各个部分SECTION:
      • NAME:简要功能性说明;
      • SYNOPSIS:命令使用语法格式;
      • DESCRIPTION:描述信息;
      • OPTIONS:选项;
      • EXAMPLES:使用示例;
      • AUTHOR:命令的作者;
      • BUGS:报告程序bug的方式;
      • SEE ALSO:额外参考哪些命令;
      • SYNOPSIS:
        • []:可选内容;
        • <>:必须提供的内容;
        • a|b|c:多选一;
        • …:同类内容可出现多个;
        • {}:用来做分组
    • 手册为压缩格式的文件,有章节之分,分别存放在/usr/share/man下的man1,man2,…;各个章节说明:
      • man1:用户命令手册;普通用户和管理员都可以运行的命令;
      • man2:系统调用手册;eg. open, read, write;
      • man3:C库调用手册;
      • man4:设备文件及特殊文件手册;
      • man5:文件格式手册(配置文件格式);
      • man6:游戏使用帮助手册;
      • man7:杂项手册;
      • man8:管理工具及守护进程手册;管理工具:只有管理员可以运行的命令帮助;
    • 查询某章节的某命令:man CHAPTER COMMAND
      man 5 passwd
      
    • 并非每个COMMAND在所有章节下都有手册,查看该命令在哪个章节下有手册:whatis COMMAND
      whatis passwd
      
      注意:其执行过程是查询数据库进行的,数据库会定期更新。
    • 手动更新数据库:makewhatis
    • man命令打开手册以后的操作方法:
      • 翻屏:
        • 空格键:向文件尾翻一屏;
        • b: 向文件首部翻一屏;
        • Ctrl+d:向文件尾部翻半屏;
        • Ctrl+u:向文件首部翻半屏;
        • 回车键:向文件尾部翻一行;
        • k: 向文件首部翻一行;
        • G:跳转至最后一行;
        • #G: 跳转至指定行;
        • 1G:跳转至文件首部;
      • 文本搜索:
        • /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
        • ?keyword:从文件尾部向文件首部依次查找;不区分字符大小写;
        • n: 与查找命令方向相同;下一个;
        • N: 与查找命令方向相反;下一个;
      • 退出:
        • q: quit
      • 选项:
        • 到指定目录下查找命令手册并打开之:-M /PATH/TO/SOMEDIR

    其他方式

    • 获取命令的在线文档:info COMMAND
    • 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION;
      • README:程序的相关的信息;
      • INSTALL:安装帮助;
      • ChangeLog:版本迭代时的改动信息;
    • 主流发行版官方文档:http://www.redhat.com/doc
    • 程序的官方文档:官方站点上的“Document”;
    • 搜索引擎:google;
      • keyword filetype:pdf
      • keyword site:domain.tld //域名,不加www
    • 参考书籍,经典书籍的出版社:
      • 国外出版社:O’Reiley、Wrox;
      • 国内出版社:机械工业出版社、电子工业出版社、人民邮电出版社、清华大学出版社、水利水电出版社。
  • 相关阅读:
    openfire 部署后报错: java.lang.IllegalArgumentException: interface xx is not visible from class loader
    Calendar
    list 移除值
    fastjson 返回json字符串,JSON.parse 报错
    tomcat 跨域
    spring boot 笔记
    Mybatis处理列名—字段名映射— 驼峰式命名映射
    hadoop的NullWritable
    CentOS中用Nexus搭建maven私服,为Hadoop编译提供本地镜像
    CentOS中配置xrdp,通过微软远程桌面访问CentOS桌面
  • 原文地址:https://www.cnblogs.com/tofengz/p/16335637.html
Copyright © 2020-2023  润新知