Bagaimana cara mengatur shell saya di Mac OS X?

21

Saya tahu saya dapat mengatur "Kerang terbuka dengan" di preferensi Terminal, tapi saya ingin tahu apakah ada cara sistem-lebar pengaturan ini (mirip dengan memperbarui / etc / passwd di beberapa Unix).

nall
sumber

Jawaban:

24

Gunakan chshutilitas seperti ini:

chsh -s bash

Apple telah chshsedikit berubah pada Mac OS X dibandingkan dengan yang chshakan Anda lihat di Linux misalnya. Anda dapat membaca tentang mereka di halaman chsh Mac OS X Man .

John T
sumber
Dan di sini saya pikir itu adalah sesuatu yang rumit dengan beberapa utilitas khusus OSX, heh. Terima kasih.
nall
@ John - belajar dengan baik :)
akira
Ya saya tahu jawabannya terakhir kali juga, saya baru saja dikalahkan! :(
John T
19

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/shellsbatasan jika Anda menjalankan chshsebagai root via sudo. Misalnya sudo chsh -s /usr/local/bin/my_shell $USERakan berfungsi, meskipun my_shelltidak terdaftar dalam /etc/shells. Saya lebih suka mengedit /etc/shells, tetapi pada akhirnya, itu adalah salah satu penggunaan dari sudokedua cara karena Anda tidak dapat mengedit /etc/shellssebagai pengguna biasa. Jadi mungkin enam dari satu, setengah lusin lainnya.

Telemakus
sumber
Mengapa berubah /etc/shellsjika Anda tidak harus melakukannya? Untuk kewarasan, saya lebih suka menyimpan file sistem yang sama.
ma11hew28
@MattDiPasquale Saya tidak yakin apa yang Anda maksud dengan "kewarasan". /etc/shellsadalah 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.
Telemakus
Alt bagus cara, untuk beberapa alasan chsh tidak akan bekerja untuk saya. Saya mengerti ; chsh: bash: non-standard shell
RyBolt
@RyBolt Kanan: alasannya mungkin apa yang saya sebutkan dalam jawabannya. Anda tidak dapat menggunakan chshsendiri jika Anda mencoba menggunakan shell yang tidak terdaftar /etc/shells.
Telemakus
@ Telemakus, saya hanya mencoba untuk mengubah ke bash shell asli yang datang dengan build Mac OSX default saya. Mungkin itu tidak /etc/shellsaneh bagiku.
RyBolt
10

Untuk melakukan ini menggunakan Mac OS X GUI:

  1. Buka "System Preferences."
  2. Buka panel preferensi "Akun" / "Pengguna & Grup" dan buka kunci panel preferensi jika berlaku.
  3. Pada pengguna yang ingin Anda ubah shell, control+ klik atau klik kanan pada pengguna dan pilih "Opsi Lanjutan ..."
  4. Di mana dikatakan "Login Shell:" ubah ini ke shell yang ingin Anda gunakan.

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.

Chealion
sumber
5

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)
phil pirozhkov
sumber