LƯU Ý: Vui lòng xem chỉnh sửa thứ hai của tôi dưới đây để cập nhật về vấn đề.
Cygwin đã làm việc tốt cho tôi cho đến tuần trước. Bây giờ .bashrc không nhận được nguồn gốc. Tôi đã phải cài đặt một cái gì đó hoặc thay đổi một cái gì đó nhưng tôi không thể nhớ chính xác những gì gây ra vấn đề. Khi tôi khởi động Cygwin, tôi đang ở nhà Windows và không có bí danh nào hoạt động. Tôi phải tự tìm nguồn .bashrc. Sau đây là Cygwin.bat của tôi:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
Có ý kiến gì không?
EDIT: .Bash_profile của tôi chứa các mục sau đây,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2: QUAN TRỌNG! Khi tôi khởi động Cygwin, nó bắt đầu trong thư mục Windows của tôi. Tôi đã thử đặt .bash_profile và .bashrc của mình vào thư mục này và chúng có nguồn gốc chính xác! Điều này có nghĩa là vấn đề đã được giảm xuống để tìm ra lý do tại sao Cygwin bắt đầu trong thư mục nhà Windows chứ không phải thư mục nhà Cygwin bình thường.
EDIT3: Kết quả chạy 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
/cygdrive/c/Users/foo
chứ không phải C:\Users\foo
)
HOME=/home/yourname bash -l
tại dấu nhắc thiết bị đầu cuối? Nếu tôi đúng, điều này sẽ cung cấp cho bạn vỏ hoạt động đúng. Lưu ý rằng đây là một chẩn đoán, hoặc tốt nhất là một cách giải quyết, không phải là một giải pháp; chúng tôi vẫn cần phải tìm ra lý do tại sao bạn $HOME
không chính xác ở nơi đầu tiên. Vấn đề gốc là cài đặt không chính xác $HOME
; bash đang cư xử chính xác.
echo $HOME
in cái gì?