12.2 カスタマイズ
一般的に,プログラムの動作はユーザが必要に応じて自分の使いやすいように変更できるようになっています.このようにプログラムの動作を後から微調整することをカスタマイズ(customize)と言います.カスタマイズのやり方には大雑把に言うと次の2種類があります.
- システムの管理者が,組織の実情に応じて,ユーザみんなのために行う.
- ユーザが,自分の好みや仕事の内容に応じて行う.
CNS では1のタイプのカスタマイズも多く行われていますので,研究室のコンピュータを使う時などは注意して下さい.ここでは2のタイプのカスタマイズについて説明します.
環境変数
変数とは,一般にある値を記憶しておく箱で,値をいろいろ変化させることができます.環境変数(environment variable)とは,プログラムが実行時に周囲の状況を参照するための変数です.環境変数には名前(普通はアルファベットの大文字だけを使います)がついていて,値として文字列を記憶します.
現在の環境変数の値の一覧を表示するには printenv コマンドを使います.
% printenv TZ=Japan TERM=vt220 PATH=/usr/local/lib/jdk1.2.1/bin:/usr/local/lib/jdk1.1.5/bin:/home/hattori/bin:/ usr/local/bin:/usr/bin/X11:/usr/local/bin/mh:/usr/local/mh:/usr/local/bin/X11:/p ub/sfc/bin:/usr/ucb:/usr/bin:/bin:/usr/bsd:/usr/sony/bin:/usr/new:.:/usr/local/X 11R6.3/bin:/usr/local/SUNWspro/bin:/usr/openwin/bin:/opt/SUNWo1kp/bin:/usr/ccs/b in:/usr/sbin:/pub/sfc/bin:/usr/local/bin:/usr/local/bin/mh:.:/home/hattori/bin HOME=/home/hattori MAIL=/var/mail/hattori LOGNAME=hattori SHELL=/bin/tcsh HOSTTYPE=sun4 % |
= の左側が名前,右側がその変数の値です.引数に環境変数名を書くと,その値だけを表示します.
環境変数を新しく作る,または値を変更するには setenv コマンドを使い,最初の引数に変数名,2番目の引数に値を指定します.
setenv BUS kanachu % printenv BUS kanachu % |
環境変数を削除するには unsetenv コマンドを使います.
% unsetenv BUS % printenv BUS % |
プログラムによってどの環境変数を参照するかは決まっていますので,それぞれのプログラムのマニュアルを調べて下さい.例として次のようなものがあります.
- LANG:メッセージを表示する時などに使用する言語を設定する.
- DISPLAY:アプリケーションがウィンドウを作る時の X ウィンドウサーバを設定する.
- PAGER:man コマンドなどの出力が画面に収まらない時の表示プログラムを設定する.
一つの端末ウィンドウで環境変数の値を変更しても,他の端末ウィンドウには影響しません.
設定ファイル
ホームディレクトリにある「.」(ピリオド)で始まるファイルには,プログラムが起動する時に読み込む設定を書いてあるものが多くあります.プログラム本体はすべてのユーザが同じものを使いますが,設定ファイルは各ユーザごとに違う内容を書けるので,ユーザごとに違う動作をさせることができます.
主な設定ファイルには次のようなものがあります.
- .login:端末でログインした時にシェルが読む.
- .xsession:X ウィンドウでログインした時にシェルが読む.
- .cshrc:csh や tcsh という種類のシェルが起動する時に読む.(CNS では tcsh というシェルを標準で使います)
- .emacs:emacs が起動する時に読む.
- .netscape:netscape 関係のファイルがあるディレクトリ.設定ファイルはこの中にある.
- .phonerc:phone が起動する時に読む.
- .winman:CNS 独自の設定ファイルで、どのウィンドウマネージャを起動するか決める.
- .fvwm2rc:fvwm2 という種類のウィンドウマネージャが起動する時に読む.
設定ファイルの書き方はプログラムによって違いますので,それぞれのプログラムのマニュアルを調べて下さい.
注意.login や .cshrc を書き換える場合は,予め、書き換える前の状態を別のファイルにコピーしておき,すぐに元の状態に戻れるようにしておきましょう.また,.xsession に変な設定を書くと,X ウィンドウでログインができなくなることがあります.
設定ファイルの書き方の例1 -- .fvwm2rc --
ウィンドウマネージャはウィンドウの大きさ,色,位置などを決めるものです..fvwm2rcという設定ファイルによってそれらを指示することができます.
設定ファイルは新規に作成してもよいですが,これは大変なので,ここではCNS の標準設定ファイルを自分のホームディレクトリにコピーし,手を加えていく方法を紹介します.
CNS の標準の設定は /usr/local/X11R6/etc/.fvwm2rc にあります.まずこれを自分のホームディレクトリの真下に .fvwm2rc という名前でコピーしましょう.
emacsでこの設定ファイルを開くと,様々な設定が記述されていることが分かります.例えば,「ウィンドウの設定」の「フォーカスされているウィンドウの色」の部分を以下のように書き換えてみましょう.
### ウィンドウの設定
# フォーカスされているウィンドウの色
HilightColor white #008000
|
これを保存してからログアウトし,ログインしてみましょう.すると,アクティブウィンドウの色が下のように変わります.
詳しい説明は,man fvwm2 で(英語ですが)見ることができます.もし,本気でカスタマイズする気なら,The X window user HOWTO などを見て X ウィンドウについて勉強して下さい.
設定ファイルの書き方の例2 -- .login --
.loginファイルは,ログイン時のシェルで1度だけ実行されるシェルスクリプト(→5.3 シェル)です.通常シェルの環境は.cshrcファイルで設定するので.loginファイルにはログイン時に実行させたいコマンドのみを記述します.
例えば,ホームディレクトリの下の .login ファイルを以下のように書いて保存しログインしなおすと,ログイン時に .login で指定した echo コマンドによりメッセージが表示され,その後 date コマンドが実行されます.
source /usr/local/lib/setup/.login # CNSの標準の設定を読み込む.消さないほうがよい. # ログイン時のメッセージを表示する. # !などの特殊記号を使う場合は\でエスケープする. echo "hello\!\!" # 実行したいコマンドを記述する. date #日付を表示 |
# の後に書かれている内容はコメントです.動作には影響しません.
● 練習問題
- LANG の値を次のように変更してdate コマンドや man コマンドを使ってみなさい.
- unsetenv LANG
- setenv LANG de
- setenv LANG ja
- unsetenv DISPLAY を実行してから xclock を実行してみなさい.
- .cshrc に
date |
という行を追加し(すでにある行は変更しないこと),新しく端末ウィンドウを作ってみなさい.
エイリアス
よく使うコマンドに対して省略形を定義することができます.詳しくは CNS ガイドを参照して下さい.