Jawaban:
Gunakan chsh
utilitas seperti ini:
chsh -s bash
Apple telah chsh
sedikit berubah pada Mac OS X dibandingkan dengan yang chsh
akan Anda lihat di Linux misalnya. Anda dapat membaca tentang mereka di halaman chsh Mac OS X Man .
Perhatikan bahwa Anda hanya akan diizinkan untuk mengubah shell yang terdaftar di /etc/shells
. Ini biasanya baik-baik saja, tetapi itu berarti bahwa jika Anda ingin menginstal Bash 4 (dari Homebrew, MacPorts, atau kompilasi Anda sendiri), Anda perlu menambahkan baris ke /etc/shells
. (Saya mengalami ini beberapa minggu yang lalu, dan berpikir itu mungkin membantu orang lain untuk mengetahui ...)
Sunting : Tim Smith menunjukkan bahwa Anda dapat mengatasi /etc/shells
batasan jika Anda menjalankan chsh
sebagai root via sudo
. Misalnya sudo chsh -s /usr/local/bin/my_shell $USER
akan berfungsi, meskipun my_shell
tidak terdaftar dalam /etc/shells
. Saya lebih suka mengedit /etc/shells
, tetapi pada akhirnya, itu adalah salah satu penggunaan dari sudo
kedua cara karena Anda tidak dapat mengedit /etc/shells
sebagai pengguna biasa. Jadi mungkin enam dari satu, setengah lusin lainnya.
/etc/shells
jika Anda tidak harus melakukannya? Untuk kewarasan, saya lebih suka menyimpan file sistem yang sama.
/etc/shells
adalah file pada sistem yang mendefinisikan shell yang dikenali. Saya mengubah file itu karena saya ingin menambahkan shell ke daftar shell yang dikenali. Tampaknya masuk akal bagi saya.
chsh: bash: non-standard shell
chsh
sendiri jika Anda mencoba menggunakan shell yang tidak terdaftar /etc/shells
.
/etc/shells
aneh bagiku.
Untuk melakukan ini menggunakan Mac OS X GUI:
Yang perlu diperhatikan, lokasi ini adalah tempat Anda dapat mengubah direktori rumah, UUID, ID Pengguna, ID Grup, dan nama pendek jika Anda tidak nyaman dengan Terminal. Ada pertanyaan serupa yang terletak di sini juga.
Menggunakan jawaban di atas saya mendapatkan pesan kesalahan:
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
Untuk mengatasi ini:
sudo chsh -s zsh $(whoami)
whoami
dalam subkulit adalah untuk mengubah shell untuk pengguna Anda, bukan root.
Satu hal lagi jika Anda menggunakan homebrew. Ketika Anda menjalankan perintah sebagai root (menggunakan sudo
), zsh menunjuk ke / bin / zsh, yang datang dengan OSX dan mungkin sudah usang. Untuk menggunakan yang terbaru yang diinstal melalui homebrew, gunakan yang berikut ini:
sudo chsh -s $(which zsh) $(whoami)