为你的Linux安装oh-my-zsh

命令行是程序员的最爱,默认的 bash shell 虽然功能已经很强大,但显得太朴素了,也不够智能,远远谈不上酷炫,虽然已经远远将 windows 的 cmd 甩开几百条街。但对于极客来说,bash 还是太弱了,长得也难看。

zsh 的功能比bash强大很多,但配置过于复杂,起初只有极客才在用。后来,有个穷极无聊的程序员可能是实在看不下去广大猿友一直只能使用单调的bash, 于是他创建了一个名为 oh-my-zsh 的开源项目…

自此,只需要简单的安装配置,程序员们都可以用上高效好看的OhMyZsh辣

安装Zsh

以ubuntu为例:(mac也是类似的操作)

查看系统是否安装了zsh,如果没找到 /bin/zsh ,就需要先安装

$ cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

ubuntu默认情况下没安装zsh

用 apt 安装 zsh

$ sudo apt install zsh

安装成功

$ cat /etc/shells | grep zsh
/bin/zsh

切换shell为zsh

$ chsh -s /bin/zsh
Changing shell for root.
Shell changed.

退出,重启终端,可看到shell已切换成功

$ echo $SHELL 
/bin/zsh

安装 oh my zsh

一行命令即可自动化安装

$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

码云镜像

$ wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh

编辑install.sh

找到以下部分

# Default settings
ZSH=${ZSH:-~/.oh-my-zsh}
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
BRANCH=${BRANCH:-master}

REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}

替换为

REPO=${REPO:-mirrors/oh-my-zsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}

再使用以下命令安装👇

$ chmod +x install.sh && ./install.sh

成功界面:

退出重新登入终端,即可看到oh-my-zsh已经生效

接下来只需简单的配置,就可以享受 oh-my-zsh 的强大

主题选择

oh-my-zsh有很多漂亮的主题:

在 主题列表 中选择自己心宜的主题,安装很简单,打开配置文件 ~/.zhsrc ,将 ZSH_THEME 值改为你所选的主题名称

如:

$ vim ~/.zshrc
# 修改主题名称
ZSH_THEME="cloud"

然后重新加载配置文件

$ source ~/.zshrc

每次修改配置文件后,都需要再次加载配置文件才能生效

插件

oh-my-zsh默认安装了git插件,在git仓库中,会提示当前所在的分支。此外,还有大量优秀的插件,具体可查看 插件仓库,以下只介绍几个我常用的插件

  • extract

linux下的压缩文件有多种格式,我总是忘记不同格式的解压命令,如果有一个通用的指令可以解压所有文件就好了,extract 插件就能解决此问题

现在不管是 zip, tar.bz2, gz 等格式的压缩文件,都只需要执行 extract 文件名 即可

  • z

z 插件可以智能在历史的cd命令中智能地选择指令,如,我们在终端执行过cd /usr/local/nginx/conf/vhost,以后只需要执行z vhost即可,不必再去敲长串的命令了

以上两个插件都是oh-my-zsh自带的,只需要在配置文件的plugins配置中加入插件名称即可,多个插件用空格隔开

  • zsh-autosuggestions

zsh-autosuggestions 属于第三方插件,可以提示我们插入历史命令

如,我执行过 php artisan ide-helper:generate 指令,下次当我输入 php 时,就会自动提示指令,并且会随着我们的输入而实时地匹配最符合的历史指令,当所提示的指令符合我们的预期,只需要按右箭头即可补全

安装此插件的流程

$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

在配置文件中中添加插件名称

综上,配置文件plugins的内容如下:

plugins=(
  git
  extract
  z
  zsh-autosuggestions
)

重新载入配置文件,即可生效

可能遇到的问题

以下是可能遇到的小问题

与vim的提示相冲突

使用自动补全插件可能会与vim的提示功能相冲突,如会报以下错误:

$ vim t
_arguments:451: _vim_files: function definition file not foun

解决方法:将~/.zcompdump*删除即可

$ rm -rf ~/.zcompdump*
$ exec zsh

卡顿

有时候执行 cd 会卡,这让人难以忍受。原因是 oh-my-zsh 在获取 git 信息,可以将 git 信息隐藏:

$ git config --global oh-my-zsh.hide-status 1

小结

关于 oh-my-zsh 的功能,本文所涉及的仅是冰山一角,这些已经足够平时使用了,极大提高了效率,相信我,一旦用过这个尤物,你再也不能忍受单调枯燥的 bash 了

评论

  1. 啦啦啦
    Android Chrome 78.0.3904.108
    已编辑
    3周前
    2020-10-08 22:04:11

    • CHINQ 博主
      Android Chrome 85.0.4183.127
      3周前
      2020-10-09 18:03:05

      说!你是谁

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
这个CHINQ她就是逊辣~
nmsl
WDNMD
可可爱爱,没有脑袋
哇O7I2我爱你~
啊西巴!
23333~
66666~
(ಥ_ಥ)是在下输了
(๑•ัω•็๑)迷の感动
我从未见过如此厚颜无耻之人(´இ皿இ`)
这么可爱一定是蓝孩纸!╰ひ╯
好无聊,我看了300遍就关了(。•ˇ‸ˇ•。)
bilibili- ( ゜- ゜)つロ 乾杯~
高产似母猪(ˉ(∞)ˉ)
闲的蛋痛的CHINQ用一小时肝出了这个鬼东西
Source: gitee.com/PassionPenguin/ARU
Source: t.me/addstickers/CoronaEmoji
Source: t.me/addstickers/frightened
颜文字
Emoji
小恐龙
花!
弹幕!
aru
Corona Emoji
吓得我都...
上一篇