ps
的手册页;如何访问标记为红色的链接?#1 楼
手册页可追溯到Unix第一版。尽管超文本已经发明,但仍处于起步阶段。网络距今已有二十年的路程,而手册是一本实际的印刷书籍,如果适合的话,通常每页只有一个命令(这就是为什么它们被称为页面)。从那以后,有些东西,但是大多数页面并不是真正为超文本设计的,并且默认的man
程序不支持它(它只是一个纯文本查看器,带有支持某些基本格式的技巧)。但是,有些手册页查看程序会重构一些超链接,主要是指向其他手册页的链接,这些程序通常以man(1)
的形式编写,其中man
是手册页的名称,而1
是节号:tkman,具有超链接的GUI手册页查看器
WoMan(以前是wiki,man comparsion),是Emacs的手册页浏览器,支持超链接
man2html,一个可实现HTML转换的人(加上Web浏览器以读取结果)
您可以在
man2html
或类似工具上浏览几种操作系统的手册页,这些手册页已通过q4312079q或类似工具转换为HTML在线站点的数量,例如:CentOS
Debian
FreeBSD(和其他一些集合)
macOS:存档从10.9 Mavericks开始,在unix.com上是最新版本,在ss64.com上是部分副本
MINIX 3
NetBSD
OpenBSD
Solaris 10,Solaris 11 ,其他Solaris版本
Ubuntu
Unix 1st ed等级,Unix第六版,Unix第八版
在man页面成为UNIX上已建立的文档格式之后的某个时间,以及在发明Web之前的某个时间,GNU项目引入了信息文档格式,该信息文档格式比man更高级,同时坚持了为文本终端设计的简单标记。与人相比,信息的主要创新是拥有多页文档,以及指向其他页面的超链接。信息仍然是GNU项目的首选文档格式,尽管大多数信息页面都是从Texinfo源生成的(或者有时是其他格式)也可以生成HTML。当存在程序的信息文档时,它通常是主要的手册,而手册页仅包含有关命令行参数的基本信息。
评论
好答案!还值得一提的是,Emacs中还有另一种手册页模式,该模式(至少是I)仅由Mx man获得(Ch v模式名称为Man):至少在某一方面,它优于WoMan,因为它显示表格(屏幕截图)。当然,它也是超链接的。
–伊曼纽尔·伯格(Emanuel Berg)
13年3月6日在22:38
信息程序用户界面感觉很错误并且违反直觉。我还没有看到任何人使用它。
– PavelŠimerda
18年1月16日在1:53
@PavelŠimerda>信息程序用户界面感觉很错误并且违反直觉。 <嗯,相比之下呢?对于less(1)(这是GNU中man(1)的默认分页器)—那件事,您必须回想起如何回滚,因为
–德米特里·亚历山德罗夫(Dmitry Alexandrov)
18-2-10在22:40
@PavelŠimerda>我还没有看到任何人使用它。 <出于确切原因,总是在被锁定在文本终端中时始终使用info(1)来阅读联机帮助页,这与less(1)不同,它确实将哑页(N)链接转换为超链接。很惊讶,吉尔斯的回答没有提到这种品质。
–德米特里·亚历山德罗夫(Dmitry Alexandrov)
18-2-10在22:41
提醒您,在信息中,可以通过将光标移动到链接(或Tab)上并按Enter来跟随链接(格式为* link text::)。同样在我看来,信息可以接受各种emacs命令,但这对我来说太棘手了(我使用vim)。
–等离子Binturong
20 Dec 16'在18:08
#2 楼
首先,它不是链接。这只是一个下划线。手册页只是文本文档,终端可以处理一些简单的格式。下划线只是一个突出显示,没有涉及“链接”。普通的
man
命令只是一个文本格式化程序。实际上,man
命令甚至不显示文本,man
只是格式化存储在手册页文件[1]中的信息,并将格式化后的输出发送到另一个程序(通常是less
),该程序将格式化后的输出显示在屏幕上。这些显示程序没有链接的概念。有一些特殊的文档阅读器,他们也许能够看到这样的格式,并且有根据地猜测,这样的突出显示可能表明有相关的人。可以拉出并创建链接的页面,但我不知道哪个页面可以。也许
pinfo
吗?如果您想通过超链接进行类似Web的格式设置,则可以在线找到几乎所有带有链接的UNIX手册页。尝试在Google中键入
man [anything]
,您几乎肯定会在第一批中获得成功。在您的示例中,视觉突出显示是一个提示,即另一个程序名称具有其自己的手册页,您可以轻松地将其拉起。尝试
man 1 top
。 1表示要查看的手册页部分。请参见此问题以获取有关各节的说明:手册页中的数字是什么意思?[1]如果在文本编辑器中打开
man
页面文件,您将看到未经格式化的man
原始页面,以便于阅读。原始man
页面以称为troff
的标记语言编写。有关troff
以及如何编写man
页面的更多信息,请参见:https://liw.fi/manpages/。评论
知道为什么男人1顶吗?我的意思是应该像ps 1 top一样,因为我在ps的手册页上找到了链接。 “男人1顶”对我来说没有意义。请说清楚。
–its_me
2011年8月5日在20:20
也有一些资源可以使手册页在Internet上可用,并用可替换的href代替了引用。
– Gabe。
2011年8月5日在20:22
如果要遵循top(1)“链接”,则需要从第一部分打开顶部手册页。有关各节的更多信息,请参见man(1)。 ps 1 top没有任何意义,因为您只需使用一些奇怪的参数运行ps命令即可。
–rvs
2011年8月5日在20:23
@Aahan是man 1顶部,因为您想在在线手册页的第一部分中看到top命令的手册页。参考top(1)就是指手册页第一部分的顶部。要看到这一点,请在提示符下键入“ man 1 top”。见“男人男人”
– Gabe。
2011年8月5日在20:24
@Aaran:“手册的各节涵盖了不同的主题。第1节是用户命令(在提示符下键入的内容),第2节是系统调用,依此类推。某些字符串出现在一个以上的部分。现在,readlink出现在第1节和第2节中,而printf出现在第1节和第3节中。如果您只键入man命令,man将按数字顺序尝试各部分并显示找到的第一个命令,或者您可以使用man#命令来指定它必须获取有关readlink系统调用的文档。
– dmckee ---前主持人小猫
2011年8月6日14:26
#3 楼
这是很晚的回复,但请使用w3mman。 w3mman是w3m的系统手册寻呼机。https://linux.die.net/man/1/w3mman
您可以通过安装w3m软件包来尝试。我相信此软件包已在大多数主要Linux / UNIX发行版和Cygwin的软件存储库中注册。
评论
较晚的答复为尚未提及的问题添加了一些答案,这从来没有问题!欢迎来到Unix&Linux StackExchange!
–伯恩哈德
2012年12月14日上午9:48
Macports w3m的默认安装也提供了w3mman。太好了:)谢谢!
–user6860
2014年9月8日下午0:58
#4 楼
在尝试遵循您的工作流程的意义上,让我尝试多解释一下您的问题。您可能想要的是man
页面中的按键组合,可直接将您引向您正在阅读的带下划线的命令。因此,不必安装其他东西,也不必打开其他控制台并忘记例如确切的语法。此最简单的解决方案是感叹号(如果使用
less
显示手册页),您要转到带下划线的top
:!man top
或
!man 1 top
您必须将其关闭全部按
q
多次。还要注意,如果将LESSSECURE=1
设置为环境变量,这将无法使less
在安全模式下运行,并且不允许使用!
,则此方法将无效。它会告诉您“命令不可用”之类的信息。#5 楼
尽管w3mman是跟踪链接的一种解决方案,但是并不能使用所有屏幕(至少在ubuntu 12.10上)。我更喜欢使用:$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'
将最后一个命令添加到〜/ .bash_aliases或类似的启动脚本中,以便在每个会话中获取它。
-P w3m是因为到hman的第一个浏览器是lynx或明智的浏览器,但我更喜欢w3m
hman是html2man上捆绑的工具。请参阅此
如果确认退出对您来说很烦,对我来说就是使用此
评论
我的错误,该程序包必须为html2man
– albfan
13年3月7日在17:32
#6 楼
专门针对Ubuntu,有Yelp。它是默认安装的,并且默认情况下能够显示手册页,尽管调用的方法与man
命令的方法不同;别名或shell函数可以解决后一点(取决于您的shell)。yelp 'man:exit'
它将以我不知道的方式默认为节。提醒:要获取手册主题的章节列表,请使用
whatis
,如whatis exit
所示。要请求Yelp显示特定章节的手册页,例如2,请执行以下操作:
<问题:yelp有错误,从命令行调用时,准备输出多个错误。此外,别名或自定义外壳函数还可以帮助将所有错误重定向到
/dev/null
#7 楼
就像他们说的那样,它不是为它设计的。您可以使用
info man
,然后在进入商品的“另请参阅”部分后按Enter。信息-阅读信息文档
#8 楼
我有一个(或多个)hack。将其放入您的〜/ .bashrc或您的〜/ .zshrc
/>
function man(){
for arg in "$@"; do
vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
done
}
屏幕截图..
Asciinema ..
https://asciinema.org/例如,当您键入
man vim
时,a / 130131 现在...
将在vim中打开此手册页
例如,如果键入
man man vim
,它将首先打开man
的手册,退出vim后,它将打开vim
的手册当您在底部的另一手册页(另请参阅部分)上按K键(大写为
k
)时,您将跳至本手册(不幸的是在一个较小的寻呼机内)–这是因为let no_man_maps = 1
;如果不这样做,那么vim会强制q
为:q
,您将无法轻松地记录宏,并且vim可能会以其他方式表现得很差。)。退出您输入的第二本手册将使您返回到您正在查看的上一手册
,因为您已加载ftplugin / man.vim,并且ft(自动)设置为
man
,所以语法突出显示非常漂亮。可以复制和粘贴,在vim中自由导航,甚至可以修改缓冲区和:w ~/usefulfile
。您可以做在vim中通常会做的所有事情,包括记录宏,使用"+y
(如果有+clipboard
)将其拖到剪贴板等,等等。我发现它要好得多。 >
我发现的唯一小挫折(如果您使用较少的传呼机,该挫折仍然存在)是您想在一个vim会话中打开多个手册。我真的看不到这样做的方法。
一些注意事项:
如果您尝试保存缓冲区,您将获取
E382: Cannot write, 'buftype' option is set
我喜欢您无法保存,因为它可以防止意外保存它
您仍然可以像
:w /tmp/man.man
/>
如果您使用扩展名
.man
保存文件,那么打开它会将文件类型设置为man
如果您不使用扩展名
.man
保存文件,则可以通过运行man
将ft设置为:set ft=man
如果打开手册页时需要执行某些操作,例如,可以使用
autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'
。我在vimrc中添加了以下内容,以便可以按K尝试打开手册,然后按G返回上一手册:
augroup man
autocmd!
autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END
hack 2
将其放在您的〜/ .bashrc或〜/ .zshrc中
function man(){
declare -a args
for arg in "$@"; do
command man "$arg" > "/tmp/${arg}.man"
args+=("/tmp/${arg}.man")
done
vim "${args[@]}"
}
屏幕快照..
Asciinema ..
https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv
这解决了破解1张和更少面孔的问题(现在您可以一本查看多本手册
注意:
重要如果要hack2起作用,则必须将
:let no_man_maps = 1
放入~/.vimrc
中。这是因为vim将把.../vim80/man.vim
的源代码和q
的源地址强制映射到:q
。如上所述,在一个会话中查看多个手册页如果按K键,仍然会打开一个新的vim会话,但是如果您要
可以绑定一个autocmd(使用上面的autocmd)来执行类似
autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"
或类似的疯狂操作(未经测试)评论
对于颜色不好的子午线表示歉意。在我的终端中,颜色看起来好多了。
–迪伦
17年7月22日在23:19
#9 楼
我能够使用--html
的man
参数,以便在$ BROWSER环境变量定义的浏览器中打开它,因此:BROWSER=google-chrome man ps --help
我正在使用Fedora。不确定这是否适合您的发行版,请测试并在评论中报告。
评论
该选项似乎在Ubuntu 12.04上可以识别,但是失败。
– Hibou57
2014年8月12日上午8:08
OK,需要安装软件包groff。当没有相同名称的软件包时,可能存在groff命令(该命令随groff-base一起提供,而不是完整的groff软件包附带)。我做人--html =“ surf file%c //%s”
– Hibou57
2014年8月12日在8:45
#10 楼
只是以为我要加2便士。我正在使用以下内容查看手册页,我已将man别名为以下命令(如果使用zsh,它将仍然提供自动完成功能)。
man --html='lynx --cfg=~/.lynx.cfg' <manpage>
~/.lynx.cfg
中的以下内容设置了便于导航的键,并设置了q退出,就像在man中一样。我必须从主HELPFILE
复制/etc/lynx/lynx.cfg
条目,否则帮助无法正确显示。KEYMAP:k:UP_TWO # Move display up two lines
KEYMAP:j:DOWN_TWO # Move display down two lines
KEYMAP:K:UP_HALF # Move display up half a page
KEYMAP:J:DOWN_HALF # Move display down half a page
KEYMAP:h:PREV_LINK # Move to the previous link or page
KEYMAP:l:NEXT_LINK # Move to the next link or page
KEYMAP:q:ABORT
HELPFILE:file://localhost/usr/share/doc/lynx-common/lynx_help/lynx_help_main.html.gz
注意:您需要安装groff软件包才能正常工作。
sudo apt install groff
结果非常好,因为人正在进行到html的转换,我希望它是使链接正常工作的最佳选择。
评论
另外,我看到man是在线参考手册的接口,(如果我没有记错的话)这意味着它应该从互联网上的某些网页中提取所有信息,对吗?那么,有人知道http://链接是什么吗?这里的“在线”是指“在计算机上”(而不是“在纸上”),而不是“在互联网上”。
“在线”:您可能还记得那些名为Sierra On-Line的公司(当时)推出的PC版“冒险” Quest游戏。手册页:浏览手册页的最佳方法是使用编辑器。这样,导航,搜索(等)文本将变得如此流畅,因为每条捷径都已经存在很长时间了。另外,假设您在编程项目上工作-您可以将手册页中的内容复制到代码中。无缝互动无所不包。看看这个,以及我对@Gilles答案的评论。