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

命令的语法通过格式:command(命令) options(选项) arguments(参数)例如:ls -l /var

发起一个命令:请求内核将某个二进制程序运行为一个进程程序

COMMAND命令本身是一个可执行的程序文件:二进制格式的文件,有可能调用共享库文件;
多数程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin
第三发的程序会放在/user/local/bin,/user/local/sbin
普通命令文件:bin,usr/bin,usr/local/bin
管理命令文件:sbin,usr/sbin/,usr/local/sbin

可以通过ls /bin来查看可执行的文件。
共享库文件也是二进制格式,但是不能单独执行,需要可执行程序调用。为什么需要共享库?因为这些库文件可以给多个程序引用,这样,X程序,Y程序也可以调用某个库文件,而不需要单独创建库文件。

共享库路径:32位系统:/lib /usr/lib /usr/local/lib
64位系统:/lib64 /usr/lib64 /usr/local/lib64
注意:并非所有的命令都有一个在某目录与之相对应的可执行程序文件。例如:cd

命令必须遵循特定格式规范:如windows exe和msi,ELF(Linux)
查看文件类容属性使用file命令,~]# file /bin/ls
命令分为两类:由shell程序的自带的命令:内置命令(builtin)独立的可执行程序文件,文件名即命令名:外部命令
当输入ls命令的时候,为什么系统会知道ls命令在哪里可以查找?
这是因为shell程序是独特的程序,负责解析用户提供的命令。它会去/bin usr/bin usr/local/bin中查找,这是环境变量决定的。

环境变量:PATH 从哪些路径中用户键入的命令字符串所对应的命令文件:可以通过echo $PATH中查看,当键入命令时,在哪里查找命令。如果多个路径存在相同的命令时,会自左向右优先选择命令。

2.png
shell自带的程序命令是找不到对应的命令文件的。可以通过type命令查看时外部还是内部的命令。如:~]# type ls

3.png
OPTIONS(选项):指定命令的运行的特性;

选项由两种表现形式:
短选项: -C 例如-l -d注意:有些命令的选项没有-;如果同时跟多个选项,可以合并,如:~]# ls -l -d 也可写成 ~]# ls -ld
长选项:–word,例如–help,–human –readable注意:长选项多数不能合并
有些选项可以带参数,此称为选项参数;而不是命令参数。

ARGUMENTS(参数):命令的作用对象:命令对什么生效。不同的命令,参数是不一样的。有些命令可同时带多个参数,多个之间以空格区分。
例如: ~]#ls -ld /var /etc