《快乐的Linux命令行》学习记录——使用命令

版权声明:共同提高:) https://blog.csdn.net/u011436427/article/details/83179568

这一章的命令主要是指:

• type –说明怎样解释一个命令名
• which –显示会执行哪个可执行程序
• man –显示命令手册页
• apropos –显示一系列适合的命令
• info –显示命令 info
• whatis –显示一个命令的简洁描述
• alias –创建命令别名

1 到底什么是命令?

命令的四种类型:
1)是一个可执行程序,类似的文件位于目录/usr/bin 中,这一类的程序可以编译成二进制文件。eg:用C和C++语言写成的程序,也可由脚本shell,perl,python,ruby写成的程序;
2)内建于shell自身的命令bash 支持若干命令,eg:cd,就是一个shell内部命令;
3)shll函数,这是个小规模的shell脚本,它们混合到环境变量中
4)命令别名

2 识别命令

3 type -显示命令的类型
type 命令是 shell 内部命令,它会显示命令的类别,给出一个特定的命令名(做为参数)。

type command

“command” 是你要检测的命令名

[me@linuxbox ~]$ type type
type is a shell builtins
[me@linuxbox ~]$ type ls
ls is aliased to ls --color=tty
[me@linuxbox ~]$ type cp
cp is /bin/cp

ls 命令加上选项 “–color=tty” 的别名。现在我们知道为什么 ls 的输出结果是有颜色的!

4 which -显示一个可执行程序的位置
有时候在大型服务器的操作系统中,不只安装了可执行程序的一个版本。
使用which命令:可以确定所给定的执行程序的准确位置。这个命令只对可执行程序有效,不包括内部命令和命令别名,别名是真正的可执行程序的替代物

[me@linuxbox ~]$ which cd
/usr/bin/which: no cd in
(/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/opt/jre1
.6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home/me/bin)

当我们试着使用 shell 内部命令时,例如, cd 命令,我们或者得不到回应,或者是个错误信息

5 得到命令文档

6 help -得到 shell 内部命令的帮助文档
bash有一个内建的帮助工具,可供每个shell内部命令使用。
help的用法:help+shell内部命令名

eg:

[me@linuxbox ~]$ help cd
cd: cd [-L|-P] [dir]
Change …

一个竖杠字符|:表示互斥选项

cd [-L|-P] [dir]

表明: cd 命令可能有一个 “-L” 选项或者”-P” 选项,进一步,可能有参数“dir”。
虽然 cd 命令的帮助文档很简洁准确,但它决不是教材

7 --help - 显示用法信息
许多可执行程序支持一个 “–help” 选项,这个选项是显示命令所支持的语法选项说明

[me@linuxbox ~]$ mkdir --help
Usage: mkdir [OPTION] DIRECTORY…
Create …

一些程序不支持 “–help” 选项,但不管怎样试一下。这经常会导致输出错误信息,但同时能揭示一样的命令用法信息。

8 man -显示程序手册页
许多希望被命令行使用的可执行程序,提供了一个正式的文档,叫做手册或手册页 (man page)
手册文档的格式有点不同,一般地包含一个标题,命令语法的纲要,命令用途的说明,和命令选项列表,及每个选项的说明。然而,通常手册文档并不包含实例,它打算作为一本参考手册,而不是教材。

下表描绘了手册的布局:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

man这个分页程序可以浏览一些命令所提供的文档,在大多数 Linux 系统中, man 使用 less 工具来显示参考手册,所以当浏览文档时,你所熟悉的 less 命令都能有效。

man program

“program” 是要浏览的命令名

eg:
1)要浏览li命令的手册文档

[me@linuxbox ~]$ man ls

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

[me@linuxbox ~]$ man 5 passwd

9 apropos -显示适当的命令
基于某个关键字的匹配项,可能搜索参考手册列表。
注意, man 命令加上“-k” 选项,和 apropos 完成一样的功能

eg:
下面是一个以 “floppy” 为关键词来搜索参考手册的例子:

[me@linuxbox ~]$ apropos floppy
create_floppy_devices (8) - udev callout to create all possible

输出结果每行的第一个字段是手册页的名字,第二个字段展示章节。

10 whatis -显示非常简洁的命令说明
whatis 程序显示匹配特定关键字的手册页的名字和一行命令说明:

在这里插入图片描述

11 info - 显示程序 Info 条目

GNU 项目提供了一个命令程序手册页的替代物,称为 “info”。
info 内容可通过 info 阅读器程序读取。
info 页是超级链接形式的,和网页很相似。

在这里插入图片描述

info 程序读取 info 文件, info 文件是树型结构,分化为各个结点,每一个包含一个题目。info 文件包含超级链接,它可以让你从一个结点跳到另一个结点。一个超级链接可通过它开头的星号来辨别出来,把光标放在它上面并按下 enter 键,就可以激活它。

用法:
输入 “info”,接着输入程序名称,启动 info。下表中的命令,当显示一个 info 页面时,用来控制阅读器。
在这里插入图片描述

eg:

我们所讨论的大多数命令行程序属于 GNU 项目 “coreutils” 包

[me@linuxbox ~]$ info coreutils

将会显示一个包含超级链接的手册页,这些超级链接指向包含在 coreutils 包中的各个程序

12 README 和其它程序文档
位置:
许多安装在你系统中的软件,都有自己的文档文件,这些文件位于/usr/share/doc 目录下

各类说明文件格式查看方式:
1)以文本文件的形式存储的,用 less 阅读器来浏览
2)HTML 格式,可用网页浏览器来阅读
3) “.gz” 结尾的文件,表示 gzip 压缩程序已经压缩了这些程序。gzip 软件包包括一个特殊的 less 版本,叫做 zlesszless 可以显示由 gzip压缩的文本文件的内容。

13 用别名(alias)创建你自己的命令
命令行小技巧:可以把多个命令放在同一行上,命令之间用 “;” 分开。

command1; command2; command3…

命令结构:

alias name=‘string’

在命令 “alias” 之后,输入“name”,紧接着(没有空格)是一个等号,等号之后是一串用引号引起的字符串,字符串的内容要赋值给 name

eg:

[me@linuxbox ~]$ cd /usr; ls; cd -
bin games kerberos lib64 local share tmp

[me@linuxbox ~]$

说明:正如我们看到的,我们在一行上联合了三个命令。首先更改目录到/usr,然后列出目录内容,最后回到原始目录(用命令 “cd ∼”) , 结束在开始的地方。

把上面的一行命令,用1个命令怎么表示?
现在,通过 alia 命令把这一串命令转变为一个命令。

们要做的第一件事就是为我们的新命令构想一个名字。比方说“test”。在使用”test” 之前,查明是否 “test” 命令名已经存在系统中,是个很不错的主意。为了查清此事,可以使用 type 命令:

[me@linuxbox ~]$ type test
test is a shell builtin

哦! “test” 名字已经被使用了。试一下”foo”:

[me@linuxbox ~]$ type foo
bash: type: foo: not found

太棒了! “foo” 还没被占用。创建命令别名:

[me@linuxbox ~]$ alias foo=‘cd /usr; ls; cd -’

我们定义了别名之后,这个命令别名可以使用在任何地方。

[me@linuxbox ~]$ foo
bin games kerberos lib64 local share tmp

[me@linuxbox ~]$

我们也可以使用 type 命令来查看我们的别名:

[me@linuxbox ~]$ type foo
foo is aliased to `cd /usr; ls ; cd -’

删除别名,使用 unalias 命令,像这样:

[me@linuxbox ~]$ unalias foo
[me@linuxbox ~]$ type foo
bash: type: foo: not found

虽然我们有意避免使用已经存在的命令名来命名我们的别名,但这是常做的事情
通常,会把一个普遍用到的选项加到一个经常使用的命令后面。例如,之前见到的 ls 命令,会带有色彩支持:

[me@linuxbox ~]$ type ls
ls is aliased to ‘ls --color=tty’

要查看所有定义在系统环境中的别名,使用不带参数的 alias 命令。下面在 Fedora 系统中默认定义的别名。试着弄明白,它们是做什么的:

[me@linuxbox ~]$ alias
alias l.=‘ls -d .* --color=tty’

在命令行中定义别名有点儿小问题。当你的 shell 会话结束时,它们会消失。随后的章节里,我们会了解怎样把自己的别名添加到文件中去,每次我们登录系统,这些文件会建立系统环境。

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/83179568