Setel ulang jalur Anda sekarang (yaitu sebelum segala jenis logout) dengan:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Itu tidak mendapatkan PATH lengkap Anda dikembalikan tetapi utilitas dasar akan tersedia lagi.
Berikut ini contoh hal yang terjadi:
Anda memiliki variabel PATH (disebut $ PATH saat membaca darinya)
Sesuatu seperti:
$ 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
Anda mencoba menambahkannya, tetapi Anda tidak sengaja menggunakannya
PATH=PATH:other_dir
dari pada
PATH=$PATH:other_dir
dan hasilnya adalah jalanmu menjadi
PATH:other_dir
dan kemudian semua utilitas seperti ls dan sed tidak berfungsi
Anda dapat memperbaiki set minimal dengan melakukan
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
yang sangat berguna jika file titik login mengacaukan PATH
Anda. Periksa file .bashrc dan / atau .bash_profile Anda untuk mengetahui perubahan PATH.
Seperti kata Greg, Anda juga bisa keluar (atau opsi yang lebih aman, buka jendela baru jika membuka jendela baru rusak!) Dan kemudian gema $ PATH dari jendela baru.
Hal yang sama terjadi ketika Anda melakukannya path=
tanpa nilai. Ini 'menghapus' jalur Anda saat ini dan menyebabkan masalah ini. Teks yang kuat
Adapun alasannya , ketika Anda memiliki masalah ini, cd berfungsi dan ls tidak berfungsi:
cd
adalah perintah "bawaan" yang tidak memerlukan PATH Anda untuk menemukan program
ls
adalah program dan perlu menggunakan PATH untuk menemukan di mana itu.
Anda dapat melihat ini dengan:
$ 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
$
Tidak ada kesalahan berarti perintah itu adalah builtin
Sebelum 'melanjutkan' (atau keluar) ...
Pastikan untuk menguji setiap perubahan ( terutama yang ke .bashrc, .profile, dll yang melakukan perintah pengaturan PATH) dengan membuka jendela baru atau melakukan source ~ / .bash_profile untuk menjalankannya. Ini juga merupakan praktik yang baik untuk menjaga jendela dan editor (ketika Anda mengubah file .bash_profile) terbuka jika perubahan Anda tidak berfungsi dan mencegah Anda membuka jendela baru untuk mengedit file. Meskipun Anda masih dapat menggunakan TextEdit atau editor sederhana lainnya untuk mengubah file (menghindari baris perintah dan vi misalnya). Berhati-hatilah untuk TIDAK me-reboot jika / ketika shell Anda rusak atau Anda bahkan mungkin tidak bisa login. dan itu benar-benar buruk (tanpa akun lain su
dari Anda disemprot). Telah terjadi pada saya!
Perbaikan 'akun ekstra' saya juga merupakan penyelamat hidup dan sangat dianjurkan untuk semua (lakukan sekarang!)