Mac OS X'te (iTerm'de) zsh'yi bir giriş kabuğu olarak çalıştırmak nasıl?


149

Mac OS X'te zsh bir giriş kabuğu olarak ayarlandığında, iTerm tarafından başlatıldığında, zsh, '-zsh' ('-' arg [0]) karakterinin bir giriş kabuğu olarak başlaması gerektiği anlamına gelir.

Yani, giriş kabuğunu bash olarak ayarladığımda, bash bu ilk '-' $ 0'da tanıyor ve bir giriş kabuğu olarak çalışıyor, ancak zsh, öyle görünmesine rağmen.

Zsh değişkeninin [0] içindeki '-' değerini tanımasını sağlamanın veya iTerm'in kabuğu --login komut satırı argümanıyla çalıştırmasını sağlamanın bir yolu var mı?


2
Bunun sorulmasından bu yana bir süre geçtiğini biliyorum, ama lütfen @Harold Putman'ın cevabını kabul etmeyi düşünün. Sorunun hangi adreslerde sorulduğu tek.
Craig S. Cottingham

Yanıtlar:


106

İTerm'de -> Tercihler -> Profiller Sekmesi -> Genel bölüm kümesi Komut: / bin / zsh --login

/ bin / zsh --login


1
iterm2'de Genel sekmesinde bu seçenek yok gibi görünüyor. Herhangi bir fikir giriş kabuğu değiştirmeden iterm2 ulaşmak nasıl?
Lloyd Dewolf

6
Profiller Sekmesindeki genel sekmesidir.
Harold Putman

Aha! Hem Genel Sekmesi hem de Profiller> Genel olması kafa karıştırıcıdır.
Lloyd Dewolf

2
veya benim durumumda/usr/local/bin/zsh --login
Yar

Bu benim kabuk değiştirmek için / etc / kabukları yerine yerine bir güncelleştirme sonra benim kabuk kullanılamaz hale gelmesini önlemek gerekir çünkü bu değiştirmek için kullanıyorum.
sal

220
chsh -s $(which zsh)

Parolanızı girmeniz istenir, ancak ayarlarınızı güncelledikten sonra bu makinede başlattığınız yeni iTerm / Terminal oturumları varsayılan olarak zsh olur.


2
Lütfen önce soruyu okuyun. Sorun varsayılan kabuk ayarında değil, sorun zsh bir oturum açma kabuğu olarak başlatıldığını algılamıyor olmasıdır.
Ivan Tarasov

1
Ah, özür dilerim. Etkileşimli modda zsh'yi zorlamak için -i bayrağını kullanmayı denediniz mi?
Damien Wilson

11
Cevabı zsh'yi iTerm'de Mac OS X'te bir giriş kabuğu olarak çalıştırıyor. Sadece bunu sizin tanımladığınız şekilde yapmakla ilgili değildir. Ancak, sorguladığınız sorunu (vücutta değil, başlıkta) ortaya koyduğu sorunu çözer. Bedende bitirdiğiniz soru tamamen farklı bir sorudur. Bu sizin asıl sorunuzsa (zsh'yi giriş kabuğu olarak nasıl çalıştıracağınız yerine) belki de başlığındaki soruyu yeniden yazmalısınız.
iconoclast

45
Eğer chshsize "standart dışı kabuk" gibi bir şey söyler, bu yeni kabuk yolunu eklemek zorunda anlamına gelir /etc/shells. Bu, örneğin, homebrew tarafından yüklenen ve onu koyan bir zsh sürümüne değiştiriyorsanız olabilir /usr/local/bin/zsh.
shovavnik

1
chsh -s $(which zsh)doğru yolu sağlamak için kullanılabilir.
Daniel Doezema

56

Sistem Tercihleri'nin Kullanıcılar ve Gruplar bölmesine gidin -> Kullanıcıyı Seç -> Değişiklik yapmak için kilidi tıklayın (sol alt köşe) -> mevcut kullanıcıyı sağ tıklayın Gelişmiş seçenekler'i seçin ... -> Giriş Kabuğunu Seç : / bin / zsh ve OK


3
Bu benim günümü kurtardı. Osx mavericks'liyim.
qed

Bu, demleme tarafından takılan için varsayılan zsh için çalışır.
İmam Bux

19

Kabuğu başlangıçta değiştirme komutu chsh -s <path_to_shell>. Mac OS X'teki varsayılan kabuklar bindizinin içine yüklenir, bu nedenle varsayılana geçmek zshisterseniz aşağıdakileri kullanırsınız

chsh -s /bin/zsh

Farklı bir sürümünü kullanıyorsanız , standart olmayan kabuk mesajından kaçınmak için zshbu sürümü eklemeniz gerekebilir /etc/shells. Örneğin, home-brew'ın sürümünü zshistiyorsanız /usr/local/bin/zsh, yukarıda belirtilen dosyaya tek bir komutta yapabileceğiniz sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"ve ardından çalıştırabileceğiniz

chsh -s /usr/local/bin/zsh

Veya her şeyi tek bir komutta yapmak istiyorsanız, zsh zaten yüklüyse bunu kopyalayıp yapıştırın

sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh

2
Bu cevabı küçümsemenin adil olduğunu düşünmüyorum. /etc/shellsCevabın bedeninde bahseten tek kişi olduğu gibi sahne .
heymatthew

1
@heymatthew, düşürülmesinin nedeni, sorulan soruya cevap vermemesidir. Tamamen farklı bir ilgisiz soruya cevap verdi.
Tabitha

17

İçinde kabuk girişi düzenlemeyi denediniz hesap ayarlarında .

Hesaplar tercihlerine gidin, kilidini açın ve Gelişmiş Ayarlar iletişim kutusu için kullanıcı hesabınıza sağ tıklayın . Kabuğunuz / bin / zsh olmalıdır ve bu çağrıyı uygun şekilde düzenleyebilirsiniz (yani --login bağımsız değişkenini ekleyin).


Ne yazık ki, bu işe yaramaz: Ben chsh (hangi kabuk / etc / shells listelenen sürece) chsh kullanmak istediğiniz hangi kabuk ayarlayabilirsiniz, ancak bir kabuk Gelişmiş tercihler iletişim kutusuna komut satırı bağımsız değişkenleri ekleyemezsiniz (iTerm başarısız Kabuğu başlatmak için).
Ivan Tarasov

OS X'de bazı sözdizimi değişti, ancak esas, Brian'ın yukarıda belirtildiği gibi varsayılan kabuğunuzu / bin / zsh olarak ayarlamaktır
engineerDave

7
Ben SO seviyorum. Bu yanıtı şimdi kullandım ve ancak o zaman yaklaşık 4 yıl önce yazdığımı fark ettim!
Brian Agnew

-2

loginBir oturum açma kabuğu oluşturmak için yardımcı programı kullanın . Oturum açmak istediğiniz kullanıcının Alice kullanıcı adına sahip olduğunu ve zsh'nin kurulu olduğunu varsayalım /opt/local/bin/zsh(örneğin, MacPorts üzerinden kurulan daha yeni bir sürüm). İTerm 2'de, Profiller, ayarlamak istediğiniz profili seçin ve girmek, Tercihler gidin Komutanlığı :

login -pfq Alice /opt/local/bin/zsh

man loginSeçenekler hakkında daha fazla bilgi için bkz .


Bu% 100 cevap değil. Evet, varsayılan olarak hangi kabuğun çıkacağını değiştirir, ancak bu bir kabuğun "oturum açma" örneğinin nasıl oluşturulacağıyla ilgili bir yanıt değildir, yani tüm değişkenleri sıfırdan kaynaklayın.
Tabitha
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.