學科:Shell
相關連結 | |
---|---|
軟件開發 | Subject:伺服器管理 |
Shell是作業系統(核心)與使用者介面的外層介面。電腦作業系統的核心 (kernel)是整個電腦硬件重要運作程式,不提供和使用者的互動功能且需要被保護的!因此一般電腦使用者若要與核心溝通只能透過shell,來要電腦核心程式管理軟件的資料輸入與輸出等工作。底下提供一些索引。
Which shell? bash, zsh or fish
編輯- 首先 bash 沒什麼好說的,多數環境下是默認的 shell。如果你經常要跟終端打交道,應該考慮 zsh 或者 fish,都比 bash 強很多。
- zsh 歷史其實比較久了,初代誕生於 1990 年[1],但份額一直不大[2]。fish 相對來說更年輕,2005 年發佈初代。
- fish 從設計理念上來說要優於 zsh,手感可能更好,文檔也不錯。但缺點是受眾過小,社區規模遠小於 zsh。另一個問題是腳本語法不兼容 bash,但反過來看也是優點……
- 國內 zsh 比較主流,2012 後增長勢頭猛烈,被譽為「終極 shell」。
配置
編輯inputrc
編輯set completion-ignore-case on # 补全不区分大小写 set show-all-if-ambiguous on # TAB: menu-complete # 如有多个匹配项,默认会显示匹配的列表,按此设置后补全会随着你每按一次Tab键而循环显示匹配列表中的项目
常用命令技巧
編輯ls
編輯- 通配符的特殊使用
舉例說明,假設有如下目錄:
. ├── ChangeLog.md ├── LICENSE ├── test.h ├── external │ └── UncaughtExceptionHandler │ ├── UncaughtExceptionHandler.h │ └── UncaughtExceptionHandler.m └── extobjc └── metamacros.h
ls *,可以結構化的打印當前目錄的文件及子目錄下的文件和目錄(不含子目錄中子目錄的內容),結果:
# ls * ChangeLog.md LICENSE test.h external: UncaughtExceptionHandler extobjc: metamacros.h
資源&連結
編輯- http://www.commandlinefu.com - shell 代碼分享社區
- http://alias.sh/ - Manage, share and source your aliases online.
- http://codestre.am - allows you to stream and/or record your terminal, with just one command.
- 如何調試bash腳本 http://coolshell.cn/articles/1379.html
- 適於Mac OS用戶的命令行提示 http://osxdaily.com/category/command-line/
- 讓你提升命令行效率的 Bash 快捷鍵 http://linuxtoy.org/archives/bash-shortcuts.html
- Powerful Command Line Tools For Developers http://coding.smashingmagazine.com/2012/10/29/powerful-command-line-tools-developers/
- Linux Shell 編程實戰技巧 http://www.ibm.com/developerworks/cn/linux/1309_huangwh_linuxshell/index.html
- 使用 shell 腳本對 Linux 系統和進程資源進行監控 http://www.ibm.com/developerworks/cn/linux/l-cn-shell-monitoring/index.html
- Linux 技巧:讓進程在後台可靠運行的幾種方法 http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
- https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps —— 歷史命令的教學帖
實用工具
編輯- fzf https://github.com/junegunn/fzf —— 這是一個模糊查找的工具
- autojump https://github.com/joelthelion/autojump —— 快速目錄跳轉
- fasd https://github.com/clvv/fasd —— 與 autojump 類似
- Kristóf Kovács收集的28個Unix/Linux下的28個命令行下的工具
參考
編輯- ↑ "zsh - a ksh/tcsh-like shell (part 1 of 8)", alt.sources, December 14, 1990.
- ↑ https://www.google.com/trends/explore?cat=0-5&q=bash%2C%20zsh%2C%20"fish%20shell"%2B"fishshell"&cmpt=q —— zsh 波蘭的數據比較異常,不過對大結果影響不大,美區波動不大,日本的結果比較有意思