Ubuntu上无sudo权限,安装zsh、on-my-zsh及其插件

一般linux自带的bash不是非常好用,大部分人会选择使用zsh,并利用一些开源zsh插件来使得自己的命令行更加便用 (e.g., 高亮、自动补全)。如果是自己用的本地机器,用户是root或者sudo,那么zsh的安装会非常便捷;反之,则会变得很困难,原因在于需要自己编译安装zsh,并手动配置环境变量,而且遇到环境依赖,也只能自己手动解决依赖。由于没有权限,也只能安装在自己的usr目录下。

首先,感谢下面这些博客。这些博客各自都有一些问题,本篇博客主要基于这些博客进行总结改进:

1. 安装ncurses-devel

由于configure需要ncurses的依赖,直接安装zsh的话会遇到如下报错:

configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'.  You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your
system."
See `config.log' for more details

因此需要提前安装和配置ncurses,首先编辑bashrc文件:

vim ~/.bashrc

添加如下环境变量:

export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export NCURSES_HOME=$HOME/ncurses  # 你自己的 ncurses 目录
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"

添加之后记得刷新bash:

source ~/.bashrc

之后下载安装ncurses

cd ~ && mkdir ncurses && cd ncurses  # 新建一个ncurses的安装目录,记得路径和环境变量对应
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.1.tar.gz  # 下载ncurses-6.1
tar -xzvf ncurses-6.1.tar.gz  # 解压
cd ncurses-6.1
./configure --prefix="$HOME/ncurses" --with-shared --without-debug --enable-widec  # 指定路径configure
make && make install  # 安装

2. 安装zsh

先进入自己的home/usr目录下,新建一个空目录:

cd ~
mkdir -p Applications/zsh-5.7.1 && cd Applications/zsh-5.7.1

下载zsh,此处以5.7.1为例,也可以在这里找到其他版本的下载链接:

wget -O zsh.tar.xz https://ftp.osuosl.org/pub/blfs/conglomeration/zsh/zsh-5.7.1.tar.xz

解压tar.xz包:

xz -d zsh.tar.xz && tar -xvf zsh.tar

之后需要手动编译安装zsh:

cd zsh-5.7.1
# 生成Makefile
./configure --prefix=$HOME/Applications/zsh-5.7.1
# 编译安装
make && make install

最后配置zsh的环境变量:

vim ~/.bashrc
# 添加以下内容
export PATH=$HOME/Applications/zsh-5.7.1/bin:$PATH
# 刷新bash
source ~/.bashrc

至此,zsh成功安装完毕。但由于zsh是手动安装在自己的home目录下,所以没有根目录的文件修改权限,进而也没有办法使用chsh -s /bin/zsh将zsh设置为默认shell。

因此,每次登录服务器之后,需要使用命令zshexec zsh手动切换bash为zsh。或者通过设置bash_profile,后面会讲

如果出现zsh的手动配置选项,选2就行:
在这里插入图片描述

3. 安装oh-my-zsh

按照官网的命令直接安装:

# 使用以下两种方法之一安装
# 1. wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 2. curl
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果是在国内,则使用如下命令:

git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh 
# 注:
# 1. 克隆后将templates目录下的zsh配置文件拷贝至~/.zshrc即可
# 2. .oh-my-zsh一定要在$HOME下( ~ 下)

4. 配置zsh插件

oh-my-zsh最强大的功能,在于其各种各样的用户友好插件,可以极大帮助用户提高shell使用效率。这里推荐几个:

4.1 last-working-dir & z & extract

last-working-dirextractz都是zsh自带的插件。 last-working-dir能记录上一次退出terminal时的工作路径,下一次登录时,自动进入该路径。而z是模糊版的cd,能够把用户输入的目录,进行模糊匹配(扩展成完整路径),从而减少输入完整路径所消耗的时间。extract是通用易用的解压软件,可以用来代替繁琐的tar命令。

vim ~/.zshrc

plugins属性中添加last-working-dirextractz:

plugins=(
  last-working-dir
  z
  extract
 )

生效

source ~/.zshrc

4.2 zsh-syntax-highlighting

第三方插件,提供非常漂亮的高亮效果。首先,下载插件:

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

之后,将插件添加入plugins,让zsh随后能够自动加载:

vim ~/.zshrc
# 在plugins中添加
plugins=(
  zsh-syntax-highlighting
 )
# 记得最后加一行激活zsh文件
source $ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

最后生效:

source ~/.zshrc

注意,直接在命令行里plugins=(zsh-syntax-highlighting)的做法,在ubuntu上是不生效的。但在其他linux系统上是可行的。

4.3 zsh-autosuggestions

第三方插件,可以根据用户输入命令的历史,提供补全命令的建议,使用->方向键补全。

和一样,也是先git clone

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

之后加入到zshrcplugins里面去:

vim ~/.zshrc
# 在plugins中添加
plugins=(
  zsh-autosuggestions
 )
# 记得最后加一行激活zsh文件
source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

最后生效:

source ~/.zshrc

4.4 Thefuck

没错,这个插件就叫fuck

适用于bash和zsh,用于命令行纠错,当用户输入一条错误的命令之后,骂一句fuck,其就会给出一个修改建议。如下所示:
在这里插入图片描述
安装方法的话很简单,直接pip安装,记得修改zshrc:

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

5. 设置zsh为默认shell

实际上没有办法做到这点,每次登陆服务器都需要手动输入exec zsh来切换,但是可以让bash初始化的时候自动执行exec zsh,来实现所谓的默认shell。

vim ~/.bash_profile

# 添加如下,根据自己的zsh编译安装路径修改
exec $HOME/Applications/zsh-5.7.1/bin/zsh -l

之后可以重新打开一个terminal验证一下。

6. 更换主题

vim ~/.zshrc

笔者喜欢修改主题为agnoster,当然也可以选择其他主题,亦可以选择random(每次打开终端,选择随机一个主题,可以用来试用所有主题,挑选心仪的那个):

ZSH_THEME="agnoster"
 source ~/.zshrc

7. 总结

可以使用自行编译安装的方法,安装zsh,oh-my-zsh,并通过更改bash-profile将zsh设置为默认启动的shell。oh-my-zsh还支持各种友好的插件,常用插件如下(另外,还有thefuck):

plugins=(git
 zsh-autosuggestions
 zsh-syntax-highlighting
 autojump  ## 如果没sudo权限,装起来也很麻烦,好消息是可以用z替代
 z
 extract
 last-working-dir
)

推荐的主题为"agnoster";主机、用户名太长,还可以选择隐藏,建议服务器上隐藏用户名、显示主机名,本地显示用户名、隐藏主机名,详见博客无 root 或 sudo 权限安装 zsh


可以直观比较一下bash和zsh (安装插件之后):

  • bash
    在这里插入图片描述
  • zsh
    在这里插入图片描述
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 1. 首先,需要安装zsh。在终端中输入以下命令: sudo apt-get install zsh 2. 安装完成后,输入以下命令安装oh-my-zsh: sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 3. 安装完成后,需要将zsh设置为默认shell。输入以下命令: chsh -s /bin/zsh 4. 重启终端,即可开始使用oh-my-zsh。 ### 回答2: 在安装 Oh-My-Zsh 之前,需要确保已经在 Ubuntu 安装了 Git。如果没有安装,可以通过以下命令安装sudo apt-get install git 然后可以使用以下命令来安装 Oh-My-Zsh: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 运行命令后,终端会在几秒钟内自动安装 Oh-My-Zsh,并提示您选择是否将其设置为默认 shell。如果希望将其设置为默认 shell,则需要输入 Y。 安装完成后,可以通过打开 ~/.zshrc 文件来编辑 Oh-My-Zsh 配置。可以添加自己的主题、件以及自定义别名等等。 推荐使用 Powerlevel10k 主题,这是一个非常流行的 Shell 主题,支持多种显示特效选项,样式非常美观,并且可配置性极高,可以根据自己的喜好进行配置。 可以通过以下命令来下载 Powerlevel10k 主题: git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k 然后将主题添加到 .zshrc 文件中: echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc 最后,重新启动终端,即可看到 Oh-My-Zsh 的主题已经生效了,同时也可以使用终端中的更多功能和快捷方式了。 ### 回答3: Oh-my-zsh是一款提供增强了的终端功能和个性化定制的Shell使用工具,它基于Zsh开发,提供了丰富的主题和件让我们可以方便地使用终端。 安装oh-my-zsh通常需要在终端中运行一系列命令: 1.打开终端,输入以下命令安装Zshsudo apt-get install zsh 2.安装Git: sudo apt-get install git 3.下载oh-my-zsh: wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh 4.设置oh-my-zsh为默认shell: chsh -s /bin/zsh 5.退出当前终端,并重新打开一个新的终端窗口,当看到欢迎界面出现后,表示oh-my-zsh安装成功。 如果你想自定义oh-my-zsh,可以编辑~/.zshrc文件。该文件包含了oh-my-zsh的配置信息。你可以通过更改配置信息来定制自己的终端。 如果你想添加主题或件,可以在oh-my-zsh的主题和件目录下添加自己的主题或件。主题和件都以git仓库的形式存在,所以您需要克隆相应的仓库到相应目录下。 安装oh-my-zsh可能需要一些时间,但是它提供了一些很有用的功能。无论你是要解决日常的问题还是进行开发工作,在你的终端上使用oh-my-zsh将会让你得到更高效的工作方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值