学科: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 波兰的数据比较异常,不过对大结果影响不大,美区波动不大,日本的结果比较有意思