Tôi đã thay đổi biến số HOME HOME của tôi và bây giờ không thể tìm thấy ăn ~ / .bash_profile 'để thay đổi lại


15

Tôi đã loay hoay với các biến môi trường trên máy Mac của mình, cố gắng học cách sử dụng chúng và tôi đã sử dụng lệnh nano ~/.bash_profilesau đó tôi đã thêm dòng HOME=/Users/MyCompName/Desktopđể cập nhật biến nhà của mình.

Thay đổi này có hiệu quả và có thể thấy khi tôi sử dụng printenvđể xem tất cả các biến môi trường nhưng khi tôi HOMEquay lại thay đổi, tôi dường như không thể tìm thấy ~/.bash_profilenữa. Nó đã đi đâu?


9
Về cơ bản ~có nghĩa là$HOME
el.pescado

6
... vì vậy nếu bạn xác định lại $HOME, cũng ~được xác định lại
el.pescado

Câu trả lời:


32

Nó ở cùng một chỗ.

Trước khi thay đổi ~mở rộng thành một cái gì đó như /Users/YourUserName, vỏ tìm thấy bạn .bash_profileở đó. Sau khi tệp được ~mở rộng sang một đường dẫn khác để ~/.bash_profilekhông còn trỏ đến tệp có liên quan. Điều này là bởi vì trong bối cảnh này ~có nghĩa $HOME.

Nếu bạn biết đường dẫn đầy đủ đến thư mục chính thực tế của mình, bạn có thể sử dụng nó thay vì ~. Trong Mac, nó có thể trông như thế này:

nano /Users/YourUserName/.bash_profile

Hoặc để Bash của bạn tra cứu thư mục chính của bạn trong cơ sở dữ liệu người dùng thay vì chỉ nhìn vào $HOME. Điều này không đòi hỏi bạn phải nhớ bất cứ điều gì:

nano ~YourUserName/.bash_profile

Sửa đổi HOMEbiến của bạn mà không thay đổi thư mục nhà thực tế của bạn không phải là ý tưởng tốt nhất. Thay đổi bất kỳ thư mục nhà của người dùng là một nhiệm vụ quản trị, thông thường người dùng thông thường không thể làm điều này.


Tuyệt vời tôi đã có thể tìm thấy nó một lần nữa cảm ơn! Bạn có phiền giải thích về ý của bạn khi "sau khi tập tin có nguồn gốc" không? Tôi không quen với ý nghĩa của một tập tin có nguồn gốc
Matt

6
@Matt .bash_profilecó dạng tập lệnh Bash. Bạn có thể chạy một tập lệnh hoặc nguồn nó. Chạy có nghĩa là tạo một lớp con và thực thi dòng script theo dòng ở đó. Tìm nguồn có nghĩa là thực thi tập lệnh trong trình bao hiện tại . Một số tác vụ có nghĩa là ảnh hưởng đến trình bao hiện tại không thể được thực thi trong một lớp con; thay đổi một biến cho shell hiện tại là một trong số đó. Đó là lý do tại sao một số tệp có nguồn gốc, không được thực hiện trong một lớp con. Để tự tìm nguồn sử dụng tệp . file( .được chỉ định bởi POSIX) hoặc source file( sourcelà phần mở rộng không phải POSIX được hiểu bởi một số shell).
Kamil Maciorowski


2
Nếu bạn (Matt) không biết thư mục chính của bạn đã từng ở đâu, bạn có thể sử dụng nano ~YourUserName/.bash_profilethay thế. Điều này sẽ tra cứu thư mục nhà của bạn trong cơ sở dữ liệu người dùng thay vì chỉ nhìn vào $ HOME.
Stig Hemmer

1
@StigHemmer Câu trả lời bây giờ là wiki cộng đồng. Nhận xét hữu ích của bạn đã được đồng hóa. Cảm ơn bạn.
Kamil Maciorowski
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.