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
Aneh
sumber
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).

Gjallar
sumber
21

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

Lri
sumber
+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

Fajar Ulin Nuha
sumber
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.

mau
sumber
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.

Tagihan
sumber
-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.

CortexCompiler
sumber