MinGW Bashプロファイル


37

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

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

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


パスは次のとおりでした:C:\ MinGW \ msys \ 1.0 \ home \ Your_Username_Here \ .profile

回答:


48

bashおそらくログインシェルとして開始されますが、その場合は.bashrc自動的に読み込まれません。代わりに、読み取ります.bash_profileBashマニュアルから:

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

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

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

要約すると、.bash_profilehomedirにファイルを作成し、上に引用した行を追加します。

あなたの場合はbash、実際として呼び出さなっているsh、あなたが使用する必要があります.profile代わりに.bash_profile(上記バッシュマニュアルのリンクの「呼び出されshという名前を持つ」セクションを参照してください)。


1
アイデアをありがとう、うまくいきませんでした。私が質問で言ったように、エイリアスコマンドを.bash_profileに入れることはまったく機能しないので、それは読まれないようです。
-KurToMe

5
これは、代わりに.profileファイルに入れることを除いて、あなたが言ったことを正確に行うというアイデアを与えてくれました。何らかの理由で機能しました(おそらくMinGWはデフォルトでBashを使用していないか、おかしなものではありません)。このオプションを回答に追加すると、承認済みとしてマークされます。
-KurToMe

1
ああ、私が修正した質問にタイプミスがありました、私は質問でそれを呼び出してい.bash_rcましたが、私は意味しました.bash_profile
-KurToMe

やや簡潔:[ -f ~/.bashrc ] && . ~/.bashrc
リッチホモルカ

1
@KurToMe私はあなたの状況をカバーするために編集しました。
-jjlin

8

Windows XPを実行していますが、同じ問題がありました。HOWTO Create an MSYS Build Environmentを見つけました。

これは重要な行です:

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

MinGWシェルで、私は作成しました.profile

cd ~
touch .profile

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

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

alias n='nano -w'

次に、スタートメニューからMinGWシェルショートカットを起動しましたが、うまくいきました!ナノテキストの折り返しのない。

これがあなたのお役に立てば幸いです。


あなたが言っていることはわからない...〜はユーザーのホームディレクトリを意味します...そしてあなたの述べるc:\ MinGW \ msys \ 1.0 \ home ...それはティルダが参照である意味をなさないWindows上のユーザのホーム...その%USERPROFILE%...
エディ・B

2

私は.bash_profileが私のために働くことを見つけていませんでした(それは読まれていませんでした)ので、私は.profileアプローチを取り、その中に入れました:

exec bash

これにより、現在のシェルが新しい.bashrcで始まるbashの開始に置き換えられます。

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


1

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

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

ちょうどそのように:)


0

@Koshmarrに沿っていますが、少し異なります。git-scm.commingw64からダウンロードしたMyは、起動時に読み込まれます。それでも、私の自宅のドライブ(によって発見された)はにありました。私は私のドライブに入れて、すべてがうまくいきました。/c/Users/[user-name]cd ~/h/.bashrc.bash_profile~

.bash_profile

    source ~/.bashrc;

MINGWが自宅をどこで考慮するかを把握して、.bash_profileそこに置いてください。


0

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

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

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

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

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

2)ファイル拡張子なしのファイルを保存します(つまり、保存するときに、保存の種類を「.allファイル」に設定します)。ファイル名は「.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 \」です。

「プロファイル」ファイル内で、ファイルの最後にあるテキスト行までスクロールします(つまり、一番下までスクロールします)。 「プロファイル」ファイル)

CD $HOME

5)「CD $ HOME」というテキストの行の前に次のコードをコピーします-「profile」内にこのスクリプトを追加すると、MSYS bashにbash_profileを実行するよう指示されます#---------------- -------------------------------------------------- --------- #modified 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'内にこのスクリプトを追加すると、Bashに '.bashrc'を実行するように指示します

#---------------------------------------------------------------------------
#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)OK、「。bashrc」内に小さなスクリプトを作成して、「profile」が「bash_profile」を呼び出しているかどうか、「bash_profile」が「.bashrc」を呼び出しているかどうかを確認しましょう。

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

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

8.3)OK、「t」は「t:command not found」をくれました。スクリプトを「.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リファレンスを参照してください

私はBashが初めてです。したがって、これを最善の方法で行った保証はありません。

がんばろう!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.