man命令使用指南

el/2023/12/3 3:05:39

man命令是linux下查找shell命令、函数等使用方法的利器。最简单的使用方式是man <the thing you want>。掌握上面那条命令应该也可以满足80%的使用场景了。这里记录一些更加深入的man命令使用的方法,如果还不能满足查询需求,就只能man man再深挖了。

man <section> <pagename>
这条命令可以在指定的section中去查询想要搜索的指南,因为一个pagename可能对应多个分属不同section的page,例如直接man signalman 7 signal出来的内容是完全不一样的。man具有的常用section如下

1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions, e.g. /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]

man -a <pagename>
这条命令可以显示关于要查找的这个page的所有内容,不过是一页一页显示,并不是很方便,使用man -aw <pagename>可以看到全部的信息路径。

~$ man -aw signal
/usr/share/man/man2/signal.2.gz
/usr/share/man/man7/signal.7.gz

man -k <regex>
这条命令可以按正则表达式在所有section的所有page中去搜索,返回匹配的page和其简单的介绍

~$ man -k .*open.*
openocd (1)          - A free and open on-chip debugging, in-system programming and boundary-scan testing tool for ARM and MIPS systems
RAND (7ssl)          - the OpenSSL random generator
Ast_helper.Opn (3o)  - Opens
Ast_iterator (3o)    - Ast_iterator.iterator enables AST inspection using open recursion.
authorized_keys (5)  - OpenSSH daemon
CA.pl (1ssl)         - friendlier interface for OpenSSL certificate programs
catclose (3)         - open/close a message catalog
catopen (3)          - open/close a message catalog
config (5ssl)        - OpenSSL CONF library configuration files
creat (2)            - open and possibly create a file
crypto (7ssl)        - OpenSSL cryptographic library
dbopen (3)           - database access methods
des_modes (7ssl)     - the variants of DES and other crypto algorithms of OpenSSL

man -f <keyword>
这个用法等价于whatis <keyword>,可以从系统中搜索出和keyword相关的指南。

~$ man -f Git
Git (3pm)            - Perl interface to the Git version control system
git (1)              - the stupid content tracker~$ whatis git
Git (3pm)            - Perl interface to the Git version control system
git (1)              - the stupid content tracker

man -Kw <regex>
全局搜索正则表述的关键字,把结果路径显示出来,这个搜索有点慢。

~$ man -Kw SIGILL
/usr/share/man/man1/python3.8.1.gz
/usr/share/man/man1/python3.8.1.gz
/usr/share/man/man3/Stdlib.Sys.3o.gz
/usr/share/man/man3/Sys.3o.gz
/usr/share/man/man2/sigaction.2.gz
/usr/share/man/man2/sigaction.2.gz
/usr/share/man/man2/signal.2.gz
/usr/share/man/man2/sigprocmask.2.gz
/usr/share/man/man2/sigprocmask.2.gz
/usr/share/man/man7/signal.7.gz

以上这些命令应该可以cover住90%以上的man使用场景。


http://www.ngui.cc/el/1113880.html

相关文章

Vscode 搭建舒适的 Markdown 编辑环境

文章目录1. 显示风格2. 图片插入3. 表格处理4 其他1. 显示风格 使用 Markdown notebook(Microsoft)&#xff0c;这个插件可以实现markdown的预览和编辑在同一页面下&#xff0c;显示效果如下。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 KeyComma…

关于++,--的理解

package cn.nrsc.demo01; /** , -- : 增量语句, 用来对变量的自身进行操作的* 解释:* : 对变量的自身进行1操作* --: 对变量的自身进行-1操作* * 使用分为两种:* 单独使用:* ,--写在变量的前面或者是后面,最终的结果是一样的. * 单独使用: 就是变量自身单独成立一行, 没有…

JAVA 强制数据类型转换和隐式数据类型转换

package cn.nrsc.demo01; /** 变量的数据类型转换: (了解)* 强制数据类型转换:* 小的数据类型 变量名 (小的数据类型)大的数据类型的值或者变量* byte < short, char < int < long < float < double* * 占用字节: 1 2 2 …

逻辑运算符与()、或(|)、非(!)、异或(^)及双与()和双或(||)

1 、与(&), 或(|),非(!),异或(^) package cn.nrsc.demo02; /** 逻辑运算符: &, |, ^, !* &(与): 只要有一边为fale, 那么就是false* |(或): 只要有一边为true, 那么就是true* ^(异或): 只要是相同的boolean值, 那么就是false, 不相同才是true* 解释: 用来连接bo…

JAVA 基本数据类型(4大类8小种)

文章目录1、变量的定义及基本数据类型的介绍2、变量定义容易犯的错误1、变量的定义及基本数据类型的介绍 /* 变量的定义格式: 第一种初始化方式: 数据类型 变量名 赋值;第二种初始化方式: 数据类型 变量名; 变量名 赋值;如果变量不赋值,不能直接使用!java中一共有2大数据类型…

JAVA 标识符

/* 标识符: 给类,变量, 方法, 接口….来命令的一种规范. 组成: 字母(a-z, A-Z), 数字(0-9), 下划线(_), 美元符号($), 人民币符号(&#xffe5;). 规则: 1. 数字不能开头 2. 长度没有限制 3. 不能是java中的关键字 4. 最好做到见名知意 常见的命名规范: 给变量,方法起…

Java 引用数据类型的使用过程

/* * java中数据类型分为两种(大类) * 基本数据类型 * * * 引用数据类型(先作为了解) * 但凡是引用数据类型使用过程, 一般可以分成三个步骤: * 1. 导入包: 导入要使用的类所在的包 * 使用import 进行导入 * 如果是该类在java.lang包下的类,可以直接使用, 不要导包 *…

巧用while(true){ }死循环的一个小例子

package cn.nrsc.zuoye_while_true;/** 请按如下要求编写程序,打印菜单:1.从键盘上录入一个1到5的数字;2.当数字为1时打印菜单"新建";当数字为2时打印菜单"打开文件";当数字为3时打印菜单"保存";当数字为4时打印菜单"刷新";当数字为5时…

While_continue 语句里容易出现的一个死循环及解决办法

package cn.nrsc.while_continue; /** continue: 跳出本次循环, 继续进行下一次循环* * continue的使用场景: 只能在循环* */ /** 需求:使用while循环, 输出10次HelloWorld.请在跳过第4次输出.* */public class While_Continue {public static void main(String[] args) {int i…

对break语句的理解

package cn.nrsc.break; /** 循环控制跳转语句之break;* break: 中断, 破坏, 用来跳出循环的. 或者跳出switch* * 使用场景: switch, 循环, 不能脱离.* *//** 需求:使用for循环, 输出10次HelloWorld.请在输出2次HelloWorld后终止循环输出.* 注意:for语句放在不同的位置,i的取…