bashで tcsh と同じに様に機能させる為の設定メモ。
ディレクトリ名表示をカレント・ディレクトリと一つ上のディレクトリにする
bashのプロンプト・パラメータにはディレクトリ表示方法として2つある
-w :カレント・ディレクトリを一つだけ表示する
-W :ホーム・ディレクトリからカレント・ディレクトリまでを表示する
カレント・ディレクトリだけでは分かり難いし、ホーム・ディレクトリからでは長過ぎる
履歴でコマンド実行時の時間を表示させる
デフォルトでは実行時の時間を表示しない
# history
export HISTSIZE=400
# history time
export HISTTIMEFORMAT="%F %T "
export HISTIGNORE="&:bg:fg:ll:h:hh:l"
export TIMEFORMAT=$'\nreal %3R\tuser %3U\tsys %3S\tpcpu %P\n'
# Define some colors first:
red='\e[0;31m'
RED='\e[1;31m'
green='\e[0;32m'
GREEN='\e[1;32m'
yellow='\e[0;33m'
YELLOW='\e[1;33m'
blue='\e[0;34m'
BLUE='\e[1;34m'
magenta='\e[0;35m'
MAGENTA='\e[1;35m'
cyan='\e[0;36m'
CYAN='\e[1;36m'
# No Color
NC='\e[0m'
## remote machine
## if [[ "${DISPLAY#$HOST}" != ":0.0" && "${DISPLAY}" != ":0" ]]; then
if [[ "${DISPLAY}" != ":0.0" && "${DISPLAY}" != ":0" ]]; then
if [ "$EUID" -eq 0 ]; then
HILIT=${magenta} # super-user
else
HILIT=${YELLOW}
fi
else # local machine
if [ "$EUID" -eq 0 ]; then
HILIT=${red} # if super-user, then red
else
HILIT=${cyan} # default color
fi
fi
## added exports
if [ -f "${HOME}/.bsh_exports" ]; then
. "${HOME}/.bsh_exports"
fi
## alias
if [ -f "${HOME}/.def.alias" -a -f "${HOME}/.alias" ]; then
unalias -a 2> /dev/null
. "${HOME}/.def.alias"
. "${HOME}/.alias"
fi
# alias の定義ファイル
unset PROMPT_COMMAND
Host=$(hostname -s)
function get_dirs() {
declare -a array
array=($(echo $PWD | tr "/" " " ))
index=${#array[*]}
let "last0 = $index -1"
let "last1 = $index -2"
if [ "$index" -eq 0 ]; then
Pdir="/"
elif [ "$index" -eq 1 ]; then
Pdir="/${array[$last0]}"
elif [ "$index" -eq 2 ]; then
Pdir="/${array[$last1]}/${array[$last0]}"
else
Pdir="${array[$last1]}/${array[$last0]}"
fi
}
# ディレクトリ名表示をカレント・ディレクトリと一つ上のディレクトリにする
function set_ps() {
if [ $# -eq 0 ]; then
cd
else
cd "$1"
fi
get_dirs
PS1="${HILIT}[\h]$NC ${Pdir} \!> "
}
## ls
function set_arg() {
LS=$(if [ $# -eq 0 ]; then echo ""; else echo "$@"; fi)
}
function set_arg2() {
LS=$(if [ $# -eq 0 ]; then echo "."; else echo "$@"; fi)
}
function lRd() {
set_arg "$@"
ls -lR --color=always $LS | more
}
function lld() {
set_arg ""$@""
ls -lF --color=always $LS | more
}
Sample
alias h='history'
alias hh='history'
alias ..='cd ..'
alias du='du -kh'
alias df='df -kTh'
#
set_ps "$PWD"
alias cd=set_ps
alias l='ls -alF --color=auto | more'
alias lR=lRd
alias ll=lld
alias lwc=lwcd
alias gre=gred
alias newf=newfd
alias newd=newdd
alias psn=psnamed
alias squidclean=squidcleand
#
alias tailw=tailwd
alias tailk=tailkd
#
alias updates='sudo yum update'
alias yumclean='sudo yum clean all'
alias lso='sudo lsof -i'
alias cache2=cache2d
alias cache3=cache3d
サンプルファイルのダウンロード