利用ZSH简化Linux操作
今天总结一下平时常常使用的工具zsh。
UNIX 和 Linux 环境下的 Shell 通常可归入两个类别之一,这两个类别基于最初的 UNIX 版本所附带的原始 Shell。这两个类型分别是 Bourne Shell 和 C Shell;后者的独特之处在于其格式和结构类似于 C 编程语言的格式和结构。
Bourne Shell 比 C Shell 更容易使用和理解,但是对于您可能希望在 Shell 编程环境中实现的复杂脚本编程,它可能就不太实用了。Korn Shell 提供了 Bourne Shell 的易用性和附加的作业控制扩展(允许您容易地管理多个后台作业)、命令行编辑和历史记录,以及用于简化编程的附加 C Shell 元素。
Z Shell (zsh) 是在考虑交互式使用而不是编程的情况下设计的,因此它整合了大量显著简化命令使用和运行的功能。这些功能的示例包括更广泛的文件名匹配 (globbing)、用于重定向输入和输出的多个 I/O 流,以及一个可完全自定义的命令行完成系统。
安装zsh:
Ubuntu: sudo apt-get install zsh
Federo or CentOS: yum install zsh
配置你的系统使用zsh
chsh -s /bin/zsh
以下是一些zsh常见使用方式:
列出所有的 C 源文件
ls *.c
列出所有非C源文件
ls ^*.c
利用正则表达式
ls (fred|barney)* //查找所有名为fred或者barney的文件
通过使用 **/,还可以搜索子目录;该过程是递归的
ls **/*.c 等同于 find -name "*.c"
获取可执行文件列表(*)
ls *(*)
``可以进行进程替换
vim `find . -name "*.html"` //``中的命令得到结果会给前一个命令提供参数
生成文件
cat =(print -l tom dick harry)
使用zsh能同时重定向多个输出
ls >listone >listtwo
从多个流输入
sort <listone <listtwo
重定向到流和标准输出
ls >fileone |cat
对两个命令同时重定向
sort <(ls) <(ls /usr)
设置命令完成
compctl -k '(commit checkout update status)' svn
zsh很强大,但是使用起来有一点困难,但是没有关系,有一个比较好的工具,可以让我们很容易使用zsh。
oh-my-zsh
安装
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
或者
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
安装完成以后编辑vim /home/yourhomefolder/.zshrc
修改theme为random,然后你就可以尝试不同的theme(只要敲击zsh),终有一款适合你, 找到以后把random替换
添加alias a=b 可以设定命令的别名
比如alias dev_s="ssh root@192.168.1.4"
项目的github地址 https://github.com/jiangwt100/shell-ohmyzsh
其他的功能等你发现