Linux 无root权限安装ZSH

服务器没有zsh,不能忍。

  1. 下载
#最新版本自行查看
mkdir ~/tmp
cd ~/tmp
wget https://sourceforge.net/projects/zsh/files/zsh/5.7/zsh-5.7.tar.xz
  1. 解压
tar xvJf  zsh-5.7.tar.xz
  1. 编译
cd ~/tmp/zsh-5.7
./configure --prefix=$HOME
make
make install
  1. 配置
    安装oh-my-zsh
#自动
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
#手动
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
  1. 启用
  • 有root权限:chsh -s /bin/zsh
  • 无root权限:在~/.profile中加入
#active zsh
exec $HOME/bin/zsh -l
  • 重新登入
  1. 修改
  • 初始配置并不好用,也不好看,我们需要微调一下~/.zshrc文件

强大的zsh配置文件

  • 我用的第三方插件:
    1. zsh-autosuggestions:自动补全
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
    1. zsh-syntax-highlighting:语法高亮
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
    1. The FUCK:命令错误FUCK一下
    #安装 
    pip install thefuck --user
    
    1. incr:自动补全 | 备份
  • 所有原生主题 ps:我的经过了自定义
效果图
  • 我的~/.zshrc
      #color{{{
      autoload colors
      colors
       
      for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
      eval _$color='%{$terminfo[bold]$fg[${(L)color}]%}'
      eval $color='%{$fg[${(L)color}]%}'
      (( count = $count + 1 ))
      done
      FINISH="%{$terminfo[sgr0]%}"
      #}}}
    
      # If you come from bash you might have to change your $PATH.
      # export PATH=$HOME/bin:/usr/local/bin:$PATH
    
      # Path to your oh-my-zsh installation.
      export ZSH="/home/username/.oh-my-zsh"
    
      # Set name of the theme to load --- if set to "random", it will
      # load a random theme each time oh-my-zsh is loaded, in which case,
      # to know which specific one was loaded, run: echo $RANDOM_THEME
      # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
      ZSH_THEME="ys"
    
      # Set list of themes to pick from when loading at random
      # Setting this variable when ZSH_THEME=random will cause zsh to load
      # a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
      # If set to an empty array, this variable will have no effect.
      # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
    
      # Uncomment the following line to use case-sensitive completion.
      # CASE_SENSITIVE="true"
    
      # Uncomment the following line to use hyphen-insensitive completion.
      # Case-sensitive completion must be off. _ and - will be interchangeable.
      # HYPHEN_INSENSITIVE="true"
    
      # Uncomment the following line to disable bi-weekly auto-update checks.
      # DISABLE_AUTO_UPDATE="true"
    
      # Uncomment the following line to automatically update without prompting.
      # DISABLE_UPDATE_PROMPT="true"
    
      # Uncomment the following line to change how often to auto-update (in days).
      # export UPDATE_ZSH_DAYS=13
    
      # Uncomment the following line if pasting URLs and other text is messed up.
      # DISABLE_MAGIC_FUNCTIONS=true
    
      # Uncomment the following line to disable colors in ls.
      # DISABLE_LS_COLORS="true"
    
      # Uncomment the following line to disable auto-setting terminal title.
      # DISABLE_AUTO_TITLE="true"
    
      # Uncomment the following line to enable command auto-correction. 用The FUCK插件代替
      # ENABLE_CORRECTION="true"
    
      # Uncomment the following line to display red dots whilst waiting for completion.
      # COMPLETION_WAITING_DOTS="true"
    
      # Uncomment the following line if you want to disable marking untracked files
      # under VCS as dirty. This makes repository status check for large repositories
      # much, much faster.
      # DISABLE_UNTRACKED_FILES_DIRTY="true"
    
      # Uncomment the following line if you want to change the command execution time
      # stamp shown in the history command output.
      # You can set one of the optional three formats:
      # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
      # or set a custom format using the strftime function format specifications,
      # see 'man strftime' for details.
      HIST_STAMPS="mm/dd/yyyy"
    
      # Would you like to use another custom folder than $ZSH/custom?
      # ZSH_CUSTOM=/path/to/new-custom-folder
    
      # Which plugins would you like to load?
      # Standard plugins can be found in ~/.oh-my-zsh/plugins/*
      # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
      # Example format: plugins=(rails git textmate ruby lighthouse)
      # Add wisely, as too many plugins slow down shell startup.
      # z命令快速跳转目录     x命令解压一切文件
      plugins=(
        git
        z
        zsh-autosuggestions
        extract
        zsh-syntax-highlighting
        last-working-dir
      )
    
      source $ZSH/oh-my-zsh.sh
    
      # User configuration
    
      # export MANPATH="/usr/local/man:$MANPATH"
    
      # You may need to manually set your language environment
      # export LANG=en_US.UTF-8
    
      # Preferred editor for local and remote sessions
      # if [[ -n $SSH_CONNECTION ]]; then
      #   export EDITOR='vim'
      # else
      #   export EDITOR='mvim'
      # fi
    
      # Compilation flags
      # export ARCHFLAGS="-arch x86_64"
    
      # Set personal aliases, overriding those provided by oh-my-zsh libs,
      # plugins, and themes. Aliases can be placed here, though oh-my-zsh
      # users are encouraged to define aliases within the ZSH_CUSTOM folder.
      # For a full list of active aliases, run `alias`.
      #
      # Example aliases 别名
      # alias zshconfig="mate ~/.zshrc"
      # alias ohmyzsh="mate ~/.oh-my-zsh"
      alias check='nvidia-smi'
      alias ta='tmux attach'
      alias cp='cp -i'
      alias mv='mv -i'
      alias rm='rm -i'
      alias ls='ls -F --color=auto'
      alias ll='ls -al'
      alias grep='grep --color=auto'
      alias la='ls -a'
    
      #路径别名 {{{
      #进入相应的路径时只要 cd ~xxx
      hash -d H="/home"
      #}}}
    
      eval $(thefuck --alias)
    
      #命令提示符样式{{{
      RPROMPT=$(echo "$RED%D %T$FINISH")
      PROMPT=$(echo "$WHITE@SSH:  $CYAN%n@$YELLOW%M:$GREEN%/$_YELLOW>$FINISH ")
      #}}}
    
      #标题栏、任务栏样式{{{
      case $TERM in (*xterm*|*rxvt*|(dt|k|E)term)
      precmd () { print -Pn "\e]0;%n@%M//%/\a" }
      preexec () { print -Pn "\e]0;%n@%M//%/\ $1\a" }
      ;;
      esac
      #}}}
      
      #编辑器
      export EDITOR=vim
    
      #关于历史纪录的配置 {{{
      #历史纪录条目数量
      export HISTSIZE=10000
      #注销后保存的历史纪录条目数量
      export SAVEHIST=10000
      #历史纪录文件
      export HISTFILE=~/.zsh_history
      #以附加的方式写入历史纪录
      setopt INC_APPEND_HISTORY
      #如果连续输入的命令相同,历史纪录中只保留一个
      setopt HIST_IGNORE_DUPS
      #为历史纪录中的命令添加时间戳
      setopt EXTENDED_HISTORY      
       
      #启用 cd 命令的历史纪录,cd -[TAB]进入历史路径
      setopt AUTO_PUSHD
      #相同的历史路径只保留一个
      setopt PUSHD_IGNORE_DUPS
       
      #在命令前添加空格,不将此命令添加到纪录文件中
      #setopt HIST_IGNORE_SPACE
      #}}}
    
      ##空行(光标在行首)补全 "cd " {{{
      user-complete(){
      case $BUFFER in
      "" )                       # 空行填入 "cd "
      BUFFER="cd "
      zle end-of-line
      zle expand-or-complete
      ;;
      "cd --" )                  # "cd --" 替换为 "cd +"
      BUFFER="cd +"
      zle end-of-line
      zle expand-or-complete
      ;;
      "cd +-" )                  # "cd +-" 替换为 "cd -"
      BUFFER="cd -"
      zle end-of-line
      zle expand-or-complete
      ;;
      * )
      zle expand-or-complete
      ;;
      esac
      }
      zle -N user-complete
      bindkey "\t" user-complete
      #}}}
    

你可能感兴趣的:(Linux 无root权限安装ZSH)