CATATAN: Silakan lihat edit kedua saya di bawah ini untuk pembaruan tentang masalah tersebut.
Cygwin bekerja dengan baik untuk saya sampai minggu lalu. Sekarang .bashrc tidak didapatkan. Saya harus menginstal sesuatu atau mengubah sesuatu tetapi saya tidak ingat persis apa yang menyebabkan masalah. Ketika saya memulai Cygwin, saya di rumah Windows saya dan tidak ada alias saya yang berfungsi. Saya harus secara manual sumber .bashrc. Berikut ini adalah Cygwin.bat saya:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
Ada ide?
EDIT: .bash_profile saya berisi yang berikut,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2: PENTING! Ketika saya memulai Cygwin dimulai di folder home Windows saya. Saya mencoba meletakkan .bash_profile dan .bashrc saya di folder ini dan mereka bersumber dengan benar! Ini berarti bahwa masalahnya telah dikurangi untuk mencari tahu mengapa Cygwin mulai di folder home Windows dan bukan folder home Cygwin yang normal.
EDIT3: Hasil menjalankan 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
echo $HOME
dicetak?/cygdrive/c/Users/foo
daripadaC:\Users\foo
)HOME=/home/yourname bash -l
di terminal prompt? Jika saya benar, ini seharusnya memberi Anda shell yang berfungsi dengan baik. Perhatikan bahwa ini adalah diagnostik, atau paling tidak solusi, bukan solusi; kami masih perlu mencari tahu mengapa Anda$HOME
salah sejak awal. Masalah root adalah pengaturan salah$HOME
; bash berperilaku dengan benar.Jawaban:
The Cygwin FAQ menjelaskan bagaimana
$HOME
diatur:Tebakan terbaik saya adalah Anda telah mengacaukan
/etc/passwd
file Anda . (Direktori home Windows%USERPROFILE%
tidak%HOME%
.)Apa yang
grep USERNAME /etc/passwd
dicetak (digantiUSERNAME
dengan nama pengguna Anda)?sumber
set HOME=
? Menggunakan panel kontrol Sistem lebih mungkin untuk bekerja, tetapi restart mungkin diperlukan bahkan saat itu.Jika Anda memiliki .profile atau .bash_profile, itu bersumber pada shell login, dan Anda mendapatkan shell login sejak Anda lulus
--login
. Jika Anda sumber .profile, maka bash tidak akan sumber .bashrc.Saya akan mencoba untuk menempatkan:
di profil Anda, lihat apakah itu membantu. .Bashrc Anda masih harus bersumber, seperti biasa, dalam permintaan shell non-login lainnya.
Dan jangan
-i
sampai bash; kamu tidak membutuhkannya. Bash jenis hack yang ada, berpura-puralah Anda berikan-i
pada baris perintah.sumber
-i
tidak perlu. Terima kasih.-i
pada baris perintah. Cobalah membuka jendela bash shell, makaecho $-
, Anda akan melihati
(di antara kemungkinan bendera lainnya)Saya mengalami perilaku yang sama - mungkin setelah git (Windows) diinstal.
Dalam pengaturan sistem saya telah menemukan variabel pengguna HOME = C: \ Users \ me dan mengatur ulang ini ke HOME = D: \ home
sumber