Điểm:4

Sao chép biến PATH của hệ thống (snap/bin:/snap/bin)

lá cờ jp

Khi tôi chạy tiếng vang $PATH đầu ra trùng lặp snap/bin:/snap/bin xuất hiện ở cuối và có vẻ bất thường.

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/ thùng rác

Là sự trùng lặp này không mong muốn? Nếu vậy, làm thế nào điều này có thể được thay đổi?

Điểm:5
lá cờ gr

Có lẽ, trong bạn ~/.bashrc hoặc trong của bạn ~/.profile có một lệnh thêm /snap/bin đến $PATH mà không cần kiểm tra trước nếu nó vẫn còn trong $PATH.

Hãy xem xét rằng các mục trùng lặp trong $PATH biến không có bất kỳ tác động nào khi bạn chạy lệnh có trong $PATH. Mặt khác, sự chậm lại có thể xuất hiện khi bạn chạy một lệnh không có trong $PATH (bởi vì việc tìm kiếm lệnh được thực hiện vô ích, hai lần trở lên khi có các mục nhập trùng lặp), mặc dù tôi nghĩ rằng rất khó để nhận ra sự chậm lại này. Các mục trùng lặp cũng hơi khó chịu khi bạn muốn kiểm tra trực quan $PATH Biến đổi.

Nếu bạn muốn tránh các mục trùng lặp trong $PATH, bạn có thể thêm lệnh này vào ~/.profile tập tin (có nghĩa là vị trí tốt nhất cho các biến môi trường):

# loại bỏ các đường dẫn trùng lặp trong biến PATH
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"

Lệnh này sử dụng awk để xác định mọi mục trong $PATH biến (chúng được phân tách bằng phương tiện của : nhân vật) và xây dựng lại $PATH biến tránh thêm lại các thư mục trùng lặp. Nó cũng giữ nguyên loại ban đầu của các thư mục bên trong $PATH Biến đổi.

Bạn có thể mở ~/.profile với trình soạn thảo văn bản ưa thích của bạn. Nếu mở bằng terminal thì không cần sudo bởi vì nó thuộc về người dùng của bạn.

XJMZX avatar
lá cờ jp
Cảm ơn bạn rất nhiều. Điều đó làm cho một số điều rõ ràng hơn trong tâm trí của tôi về những gì đang xảy ra với vaiables môi trường, bash.rc và .profile - nếu tôi có thể hỏi, nếu .profile là nơi tốt nhất, thì tại sao các lệnh khác lại chỉ định ~/.bashrc ? Chẳng hạn như, echo "export PATH=$PATH:~/go/bin:/usr/local/go/bin" >> ~/.bashrc
Lorenz Keel avatar
lá cờ gr
Kiểm tra https://superuser.com/questions/183845/ which-config-files-nên-be-used-for-setting-bash-environment-variables/183956#183956 và https://superuser.com/a/183980
Lorenz Keel avatar
lá cờ gr
Nếu bạn đang sử dụng zsh, có thể liên kết này có thể cung cấp cho bạn thêm một số thông tin: https://superuser.com/a/187673
XJMZX avatar
lá cờ jp
Cảm ơn. Điều đó sẽ giúp ích.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.