从 man 指令起步

前言

  小生认为一切指令的学习首先要从帮助入手,深入了解它的功能,即使是在实际项目中我们都离不开它的帮助。因为我们不一定能够记住全部指令的全部的相关功能,因此,查看指令的帮助是我们的不二选择。

正文

  下面,我们就来看看  man 和 info 这两个指令。

首先,我们可以通过 man man指令来查看相关说明。可能有的朋友英语不算很好,又想尽快的掌握linux指令,我们可以下载中文man帮助手册,安装后设置别名(如cman),使用其便可显示中文(安装过程请关注下一篇博客)。不过,小生建议不要过度依赖中文手册,读懂英文文献才是王道。

man(1) 

NAME
       man - format and display the on-line manual pages

MANUAL SECTIONS
       The standard sections of the manual include:

       1      User Commands        //标准指令---用户在shell环境中可以执行的指令或可执行文件

       2      System Calls         //系统调用---由内核提供的函数 (open,write之类,查看头文件)

       3      C Library Functions     //C 函数 ---(printf,fread) 

       4      Devices and Special Files  //设备和特殊文件说明 ---通常在/dev下的文件

       5      File Formats and Conventions  //文件格式和约定 ---配置文件或者是某些文件的格式 比如passwd 

       6      Games et. Al.          //游戏等娱乐 ---给游戏留的,由各个游戏自己定义

       7      Miscellanea           // 杂项 ---例如man、environ、Linux文件系统、网络协议、ASCII code等说明

       8      System Administration tools and Deamons  //系统管理员可用的管理命令---ifconfig 

例如 :

[[email protected] ~]$ man printf    --左上角默认PRINTF(1),是shell中的指令
[[email protected] ~]$ man 3 printf  --代表C语言中的函数

man page 主要分为以下几个部分

NAME 简短的指令、数据名称说明
SYNOPSIS 指令下达语法简介
DESCRIPTION 详尽完整的说明!!
AUTHOR 作者
REPORTING BUGS 反馈错误
COPYRIGHT 版权
SEE ALSO 与指令相关的其他说明

帮助文档中相关按键的说明

按键 相应的动作
SPACE 向下翻页
Page Down 向下翻页   方向键↓ 向下移动
Page Up 向上翻页   方向键↑ 向上移动
Home 回到首页
End 转到最后一页
/string 向下搜寻字符串
?string 向上搜寻字符串
n , N 查看下一个或上一个搜寻到的字符串,与/string、?string配合使用
q 退出

查看以关键字开头的所有说明文件

1 [[email protected] ~]$ man -f man
2 man                  (1)  - format and display the on-line manual pages
3 man                  (1p)  - display system documentation
4 man                  (7)  - macros to format man pages
5 man.config [man]     (5)  - configuration data for man
6 man [manpath]        (1)  - format and display the on-line manual pages
7 man-pages            (7)  - conventions for writing Linux man pages

根据关键字(不一定开头)显示出相关说明文档

1 [[email protected] ~]$ man -k man
2 ...3 xsetwacom            (1)  - commandline utility to query and modify wacom driver settings
4 xsltproc             (1)  - command line XSLT processor
5 yum-groups-manager   (1)  - create and edit yum‘s group metadata

执行后发现最后一列中有man关键字的也会列举出来,这不是我们想要的,因此我想到鸟哥在后面章节所用到的截取命令(cut 、grep),这就是第一遍读书的效果,知道有相关的命令,然后去查找、去实现。

1 [[email protected] ~]$ man -k man | cut -d ‘ ‘ -f 1 | grep ‘man‘
2 cmakecommands
3 command
4 command
5 ecryptfs-manager
6 ...

在man中还可以执行指令  ----  !指令

关于man的相关参数说明我参考了http://www.cnblogs.com/chengmo 的博客,现引用在下。

使用语法:

man [-adfhktwW] [section] [-M path] [-P pager] [-S list]  [-m system] [-p string] title..

参数用法:

参数 备注
man命令常用参数
-a 显示所有匹配项
-d 显示man查照手册文件时候,搜索路径信息,不显示手册页内容
-D 同-d,显示手册页内容
-f 同命令whatis ,将在whatis数据库查找以关键字开同的帮助索引信息
-h 显示帮助信息
-k 同命令apropos 将搜索whatis数据库,模糊查找关键字
-S list 指定搜索的领域及顺序 如:-S 1:1p httpd 将搜索man1然后 man1p目录
-t 使用troff 命令格式化输出手册页 默认:groff输出格式页
-w 不带搜索title 打印manpath变量 带title关键字 打印找到手册文件路径,默认搜索一个文件后停止
-W 同-w
section 搜索领域【限定手册类型】默认查找所有手册
man命令其它参数
-c 显示使用 cat 命令的手册信息
-C 指定man 命令搜索配置文件 默认是man.config
-K 搜索一个字符串在所有手册页中,速度很慢
-M 指定搜索手册的路径
-P pro 使用程序pro显示手册页面 默认是less
-B pro 使用pro程序显示HTML手册页 默认是less
-H pro 使用pro程序读取HTML手册,用txt格式显示,默认是cat
-p str 指定通过groff格式化手册之前,先通过其它程序格式化手册
  • man命令获得帮助一般过程

实例代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

[[email protected] ~]$ man -w passwd

/usr/share/man/man1/passwd.1.gz

#显示passwd帮助文件路径,passwd.1 通过名称知道这个是passwd命令帮助手册,那它的其它命令的呢?

[[email protected] ~]$ man -aw passwd

/usr/share/man/man1/passwd.1.gz

/usr/share/man/man5/passwd.5.gz

#加入-a获得所有帮助手册文件地址,默认只会查找一个

[[email protected] ~]$ man 5 passwd

#只得到passwd配置文件帮助信息,可以加入领域类型限制,如果知道5,默认是查询man5 文件配置信息说明 手册目录

[[email protected] ~]$ man -d passwd

Reading config file /etc/man.config

.....

found man directory /usr/man

using /usr/bin/less -is as pager

using /usr/bin/less -is as browser

using /bin/cat to dump HTML pages as text

path directory /bin is in the config file

adding /usr/share/man/zh_CN to manpath

adding /usr/share/man to manpath

found ‘NROFF_OLD_CHARSET‘ in path

old charset of ‘/usr/share/man/man1/passwd.1.gz‘ is ‘ISO-8859-1‘

man:

not executing command:

  (cd /usr/share/man && (echo ".ll 11.8i"; echo ".nr LL 11.8i"; echo ".pl 1100i"; /usr/bin/gunzip -c ‘/usr/share/man/man1/passwd.1.gz‘; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -c --legacy ISO-8859-1 -mandoc 2>/dev/null | /usr/bin/less -is)

#man -d 返回man 执行过程搜索查找方法,以及查询手册通过怎么样格式化语句显示。都会列出来

#可以看到,指定pages,borwser输出命令对应文件,html输出文件,搜索路径,由于我当前LANG=zh_CN.gb2312因此,添加了zh_CN目录搜索

#最终执行命令时候,通过一系列格式转换命令,最终有less显示

[[email protected] ~]$ man -S 1:2 passwd

#在领域类型是:1:2 范围内查找手册,对应目录分别是man1 ,man2

[[email protected] ~]$ man -f httpd

httpd                (8)  - Apache Hypertext Transfer Protocol Server

httpd               (rpm) - Apache HTTP Server

httpd-devel         (rpm) - Development tools for the Apache HTTP server.

#在whatis数据库(有所有网站man帮助以及cat,doc帮助信息索引)中查询,文件标题以:http开头信息的文档

#中间的(8) 对应我们可以用:man 8 httpd 调用,对于显示(rpm)实际上显示有个httpd帮助信息,是属于一个httpd rpm安装包,通过man rpm httpd查看不了。可以通过rpm -ql httpd 查找安装包

[[email protected] ~]$ man -k httpd

CGI::Carp            (3pm)  - CGI routines for writing to the HTTPD (or other) error log

httpd                (8)  - Apache Hypertext Transfer Protocol Server

httpd               (rpm) - Apache HTTP Server

httpd-devel         (rpm) - Development tools for the Apache HTTP server.

httpd_selinux        (8)  - Security Enhanced Linux Policy for the httpd daemon

lighttpd             (1)  - a fast, secure and flexible webserver

lighttpd            (rpm) - Lightning fast webserver with light system requirements

lighttpd-fastcgi    (rpm) - FastCGI module and spawning helper for lighttpd and PHP configuration

ncsa_auth            (8)  - NCSA httpd-style password file authentication helper for Squid

#在whatis数据库中,查询包含httpd所有帮助手册,以及安装包. 可以通过:rpm -ql lighttpd

[[email protected] ~]$ rpm -ql lighttpd | grep gz

/usr/share/man/man1/lighttpd.1.gz

#其实这个包刚好是:lighttpd             (1)  - a fast, secure and flexible webserver 帮助手册

[[email protected] ~]$ man -w

/usr/kerberos/man:/usr/local/share/man:/usr/share/man/zh_CN:/usr/share/man:/usr/local/man

#显示man 命令查找手册的路径

对于:whatis数据库,以及中文化linux帮助文件这里先不分析。

一般遇到一个不是很熟悉命令可以先通过:

man -k command1  查询所有类似帮助文件信息,这样输出最多也可以用:

man -f  command1 查询以command1开头所有相关帮助信息列表 如果发现有类似:command1 (5)

man 5 command1 通过直接定位5获得帮助信息

时间: 2024-10-05 05:07:48

从 man 指令起步的相关文章

【翻译】Vue.js 2.0 教程 起步

第一次在博客园上翻译东西,因为现在还没有中文的Vue.js2.0文档,很多英语不好的同学就郁闷了.以后有时间就翻译一些,不过等我翻译完,官方中文文档肯定就上线了......大家可以打开英文原网站,因为里面有些例子可以直接演示. 官方英文文档链接 正文: 起步 什么是Vue.js? Vue(发音类似view)是一个紧跟时代潮流的框架,为构建用户界面而生.不同于其他庞大的框架,Vue的设计是从底层向上逐步递增的(译者附:刚开始使用Vue不需要太多依赖).Vue的核心库不仅仅聚焦于视图层,它还非常容易

Git起步

Git起步 注:本文仅针对于git初学或之前未接触版本号控制工具的同学,希望能帮助大家高速入门. 温馨提示: 大家可跟着文章一步步去操作.建议先用一个试验的demo去学习操作. 假设直接用真实的合作项目练习,误操作有可能会存在坑队友的情况. 1. 关于版本号控制 在进入主题之前,我们先来了解一下版本号控制. 我们在使用一个工具前.一定要明白自己在做什么,这个工具给我们带来什么优点. 所谓版本号控制,事实上就是一种记录一个或若干文件内容变化.以便将来查阅特定版本号修订情况的记录系统. 简而言之.就

Vue起步

1. 兼容性 Vue不兼容IE8以及以下. Vue Devtools https://github.com/vuejs/vue-... 2. 安装 1.直接<script>标签引用, Vue会被注册成为一个全局变量.2.npm注:开发版本下不要使用压缩版本,不然会失去一些错误相关的警告. 起步 vue是一套构建用户界面的渐进式框架.vue被设计为可以自底向上逐层应用,vue的核心只关注视图层, 3. 声明式渲染 {{ text }}/v:bind Vue的核心是允许采用简洁的模板语法来声明式的

为准大学生准备的C/C++编程起步教程

最近越来越多的其它领域的大佬陆陆续续来找我 “垂询” 编程起步的方法了,攥写本文一是考虑到逐个回复所费时间甚多,二者是鄙人的脑子实在不是很好用总是会出现记漏东西或者表述不清的情况. 希望这篇教程能够帮到各位初学者. 1.相关概念解析 如果后面理解东西出现了疑惑再跳回来看看:) A. 编辑器 / 编译器 / IDE / 开发环境 编辑器指的是你用来打字的工具(就像记事本或者小米便签),编译器是用来将你的代码从单纯的文本转化为程序的工具. 首先你需要用编辑器录入一段代码,然后保存为  后缀名与语言相

XMOS发布集单片机,AI,FPGA,DSP于一身的跨界处理器完全体xcore.ai,致力于AIOT,售价1美元起步

说明:XMOS这次致力于打造全新的,颠覆性的嵌入式平台,简化开发人员要学一堆东西才能开发一款高性能AIOT产品的痛点. XCORE.AI集单片机,AI,FPGA,DSP于一身,嵌入式软件开发人员可以灵活的实现各种控制,而不用担心固定的硬件性能/资源不够用的问题.并且性能强劲,可以让物联网终端设备在本地就处理数据,无需上传到云端处理. 引言: 过去的5年中,Amazon Alexa,  Google Home, Facebook Portal,  Apple Homepod等都是采用的XMOS语音

一招制敌 - 玩转 AngularJS 指令的 Scope (作用域),讲得特别好

学习了AngularJS挺长时间,最近再次回首看看指令这部分的时候,觉得比自己刚开始学习的时候理解的更加深入了,尤其是指令的作用域这部分. 步入正题: 每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{}:默认情况下是false. scope = false 首先我们来看

关于makefile中变量的多次赋值以及override指令

1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值. 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影响这条原则. 1.3 原则3 当使用了override指令定义赋值了变量后,其后对该变量的所有的赋值都是无效的.但是override之前的所有的赋值都是有效的.使用的时候是往前最近原则. 2 override变量.命令行参数和普通变量之间的屏蔽关系 override变量会屏蔽命令行参数,除非用+=:

【Vue】vue.js常用指令

http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribute). Vue.js提供了一些常用的内置指令,接下来我们将介绍以下几个内置指令: v-if指令 v-show指令 v-else指令 v-for指令 v-bind指令 v-on指令

自学linux指令分析-ls

自学linux指令分析-ls 1·命令格式 ls [option] [directory-list] ls [参数][目录名] 2·命令参数    -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -A, –almost-all 列出除了 . 及 .. 以外的任何项目 –author 印出每个文件的作者 -b, –escape 把文件名中不可输出的字符用反斜杠加字符编号的形式列出. –block-size=大小块以指定<大小>的字节为单位 -B, –ignore-backu