# 練習 12:文檔:`man`,`info`
> 原文:[Exercise 12. Documentation: man, info](https://archive.fo/6fbXi)
> 譯者:[飛龍](https://github.com/wizardforcel)
> 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻譯](https://translate.google.cn/)
既然你已經嘗試過了 Linux,現在是時候介紹 Linux 在線文檔工具了。你已經知道`man`了,因為我讓你在里面查找東西。也許你甚至閱讀了`man`的文檔頁面。所以無論如何,你需要什么來了解`man`,以便有效地使用它?
首先,手冊頁只是包含特殊標記的壓縮文本文件,所以`man`程序知道如何為你設置格式。在 Debian 中,它們位于`/usr/share/man/`中。你可以使用`zless`瀏覽它們 。它甚至不是一個程序,而是一個 shell 腳本,它解壓縮文件并調用`less`。
接下來,我將引用`man`手冊頁,關于它的分類:
1. 可執行程序或 shell 命令
2. 系統調用(內核提供的函數)
3. 庫調用(程序庫中的函數)
4. 特殊文件(通常在`/dev`中找到)
5. 文件格式和約定,例如`/etc/passwd`
6. 游戲
7. 其他(包括宏及慣例),例如`man(7)`,`groff(7)`
8. 系統管理命令(通常僅適用于 root 用戶)
9. 內核例程[非標準]
這正是字面的意思。為了調用`man`的適當分類,請鍵入其分類編號,如`man 1`。如果你不明白某些分類是什么意思,則不用擔心,現在你只需要第 1 個和第 8 個 ,這些分類是系統上安裝的程序和系統管理員工作。此外,你已經知道`man(7)`是什么。
這是手冊頁的標準小節:
+ NAME(名稱) - 程序名稱和簡短描述。
+ SYNOPSIS(概要) - 可用程序選項的簡短列表
+ DESCRIPTION(描述) - 程序的描述和可用參數的說明。
+ OPTIONS(選項) - 一些手冊頁在這里繼續說明可用的參數。
+ EXIT STATUS(退出狀態) - 每個程序返回一個代表其成功或失敗的代碼。這里解釋這些代碼值。
+ RETURN VALUE(返回值) - 通常與退出狀態相同。
+ ERRORS(錯誤) - 程序中已知的錯誤。
+ ENVIRONMENT(環境) - 環境變量。在調用程序之前設置它們。
+ FILES(文件) - 通常是程序配置文件。
+ VERSIONS(版本) - 有關程序更改的信息。
+ CONFORMING TO(適用于) - 兼容性說明。
+ NOTES(注意) - 手冊的作者不知道放在哪里的信息。
+ BUGS - 程序中已知的錯誤。
+ EXAMPLE(示例) - 包含程序調用的示例。很有用!
+ AUTHORS(作者) - 誰寫的程序。
+ SEE ALSO(另見)- 相關手冊頁。
現在是慣例,再次引用:
+ **粗體文本** - 類型完全如圖所示。
+ *斜體文本* - 用適當的參數替換。這個文字大部分顯示不是斜體,而是像下劃線一樣 。
+ `[-abc]` - `[]`內的任何或所有參數是可選的。
+ `-a|-b` - 由`|`分隔的選項不能一起使用
+ `argument …` - 參數是可重復的。
+ `[expression] …` - `[]`中的整個表達式是可重復的。
我會通過示例來演示它。`man less`會展示:

好吧,看起來有些恐怖。前四行很簡單,只需要鍵入展示的東西,就是這樣:
1\. `less -?`
2\. `less –help`
3\. `less -V`
4\. `less –version`
從第 5 行開始,我們可以看到,斜體 文本確實顯示為下劃線。而且,看起來完全不可理解。讓我們一起看看。
5\. `less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]` - 這看起來更可怕。
首先,它是可選的,因為所有參數都包含在`[]`中。
其次,當指定參數時,必須以`-`開頭。這是非可選的。
第三,之后,你可以指定可選修飾符`+`,這在手冊中進一步說明。
第四,你可以指定一個或幾個命令,在這里顯示為字母序列。例如,你可以輸入`less -S .bashrc`,或`less -+S .bashrc`或`less -SG .bashrc .profile`或更少`less -+SG .bashrc .profile`。
6\. `[-b space] [-h lines] [-j line] [-k keyfile]` - 簡單的說,你可以指定任何選項`-b`,`-h`,`-j`,`-k`,分別帶有參數空格,多個行,單個行和密鑰文件,它們在手冊中進一步介紹。
7\. `[-{oO} logfile] [-p pattern] [-P prompt] [-t tag]` - 幾乎和第六行相同。`-{oO}`的意思是,你可以指定`-o`或`-O`,但不能同時指定二者。
8\. `[-T tagsfile] [-x tab,…] [-y lines] [-[z] lines]` - 同樣,幾乎和第六行相同。`-x tab,…`的意思是,,你可以在`-x`之后指定幾個值,例如`-x9`或`-x9,17`。`-[z] lines`表示,`-z`是可選的,你可以輸入`less -10`來代替`less -z10`。
9\. `[-# shift] [+[+]cmd] [- -] [filename]…` - 這有點更加神秘。`+[+]cmd`表示你可以輸入`less +cmd`或`less ++ cmd`。`- -`只是一個前綴。`[filename]…`讀取一個或多個,意思是你可以在調用`less`時指定多個文件,例如`less .bashrc`,`less .bashrc .profile`,以及其他。
我們結束了!不是那么可怕,是嗎?記住,由于你正在使用`less`查看手冊,為了搜索某些選項的含義,鍵入`/key<ENTER>`或`&key<ENTER>`。例如,要搜索`-T`選項的意思,請鍵入`/-T<ENTER>`。
現在我將向你提供實用的`man`命令的列表:
+ `man -k` - 列出系統中的所有手冊頁。不是非常有用,但你可能希望看到此列表。或者你可以通過鍵入`man -k | wc`來計數它們。
+ `man -k [search string]` - 在搜索手冊頁描述中搜索內容。試試這個:`man -k tty`。
+ `man -wK [search string]` - 在手冊頁正文中搜索內容。試試這個:`man -wK tty`。
那么這是用于`man`的。現在,還有一個有用的文檔工具,`info`。命令列表如下:
+ `info […]` - 調用`info`。如果你不使用參數調用它,它會將你帶到索引頁面。
+ `<UP>`, `<DOWN>`, `<LEFT>`, `<RIGHT>`可讓你滾動文字。
+ `<ENTER>`打開光標下的鏈接。鏈接以`*`開頭。
+ `<TAB>` - 跳轉到文檔中的下一個鏈接。
+ `u` - 轉到上一級
+ `p` - 轉到上一頁,就像瀏覽器一樣。
+ `n` - 轉到下一頁。
+ `q` - 關閉`info`。
為了使用`vi`選項來啟動`info`,我希望你已經熟悉它了,鍵入`info -vi-keys`。現在你可以使用`j`和`k`來滾動。
## 附加題
+ 鍵入`man man`并嘗試解碼 SYNOPSIS(概要)部分,這將解釋如何調用它。
+ 鍵入`info`和`h`,閱讀`info`的幫助部分。
- 笨辦法學 Linux 中文版
- 練習 0:起步
- 練習 1:文本編輯器,vim
- 練習 2:文本瀏覽器,少即是多
- 練習 3:Bash:Shell、.profile、.bashrc、.bash_history
- 練習 4:Bash:處理文件,pwd,ls,cp,mv,rm,touch
- 練習 5:Bash:環境變量,env,set,export
- 練習 6:Bash:語言設置,LANG,locale,dpkg-reconfigure locales
- 練習 7:Bash:重定向,stdin,stdout,stderr,<,>,>>,|,tee,pv
- 練習 8:更多的重定向和過濾:head,tail,awk,grep,sed
- 練習 9:Bash:任務控制,jobs,fg
- 練習 10:Bash:程序退出代碼(返回狀態)
- 練習 11:總結
- 練習 12:文檔:man,info
- 練習 13:文檔:Google
- 練習 14:包管理:Debian 包管理工具aptitude
- 練習 15:系統啟動:運行級別,/etc/init.d,rcconf,update-rc.d
- 練習 16:處理進程,ps,kill
- 練習 17:任務調度:cron,at
- 練習 18:日志:/var/log,rsyslog,logger
- 練習 19:文件系統:掛載,mount,/etc/fstab
- 練習 20:文件系統:修改和創建文件系統,tune2fs,mkfs
- 練習 21:文件系統:修改根目錄,chroot
- 練習 22:文件系統:移動數據,tar,dd
- 練習 23:文件系統:權限,chown,chmod,umask
- 練習 24:接口配置,ifconfig,netstat,iproute2,ss,route
- 練習 25:網絡:配置文件,/etc/network/interfaces
- 練習 26:網絡:封包過濾配置,iptables
- 練習 27:安全 Shell,ssh,sshd,scp
- 練習 28:性能:獲取性能情況,uptime,free,top
- 練習 29:內核:內核消息,dmesg
- 練習 30:打磨、洗練、重復:總復習
- 下一步做什么
- Debian 手動安裝