Mac'te varsayılan kabuğumu nasıl ayarlarım?


190

Terminali her başlattığımda balığı yeniden yazmayı sevmiyorum. fishVarsayılan olarak istiyorum . Mac'te balık kabuğunu varsayılan kabuğum olarak nasıl ayarlayabilirim?

Yanıtlar:


31

Bunlar MacOS Sierra 10.12.5 (16F73) ve muhtemelen MacOS'un yeni ve gelecek sürümleri için geçerlidir.

  1. chshvarsayılan kabuğu değiştirmek için yeterli değildir. Terminaliniz açıkken Command+ tuşuna bastığınızdan emin olun ,ve 'Kabuklar birlikte aç' seçeneğini 'Varsayılan giriş kabuğu' olarak değiştirin.

  2. Bash durumunda, bash'ın echo $BASH_VERSIONistenen sürümünü çalıştırdığınızı doğrulamak için yürüttüğünüzden emin olun . bash --versionsize doğru bilgi vermez.


3
Bu cevap kabul edilen cevap olduğu için, belki de başka bir cevaba ek olarak bir ek olmak yerine, eki dahil etmek için tam bir cevap yapabilirsiniz.
Jason R.Combs

Bu, dokümanlarda şimdi yanıtlanmaktadır .
reergymerej

@ JasonR.Coombs Bitti.
Tushar Vazirani

1
Güncelleme: Şimdi varsayılan kabuğunu ayarlayabilirsiniz Preferencesait Terminal.app . Bkz bu Yanıtı Pankaj tarafından.
Basil Bourque

Tercihler için klavye kısayolundan bahsettim.
Tushar Vazirani

242

1. sudo nano / vb / kabukları resim açıklamasını buraya girin

2. kabuklar listenize / usr / local / bin / fish ekleyin resim açıklamasını buraya girin

3. chsh -s / usr / yerel / depo gözü / balık


2
Ve Shell open with: Default login shellTerminal.app
Tikhonov Alexander

77

Bir kullanıcının kabuğunu değiştirmek için chsh kullanabilirsiniz .

Örneğin, kabuğunuzu Zsh olarak değiştirmek için aşağıdaki kodu çalıştırın

chsh -s /bin/zsh

Manpage açıklandığı gibi kabuk OS tarafından bilinmiyorsa ve Lorin tarafından, onun bilinen listesine eklemek zorunda: /etc/shells.


13
Güvenilir ve got chsh: /usr/local/bin/fish: non-standard shell altında lorin-Hohstein cevap @ tarafından açıklanan Çözüm bunu / etc / kabukları eklemek oldu
lmsurprenant

dbright @ PowerMac: ~ $ chsh -s / Kullanıcılar / dbright / sys / bin / bash dbright için kabuk değiştirme. Dbright için şifre: chsh: / Kullanıcılar / dbright / sys / bin / bash: standart dışı kabuk dbright @ PowerMac: ~ $ ls -l / etc / kabuklar -rw-r - r-- 1 kök tekerlek 179 Eyl 23 2007 / etc / shells
don parlak

Hum, son zamanlarda basit bir kullanıcı olarak çalıştı chsh denedim ( -sgerçi olmadan ). Yakında tekrar deneyeceğim.
Aif

73

Terminalden:

  1. /etc/shellsYönetici parolasına ihtiyaç duyan Fish'i ekleyin :

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Fish ile varsayılan kabuğunuzu yapın chsh:

    chsh -s /usr/local/bin/fish
    

Sistem Tercihleri'nden:

  1. Kullanıcı ve Gruplar → Geçerli Kullanıcı → Gelişmiş Seçenekler'e ctrl tıklayın ...

  2. Giriş kabuğunu olarak değiştir /usr/local/bin/fish

    giriş kabuğu

  3. Tamam'a basın, oturumu kapatıp tekrar açın


8
1. adıma hafif bir değişiklik yapmak zorunda kaldım. -sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
Ocak'ta mortonik

Aynı şeyi yapmanın sadece başka bir yolu @purpletonic bahsettiecho /usr/local/bin/fish | sudo tee -a /etc/shells
mroach

20

İşte bunu yapmanın başka bir yolu:

MacPorts ile kurduğunuz varsayılarak, aşağıdakileri yaparak yapılabilir:

sudo port install fish

Sizin kabuk içinde yer alacaktır /opt/local/bin/fish.

OSX'e bunun geçerli bir kabuk olduğunu söylemeniz gerekir. Bunu yapmak için, bu yolu /etc/shellsdosyanın sonuna ekleyin .

Bunu yaptıktan sonra, Sistem Tercihleri ​​-> Hesaplar bölümüne giderek kabuğu değiştirebilirsiniz. Değişikliklere izin vermek için Kilitle'yi tıklayın. Hesaba sağ tıklayın ve "Gelişmiş Seçenekler ..." i seçin. "Giriş kabuğu" alanına balık yolunu ekleyin.


Teşekkürler! Bu harika çalıştı ve balık benim varsayılan terminal her yerde yaptı. sadece diğer pencerelerden biri gibi terminalde değiştirerek her pencereyi kapattığımda terminal istemi yaptım ve chsh sadece benim için çalışmadı.
jasongregori

12

Benim için işe yarayan tek şey, tüm bu yöntemlerin bir kombinasyonuydu.

  1. Önce /etc/shellsdosyaya balık eklemek zorunda kaldım

  2. Sonra koştum chsh -s /usr/local/bin/fish

  3. Sonunda Command+ yazdım ,ve /usr/local/bin/fishoradaki varsayılan yola ekledim

Sadece üç şeyi yaptıktan sonra balıklar yeni terminal pencereleri için varsayılan olarak ortaya çıkmaya başladı.



8

Terminal.app > Preferences> General> Shells open with:>/bin/fish

  1. Terminalinizi açın ve command+ ,(virgül) tuşuna basın . Bu bir tercihler penceresi açar.
  2. İlk sekme 'Genel'dir.
  3. 'Kabuklar şununla açılır' ayarını bulun ve kabuğa giden tam yolu gerektiren 2. seçeneği belirleyin.
  4. Bağlantıyı genellikle olan balık komutunuza yapıştırın /usr/local/bin/fish.

zshVarsayılan olarak ayarlanan bu ekran görüntüsüne bakın .

Terminal.app tercihlerine <code> / bin / zsh </code> girmenin ekran görüntüsü

MacOS Sierra kullanıyorum . Ayrıca macOS Mojave'de çalışır .


2
Sonunda! Sudo olmayan bir kullanıcı için çalışan bir çözüm!
Ébe Isaac

7

MacOS Mojave'de aşağıdakileri yapmak zorunda kaldım (örnek olarak zsh kullanarak):

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

Not: Bu tam yöntemi bash'ın en son sürümünü almak için de kullanabilirsiniz. stackoverflow.com/a/55011144/117471 Hemen hemen aynı kodu kendi başıma buldum.
Bruno Bronosky

1
Yüklemeye gerek yok zsh. MacOS Mojave'de zaten var. Mojave'de paketlenmiş ve Catalina'da varsayılan.
Basil Bourque

5

Modern macOS'ta bash'ın en son sürümü nasıl elde edilir (Mojave'de test edilmiştir).

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

O zaman sadece bash = = 4'te mevcut olan vim stili sekmesi tamamlamaya hazırsınız (şu anki sürüm brew5.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"

4

chshProgram varsayılan kabuk değiştirmek izin verir. Yürütülebilir dosyanın tam yolunu isteyecektir, bu nedenle kabuğunuz ise, fishyazarken verilen çıktıyı vermenizi isteyecektir which fish.

" Shell:" İle başlayan bir satır göreceksiniz . Daha önce hiç düzenlemediyseniz büyük olasılıkla " Shell: /bin/bash" der . Bu /bin/bashyolu istediğiniz kabuğa giden yolla değiştirin .


4

Terminaldeyken Command+ ile terminal tercihlerini açın ,.

Ayar Sekmesinde, temalardan birini seçin ve sağdaki kabuk sekmesini seçin.

Autostart komutunu ayarlayabilirsiniz fish.


4

Mac OSX (Sierra) 'nın yeni yüklemesinde bu iş benim için:

  1. Mevcut kullanıcıyı mermilerin sahibi olarak tanımla
sudo chown $(whoami) /etc/shells
  1. / Etc / shell'e Balık Ekleyin
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Chsh ile Balık'ı varsayılan kabuğunuz yapın
chsh -s /usr/local/bin/fish
  1. Kökü kabukların sahibi olarak yeniden tanımla
sudo chown root /etc/shells

2
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 >

sadece bu değeri değiştirin (write komutu ile dscl).


Ben okuma leeg çalıştırdığımda bu hatayı alıyorum: <dscl_cmd> DS Hata: -14136 (eDSRecordNotFound)
Léo Léopold Hertz 준영

1
Evet. Çünkü leeg benim kullanıcı adım , senin değil: P

0

Diğer yollarla sorun yaşıyorsanız, mac Mojave üzerinde çalıştı, ancak genellikle çalışmalıdır.

which fish

"Sistem Tercihleri> Kullanıcılar ve Gruplar> sağ tıklama kullanıcısı, Gelişmiş Seçenekler" e çıkış yolunu ekleyin. Sonucu "Giriş kabuğu" na yapıştırın.


0

Mac'te varsayılan kabuğunuzu değiştirmek için aşağıdakileri çalıştırın:

chsh -s <name-of-shell>

Seçebileceğiniz mermilerin listesi:

  1. / Bin / bash
  2. / Bin / csh
  3. / Bin / tire
  4. / Bin / ksh
  5. / Bin / sh
  6. / Bin / tcsh
  7. / Bin / zsh

yani / bin / zsh kabuğuna geçmek istiyorsanız, komutunuz şöyle görünecektir:

chsh -s /bin/zsh

çalıştırarak sisteminizdeki tüm kullanılabilir kabukları görebilirsiniz:

cat /etc/shells
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.