何のシェルを使っていますか?
私は常にZシェルを使用しています。なぜと聞かれると補完機能が充実しているからとしかいえませんが、
でもこの補完機能がとてもすばらしいのです。
たとえばapach の起動時に下記のコマンドをよく打つと思いますが、zshell の場合、start も補完してくれます。
/usr/local/apache2/bin/apachectl start
それからコンパイル時に configure をすると思いますが、このオプションも補完してくれます。
ということで、
yum install zsh
でインストールしましょう。
そして
zsh
でシェルが有効になります。
ユーザディレクトリに初期設定ファイルをおきましょう。
vi .zshrc
最後に私のオススメの .zshrc 設定をさらします。
オススメ設定
local BLACK=$'%{e[1;30m%}'
local RED=$'%{e[1;31m%}'
local GREEN=$'%{e[1;32m%}'
local YELLOW=$'%{e[1;33m%}'
local BLUE=$'%{e[1;34m%}'
local PURPLE=$'%{e[1;35m%}'
local AQUA=$'%{e[1;36m%}'
local WHITE=$'%{e[1;37m%}'
local DEFAULT=$'%{e[1;m%}'
autoload -U colors
colors # ${fg[red]}形式のカラー書式を有効化
# 補完の利用設定
autoload -U compinit
compinit
# C-s, C-qを無効にする。
setopt NO_flow_control
setopt COMPLETE_IN_WORD
# コマンドの訂正
#setopt correct
# コマンドラインの引数で --prefix=/usr などの = 以降でも補完できる
setopt magic_equal_subst
# ファイルリスト補完でもlsと同様に色をつける。
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# sudo でも補完の対象
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
# ディレクトリを水色にする。
export LS_COLORS='di=01;36'
# シェルのプロセスごとに履歴を共有
setopt share_history
# 8 ビット目を通すようになり、日本語のファイル名を表示可能
setopt print_eight_bit
# 重複したヒストリは追加しない
#setopt hist_ignore_all_dups
# 直前と同じコマンドラインはヒストリに追加しない
setopt hist_ignore_dups
# カッコの対応などを自動的に補完
setopt auto_param_keys
# 複数の zsh を同時に使う時など history ファイルに上書きせず追加
setopt append_history
# 補完候補が複数ある時に、一覧表示
setopt auto_list
# 補完キー(Tab, Ctrl+I) を連打するだけで順に補完候補を自動で補完
setopt auto_menu
# cd をしたときにlsを実行する
#function chpwd() { ls }
umask 002
HISTSIZE=10000
SAVEHIST=10000
cdpath=(.. ~)
export LC_ALL='ja_JP.UTF-8'
export LANG='ja_JP.UTF-8'
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/php/bin
export MANPATH=/usr/share/man:/usr/local/man:/usr/X11/man:/usr/X11R6/man
export JMANPATH=/usr/local/man:/usr/man:/usr/local/man/ja:/usr/share/man/ja:/usr/X11R6/man/ja:/usr/share/man:/usr/X11R6/man
export TERM=xterm-color
export PAGER=lv
export HOST=`hostname`
export EDITOR=vim
export HISTFILE=~/.history/history.`date +%y%m%d%H%M`
export DISPLAY=`env | grep SSH_CLIENT | awk -F"=" '{print $2}' | awk -F" " '{print $1}'`:0.0
if [ `whoami` = root ]; then
prompt="$BLUE`hostname -s`# $DEFAULT"
else
prompt="$BLUE`hostname -s`$ $DEFAULT"
fi
alias sl='ls -F'
alias rm='rm -i'
alias rmf='rm'
alias cp='cp -i'
alias mv='mv -i'
alias h='history | tail -10'
alias v='vim'
alias less='lv'
alias le='less'
alias ll='ls -alF'
# key bind
#vi
#bindkey -v
#emacs
bindkey -e
bindkey '^J' history-beginning-search-backward # 先頭マッチのヒストリサーチ
bindkey '^F' history-beginning-search-forward # 先頭マッチのヒストリサーチ
bindkey '^A' beginning-of-line
bindkey '^B' end-of-line
bindkey '^S' beginning-of-line
