编译安装oh-my-zsh
1.前言
oh-my-zsh是基于zsh的一套美化工具,其内部也提供很多主题以及插件。github介绍
2.有啥用
对我来说可能查看git分支更加直观,另外其强大的补全功能
又或者更加直观的查看上一条命令的返回值是否为0
当然这点功能只能算冰山一角,还有很多功能值的探索,其不只是一个美化工具也是可以提升工作效率的利器!
3.如何安装
由于是在公司服务器上我没有root权限和sudo权限,所以只能采取编译安装的办法。
oh-my-zsh依赖 zsh,而zsh 依赖与 ncurses,所以首先编译安装ncurses。
3.1 编译安装ncurses
在编译前需要导入一些环境变量,导入环境变量的作用是后续编译zsh的时候能够找到ncurses链接库
export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export NCURSES_HOME=$HOME/.local # 你自己的 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"
可以将其写入到 ~/.bashrc
中,然后source ~/.bashrc
一下。
开始下载编译
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.1.tar.gz # 下载ncurses
tar -xzvf ncurses-6.1.tar.gz # 解压
cd ncurses-6.1
./configure --prefix=$HOME/.local/ --with-shared --without-debug --enable-widec # 指定路径configure
make -j4 && make install
编译安装成功后会在 家目录下的.local
文件夹下,bin目录下是可执行文件,lib目录下存放供zsh使用ncurses的链接库,还有一些头文件放在include文件夹下,可供开发使用,不过这些都不需要care。
3.2 编译安装zsh
wget https://jaist.dl.sourceforge.net/project/zsh/zsh/5.9/zsh-5.9.tar.xz
tar -xvf xvf zsh-5.9.tar.xz
cd zsh-5.9
./configure --prefix=$HOME/.local/ # --prefix是指定编译安装后的目录,也就是最终编译成功后会安装在 $HOME/.local/bin 目录
make -j4 && make install
由于 $HOME/.local/bin
目录默认在 PATH 环境变量中,所以此时输入 zsh 是可以调用到编译好的zsh的
到此 zsh 和 ncurses 都已编译安装成功
3.2 安装 oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
等待安装成功
此时会自动进入zsh,下次启动输入 zsh 即可进入。
4.更换oh-my-zsh主题
oh-my-zsh 有很多主题,其可以在 $HOME/.oh-my-zsh/themes
看到:
其主题更换,可以修改 $HOME/.zshrc
文件内容
如我这里用的主题配置的是agnoste
5.启动自动进入zsh
这里互联网上一般使用 chsh命令来更换默认shell, 但是对于没有root 权限,或者不想修改全局配置的用户来说显然是不好的。
所以这里采用 修改$HOME/.bashrc
文件, 在最后一行加入 zsh
就可以了, 这个文件的作用就是每次shell启动的时候就会自动执行,所以每次ssh连接进入的时候就会自动进入 zsh
6.其它安装软件的方式
由于apt 安装软件需要root权限,所以可以采用 apt download deb,然后解压deb包,最后再将 加压的文件放到 .local
目录下即可
例如 安装 htop
apt download htop
dpkg-deb --fsys-tarfile htop_2.1.0-3_amd64.deb | tar xvf - # 解压deb
cp -r ./usr/* .local # 将解压出来的usr目录下的所有文件夹以及文件 复制到.local下
这种安装方式适合依赖少的软件,如果依赖多就需要下载多个deb包,然后移动到对应目录,这种方法相较于编译安装还是方便了不少
最新文章
- 什么是BFC?(转载)
- SSL/TLS协议运行机制的概述
- MySQL Database on Azure 参数设置
- SQL Server 2008 数据库通过镜像同步备份(数据库热备)
- JS微信分享不好写?来封装一下
- php如何控制用户对图片的访问 PHP禁止图片盗链(转载)
- javascript异步加载详解(转)
- TIMESTAMP和DATETIME的区别
- Windows 8.1 IIS 8.5 远程管理 Windows 2008 R2 IIS 7.0
- ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)
- Visual Studio Package 插件开发之自动生成实体工具
- 前端页面JS和CSS以及图片加载nginx报错:net::ERR_CONTENT_LENGTH_MISMATCH的解决与检查
- Linux防火墙开放端口
- [原创]Delphi XE10 dxLayoutControl 控件应用指南
- Git撤销&;回滚操作
- SqlServer中 将某个表的某个字段改个默认值
- sql --- where concat
- spring boot 中用@value给static变量赋值
- 为什么要把session存入数据库
- Linux:数据库服务(Mysql安装及链接、远程链接、genelog)
热门文章
- 2021年3月-第02阶段-前端基础-Flex 伸缩布局-移动WEB开发_流式布局
- SpringSecurity基本使用
- 官方文档----ProxySQL 1.4.2 现在支持原生集群!!!
- 在 Traefik 中使用 Kubernetes Gateway API
- Elasticsearch: Cerebro 用户界面介绍
- Elasticsearch集群管理之添加、删除节点
- 第六章:Django 综合篇 - 4:django-admin和manage.py
- 黑马程序员关于MongoDB的教程
- 关于在Linux上安装aws cli版本1的记录
- C++面向对象编程之转换函数、explicit、one-argument