Linux - man page

使用man date来查看date命令的详细信息。

[email protected]:~$ man date
DATE(1)                          User Commands                         DATE(1)
# 请注意上面这个括号内的数字
NAME  <==这个命令的完整全名,如下所示为date且说明简单用途为配置与显示日期/时间
       date - print or set the system date and time 

SYNOPSIS  <==这个命令的基本语法如下所示
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 

DESCRIPTION  <==详细说明刚刚语法谈到的选项与参数的用法
       Display  the  current  time  in  the given FORMAT, or set the system
       date. 

       -d, --date=STRING  <==左边-d为短选项名称,右边--date为完整选项名称
              display time described by STRING, not 'now' 

       -f, --file=DATEFILE
              like --date once for each line of DATEFILE 

       -r, --reference=FILE
              display the last modification time of FILE
....(中间省略)....
       # 找到了!底下就是格式化输出的详细数据!
       FORMAT controls the output.  The only valid option  for  the  second
       form  specifies  Coordinated  Universal Time.  Interpreted sequences
       are: 

       %%     a literal % 

       %a     locale's abbreviated weekday name (e.g., Sun) 

       %A     locale's full weekday name (e.g., Sunday)
....(中间省略)....
ENVIRONMENT  <==与这个命令相关的环境参数有如下的说明
       TZ     Specifies the timezone, unless  overridden  by  command  line
              parameters.   If  neither  is  specified,  the  setting  from
              /etc/localtime is used. 

AUTHOR  <==这个命令的作者啦!
       Written by David MacKenzie. 

REPORTING BUGS  <==有问题请留言给底下的email的意思!
       Report bugs to <[email protected]>. 

COPYRIGHT  <==受到著作权法的保护!用的就是 GPL 了!
       Copyright ? 2006 Free Software Foundation, Inc.
       This is free software.  You may redistribute copies of it under  the
       terms      of      the      GNU      General      Public     License
       <http://www.gnu.org/licenses/gpl.html>.  There is  NO  WARRANTY,  to
       the extent permitted by law. 

SEE ALSO  <==这个重要,你还可以从哪里查到与date相关的说明文件之意
       The  full  documentation for date is maintained as a Texinfo manual.
       If the info and date programs are properly installed at  your  site,
       the command 

              info date 

       should give you access to the complete manual. 

date 5.97                          May 2006                            DATE(1) 

出现的这个屏幕画面,我们称呼他为man page, 可以在里头查询他的用法与相关的参数说明。

首先,在上个表格的第一行,可以看到的是:『DATE(1)』,DATE我们知道是命令的名称, 那么(1)代表什么呢?他代表的是『一般用户可使用的命令』的意思!他可以帮助我们了解或者是直接查询相关的数据。 常见的几个数字的意义是这样的:

代号 代表内容
1 使用者在shell环境中可以操作的命令或可运行文件
2 系统核心可呼叫的函数与工具等
3 一些常用的函数(function)与函式库(library),大部分为C的函式库(libc)
4 装置文件的说明,通常在/dev下的文件
5 配置文件或者是某些文件的格式
6 游戏(games)
7 惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明
8 系统管理员可用的管理命令
9 跟kernel有关的文件

上述的表格内容可以使用『man 7 man』来更详细的取得说明。透过这张表格的说明, 未来你如果使用man page在察看某些数据时,就会知道该命令/文件所代表的基本意义是什么了。 举例来说,如果你下达了『man null』时,会出现的第一行是:『NULL(4)』,对照一下上面的数字意义,原来null竟然是一个『装置文件』!

上表中的1, 5, 8这三个号码特别重要。

man page的内容也分成好几个部分来加以介绍该命令呢!就是上头man date那个表格内, 以NAME作为开始介绍,最后还有个SEE ALSO来作为结束。基本上,man page大致分成底下这几个部分:

代号 内容说明
NAME 简短的命令、数据名称说明
SYNOPSIS 简短的命令下达语法(syntax)简介
DESCRIPTION 较为完整的说明,这部分最好仔细看看!
OPTIONS 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明
COMMANDS 当这个程序(软件)在运行的时候,可以在此程序(软件)中下达的命令
FILES 这个程序或数据所使用或参考或连结到的某些文件
SEE ALSO 可以参考的,跟这个命令或数据有相关的其他说明!
EXAMPLE 一些可以参考的范例
BUGS 是否有相关的臭虫!
  1. 先察看NAME的项目,约略看一下这个数据的意思;
  2. 再详看一下DESCRIPTION,这个部分会提到很多相关的数据与使用时机,从这个地方可以学到很多小细节呢;
  3. 而如果这个命令其实很熟悉了(例如上面的date),那么主要就是查询关于OPTIONS的部分了! 可以知道每个选项的意义,这样就可以下达比较细部的命令内容呢!
  4. 最后,再看一下,跟这个数据有关的还有哪些东西可以使用的?举例来说,上面的SEE ALSO就告知我们还可以利用『info coreutils date』来进一步查阅数据;
  5. 某些说明内容还会列举有关的文件(FILES 部分)来提供我们参考!这些都是很有帮助的!

man page常用的按键

按键 进行工作
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[Home] 去到第一页
[End] 去到最后一页
/string 向『下』搜寻 string 这个字符串,如果要搜寻 lucifer 的话,就输入 /lucifer
?string 向『上』搜寻 string 这个字符串
n, N 利用 / 或 ? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) ,可以利用 N 来进行『反向』搜寻。举例来说,我以 /lucifer搜寻

lucifer字符串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?lucifer向上查询

lucifer字符串, 那我可以用 n 继续『向上』查询,用 N 反向查询。

q 结束这次的 man page

问题1:你可否查出来,系统中还有哪些跟『man』这个命令有关的说明文件呢?

使用 -f 这个选项就可以取得更多与man相关的信息,而上面这个结果当中也有提示了 (数字) 的内容, 举例来说,第二行的『 man (7) 』表示有个man (7)的说明文件存在

搜寻的顺序是记录在/etc/man.conf这个配置文件当中, 先搜寻到的那个说明档,就会先被显示出来! 一般来说,通常会先找到数字较小的那个啦!因为排序的关系啊!所以, man man 会跟 man 1 man 结果相同!

问题2:找出系统的说明文件中,只要有man这个关键词就将该说明列出来。

还有,whatis 相当于man -f,apropos 相当于man -k

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-21 08:54:18

Linux - man page的相关文章

mkbundle(1) - Linux man page

mkbundle(1) - Linux man page Name mkbundle, mkbundle2 - Creates a bundled executable. Synopsis mkbundle [options] assembly1 [assembly2 ...] Description mkbundle generates an executable program that will contain static copies of the assemblies listed

linux 各层调优必备工具

Brendan D. Gregg 维护了一份Linux性能调优工具的蓝图Linux Performance Tools,针对Linux系统的各个组件都有相应的分析工具,一目了然. Linux Performance Observability:sar, benchmarking, tuning:  Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux perfor

《linux 内核完全剖析》chapter 13 内存管理 (不含swap.c)

内存管理(memory.c 和swap.s 部分) "倒着看" 先看memory management,很明显,前面各种阻力,都是因为涉及内存管理.不先看这个,我估计前面看了也是白看 我估算着理论打基础砸了差不多一个星期的时间在memory management上面了...感觉很有收获,是时候用实践(code)印证理论了! <modern operating system>讲内存管理那一章 http://blog.csdn.net/cinmyheart/article/de

Linux select 机制深入分析

作为IO复用的实现方式.select是提高了抽象和batch处理的级别,不是传统方式那样堵塞在真正IO读写的系统调用上.而是堵塞在select系统调用上,等待我们关注的描写叙述符就绪.当然如今更好的方式是epoll,比方Java中的NIO底层就是用的epoll.这篇文章仅仅是为了搞懂select机制的原理.不看源代码就不能说懂这些IO复用手法.也在面试过程中体会到了,不去实践就会发现知道的永远是皮毛.面试问题:select的最大描写叙述符限制能够改动吗?(有待深入) 用户层API语法: /* A

Linux下5种IO模型的小结

概述 接触网络编程,我们时常会与各种与IO相关的概念打交道:同步(Synchronous).异步(ASynchronous).阻塞(blocking)和非阻塞(non-blocking).关于概念的区别在知乎上看到一位朋友(链接)打了一个比较形象的比喻: 你打电话问书店老板有没有<分布式系统>这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果).而异步通信机制,书店老板直接告诉你我查一下啊,查好了打

MySQL如何避免使用Linux的swap分区而提升读写性能

MySQL如何避免使用Linux的swap分区而提升读写性能 Linux有很多很好的内存.IO调度机制,但是并不会适用于所有场景.对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上.对于频繁进行读写操作的系统而言,数据看似在内存而实际上在磁盘是非常糟糕的,响应时间的增长很可能直接拖垮整个系统.这篇blog主要讲讲我们作为DBA,怎样尽量避免MySQL惨遭swap的毒手. 首先我们要了解点基础的东西,比如说为什么会产生sw

Linux pipe 源码分析

管道pipe作为Unix中历史最悠久的IPC机制,存在各个版本的Unix中,主要用于父子进程之间的通信(使用fork,从而子进程会获得父进程的打开文件表),pipe()系统调用底层的实现就相当于一个特殊的文件系统,每次调用的时候创建一个inode关联着两个file,一个用于读,一个用于写,从而实现数据的单向流动. 用户层API: #include <unistd.h> int pipe(int pipefd[2]); #define _GNU_SOURCE /* See feature_tes

(转)《linux性能及调优指南》 3.3 内存瓶颈

翻译:Hank (http://blog.csdn.net/fireroll)版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明.原文名称:<Linux Performance and Tuning Guidelines>原文地址:http://www.redbooks.ibm.com/abstracts/redp4285.html 3.3 内存瓶颈On a Linux system, many programs run at the same time. These progra

linux 异步信号的同步处理方式

关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略.本文首先介绍如何编写安全的异步信号处理函数:然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理. 应用中编写安全的信号处理函数 在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量.如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1.SIGRTMIN 等,信号在被处理后应用程序还将正常运