質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

Q&A

解決済

2回答

3423閲覧

cugwinのbashのディレクトリ構造がおかしいので正常にもどしたい

Teltely

総合スコア0

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

0グッド

1クリップ

投稿2021/09/25 08:08

前提・実現したいこと

1月前までは正常に動いていたbashが正常に動かなくなったので、正常に戻したい。
具体的には起動時のディレクトリとルートディレクトリを/cygwinにしたい。

発生している問題・エラーメッセージ

bash.exe: warning: could not find /tmp, please create! bash-2.05a$

試したこと

ルートディレクトリにtmpファイルを作成でこのエラーは解消したが、
ディレクトリの構造がおかしいことが根本的な原因と考えられる。

ディレクトリについて

bashに打ち込んだコード

1bash-2.05a$ pwd 2/cygdrive/c/cygwin/bin 3 4bash-2.05a$ cd 5 6bash-2.05a$ dir 7Program\ Files cygwin swapfile.sys 8Config.Msi Intel Program\ Files\ (x86) ProgramDa tmp 9DumpStack.log OneDriveTemp Recovery Users pagefile.sys tosutils 10DumpStack.log.tmp PerfLogs System\ Volume\ Information Windows share_file 11(↑ルートディレクトリがCドライブになっている、一部略、tmpは上記エラー解消のために作成したもの) 12 13bash-2.05a$

補足情報(FW/ツールのバージョンなど)

秋月電子通商のH8開発ソフトのCDからcygwinをインストール。
1月前までは正常に動作、この1か月に意図して変更した設定はない。
アンインストールと再インストールを行ったが改善せず。
起動時のディレクトリの上の階層に移動するとdirやlsコマンドが使えない(not found)。
profileで設定しているパスを環境変数に入力するとdirやlsコマンドは使えるようになる。
cygdriveを使わずにCドライブにアクセスできる状況を報告しているサイトがなかった。
bash起動時にprofileが読み込まれていないことが原因と考え、調べたが解決できなかった。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

インターネットから最新版のcygwinをインストールすると動作したが、h8用のCコンパイラのインストールがうまくいかなかった。そのため、秋月で購入したCDでcygwinとCコンパイラをまとめてインストールした状態で、インターネットから最新の32bitのcygwinをインストールすることで解決した。
やや動作は不安定で、なぜか3回目以降のコンパイルは成功した。

投稿2021/09/27 13:52

Teltely

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

環境変数HOMEを確認してください。

投稿2021/09/25 08:47

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/09/25 09:09

ではまずコマンドプロンプトから C:\cygwin\bin\bash -l でbashを起動して、 /bin/pwd echo $HOME echo $TEMP するとどう出力されるか教えてください。
Teltely

2021/09/25 12:54 編集

結果を添付します。 >C:\cygwin\bin\bash bash-2.05a$ /bin/pwd bash: /bin/pwd: No such file or directory bash-2.05a$ echo $HOME /cygdrive/c/home bash-2.05a$ echo $TEMP /cygdrive/c/Users/名前/AppData/Local/Temp bash-2.05a$ -lは unrecognized optionと言われたのでオプションなしでbashを起動しました。 また、/bin/pwdはないみたいです。エクスプローラーで現在のディレクトリ(/cygdrive/c/Users/名前)を確認しましたがありませんでした。
itagagaki

2021/09/25 12:19

bash に -l が無いですか… では C:\cygwin\bin\bash --login ではどうでしょうか。 /bin/pwd が見つからないというのもちょっとおかしいですね… C:\cygwin\bin\pwd.exe が無いですか? では、ただの pwd ではどうですか?(bashの組み込みコマンドです) $HOME には /cygdrive/c/home がセットされているようですが、 bash起動前の環境変数 HOME にセットしたのは C:¥home ですか? C:\cygwin ではなく? bash起動前の環境変数 TEMP には C:\Users\akira\AppData\Local\Temp がセットされていて(それはWindowsの通常の状態です)、それがそのままbashに継承されているようですね。bashをログインシェルとして起動できたら(そのための -l オプションだったのですが)、C:\cygwin\etc\profile がスタートアップファイルとして実行されて、おそらくその中で TEMP は /tmp にセットし直されるはずなんですが、profile が実行されていないので、そうなっているのかなと推測します。 なので、まずは --login でもう一度試してみてください。
Teltely

2021/09/25 12:32

C:\cygwin\bin\bash --loginでbashはできました。 /bin/pwd bash: /bin/pwd: No such file or directory pwd /cygdrive/c/Users/名前 C:\cygwin\bin\pwd.exeはありました。 HOMEにはC:\homeとしています
Teltely

2021/09/25 12:41

環境変数をC:\cygwinにしてから試しました。 C:\cygwin\bin\bash --login bash-2.05a$ echo $HOME /cygdrive/c/cygwin bash-2.05a$ echo $TEMP /cygdrive/c/Users/名前/AppData/Local/Temp bash起動時のディレクトリはcygwinになっているようです。 しかしTEMPは更新されておらず、profileが読み込まれていないようです。
itagagaki

2021/09/25 13:10

ん-、確かにどうもルートディレクトリの設定がおかしくなっているような気がしますね。 アンインストールと再インストールを行っても直らなかったとのことですが、もう一度アンインストールして、レジストリに HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin が残っていたら削除して、そしてもう一度インストールしてみましょうか。 念のため、レジストリはバックアップを取って編集してください。 Cygwinもbashも相当古いようですが、H8開発のため、最新のCygwinではなくて、そのCDのバージョンじゃないとダメなんですよね?
Teltely

2021/09/25 13:36

アンインストールの際にレジストリを確認しましたが、HKEY_LOCAL_MACHINE\SOFTWARE\Cygwinはありませんでした。 HKEY_CURRENT_USER\SOFTWARE\Cygnus Solutions\Cygwinは一度消しましたが今はあります。 バージョンについてですが、昔の本を参考に勉強しているのでできればこのバージョンがいいと思っています。 cygwinはcファイルをコンパイルするため(makeコマンド)に使用しているだけなので、最新のバージョンでも問題ないかもしれません。 CDからのインストールは10回程度行ったので最新版のインストールをしてみます。
Teltely

2021/09/27 13:54

なんとか解決しました。最新のcygwinのインストールという方法は盲点でした。 おかげで解決できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問