## 第?2?章?UNIX 縮寫風格
**目錄**
[](ch02.html#id3021986)
[縮寫習慣](ch02s02.html)
[命令選項,從a到z](ch02s03.html)
## 縮寫習慣
無聊和乏味的工作是罪惡
-- Eric S. Raymond
構建于圖形界面之上的操作系統,使用鼠標作為主輸入設備, 是否使用縮寫并不重要。比如 Windows 系統中的目錄,幾乎都是全稱…… 點擊兩次鼠標進入文件夾 `pf`, 并不意味著點擊13次才能進入文件夾 `Program Files`
而構建于命令行之上的操作系統,如 Linux,只要3個字母以上的單詞,幾乎都要縮寫。 例如: **cd** 命令是 `Change Directory` 的縮寫。 作為常用命令,如果使用它的全稱 `Change Directory`,絕對是無聊和乏味的工作。
最常見的縮寫,取每個單詞的首字母,如
| | |
| --- | --- |
| cd | Change Directory |
| dd | Disk Dump |
| df | Disk Free |
| du | Disk Usage |
| pwd | Print Working Directory |
| ps | Processes Status |
| PS | Prompt Strings |
| su | Substitute User |
| rc | Run Command |
| Tcl | Tool Command Language |
| cups | Common Unix Printing System |
| apt | Advanced Packaging Tool |
| bg | BackGround |
| ping | Packet InterNet Grouper |
如果首字母后為“h”,通常保留
| | |
| --- | --- |
| chsh | CHange SHell |
| chmod | CHange MODe |
| chown | CHange OWNer |
| chgrp | CHange GRouP |
| bash | Bourne Again SHell |
| zsh | Z SHell |
| ksh | Korn SHell |
| ssh | Secure SHell |
遞歸縮寫[[3](ch02s02.html#ftn.id3048209)]也屬于這一類,如:
| | |
| --- | --- |
| GNU | GNU's Not Unix |
| PHP | PHP: Hypertext Preprocessor |
| RPM | RPM Package Manager |
| WINE | WINE Is Not an Emulator |
| PNG | PNG's Not GIF |
| nano | Nano's ANOther editor |
有些縮寫可能有多種定義,如:
```
`rpm`
RPM Package Manager
RedHat Package Manager
`bc`
Basic Calculator
Better Calculator
```
這方面 Emacs 可謂獨領風騷:
```
`Emacs`
Editor MACroS
Emacs Makes A Computer Slow
Escape Meta Alt Control Shift
Emacs Makers Are Crazy Sickos
Emacs Makes All Computing Simple
Emacs Makefiles Annihilate C-Shells
Emacs Manuals Always Cause Senility
Emacs May Allow Customized Screwups
Emacs Manuals Are Cryptic and Surreal
Eventually Munches All Computer Storage
Eight Megabytes And Constantly Swapping
Elsewhere Maybe All Commands are Simple
Excellent Manuals Are Clearly Suppressed
Emacs May Alienate Clients and Supporters
Except by Middle Aged Computer Scientists
Extended Macros Are Considered Superfluous
Every Mode Accelerates Creation of Software
Each Manual's Audience is Completely Stupefied
Exceptionally Mediocre Algorithm for Computer Scientists
Easily Maintained with the Assistance of Chemical Solutions
Eradication of Memory Accomplished with Complete Simplicity
```
如果只有一個單詞,通常取每個音節的首字母:
| | |
| --- | --- |
| cp | CoPy |
| ln | LiNk |
| ls | LiSt |
| mv | MoVe |
| rm | ReMove |
對于目錄,通常使用前幾個字母作為縮寫:
| | |
| --- | --- |
| bin | BINaries |
| dev | DEVices |
| etc | ETCetera |
| lib | LIBrary |
| var | VARiable |
| proc | PROCesses |
| sbin | Superuser BINaries |
| tmp | TeMPorary |
| usr | Unix Shared Resources |
這種縮寫的其它情況
| | |
| --- | --- |
| diff | DIFFerences |
| cal | CALendar |
| cat | CATenate |
| ed | EDitor |
| exec | EXECute |
| tab | TABle |
| regexp | REGular EXPression |
如果某種縮寫比較深入人心,例如“mesg”代表“message”,在新的復合縮寫中,將沿用這種縮寫方式
| | |
| --- | --- |
| dmesg | Diagnostic MESsaGe |
| sed | Stream EDitor |
| stty | Set TTY |
| fstab | FileSystem TABle |
| passwd | PASSWorD |
有些縮寫中,第一個字母“g”,代表“GNU”
| | |
| --- | --- |
| awk | Aho Weiberger and Kernighan |
| gawk | GNU AWK |
| gpg | GNU Privacy Guard |
| grep | GNU Regular Expression Print |
| egrep | Extended GREP |
* * *
> [[3](ch02s02.html#id3048209)] 定義中包含自身縮寫,如 GNU:
`GNU`'s Not Unix
使用這個定義來解釋定義中的縮寫:
(GNU's Not Unix)'s Not Unix
這意味著它是可以無限遞歸的:
(((((GNU's Not Unix)'s Not Unix)'s Not Unix)'s Not Unix)'s Not Unix)'s Not Unix ……
## 命令選項,從a到z
Linux 命令的選項繁復龐雜,讓人眼花繚亂。不過這些選項往往具有相對固定的涵義,熟悉了它們,記憶便不再困難
-a
all : 全部,所有 (ls , lsattr , uname)
archive : 存檔 (cp , rsync)
append : 附加 (tar -A , 7z)
-b
blocksize : 塊大小,帶參數 (du , df)
batch : 批處理模式 (交互模式的程序通常擁有此選項,如 top -b)
-c
commands : 執行命令,帶參數 (bash , ksh , python)
create : 創建 (tar)
-d
debug : 調試
delete : 刪除
directory : 目錄 (ls)
-e
execute : 執行,帶參數 (xterm , perl)
edit : 編輯
exclude : 排除
-f
force : 強制,不經確認(cp , rm ,mv)
file : 文件,帶參數 (tar)
configuration file : 指定配置文件(有些守護進程擁有此選項,如 ssh , lighttpd)
-g
-h
--help : 幫助
human readable : 人性化顯示(ls , du , df)
headers : 頭部
-i
interactive : 交互模式,提示(rm , mv)
include : 包含
-k
keep : 保留
kill
-l
long listing format : 長格式(ls)
list : 列表
load : 讀取 (gcc , emacs)
-m
message : 消息 (cvs)
manual : 手冊 (whereis)
create home : 創建 home 目錄 (usermod , useradd)
-n
number : 行號、編號 (cat , head , tail , pstree , lspci)
no : (useradd , make)
-o
output : 輸出 (cc , sort)
options : 選項 (mount)
-p
port : 端口,帶參數 (很多網絡工具擁有此選項,如 ssh , lftp )
protocol : 協議,帶參數
passwd : 密碼,帶參數
-q
quiet : 靜默
-r
reverse : 反轉
recursive : 遞歸 (cp , rm , chmod -R)
-s
silent : 安靜
size : 大小,帶參數
subject
-t
tag
type : 類型 (mount)
-u
user : 用戶名、UID,帶參數
-v
verbose : 冗長
version : 版本
-w
width : 寬度
warning : 警告
-x
exclude : 排除 (tar , zip)
-y
yes
-z
zip : 啟用壓縮 (bzip , tar , zcat , zip , cvs)
- 開源世界旅行手冊
- 授權
- 致謝
- 序言
- 更新紀錄
- 導讀
- 如何寫作科技文檔
- 部分?I.?氣候
- 第?1?章?GUI? CLI?
- 第?2?章?UNIX 縮寫風格
- 第?3?章?版本號的迷霧
- 第?4?章???Vim 還是 Emacs
- 第?5?章???DocBook 還是 TeX
- 第?6?章?完全用 Gnu/Linux 工作
- 第?7?章?病毒
- 第?8?章?磁盤 分區
- 第?9?章?文件系統
- 第?10?章???發行版介紹
- 第?11?章???編程語言
- 第?12?章?無根的根:無名師的 Unix 心傳
- 部分?II.?地理
- 第?13?章?基礎知識
- 第?14?章?命令系統
- 第?15?章?基本系統
- 第?16?章?軟件管理
- 第?17?章?核心工具集
- 第?18?章?編譯工具鏈
- 第?19?章?圖形界面
- 第?20?章?國際化
- 第?21?章???內核
- 第?22?章?Grub
- 第?23?章?服務器
- 第?24?章?Vim 編輯器
- 第?25?章?Emacs 入門
- 第?26?章?正則表達式
- 第?27?章?docbook 指南
- 第?28?章?Git 版本控制系統
- 第?29?章?ConTeXt 入門指南
- 部分?III.?景觀
- 第?30?章?終極 Shell -- ZSH
- 第?31?章?完美工作站 Archlinux
- 第?32?章?組織你的意念:Emacs org mode
- 第?33?章???Zsh+screen
- 第?34?章???gentoo stage3
- 第?35?章???硬件問題
- 第?36?章???網絡設置
- 第?37?章???自制 LiveCD
- 第?38?章?awesome
- 第?39?章?openbox 工作環境
- 第?40?章???Emacs muse
- 第?41?章???寫作工具鏈
- 第?42?章?使用 lftp
- 第?43?章???Firefox 使用技巧
- 第?44?章???FVWM
- 部分?IV.?地質
- 第?45?章?Unix
- 第?46?章???Gnu
- 第?47?章?軟件業自由之神——Richard Stallman
- 第?48?章?Linux
- 第?49?章?GNOME與KDE的戰爭
- 第?50?章???Vim Emacs
- 第?51?章???年代紀
- 第?52?章?我的選擇
- 第?53?章???補遺