重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

cygwinをインストールし、UNIXについて勉強しようと
「CygwinでUNIX入門 WindowsでUNIXを使う本」を見ながらやっているのですが、
P040~P041に書かれている「日本語ファイルをlsで表示するには」
でつまってしまいました。

まず、
$ls /mnt/c/Documents\ and\ Settings/cygwin/ --show-control-char
と入力すると、スタートメニューやデスクトップが文字化けせずに表示されます。
毎回オプションを入力するのは大変なので、これをエイリアスにしてみようというところです。

そこで本に書いてあるとおり
C:\cygwin\home\cygwin\
内にある.bashrcファイルに
alias ls="ls --show-control-chars"
と入力してみます。
(実際にはviエディタを使用して入力しました)

cygwinを再起動したら正しく日本語が表示されるはずが、
うまくいきませんでした。
オプションを設定していないときと同じ結果になりました。
つまり、エイリアスが機能しないです。

同様に-alオプションでも試してみましたが、うまくいきません。

何か間違っていますでしょうか?

A 回答 (2件)

忘れてました。



Cygwin Bash Shellアイコンをダブルクリックすると、bashは、~/.bash_profileを実行します(「~/」はホームディレクトリの意)。この中に、
> if [ -e /etc/bash.bashrc ] ; then
> source /etc/bash.bashrc
> fi
>
> if [ -e ~/.bashrc ] ; then
> source ~/.bashrc
> fi
の様な部分があって、~/.bashrcが実行される仕組みです。
実際、~/.bash_profileを削除して、Cygwin Bash Shellを起動すると、~/.bashrcに記述したaliasが設定されなくなります。

ですので、~/.bash_profileが存在しているか、存在していればその内容を確認してください。

詳しくは、bashのman pageを見てください。
    • good
    • 0
この回答へのお礼

再びご回答ありがとうございます。

.bash_profileを検索してみますと
C:\cygwin\etc\skel
C:\cygwin\etc\defaults\etc\skel
の2箇所にありましたが、ホームディレクトリには
ありませんでした。

このうちの一つをホームディレクトリにコピーしてcygwinを
起動すると、ちゃんとaliasを認識してくれました。

本には何も書いていなかったのですが、2003年ころの本なんで
少し変わったのですかね?

なにはともあれ問題は解決しました。
また、~/が何なのかも気になっていたのですが、
ホームディレクトリの意味であるということを教えていただいて
すっきりしました。

今度部署が変わってそこでUNIXを使わなくてはならず、
勉強していたのですが、疑問が解決してよかったです。

本当にありがとうございました。

お礼日時:2008/02/29 13:54

Bashからaliasと実行すると、設定したaliasは表示されますか?


そのC:\cygwin\home\cygwin\.bashrcは、bash起動時に実行されてますか?
ホームディレクトリは、C:\cygwin\home\cygwinですか?Bashからcygpath -w `echo $HOME`で確認できます。.bashrcは、ホームディレクトリに置く必要があります。
    • good
    • 0
この回答へのお礼

ken-etsu様

回答ありがとうございます。
ご指摘内容を確認してみました。

>Bashからaliasと実行すると、設定したaliasは表示されますか?

cygwinを起動して
$ alias
と入力すると
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
と表示されます。
.bachrcファイルに書いた
alias ls="ls --show-control-chars"
は表示されません。

>そのC:\cygwin\home\cygwin\.bashrcは、
>bash起動時に実行されてますか?

すみません。確認方法がわかりません。
タスクマネージャのプロセスを見ると
cygwinを起動しているときはbash.exeが実行されているようです。
C:\cygwin\home\cygwin\.bashrcが実行していること
になりますでしょうか?

>ホームディレクトリは、C:\cygwin\home\cygwinですか?
>Bashからcygpath -w `echo $HOME`で確認できます。
>.bashrcは、ホームディレクトリに置く必要があります。

$ cygpath -w `echo $HOME`
と入力すると
C:\cygwin\home\cygwin
と表示されました。
ホームディレクトリは
C:\cygwin\home\cygwinになっていると思います。

(補足)
$ source .bashrc
と入力するとaliasが有効になるのですが、
cygwinを再起動すると有効でなくなります。

.bashrcファイルを検索すると
1 C:\cygwin\etc\skel
2 C:\cygwin\home\cygwin
3 C:\cygwin\etc\defaults\etc\skel
にありました。2に入っているものは自分で作ったものです。
1と3はもともとあったもので、内容はいろいろ書いてありましたが
全行コメントアウト(先頭に#がついています)されていました。

長文になってしまいましたが、現状は上記のようになってます。

お礼日時:2008/02/28 22:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!