web-dev-qa-db-ja.com

MinGW Bashプロファイル

Windows 7では MinGW を使用しています。.bashrcにいくつかのエイリアスが含まれています。このファイルは、MinGWが起動するホームフォルダーにあるので、そのフォルダーがホームフォルダーであると見なされます。フォルダーの内容は自動的には読み込まれません。エイリアスを機能させるには、bashコマンドを実行する必要があります。

名前を.bash_profileに変更してみました。これは自動的に読み込まれず、手動でbashを実行したときに読み込まれなかったため、事態はさらに悪化しました。

この問題を解決するにはどうすればよいですか?

38
KurToMe

bashは、ログインシェルとして開始されている可能性があります。その場合、.bashrcは自動的に読み取られません。代わりに、.bash_profileを読み取ります。 Bashマニュアル から:

したがって、通常、 `〜/ .bash_profile 'には次の行が含まれます

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

ログイン固有の初期化の後(または前)。

要約すると、ホームディレクトリに.bash_profileファイルを作成し、上記で引用した行を追加します。

bashが実際にshとして呼び出されている場合は、.profileの代わりに.bash_profileを使用する必要があります(「shで呼び出された名前」セクションを参照)。上記のbashの手動リンク)。

50
jjlin

Windowsを実行していますXPと同じ問題がありました。HOWTO Create a MSYS Build Environment

これは重要な行です:

ランタイムビルドと現在の作業ディレクトリを識別するために、以下を~/.profileファイルに追加できます。

MinGWシェルで.profileを作成しました:

cd ~
touch .profile

Notepad ++ を使用して、.profileという名前のUnix形式のテキストファイルとして編集し、ホームディレクトリC:\MinGW\msys\1.0\home\Your_Username_Here\.profileに保存しました

次に、エイリアスを追加して保存しました。

alias n='nano -w'

次に、スタートメニューからMinGW Shellショートカットを起動したところ、うまくいきました! nano テキストの折り返しなし。

これがお役に立てば幸いです。

8
Bryan

私は.bash_profileが機能するのを見つけられなかった(それが読み取られていなかった)ので、.profileアプローチをとり、その中に入れました:

exec bash

これは、現在のシェルを、.bashrcを読み取るbashの新たなスタートに置き換えます

.profileを使用すると、shがログイン時に使用され、bashではないことが示唆されると思います。

2
Paul Munsey

GITと共にインストールされたMINGWの私にとっては、働いた:.bash_profile put in C:\Users\[user_name]

これは、シェル(pwd)で〜が指すディレクトリでもあります。

そのように:)

1
Koshmaar

@Koshmarrの線に沿って、少し異なります。ぼくの mingw64git-scm.com からダウンロードすると、/c/Users/[user-name] 始めるとき。それでも私の家のドライブ(cd ~)は/h/.bashrcおよび.bash_profile私の~ドライブとすべてが働いた。

.bash_profile

    source ~/.bashrc;

MINGWがホームと見なす場所を見つけて、.bash_profile そこ。

0
Bryan

MSYS Bash初期化ファイルを設定する方法

Windows OSでは、Bashが使用する初期化ファイル(つまり、プロファイル、bash_profile、bashrc)を指す方法は、Linux OSとは異なります。

Windows OSとLinux OSの違いは、ファイルシステムの構造にあります。これにより、Bashファイルの場所とファイルの命名規則が異なります。

MSYS Bash初期化ファイル(つまり、プロファイル、bash_profile、およびbashrc)のセットアップ方法

1)WINOSで、「C:\ msys\1.0\etc \」にある「etc」フォルダーを開きます。注意。 「etc」フォルダー内に「profile」ファイルが表示されます。

2)ファイル拡張子のないファイルを保存します(つまり、保存するときに、ファイルの種類を「.all files」に設定して「.bash_profile」を「C:\ msys\1.0\home\USERNAME」に保存します。注意。 Linux OS Bashのセットアップで予想されるように、ファイル名の接頭辞としてドットがあります(例: '.bash_profile')。

2)ファイル拡張子のないファイルを保存します(つまり、保存するときに、ファイルの種類を「.all files」に設定して「.bashrc」を「C:\ msys\1.0\home\USERNAME」に保存します。注意。 Linux OS Bashのセットアップで予想されるように、ファイル名の接頭辞としてドットがあります(例: '.bash_profile')。

4)テキストエディターで「プロファイル」ファイルを開きます(崇高なテキストxが適切です)注:「プロファイル」のファイルの場所は「C:\ msys\1.0\etc \」です。

「プロファイル」ファイル内で、ファイルの最後にあるテキスト行までスクロールします(つまり、一番下までスクロールします)。Bashが現在のディレクトリをHOMEに変更することを示すテスト行が表示されます(MSYSでは、HOMEは「プロファイル」ファイル)

CD $HOME

5)「CD $ HOME」というテキストが含まれる行の前に、次のコードをコピーします。「profile」内にこのスクリプトを追加すると、MSYS bashにbash_profileを実行するように指示します#---------------- -------------------------------------------------- ---------#変更されたBEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
echo '[i] INFO loading personal environment variables and startup   programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END
#---------------------------------------------------------------------------

6)「bash_profile」ファイルをテキストエディターで開き( Sublime Text xでよい)、ファイルの終わり(ファイルの下部)

7)ファイルの最後に次のコードをコピーします。このスクリプトを「.bash_profile」内に追加すると、「。bashrc」を実行するようにBashに指示されます

#---------------------------------------------------------------------------
#modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END

#------------------------------------------------- --------------------------

8)それでは、「。bashrc」内に小さなスクリプトを記述して、「profile」が「bash_profile」を呼び出しているかどうか、および「bash_profile」が「.bashrc」を呼び出しているかどうかを確認しましょう。

8.1)作成したいコマンド名を考えてください。テストを意味する「t」を使用しましょう

8.2)Bashターミナルを開き、「t」と入力します。 Bashは「t:コマンドが見つかりません」と返信する必要があります。「t:コマンドが見つかりません」と表示されない場合は、コマンド名に「コマンドが見つかりません」と表示されるまで8.1と8.2を繰り返します。 bash BAD!に割り当てられているコマンド名にエイリアスを設定したくないので、「コマンドが見つかりません」である必要があります

8.3)わかりました、「t」は私に「t:コマンドが見つかりません」を与えました。では、スクリプトを '.bashrc'に書きましょう

8.4) '.bashrc'に

# Use double quotes or bash will not write it
alias t="echo passed test"

8.5)ファイル「.bashrc」を「C:\ msys\1.0\home\USERNAME」に保存します

9)もう少しです。 Bashターミナルを再起動し、以前に開いたBashターミナルを必ず閉じてください。

10)端末「t」を入力します。 「合格したテスト」と返信する必要があります。そうでない場合は、コードが正しく記述されていることを注意深く確認します(引用符の確認から始めます)。

注意事項1)「ソースファイル名」は「」と同じです。ファイル名'

2) ""二重引用符を使用すると、変数をその内容で置き換えることができます。単一引用符ではできません。

3)$ HOMEは/ home/USERNAMEであり、〜は/ home/USERNAMEと同じです

4)関数は常にエイリアスより優先されます 2

詳細については、BASHリファレンスを参照してください

私はバッシュが初めてです。したがって、私がこれを最善の方法で行ったという保証はありません。

幸運を!

0
Atom