プロが教えるわが家の防犯対策術!

至急教えていただけませんでしょうか。

環境構築の練習で、Dockerを使って作業を行っていました。
(https://qiita.com/ucan-lab/items/56c9dc3cf2e6762 …

進めてる中、「exec winpty bash」コマンドを打っても途中で引っかかってしまい、以下URLのことを試しました。
(https://qiita.com/yKanazawa/items/866c1e4ef024be …

しかし、aliases.shを上書きしてはいけないことを見落としてしまいそのまま上書きした結果、Git bashを起動→ウィンドウが開いてすぐに消える状態になってしまいました。私の浅知恵では解決することができないので、ご教授いただけませんでしょうか。

よろしくお願いいたします。

A 回答 (2件)

> いじったのはwindows側なので、どちらかというと直すならそちらかなと思った



ああ、じゃあ分かりませんねぇ。

一応、Dockerって仮想マシンの一種なんでしょうが、多分動いてるのはLinuxなんですよね。だから「Linuxの常識」でお話します。

まず、*.shと言うファイルなんですが、これは一般に「シェルスクリプトファイル」と呼ばれます。MS-DOS/Windowsで言うbatファイルに当たります。
また、aliases(エイリアス)と言う名前なんですが、これは平たく言うと「ショートカット」の事ですね。あるいは「別名」って事なんですが。Linuxだと端末上で走らせる複数のコマンドを1つにまとめたり、あるいはあるコマンド名を「気に食わないから」とか別名にしたりする事をエイリアス、と言うんです。
例えばあるディレクトリ内のファイルを全表示させるのはMS-DOS/WindowsではdirですがLinuxではlsです。ただ、Linuxではlsをdirとエイリアスを作る事が出来る。そうすればWindows/DOSと同じコマンド名でLinuxを使うことが出来る・・・とかそういう「イタズラ」が出来るわけなんですよ。
従って、aliases.shってのは「使いまわしたいんだけど打つコマンドが長すぎるんで、短くしたブツを定義したい」目的でシェル(Linuxで言うとDOS窓みたいなブツ)に読み込ませる為のモノで、そう考えると、これを「上書き」したから、と言って必ずしもシェルが落ちるような事になる筈が無いんです。
で、参照ページは一応読んだんですが、

> aliases.shのファイルは上書き禁止になっているので注意が必要。

と言うのは「上書きしてはいけない」って意味じゃないんです。
そうじゃなくって、Linuxの種々のソフトのデフォルトの設定ファイルが入ってる/etcフォルダ内のファイルを弄る場合は「管理者権限が必要だ」って意味なんですよ。
現在のWindowsではC:\Program FilesとかC:\Program Files(x86)のファイルに対して操作する場合、「管理者権限が必要」になってるんですが、Linuxの場合はもっと厳しくって、ぶっちゃけhomeフォルダと言う作業フォルダ直下以外の場所は全部「管理者権限が必要」なのです。元々、UNIX/Linuxは「マルチユーザー前提」なんで、作業場所の/homeフォルダ以外はユーザーに「触らせない」ように設計されています。Windowsがパンティだけ穿いてる裸の女だとしたらLinuxは重装備、まるでアラブ人の女、です。そういう設計思想の違いがある。
従って、実は件のページ

https://qiita.com/yKanazawa/items/866c1e4ef024be …

はちょっとおかしくって、/etc/内にあるファイルを「直接変更しろ」って指示はフツーはしないんですよ。Linuxを普段使ってる側からすると「???」とか思います(まぁ、もちろん、Dockerの設計がLinuxをベースとしながら「色々と違うトコがある」可能性は捨てきれませんけれども)。
一応、「Linuxの常識」としては、管理者権限がある場所に置かれたファイルを「上書き可能」とは言え、直接弄るのは好みませんので、「追加設定が必要な場合」は全部homeフォルダに適したファイルを作って置くのが流儀となります。そうすれば、マルチユーザー前提のOSである以上、Aと言うユーザーが好みで行った設定はBと言うユーザーの環境には影響を与えない。そういう風に「ユーザー毎に好きなように環境を設定出来る」のがLinuxの特色なのです。
んで、フツーはユーザーがaliasを設定する場合、.bash_profileってファイルを/homeフォルダ内に作成します。
詳しくは次のページに譲りますんで、Dockerの再インストールを試みるのなら、参考にしてみて下さい。

【Linux】エイリアスの設定方法:
https://qiita.com/yKanazawa/items/866c1e4ef024be …
    • good
    • 0

良く分からんのですが、aliases.shを上書きしたら駄目になった、って事ですかね?バックアップは取ってない?


(何か設定ファイルを変更する場合、バックアップファイル(例えば*.bkとか)を作っておくのは定石です)。

上書きしたのが問題だったら、単純に

1. もう一回Dockerをインストールし直す
2. どっかからaliases.shをコピーしてきて、そいつをツッコむ

のどっちか、が有効な手でしょう。

完全にオリジナルかどうか知りませんが、次のページを発見しました。


jgrodziski/docker-aliases.sh:
https://gist.github.com/jgrodziski/9ed4a17709baa …

一回、こいつをaliases.shと言うファイルにコピペしてみて、所定の位置に置いて、上手く行くかどうか見てみてください。
(違ったら原因は別にあって、素直にDockerを再インストールした方が良いと思います。)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
仰る通り、バックアップは取らずに誤って上書きしてしまった状況です・・・

Dockerのaliases.shというよりは、いじったのはwindows側なので、どちらかというと直すならそちらかなと思ったのですが、これをコピペしてしまって大丈夫なものでしょうか?
Docker再インストールですか・・・Git側の再インストールはしましたがそちらはしていませんでしたので、やってみようと思います。

お礼日時:2020/10/21 19:35

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