注:問題の最新情報については、以下の2回目の編集をご覧ください。
Cygwinは先週まで私のためにうまく働いていました。現在、.bashrcはソースされていません。何かをインストールしたか、何かを変更したに違いありませんが、問題の原因を正確に思い出せません。 Cygwinを起動すると、Windowsのホームにいて、エイリアスが機能しません。手動で.bashrcを入手する必要があります。以下は私のCygwin.batです:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
何か案は?
編集:私の.bash_profileには次のものが含まれています、
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2:重要! Cygwinを起動すると、Windowsのホームフォルダーから起動します。 .bash_profileと.bashrcをこのフォルダーに入れてみましたが、正しくソースされていました。これは、Cygwinが通常のCygwinホームフォルダーではなくWindowsホームフォルダーで起動する理由を理解することで問題が軽減されたことを意味します。
EDIT3:grep Gulshan/etc/passwd /を実行した結果
$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
Cygwin FAQ は、$HOME
の設定方法を説明しています。
WindowsからCygwinを起動する場合、
HOME
は優先度の高い順に次のように決定されます。
- Windows環境からの
HOME
、POSIX形式に変換。/etc/passwd
のエントリ/home/USERNAME
ネットワーク(telnet、ssh、...)からCygwinを使用する場合、
HOME
は/etc/passwd
から設定されます。
HOME
が/cygdrive/c
などの値に設定されている場合は、Windowsで設定されている可能性があります。 DOSコマンドウィンドウを起動し、set HOME
と入力して、これが当てはまるかどうかを確認します。共有ドライブへのアクセスは、ネットワークから開始するときに制限されることが多いため、ドメインユーザーは、Windows環境(共有ドライブ上)と
/etc/passwd
(ローカルドライブ上)で異なるHOME
を使用したい場合があります。 sshは、HOME
を無視して、/etc/passwd
のみを考慮することに注意してください。
私の推測では、/etc/passwd
ファイルを台無しにしたと思います。 (Windowsのホームディレクトリは%USERPROFILE%
ではなく%HOME%
です。)
grep USERNAME /etc/passwd
は何を出力しますか(USERNAME
をユーザー名に置き換えます)?
ログインシェルをソースとする.profileまたは.bash_profileがあり、--login
を渡すと、ログインシェルが取得されます。 .profileをソースする場合、bashはnot source.bashrcになります。
私は入れようとします:
[ -f $HOME/.bashrc ] && source $HOME/.bashrc
.profileで、それが役立つかどうかを確認します。 .bashrcは、通常どおり、他の非ログインシェル呼び出しでソースされている必要があります。
そして、-i
をbashに渡さないでください。あなたはそれを必要としません。コマンドラインで-i
を指定したふりをするBashのようなハック。
私は同じ動作を経験しました-おそらくgit(Windows)をインストールした後です。
システム設定で、ユーザー変数HOME = C:\ Users\meを見つけ、これをHOME = D:\ homeにリセットしました。