网上看了一篇老外的文章,是在MAC下利用iTerm2+zsh+Powerlevel9k+Nerd Fonts 搞出来的酷炫终端,
图片是这样的:
是否是第一眼以为高、大、上,第二眼以为看上去有点晕。
若是你保持这种第一眼的认知,而苦于没有没有MAC,我告诉你,其实LINUX也能作出相似的效果javascript
实验利用UBUNTU+XSHELL终端实现(理论上其它发行版也能够)java
linux发行版大部分默认SHELL都是bash,而不是zsh,因此第一步安装zshjquery
z00w00@ubuntu-14:~$ sudo apt-get install zsh 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: zsh-common 建议安装的软件包: zsh-doc 下列【新】软件包将被安装: zsh zsh-common 升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 须要下载 2,721 kB 的软件包。 解压缩后会消耗掉 11.4 MB 的额外空间。 您但愿继续执行吗? [Y/n] y 获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main zsh-common all 5.0.2-3ubuntu6.3 [2,115 kB] 获取:2 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main zsh amd64 5.0.2-3ubuntu6.3 [606 kB] 下载 2,721 kB,耗时 4秒 (621 kB/s) 正在选中未选择的软件包 zsh-common。 (正在读取数据库 ... 系统当前共安装有 56150 个文件和目录。) 正准备解包 .../zsh-common_5.0.2-3ubuntu6.3_all.deb ... 正在解包 zsh-common (5.0.2-3ubuntu6.3) ... 正在选中未选择的软件包 zsh。 正准备解包 .../zsh_5.0.2-3ubuntu6.3_amd64.deb ... 正在解包 zsh (5.0.2-3ubuntu6.3) ... 正在处理用于 man-db (2.6.7.1-1) 的触发器 ... 正在设置 zsh-common (5.0.2-3ubuntu6.3) ... 正在设置 zsh (5.0.2-3ubuntu6.3) ... update-alternatives: using /bin/zsh5 to provide /bin/zsh (zsh) in 自动模式 update-alternatives: using /bin/zsh5 to provide /bin/rzsh (rzsh) in 自动模式 update-alternatives: 警告: 跳过建立 /usr/share/man/man1/rzsh.1.gz 由于所关联文件 /usr/share/man/man1/zsh.1.gz (位于连接组 rzsh)不存在
如今咱们把默认用户的SHELL改掉linux
z00w00@ubuntu-14:~$ chsh -s /bin/zsh 密码: z00w00@ubuntu-14:~$ cat /etc/passwd |grep z00w00 z00w00:x:1000:1000:z00w00,,,:/home/z00w00:/bin/zsh
z00w00@ubuntu-14:~$ sudo apt-get install git 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: git-man liberror-perl 建议安装的软件包: git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-bzr git-cvs git-mediawiki git-svn 下列【新】软件包将被安装: git git-man liberror-perl 升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 须要下载 3,394 kB 的软件包。 解压缩后会消耗掉 22.0 MB 的额外空间。 您但愿继续执行吗? [Y/n] y 获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main liberror-perl all 0.17-1.1 [21.1 kB] 获取:2 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main git-man all 1:1.9.1-1ubuntu0.8 [701 kB] 获取:3 http://cn.archive.ubuntu.com/ubuntu/ trusty-updates/main git amd64 1:1.9.1-1ubuntu0.8 [2,672 kB] 下载 3,394 kB,耗时 6秒 (522 kB/s) 正在选中未选择的软件包 liberror-perl。 (正在读取数据库 ... 系统当前共安装有 57218 个文件和目录。) 正准备解包 .../liberror-perl_0.17-1.1_all.deb ... 正在解包 liberror-perl (0.17-1.1) ... 正在选中未选择的软件包 git-man。 正准备解包 .../git-man_1%3a1.9.1-1ubuntu0.8_all.deb ... 正在解包 git-man (1:1.9.1-1ubuntu0.8) ... 正在选中未选择的软件包 git。 正准备解包 .../git_1%3a1.9.1-1ubuntu0.8_amd64.deb ... 正在解包 git (1:1.9.1-1ubuntu0.8) ... 正在处理用于 man-db (2.6.7.1-1) 的触发器 ... 正在设置 liberror-perl (0.17-1.1) ... 正在设置 git-man (1:1.9.1-1ubuntu0.8) ... 正在设置 git (1:1.9.1-1ubuntu0.8) ...
它是基于 zsh 命令行的一个扩展工具集,驱动的命令行工具,提供了主题配置c++
z00w00@ubuntu-14:~$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" Cloning Oh My Zsh... 正克隆到 '/home/z00w00/.oh-my-zsh'... remote: Counting objects: 898, done. remote: Compressing objects: 100% (754/754), done. remote: Total 898 (delta 25), reused 731 (delta 17), pack-reused 0 接收对象中: 100% (898/898), 595.72 KiB | 107.00 KiB/s, done. 处理 delta 中: 100% (25/25), done. 检查链接... 完成。 Looking for an existing zsh config... Using the Oh My Zsh template file and adding it to ~/.zshrc Time to change your default shell to zsh! 密码: __ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ ....is now installed! 。。。省略部分
注意这个明显表示提示符发生变化git
➜ ~ mkdir -p Library/Fonts ➜ ~ cd ~/Library/Fonts ➜ Fonts pwd /home/z00w00/Library/Fonts ➜ Fonts curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.ot f % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 213 100 213 0 0 124 0 0:00:01 0:00:01 --:--:-- 124 100 2157k 100 2157k 0 0 142k 0 0:00:15 0:00:15 --:--:-- 275k ➜ sudo apt-get install ttf-mscorefonts-installer 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: cabextract fonts-liberation libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils 下列【新】软件包将被安装: cabextract fonts-liberation libfontenc1 libxfont1 ttf-mscorefonts-installer x11-common xfonts-encodings xfonts-utils 升级了 0 个软件包,新安装了 8 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 须要下载 2,208 kB 的软件包。 解压缩后会消耗掉 4,358 kB 的额外空间。 您但愿继续执行吗? [Y/n] y 。。。省略 ➜ Fonts mkfontscale ➜ Fonts mkfontdir ➜ Fonts sudo apt-get install fontconfig 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: fontconfig-config fonts-dejavu-core libfontconfig1 下列【新】软件包将被安装: fontconfig fontconfig-config fonts-dejavu-core libfontconfig1 升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。 须要下载 1,371 kB 的软件包。 解压缩后会消耗掉 4,406 kB 的额外空间。 您但愿继续执行吗? [Y/n] y 。。。 省略 ➜ ~ git clone https://github.com/bhilburn/powerlevel9k.git ~/powerlevel9k 正克隆到 '/home/z00w00/powerlevel9k'... remote: Counting objects: 6938, done. remote: Compressing objects: 100% (5/5), done. remote: Total 6938 (delta 0), reused 2 (delta 0), pack-reused 6933 接收对象中: 100% (6938/6938), 1.94 MiB | 8.00 KiB/s, done. 处理 delta 中: 100% (4440/4440), done. 检查链接... 完成。 ➜ Fonts fc-cache -fv ./ /home/z00w00/Library/Fonts: caching, new cache contents: 1 fonts, 0 dirs /home/z00w00/Library/Fonts: caching, new cache contents: 1 fonts, 0 dirs /var/cache/fontconfig: not cleaning unwritable cache directory /home/z00w00/.cache/fontconfig: cleaning cache directory /home/z00w00/.fontconfig: not cleaning non-existent cache directory fc-cache: succeeded
以上咱们作的zsh和oh-my-zsh都是给这个ZSH主题作基础github
➜ ~ git clone https://github.com/bhilburn/powerlevel9k.git ~/powerlevel9k 正克隆到 '/home/z00w00/powerlevel9k'... remote: Counting objects: 6938, done. remote: Compressing objects: 100% (5/5), done. remote: Total 6938 (delta 0), reused 2 (delta 0), pack-reused 6933 接收对象中: 100% (6938/6938), 1.94 MiB | 8.00 KiB/s, done. 处理 delta 中: 100% (4440/4440), done. 检查链接... 完成。
简单编辑.zshrcweb
vim ~.zshrc #添加和修改11-16行 ZSH_THEME="~/powerlevel9k" POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs newline status) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=() POWERLEVEL9K_PROMPT_ADD_NEWLINE=true POWERLEVEL9K_MODE='nerdfont-complete' source ~/powerlevel9k/powerlevel9k.zsh-theme
注意要正常显示要将XSHELL终端字体改成shell
方法:上传字体文件到你的XHSELL安装服务器,而后安装字体数据库
实现的初步效果以下:
之因此能显示带有图标的,是咱们使用中文名叫“书呆子字体”的,比传统装逼字体powerline 以及其扩展多了上千个icon,具体状况请自行搜索
使用这种字体后,再加上一款基于ruby的Colorls工具,MAC下的效果以下:
这种效果咱们继续在ubuntu上模拟
因为ubuntu的默认ruby版本比较旧,colorls的做者建议至少在2.1,通过我测试在低版本1.9上安装确实有问题,因此安装2以上版本方法以下:
sudo apt-add-repository ppa:brightbox/ruby-ng Next generation Ubuntu packages for Ruby 2.5, 2.4, 2.3, 2.2, 2.1, 2.0 1.9.3 and 1.8. See https://www.brightbox.com/docs/ruby/ubuntu/ for more details. Discussion list here: https://groups.google.com/forum/#!forum/brightbox-ruby-ubuntu-packaging https://www.brightbox.com 更多信息: https://launchpad.net/~brightbox/+archive/ubuntu/ruby-ng 按回车继续或者 Ctrl+c 取消添加 gpg: 钥匙环‘/tmp/tmpm8x7ox_r/secring.gpg’已创建 gpg: 钥匙环‘/tmp/tmpm8x7ox_r/pubring.gpg’已创建 gpg: 下载密钥‘C3173AA6’,从 hkp 服务器 keyserver.ubuntu.com gpg: /tmp/tmpm8x7ox_r/trustdb.gpg:创建了信任度数据库 gpg: 密钥 C3173AA6:公钥“Launchpad PPA for Brightbox”已导入 gpg: 合计被处理的数量:1 gpg: 已导入:1 (RSA: 1) OK ~ ↵ 100 sudo apt-get update 命中 http://security.ubuntu.com trusty-security InRelease 。。。。 ~ sudo apt-get install ruby2.2 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的而且如今不须要了: libtcl8.5 libtk8.5 libxft2 libxrender1 libxss1 ruby1.9.1-examples Use 'apt-get autoremove' to remove them. 将会安装下列额外的软件包: libjs-jquery libruby2.2 rubygems-integration 建议安装的软件包: javascript-common bundler 下列【新】软件包将被安装: libjs-jquery libruby2.2 ruby2.2 rubygems-integration 升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 216 个软件包未被升级。 须要下载 3,559 kB 的软件包。 解压缩后会消耗掉 15.8 MB 的额外空间。 您但愿继续执行吗? [Y/n] y 。。。
同时要安装ruby2.2.-dev
↵ 100 sudo apt-get install ruby2.2-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的而且如今不须要了: libtcl8.5 libtk8.5 libxft2 libxrender1 libxss1 ruby1.9.1-examples Use 'apt-get autoremove' to remove them. 将会安装下列额外的软件包: libgmp-dev libgmpxx4ldbl 建议安装的软件包: libgmp10-doc libmpfr-dev 下列【新】软件包将被安装: libgmp-dev libgmpxx4ldbl ruby2.2-dev 升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 216 个软件包未被升级。 须要下载 1,303 kB 的软件包。 解压缩后会消耗掉 6,417 kB 的额外空间。 您但愿继续执行吗? [Y/n] y
安装colorls的时候,发现调用make工具,建议也提早安装一下
↵ 1 sudo apt-get install build-essential libtool 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: autotools-dev dpkg-dev fakeroot g++ g++-4.8 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libltdl-dev libltdl7 libstdc++-4.8-dev make 建议安装的软件包: debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg libtool-doc libstdc++-4.8-doc autoconf automaken gfortran fortran95-compiler gcj-jdk make-doc 下列【新】软件包将被安装: autotools-dev build-essential dpkg-dev fakeroot g++ g++-4.8 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl libltdl-dev libltdl7 libstdc++-4.8-dev libtool make 升级了 0 个软件包,新安装了 17 个软件包,要卸载 0 个软件包,有 215 个软件包未被升级。 须要下载 20.7 MB 的软件包。 解压缩后会消耗掉 47.5 MB 的额外空间。 您但愿继续执行吗? [Y/n] y
? ? ? sudo gem install colorls Building native extensions. This could take a while... Successfully installed clocale-0.0.4 Fetching: colorls-1.1.1.gem (100%) ******************************************************************* Changes introduced in colorls Sort by dirs : -sd flag has been renamed to --sd Sort by files : -sf flag has been renamed to --sf Git status : -gs flag has been renamed to --gs Clubbed flags : `colorls -ald` works Help menu : `colorls -h` provides all possible flag options Tab completion enabled for flags -t flag : Previously short for --tree, has been re-allocated to sort results by time -r flag : Previously short for --report, has been re-allocated to reverse sort results Man pages have been added. Checkout `man colorls`. ******************************************************************* Successfully installed colorls-1.1.1 Parsing documentation for clocale-0.0.4 Installing ri documentation for clocale-0.0.4 Parsing documentation for colorls-1.1.1 Installing ri documentation for colorls-1.1.1 Done installing documentation for clocale, colorls after 0 seconds 2 gems installed
以上状态表示安装成功
测试效果以下:
虽然咱们为装逼酷炫更换了SHELL,可能有些人以为不值得。可是若是你研究一下这个基于ZSH的主题,其实仍是以为值得的。
通过调整后,个人最后的效果以下:
文件图标显示不是很完美,疑似等宽的问题,我没有再继续研究调整字体或修改配置等。
最后
我不建议你在生产服务器搞这些东西,可是若是你有一些测试的LINUX系统,我以为玩一下仍是不错的选择。