「インストール - Zsh」の版間の差分
ナビゲーションに移動
検索に移動
36行目: | 36行目: | ||
Zshを利用可能なシェル一覧に追加する。<br> | Zshを利用可能なシェル一覧に追加する。<br> | ||
ここに追加することで、chshコマンドでシェルの変更が可能となる。<br> | ここに追加することで、chshコマンドでシェルの変更が可能となる。<br> | ||
sudo echo / | sudo echo /<zshのインストールディレクトリ>/bin/zsh >> sudo /etc/shells | ||
<br> | <br> | ||
次に、ユーザのシェルを変更する。(コマンドを実行するとパスワードの入力が必要となる)<br> | 次に、ユーザのシェルを変更する。(コマンドを実行するとパスワードの入力が必要となる)<br> | ||
chsh -s / | chsh -s /<zshのインストールディレクトリ>/bin/zsh | ||
<br> | <br> | ||
再度ログインするか再起動を行う。<br> | 再度ログインするか再起動を行う。<br> |
2020年6月22日 (月) 06:01時点における版
概要
Zshはシェルの一種で、Linux等の標準シェルであるbashよりも便利な機能を持ったシェルである。
Linuxにてターミナルでコマンドを実行することが多々あるが、zshに切り替えることで、作業効率を上げることができる。
ここでは、Zshの最新版をインストールする方法を記載する。
なお、CentOSのパッケージ管理システムでは、最新のZshをインストール出来ないため、yumは使用しない。
最新のZshはこちらのWebサイトで確認できる。
Zshのインストール
CentOS
まず、CentOSでは、Zshのインストールするにはncurses-develが必要となるので、以下のコマンドを実行してインストールする。
sudo yum install ncurses-devel
次に、Zshの公式WebサイトまたはGitリポジトリから、Zshのソースコードをダウンロードする。
wget https://sourceforge.net/projects/zsh/files/zsh/<バージョン名>/zsh-<バージョン名>.tar.xz/download -O zsh-<バージョン名>.tar.xz tar xvf zsh-<バージョン名>.tar.xz -C zsh-src cd zsh-src または git clone --depth 1 git://git.code.sf.net/p/zsh/code zsh-src cd zsh-src
続いて、Zshをインストールする。(ここでは、ホームディレクトリにインストールしている)
--enable-multibyteオプションは、マルチバイトを有効にするオプションである。
./configure --enable-multibyte --prefix=$HOME/zsh/zsh-<バージョン名> make make install
SUSE
CentOSと同様である。
Zshを利用可能にする
Zshを利用可能なシェル一覧に追加する。
ここに追加することで、chshコマンドでシェルの変更が可能となる。
sudo echo /<zshのインストールディレクトリ>/bin/zsh >> sudo /etc/shells
次に、ユーザのシェルを変更する。(コマンドを実行するとパスワードの入力が必要となる)
chsh -s /<zshのインストールディレクトリ>/bin/zsh
再度ログインするか再起動を行う。
すると、以下の文言が表示される。これは、Zshに設定ファイルが存在しないために表示される。
ここでは、 0を入力して空の設定ファイルを作成する。
This is the Z Shell configuration function for new users, zsh-newuser-install. You are seeing this message because you have no zsh startup files(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory~). This function can help you with a few settings that should make your use of the shell easier. You can: (q) Quit and do nothing. The function will be run again next time. (0) Exit, creating the file ~/.zshrc containing just a comment. That will prevent this function being run again. (1) Continue to the main menu. --- Type one of the keys in parentheses ---
Zshの設定例(/home/ユーザ名/.zshrcファイル)
# Ctrl + Dでログアウトしてしまうことを防ぐ setopt IGNOREEOF # 日本語を使用 # export LANG=ja_JP.UTF-8 # パスを追加したい場合 # export PATH="$HOME/bin:$PATH" # 色を使用 autoload -Uz colors colors # 補完 autoload -Uz compinit compinit # emacsキーバインド bindkey -e # 他のターミナルとヒストリーを共有 setopt share_history # ヒストリーに重複を表示しない setopt histignorealldups # 空白から始めたコマンドを無視 setopt hist_ignore_space HISTFILE=~/.zsh_history HISTSIZE=100 SAVEHIST=100 # cdコマンドを省略して、ディレクトリ名のみの入力で移動 setopt auto_cd # 自動でpushdを実行 setopt auto_pushd # pushdから重複を削除 setopt pushd_ignore_dups # コマンドミスを修正 setopt correct # グローバルエイリアス alias -g L='| less' alias -g H='| head' alias -g G='| grep' alias -g GI='| grep -ri' # エイリアス alias cd='cd -P' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias ls='ls -hlF' alias cat='cat -n' alias less='less -n' alias en='LANG=C LANGUAGE=C LC_ALL=C' alias lgrep='ls -ahlF | grep' alias igrep='sudo zypper search -i --detail' alias repoclean='sudo zypper clean -a' alias nano='nano -lmS' alias skate='kdesu /usr/bin/kate' alias scode='code --user-data-dir=/home/suse/Program/VScode_root_project' alias suse='cat /etc/SUSE-brand' alias sshpi='ssh pi@192.168.1.22 -p 50022 -i ~/Raspberry_Pi_3/rsa/id_rsa' alias sshxrea='ssh testexec@s1009.xrea.com -p 22' # コマンド履歴に残さないコマンド群 # LinuxがホストOSの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:suse:which*:clear:man*:startx*" # LinuxがゲストOSの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:grep*:clear:lgrep*:igrep*:suse:which*:mhgfs:uhgfs" # backspace,deleteキーを使えるように stty erase ^H bindkey "^[[3~" delete-char # cdの後にlsを実行 chpwd() { ls -ltr --color=auto } # どこからでも参照できるディレクトリパス cdpath=(~) # 区切り文字の設定 autoload -Uz select-word-style select-word-style default zstyle ':zle:*' word-chars "_-./;@" zstyle ':zle:*' word-style unspecified # Ctrl + sのロック, Ctrl + qのロック解除を無効にする setopt no_flow_control # プロンプトを2行で表示、時刻を表示 PROMPT="%(?.%{${fg[green]}%}.%{${fg[red]}%})%n${reset_color}@${fg[blue]}%m${reset_color}(%*%) %~%# " # 補完後、メニュー選択モードになり左右キーで移動が出来る zstyle ':completion:*:default' menu select=2 # 補完で大文字にもマッチ zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # Ctrl+rでヒストリーのインクリメンタルサーチ、Ctrl+sで逆順 bindkey '^r' history-incremental-pattern-search-backward bindkey '^s' history-incremental-pattern-search-forward # コマンドを途中まで入力後、historyから絞り込み # 例 ls まで打ってCtrl+pでlsコマンドをさかのぼる、Ctrl+bで逆順 autoload -Uz history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^p" history-beginning-search-backward-end bindkey "^b" history-beginning-search-forward-end # cdrコマンドを有効 ログアウトしても有効なディレクトリ履歴 # cdr タブでリストを表示 autoload -Uz add-zsh-hook autoload -Uz chpwd_recent_dirs cdr add-zsh-hook chpwd chpwd_recent_dirs # cdrコマンドで履歴にないディレクトリにも移動可能に zstyle ":chpwd:*" recent-dirs-default true # 複数ファイルのmv 例 zmv *.txt *.txt.bk autoload -Uz zmv alias zmv='noglob zmv -W' # mkdirとcdを同時実行 function mkcd() { if -d $1 ; then echo "$1 already exists!" cd $1 else mkdir -p $1 && cd $1 fi } # git設定 RPROMPT="%{${fg[blue]}%}[%~]%{${reset_color}%}" autoload -Uz vcs_info setopt prompt_subst zstyle ':vcs_info:git:*' check-for-changes true zstyle ':vcs_info:git:*' stagedstr "%F{yellow}!" zstyle ':vcs_info:git:*' unstagedstr "%F{red}+" zstyle ':vcs_info:*' formats "%F{green}%c%u[%b]%f" zstyle ':vcs_info:*' actionformats '[%b|%a]' precmd () { vcs_info } RPROMPT=$RPROMPT'${vcs_info_msg_0_}'