CygwinでUNIX入門 WindowsでUNIXを使う方法

このQ&Aのポイント
  • Cygwinを使ってWindows上でUNIXを学んでいますが、エイリアスがうまく機能しません。
  • 特に日本語ファイルの表示に関して問題があります。
  • エイリアスの設定を行ったにもかかわらず、正しく表示されずに困っています。
回答を見る
  • ベストアンサー

cygwin bashrc エイリアスがうまくできない

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オプションでも試してみましたが、うまくいきません。 何か間違っていますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ken-etsu
  • ベストアンサー率46% (55/119)
回答No.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を見てください。

KF3919
質問者

お礼

再びご回答ありがとうございます。 .bash_profileを検索してみますと C:\cygwin\etc\skel C:\cygwin\etc\defaults\etc\skel の2箇所にありましたが、ホームディレクトリには ありませんでした。 このうちの一つをホームディレクトリにコピーしてcygwinを 起動すると、ちゃんとaliasを認識してくれました。 本には何も書いていなかったのですが、2003年ころの本なんで 少し変わったのですかね? なにはともあれ問題は解決しました。 また、~/が何なのかも気になっていたのですが、 ホームディレクトリの意味であるということを教えていただいて すっきりしました。 今度部署が変わってそこでUNIXを使わなくてはならず、 勉強していたのですが、疑問が解決してよかったです。 本当にありがとうございました。

その他の回答 (1)

  • ken-etsu
  • ベストアンサー率46% (55/119)
回答No.1

Bashからaliasと実行すると、設定したaliasは表示されますか? そのC:\cygwin\home\cygwin\.bashrcは、bash起動時に実行されてますか? ホームディレクトリは、C:\cygwin\home\cygwinですか?Bashからcygpath -w `echo $HOME`で確認できます。.bashrcは、ホームディレクトリに置く必要があります。

KF3919
質問者

お礼

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はもともとあったもので、内容はいろいろ書いてありましたが 全行コメントアウト(先頭に#がついています)されていました。 長文になってしまいましたが、現状は上記のようになってます。

関連するQ&A

  • .bashrcがCygwinに反映しない

    Cygwinをインストール後、カスタマイズするためにプロンプトの上に 表示される「ユーザ名@計算機名」を変更しました。それに伴い、 初期に自動作成される、/home/Owner が意味を持たなくなってしまい 新たに変更したユーザ名のフォルダを作成し、そこに.bashrcを新規に 作成しましたが、.bashrcに記述したaliasが反映しません。 また、Cygwin上で「alias ls="ls -F"」としてもCygwinを再起動すると 設定が初期化されてしまいます。 aliasの設定を反映させるにはどうしたらいいのでしょうか? ご回答おねがいします。

  • 困ってます Cygwin で ls が実行できません

    はじめまして、勉強のために Cygwin をダウンロードしました。 しかし、実行できるコマンドとできないコマンドがあって困っています。 とりあえず例をあげますと、cd, pwd は動いて、ls は動きません。 なぜか ls.exe だと動きます。(オプションもOK) 以下にその bash のコマンド実行画面をコピペします。ユーザ名だけ隠させていただきます。 bash-3.2$ pwd /cygdrive/c/usr/ユーザ名 bash-3.2$ ls ls: invalid option -- Try `ls --help' for more informati bash-3.2$ ls.exe kterm.exe work bash-3.2$ cd work/ bash-3.2$ pwd /cygdrive/c/usr/ユーザ名/work ------------------------------- Cygwin を C:\cygwin にダウンロード後にしたことは3つです。 1.Windows の 環境変数 に HOME : C:\usr\ユーザ名 と   Path : C:\cygwin\bin;C:\cygwin\usr\local\bin; を追加。 2.bash の作業ディレクトリを C:\usr\ユーザ名 に設定。 3.C:\usr\ユーザ名 に .bashrc などを設置。 といった所だと思います。覚えていないだけかもしれませんが。 以上、よろしくお願いします。

  • Cygwinのlsコマンドについて

    Cygwinの場合、以下のオプションでlsコマンドを実行すると $ ls --full-time -rwxr-xr-x 1 aaaa なし 139 2006-08-23 15:01:34.203125000 +0900 ls.sh と表示されます。 Linux(redhat)上で同様のコマンドを実行すると、 $ ls --full-time -rwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2005 ls.sh と表示されます。 タイムスタンプの表示形式が異なっていますが、 Cygwin上で、Linuxのような表記をしたいのですが、 可能でしょうか。ご教授お願い致します。

  • cygwinの.bashrcについて

    初めまして。次の一点を教えてください; .bashrc内で現在 PS1="$HOSTNAME:$USERNAME:\w$ " となっているのですが、自分の希望としては コマンドライン上にコマンド回数(history実行時に左に出る数字)を一緒に出力していきたいのですが、どうしたらよいか判りません。 誰かご指導のほどよろしくお願い致します

  • meadow で ls をすると1列に出力される

    Meadow3でシェルを起動して、lsコマンド(オプションなし)をすると、1列で出力が表示されます(" ls -1 " とした感じ)。これは、何が原因なのでしょうか? ちなみに、cygwinでは、通常のように出力されます。

  • Cygwinに付属しているg++コマンドについて

    こんにちは。 Cygwinに付属しているC++コンパイルコマンドのg++について、いくつか質問させて下さい。 ・g++はC++だけでなく、Cのソースファイルもコンパイルできるので、Cのプログラムを開発するときは、gccは必要なく、g++だけでよいと思うのですが、どうしてgccが存在するのでしょうか? g++だけで十分ですよね? ・bashなどのコマンドライン上で g++ -print-libgcc-file-name と入力すると、コンパイラのコンパニオンライブラリ名を表示されるようなのですが、 コンパイラライブラリって何なのでしょうか? ちなみに自分の環境では、 /bin/../lib/gcc/i686-pc-cygwin/4.3.4/libgcc.a と表示されました。 ・-timeオプションを付けてg++でCソースファイルをビルドすると、以下のようになりました。 $ g++ -time "test.c" # cc1plus 0.03 0.01 # as 0.00 0.01 # collect2 0.00 0.08 1つめの時間と、2つめの時間は、それぞれ何を意味するのでしょうか? ・g++で使えるコマンドラインオプションとgccで使えるコマンドラインオプションは、 一緒のような気がするのですが、g++でしか使えないコマンドラインオプションってありますか? 以上です。 よろしくお願い致します。

  • リモートログインでSylpheedなどを開きたい

    自分のパソコンから学校のパソコンにリモートログインをし、作業をしたいと思っています。 そのために自分のパソコンの設定をやっているのですが、うまくいかないので教えてください。 自分のパソコンのOS : Windows7 学校:Linux (←X11 forwarding を許可する設定になっている。) 以下、自分のパソコンをhostA, 学校のパソコンをhostB(remote01)とします。 AからBにsshでリモートログインをして、emacs, sylpheed, firefox などを使いたいと考えています。学科内で割り振られているメールアドレスからプログラミングなどの課題を送りたいからです。送信元をそのアドレスにする設定をしてもよいのですが、リモートログインのやりかたでやりたいです。様々なサイトを見ながら以下のようにやってみました。 ●現在の状況● Aをremote01のX端末にするために、JDKをインストールし、次に、TightVNC1.5.1jviewerをダウンロードしました。 その中のexampleファイルのうち、Windowsバッチファイルを開き、中身のIPアドレスをBのものに変更・PORTの追加を行わなければならないのですが、バッチファイルが開けませんでした(WinZipというソフトにおいて開いた)。 次にCygwinをインストールしました。保存場所は、C:\Cygwinです。 サイトを参考にしながら環境変数に、 CYGWIN (ntsec smbntsec glob) HOME (/home/yuriko) MAKE_MODE (UNIX) SHELL (/bin/bash) を追加しました。 デスクトップにCygwin Terminal のアイコンができて、それを開き、 $ssh –X (Bでのユーザー名)@remote01.(Bのアドレス) として、AからBにリモートログインすることはできました。しかし、 $emacs とすると、端末ウィンドウ内にemacsが起動してしまい、また、 $sylpheed とすると、「Gtk-WARNING**:cannot open display」と表示されます。Firefoxのときも同じです。 Cygwin/X Server が起動していることは確認してあります。 うまくいかなかったことについてネットで調べてみました。 本来ならば、Cygwin Terminal を開くとウィンドウ上部左のアイコンの右にbashと表示されるらしいのですが、私の場合は、~が表示されました。これは設定が間違っているということでした。Cygwin Terminalにおいて、 $/bin/ls –a を入力すると、本来ならば、「. .. .bashrc」と表示されるらしいのですが、私の場合は、.bashrcがありませんでした。 C:\homeの中に、.bash_profile, .bashrc, .inputrc, .mkshrc, profile はあるのですが、クリックしても「このファイルを開けません」となります。 また、いったんCygwin Terminal を閉じ、再び開いてみると、 Copying skeleton files. These files are for the users to personalise their cygwin experience. They will never be overwritten nor automatically updated. `./.bashrc' -> `/cygdrive/c/home/yuriko//.bashrc' `./.bash_profile' -> `/cygdrive/c/home/yuriko//.bash_profile' `./.inputrc' -> `/cygdrive/c/home/yuriko//.inputrc' `./.mkshrc' -> `/cygdrive/c/home/yuriko//.mkshrc' `./.profile' -> `/cygdrive/c/home/yuriko//.profile' と最初に表示されました。 ●教えていただきたいこと● リモートログインによりSylpheed, Firefox, emacsを開くにはどうすればよいのか。 いろいろ調べたりやってみたりしたのですがどうしてもわからないので質問させていただきました。 初心者なので質問文におかしなところがあるかもしれませんが、どうぞよろしくお願いします。

  • リモートログインでSlypheedなどを開きたい

    自分のパソコンから学校のパソコンにリモートログインをし、作業をしたいと思っています。 そのために自分のパソコンの設定をやっているのですが、うまくいかないので教えてください。 自分のパソコンのOS : Windows7 学校:Linux (←X11 forwarding を許可する設定になっている。) 以下、自分のパソコンをhostA, 学校のパソコンをhostB(remote01)とします。 AからBにsshでリモートログインをして、emacs, sylpheed, firefox などを使いたいと考えています。学科内で割り振られているメールアドレスからプログラミングなどの課題を送りたいからです。送信元をそのアドレスにする設定をしてもよいのですが、リモートログインのやりかたでやりたいです。様々なサイトを見ながら以下のようにやってみました。 ●現在の状況● Aをremote01のX端末にするために、JDKをインストールし、次に、TightVNC1.5.1jviewerをダウンロードしました。 その中のexampleファイルのうち、Windowsバッチファイルを開き、中身のIPアドレスをBのものに変更・PORTの追加を行わなければならないのですが、バッチファイルが開けませんでした(WinZipというソフトにおいて開いた)。 次にCygwinをインストールしました。保存場所は、C:\Cygwinです。 サイトを参考にしながら環境変数に、 CYGWIN (ntsec smbntsec glob) HOME (/home/yuriko) MAKE_MODE (UNIX) SHELL (/bin/bash) を追加しました。 デスクトップにCygwin Terminal のアイコンができて、それを開き、 $ssh –X (Bでのユーザー名)@remote01.(Bのアドレス) として、AからBにリモートログインすることはできました。しかし、 $emacs とすると、端末ウィンドウ内にemacsが起動してしまい、また、 $sylpheed とすると、「Gtk-WARNING**:cannot open display」と表示されます。Firefoxのときも同じです。 Cygwin/X Server が起動していることは確認してあります。 うまくいかなかったことについてネットで調べてみました。 本来ならば、Cygwin Terminal を開くとウィンドウ上部左のアイコンの右にbashと表示されるらしいのですが、私の場合は、~が表示されました。これは設定が間違っているということでした。Cygwin Terminalにおいて、 $/bin/ls –a を入力すると、本来ならば、「. .. .bashrc」と表示されるらしいのですが、私の場合は、.bashrcがありませんでした。 C:\homeの中に、.bash_profile, .bashrc, .inputrc, .mkshrc, profile はあるのですが、クリックしても「このファイルを開けません」となります。 また、いったんCygwin Terminal を閉じ、再び開いてみると、 Copying skeleton files. These files are for the users to personalise their cygwin experience. They will never be overwritten nor automatically updated. `./.bashrc' -> `/cygdrive/c/home/yuriko//.bashrc' `./.bash_profile' -> `/cygdrive/c/home/yuriko//.bash_profile' `./.inputrc' -> `/cygdrive/c/home/yuriko//.inputrc' `./.mkshrc' -> `/cygdrive/c/home/yuriko//.mkshrc' `./.profile' -> `/cygdrive/c/home/yuriko//.profile' と最初に表示されました。 ●教えていただきたいこと● リモートログインによりSylpheed, Firefox, emacsを開くにはどうすればよいのか。 いろいろ調べたりやってみたりしたのですがどうしてもわからないので質問させていただきました。 初心者なので質問文におかしなところがあるかもしれませんが、どうぞよろしくお願いします。

  • 中国語が表示できない

    こんにちは。 Windows2000からIMEの切り替えで多言語(UNICODE)が入力できると思うのですが、Wordで中国語をP-inで入力すると表示できるのですが、メモ帳で入力、表示ができません。 コントロールパネル→地球のオプション→全般タブで「簡体字中国語」、「繁体字中国語」にチェックをいれ、入力ローケルタブで「中国語」を選択しました。 また、Office2000からAraial Unicode MSフォントをインストールしました。 例をあげますと、コードでいうとU9646(P-inでluと入力する)の中国語が 表示できません。 他に何か設定が必要なのでしょうか? よろしくご回答お願いします。

  • Terminalの日本語表示設定について

    G5/Pantherの環境で、Terminalを使おうとしています。 デフォルト設定では日本語の表示・入力ができないことが分かり、Googleで検索したところ以下のサイトにあたりました。 http://www.tazima.org/blog/archives/000080.html このサイトの説明の通りにTerminalの設定をして、必要な環境設定ファイル(.bashrcと.inputrc)も作成しました。 この結果日本語の入力はできるようになりましたが、.bashrcの内容が反映されず日本語の表示ができません。 たとえば直接 ls -v を打てば日本語の表示はできますので、Terminal自体の設定は問題ないと思います。 環境設定ファイルはどちらもホームの直下に置きました。 何か根本的な間違いをおかしているでしょうか。 システムの再起動はすでにやっています。 Terminal を使う理由は、共有しているWindowsマシンのフォルダに勝手にMacが不可視ファイルを作るため、Mac側からそのファイルたちをrmコマンドで一挙に削除してしまおうと思ったからです。 もしより良い方法がありましたら、そちらも教えていただけると嬉しいです。

    • ベストアンサー
    • Mac