“-Bash: ls: command not found”

30

Saya menginstal pembaruan terbaru ke OS X Lion (10.7). Setelah saya melakukannya, terminal saya tidak akan mengenali perintah normal. Saya mengetik lsdan mendapatkan:

-bash: ls: command not found

Saya pikir saya akan mencoba menambahkan usr / bin ke jalur saya, tetapi saya tidak dapat menemukan .bash_profile untuk mengeditnya karena mengetik edit .bash_profiletidak akan berhasil. Saya tidak dapat mengatur Finder untuk menampilkan semua file karena terminal saya tidak akan mengenali perintah yang diperlukan untuk melakukan itu.

apa yang harus saya lakukan?

LuxuryMode
sumber
2
Mari kita cari jalan dan lihat apa yang bergetar. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binrekatkan bagian yang gelap (atau ketik SANGAT DENGAN HATI-HATI) - karena ada dua perintah yang hilang - sesuatu yang mendera jalur Anda. Sebelum melakukan sesuatu yang besar, menendang cadangan mungkin lebih bijaksana.
bmike
1
@ sepeda terima kasih! menambahkannya ke .bash_profile dan semuanya berfungsi sekarang. harus membuka .bash_profile seperti ini: /usr/bin/vi ~/.bash_profileMasukkan itu sebagai jawaban dan saya dapat menerimanya!
LuxuryMode

Jawaban:

42

Karena dua perintah hilang sesuatu "menginjak" jalur Anda.

Sebelum melakukan sesuatu yang besar, menendang cadangan mungkin lebih bijaksana.

Path default pada Mac OS X 10.7 (Lion) adalah sesuatu seperti ini:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Jika Anda menyetel ulang jalur dengan mengetikkan di atas ke dalam jendela shell, dan kemudian mengetiknya export PATHharus memperbaiki satu jendela itu.

Jadi Anda bisa mulai di sana dan melihat apa lagi yang salah dan memperbaikinya dalam file titik startup Anda atau di tempat lain.

Kerusakan ini hampir selalu merupakan sesuatu yang perlu Anda perbaiki dalam file dot Anda. Untuk bash, edit dan perbaiki .bash_profiledan / atau .bashrcdengan membatalkan perubahan baru-baru ini, cukup atur $ PATH yang Anda butuhkan lagi. Kesalahan yang biasa terjadi adalah menetapkan jalur baru dan tidak merujuk ke nilai variabel sebelumnya di sisi kanan =

bmike
sumber
2
Bagi saya, ini memberikan perbaikan sementara.
Etienne Low-Décarie
2
Terima kasih! Saya sedikit mengerut ketika lstidak berfungsi setelah memperbarui .bash_profile😂
Adrian
Yeah @Adrian kesalahan sintaks atau PATH kosong dapat menyebabkan kegelisahan yang intens 😅🤭🤬🔥
bmike
Ini memberi perbaikan sementara. Saya harus mengulangi semua langkah begitu saya memulai kembali CMD
Pawan
Ini masih berfungsi untuk Mac OS 10.14.3
Stephen Romero
11

Ini harus memperbaiki masalah sepenuhnya dan secara permanen.

pertama, ekspor jalur lingkungan dengan menggunakan perintah di bawah ini di terminal.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

sekarang Anda memiliki perintah yang Anda inginkan. (mis. coba ls. Anda akan melihat perintahnya berfungsi). Tapi ini hanya untuk sesi saat ini. Jika Anda menutup terminal dan membuka yang baru, Anda akan memiliki masalah sebelumnya. Untuk membuat perubahan ini permanen, gunakan perintah di bawah ini,

buka direktori home

cd ~

buka file .bash_profile di nano / vim (Saya menggunakan nano di sini)

nano .bash_profile

Ini akan membuka editor nano. Di baris baru, rekatkan yang berikut;

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH

tekan 'control' + 'o' untuk menyimpan (WriteOut) dan 'control' + 'x' untuk keluar dari nano.

Semua selesai ! Sekarang coba perintahnya.

Kavin Ranawella
sumber
3

Bagi saya sepertinya /etc/profiletidak dijalankan pada startup shell. Ini adalah file startup global yang bertanggung jawab untuk menginisialisasi PATH. Periksa apakah /etc/profileada dan dapat dibaca dan dieksekusi dengan perintah berikut:

. /etc/profile

Jika tidak ada di sana, Anda harus mengembalikannya dari cadangan atau mesin lain dengan Lion terinstal, atau menginstal Lion lagi. Jika ada tetapi tidak dapat dieksekusi, coba gunakan Disk Utility untuk Memperbaiki Izin Disk.

Jika memang ada dan dapat dieksekusi (dan mengandung beberapa kode), baik itu mungkin tidak dijalankan ketika seharusnya atau skrip startup Anda entah bagaimana bisa menimpanya. Sebagai solusinya, coba letakkan . /etc/profiledi awal Anda ~/.bash_profileuntuk memastikan itu berjalan. Jika Anda masih mengalami masalah, tambahkan echo $PATHsetelah menjalankannya untuk melihat apakah PATH diinisialisasi dengan benar. Jika ya, sesuatu dalam skrip Anda mengubahnya.

Inilah konten default /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helpermembangun PATH default. Anda bisa mencoba berlari

unset PATH; /usr/libexec/path_helper -s

untuk melihat apa yang dihasilkannya.

Bagaimanapun, jika masalahnya tidak ada dalam skrip startup Anda, silakan hubungi dukungan Apple http://www.apple.com/support/contact/ atau laporkan bug di https://bugreport.apple.com Saya ingin memberi tahu Apple bahwa ada masalah.

Chris Page
sumber
unset PATH; /usr/libexec/path_helper -smenunjukkan saya PATH yang tidak terkandung di blog saya /etc/profile. Ada saran?
Etienne Low-Décarie
Menjalankan . /etc/profilesementara memperbaiki masalah. Saya telah menempel ke bagian atas saya ~/.bash_profile, tetapi tampaknya ini tidak berjalan baik.
Etienne Low-Décarie
1
Periksa halaman bash man untuk daftar lengkap file startup dan urutan pencariannya. Misalnya, jika Anda memiliki file login, maka lebih penting daripada profil. Periksa file startup lainnya.
Chris Page
1

Untuk memastikan bahwa itu memang masalah dengan jalan Anda, apa akibatnya /bin/ls?

Jika berhasil, daripada Anda harus mengembalikan jalur /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binAnda, Anda dapat menggunakan misalnya VIjalur siapa (pada mac saya) /usr/bin/vi.

Cedric H.
sumber
0

Saya berpikir untuk berbagi kesalahan yang membawa saya ke kesalahan ini - setidaknya dalam kasus saya,

Ketika saya menambahkan baru PATHdi ~/.bash_profile, aku lupa untuk menambahkan :$PATHdi ujung jalan yang saya baru saja menambahkan.

Saya menggunakan perbaikan sementara (perintah berikut di terminal) yang sudah ditunjukkan oleh master di sini untuk kembali ke bash_profile karena saya tidak bisa menggunakan perintah vi untuk membukanya di tempat pertama.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Begitu saya masuk, saya memperbaiki kesalahan saya.

(Masalah data negatif!)

AshlinJP
sumber
-1

Saya mencoba untuk mengatur jalan pakar saya ke variabel lingkungan ketika ini terjadi. Jadi saya baru saja memindahkan file .profile dan .bash_profile saya ke trash dan mencoba lagi dan berhasil.

shahid610169
sumber
-1

Menyetel ulang terminal Anda akan berhasil. Ini akan mengatur ulang konfigurasi dasar Anda.

Setel ulang terminal Anda. Dari navigasi atas, buka Shell >> Reset.

masukkan deskripsi gambar di sini

Ashish Vitthal Dalvi
sumber
1
Bagaimana mengatur ulang Terminal untuk menyelesaikan masalah bash?
nohillside
-2

Sepertinya variabel PATH Anda rusak. Periksa apakah kebetulan Anda memodifikasi variabel PATH dalam skrip Anda atau cukup periksa PATH dengan mengatakan echo $ PATH dan Anda dapat memastikan jika tidak ada yang rusak.

Nauman
sumber
-3

Anda dapat mengekspor jalur sebagai berikut:

export PATH = $ PATH: / bin: / usr / local / bin

pravin
sumber
3
Selamat Datang di Tanya Berbeda! Pertanyaan ini sudah memiliki jawaban yang diterima dan jawaban Anda tidak berbeda secara materi dari jawaban yang diterima. Silakan lihat FAQ berikut tentang bagaimana memberikan jawaban yang baik: apple.stackexchange.com/help/how-to-answer
FSB