【Linux入门第七天】-Linux基础之命令规范

03_Linux基础之命令规范

回顾:
开源协定:
GPL,LGPL,BSD,Apache

BSD要求:
1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定中;
2、如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版本声明中说明包含原来的代码中的BSD协定;
3、不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广;
代码的共产的主义运动:

文件系统、文件、目录:
    倒置树状结构:
        目录:
        文件:
    文件名:严格区分字符大小写;路径分隔符/;
路径:
   绝对路径:
   相对路径:

程序的组成部分:二进制程序文件、库文件、配置文件、帮助文件;
    二进制、库文件:可执行文件
        库文件:不能独立执行,只能被调用时执行
    配置文件、帮助文件:可被查看其内容的文件;

推荐书籍<穿越计算机的迷雾>、<量子物理史话>

人机交互界面:
    GUI
    CLI
       [login@hostname workdir]# COMMAND

Linux基础知识:

命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS(参数)
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 —> 进程
静态 —> 动态(有生命周期)

        命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
            多数系统程序文件都存放在:/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,ELF(Linux)
            ~]# file /bin/ls
        命令分为两类:
            由shell程序的自带的命令:内置命令(builtin)
            独立的可执行程序文件,文件名即命令名:外部命令

        shell程序是独立的程序,负责解析用户提供的命令:
             环境变量:
                  PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
                      ~]# echo $PATH
                      /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

                      查找次序:自左而右;

        查看命令类型:
            type COMMAND

    OPTIONS:
       指定命令的运行特性;

       选项有两种表现形式:
           短选项:-C,例如:-l,-d
               注意:有些命令的选项没有-;
               如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
           长选项:--word,例如:--help,--human-readable;
               注意:长选项不能合并;

            注意:有些选项可以带参数,此称为选项参数;
    ARGUMENTS:
        命令的作用对象:命令对什么生效;

        注意:不同的命令的参数:有些命令可同时带多个参数,多个之间以空白字符分隔;
    例如:ls -ld /var  /etc

获取命令的使用帮助:
    内部命令:
        help COMMAND
    外部命令:
        (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:多选一;
                 ...:同类内容可出现多个;
           使用手册:压缩格式的文件,有章节之分;
               /usr/share/man
                   man1,man2,...

                   man1:用户命令;
                   man2:系统调用;
                   man3:C库调用;
                   man4:设备文件及特殊文件;
                   man5:文件格式:(配置文件格式)
                   man6:游戏使用帮助;
                   man7:杂项;
                   man8:管理工具及守护进程;
               ~]# man CHAPTER COMMAND

               注意:并非每个COMMAND在所有章节下都有手册
                  查看命令哪些章节有帮助手册:
                     ~]# whatis COMMAND

                     注意:其执行过程是查询数据库进行的;
                        手动更新数据库:
                            ~]# makewhatis

            man命令打开手册以后的操作方法:
                翻屏:
                   空格键:向文件尾翻一屏;
                   b:向文件首部翻一屏;
                   Ctrl+d:向文件尾部翻半屏;
                   Ctrl+u:向文件首部翻半屏;
                   回车键:向文件尾部翻一行;
                   k:向文件首部翻一行;
                   G:跳转至最后一行;
                   #G:跳转至指定行;
                   1G:跳转至文件首部;
                文件搜索:
                    /keyword:从文件首部向文件尾部依次查找;不区分字符大小写
                    ?keyword:从文件尾部向文件首部依次查找:
                        n:与查找命令方向相同;
                        N:与查找命令方向相反;
                退出:
                   q:quit
              选项:
                 -M  /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;

              练习:获取useradd命令的用法
                (1)添加用户gentoo:
                   # useradd gentoo
                   # id gentoo
                (2)添加用了slackware,要求指定其所用的shell为/bin/tcsh;
                   # useradd -s /bin/tcsh slackware
                   # tail -l /etc/passwd

        (3)info COMMAND
           获取命令的在线文档

        (4)很多应用程序自带帮助文档:/usr/share/doc/APP-VERSION
           README:程序的相关的信息;
           INSTALL:安装帮助;
           CHANGES:版本迭代时的改动信息;

        (5)主流发行版官方文档
           http://www.redhat.com/doc

        (6)程序官方的文档
           官方站点上的"Document"

        (7)搜索引擎
           google 

             keyword filetype:pdf
             keyword site.domain.tld

    书籍的出版社:
        O'Reiley
        Wrox
        机械工业、电子工业、人邮、清华大学、水利水电
    原文作者:zx5200
    原文地址: https://www.jianshu.com/p/3cf76c8cfc85
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞