Back
Please upgrade your browser or check your network connection.

学会使用Linux的帮助系统

Linux的帮助系统

基于Ubuntu 16.04编写

前言

在Linux学习的第一节,我认为首先要了解其帮助系统。

因为Linux的命令是上千的,不可能全部都记住的。

我们只需要记住一些常用的命令就好,不懂,忘记的时候,要善于使用Linux的帮助系统。

man page

man是manual的简写。

可以通过下面的命令,查看man的用法。

1man man

在man界面时候的一些快捷键

按键作用
空格向下翻一页
[Page Down]向下翻一页
[Page Up]向上翻一页
[Home]去到第一页
[End]去到最后一页
/string搜寻 string 这个字符串,如果要搜寻 time 的话,就输入 /time
?string搜寻 string 这个字符串
n, N利用 /? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 /?) ,可以利用 N 来进行反向搜寻。举例来说,我以 /time 搜寻 time 字符串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?time 向上查询 time 字符串, 那我可以用 n 继续向上查询,用 N 反向查询。
q结束这次的 man page

查看date命令

现在通过man查看date命令

1man date
 1DATE(1)                              User Commands                              DATE(1)
 2#注意上面的1,稍后说到
 3NAME <<<< 这里简单地介绍了date的用法
 4       date - print or set the system date and time
 5
 6SYNOPSIS <<<< date的语法
 7       date [OPTION]... [+FORMAT]
 8       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
 9
10DESCRIPTION <<<<< 对于date的语法命令的描述
11       Display the current time in the given FORMAT, or set the system date.
12
13       Mandatory arguments to long options are mandatory for short options too.
14
15       -d, --date=STRING
16              display time described by STRING, not 'now'
17
18       --debug
19              annotate the parsed date, and warn about questionable usage to stderr
20        ......
21        ......
22    # 下面的这个是比较常用的格式化输出说明
23       FORMAT controls the output.  Interpreted sequences are:
24
25       %%     a literal %
26
27       %a     locale's abbreviated weekday name (e.g., Sun)
28
29       %A     locale's full weekday name (e.g., Sunday)
30
31       %b     locale's abbreviated month name (e.g., Jan)
32
33       %B     locale's full month name (e.g., January)
34
35       %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)
36        .......
37        .......
38EXAMPLES <<< 这些是一些例子
39       Convert seconds since the epoch (1970-01-01 UTC) to a date
40
41              $ date --date='@2147483647'
42
43       Show the time on the west coast of the US (use tzselect(1) to find TZ)
44
45              $ TZ='America/Los_Angeles' date
46
47       Show the local time for 9AM next Friday on the west coast of the US
48              $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'
49
50DATE STRING <<< 对于date string的介绍
51       The --date=STRING is a mostly free format human readable  date  string  such  as
52       "Sun,  29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thurs‐
53       day".  A date string may contain items indicating calendar date,  time  of  day,
54       time  zone,  day  of  week, relative time, relative date, and numbers.  An empty
55       string indicates the beginning of the day.  The date string format is more  com‐
56       plex  than is easily documented here but is fully described in the info documen‐
57       tation.
58
59AUTHOR <<< 作者
60       Written by David MacKenzie.
61
62REPORTING BUGS  << 发现有bug就到这里反馈
63       GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
64       Report date translation bugs to <http://translationproject.org/team/>
65
66COPYRIGHT << 一些版权信息
67       Copyright © 2016 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version
68       3 or later <http://gnu.org/licenses/gpl.html>.
69       This  is free software: you are free to change and redistribute it.  There is NO
70       WARRANTY, to the extent permitted by law.
71
72SEE ALSO  << 与这个date命令相关的文档
73       Full documentation at: <http://www.gnu.org/software/coreutils/date>
74       or available locally via: info '(coreutils) date invocation'
75
76GNU coreutils 8.26                   February 2017                              DATE(1)
77

man界面顶头的数字是啥意思

  • 1 使用者在shell环境中可以操作的命令或可运行文件

  • 2 系统核心可呼叫的函数与工具等

  • 3 一些常用的函数(function)与函式库(library),大部分为C的函式库(libc)

  • 4 装置文件的说明,通常在/dev下的文件

  • 5 配置文件或者是某些文件的格式

  • 6 游戏(games)

  • 7 惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明

  • 8 系统管理员可用的管理命令

  • 9 跟kernel有关的文件

上面的1,5,8 是比较重要的!!!

man的搜索功能

如果单纯是用man string这种方式查看的话,只会返回第一个man的内容。

并不知道有没有其他文件也有关于这个的内容。

所以使用man的搜索功能— man -f [string]

1pi@raspberrypi:~ $ man -f man
2man (1)              - an interface to the on-line reference manuals
3man (7)              - macros to format man pages
4pi@raspberrypi:~ $ man 1 man #查看 man(1)的内容
5pi@raspberrypi:~ $ man 7 man #查看 man (7)的内容

注意:这种搜索方法是,搜索的字符串完全匹配左边的字符才会显示的。

例如:搜索man ,不会出来command.

如果你要从man搜索到command.

则应该使用 man -k [string].

info page

info page 与上面的 man page 一样,都是Linux的一种文档查询的方法。

就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。一个man page只有一页,而info页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。理解这个命令的窍门就是不仅要学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换。可能刚开始会一时很难在info页面的节点之间移动和找到你要的东西,真是具有讽刺意味:原本以为对于新手来说,某个东西比man命令会更好些,但实际上学习和使用起来更困难。

简单来说,两者的区别,info会把数据进行分割做成节点使得更加易读,但是初学者容易找不到你需要的东西。

info的文档默认在/usr/share/info

相关的快捷键

其他的帮助文档

还会有很多的文档在这个/usr/share/doc/目录下面

最后

因为本人的技术水平有限,有错,麻烦大家留言下。

Thanks