Đặt lại đường dẫn của bạn ngay bây giờ (tức là trước bất kỳ loại đăng xuất nào) với:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Nó không được khôi phục PATH đầy đủ của bạn nhưng các tiện ích cơ bản sẽ có sẵn một lần nữa.
Đây là một ví dụ về loại điều xảy ra:
Bạn đã có một biến PATH (được gọi là $ PATH khi đọc từ nó)
Cái gì đó như:
$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin
Bạn đã cố gắng thêm vào nó, nhưng bạn đã vô tình sử dụng
PATH=PATH:other_dir
thay vì
PATH=$PATH:other_dir
và kết quả là con đường của bạn đã trở thành
PATH:other_dir
và sau đó tất cả các tiện ích như ls và sed không hoạt động
Bạn có thể sửa tập tối thiểu bằng cách thực hiện
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Điều này đặc biệt hữu ích nếu các tệp chấm đăng nhập đang làm rối PATH
của bạn Kiểm tra các tệp .bashrc và / hoặc .bash_profile của bạn để biết bất kỳ thay đổi PATH nào.
Như Greg nói rằng bạn cũng có thể chỉ cần đăng xuất (hoặc tùy chọn an toàn hơn, mở một cửa sổ mới trong trường hợp mở một cửa sổ mới bị hỏng!) Và sau đó lặp lại $ PATH từ một cửa sổ mới.
Điều tương tự xảy ra khi bạn làm path=
không có giá trị. Nó 'xóa sạch' đường dẫn hiện tại của bạn và gây ra những vấn đề này.
Về lý do , khi bạn gặp những vấn đề này, cd hoạt động và ls không hoạt động:
cd
là một lệnh "tích hợp" không cần PATH của bạn để tìm chương trình
ls
là một chương trình và cần sử dụng PATH để tìm vị trí của nó.
Bạn có thể thấy điều này với:
$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$
Không có lỗi có nghĩa là lệnh là nội dung
Trước khi "di chuyển" (hoặc đăng xuất) ...
Đảm bảo kiểm tra mọi thay đổi ( đặc biệt là các thay đổi đối với .bashrc, .profile, v.v. đang thực hiện các lệnh cài đặt PATH) bằng cách mở một cửa sổ mới hoặc thực hiện nguồn ~ / .bash_profile để chạy nó. Đó cũng là một cách tốt để giữ cho cửa sổ và trình chỉnh sửa (khi bạn thay đổi tệp .bash_profile) mở trong trường hợp các thay đổi của bạn không hoạt động và ngăn bạn mở các cửa sổ mới để chỉnh sửa tệp. Mặc dù bạn vẫn có thể sử dụng TextEdit hoặc một trình soạn thảo đơn giản khác để thay đổi tệp (ví dụ như tránh dòng lệnh và vi). Cẩn thận KHÔNG khởi động lại nếu / khi vỏ của bạn bị hỏng hoặc thậm chí bạn không thể đăng nhập. và điều đó thực sự rất tệ (không có tài khoản khác su
từ bạn bị hos). Đã xảy ra với tôi!
Tuy nhiên, bản sửa lỗi 'tài khoản bổ sung' của tôi cũng là một trình bảo vệ cuộc sống và rất được khuyến khích cho tất cả mọi người (hãy thực hiện ngay bây giờ!)