Linux美化Shell

Linux美化Shell
昕某人zsh原称为Z Shell。也是一种shell,兼容最常用的bash这种shell的命令和操作,并且有很多增强,超强的订制性。
安装zsh
Linux提供了很多种 Shell,我么可以使用以下命令来查看当前命令所支持的 Shell:
1 | cat /etc/shells |
在一台新装系统的云服务器中(Ubuntu 18.04.3 LTS),可以看到 Linux 的发行版其实内置了很多的 Shell:
如果你也和上图一样,系统没有默认安装zsh的话,可以使用以下的命令来安装:
如果你用 Redhat Linux,执行:
1 | sudo yum install zsh |
如果你用 Ubuntu Linux,执行:
1 | sudo apt-get install zsh |
使用方法很简单,直接在命令行里输入 zsh 就开始使用了。不过要变成每次打开终端默认使用 zsh,则需要改配置,后面我们会说到如何让默认的终端改为 zsh。
安装完成之后,我们再次查看所支持的 Shell,就可以看到 zsh 已经安装成功了:
安装 Oh My Zsh
原本 zsh 就是很强大,但是配置超难,直到 Oh my zsh
的出现。所以这是用 zsh 的必备工具,安装只需一句话:
1 | sudo curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh |
安装完成的效果如下:
此时我们输入 zsh,就可以看到 zsh 的模样了:
但是,此时如果我们关闭当前的会话,重新发起一个会话,就会发现终端又变成了默认的 Shell,接下来我们需要将 zsh 配置成我们的默认终端。
配置默认终端
- 在以 root 用户为前提下,oh-my-zsh 的安装目录:
/root/.oh-my-zsh
- 在以 root 用户为前提下,zsh 的配置文件位置:
/root/.zshrc
- 为 root 用户设置 zsh 为系统默认 shell:
chsh -s /bin/zsh root
- 如果要重新恢复到 bash:
chsh -s /bin/bash root
配置完成后,再次打开一个新的终端,就可以看到默认终端已经被替换了:
zsh 配置主题
oh-my-zsh 支持很多的主题,默认的主题文件在 . oh-my-zsh/themes
目录下,通过 ls
命令可以看到主题目录下的所有文件:
接着打开用户目录下的 .zshrc
,并配置主题,默认主题被设置为 robbyrussell
:
更多的主题可以在Themes · ohmyzsh/ohmyzsh Wiki (github.com)看到。大家可以挑选一个自己喜欢的主题。
环境变量失效
有些时候我们配置完成之后,会发现我们环境变量失效了,但是当我们执行了 source /etc/profile 之后,环境变量又生效了,然后重新启动终端的时候发现又失效了。
问题
每次新建一个终端的时候,执行go命令,就会提示找不到此命令。
1 | [root@VM-8-12-centos RemoteWorking]# go |
但是我们的环境变量里边已经添加了:
1 | export GOROOT=/usr/local/go |
当执行source /etc/profile就可以正常使用。
解决方案
在 ~/.bashrc 中加入一条命令 source /etc/profile
,就可以了.
etc/profile
此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行。并从/etc/profile.d
这一配置文件中搜集shell的设置。~/.bashrc
:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取。
另外,/etc/profile
中设定的变量(全局)的可以作用于任何用户,而 ~/.bashrc
等中设定的变量(局部)只能继承 /etc/profile
中的变量,他们是”父子”关系。