目标:因为用习惯了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/

linux下搭建oh-my-zsh环境的更多相关文章

  1. LINUX下搭建JAVA的开发环境

    LINUX下搭建JAVA的开发环境 (2009-07-13 10:04:13)     下面就将Linux下JAVA开发环境的搭建详细道来: 1.Linux下JDK的安装 至于下载JDK的二进制可执行 ...

  2. Linux下搭建C/C++编程环境

    Linux下搭建C/C++编程环境 1.KDevelop下载 wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5. ...

  3. linux下搭建php的集成环境

    一个偶然的机会,在项目中需要搭建PHP的环境,由于PHP开发需要的东西比较多,像apache.mysql.PHP环境等,如果一个一个装很可能会有安装不全的问题,为此选择了安装集成环境,这里选择的是xa ...

  4. Linux下搭建FFmpeg开发调试环境

    背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可.但是如果你想调试FFmpeg内部相关的逻辑,或者 ...

  5. Linux下搭建asp.net运行环境

    最近有个项目,是在Windows平台下开发的,需要把 asp.net web应用移植到 CentOS下,甚是头疼: 翻阅资料,发现Jexus是个可行的方案,下面是官方对Jexus的定义: 什么是Jex ...

  6. Linux下搭建ruby on rails环境

    要搭建的东西:Ruby 1.8.7,Rails 2.3.8,rubygem 1.3.7 1.安装ruby sudo apt-get install ruby-full 2.安装rubygem sudo ...

  7. linux下搭建android NDK开发环境

      1)下载android-ndk-r4 下载地址 http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip http: ...

  8. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  9. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  10. Linux下搭建PHP环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

随机推荐

  1. Canvas 线性图形(三):曲线

    前言 画曲线要用到二次贝塞尔曲线或三次贝塞尔曲线.贝塞尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如 PhotoShop. 二次贝塞尔曲线 二次贝塞尔曲线在 ...

  2. 老梗新玩「GitHub 热点速览 v.22.34」

    作者:HelloGitHub-小鱼干 不知道你是否和我有一样的烦恼,最近的流行梗当自己要用拿来造词时,就陷入了不知道咋"换壳"的尴尬地步.sao-gen-gen 大大减少了你老梗新 ...

  3. 【java】学习路线10-权限修饰符详解

    /*关于修饰符:类:public default                public protected default privatesame class          √       ...

  4. OpenJudge 1.5.15 银行利息

    15:银行利息 总时间限制: 1000ms 内存限制: 65536kB 描述 农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇.已知投资的复合年利率为R(0到20之间 ...

  5. JUC锁:核心类AQS源码详解

    目录 1 疑点todo和解疑 2 AbstractQueuedSynchronizer学习总结 2.1 AQS要点总结 2.2 细节分析 2.2.1 插入节点时先更新prev再更新前驱next 2.2 ...

  6. Linux Netlink学习笔记

    参考链接:https://www.systutorials.com/docs/linux/man/7-netlink/ 1. 监听Netlink消息类型示例 Netlink是用户程序与内核通信的soc ...

  7. 详谈 MySQL 8.0 原子 DDL 原理

    柯煜昌 青云科技研发顾问级工程师 目前从事 RadonDB 容器化研发,华中科技大学研究生毕业,有多年的数据库内核开发经验. 文章字数 3800+,阅读时间 15 分钟 背景 MySQL 5.7 的字 ...

  8. 关于指针初始化为NULL的一些问题

    关于指针初始化问题,先看以下代码: #include <stdio.h>​typedef struct{   char data[128];   int top;​} Stack;​voi ...

  9. 2022第五空间-web部分wp+复盘总结

    打了一天,麻了,大佬tql,这次get到了不少东西,一是一个不太常见的宽字节注入,我是真的没想到,而且后面也是看了wp理解了好一会才弄明白. 0x01: 题目是一个登录框,但是基本上是过滤掉了所有的常 ...

  10. Pod原理

    Pod 是 Kubernetes 集群中最基本的调度单元,我们平时在集群中部署的应用都是以 Pod 为单位的,而并不是我们熟知的容器,这样设计的目的是什么呢?为何不直接使用容器呢? 为什么需要 Pod ...