Terminal Mac: mengganti shell saya, sekarang tidak dapat memulainya

5

Saya menginstal bash 4.0 melalui MacPorts, lalu digunakan sudo chsh -s /opt/local/bin/bash my_useruntuk mengganti shell saya.

Sebelumnya saya hanya mencoba menjalankan chshtanpa sudo, tetapi tidak memungkinkan saya untuk mengubah shell saya ke jalan itu.

Sekarang ketika saya mencoba untuk memulai Terminal saya mendapatkan pesan bahwa shell saya memiliki nilai ilegal, sehingga Terminal tidak akan memulai. Saya klik Berhenti, dan, tidak mengejutkan tetapi menyebalkan, itu langsung berhenti.

terminal lumpuh

  1. Bagaimana cara mereset shell saya agar saya dapat memulai Terminal lagi?
  2. Bagaimana cara mengatur shell saya ke bash yang diinstal melalui MacPorts dengan cara yang akan bekerja?
  3. Mengapa Terminal menganggap cangkang saya ilegal? Apakah itu berpihak pada neo-pelarangan?

Mac OS X 10.5.8. Semuanya super mega mutakhir.

kch
sumber

Jawaban:

0

Buka ~ / Library / Preferences / com.apple.Terminal.plist dan atur kunci "Shell" menjadi "/ bin / bash", lalu coba lagi membuka Terminal. Jika ini tidak berhasil, X11.app mungkin dapat membuka terminal. Kalau tidak, Anda akan buntu membuat pengguna baru dengan admin privs dan mengatur ulang shell Anda di sana.

Pastikan / opt / local / bin / bash dapat dieksekusi dengan menjalankannya di Terminal. Jika tidak:

chmod +x /opt/local/bin/bash

Juga, / opt / local / bin / bash harus berupa baris di / etc / shells.

ACoolie
sumber
1
Tidak ada kunci Shell di terminal Terminal. X11 membuka xterm dengan sesi yang dapat digunakan. Dari sana saya sudo vim /etc/shells, menambahkan baris untuk bash MacPorts. Setelah itu saya bisa membuka Terminal lagi. /opt/local/bashsudah 755.
kch
1
Jadi, saya menerima jawaban Anda, tetapi jika Anda dapat mengeditnya untuk mencerminkan catatan saya dari komentar sebelumnya ... Terutama bagian di mana file plist tidak memiliki kunci Shell.
kch
1
Dan saya kira untuk seseorang yang tidak memiliki X11 (saya kira itu adalah instalasi opsional, kan?), Seseorang masih bisa boot ke mode pengguna tunggal, mount untuk rw, dan edit /etc/shells.
kch
Kunci Shell akan kosong atau tidak akan ada jika Anda memiliki "shell login default" yang dipilih dalam preferensi. Anda harus menambahkan item bernama "Shell" dengan jenis "String" dan nilai "/ bin / bash"
ACoolie
10

Metode lain untuk mengubah shell Anda (mirip dengan perintah chsh tetapi menggunakan GUI) untuk profil pengguna Anda adalah dengan melakukan hal berikut:

  1. Buka System Preferences.app
  2. Buka Panel Preferensi Akun
  3. Jika perlu, buka gembok
  4. Tahan kontrol dan klik atau klik kanan pada akun Anda di daftar akun.
  5. Pilih Opsi Tingkat Lanjut ...
  6. Ubah nilai di mana dikatakan Login shell: ke jalur ke bash shell yang ingin Anda gunakan.

Saya akan merekomendasikan pengaturan ulang kembali ke / bin / bash dan kemudian di Terminal memastikan bahwa /opt/local/bin/bashberfungsi dengan benar dengan menjalankan /opt/local/bin/bashsebelum mencoba mengubahnya lagi.

Mengapa dikatakan Anda tidak diizinkan adalah karena Mac OS X menyimpan daftar shell yang "diizinkan" /etc/shells/sehingga Anda perlu mengedit file itu dan menambahkannya /opt/local/bin/bashke daftar itu.

Chealion
sumber
Saya lupa saya telah mengubah bash shell saya menjadi satu dari homebrew. baru saja borked dan saya tidak bisa memperbaikinya sampai saya menemukan balasan ini. Terima kasih untuk save!
Joseph Sheedy
1
Kamu luar biasa. Terima kasih atas perbaikannya. Mencoba mengubah ke bash 4.0 dan itu menghancurkan semua cangkang saya.
djangofan
6

Masalahnya di sini adalah /etc/shellsfile. File ini berisi daftar semua shell yang diizinkan untuk digunakan sebagai shell login. Jika Anda ingin menggunakan bash yang diinstal MacPorts, Anda harus mengedit file ini untuk memasukkan path ke shell tertentu.

Lily Ballard
sumber
1

Saya mendapat masalah yang sama setelah pembaruan ke Lion.

Anda harus mencari di / etc Anda mungkin menemukan file seperti shell ~ orig dan shells. Kembalikan kerang ~ orig ke kerang.

Semoga berhasil.

oko
sumber