无root权限的Linux服务器下安装zsh和oh-my-zsh


目前常用的Linux系统和OS X系统默认的shell都是bash,但 zsh才是shell中的极品,它具有色彩高亮、智能补全、命令提示等优点,使我们工作更专注于内容,而不是专注于命令是否错误。但 zsh的配置太复杂,让许多开发人员望而却步。直到Github上 oh-my-zsh项目的出现, zsh的配置才变得简单并易于管理,我们可以使用数百个功能强大的插件和精美的主题。

1.存在问题

  • 没有root权限,无法使用aptyum等包管理工具,需要自行解决安装中的依赖问题。
  • 没有root权限,无法修改登录的默认shell。

2.解决思路

  1. /home你的目录下编译安装zsh
  2. PATH环境变量添加zsh的安装目录。
  3. exec zsh切换到zsh中。(可以参考 官方推荐方式 中的1.7修改启动脚本~/.profile,从而将zsh设置为默认shell。[需要注意的是,如果修改.profile文件失误,再次登录shell是会出现连接不上服务器的情况,慎重!!!]
  4. 无root权限安装oh-my-zsh
  5. 根据自己的需求管理zsh配置文件。

3.安装zsh

# 位置自定义,只要在自己的home目录下,版本对应
mkdir Applications
mkdir Applications/zsh-5.7.1
  • 3.下载源码
# wget下载源码并将压缩包命名为 zsh.tar.xz
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
  • 4.解压
# 将.xz文件解压成tar文件 ---> zsh.tar
xz -d zsh.tar.xz
# tar解压
tar -xvf zsh.tar
  • 5.配置与编译
# 解压后生成 zsh-5.7.1 文件夹,与版本相关
cd zsh-5.7.1

# 配置 --prefix选项指定安装目录
./configure --prefix=$HOME/Applications/zsh-5.7.1

# 编译与安装
make
make install

配置时存在问题: configure错误.
缺少curses或ncurses的库
解决方法: 手动安装ncurses-devel.

# 1.为 ncurses-devel 编译设置一些编译选项
vim ~/.bashrc
# 在 ./bashrc中添加以下内容, :wq退出
export CXXFLAGS=" -fPIC"
export CFLAGS=" -fPIC"
# source 命令使改动生效
source ~/.bashrc

# 2.安装 ncurses-devel
# 下载
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
# 解压
tar -zxvf ncurses-6.1.tar.gz
# 配置
mkdir Applications/ncurses-6.1
cd ncurses-6.1
./configure --prefix=$HOME/Applications/ncurses-6.1 --with-shared
# 编译与安装
make
make install

# 3.配置环境变量
vim ~/.bashrc
# 添加以下内容
export NCURSES_HOME=$HOME/Applications/ncurses-6.1
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOMEb:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOMEb"
# source
source ~/.bashrc

返回zsh的配置阶段,配置并编译安装。

cd ~/zsh-5.7.1
./configure --prefix=$HOME/Applications/zsh-5.7.1
make
make install
  • 6.PATH环境变量中配置zsh
vim ~/.bashrc
# 添加以下内容
export PATH=$HOME/Applications/zsh-5.7.1/bin:$PATH
# source
source ~/.bashrc

4.安装oh-my-zsh

# 根据 github 上的 README 操作
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

5.根据自身需求配置zsh

Looking for an existing zsh config…
Using the Oh My Zsh template file and adding it to ~/.zshrc.

  • 通过~/.zshrc配置插件(plugins)和主题(themes)
    ~/.oh-my-zsh/plugins:oh-my-zsh官方插件目录。
    ~/.oh-my-zsh/custom/plugins:路径存放第三方插件。
# 列出 oh-my-zsh 中所有的主题
cd ~/.oh-my-zsh/themes && ls
# 列出 oh-my-zsh 中所有的插件
cd ~/.oh-my-zsh/plugins && ls

# 我的配置
vim ~/.zshrc
# ---- 修改插件和主题内容保存----
plugins=(
  git
  pip
  last-working-dir
 )
ZSH_THEME="agnoster"
# 生效
source ~/.zshrc
  • 插件推荐
  1. last-working-dir:记录退出终端时所在路径,再次打开终端还在这个路径。
  2. zsh-syntax-highlighting:第三方插件,用于终端输入命令的语法高亮。
# 1.Clone this repository in oh-my-zsh's plugins directory --> ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 2.Activate the plugin in ~/.zshrc
plugins=(其他插件 zsh-syntax-highlighting)

3.zsh-autosuggestions:第三方插件,历史记录建议,按Tab键补全。

# 1.Clone this repository into $ZSH_CUSTOM/plugins (by default ~/.oh-my-zsh/custom/plugins)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 2.Add the plugin to the list of plugins for Oh My Zsh to load (inside ~/.zshrc)
plugins=(其他插件 zsh-autosuggestions)

4.z:类似autojump功能的oh-my-zsh内置插件,用于目录之间的快速跳转。按照z [-cehlrtx] args这样的格式使用。
5.Thefuck:适用于bash,zsh等,命令行纠错工具,命令出错时,输入fuck纠正。

# 1.install
pip install thefuck
# 2.在~/.bashrc,~/.zshrc等中配置
#编辑bashrc配置文件
vim ~/.bashrc
#在文件尾加入一行
eval "$(thefuck --alias fuck)"
#使生效
source ~/.bashrc

参考:
[1] 不使用root权限安装zsh和oh-my-zsh
[2] 在没有sudo权限的Linux服务器下安装oh-my-zsh

oh-my-zsh 是一个开源的、社区驱动的 zsh 配置管理框架,它提供了一系列的插件、主题和自定义选项,使得用户可以轻松地定制和管理自己的 zsh 终端环境。它旨在提供一个更强大、更易用的终端工具。 而 oh-my-zsh-git 是 oh-my-zsh 在 GitHub 上的一个 fork 版本,它基于原版的 oh-my-zsh,对其进行了一些修改和扩展。oh-my-zsh-git 主要的目的是为了扩展和增强原版 oh-my-zsh 的功能,并从社区中收集和整合更多的插件和主题。 具体来说,oh-my-zsh-git 与 oh-my-zsh 的区别主要体现在以下几个方面: 1. 功能扩展:oh-my-zsh-git 在原版 oh-my-zsh 的基础上增加了一些功能和工具,使得终端使用起来更加方便和高效。 2. 插件和主题:oh-my-zsh-git 提供了更多的插件和主题选项,且会持续更新和增加。用户可以根据自己的需求选择和使用不同的插件和主题。 3. 扩展性:oh-my-zsh-git 更加注重可扩展性,用户可以自定义添加新的插件和主题,或者根据自己的需要修改现有的插件和主题。 4. 社区支持:oh-my-zsh-git 的社区活跃度较高,用户能够得到更多的帮助和支持,同时也能够贡献自己的代码和改进。 综上所述,oh-my-zsh-git 是在 oh-my-zsh 基础上进行的一些改进和扩展,提供了更多的插件和主题选项,同时注重用户的自定义和扩展能力。用户可以根据自己的需求选择采用哪个版本。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值