学会使用 Linux 命令

前面已经介绍了不少 Linux 系统下的命令了,但是命令这个概念还是比较模糊,有时叫命令,有时又叫可执行程序,有时叫软件,那到底有什么区别呢?还有许多命令还有复杂而神秘的命令行参数,加上参数后得到的结果和不加参数是不一样的。今天我们就再进一步学习一下命令,学会真正使用 Linux 命令。

今天要分享的内容如下:

  • type:命令的简单说明
  • which:显示会执行哪个可执行程序
  • man:显示命令手册页
  • apropos:显示一系列适合的命令(等价于:man -k
  • info:显示命令信息
  • whatis:显示一个命令的简洁描述
  • alias:创建命令别名

1. 到底什么是命令

命令有一下四种形式:

  • 是一个可执行程序,/usr/bin 目录下存储的文件就是可执行程序。 这些可执行程序都是不同编程语言开发出来的。
  • 是一个内建于 shell 自身的命令。Ubuntu 18.04 默认的 shell 是 Bash,Bash 有若干个内建的命令,如:cd 命令。
  • 配置在环境变量中的 shell 函数,这里先不要管什么是 shell 函数,后面我们学习 shell 编程的时候就会明白了。
  • 由 alias 创建的命令别名,其实我们之前一直使用的 ls 就是这样的一个命令,在 Ubuntu 18.04 上,我们执行 ls 命令,其实执行的是:ls --color=auto

那我们使用一个命令的时候,到底是上述四种命令中的哪一类呢?我们可以使用 type 来查看,用法是:type command。下图是一些例子:

20190325152139032_940614435.png

2. which

在 Linux 系统中,我们安装的软件有时不止一个版本,可能安装了好几个版本,那我们要运行这个软件的时候到底执行的是哪一个版本呢?这时候我们可以使用 which 命令来查看,用法是:which command,下图是一些例子:

20190325152630432_1403065033.png

不知大家有没有注意到,which cd 没有任何输出结果,在 Ubuntu 18.04 中,如果 which 后面跟的不是一个可执行程序,则不会返回任何信息。其实 which 只对可执行程序有效,不包括内建命令和命令别名,别名是真正的可执行程序的替代物。 当我们试着使用 shell 内建命令时,例如:cd ,就不会有任何返回。

3. 获取命令帮助文档

知道了什么是命令,我们再来看看怎么查看命令的帮助文档,也就相当于说明书啦,我们不知道怎么使用一个命令的时候,看看说明书是很有必要的。

3.1. help

help 是用来得到 shell 内建命令的帮助文档,用法:help command。例如:help cd

chaojun@ubuntu:~/file/code/alavening/ALD_A113X$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
    Change the shell working directory.

    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.

上面的内容我删除了一些,留下部分用来说明问题,[] 中的表示可选项,这里我们先不讨论 -L、-P、-e 的含义;| 表示互斥,比如选择了 -L 就不能在选择 -P。虽然 cd 命令的帮助文档很简洁准确,但它决不是教程。正如我们所看到的,它似乎提到了许多 我们还没有谈论到的东西!不要担心,我们会学到的。

3.2. --help

许多可执行程序支持一个 --help 选项,这个选项是显示命令所支持的语法和选项说明。例如:

chaojun@ubuntu:~/file/code/alavening/ALD_A113X$ 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/>
Full documentation at: <http://www.gnu.org/software/coreutils/mkdir>
or available locally via: info '(coreutils) mkdir invocation'
chaojun@ubuntu:~/file/code/alavening/ALD_A113X$ 

上面是 mkdir 命令的帮助信息,但并不是所有的命令都有 --help 帮助信息。

3.3. man 手册

许多希望被命令行使用的可执行程序,提供了一个正式的文档,叫做手册或手册(man page)。一个特殊的叫做 man 的分页程序,可用来浏览他们。用法:man program

使用 man 手册查看帮助信息的时候,man 的输出信息会被重定向到 less 这个软件中,所以我们查看 man 手册的时候如何上下翻页使用的是 less 的快捷键,如果你忘记了 less 的快捷键,建议回头看看 一些对使用 Linux 系统有帮助的命令

man 所显示的参考手册,被分成几个章节,它们不仅仅包括用户命令,也包括系统管理员命令、程序接口、文件格式等等。下面是每个章节的具体含义:

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

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

4. apropos

当我们需要某种功能的命令或者可执行程序的时候,我们不知道有什么命令或者程序或者函数可以满足,这时候我们就可以使用 apropos 来模糊搜索匹配的命令或可执行程序或者函数,虽然很粗暴,但有时还是很有用的。

比如,我们要知道和 TCP 相关的信息,我们就可以 apropos tcp,如下图是返回结果:

20190325160332602_294594691.png

5. whatis

whatis 程序用来显示匹配特定关键字的手册页的名字和一行命令说明,例如:whatis ls。man 手册其实是很多而且晦涩难懂的,所以有时候我们可以使用 whatis 命令查看一下某个命令的简单描述。

6. info

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

20190325161252469_849812512.png

看上去是不是很复杂,还要学习怎么使用 info 查看工具的快捷键,我看到就头大了,我是不想去了解了,放后面吧,如果其他帮助信息都找不到说明的时候再来看吧,当然如果你感兴趣可以先自己去找资料学习哦。

7. README 和其它程序文档

许多安装在你系统中的软件,都有自己的文档文件,这些文件位于 /usr/share/doc 目录下。 这些文件大多数是以文本文件的形式存储的,可用 less 阅读器来浏览。一些文件是 HTML 格式, 可用网页浏览器来阅读。我们可能遇到许多以 ".gz" 结尾的文件。这表示 gzip 压缩程序 已经压缩了这些文件。gzip 软件包包括一个特殊的 less 版本,叫做 zless,zless 可以显示由 gzip 压缩的文本文件的内容。

8. 用别名(alias)创建你自己的命令

现在是时候,感受第一次编程经历了!我们将用 alias 命令创建我们自己的命令。但在开始之前,我们需要展示一个命令行小技巧。可以把多个命令放在同一行上,命令之间 用”;”分开。例如:

cd /usr; ls; cd -

正如我们看到的,我们在一行上联合了三个命令。首先更改目录到 /usr,然后列出目录 内容,最后回到原始目录(用命令 cd -),结束在开始的地方。现在,通过 alias 命令 把这一串命令转变为一个命令。我们要做的第一件事就是为我们的新命令构想一个名字。 比方说 "test" 。在使用 "test" 之前,查明是否 "test" 命令名已经存在系统中,为了查清此事,可以使用 type 命令:type test,返回结果是:test is a shell builtin,噢哦,不行,那我们换一个吧,type foo,返回:bash: type: foo: not found,可以,foo 没有被占用,然后我们创建命令别名:alias foo='cd /usr; ls; cd -',现在我们就可以使用 foo 代替 cd /usr; ls; cd - 了。

如果不需要某个别名了,我们可以使用 unalias 删除,例如:unalias foo

注意:上面的操作知识临时生效的,终端模拟器关闭后就不生效了,后面的文章会介绍如何让它永久生效。

好了今天就分享到这里吧,内容比较多,希望大家不要为了阅读而阅读,而是要亲自去实践。即使你跟不上我更新的节奏,那也没关系,文章都可以永久免费阅读的,你慢慢挨着学习,相信你以后一定都能学会的。

欢迎关注微信公众号:eglinux,最新文章会在这个公众号首发,免费提供 CSDN 下载服务。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容