iTerm2+oh-my-zsh+插件集,打造最好用的mac终端

1. 更换shell解析器

shell是命令解析器,mac常见的zsh与bash都是shell的一种,zsh基本能兼容bash,加上oh-my-zsh工具,推荐使用zsh。

1.1 查看与切换

echo $SHELL        # 查看当前使用shell
chsh -s /bin/bash  # 切换为bash
chsh -s /bin/zsh   # 切换为zsh

1.2 配置文件位置

  • bash读取的配置文件:~/.bash_profile文件

  • zsh读取的配置文件:~/.zshrc文件

当从bash切换为zsh时,如果不想重新配置一遍.zshrc文件,可以__在.zshrc文件中加上source ~/.bash_profile,从而直接从.bash_profile文件读取配置。

1.3 脚本生效

当对配置文件做修改后,应执行source ~/.bash_profile (拿.bash_profile举例),这样系统才能读取到最新配置。

1.4 环境变量文件解释

  1. /etc/profile:(单用户系统环境变量) 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。)

  1. /etc/bashrc: (单用户变量)为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。

  1. ~/.bash_profile:(每个用户环境变量) 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。

  1. ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

  1. ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

  1. ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

    扫描二维码关注公众号,回复: 16374912 查看本文章

2. 安装oh-my-zsh

oh-my-zsh更强大的命令行工具,解放双手,比系统自带bash更加酷炫、高效,可以实现更强大的命令补全,命令高亮等一系列酷炫功能。同时支持各种自定义选项,并支持扩展。

2.1 安装

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

2.2 为系统安装自体库,供iterm选择

# 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(我用的是Meslo LG)

2.3 修改iterm主题

官方主题大全

~/.zshrc更换主题ZSH_THEME="agnoster"

2.4 安装配色库

git clone [email protected]:mbadolato/iTerm2-Color-Schemes.git

更换配色方案:iterm2 -> settings -> Profiles -> Text -> Colors -> Change Colors -> import -> iTerm2-Color-Schemes/schemes/全选导入,选一个自己喜欢的配色方案。

2.5 安装插件

2.5.1 命令行高亮

 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
 echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
 # ${(q-)PWD} 的含义是将当前工作目录的路径作为一个变量,并对该变量进行引号转义,以便在后续的 shell 命令中使用。
 # 最终输入结果:source /Users/liang/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

2.5.2 命令自动补全

1. homebrew安装

  • 执行brew install zsh-autosuggestions

  • 安装成功后:

#编辑配置文件
vim ~/.zshrc

#在最后一行增加下面的代码
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh

#退出编辑后执行使配置生效
source ~/.zshrc

2. git命令安装

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

#编辑配置文件
vim ~/.zshrc

#找到plugins配置,在括号内增加zsh-autosuggestions,与其他插件之间使用空格分隔开
plugins=(zsh-autosuggestions)

#退出编辑后执行使配置生效
source ~/.zshrc

按下tab补全命令,效果图:

3. autojump自动跳转工具

autojump提供了一种快速进行文件目录导航的方式。 它会把你在命令行中最常用的目录保存到一个数据库里,然后根据你访问的频次添加不同的权重。

访问越频繁,权重越高,排名就越先前,跳转的命令就越简洁。

注意:目录在通过autojump跳转之前必须先访问,然后在autojump的数据库中才有记录

j是autojump命令的简写,任何可以用autojump的地方都可以以j命令替换

3.1 安装

3.1.1 方式一:homebrew安装

  • brew install autojump

  • 安装完成后,进行如下操作:

#编辑配置文件
vim ~/.zshrc

#在最后一行增加下面的代码
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

#退出编辑后执行使配置生效
source ~/.zshrc 

3.1.2 方式2:git命令安装

#github镜像
git clone git://github.com/joelthelion/autojump.git

#进入目录,执行安装命令
./install.py

在安装过程中,会在~/下建立.autojump文件夹,如果github镜像无法下载,请使用gitee镜像下载

#gitee镜像
git clone https://gitee.com/null_454_5218/autojump.git $ZSH_CUSTOM/plugins/autojump

#进入目录autojump中
cd $ZSH_CUSTOM/plugins/autojump

#执行安装命令
./install.py

安装成功后,进行如下操作:

#编辑配置文件
vim ~/.zshrc

#找到plugins配置,在括号内增加autojump,与其他插件之间使用空格分隔开
plugins=(autojump)

#在文件最后一行或者plugins=()后另起一行添加如下内容
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

#退出编辑后执行使配置生效
source ~/.zshrc 

3.2 验证安装成功

autojump --version

3.3 使用

  1. j

跳转到指定目录下

j ~/Desktop/dxlWorkspace  # 跳转到~/Desktop/dxlWorkspace目录下,下次直接输入 j dxl就可以直接跳转
  1. jo

跳转到该目录,并使用终端打开,相当于cd ~/Desktop/dxlWorkspace && open ./

jo ~/Desktop/dxlWorkspace 
  1. 查看记忆权重

j --stat

这个工具优点在于能记忆每次输入跳转,每条记忆记录都有权重,方便下次用更简洁的命令,达到目录跳转的目的。

4. 参考

  1. iTerm2安装配置使用指南——保姆级

  1. linux之autojump命令

5. 结语

我是滚石,一名热爱前端的菜鸟程序员,成长路上,欢迎一起交流讨论,一起进步!

猜你喜欢

转载自blog.csdn.net/SmileLife123/article/details/129112725