目标:因为用习惯了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. springboot中,子项目的boot依赖全部爆红

    应仔细检查父项目的dependencyManagement是否指定了打包方式<type>为pom,<scope>为import

  2. hadoop项目之求出每年二月的最高气温(Combiner优化)

    hadoop项目之求出每年二月的最高气温(Combiner优化) 一.项目结构 一.java实现随机生成日期和气温 package com.shujia.weather; import java.io ...

  3. rh358 004 bind反向,转发,主从,各种资源记录 unbound ansible部署bind unbound

    通过bind实现正向,反向,转发,主从,各种资源记录 7> 部署反向解析 从ip解析到fqdn vim /etc/named.conf zone "250.25.172.in-addr ...

  4. Linux 压缩、解压缩命令

    Linux 压缩.解压缩命令 tar 语法命令 tar [options-] [files] options: 选择 描述 -A 追加tar文件至归档 -c 创建一个新文档 -d 找出归档和文件系统的 ...

  5. 记一次Linux光盘救援

    最近遇到一个zz把/etc/profile改坏了导致系统起不来,所以复习一下光盘救援 工具:vm-workstation,centos6 原系统盘起不来后,插入有救援工具的系统盘后 按照提示进入she ...

  6. C/C++内存泄漏检测方法

    1. 内存泄漏 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果. 2. 检测代码 使用链 ...

  7. Python 第四次实验

    1.(程序设计)定义函数def GetRandomChar(),返回一个随机的数字或大写或小写字母,每个符号出现的机会相等.调用该函数8次,生成并输出一个8位的验证码.用户输入该验证码,如果验证码正确 ...

  8. docker学习笔记一-docker安装与卸载

    环境查看 # 1 查询当前centOS的版本,官方要求版本为7以上 uname -r 查询系统内核 cat /etc/os-release 系统版本 安装 # 1.卸载旧版本 yum remove d ...

  9. 导出DNS服务器上的记录

    近日遇到一个需求,需要将DNS服务器上的所有记录都导出. 试了一下,如果从DNS管理单元里直接选择导出列表,那么子域的DNS记录是不会被导出的.这样显然不行,需要寻找其它方法.本来想用Export-D ...

  10. 使用kubeoperator安装k8s集群时自带的traefik-ingress-controller

    前提 承接上一篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/15740596.html traefik-ingress-controller和nginx-ing ...