Saya tidak suka mengetik ulang ikan setiap kali saya memulai terminal. Saya ingin fishaktif secara default. Bagaimana saya bisa mengatur shell ikan sebagai shell default saya di Mac?
Saya tidak suka mengetik ulang ikan setiap kali saya memulai terminal. Saya ingin fishaktif secara default. Bagaimana saya bisa mengatur shell ikan sebagai shell default saya di Mac?
Jawaban:
Ini berlaku untuk MacOS Sierra 10.12.5 (16F73) dan mungkin beberapa versi MacOS terbaru dan yang akan datang.
chshtidak cukup untuk mengubah shell default. Pastikan Anda menekan Command+ ,ketika terminal Anda terbuka dan ubah opsi 'Kerang terbuka dengan' menjadi 'Kerangka masuk default.'
Jika terjadi bash, pastikan Anda mengeksekusi echo $BASH_VERSIONuntuk mengonfirmasi bahwa Anda menjalankan versi bash yang dimaksud. bash --versiontidak memberi Anda informasi yang benar.
Preferencesdari Terminal.app . Lihat Jawaban ini oleh Pankaj.
1. sudo nano / etc / shells

2. tambahkan / usr / local / bin / fish ke daftar shells Anda

3. chsh -s / usr / local / bin / fish
Shell open with: Default login shellpengaturan Terminal.app
Anda dapat menggunakan chsh untuk mengganti shell pengguna.
Jalankan kode berikut, misalnya, untuk mengubah shell Anda ke Zsh
chsh -s /bin/zsh
Seperti dijelaskan dalam manual ini, dan oleh Lorin, jika shell tidak diketahui oleh OS, Anda harus menambahkannya ke daftar yang diketahui: /etc/shells.
chsh: /usr/local/bin/fish: non-standard shell Solusi adalah menambahkannya ke / etc / shells seperti dijelaskan oleh @ lorin-hochstein jawaban di bawah ini
-solah). Saya akan coba lagi nanti.
Dari Terminal:
Tambahkan Fish ke /etc/shells, yang akan memerlukan kata sandi administratif:
sudo echo /usr/local/bin/fish >> /etc/shells
Jadikan Fish sebagai shell default Anda dengan chsh:
chsh -s /usr/local/bin/fish
Dari System Preferences:
Pengguna dan Grup → ctrl-klik Pengguna Saat Ini → Opsi Lanjutan ...
Ubah shell Login ke /usr/local/bin/fish

Tekan OK, keluar dan masuk lagi
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Berikut cara lain untuk melakukannya:
Dengan asumsi Anda menginstalnya dengan MacPorts, yang dapat dilakukan dengan melakukan:
sudo port install fish
Shell Anda akan berlokasi di /opt/local/bin/fish.
Anda perlu memberi tahu OSX bahwa ini adalah shell yang valid. Untuk melakukan itu, tambahkan jalur ini ke akhir /etc/shellsfile.
Setelah selesai, Anda dapat mengganti shell dengan masuk ke System Preferences -> Accounts. Klik pada Kunci untuk mengizinkan perubahan. Klik kanan pada akun, dan pilih "Opsi Lanjutan ...". Di bidang "Login shell", tambahkan path ke fish.
Satu-satunya hal yang berhasil bagi saya adalah kombinasi dari semua metode ini.
Pertama saya harus menambahkan ikan ke /etc/shellsfile
Lalu aku berlari chsh -s /usr/local/bin/fish
Akhirnya, saya mengetik Command+ ,dan menambahkan /usr/local/bin/fishke jalur default di sana
Hanya setelah saya melakukan ketiga hal tersebut, ikan mulai bermunculan sebagai default untuk windows terminal baru.
Preferences> General> Shells open with:>/bin/fish/usr/local/bin/fish.Lihat screenshot ini di mana zshsedang ditetapkan sebagai default.
Saya menggunakan macOS Sierra . Juga berfungsi di macOS Mojave .
Pada macOS Mojave saya harus melakukan hal berikut (menggunakan zsh sebagai contoh):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh. Sudah hadir di macOS Mojave. Dibundel pada Mojave, dan default di Catalina.
Cara mendapatkan versi bash terbaru di macOS modern (diuji di Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Kemudian Anda siap untuk mendapatkan penyelesaian tab gaya vim yang hanya tersedia di bash> = 4 (versi saat ini brewadalah 5.0.2
# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete
# Display a list of the matching files
bind "set show-all-if-ambiguous on"
# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
yang chshProgram akan membiarkan Anda mengubah shell default Anda. Ini akan menginginkan path lengkap ke executable, jadi jika shell Anda fishmaka ia ingin Anda memberikan output yang diberikan saat Anda mengetik which fish.
Anda akan melihat garis yang dimulai dengan " Shell:". Jika Anda belum pernah mengeditnya, kemungkinan besar tertulis " Shell: /bin/bash". Ganti /bin/bashjalur itu dengan jalur ke shell yang Anda inginkan.
Ini berfungsi untuk saya pada instalasi baru mac osx (sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
> cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >
ubah saja nilai itu (dengan perintah tulis di dscl).
Untuk mengubah shell default Anda di mac jalankan yang berikut:
chsh -s <name-of-shell>
Daftar kerang yang dapat Anda pilih adalah:
jadi jika Anda ingin mengubah dari ke / bin / zsh shell, perintah Anda akan terlihat seperti:
chsh -s /bin/zsh
Anda dapat melihat semua shell yang tersedia di sistem Anda dengan menjalankan:
cat /etc/shells