mac电脑利用iterm2和oh my zsh打造个性终端
一、安装oh my zsh
-
登录官网oh my zsh
https://ohmyz.sh/ -
打开mac终端,输入以下命令之一:
#使用curl安装 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" #或者使用wget命令安装(curl和wget选择一种就可以了) sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
-
验证是否安装好oh my zsh
zsh --version #zsh 5.8 (x86_64-apple-darwin19.3.0)
-
设置oh my zsh为默认shell
#查看shell cat /etc/shells /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/bin/false #切换到zsh sudo chsh -s /bin/zsh #切换到bash sudo chsh -s /bin/bash #切换后验证/bin/zsh echo $SHELL
二、PS:手动安装zsh的方法
-
登录oh my zsh的github官网
https://github.com/ohmyzsh/ohmyzsh/ -
点击tools
-
打开install.sh文件
-
拷贝脚本里的内容
#!/bin/sh # # This script should be run via curl: # sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # or wget: # sh -c "$(wget -qO- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # # As an alternative, you can first download the install script and run it afterwards: # wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh # sh install.sh # # You can tweak the install behavior by setting variables when running the script. For # example, to change the path to the Oh My Zsh repository: # ZSH=~/.zsh sh install.sh # # Respects the following environment variables: # ZSH - path to the Oh My Zsh repository folder (default: $HOME/.oh-my-zsh) # REPO - name of the GitHub repo to install from (default: ohmyzsh/ohmyzsh) # REMOTE - full remote URL of the git repo to install (default: GitHub via HTTPS) # BRANCH - branch to check out immediately after install (default: master) # # Other options: # CHSH - 'no' means the installer will not change the default shell (default: yes) # RUNZSH - 'no' means the installer will not run zsh after the install (default: yes) # KEEP_ZSHRC - 'yes' means the installer will not replace an existing .zshrc (default: no) # # You can also pass some arguments to the install script to set some these options: # --skip-chsh: has the same behavior as setting CHSH to 'no' # --unattended: sets both CHSH and RUNZSH to 'no' # --keep-zshrc: sets KEEP_ZSHRC to 'yes' # For example: # sh install.sh --unattended # set -e # Default settings ZSH=${ZSH:-~/.oh-my-zsh} REPO=${REPO:-ohmyzsh/ohmyzsh} REMOTE=${REMOTE:-https://github.com/${REPO}.git} BRANCH=${BRANCH:-master} # Other options CHSH=${CHSH:-yes} RUNZSH=${RUNZSH:-yes} KEEP_ZSHRC=${KEEP_ZSHRC:-no} command_exists() { command -v "$@" >/dev/null 2>&1 } error() { echo ${RED}"Error: $@"${RESET} >&2 } setup_color() { # Only use colors if connected to a terminal if [ -t 1 ]; then RED=$(printf '\033[31m') GREEN=$(printf '\033[32m') YELLOW=$(printf '\033[33m') BLUE=$(printf '\033[34m') BOLD=$(printf '\033[1m') RESET=$(printf '\033[m') else RED="" GREEN="" YELLOW="" BLUE="" BOLD="" RESET="" fi } setup_ohmyzsh() { # Prevent the cloned repository from having insecure permissions. Failing to do # so causes compinit() calls to fail with "command not found: compdef" errors # for users with insecure umasks (e.g., "002", allowing group writability). Note # that this will be ignored under Cygwin by default, as Windows ACLs take # precedence over umasks except for filesystems mounted with option "noacl". umask g-w,o-w echo "${BLUE}Cloning Oh My Zsh...${RESET}" command_exists git || { error "git is not installed" exit 1 } if [ "$OSTYPE" = cygwin ] && git --version | grep -q msysgit; then error "Windows/MSYS Git is not supported on Cygwin" error "Make sure the Cygwin git package is installed and is first on the \$PATH" exit 1 fi git clone -c core.eol=lf -c core.autocrlf=false \ -c fsck.zeroPaddedFilemode=ignore \ -c fetch.fsck.zeroPaddedFilemode=ignore \ -c receive.fsck.zeroPaddedFilemode=ignore \ --depth=1 --branch "$BRANCH" "$REMOTE" "$ZSH" || { error "git clone of oh-my-zsh repo failed" exit 1 } echo } setup_zshrc() { # Keep most recent old .zshrc at .zshrc.pre-oh-my-zsh, and older ones # with datestamp of installation that moved them aside, so we never actually # destroy a user's original zshrc echo "${BLUE}Looking for an existing zsh config...${RESET}" # Must use this exact name so uninstall.sh can find it OLD_ZSHRC=~/.zshrc.pre-oh-my-zsh if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then # Skip this if the user doesn't want to replace an existing .zshrc if [ $KEEP_ZSHRC = yes ]; then echo "${YELLOW}Found ~/.zshrc.${RESET} ${GREEN}Keeping...${RESET}" return fi if [ -e "$OLD_ZSHRC" ]; then OLD_OLD_ZSHRC="${OLD_ZSHRC}-$(date +%Y-%m-%d_%H-%M-%S)" if [ -e "$OLD_OLD_ZSHRC" ]; then error "$OLD_OLD_ZSHRC exists. Can't back up ${OLD_ZSHRC}" error "re-run the installer again in a couple of seconds" exit 1 fi mv "$OLD_ZSHRC" "${OLD_OLD_ZSHRC}" echo "${YELLOW}Found old ~/.zshrc.pre-oh-my-zsh." \ "${GREEN}Backing up to ${OLD_OLD_ZSHRC}${RESET}" fi echo "${YELLOW}Found ~/.zshrc.${RESET} ${GREEN}Backing up to ${OLD_ZSHRC}${RESET}" mv ~/.zshrc "$OLD_ZSHRC" fi echo "${GREEN}Using the Oh My Zsh template file and adding it to ~/.zshrc.${RESET}" sed "/^export ZSH=/ c\\ export ZSH=\"$ZSH\" " "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp mv -f ~/.zshrc-omztemp ~/.zshrc echo } setup_shell() { # Skip setup if the user wants or stdin is closed (not running interactively). if [ $CHSH = no ]; then return fi # If this user's login shell is already "zsh", do not attempt to switch. if [ "$(basename "$SHELL")" = "zsh" ]; then return fi # If this platform doesn't provide a "chsh" command, bail out. if ! command_exists chsh; then cat <<-EOF I can't change your shell automatically because this system does not have chsh. ${BLUE}Please manually change your default shell to zsh${RESET} EOF return fi echo "${BLUE}Time to change your default shell to zsh:${RESET}" # Prompt for user choice on changing the default login shell printf "${YELLOW}Do you want to change your default shell to zsh? [Y/n]${RESET} " read opt case $opt in y*|Y*|"") echo "Changing the shell..." ;; n*|N*) echo "Shell change skipped."; return ;; *) echo "Invalid choice. Shell change skipped."; return ;; esac # Check if we're running on Termux case "$PREFIX" in *com.termux*) termux=true; zsh=zsh ;; *) termux=false ;; esac if [ "$termux" != true ]; then # Test for the right location of the "shells" file if [ -f /etc/shells ]; then shells_file=/etc/shells elif [ -f /usr/share/defaults/etc/shells ]; then # Solus OS shells_file=/usr/share/defaults/etc/shells else error "could not find /etc/shells file. Change your default shell manually." return fi # Get the path to the right zsh binary # 1. Use the most preceding one based on $PATH, then check that it's in the shells file # 2. If that fails, get a zsh path from the shells file, then check it actually exists if ! zsh=$(which zsh) || ! grep -qx "$zsh" "$shells_file"; then if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -1) || [ ! -f "$zsh" ]; then error "no zsh binary found or not present in '$shells_file'" error "change your default shell manually." return fi fi fi # We're going to change the default shell, so back up the current one if [ -n "$SHELL" ]; then echo $SHELL > ~/.shell.pre-oh-my-zsh else grep "^$USER:" /etc/passwd | awk -F: '{print $7}' > ~/.shell.pre-oh-my-zsh fi # Actually change the default shell to zsh if ! chsh -s "$zsh"; then error "chsh command unsuccessful. Change your default shell manually." else export SHELL="$zsh" echo "${GREEN}Shell successfully changed to '$zsh'.${RESET}" fi echo } main() { # Run as unattended if stdin is closed if [ ! -t 0 ]; then RUNZSH=no CHSH=no fi # Parse arguments while [ $# -gt 0 ]; do case $1 in --unattended) RUNZSH=no; CHSH=no ;; --skip-chsh) CHSH=no ;; --keep-zshrc) KEEP_ZSHRC=yes ;; esac shift done setup_color if ! command_exists zsh; then echo "${YELLOW}Zsh is not installed.${RESET} Please install zsh first." exit 1 fi if [ -d "$ZSH" ]; then cat <<-EOF ${YELLOW}You already have Oh My Zsh installed.${RESET} You'll need to remove '$ZSH' if you want to reinstall. EOF exit 1 fi setup_ohmyzsh setup_zshrc setup_shell printf "$GREEN" cat <<-'EOF' __ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ ....is now installed! Please look over the ~/.zshrc file to select plugins, themes, and options. p.s. Follow us on https://twitter.com/ohmyzsh p.p.s. Get stickers, shirts, and coffee mugs at https://shop.planetargon.com/collections/oh-my-zsh EOF printf "$RESET" if [ $RUNZSH = no ]; then echo "${YELLOW}Run zsh to try it out.${RESET}" exit fi exec zsh -l } main "$@"
-
在mac打开终端,使用以下命令创建文件并粘贴以上脚本
vi install.sh
-
修改脚本权限
chmod 777 install.sh
-
切换到脚本目录并执行脚本安装oh my zsh
./install.sh
三、方法3:brew安装oh my zsh
-
打开终端,输入一下命令
brew install zsh #如果已经安装,需要重新安装 brew reinstall zsh
-
修改默认shell
chsh -s /bin/zsh
四、安装iterm2
- 登录iterm2官网
https://www.iterm2.com/ - 点击download页面,下载安装iterm2
五、安装powerlevel9k
-
登录powerlevel9k官网
https://github.com/bhilburn/powerlevel9k -
点击Install the Powerlevel9k Theme
https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions#step-1-install-powerlevel9k -
输入以下命令安装powerlevel9k
#First get the homebrew tap,第一步打开homebrew tap brew tap sambadevi/powerlevel9k #Then install powerlevel9k via brew,第二步进行安装 brew install powerlevel9k
-
加载powerlevel9k
#加载powerlevel9k主题To load powerlevel9k in your zsh simply add the following line to your .zshrc: source /usr/local/opt/powerlevel9k/powerlevel9k.zsh-theme #或者,(最好不用)写入到配置文件 Alternatively you can run this command to append the line to your .zshrc echo "source /usr/local/opt/powerlevel9k/powerlevel9k.zsh-theme" >> ~/.zshrc
下载
#下载
git clone https://github.com/bhilburn/powerlevel9k.git /Users/ccb/.oh-my-zsh/themes/powerlevel9k.zsh-theme
#设置zsh主题
cd
vi .zshrc
ZSH_THEME="powerlevel9k"
#生效
source .zshrc
六、安装字体Install Powerline Fonts
-
点击Install Powerline Fonts
https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions#step-2-install-a-powerline-font -
在上述页面找到安装字体的页面powerline
https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation -
下载
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
-
移动字体
mv PowerlineSymbols.otf ~/.local/share/fonts/
-
更新字体
fc-cache -vf ~/.local/share/fonts/
-
安装
mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/
手动安装字体的方法
-
打开页面powerline fonts
https://github.com/powerline/fonts -
打开install.sh文件
-
拷贝并运行脚本(参考上面手动安装oh my zsh)
#!/bin/sh # Set source and target directories powerline_fonts_dir="$( cd "$( dirname "$0" )" && pwd )" # if an argument is given it is used to select which fonts to install prefix="$1" if test "$(uname)" = "Darwin" ; then # MacOS font_dir="$HOME/Library/Fonts" else # Linux font_dir="$HOME/.local/share/fonts" mkdir -p $font_dir fi # Copy all fonts to user fonts directory echo "Copying fonts..." find "$powerline_fonts_dir" \( -name "$prefix*.[ot]tf" -or -name "$prefix*.pcf.gz" \) -type f -print0 | xargs -0 -n1 -I % cp "%" "$font_dir/" # Reset font cache on Linux if which fc-cache >/dev/null 2>&1 ; then echo "Resetting font cache, this may take a moment..." fc-cache -f "$font_dir" fi echo "Powerline fonts installed to $font_dir"
-
出现以下结果表示安装成功
Powerline fonts installed to /Users/ccb/Library/Fonts
-
拷贝安装方法
# clone git clone https://github.com/powerline/fonts.git --depth=1 # install cd fonts ./install.sh # clean-up a bit cd .. rm -rf fonts
-
安装图标Font Awesome字体
登录font Awesome官网
https://fontawesome.com/进入下载页面
https://fontawesome.com/download下载桌面版,点击otf文件进行安装:
Font Awesome 5 Free-Solid-900.otf
Font Awesome 5 Free-Regular-400.otf
Font Awesome 5 Brands-Regular-400.otf
7、配置iterm2字体
打开iterm2的偏好设置,按如下设置即可
八、iterm2配色
https://iterm2colorschemes.com/
九、插件安装
-
常用插件官网
https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins -
插件存放位置
默认的位置(ccb是用户电脑名字)
/Users/ccb/.oh-my-zsh/plugins第三方位置
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/比如
/Users/ccb/.oh-my-zsh/custom/plugins -
例如下载安装zsh-syntax-highlighting
https://github.com/zsh-users/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 自动补全
git clone git://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
配置插件
# 打开zshrc
vim ~/.zshrc
# 61行左右
plugins=(z git zsh-autosuggestions zsh-syntax-highlighting)
查看zsh自带的可直接启用的插件,直接进配置文件里启用即可
cd ~/.oh-my-zsh/plugins
ll
web-search
web-search是自带的插件,可以直接启用,通过以下两种方法可以使用
web_search <context> <term> [more terms if you want]
<context> <term> [more terms if you want]
#例如
$ web_search google oh-my-zsh
$ google oh-my-zsh
#如果你想百度搜索,直接baiidu空格+搜索内容即可
baidu 我爱Python
web-search支持的搜索列表
10、oh my zsh主题
Oh My Zsh 默认自带了一些默认主题,存放在 ~/.oh-my-zsh/themes 目录中。我们可以查看这些主题:
11、卸载zsh
进入到.oh-my-zsh/tools目录
#cd .oh-my-zsh/tools
chmod +x uninstall.sh
./uninstall.sh
rm -rif .zshrc
12、报错解决
WARNING! Your terminal appears to support less than 256 colors!
If your terminal supports 256 colors, please export the appropriate environment variable
before loading this theme in your ~/.zshrc. In most terminal emulators, putting
export TERM=“xterm-256color” at the top of your ~/.zshrc is sufficient.
修改.zshrc配置文件,添加下列配置。
[[ $TMUX = "" ]] && export TERM="xterm-256color"
修改.tmux.conf配置文件,添加下列配置(如果此文件不存在,直接创建即可。)
set -g default-terminal "screen-256color"