#《快乐的 Linux 命令行》

#命令

四种命令的形式:

  1. 一个可执行程序
  2. 一个内建于shell自身的命令,内部命令
  3. 一个shell函数
  4. 一个命令别名

#type

type命令是shell内部命令,它会显示命令的类别:

1
type command
1
2
3
4
5
6
onns@DESKTOP-5JJP7PL:~$ type type
type is a shell builtin
onns@DESKTOP-5JJP7PL:~$ type ls
ls is aliased to `ls --color=auto`
onns@DESKTOP-5JJP7PL:~$ type cp
cp is /bin/cp

#which

which用来查找一个可执行程序的位置,因为一个程序可能有很多个版本:

1
which command
1
2
3
4
onns@DESKTOP-5JJP7PL:~$ which ls
/bin/ls
onns@DESKTOP-5JJP7PL:~$ which win-lab406
/mnt/d/weiyun/Code/bash/win-lab406

这个命令只对可执行程序有效,不包括内建命令和命令别名。

第二个命令是我自己写的。

当我企图查找内部命令的时候,根本找不到= =,什么提示都没有:

1
2
onns@DESKTOP-5JJP7PL:~$ which cd
onns@DESKTOP-5JJP7PL:~$

#help

help命令大概就是用来提示你这个命令怎么用的吧…

1
help command
1
2
3
onns@DESKTOP-5JJP7PL:~$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
...

出现在命令语法说明中的方括号,表示可选的项目。
一个竖杠字符表示互斥选项。

cd命令的帮助文档很简洁准确,但它决不是教程。[1]

--help是一个很多程序支持的选项,作用是:显示命令所支持的语法和选项说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
onns@DESKTOP-5JJP7PL:~$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
-p, --parents no error if existing, make parent directories as needed
-v, --verbose print a message for each created directory
-Z set SELinux security context of each created directory
to the default type
--context[=CTX] like -Z, or if CTX is specified then set the SELinux
or SMACK security context to CTX
--help display this help and exit
--version output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report mkdir translation bugs to <http://translationproject.org/team/>
Full documentation at: <http://www.gnu.org/software/coreutils/mkdir>
or available locally via: info '(coreutils) mkdir invocation'

#man

man命令用来查看一些程序的文档手册:

1
man program

手册文档的格式有点不同,一般地包含一个标题命令语法的纲要命令用途的说明、以及每个命令选项的列表和说明。手册文档通常并不包含实例。

在大多Linux系统中,man使less工具来显示参考手册,所以当浏览文档时,你所熟less悉命令都能有效。[2]

参考手册有很多不同的章节:

章节 内容
1 用户命令
2 程序接口内核系统调用
3 C 库函数程序接口
4 特殊文件,比如说设备结点和驱动程序
5 文件格式
6 游戏娱乐,如屏幕保护程序
7 其他方面
8 系统管理员命令

有时候,我们需要查看参考手册的特定章节,从而找到我们需要的信息。如果我们要查找一种文件格式,而同时它也是一个命令名时, 这种情况尤其正确。没有指定章节号,我们总是得到第一个匹配项,可能在第一章节。我们这样使用man命令,来指定章节号:[3]

1
man section search_term
1
2
onns@DESKTOP-5JJP7PL:~$ man 5 passwd
onns@DESKTOP-5JJP7PL:~$

  1. 老实说,没看懂这句话啥意思。 ↩︎

  2. 看到这里的时候,我大概已经忘了less怎么用了,不愧是我。 ↩︎

  3. 没看懂这句话。 ↩︎