Unix/命令/摘要指南
這是我對有用的 Linux 簡寫、目錄、檔案和命令的總結。我使用自己的註釋來回憶那些不容易找到的可用選項和引數。當我記不起經常使用的命令的語法時,我經常呼叫這個檔案(但沒有經常使用到能記住語法!)。我還會對不同型別程式的相對實用性進行評論。
本文件仍在開發中。
其中一些特定於 bash shell。我沒有對其他 shell 進行足夠的實驗來了解哪些是所有 shell 共有的。另請參閱 SSC (2000) 的“Bash 參考卡”,可在網上獲取。
- / - 根目錄
- ./ - 當前目錄
- ./command_name - 噹噹前目錄不在路徑上時,在當前目錄中執行命令
- ../ - 父目錄
- ~- 主目錄
- $ - 以普通使用者身份登入時的典型提示
- # - 以 root 或超級使用者身份登入時的典型提示
- ![string] - 重複以 [string] 開頭的命令
- !?[string] - 重複以 [string] 結尾的命令
- !?[string] - 重複包含 [string] 的命令
- ![number] - 重複指定的命令 x 次
- !-[number] - 重複指定的命令 x 個命令之前
- !! - 重複上一個命令
- ^[string]^[string2]^ - 重複上一個命令,將 [string2] 替換為 [string](等同於 !!:s/string1/string2/)
- & - 在後臺模式下執行程式
- [Tab][Tab]- 列印所有可用命令的列表。這只是自動完成的一個例子,對第一個字母沒有限制。
- x[Tab][Tab] - 列印所有可用命令的列表,這些命令的開頭是“x”
- [Alt][Ctrl][F1]- 從 X 切換到第一個虛擬文字控制檯。
- [Alt][Ctrl][Fn]- 從 X 切換到第 n 個虛擬文字控制檯。
- [Alt][Ctrl][F7]- 切換到第一個 GUI 控制檯(如果正在執行),假設有 6 個虛擬文字控制檯。如果圖形控制檯凍結,則可以切換到非圖形控制檯,終止導致問題的程序,然後使用此快捷鍵切換回圖形控制檯。
- [ArrowUp]- 在命令歷史記錄中滾動(在 bash 中)
- [Shift][PageUp]- 向上滾動終端輸出。這在登入提示符處也有效,因此您可以滾動瀏覽引導訊息。
- [Shift][PageDown]- 向下滾動終端輸出
- [Ctrl][Alt][+]- 切換到下一個 X 伺服器解析度(如果伺服器設定為多個解析度)
- [Ctrl][Alt][-]- 更改為上一個 X 伺服器解析度
- [Ctrl][Alt][BkSpc]- 終止當前 X 伺服器。在無法正常退出時使用。
- [Ctrl][Alt][Del]- 關閉系統並重新啟動
- [Ctrl]a- 將游標移動到行首
- [Ctrl]c- 終止當前程序
- [Ctrl]d- 從當前終端登出
- [Ctrl]e- 將游標移動到行尾
- [Ctrl]l- 清屏
- [Ctrl]n- 歷史記錄中的下一個(與向下箭頭相同)
- [Ctrl]p- 歷史記錄中的上一個(與向上箭頭相同)
- [Ctrl]q- 恢復傳輸到當前終端。如果終端停止響應,則應嘗試此操作。
- [Ctrl]s- 停止傳輸到當前終端
- [Ctrl]u- 清除從游標到行首的內容
- [Ctrl]y- 當程序請求輸入時將其傳送到後臺。(延遲後臺)
- [Ctrl]z- 將當前程序傳送到後臺
- reset - 將終端恢復到其預設設定
- [Leftmousebutton]- 按住左鍵並拖動以突出顯示文字。釋放按鈕將區域複製到 X 下的文字緩衝區中,以及(如果安裝了 gpm)在控制檯模式下。
- [Middlemousebutton]- 從文字緩衝區複製文字並將其插入游標位置。對於雙按鈕滑鼠,請同時單擊兩個按鈕。必須啟用三按鈕模擬,在 gpm 或 XF86Config 下啟用。
這些是在啟動時執行的程式或程序。有些會保留在記憶體中以在需要時執行各種任務(守護程序)。大多數在 /etc/rc.d/init.d 目錄中的指令碼啟動和停止(見上文)。此目錄的確切內容將取決於從特定發行版安裝了哪些包。例如,安裝 Apache 包將導致一個 httpd 指令碼被放置到 /etc/rc.d/init.d 中。
大多數都有手冊頁。Red Hat 程式 tksysv(ntsysv 是非圖形版本)允許 root 自動配置哪些在啟動時自動啟動。linuxconf 程式也做同樣的事情,雖然我沒有嘗試過。實用程式 chkconfig 也用於查詢和配置不同執行級別的執行時服務。Thewww.mandrakeuser.org網站有一個關於常見服務/守護程序的頁面,特別是那些包含在 Mandrake 發行版最近版本中的頁面。
關於守護程序和服務的良好資訊來源是 CTDP (2000a) 文件的“Linux 裝置、守護程序、服務”章節。
- amd - 執行自動掛載守護程序,用於遠端檔案系統掛載,例如 nfs
- anacron - 在啟動時檢查延遲的“cron”任務(見下文)並執行它們。如果您有計劃的 cron 作業,但沒有始終執行機器,則非常有用。
- apmd - 高階電源管理 BIOS 守護程序。用於支援 apm 的機器,尤其是筆記型電腦。監控電池狀態,如果電量過低,可以關閉系統。
- arpwatch - 監視使用 ARP 協議解析的乙太網 IP 地址配對。
- atd - 執行由“at”排隊的作業
- autofs - 控制自動掛載守護程序的操作,用於按需掛載和解除安裝裝置
- bootparamd - 允許計算機使用 BOOTP 網路協議從 Linux 機器啟動。一個伺服器程序,為無盤客戶端提供啟動所需的資訊
- crond - 自動任務排程程式。管理定期但不頻繁執行的任務,例如輪換日誌檔案、清理 /tmp 目錄等。
- cups - 通用 Unix 列印系統下的列印服務守護程序,替代 lpd
- dhcpd - 實現動態主機配置協議 (DHCP) 和網際網路引導協議 (BOOTP)。用於將 IP 地址租賃給遠端機器。
- drakfont - Mandrake 中的字型伺服器
- fetchmail - 守護程序,用於定期從郵件伺服器獲取郵件
- ftpd - ftp 伺服器守護程序
- gated - 路由守護程序,處理多個路由協議並替換路由和 egpup
- gpm - 用於在 Linux 控制檯上執行的應用程式的有用滑鼠伺服器。
- httpd - Apache Web 伺服器超文字傳輸協議守護程序
- identd - identd 伺服器提供一種方法來確定特定 TCP 連線使用者的身份。給定一個 TCP 埠號對,它返回一個字串,該字串標識伺服器系統上該連線的所有者。
- inetd - 監聽網路連線上的服務請求,尤其是*撥號*服務。此守護程序可以自動載入和解除安裝其他守護程序(ftpd、telnetd 等),從而節省系統資源。在最新版本的 Red Hat(撰寫本文時為 7.0)中,它已被 xinetd 取代。下面列出了 inetd 控制的服務的部分列表。在許多發行版中,inetd 將執行 /etc/inetd.conf 檔案中的指令碼。
- innd - Usenet 新聞伺服器守護程序
- ipchains - 用於資料包轉發的守護程序。用於配置閘道器/防火牆。
- isdn 提供 ISDN 網路介面服務
- isdn4linux - 適用於 ISDN 卡使用者
- kerneld - 自動載入和解除安裝核心模組
- keytable - 從 /etc/sysconfig/keyboard 載入適當的鍵盤對映
- kheader -
- kudzu - 在引導期間檢測和配置新的或已更改的硬體
- linuxconf - linuxconf 系統配置工具所需的“啟動掛鉤”
- lpd - 行式印表機和印表機後臺處理程式守護程序
- mcserv - Midnight Commander 網路檔案系統的伺服器程式。它為執行 Midnight 檔案系統的客戶端(目前僅限 Midnight Commander 檔案管理器)提供對主機檔案系統的訪問許可權。如果程式以 root 身份執行,程式將嘗試獲取一個保留埠,否則它將使用 9876 作為埠。如果系統正在執行埠對映器,則該埠將註冊到埠對映器,因此客戶端將自動連線到正確的埠。如果系統沒有埠對映器,則應使用 -p 選項手動指定埠(見下文)。
- mysql - 資料庫伺服器守護程序
- named - 提供 DNS 服務
- netfs - 網路檔案系統安裝器。用於在引導時安裝 nfs、smb 和 ncp 共享。
- network - 透過呼叫 /etc/sysconfig/network-scripts 中的指令碼,在引導時啟用所有網路介面
- nfsd - 用於在遠端系統請求時匯出 nfs 共享
- nfslock - 啟動和停止 nfs 檔案鎖定服務
- numlock - 在 init 執行級別更改時鎖定 numlock 鍵
- pcmcia - 筆記型電腦中 pcmcia 卡的通用服務
- portmap - 用於遠端過程呼叫
- postfix - 郵件傳輸代理,它是 sendmail 的替代品。現在是 Mandrake 桌面安裝的預設郵件傳輸代理。
- postgresql - 資料庫伺服器守護程序
- random - 隨機數生成守護程序,與安全和加密相關
- routed - 管理路由表
- rstatd - 核心統計伺服器。允許網路上的使用者獲取任何連線機器的效能統計資訊。
- rusersd - 提供服務,允許使用者透過網路相互查詢
- rwalld - 允許使用者使用 rwall 在遠端終端上寫入訊息
- rwhod - 伺服器,維護 rwho(1) 和 ruptime(1) 程式使用的資料庫。它的操作取決於在網路上廣播訊息的能力。
- sendmail - 郵件傳輸代理。這是 Red Hat 附帶的代理。其他代理,如 smtpd,未包含在內。
- smb - 用於執行 SAMBA
- snmpd - 提供簡單網路管理協議支援
- sound - 用於管理聲音的守護程序
- squid - 網頁代理伺服器守護程序
- syslogd - 管理系統日誌檔案
- smtpd - 簡單郵件傳輸協議,旨在用於交換電子郵件。支援 SMTP 的守護程序有很多,包括 sendmail、smtpd、rsmtpd、qmail、zmail 等。
- tcpd - 來自 tcp_wrappers 包。攔截通常由 inetd 處理的請求,並透過 hosts.allow 和 hosts.deny 檔案對其進行過濾,這些檔案可以根據服務型別、請求來源、目標等限制對服務的訪問。請求被攔截是因為對特定服務的呼叫在 /etc/inetd.conf 中被替換為對 tcpd 的呼叫。
- telnetd - telnet 伺服器守護程序
- usb - 用於通用序列總線上的裝置的守護程序
- xfs - X 字型伺服器
- xinetd - inetd 的更現代的替代品。它顯然允許使用類似於 tcpd 與 inetd 結合使用的訪問過濾器。xinetd 在 Red Hat 7.0 中取代 inetd 作為預設網路服務守護程序。
- xntpd - 網路時間協議守護程序。提供了一種透過網路同步時間的方法。
- webmin - webmin 基於 Web 的系統管理程式的守護程序。
- ypbind - NIS 繫結程式。如果計算機是網路資訊服務域的一部分,則需要它。
我所知道的所有 Linux 發行版都附帶 sendmail,除了 Mandrake,它從 7.1 版本開始使用 Postfix 作為其預設 MTA。有很多競爭程式可供使用。即使是最簡單的程式似乎也不容易配置。
- Exim -
- Fetchmail - 似乎是為數不多的幾種方法之一(Pine 也能做到這一點),可以自動從 POP 或 IMAP 伺服器下載郵件並將其傳遞給本地郵件處理代理。在 /.fetchmailrc 中使用以下行
- poll pop.uqam.ca proto pop3 user USERNAME pass PASSWORD
使用以下方法將 fetchmail 載入為守護程序,該守護程序將定期下載郵件
- fetchmail -d 6000
間隔以秒為單位指定。Fetchmail 將輪詢 /.fetchmailrc 中列出的所有 pop 伺服器。
- Getmail - 旨在替代 Fetchmail。
- MMDF -
- Postfix - 郵件傳輸代理,可能是 sendmail 的替代品。Mandrake 7.1 及更高版本使用它作為其預設 MTA。
- Qmail - sendmail 的“現代”替代品。據說它比 sendmail 更安全。由於它沒有 GPL 許可證,因此它不是我所知道的任何 Linux 發行版的預設 MTA。
- Sendmail - 我認為它擁有最複雜和最晦澀的配置檔案 /etc/sendmail.cf。大多數 Linux 個人使用者將使用透過 ISP 連線到網際網路的機器,或者使用具有集中郵件處理和網路訪問許可權的網路(如大學網路)。我必須更改 sendmail.cf 中的以下幾行才能使用 emacs 傳送郵件。
- DMuqam.ca#偽裝域名
- DNambler.steven#偽裝使用者名稱
- DSnobel.si.uqam.ca#透過 nobel 伺服器中繼所有郵件
問題來自這樣一個事實,即作為本地網路上的使用者,我沒有自己的域名。我希望返回郵件被路由到 UQAM 的郵件伺服器,並且我希望伺服器為我處理我所有的郵件,即使是發往其他 UQAM 使用者的郵件。如果我使用使用者的規範化使用者名稱向 UQAM 使用者傳送郵件,網路將不知道他們是誰或在哪裡。我設法透過編寫 sendmail.mc 檔案並使用 m4 宏直譯器對其進行處理來獲得一個有效的配置,遵循“地址重寫”小型 HOWTO。我現在有了可以執行的東西,但每次系統啟動時,它都會神秘地抱怨“危險的寫入許可權”。
- Smail - 似乎在較小的系統上很受歡迎。看來,在它發展歷史中的某個時候,Red Hat 附帶了 smail,但現在已被 sendmail 取代。
- Zmailer - 顯然是為擁有大量使用者的郵件伺服器而設計的。
- Acmemail - 基於 Web 的郵件代理。允許您使用任何瀏覽器訪問您的郵件。這涉及在伺服器端設定一個 Perl CGI 指令碼。
- Archimedes - XFmail 的後繼程式(見下文)
- Arrow -
- Balsa - 預設的 Gnome 郵件程式
- Blitzmail -
- Elm -
- Emumail - 基於 Web 的郵件代理。允許您使用任何瀏覽器檢查您的 POP 郵件帳戶。製作此郵件代理的公司網站可用於檢查 Unix 系統上的郵件,而無需在伺服器端設定任何 CGI 指令碼。
- Evolution - 為在 Gnome 下使用而設計的郵件閱讀器和聯絡人管理器/日曆
- Exmh - Mh 的圖形前端
- Kmail - KDE 附帶的郵件閱讀程式
- M - 代表“Mahogany”。看起來類似於 XFmail(見下文)。我無法從描述中確定它是否獨立執行,還是與 sendmail 和 procmail 結合執行。
- Mh -
- Mumail -
- Mutt - 基於文字的郵件程式,高度可配置。
- Nmh - 郵件處理系統。該系統包含大量二進位制命令,這些命令儲存在 /usr/bin 中。有關詳細資訊,請參閱 nmh 手冊頁。Red Hat 5.1 和 5.2 附帶 exmh 和 xmh,它們是 nmh 的圖形前端。exmh 前端是一個單獨的軟體包,而 xmh 歸 XFree86 所有。
- Pine - 基於文字的郵件和新聞實用程式。其功能現在包括
- MIME 支援
- 能夠閱讀和釋出網路新聞
- 維護郵件收件人的地址簿
- 在訊息撰寫過程中進行拼寫檢查
- 在 X 視窗系統上使用 xterm 時支援滑鼠
- 高度可配置的環境
Pine 可用於從一個或多個 POP3 郵件伺服器下載郵件。請參閱“一週一貼”(http://tipoftheweek.darkelf.net)中 1999 年 2 月的第四周。首先,設定多個配置檔案(pine -p localmail、pine -p popserver 1、pine -p popserver 2 等)。然後,要配置 Pine 使用 POP3 伺服器,請使用“設定配置”命令。在 inbox-path 中設定類似於以下內容
- {pop.server.com/pop3/user=myid}INBOX
當 Pine 重新啟動時,它應該會要求您輸入密碼,連線到遠端伺服器,並像訪問本地郵件一樣使用它。文章中沒有明確說明是否可以選擇將下載的郵件副本保留在伺服器上。
- Sylpheed -
- XCmail -
- XFmail - 這個看起來很有希望。它是一個基於 GUI 的郵件工具,似乎提供了 Netscape 郵件模組的大多數功能。它無需使用 sendmail 和 procmail 即可執行,這是一個主要優勢。
- cooledit - 一款功能強大的 GUI 文字編輯器
- emacs - 功能強大的文字編輯器,包含用於閱讀和傳送郵件以及新聞組帖子的模組,以及一個瀏覽器模組。對於編輯 TEX 和 LATEX 檔案,AucTEX 附加包非常有用,並使 emacs 成為使用 LATEX 的最佳編輯器。
- jed - 具有非常好的 emacs 模擬功能(它甚至可以像 emacs 一樣閱讀郵件!)。它對 TeX 檔案進行簡單的語法高亮顯示,包括提供括號的位置。它似乎非常可配置,並且比 emacs 佔用更少的磁碟空間,儘管比 joe 和 muemacs 多。它在控制檯模式下執行良好,並且仍然可以為選單欄和語法高亮顯示使用顏色。程式 xjed(某些版本附帶)在被呼叫時會啟動它自己的 X 終端。
- joe - “Joe's Own Editor”,一款相當強大的編輯器,具有緊湊的二進位制檔案和模擬 Wordstar、Emacs、Pico 和其他一些編輯器的功能。
- jove - “Joe's Own Version of Emacs”。我嘗試過幾次,在命令語法中出現一些小錯誤時導致程式崩潰。
- microemacs (JASSPA) - muemacs 的衍生版。相當強大且可配置,同時不會佔用太多磁碟空間或記憶體。
- muemacs - 一款相當強大的 emacs 克隆版,其二進位制檔案實際上比 Joe 編輯器的小。
- nedit - 一款基於 X 視窗的文字編輯器。在我見過的所有 Linux 文字編輯器中,它的命令最接近 Windows 文字編輯器,用於游標移動、高亮顯示、標記文字等。它對 LATEX 和 HTML 都有非常好的語法高亮顯示。
- pico - 簡單的文字編輯器。它通常與 Pine 郵件使用者代理捆綁在一起。
- vi - 大多數 Linux 發行版都包含它。如果您不習慣語法,可能會難以理解。
- vim - vi 的改進版本
- xedit - 許多 Linux 發行版中包含的簡單文字編輯器
- dfm - 桌面檔案管理器。允許使用者將程式圖示放在桌面上。
- gmc - Gnome Midnight Commander。Gnome 版的 Midnight Commander。包含圖形介面,允許使用者將圖示放在桌面上。
- mc - Midnight Commander 檔案管理器。在控制檯模式和 xterm 中執行。
- scilab - 一種免費的矩陣程式語言。可能是 GAUSS 和/或 MATLAB 的良好替代品。
- Rosetta Stone For *Nix - 可配置的 *nix 和 MAC 系統等效程式列表。
計算機技術文件專案 (CTDP) (2000a), ``Linux 工作原理'', http://www.comptechdoc.org/os/linux/howlinuxworks/
計算機技術文件專案 (CTDP) (2000b), ``Linux 檔案和命令參考'', http://www.comptechdoc.org/os/linux/commands/
Klimas, Piotr 等人。 (1999), ``Linux 新手管理員指南'', http://linux-newbie.sunsite.dk/
Siever, Ellen,Stephen Spainhour,Jessica P. Hekman 和 Stephen Figgins (2000), Linux 概覽. 第三版,O'Reilly
Sobell, Mark G. (1998), Linux 實用指南. Addison-Wesley
Welsh, Matt,Matthias Kalle Dalheimer 和 Lar Kaufman (1999), 執行 Linux. 第三版,O'Reilly and Associates