mac电脑利用iterm2和oh my zsh打造个性终端

mac电脑利用iterm2和oh my zsh打造个性终端

  • 一、安装oh my zsh
  • 二、PS:手动安装zsh的方法
  • 三、方法3:brew安装oh my zsh
  • 四、安装iterm2
  • 五、安装powerlevel9k
  • 六、安装字体Install Powerline Fonts
    • 手动安装字体的方法
  • 7、配置iterm2字体
  • 八、iterm2配色
  • 九、插件安装
  • 10、oh my zsh主题
  • 11、卸载zsh
  • 12、报错解决

一、安装oh my zsh

  1. 登录官网oh my zsh
    https://ohmyz.sh/

  2. 打开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 -)"
    
  3. 验证是否安装好oh my zsh

    zsh --version
    #zsh 5.8 (x86_64-apple-darwin19.3.0)
    
  4. 设置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的方法

  1. 登录oh my zsh的github官网
    https://github.com/ohmyzsh/ohmyzsh/

  2. 点击tools

  3. 打开install.sh文件

  4. 拷贝脚本里的内容

    #!/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 "$@"
    
  5. 在mac打开终端,使用以下命令创建文件并粘贴以上脚本

    vi install.sh
    
  6. 修改脚本权限

    chmod 777 install.sh
    
  7. 切换到脚本目录并执行脚本安装oh my zsh

    ./install.sh
    

三、方法3:brew安装oh my zsh

  1. 打开终端,输入一下命令

    brew install zsh
    
    #如果已经安装,需要重新安装
    brew reinstall zsh
    
  2. 修改默认shell

    chsh -s /bin/zsh
    

四、安装iterm2

  1. 登录iterm2官网
    https://www.iterm2.com/
  2. 点击download页面,下载安装iterm2

五、安装powerlevel9k

  1. 登录powerlevel9k官网
    https://github.com/bhilburn/powerlevel9k

  2. 点击Install the Powerlevel9k Theme
    https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions#step-1-install-powerlevel9k

  3. 输入以下命令安装powerlevel9k

    #First get the homebrew tap,第一步打开homebrew tap
    
    brew tap sambadevi/powerlevel9k
    
    #Then install powerlevel9k via brew,第二步进行安装
    
    brew install powerlevel9k
    
  4. 加载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

  1. 点击Install Powerline Fonts
    https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions#step-2-install-a-powerline-font

  2. 在上述页面找到安装字体的页面powerline
    https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation

  3. 下载

    wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
    
    wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
    
  4. 移动字体

    mv PowerlineSymbols.otf ~/.local/share/fonts/
    
  5. 更新字体

    fc-cache -vf ~/.local/share/fonts/
    
  6. 安装

    mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/
    

手动安装字体的方法

  1. 打开页面powerline fonts
    https://github.com/powerline/fonts

  2. 打开install.sh文件

  3. 拷贝并运行脚本(参考上面手动安装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"
    
  4. 出现以下结果表示安装成功

    Powerline fonts installed to /Users/ccb/Library/Fonts

  5. 拷贝安装方法

    # clone
    git clone https://github.com/powerline/fonts.git --depth=1
    # install
    cd fonts
    ./install.sh
    # clean-up a bit
    cd ..
    rm -rf fonts
    
  6. 安装图标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/

九、插件安装

  1. 常用插件官网
    https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins

  2. 插件存放位置
    默认的位置(ccb是用户电脑名字)
    /Users/ccb/.oh-my-zsh/plugins

    第三方位置
    ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/

    比如
    /Users/ccb/.oh-my-zsh/custom/plugins

  3. 例如下载安装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   [more terms if you want]

  [more terms if you want]

#例如
$ web_search google oh-my-zsh
$ google oh-my-zsh

#如果你想百度搜索,直接baiidu空格+搜索内容即可
baidu 我爱Python

web-search支持的搜索列表
mac电脑利用iterm2和oh my zsh打造个性终端_第1张图片

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"

你可能感兴趣的:(工具集合)