ナクナイ

勉強用の備忘録

[サーバー構築] zsh インストールと .zshrc の設定

sakura の vps を契約して、サーバー構築することにした。
シェルは zsh 派なので、zsh をインストールした手順をメモ。


まずは、ユーザーの追加

# useradd tamulapin
# passwd tamulapin

tamulapin ユーザーを sudoers ファイルに記述して、sudo 権限を与える

# visudo
tamulapin  ALL=(ALL)
→追記


ここから zsh のインストール

# yum install ncurses-devel
# cd /usr/local/src
# wget http://sourceforge.net/projects/zsh/files/zsh-dev/4.3.12/zsh-4.3.12.tar.gz
# tar xvzf zsh-4.3.12.tar.gz
# cd zsh-4.3.12
# ./configure
# make
# make install


.zshrc (zsh 設定ファイル) を設定

まずログディレクトリを事前に作成しておく。

# mkdir /root/history_logs/
$ mkdir /home/tamulapin/history_logs/

root ユーザー、tamulapin ユーザーの .zshrc は色々参考にして下記のように設定

export LANG=ja_JP.UTF-8

# 補完機能の強化
autoload -U compinit
compinit

## PATH の設定
PATH=$PATH:/usr/local/bin # パスの追加

##---- ヒストリファイル系設定 -------------------------------##
HISTFILE=$HOME/.zsh-history
HISTSIZE=100000
SAVEHIST=100000

# 直前と同じコマンドをヒストリに追加しない
setopt hist_ignore_dups

# zsh の開始, 終了時刻をヒストリファイルに書き込む
setopt extended_history

# ヒストリを共有
setopt share_history

# 保存ファイルの書式
export HISTFILE=~/history_logs/history_`date +%y%m%d_%H%M`
##-----------------------------------------------------------##

# 出力の文字列末尾に改行コードが無い場合でも表示
unsetopt promptcr

# 色を使う
setopt prompt_subst

# プロンプトのカラー表示を有効
autoload -U colors
colors

# ビープを鳴らさない
setopt nobeep

# 内部コマンド jobs の出力をデフォルトで jobs -l にする
setopt long_list_jobs

# 補完候補一覧でファイルの種別をマーク表示
setopt list_types

# サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム
setopt auto_resume

# 補完候補を一覧表示
setopt auto_list

# cd 時に自動で push
setopt autopushd

# 同じディレクトリを pushd しない
setopt pushd_ignore_dups

# ファイル名で #, ~, ^ の 3 文字を正規表現として扱う
setopt extended_glob

# TAB で順に補完候補を切り替える
setopt auto_menu

# =command を command のパス名に展開する
setopt equals

# --prefix=/usr などの = 以降も補完
setopt magic_equal_subst

# ヒストリを呼び出してから実行する間に一旦編集
setopt hist_verify

# ファイル名の展開で辞書順ではなく数値的にソート
setopt numeric_glob_sort

# 出力時8ビットを通す
setopt print_eight_bit

## 補完候補のカーソル選択を有効に
zstyle ':completion:*:default' menu select=1

## 補完候補の色づけ
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

# ディレクトリ名だけで cd
setopt auto_cd

# カッコの対応などを自動的に補完
setopt auto_param_keys

# ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
setopt auto_param_slash

# Ctrl+wで/までの文字列を削除
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

# 候補をタブで選択
zstyle ':completion:*default' menu select=1
# 補完で大文字と小文字を区別しないようにしたい(大文字は展開しない)

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

#---- svn commit で vi 起動 ----#
export SVN_EDITOR=vi

#---- alias 設定 ------#
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias sl='ls --color=tty'
alias ls='ls --color=tty'
alias ll='ls -al --color=tty'
alias vi=vim

#---- プロンプト設定 ------#
# 左プロンプト
PROMPT='[%m]${WINDOW:+"[$WINDOW]"}$ '

#PROMPT='%{32+$RANDOM % 5]m%}%U%B$HOST'"{`whoami`}%b%%%{%}%u " # prompt_subst が必要
# 右プロンプト
RPROMPT=$'%{\e[33m%}[%~]%{\e[m%}%*'

ログインシェルを zsh に変更

# which zsh
# chsh -s /usr/local/bin/zsh root
# chsh -s /usr/local/bin/zsh tamulapin

これを打ったら、

警告: "/usr/local/bin/zsh" は /etc/shells リストの中にありません

と怒られたられたので、
/etc/shells に /usr/local/bin/zsh を追記して改めて実行。

# cat /ets/passwd

ログインシェルが変わったことを確認

終わり。