Mac下手把手带你打造骚气的命令行终端

简介: 为什么你的终端这么美丽

最近有很多朋友看了我的文章之后,问我你终端是怎么设置的,为什么如此炫酷,这这这...让我怎么说,难道我的文章不干吗?还是特干看不下去了?好吧,今天趁着周末给大家分享一下,如何设置一个你认为很高大上的终端,对于常用终端的发烧友来说无疑是一篇值得收藏的好文章,哈哈

想要配置这么高大上的终端?你需要安装一个叫做Iterm的远程连接工具,官方说是macOS Terminal Replacement,对的,你的电脑必须是Macos系统才可以,接下来我们一步一步的教你如何配置一个令你心仪的iterm,首先我们需要掌握一下基础的东西,然后在自定义一些喜欢的东西。

前期准备

安装Iterm2

官网下载好iterm2的二进制文件,然后直接托放到Macos系统的Application的文件夹内,然后你就可以在启动台`launch里面找到Iterm了。安装完成之后,打开软件,以下的操作均在iterm2上操作

配置oh-my-zsh

现在我们就需要配置一个神助工具oh-my-zsh来让你的Iterm2起飞,最开始的时候,你的iterm是这样的

image-20200613130224096

下面,我们修改默认的bashzsh,这里要注意的是,后期需要做一些命令别名,环境变量的时候,就不再是以前的bashrc等了,应是~/.zshrc或者/etc/zshrc啦。

brew install zsh # 安装zsh
chsh -s /bin/zsh

如果你想要修改回来

chsh -s /bin/bash

修改之后,我们通过wget或者curl的方式下载oh-my-zsh,以下安装方式选择任意一种即可:

  • curl方式
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • wget方式
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

执行完之后,就如下所示:

image-20200613130723249.png

实际上,就是通过curl或者wget的方式将oh-my-zsh的代码仓库克隆到你的家目录下/Users/marionxue/.oh-my-zsh

提供字体支持

接下来我们需要安装一些字体,这些字体提供了某些oh-my-zsh主题的特殊字符的支持,在美化配置上是必不可少的。

git clone https://github.com/powerline/fonts.git --depth=1
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

安装好之后,选择一款Powerline字体了:iterm2 -> Preferences -> Profiles -> Text -> Font -> Change Font(我用的是nerd-fonts因为该字体支持非 ASCII 码字体,如下图所示),当你的终端在配置主题之后,出现了乱码,那么你的字体一定是没有选对,这里需要使用powerline系列的字体,这是需要注意的地方。如果你需要安装nerd-fonts,直接使用brew即可

brew tap caskroom/fonts
brew cask install font-hack-nerd-font

image-20200613145411438.png

美化iterm2

一些特别吸引眼球的美化设置都是通过在主题的基础上自定义修改实现的,默认的oh-my-zsh使用的主题是ZSH_THEME="robbyrussell",个人并不好看,下面我们自己选择一个合适的主题,我们可以在/Users/marionxue/.oh-my-zsh/themes下面查看默认提供的主题。而配置文件就是我们之前提及到的~/.zshrc文件,

image-20200613132704679.png

我们打开该文件找到ZSH_THEME="robbyrussell",然后修改robbyrussell为你喜欢的主题即可,我这里使用的是ZSH_THEME="agnoster"不过我也推荐这个主题。记得每次修改~/.zshrc文件之后,需要source ~/.zshrc让配置文件生效,我们看一下效果图:

70f58fb6-ba03-11e4-82c9-c083bf9a6574.png

但是看起来比较单调,不是那么的高大上啊,于是有些人在网上肯定发现过以下这种样式,看起来相对比较完美,研究一下下面这种图的做法:

833995626.jpg

仔细观察,命令提示符左侧显示的是git的分支,后侧显示的执行结果状态、执行命令的数量以及时间,这是一个比较流行的第三方 PowerLevel9k 开源主题,我们将其下载到~/.oh-my-zsh/custom/themes下,详细的配置设置参考github上的文档:

cd ~/.oh-my-zsh/custom/themes
https://github.com/bhilburn/powerlevel9k.git

修改配置文件中的主题设置为:

ZSH_THEME="powerlevel9k/powerlevel9k"

然后配置git,historytime,我们在

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status history time)

这样就完成了上图的配置。当然你可以设置一些带有icon的模式比如:

POWERLEVEL9K_MODE='nerdfont-complete'

效果如下:

让 PowerLevel9K 主题显示图标字符 —— From AigeStudio

你也可以自已定义一些背景颜色,你可以通过执行一下命令获取配色

spectrum_bls # 显示前配色
spectrum_ls # 显示后配色

image-20200613144120084.png

美化进阶

这里就是美化终端的基本操作,下面我们看一下如何在原有的基础上配置一下自己喜欢的icon和插件:

image-20200613140442286.png

红色框

红色框是iterm的资源状态栏,你可以在iterm2中使用快捷键command+,或者菜单栏打开首选项,进行设置,后面就不在赘述如何带开了,

image-20200613141322608.png

点击configure status bar将需要的托放在下面既可

青色的🐳

青色的🐳是一个emoji.可以利用touchbar填充上去,可以写文字

image-20200613141519848.png

黄色的目录

这里是安装的一些高效易用的插件

  • git-open: 一个快捷工具,当你cd到一个版本化的代码仓库目录下,执行git-open会自动打开浏览器并跳转到该代码仓库地址
  • zsh-autosuggestions:这是一个自动提示之前执行过的命令历史
  • zsh-syntax-highlighting:这是一个zsh语法高亮的插件

这些插件安装配置简单,只需要clone对应的代码仓库到/Users/marionxue/.oh-my-zsh/custom/plugins下,然后在.zshrc配置文件下的plugins处配置上即可,注意我这里使用的是agnoster主题。

cd ~/.oh-my-zsh/custom/plugins
git clone https://github.com/paulirish/git-open
git clone https://github.com/zsh-users/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting

vim ~/.zshrc
plugins=(
   git
   zsh-syntax-highlighting
   zsh-autosuggestions
   git-open
)

最后是配置生效

source ~/.zshrc
蓝色框内的配置

这里是通过agnoster主题加上一些自己修改的主题实现的。然后结合~/.zshrc配置命令行提示符的显示,你可以在emoji网站1emoji网站2上找到对应的Bytes

image-20200613142755511.png

其中的devclusterkube-ops是我的k8s集群的集群名以及对应的命名空间,这里是利用kubectxkube-ps1实现的,具体的你可以参考,下面是我的部分配置文件

ZSH_THEME="agnoster"
DISABLE_AUTO_UPDATE="true"
DISABLE_UPDATE_PROMPT="true"
plugins=(
   git
   zsh-syntax-highlighting
   zsh-autosuggestions
   kubectl
   kube-ps1
   git-open
)
KUBE_PS1_SYMBOL_ENABLE=false
KUBE_PS1_PREFIX="\u2638\uFE0F  "
KUBE_PS1_SUFFIX=" "
KUBE_PS1_DIVIDER="\xf0\x9f\x94\xa5 "
PS1='$(kube_ps1)'$PS1

好了,到这里就结束了,希望你能有所收获~

相关文章
|
4月前
|
存储 Shell
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
|
4月前
|
Shell
Mac终端工具Terminal (2):打开新终端窗口或者页签
Mac终端工具Terminal (2):打开新终端窗口或者页签
|
4月前
|
数据安全/隐私保护 iOS开发 MacOS
Mac中使用命令行来加密压缩zip文档
Mac中使用命令行来加密压缩zip文档
59 0
|
8月前
|
Java 开发工具
Mac 终端定制(iTerm2 + oh-my-zsh + Powerline + solarized + agnoster)
Mac 终端定制(iTerm2 + oh-my-zsh + Powerline + solarized + agnoster)
142 0
Mac 终端定制(iTerm2 + oh-my-zsh + Powerline + solarized + agnoster)
|
22天前
|
存储 搜索推荐 Shell
mac下终端命令提示补全
mac下终端命令提示补全
41 0
|
2月前
|
人工智能 Rust 运维
这一款 Mac 系统终端工具,已经用的爱不释手了!
这一款 Mac 系统终端工具,已经用的爱不释手了!
|
6月前
Mac 下终端命令无法使用的问题
Mac 下终端命令无法使用的问题
118 1
|
8月前
Flutter MAC VSCode 常用快捷键和命令行
Flutter MAC VSCode 常用快捷键和命令行
111 0
|
3月前
|
Shell Docker 容器
mac终端命令补全设置(docker 命令补全)
mac终端命令补全设置(docker 命令补全)
51 0
|
4月前
|
存储
Mac终端工具Terminal (5):在Mac上重定向终端的输入和输出
Mac终端工具Terminal (5):在Mac上重定向终端的输入和输出