Saya tidak suka mengetik ulang ikan setiap kali saya memulai terminal. Saya ingin fish
aktif 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 fish
aktif 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.
chsh
tidak 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_VERSION
untuk mengonfirmasi bahwa Anda menjalankan versi bash yang dimaksud. bash --version
tidak memberi Anda informasi yang benar.
Preferences
dari 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 shell
pengaturan 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
-s
olah). 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/shells
file.
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/shells
file
Lalu aku berlari chsh -s /usr/local/bin/fish
Akhirnya, saya mengetik Command+ ,dan menambahkan /usr/local/bin/fish
ke 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 zsh
sedang 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 brew
adalah 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 chsh
Program akan membiarkan Anda mengubah shell default Anda. Ini akan menginginkan path lengkap ke executable, jadi jika shell Anda fish
maka 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/bash
jalur 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