Cara mengatur ulang Bash di Mac OSX, .bash_profile rusak dan bash tidak lagi berfungsi


17

Saya menggunakan MacBook Pro, menjalankan Mountain Lion versi terbaru.

Saya benar-benar membutuhkan bantuan, saya telah mengatur beberapa cara untuk merusak .bash_profile saya (saya pikir) sehingga setiap kali saya membuka terminal saya mendapatkan kesalahan yang tercantum di bawah ini.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

Saya tidak yakin apa yang terjadi, saya tidak memiliki sudo, cd atau perintah normal apa pun. Satu-satunya cara saya bisa mendapatkan ke salah satu direktori utama adalah melalui perintah pergi ke folder di finder dan mencoba mencari file tidak berhasil.

Untuk melengkapi semuanya, saya pikir saya membuat file yang mungkin menyebabkan masalah, saya ingin mengedit .bash_profile jadi saya mengetik

sudo nano ./bash_profile

Ini membuka file baru di nano yang saya pikir kemudian disimpan. Setelah ini saya membuka .bash_profile nyata untuk menambahkan path untuk node.js.

Jika saya dapat membuka .bash_profile, saya pikir saya dapat mengembalikannya ke jalurnya tetapi saya tidak dapat menemukannya, haruskah saya menginstal ulang bash? Jika demikian, bagaimana saya melakukannya pada mac, saya mencoba menggunakan

brew install bash

yang saya dapatkan

-bash: brew: command not found

Hal pertama yang saya coba adalah mengubah shell yang berbeda untuk dapat menyelesaikan masalah: lihat di sini tentang cara melakukan itu support.apple.com/kb/TA27005 . Ini akan memungkinkan Anda untuk memodifikasi / menghapus file yang menyinggung dan mengubah shell kembali ke bash.
Gjallar

Terima kasih, saya telah mencoba menginstal ulang bash tetapi satu-satunya hal yang telah berubah adalah itu -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifiertelah hilang. Satu hal yang saya perjuangkan adalah baris pertama mungkin disimpan, saya telah mencari di .bash_profile, .profile dan .bashrc saya tetapi tidak ada.
Strangeone

Ok jadi saya menambahkan /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binke .bash_profile saya dan tampaknya sudah memperbaiki bash tapi saya masih mendapatkan kesalahan ini -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierAda ide?
Strangeone

Bisakah Anda mencoba yang berikut ini: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesDan di jalur baru export PATH.
Gjallar

Terima kasih, itu sepertinya berhasil. Tolong bisakah saya bertanya mengapa Anda berpikir itu akan berhasil?
Strangeone

Jawaban:


12

Cukup kumpulkan semua komentar saya untuk jawaban:

Hal pertama yang harus Anda lakukan adalah mengganti shell, dengan cara ini Anda dapat mengatur shell yang tidak akan memuat bash init-scripts ( .bashrc, .bash_profile) - cara melakukan ini untuk aplikasi terminal Mac OS X dapat dilihat di sini: Dukungan Apple

Sekarang Anda harus dapat membuka terminal lagi dan menggunakan editor baris perintah favorit Anda untuk membuka .bash_profilefile (misalnya nanoatau vi):

Dalam file ini, Anda harus mengatur ulang PATHvariabel yang digunakan oleh terminal untuk menemukan program yang dapat dijalankannya.

Ini dapat dilakukan dengan dua baris berikut:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

Ini pertama-tama akan menetapkan direktori yang ingin Anda miliki di PATH Anda dan ekspor PATH ini untuk membuatnya tersedia untuk semua program yang dimulai dari shell ini (melalui ekspor).


21

⇧⌘. memperlihatkan file tersembunyi dalam dialog file. Anda dapat mencoba membuka ~ / .bash_profile dengan TextEdit dan membuatnya kosong untuk sementara.


+1 untuk pintasan keyboard bermanfaat yang saya tidak tahu :)
Michel

catatan: .bash_profile ada di direktori home Anda (Users / [username] /. bash_profile
Amos

Terima kasih @Lri, selamatkan hari saya!
Vicky_Vignesh

4

Saya menjalankan masalah yang sama, dan saya baru saja menemukan solusi yang lebih sederhana:

/usr/bin/nano .bash_profile

hapus semua kekacauan Anda, lalu simpan file tersebut


Jawaban Terbaik. Mudah dan dijamin bekerja.
nikk wong

3

Saya tahu ini adalah utas lama tetapi hanya ingin meninggalkan solusi saya dengan harapan ada orang lain yang memiliki masalah yang sama.

Ketika saya menjalankan terminal dari MacOS tidak masalah dengan pengguna saya sendiri, tetapi ketika diubah menjadi sudo tidak bisa berfungsi (perintah tidak ditemukan).

Saya akhirnya memperbaikinya dengan:

nano ~/.bashrc

Baru saja menghapus jalur yang menyebabkan kesalahan. Restart terminal dan semuanya bekerja dengan baik sekarang.


0

Saya baru-baru ini menemukan bahwa file gaya DOS menyebabkan masalah untuk kedua skrip .bash * di OS-X. Saya harus menggunakan ujung file DOS untuk beberapa kode yang dibagikan dengan pengguna Windows, jadi jika saya mengedit .bash_profile ketika dalam repo git saya mendapatkan banyak pesan kesalahan saat menjalankan skrip (saat login). Utilitas dos2unix memperbaikinya.


-1

Selain menampilkan file tersembunyi yang disebutkan sebelumnya dan menggunakan editor teks, ada juga cara yang lebih mudah untuk membuka shell baru tanpa mengubah shell default Anda. Anda dapat alt-klik aplikasi Terminal dan pilih "Perintah Baru ...". Kemudian ketik "sh" ke dalam dialog dan jalankan itu. Ini akan membuka shell non-bash dan Anda dapat mengedit file di sana. Di masa mendatang, sebaiknya membuka shell atau mencoba menjalankan .bash_profile baru sebelum keluar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.