linux自助安裝man手冊,就是這麼簡單!
- 2019 年 11 月 13 日
- 筆記
前言
在Linux編寫或者編譯C代碼的時候,直接使用man命令就可以查看該函數的使用手冊,非常方便,如:
man 3 sleep
但是一般卻沒有C++的函數手冊,怎麼把C++的幫助手冊也裝在機器上呢?
本文藉助C++手冊的安裝,說明如何自助安裝man手冊。
man原理
如果你還不習慣使用man命令或者不清楚man命令的作用,那麼建議你先看看這篇《linux必學命令-man》。
安裝C++手冊
主要步驟如下:
- 下載手冊
- 安裝手冊
- 使用手冊
下載
安裝的第一步自然是先下載手冊。 可以先進入下面一個鏡像網站:
http://gcc.gnu.org/mirrors.html
進入之後發現有很多站點,隨意進入一個,假設進入:
http://mirror.linux-ia64.org/gnu/gcc
找到libstdc++/doxygen,即可選擇下載你需要的手冊。注意選擇帶有man的壓縮包,如我選擇下載的是:
libstdc++-api.20140403.man.tar.bz2
安裝
所謂安裝也不過是將下載好的手冊文件解壓到指定位置。還記得在《速查手冊-man》介紹各個手冊的區別嗎?由於我們的是庫函數手冊,因此最好把它放在3處。
於是,我們解壓:
$ tar -xvf libstdc++-api.20140403.man.tar.bz2
解壓後的文件會在libstdc++-api.20140403.man下,為了避免和其他的手冊文件混在一起,我們重新創建一個目錄:
$ mkdir -p /usr/local/cpp/man #可能需要root權限執行
此時將其拷貝到上面的目錄下:
$ cp -rf ./libstdc++-api.20140403.man/man3 /usr/local/cpp/man/
但是我們發現此時仍然找不到手冊:
$ man std::cout No manual entry for std::cout
原因也很簡單,這和我們執行普通命令類似(參考《為什麼執行自己的程序要在前面加./》),它在要搜索的路徑中找不到我們的手冊。那我們在哪裡添加的呢? 我們可以通過man命令查看man手冊的FILES部分:
$ man man FILES /etc/man_db.conf man-db configuration file.
所以對於我的機器來說,我需要在/etc/man_db.conf中添加路徑 找到MANDATORY_MANPATH相關行,添加新行:
MANDATORY_MANPATH /usr/local/cpp/man
這樣就可以了。
我們來試一下:
$ man std::count No manual entry for std::count
為什麼還是沒有呢?,你查看一下/usr/local/cpp/man/man3下的文件都是什麼名字就明白了:
$ ls /usr/local/cpp/man/man3/* |more std::iostream.3
原來還要帶上命名空間和頭文件的名字,例如:
$ man std::map
然後再使用搜索功能:
$ /size #左斜杠可以搜索,這裡搜索size
看起來好像也沒那麼方便啊…… 這裡說明一下,C++中有命名空間的概念,不同的類中可能有相同名稱的成員函數,因此直接查看某個函數的手冊,也是很難準確找到的。
突然覺得下載一個html或者pdf的手冊好像也挺方便的了,可自行體驗。
在線手冊
在線手冊的好處就是,它能比較清晰地看到各個版本的C++相關特性。這裡主要推薦兩個
https://en.cppreference.com/ 英文 https://zh.cppreference.com/ 中文 www.cplusplus.com
從中搜索就可以啦。
對於linux命令和C庫函數,基本使用man進行查看,但是對於C++,不管你用不用,反正我是用在線的。
當然了,如果你使用chrome瀏覽器的話,還可以配置一下,地址欄輸入C即可直接搜索。
設置方法: 找到設置-管理搜索引擎,添加內容
中文版:
https://zh.cppreference.com/mwiki/index.php?title=Special:%E6%90%9C%E7%B4%A2&search=%s
英文版:
https://en.cppreference.com/mwiki/index.php?title=Special:Search&search=%s
添加內容如下圖:

如果你已經在這兩個網站搜索過,你還可以在其他搜索引擎中看到這樣的內容:

這個時候你只需要編輯裏面的關鍵字,設置成自己喜歡的就可以了,如C。
添加之後,在chrome地址欄輸入c,按tab鍵,即可出現:

手邊手冊
要麼就是買一本大頭手冊《C++標準庫》。
當然也可以在公眾號【編程珠璣】後台回復【C++標準庫】獲取電子版,僅供學習交流。