在离线无管理员权限的情况下为Linux配置oh-my-zsh(zsh+oh my zsh+powerlevel10k)
0. 前言
最近接触到一台离线环境下的Linux(CentOS7),自带的终端实在过于丑陋(tcsh),但是搜半天改zsh的教程要么要网、要么要管理员权限,奋而自己折腾半天记录于此以作备忘。
所需环境
- 一台能连接网络的电脑(Windows/Linux均可,无需管理员权限),需配置有git,我这里以Windows为例,Linux应该更简单
- 需要配置的无网无管理员权限的Linux,需配置有CMake
参考链接,侵删
Linux 以非root用户安装zsh&配置on my zsh
0.5 预备
如前文言,我们可能会从windows下载文件传输到Linux上,但是这里就会有一个众所周知的问题,那就是行尾问题,具体而言就是执行脚本的时候可能会报no Command ^M
的错误,解决方法就是跑一遍find ./ -type f -exec dos2unix -f {} \;
1. 安装zsh
现在Windows上找个位置建立一个文件夹并打开
mkdir zsh
在这个文件夹安装最新版的zsh:地址,或者使用wget
手动安装:
wget https://sourceforge.net/projects/zsh/files/latest/download/zsh-XXX.tar.xz
(xxx换成最新的版本号)
下载下来是一个.tar.xz
压缩包,传送到Linux上,解压编译安装
./configure --prefix=$HOME/zsh #表示安装到家目录中的zsh文件夹下,可以自己设置想要的路径
make && make install
然后添加环境变量
export PATH=$HOME/zsh/bin:$PATH
# 这里需要修改成你安装的路径
这个是bash
版本,大部分人默认终端应该是这个,如果你和我一样默认是tcsh
,那就这么设:
setevn PATH ${HOME}/zsh/bin:${PATH}
如果不知道自己是哪个终端,就查看:
echo $0
然后在~/.cshrc
(bash
的话是~/.bashrc
)末尾添加:
# tcsh用这个
[-f ${HOME}/zsh/bin/zsh ] && exec ${HOME}/zsg/bin/zsh
# bash用这个
[-f $HOME/zsh/bin/zsh ] && exec $HOME/zsg/bin/zsh
这个时候你输入zsh
或者重新开一个终端应该就会切换到zsh
,这时候你想要切换终端回去的话会发现输入你以前的终端名称是切不过去的,那是因为上面改的文件每次打开终端都会跑一遍,跑到最后的exec zsh
自然又切回zsh
了,解决方法是使用-f
参数,也就是bash -f
,这样就可以跳过那个文件打开终端,用完了再Ctrl + D
关闭即可。
另外,如果你用的是tcsh
,并在~/.cshrc
中声明过别名(alias
),那么好像这里不能直接用,要在.zshrc
里手动加上去。
这个时候重新开启一个终端,键入echo $0
,不出意外的话应该自动打开了zsh
。
2. 安装oh my zsh
官网上提供了很多种安装方法,但是基本都是自动化执行脚本,由于我们这既没网又没管理员,我们还是选择git
手动安装。
首先我们需要在Windows下找个地方执行git clone
:
git clone git://github.com/robbyrussell/oh-my-zsh.git ./.oh-my-zsh
然后将这个文件夹传到Linux上,放在~/.oh-my-zsh
,注意一定要在~
下,然后将template
下的配置文件拷贝到~/.zshrc
。
然后添加两个插件,一个是zsh-syntax-highlighting,一个是zsh-autosuggestions,类似的,先在windows下下载:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
git clone https://github.com/zsh-users/zsh-autosuggestions
如何将下载下来的东西打包传送到Linux上,拷贝到如下目录下:
${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-syntax-highlighting
${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-autosuggestions
然后修改~/.zshrc
:
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
另外可以看到刚刚那个目录下还预装了一大堆插件,这里建议启用z
,可以实现快速文件夹跳转,直接跳到打开过的文件夹,由于我这里使用了svn
,因此把svn
相关的也启用了。
最后source ~/.zshrc
3. 安装powerlevel10k
oh my zsh有很多主题,这里有一个主题的受欢迎排名,我就选择了powerlevel10k(这个链接是官方安装教程),主要奔着显示指令cost时间去的。
首先我们要安装扩展字体,下载这四个字体,你也可以下载别的Nerd Font:
- MesloLGS NF Regular.ttf
- MesloLGS NF Bold.ttf
- MesloLGS NF Italic.ttf
- MesloLGS NF Bold Italic.ttf
下载好后放在~/.font
下,没有就自己创一个,然后再fc-cache -fv
刷新一下缓存,然后把终端环境的字体更换成我们刚刚的那个。
做好字体准备后安装主题,官方有一个离线安装的教程(链接),我是这样的:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git
同样地,Windows上下好后传过去:
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
然后打开~/.zshrc
,编辑:
ZSH_THEME="powerlevel10k/powerlevel10k"
然后重新打开终端,这个时候应该会出引导配置,一步步配置就行了,不过如果没网的话可能会出git状态初始化失败的错误,可以去配置里把打印错误的行删掉或者干脆关掉powerlevel10k里CVS
的插件。
4. 后记
没网没root,我折腾了半天才搞好这一套环境,这是根据回忆写的,难免有纰漏,有问题欢迎提。