oh-my-zsh + zsh 强大的终端环境

Author Avatar
沐成尘 3月 14, 2018
  • 在其它设备中阅读本文章

人生苦短,我用zsh.

介绍

zsh 是一个强大的 bash 替代,而 oh-my-zsh 是 zsh 的一键式配置工具,尤其是配合一些插件,功能强大,好用又便捷。

准备工作

  • 我们看一下系统内置了几种shell:
cat /etc/shells

#
# /etc/shells
#

/bin/sh
/bin/bash
  • 我的电脑现在仅仅只有2种;shbash
  1. 当然如果你使用的是Mac,你会发现多了一个zsh,也就是说OSX系统预装了zsh。
  2. 目前大部分的Linux和OSX系统默认使用bash;其实真正强大的shell是深藏不漏的zsh,史称终极Shell,但是由于配置过于复杂,很多人看了几分钟的zsh使用指南,什么都没说直接关了网页走了。直到有一天,oh-my-zsh被一个程序员做了出来,速成突然变成了可能。

安装zsh

  • Ubuntu用户可以在终端运行:
sudo apt-get install zsh zsh-completions
  • 使用pacman包管理器的用户可以:
sudo pacman -S zsh zsh-completions
  • zsh-completions 包是用以增强zsh的补全功能。
  • mac系统下无需安装。

下载oh-my-zsh

  • curl 安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • weget 安装:
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • 选择以上方式的其中一种,执行后自动读取系统环境变量并自动进行zsh配置。

切换到zsh

chsh -s /usr/local/bin/zsh

配置

  • zsh配置文件在用户当前目录下的.zshrc中,打开它:
vim ~/.zshrc
  • 我们可以修改这个参数来自定义主题
ZSH_THEME="robbyrussell"   
  • robbyrussell 是主题名。>可挑选你喜欢的主题。

添加插件

.zshrc文件中加入插件的名字,即可启动插件:

plugins=( [plugins...] ) 
  • cp:显示复制进度。
  • git:默认开启的插件,提供了大量 git 的alias。详情
  • extract:功能强大的解压插件,所有类型的文件解压一个命令x全搞定,再也不需要去记tar后面到底是哪几个参数了。
  • z:强大的目录自动跳转命令,会记忆你曾经进入过的目录,用模糊匹配快速进入你想要的目录。

一些实用的,非自带插件

  • zsh-syntax-highlighting:高亮你的zsh命令,正确显示绿色,错误显示红色。
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • zsh-autosuggestions:自动匹配你历史的输入命令。
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
  • 同样在.zshrc 文件中加入 plugins=(... zsh-syntax-highlighting zsh-autosuggestions)

  • 保存退出,并运行source ./zshrc,更新一下zsh,当然你也可以重新打开命令行,就可以享受zsh给你带来的便捷了。

设置命令别名,让输入更便捷

  • 还是找到zsh的配置文件.zshrc,(~/.zshrc),添加命令别名:

    例如:alias install="sudo apt-get install"

  • 应用配置文件,使配置生效 source ~/.zshrc

  • 查看当前shell现有别名,终端下输入:
➜  ~ alias 
  • Bash 里一些常用的别名:
alias la='ls -Fa'          # 列出所有文件
alias ll='ls -Fls'         # 列出文件详细信息

alias rm='rm -i'           # 删除前需确认
alias cp='cp -i'           # 覆盖前需确认
alias mv='mv -i'           # 覆盖前需确认

alias vi='vim'             # 输入 vi 命令时使用 vim 编辑器

参考-鸣谢