Cygwin初心者が行うとよいたった2つの設定

んちゃ!

今回は
WindowsPCにCygwinをインストールした直後に実施しておくとよい設定について
メモを兼ねて紹介します。

  • 起動時のカレントディレクトリ指定
  • ログイン時の表示設定

実施環境
まず、小生の使用した環境は以下のとおりです。
OS:Windows XP
Cygwinインストール先:C:\cygwin

起動時のカレントディレクトリ変更
Cygwinを起動すると、
いわゆるホームディレクトリが起動時のカレントディレクトリとなります。
なので、
スクリプトなどを別のディレクトリで管理している場合、
ホームディレクトリから対象のディレクトリに移動するのがとても面倒です。
これに対応し、
起動時のカレントディレクトリを指定するためには、
Cygwin.batの変更を行います。
テキストエディタでCygwin.batを開くと、
以下のようにディレクトリを移動している処理が存在しているので、
これを指定したいディレクトリに修正します。簡単ですね。

chdir "C:Documents_and_Settings\user"

スタートメニューやクイック起動、ショートカットなどからCygwinを起動する場合は
このCygwin.batが呼び出されているので、
次回の起動からはこの変更が反映されることになります。

ログイン時の表示設定
特に何も設定を行わずにCygwinを起動すると、
コンソールのプロンプト部分にはシェル名がバージョンとともに表示されているかと思います(bash-4.1とか)。
これでは得られる情報が少ないので、
ホームディレクトリにある(はずの).bashrcに環境変数PS1を指定することで
プロンプトの表示内容を設定しましょう。
例えば
[ユーザ名@ホスト名 カレントディレクトリ]
などと表示させたい場合、以下のように追記します。
export PS1="[\u@\h \W]\\$ "

これも次回起動から反映されるはずですが、
それでも反映されない場合、
・ホームディレクトリを間違えている
・.bashrcを読み込めていない
のどちらかが原因として考えられます。
これについては以後におまけとして対処法を記載したので、
理解度に応じて続きを読んでもらえればと思います。

おまけ
・ホームディレクトリを間違えている
そもそもホームディレクトリは、以下のように確認することができます。

echo $HOME

これで出力されたパスがホームディレクトリなので、
ここが起動時のカレントディレクトリとなります。
なおCygwin上では”/cygdrive/”が先頭に付与されているはずなので、
それ以下の部分をWindows上のディレクトリとして読み替えてください。

・.bashrcを読み込めていない
PS1の環境変数についての説明のところで、
「ホームディレクトリにある(はずの)」という表現を使いました。
これはインストール直後であればそもそも
.bashrcやそれを読み込むファイルが存在していない可能性があるためで、
ログイン時の表示設定などが反映されない原因になっていることがあります。
これを解消するにはまずホームディレクトリに
・.bash_profile(この後紹介)
・.bashrc(前述の通り)
を配置する必要があります。
なおWindowのエクスプローラでは拡張子のみのファイルを作成することができないので、
Cygwinでtouchコマンドを実行するなどして、ファイルを準備をしてください。
更に、
読み込めていなかった.bashrcを読み込めるよう、
.bash_profileを以下のように編集します。

source .bashrc

これで次回起動から、先ほどの設定が反映されるかと思います。
なお環境変数PS1やおまけで紹介した内容は、
WindowsやCygwinといったことではなく、
基本的なUnix/Linuxにおける理解が必要になるので、適宜学習が必要です。

ということで、
Cygwin初心者が行うとよい設定を2つ紹介しました!

参考
Cygwin の設定のトラブルを直す
bashのプロンプトを変更するには
Cygwinのインストール&設定方法


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">