MinGW-w64とMSYS2をインストールしました。しかし、どうすればMSYS2のHOMEディレクトリを変更できますか? cd $ homeまたはcd〜と入力すると、定義した別のディレクトリに移動します。
そして、開始ディレクトリが常に.batファイルが置かれる場所になるように、コードをどのように記述しますか?
Cmdでは、次のコードを使用しました。
%〜d1 cd "%〜p1"呼び出しコマンド
デスクトップでcmdを開くと、デスクトップのディレクトリから起動します。
Msys2で同様のことをするにはどうすればよいですか?
WindowsのホームフォルダーをMSYS2のホームフォルダーとして使用する場合は、/ etc/nsswitch.confを編集して次のように記述します。
db_home: windows
Msys2は$ HOME dirであるため、Windows%HOME%を使用します。 %HOME%を環境変数に設定すると(Msys2を使用するために必要なWindowsディレクトリーに)、これは機能します。
シェルの起動スクリプトの1つ(例:~/.bash_profile
ここで~
はデフォルト/元のホームディレクトリ)で、$ HOME環境変数を変更できます。
export HOME=/something/else
シェルをそのディレクトリで開く場合は、$HOME
を設定した後、cd
を(引数なしで)実行する必要があります。私はそれをテストしていません。
MSYS2を作成または変更する/etc/passwd
ファイル。これを行う2つの方法を以下に示します。
次のコマンドはMSYS2シェルから実行でき、ファイルが存在するかどうか、および現在のユーザーが既に含まれているかどうかに関係なく、安全に機能します。
$ grep "^${USERNAME}:" /etc/passwd >/dev/null 2>&1 || mkpasswd | grep "^${USERNAME}:" >>/etc/passwd
次に、/etc/passwd
、および関連するユーザーのホームディレクトリフィールド(6番目のコロン区切りフィールド)を変更します。
$ vim /etc/passwd
ボーナス:最初のフィールドを編集してMSYS2ユーザー名を変更することもできます。
必要に応じて、現在のホームディレクトリのコンテンツを新しいホームディレクトリに移動します。
ログオフして、再度ログインします。
/etc/passwd
編集は手動での編集なしで行うことができますが、これにより、MSYS2シェルに貼り付けるためのより複雑なコマンドラインが作成され、/etc/passwd
ファイルは既に存在し、ユーザー名が既に含まれています:
__DIR="/path/to/home"
mkpasswd | grep "^${USERNAME}:" | \
awk -v DIR="${__DIR}" -v RS=":" -v ORS="/n" \
'NR == 6 { printf(DIR ":"); next } { printf("%s", $0) } NR < 7 { printf(":") }' - >>/etc/passwd
HOME変数を設定するバッチファイルを作成しました。
set HOME=C:\Users\%USERNAME%
C:\LocalApp\PortableGit\git-bash.exe
これにより、.bash_profileをこのHOMEに配置できます(パフォーマンスが非常に遅いデフォルトのネットワークロケーションではありません)。