[ログインスクロプトの修正]
インストールが終わった ubuntu 10.04 LTS Server Edition 64bit 版に SSH で接続して、いくつかの明らかに不要なパッケージの削除と、よく使うパッケージのインストールを行った。
今回インストールした ubuntu はサーバー用途で使うので、負荷の掛かる GUI をインストールする予定はなく、主に SSH で接続して CUI だけで使うことになるだろう。
そこでごく僅かではあるが、CUI の操作性を良くするための設定を行っておく。
具体的に何をするのかと言えば、ログインしたときにプロンプトの見栄えやプログラムが参照する環境変数の値などを設定しているスクリプトの編集だ。
ubuntu の場合、このスクリプトはユーザーのルートディレクトリにある .bashrc ファイルだが、新たにユーザーを追加したときにも修正したスクリプトが反映されるように、これの雛形である /etc/skel/.bashrc ファイルを vi コマンドを使って編集する。
~$ sudo vi /etc/skel/.bashrc
修正箇所は以下の通り。
~$ diff -c ~/.bashrc /etc/skel/.bashrc*** ~/.bashrc 2010-04-19 11:15:58.000000000 +0900
--- /etc/skel/.bashrc 2010-05-19 14:06:20.040128394 +0900
***************
*** 20,25 ****
--- 20,38 ----
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
+ # set language enviroment valiable
+ if [ -r /etc/default/locale ]; then
+ case "$TERM" in
+ linux|dump)
+ LANG=C
+ ;;
+ *)
+ . /etc/default/locale
+ ;;
+ esac
+ else
+ LANG=C
+ fi
+ export LANG
+
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
***************
*** 50,56 ****
fi
if [ "$color_prompt" = yes ]; then
! PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
--- 63,88 ----
fi
if [ "$color_prompt" = yes ]; then
! # Escape sequence for color '\e[...m'
! # 0 mode reset
! # 1 border clor
! # 4 underline
! # 30 BLACK (Dark GRAY at border mode)
! # 31 RED
! # 32 GREEN
! # 33 BROWN
! # 34 BLUE
! # 35 PURPLE
! # 36 CYAN
! # 37 Light GRAY (WHITE at border mode)
! # 4x Background color
!
! #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
! if [ "$UID" = "0" ]; then
! PS1='${debian_chroot:+($debian_chroot)}\[\e[4;1;31m\]\u\[\e[0;1;34m\]@\h\[\e[1;34m\]:\[\e[32m\]\w\[\e[0;34m\]$\[\e[m\] '
! else
! PS1='${debian_chroot:+($debian_chroot)}\[\e[4;1;34m\]\u\[\e[0;1;34m\]@\h\[\e[1;34m\]:\[\e[32m\]\w\[\e[0;34m\]$\[\e[m\] '
! fi
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
***************
*** 65,70 ****
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
--- 97,137 ----
;;
esac
+ # made defalt pager.
+ PAGER=more
+ if type less &>/dev/null ; then
+ PAGER=less
+ fi
+ if type jless &>/dev/null ; then
+ alias less='jless'
+ PAGER=jless
+ case $LANG in
+ ja_JP.UTF-8) JLESSCHARSET=utf-8;;
+ ja_JP.*) JLESSCHARSET=japanese-euc;;
+ *) JLESSCHARSET=latin1;;
+ esac
+ export JLESSCHARSET
+ fi
+ if type lv &>/dev/null ; then
+ alias less='lv'
+ PAGER=lv
+ case $LANG in
+ ja_JP.UTF-8) LV="-Ou8 -c" ;;
+ ja_JP.*) LV="-Oej -c" ;;
+ *) LV="-Al1 -c" ;;
+ esac
+ export LV
+ fi
+ export PAGER
+
+ # made vi as default editor.
+ EDITOR=vi
+ export EDITOR
+
+ # display backup file on current directory.
+ # (if remove its, run "chkbackups | xargs rm")
+ alias chkbackups='/usr/bin/find . -name "?*~" -o -name "?*.bak" -o -name ".[^.]?*~" -o -name ".[^.]?*.bak" -maxdepth 1'
+
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
最初のブロック (オリジナル 20-25行目, 修正後 20-38行目) は表示言語の設定だ。
ubuntu をインストールしたときに、最初に選んだ言語の種類が /etc/default/locale ファイルに記録されており、起動時にこの /etc/default/locale ファイルを使って言語の種類が設定される。
通常はこのままで問題ないが、仮想マシン コンソール ウィンドウ (CUI のディスプレイ出力) など、漢字を正しく表示できないコンソール端末では文字化けを起こす。
そこでこのブロックで、端末の種類によっては英語表示になるように設定している。
次のブロック (オリジナル 50-56行目, 修正後 63-88行目) ではコマンドプロンプトを設定している。
root ユーザーのときとそれ以外でプロンプトの色を変えているが、ubuntu では root ユーザーでの運用は推奨していないので、余り意味が無いかもしれない。
最後のブロック (オリジナル 65-72行目, 修正後 97-139行目) では環境変数 PAGER を設定している。
環境変数 PAGER は、man コマンドなどのように、複数の画面に跨がるような文章を表示するプログラムが参照する環境変数だ。
この環境変数 PAGER に設定されているプログラムを使って、複数の画面に跨がるような文章を 1 ページずつに区切って出力している。(このように 1 ページずつに区切って出力するプログラムをページャーと呼ぶ)
オリジナルの状態 (環境変数 AGER を設定していない状態) では、less コマンドが使われることになっている。
ここではインストールされているページャーによって、lv、jless、less、more の何れかを使うように設定している。
また同じブロックで環境変数 EDITOR の設定と、ファイルを編集したときに作成される作業ファイルを見つけるためのコマンドエイリアス chkbackups を作成している。
/etc/skel/.bashrc ファイルを編集したら、動作を確認するために以下のコマンドを実行する。
~$ source /etc/skel/.bashrc
表示言語に関しては確認できないが、プロンプトと環境変数が正しく設定されていることが確認できればいいだろう。
スペルミスなどでエラーになったり、おかしなプロンプトになったりするようなら source ~/.bashrc を実行すれば元に戻る。
正しく編集できたことが確認できたら、これを既に作成されているユーザーに適用しておく。
まだ ubuntu をインストールしたばかりなので作成されているユーザーは、インストール時に登録したユーザーと root ユーザーの二つだけのはずであり、今はインストール時に登録したユーザーでログインしているはずだ。
そこで以下のコマンドを使って /etc/skel/.bashrc ファイルを各ユーザーのホームディレクトリにコピーする。
~$ cp /etc/skel/.bashrc ~
~$ sudo cp /etc/skel/.bashrc /root
これで、SSH でログインしたときの操作性が少しだけ向上したはずだ。


最近のコメント