相关链接
软件开发 Subject:服务器管理

Shell是作業系統(核心)與使用者介面的外層介面。電腦作業系統的核心 (kernel)是整個電腦硬體重要運作程式,不提供和使用者的互動功能且需要被保護的!因此一般電腦使用者若要與核心溝通只能透過shell,來要電腦核心程式管理軟體的資料輸入與輸出等工作。底下提供一些索引。

Linux系统的大致结构,其中包括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”。

Zsh 专区


配置

编辑

inputrc

编辑
set completion-ignore-case on # 补全不区分大小写
set show-all-if-ambiguous on # 
TAB: menu-complete   # 如有多个匹配项,默认会显示匹配的列表,按此设置后补全会随着你每按一次Tab键而循环显示匹配列表中的项目

常用命令技巧

编辑
通配符的特殊使用

举例说明,假设有如下目录:

.
├── 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

资源&链接

编辑

实用工具

编辑

参考

编辑
  1. "zsh - a ksh/tcsh-like shell (part 1 of 8)", alt.sources, December 14, 1990.
  2. https://www.google.com/trends/explore?cat=0-5&q=bash%2C%20zsh%2C%20"fish%20shell"%2B"fishshell"&cmpt=q —— zsh 波兰的数据比较异常,不过对大结果影响不大,美区波动不大,日本的结果比较有意思