2020-04-03
type -显示命令的类型
type 命令是 shell 内部命令,它会显示命令的类别,给出一个特定的命令名(做为参数)。
“command” 是你要检测的命令名。
type command
which -显示一个可执行程序的位置
有时候在一个操作系统中,不只安装了可执行程序的一个版本。为了确定所给定的执行程序的准确位置,使用 which 命令:
[root@VM_0_7_centos local]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
这个命令只对可执行程序有效,不包括内建命令和命令别名,别名是真正的可执行程序的替代物。当我们试着使用 shell 内建命令时,我们或者得不到回应,或者是个错误信息。
help -得到 shell 内建命令的帮助
[root@VM_0_7_centos local]# help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.
...
注意表示法:出现在命令语法说明中的方括号,表示可选的项目。一个竖杠字符表示互斥选项。在上面 cd
命令的例子中:
cd [-L|-P] [dir]
这种表示法说明,cd
命令可能有一个“-L
”选项或者“-P
”选项,进一步,可能有参数“dir
”。
–help - 显示用法信息
[root@VM_0_7_centos local]# mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
...
一些程序不支持 --help 选项,但不管怎样试一下。这经常会导致输出错误信息,但同时能揭示一样的命令用法信息。
man -显示程序手册页
man program
“program”是要浏览的命令名。
手册文档的格式有点不同,一般包含一个标题、命令语法的纲要、命令用途的说明、以及每个命令选项的列表和说明。然而,手册文档通常并不包含实例,它打算作为一本参考手册,而不是教程。
man
所显示的参考手册,被分成几个章节,它们不仅仅包括用户命令,也包括系统管理员命令、程序接口、文件格式等等。下表描绘了手册的布局:
上述用法也可以使用 man man
命令查看。
基本上,man
命令结果大致分成下面几个部分:
代号 | 内容说明 |
---|---|
NAME | 简短的指令下达语法(syntax)简介 |
DESCRIPTION | 较为完整的说明 |
OPTIONS | 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明 |
COMMANDS | 当这个程序(软件)在执行的时候,可以在此程序(软件)中下达指令 |
FILES | 这个程序或数据所使用或参考或链接到的某个文件 |
SEEALSO | 可以参考的,跟这个指令或数据有相关的其他说明 |
EXAMPLE | 一些可以参考的范例 |
man
指令常用按键:
按键 | 说明 |
---|---|
Space(空格) | 向下翻页 |
Home | 到第一页 |
End | 到最后一页 |
/string | 向下查找 string 字符串 |
?string | 向上查找 string 字符串 |
n | 利用 / 或 ? 查找字符串时,用 n 继续下一个查找 |
N | 利用 / 或 ? 查找字符串时,用 N 继续上一个查找 |
apropos -显示适当的命令
如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关键字通过Linux apropos实用程序来搜索它。该实用程序可以搜索关键字并且显示所有包含匹配项的man页面的简短描述。
[root@VM_0_7_centos local]# apropos ls
SSL (3ssl) - OpenSSL SSL/TLS library
blockdev (8) - call block device ioctls from the command line
BN_lshift (3ssl) - bit operations on BIGNUMs
BN_lshift1 (3ssl) - bit operations on BIGNUMs
c++filt (1) - Demangle C++ and Java symbols.
...
输出结果每行的第一个字段是手册页的名字,第二个字段展示章节。注意,man 命令加上“-k” 选项,和 apropos 完成一样的功能。
whatis -显示非常简洁的命令说明
whatis
程序显示匹配特定关键字的手册页的名字和一行命令说明:
[root@VM_0_7_centos local]# whatis ls
ls (1) - list directory contents
who -查看系统当前在线用户
[root@VM_0_7_centos ~]# who
root pts/0 2020-04-23 13:49 (111.19.105.205)
info -显示程序 Info 条目
GNU 项目提供了一个命令程序手册页的替代物,称为 “info”。info 内容可通过 info 阅读器程序读取。info 页是超级链接形式的,和网页很相似。
info 程序读取 info 文件,info 文件是树型结构,分化为各个结点,每一个包含一个题目。info 文件包含超级链接,它可以让你从一个结点跳到另一个结点。一个超级链接可通过它开头的星号来辨别出来,把光标放在它上面并按下 enter 键,就可以激活它。
输入 “info”,接着输入程序名称,启动 info。
下表中的命令,当显示一个 info 页面时,用来控制阅读器。
info coreutils
将会显示一个包含超级链接的手册页,这些超级链接指向包含在 coreutils 包中的各个程序。
README 和其它程序文档
许多安装在你系统中的软件,都有自己的文档文件,这些文件位于/usr/share/doc 目录下。这些文件大多数是以文本文件的形式存储的,可用 less 阅读器来浏览。一些文件是 HTML 格式,可用网页浏览器来阅读。我们可能遇到许多以 “.gz” 结尾的文件。这表示 gzip 压缩程序已经压缩了这些文件。gzip 软件包包括一个特殊的 less 版本,叫做 zless,zless 可以显示由 gzip 压缩的文本文件的内容。
用别名(alias)创建你自己的命令
命令行小技巧:把多个命令放在同一行上,命令之间用 “;” 分开。
command1; command2; command3...
如:
[root@VM_0_7_centos jansson-2.10]# cd /usr; ls; cd -
bin etc games include java lib lib64 libexec local sbin share src tmp
/usr/share/doc/jansson-2.10
[root@VM_0_7_centos jansson-2.10]#
正如我们看到的,我们在一行上联合了三个命令。首先更改目录到/usr,然后列出目录内容,最后回到原始目录(用命令 “cd -”), 结束在开始的地方。
现在,通过 alias 命令把这一串命令转变为一个命令。我们要做的第一件事就是为我们的新命令构想一个名字。
[root@VM_0_7_centos jansson-2.10]# type foo
-bash: type: foo: not found
[root@VM_0_7_centos jansson-2.10]#
[root@VM_0_7_centos jansson-2.10]# alias foo='cd /usr; ls; cd -'
[root@VM_0_7_centos jansson-2.10]#
[root@VM_0_7_centos jansson-2.10]# foo
bin etc games include java lib lib64 libexec local sbin share src tmp
/usr/share/doc/jansson-2.10
[root@VM_0_7_centos jansson-2.10]#
注意命令结构:
alias name='string'
在命令 “alias” 之后,输入“name”,紧接着(没有空格)是一个等号,等号之后是一串用引号引起的字符串,字符串的内容要赋值给 name。我们定义了别名之后,这个命令别名可以使用在任何地方。
我们也可以使用 type 命令来查看我们的别名:
[root@VM_0_7_centos jansson-2.10]# type foo
foo is aliased to `cd /usr; ls; cd -'
删除别名,使用 unalias 命令
[root@VM_0_7_centos jansson-2.10]# unalias foo
[root@VM_0_7_centos jansson-2.10]#
[root@VM_0_7_centos jansson-2.10]# type foo
-bash: type: foo: not found
[root@VM_0_7_centos jansson-2.10]#
要查看所有定义在系统环境中的别名,使用不带参数的 alias 命令。
[root@VM_0_7_centos /]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'