平时使用linux自带的终端觉得太丑,没有自动提示,没有语法高亮, 那么我们就用oh-my-zsh来改造一下吧。先展示一下效果图,然后我们就来一步一步打造既强大又美观的linux终端吧! 打造既强大又美观的linux终端除了这一篇博客外还有后续博客会陆续更新,感恩实验室的师弟在这么艰难的日子里还潜心科研,再夸一波~实在是太厉害了!!!
首先解释几个概念:
shell是Linux/Unix的一个外壳,它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。
terminal是用户终端,用来启动shell,提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是终端。当你打开一个terminal时,操作系统会将terminal和shell关联起来,当我们在terminal中输入命令后,shell就负责解释命令。
通俗的讲就是shell是后端,负责该显示哪些字,而terminal是前端,负责让这些字长什么样。
bash是Linux默认的Shell,接下来我们要安装的zsh也是一种Shell。
zsh是一种强大的shell,zsh 的功能比 bash 强大很多,但配置过于复杂,起初只有极客才在用。
后来有一个国外的程序猿创建了一个名为 oh-my-zsh 的开源项目,可以快速上手配置zsh,提供了大量的主题和插件。自此,只需要简单的安装配置oh-my-zsh,小白程序员们就都可以zsh这个神器了。
我们以 Windows 上用 MobaXterm 远程ssh连接 Ubuntu 16.04.6 LTS 为例:
$ echo $SHELL
可以看到系统当前的shell是bash,再查看下系统中有哪些shell。
$ cat /etc/shells
$ sudo apt-get install zsh
安装oh-my-zsh之前需要安装git,如果没安装请自行安装:
$ sudo apt-get install git
一行命令即可安装oh-my-zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
$ chsh -s `which zsh`
退出再重新连接终端就可以看到默认的shell已经变成了zsh了
但是默认主题是robbyrussell,不太好看。我们将主题改为agnoster,我最喜欢这个主题,好看又清晰。
编辑zsh配置文件
$ vim ~/.zshrc
然后重新加载配置文件
(每次修改配置文件后,都需要再次加载配置文件才能生效)
$ source ~/.zshrc
更多主题可以参考这里!!!ohmyzsh-Github
此款主题搭配Solarized Dark配色最好看哦,许多终端中自带这个配色。如果用别的终端比如苹果的iterm2,可以到这个链接下载此配色:https://iterm2colorschemes.com/
另外终端字体一定要设置为powerline的字体才能正常渲染,否则许多主题会显示乱码。
用于linux终端的powerline字体可以输入命令安装。
$ sudo apt-get install fonts-powerline
我是在windows上用MobaXterm远程ssh连接的服务器,我在MobaXterm的终端上使用的powerline字体是更纱黑体。
oh-my-zsh提供了强大的插件功能,一开始默认开启了git插件,可以显示git相关信息。oh-my-zsh还自带了几百种实用插件,存放在~/.oh-my-zsh/plugins
目录里。
使用方法也非常简单,编辑.zshrc
配置文件
$ vim ~/.zshrc
找到plugins
在里面加上自己喜欢的插件,注意不要用逗号隔开,要用空格隔开。
然后重新加载配置文件就可以使用啦~
$ source ~/.zshrc
下面推荐几个我比较常用的插件:
这是oh-my-zsh自带的插件,使用extract
或x
命令,一!键!解!压!
以后不管是什么格式的压缩文件 tar, gz, zip, rar 等等统统再也不用记命令了,一个extract全部解压。
$ vim ~/.zshrc
# plugins=([plugins...] extract )
$ source ~/.zshrc
可以使命令语法高亮,正确路径自带下划线。这个插件是第三方的,需要先下载到oh-my-zsh自定义的plugins目录里。
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
$ vim ~/.zshrc
# plugins=([plugins...] zsh-syntax-highlighting )
$ source ~/.zshrc
这个插件也是第三方的,根据历史输入的命令进行提示,能大大地提升效率,出现提示后按方向键➡
进行补全。
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
$ vim ~/.zshrc
# plugins=([plugins...] zsh-syntax-highlighting )
$ source ~/.zshrc
输入bash
还是可以暂时切换回去,再输入zsh
切换回来。
也可以把默认shell改回去:
chsh -s `which bash`
有时候会遇到命令找不到路径,这时候可以自行添加路径。还可以把自己的常用路径添加进去。
在配置文件~/.zshrc
里面随便找个地方export
即可。
P.S. 添加常用路径的话其实可以用oh-my-zsh自带的插件
z
,autojump
,wd
等,可以进行快速方便的目录跳转。
这个机器的名字太长了,影响我打命令,我们可以把hostname给隐去。
编辑这个文件~/.oh-my-zsh/themes/agnoster.zsh-theme
找到$user@%m
,将@%m
给删掉。
重新加载配置文件,就可以看到后面那一长串机器名就神奇的消失啦~
$ source ~/.zshrc
P.S.同理可以隐去user,或者其他魔改,可以参考这个链接:
https://stackoverflow.com/questions/28491458/zsh-agnoster-theme-showing-machine-name/38295938
期待我们后续的博客吧!!!感恩师弟假期的持续工作产出!!!真的太酷了~引用我今天看回形针的一句让我很有启发的话来作为今天的结尾吧:人类的赞歌是勇气的赞歌,赞美所有还在认真工作的人们! 大家明天见!!!