目标:因为用习惯了zsh的shell环境,所以习惯在服务器上也搭建zsh环境,但是每次搭建都需要Google每一步骤,感觉很麻烦,所以决定记录一下,免得一次次查

1. 安装zsh

zsh是一款shell环境,oh-my-zsh在其基础上加了很多扩展和插件。

具有sudo权限

如果是root用户:sudo apt-get install zsh

确定zsh是否安装成功:zsh --version

更改自己的默认shell为zsh:sudo chsh -s $(which zsh)

重启一下,就可以进行第二步了

普通用户

如果没有sudo权限,那就只能自己手动编译安装了=。=

## 下载源码
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
## 解压
xz -d zsh.tar.xz ## 解压xz文件,提示xz命令不存在的话安装一下xz
tar -xvf zsh.tar ## 解压tar文件
./configure --prefix=$HOME/usr/ # 进入到有./configure文件下开始编译。prefix后面跟的目录可以自定义的
make
make install

2. 安装oh-my-zsh

oh-my-zsh其实已经很成熟了,也具有丰富的生态,开发者们根据自己的需要创建了许多的插件~

安装方法有两种:

  1. 直接安装:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
or:
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

一般这种方法就能直接安装好,奈何网络原因,一直失败,于是我使用了第二种方法:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh 

注: 1. 克隆后将templates目录下的zsh配置文件拷贝至~/.zshrc即可,就是先把.oh-my-zsh/templates/xxx 文件拷贝到家目录,然后改名为.zshrc
2. .oh-my-zsh一定要在$HOME下( ~ 下)
3. 注意这句命令的oh-my-zsh前面有.

3. 设置zsh为默认shell

如果有sudo权限,那么在第一步就可以完成,如果没有,那就得想别的办法。

我这里用了比较偷懒的方法,可以直接在.bashrc中加一行zsh使得登录bash后自动切换为zsh。

由于我这台服务器默认是sh,甚至想要切换到bash都要手动敲一下bash。于是我找到了它的.profile文件,在最后一行加了句:zsh

4. 安装常用的插件

安装完oh-my-zsh后,就可以看看丰富的插件了!

通过编辑.zshrc可以自定义主题和插件

我本人喜欢的主题是:

ZSH_THEME="agnoster"  # 找到.zshrc文件中这一行就可以自己修改了,最猛的是可以改成random,每次登录都会随机一个主题~

我习惯的插件:

plugins=(git
tmux
extract
rand-quote
z
vi-mode
zsh-syntax-highlighting
zsh-autosuggestions
)

改完这个文件保存一下,重启一下shell就能使用了,BUT,由于后面两个插件不是oh-my-zsh自带的,所以需要自己手动安装,安装就是clone一下这两个仓库,其实很方便:

git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions   #这个插件就是能智能补全你的命令
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting #这个插件是能够高亮你在shell里输入的所有命令,如果是正确的,命令呈现绿色,如果是红色,那么说明你输的有问题

这个就是有绿色的高亮也有灰色的智能联想:

关于zsh的各种快捷键实在是太多了,可以想用时查找,在使用git时也十分方便,建议大家都用起来哦!

参考文章

https://www.jianshu.com/p/e91e3dfbb6fd

https://www.niconya.com/bv/e207/

最新文章

  1. MPlayer-2016 最新版本
  2. 三星Mega 6.3(i9200)删除kingroot
  3. python(22)总结下最近遇到的编码问题
  4. 驱动笔记 - IO端口和IO内存
  5. 解决VS2008打开假死或者打开设计模式假死的问题
  6. wildcard
  7. CentOS启动报错:Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block
  8. jz2440 环境搭建遇到的问题
  9. IOS9新特性之Contacts联系人
  10. Hadoop之HDFS及NameNode单点故障解决方案
  11. java优雅的使用elasticsearch api
  12. iOS音频播放、录音、视频播放、拍照、视频录制
  13. 浅析mongodb
  14. oracle参数MEMORY_TARGET太小无法启动的解决过程
  15. 自动化测试如何使用driver.findElements去操作页面元素
  16. 上传文件报错--Unable to find 'struts.multipart.saveDir' property setting.
  17. Java 多个文件压缩下载
  18. 云游戏真的来了,这次的搅局者是 Google,云游戏平台搭建
  19. keepalived之单播----k8sHA准备
  20. 2013-2014 ACM-ICPC Brazil Subregional Programming Contest 题解

热门文章

  1. PerfView专题 (第九篇):洞察 C# 中的 LOH 内存碎片化
  2. 渗透攻防Web篇-深入浅出SQL注入
  3. Math_Music
  4. 【Java】学习路径53-InetAdress获取服务器ip
  5. 【java】学习路径25-ArrayList类,Vector类,LinkedList类的使用和区别,Iterator迭代器的使用
  6. KingbaseES V8R6C5B041 sys_backup.sh单实例备份案例
  7. 理解virt、res、shr之间的关系(linux系统篇)
  8. .Net 7 C#11 原始字符串
  9. 聊聊SQL注入
  10. Linux+Wine运行QQTIM (2022年9月)