从 man 指令起步(info简介)
前言
小生认为一切指令的学习首先要从帮助入手,深入了解它的功能,即使是在实际项目中我们都离不开它的帮助。因为我们不一定能够记住全部指令的全部的相关功能,因此,查看指令的帮助是我们的不二选择。
正文
下面,我们就来看看 man 和 info 这两个指令。
首先,我们可以通过 man man指令来查看相关说明。可能有的朋友英语不算很好,又想尽快的掌握linux指令,我们可以下载中文man帮助手册,安装后设置别名(如cman),使用其便可显示中文(安装过程请关注下一篇博客)。不过,小生建议不要过度依赖中文手册,读懂英文文献才是王道。
man() NAME
man - format and display the on-line manual pages MANUAL SECTIONS
The standard sections of the manual include: User Commands //标准指令---用户在shell环境中可以执行的指令或可执行文件
System Calls //系统调用---由内核提供的函数 (open,write之类,查看头文件) C Library Functions //C 函数 ---(printf,fread) Devices and Special Files //设备和特殊文件说明 ---通常在/dev下的文件 File Formats and Conventions //文件格式和约定 ---配置文件或者是某些文件的格式 比如passwd
Games et. Al. //游戏等娱乐 ---给游戏留的,由各个游戏自己定义 Miscellanea // 杂项 ---例如man、environ、Linux文件系统、网络协议、ASCII code等说明 System Administration tools and Deamons //系统管理员可用的管理命令---ifconfig
例如 :
[linux@linux ~]$ man printf --左上角默认PRINTF(1),是shell中的指令
[linux@linux ~]$ man 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 | 退出 |
查看以关键字开头的所有说明文件
[linux@linux ~]$ man -f man
man () - format and display the on-line manual pages
man (1p) - display system documentation
man () - macros to format man pages
man.config [man] () - configuration data for man
man [manpath] () - format and display the on-line manual pages
man-pages () - conventions for writing Linux man pages
根据关键字(不一定开头)显示出相关说明文档
[linux@linux ~]$ man -k man
... xsetwacom () - commandline utility to query and modify wacom driver settings
xsltproc () - command line XSLT processor
yum-groups-manager () - create and edit yum's group metadata
执行后发现最后一列中有man关键字的也会列举出来,这不是我们想要的,因此我想到鸟哥在后面章节所用到的截取命令(cut 、grep),这就是第一遍读书的效果,知道有相关的命令,然后去查找、去实现。
[linux@linux ~]$ man -k man | cut -d ' ' -f | grep 'man'
cmakecommands
command
command
ecryptfs-manager
...
在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命令获得帮助一般过程
实例代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667[chengmo@centos5 ~]$man-wpasswd/usr/share/man/man1/passwd.1.gz#显示passwd帮助文件路径,passwd.1 通过名称知道这个是passwd命令帮助手册,那它的其它命令的呢?[chengmo@centos5 ~]$man-awpasswd/usr/share/man/man1/passwd.1.gz/usr/share/man/man5/passwd.5.gz#加入-a获得所有帮助手册文件地址,默认只会查找一个[chengmo@centos5 ~]$man5passwd#只得到passwd配置文件帮助信息,可以加入领域类型限制,如果知道5,默认是查询man5 文件配置信息说明 手册目录[chengmo@centos5 ~]$man-dpasswdReading configfile/etc/man.config.....foundmandirectory/usr/manusing/usr/bin/less-is as pagerusing/usr/bin/less-is as browserusing/bin/catto dump HTML pages as textpath directory/binisinthe configfileadding/usr/share/man/zh_CNto manpathadding/usr/share/manto manpathfound'NROFF_OLD_CHARSET'inpathold charset of'/usr/share/man/man1/passwd.1.gz'is'ISO-8859-1'man:not executingcommand:(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显示[chengmo@centos5 ~]$man-S 1:2passwd#在领域类型是:1:2 范围内查找手册,对应目录分别是man1 ,man2[chengmo@centos5 ~]$man-f httpdhttpd (8) - Apache Hypertext Transfer Protocol Serverhttpd (rpm) - Apache HTTP Serverhttpd-devel (rpm) - Development toolsforthe Apache HTTP server.#在whatis数据库(有所有网站man帮助以及cat,doc帮助信息索引)中查询,文件标题以:http开头信息的文档#中间的(8) 对应我们可以用:man 8 httpd 调用,对于显示(rpm)实际上显示有个httpd帮助信息,是属于一个httpd rpm安装包,通过man rpm httpd查看不了。可以通过rpm -ql httpd 查找安装包[chengmo@centos5 ~]$man-k httpdCGI::Carp (3pm) - CGI routinesforwriting to the HTTPD (or other) error loghttpd (8) - Apache Hypertext Transfer Protocol Serverhttpd (rpm) - Apache HTTP Serverhttpd-devel (rpm) - Development toolsforthe Apache HTTP server.httpd_selinux (8) - Security Enhanced Linux Policyforthe httpd daemonlighttpd (1) - a fast, secure and flexible webserverlighttpd (rpm) - Lightning fast webserver with light system requirementslighttpd-fastcgi (rpm) - FastCGI module and spawning helperforlighttpd and PHP configurationncsa_auth (8) - NCSA httpd-style passwordfileauthentication helperforSquid#在whatis数据库中,查询包含httpd所有帮助手册,以及安装包. 可以通过:rpm -ql lighttpd[chengmo@centos5 ~]$ rpm -ql lighttpd |grepgz/usr/share/man/man1/lighttpd.1.gz#其实这个包刚好是:lighttpd (1) - a fast, secure and flexible webserver 帮助手册[chengmo@centos5 ~]$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获得帮助信息
info
以主题的形式把几个命令组织在一起,以便于我们阅读,在主题内以node(节点)的形式把本主题的几个命令串联在一起。因为小生对info命令并不是很了解,在这里就不过多涉猎,等到哪天认识到它的真谛,还会回来补全介绍。
主要快捷键设置如下
| 按键 | 相应的动作 |
| Space | 向下翻页 |
| Page Down | 向下翻页 |
| Page Up | 向上翻页 |
| tab | 在node间切换,有node的地方,通常会以*显示 |
| Enter | 当光标在node上时,按下Enter进入该node |
| b | 移动光标到该info画面当中的第一个node处 |
| e | 移动光标到该info画面当中的最后一个node处 |
| n | 切换到下一个node |
| p | 切换到上一个node |
| u | 向上移动一层 |
| s(/) | 在info page中进行搜寻 |
| h | 显示求助选单 |
| ? | 指令一览表 |
| q | 退出 |
如果有重要的知识点没有提到,还请各位在评论中指出,我会根据建议再次维护,尽量做到尽善尽美!谢谢
本文版权归作者所有,欢迎转载,且在文章页面明显位置给出原文链接
从 man 指令起步(info简介)的更多相关文章
- 【译】快速起步-JSX简介
react version: 15.5.0 快速起步-JSX简介 思考这个变量申明: const element = <h1>Hello, world!</h1>; 这个有趣的 ...
- CPU结构与指令执行过程简介
CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件. CPU结构 CPU由通用寄存器组,运算器,控制器和数据通路等部件组成. 寄存器包括 数据寄存器 ...
- 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 : -- AR ...
- Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍
一.简介 Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮 ...
- Dockerfile指令与Docker-compose容器编排-搭建docker私有仓库
目录 一:部署应用映射外部目录(持久化) 总结 二:迁移与备份(容器保存为镜像) 1.django执行gitee,项目提交到远端 2.其他操作 3.操作步骤 4.容器保存为镜像 5.把镜像打包成压缩包 ...
- weblogic 12C 数据源配置出错的解决办法
驱动程序类名称: 11G 10.3.6与12G数据源配置有很大区别,整个一天才搞明白. 如有疑问可留言:http://www.cnblogs.com/endv/p/4110798.html 配 ...
- Vue(day2)
一.过滤器 Vue中可以自定义过滤文本插值的过滤器.目前有两个地方可以使用: 插值文本{{ var }}中使用. 在v-bind中使用.( 2.1.0+ ) 用法:使用管道连接符 | 将需要过滤的文本 ...
- X86-64寄存器和栈帧--牛掰降解汇编函数寄存器相关操作
X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AM ...
- [git与github]__git与github简单了解
前言 关于版本控制,版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 我们通过版本控制系统可以解决的问题:可以非常方便的查看我们的源码文件的历代更新版本.或将我们的项目源 ...
随机推荐
- IP定位 C#
IP定位 已经不是什么新的技术,但是在做项目中却会常常用到.找网上找了许久,也做了许多的实验,觉得QQwry.dat,很很好用的,作者也提供了开发的源码和大家分享. 在这里感谢作者.我在项目中也用到了 ...
- vaddin使用技巧
添加外部jar包的方法: 在项目目录下建立lib文件夹,把外部jar包复制到该文件夹底下.右键该jar包-构建路径-添加至构建路径即可.也可以配置构建路径-库-添加jar.
- Linux学习笔记5——虚拟内存
一.为什么要有虚拟内存 虚拟内存的提出,是为了禁止用户直接访问物理存储设备,有助于系统稳定. 二.为什么一个程序不能访问另外一个程序的地址指向的空间 1:每个程序的开始地址0x80084000 2:程 ...
- UVa 10917 A Walk Through the Forest
A Walk Through the Forest Time Limit:1000MS Memory Limit:65536K Total Submit:48 Accepted:15 Descrip ...
- 折腾iPhone的生活——运营商信号显示数据化
iOS7以后iphone的信号都是用5个小圆圈显示的,像这样 但是还有种显示方法可以用数字信号显示信号量,比较适合很专注于生活品质的人和对数字有偏爱的人,像这样: 这样还有个好处是可以节约顶部状态栏的 ...
- 实现自己的脚本语言ngscript之四:代码生成
最近的进度 ngscript测试代码 function c1(a, b, c, d) { this.a = 1; this.b = new array(); this.b[0] = 1; this.b ...
- 【Android - MD】之RecyclerView的使用
RecyclerView是Android 5.0新特性--Material Design中的一个控件,它将ListView.GridView整合到一起,可以使用极少的代码在ListView.GridV ...
- SQL server数据库中的DateTime类型出现的问题
我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经经常使用到的一种数据类型.而C#语言中也有DateTime类型,尽管二者都是用来描写叙述时间的,可是它们的默认值是不同 ...
- 娓娓道来c指针 (3)指针和数组
(3)指针和数组 在c中指针和数组似乎有着千丝万缕的关系.事实上它们不是一回事:指针是指针,数组是数组.两者不同样. 说它们有关系,只是是由于常见这种代码: int main() { int arra ...
- 2015华为机试——数字基root
题目描写叙述: 求整数的Root:给定正整数,求每位数字之和;假设和不是一位数,则反复; 输入:输入随意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行相 ...