Bash'i Ubuntu'daki varsayılan kabuğum haline nasıl getirebilirim?


101

Giriş dizinimde bir .bash_profilegiriş var , ancak giriş yapmadı. Aşağıdakileri yaparsam, beklediğim gibi görünüyor:

ssh myhost
bash
source ~/.bash_profile

Ancak normalde tüm bunlar giriş yaparken olur. Düşünceler?


3
Ayrıca bir yok emin olun ~/.profileOr ~/.bash_loginkaynaklı tek üç sıra. (Tam siparişi unuttum.)
yerçekimi

3
Neden başlığınızda farklı bir sorunuz var ve yayınınızın gövdesinde farklı bir soru var mı?
pabouk

Yanıtlar:


170

kullanın:

chsh

Parolanızı girin ve kullanmak istediğiniz kabuğun yolunu belirtin.

Bash için bu olurdu /bin/bash. Zsh için bu olurdu /usr/bin/zsh.


15
+1 - OP'nin neden şifre dosyasını düzenlemenin daha iyi bir seçim olduğuna karar verdiğinden emin değilim, ancak bu en iyi cevaptı
kdgregory

1
Evet, beni yen, bu standart yol.
John T

1
Ve ubuntu'da kullanmak istediğiniz kabuğun yolu ... / bin / bash (ve / bin / sh aynı değildir)
Harry Wood

49
Veya kullanabilirsinizsudo chsh -s /bin/bash username
Oleg Vaskevich

7
Bu değişikliği görmek için oturumu kapatıp tekrar giriş yapmalısınız.
Neil Traft,

37

Akira'nın cevabına ek olarak, varsayılan kabuğunu belirtmek için / etc / passwd dosyanızı da düzenleyebilirsiniz .

Bu örnek gibi bir çizgi bulacaksınız:

john:x:1000:1000:john,,,:/home/john:/bin/sh

Kabuk sonunda belirtilir.


8
Akira'nın önerdiği şekilde 'chsh' komutunu kullanmak daha iyi - bir şeyi yanlışlıkla batırmak için daha az şans.
Lars Haugseth

5
/ etc / passwd 'a yazamadığınızda' chsh 'ifadesinin kullanılamayacağı
quack quixote

1
Ancak, değişiklik yapma olanağınız varsa /etc/passwdve dikkatli olursanız, John'un cevabı sistemin sağladığı araçları iyi kullanıyor.
AJP

3
Bu değişikliği görmek için oturumu kapatıp tekrar giriş yapmalısınız.
Neil Traft

2
Kullanıcı şifresi olmayan bir sunucu kullanıyorsanız - yalnızca genel / özel ssh tuşlarıyla erişim sağlamak ... çok mantıklıdır. chsh bir şifre gerektiriyor.
Keith John Hutchison

4

Terminal programınızı kontrol edebilirsiniz. / Bin / bash yerine / bin / sh komutunu çalıştırmak üzere yapılandırılmış olabilir.

Bash, sadece giriş oturumları için .bash_profile dosyasını çalıştırır. .bashrc, yalnızca oturum açma oturumları için değil, tüm bash oturumları için yürütülür. .Bash_profile dosyasını .bashrc adresinden almayı deneyin (dairesel bağımlılıktan kaçının!) Veya terminal programınızı bir kabuk programı olarak / bin / bash -l ile çalışacak şekilde yapılandırın.


2
terminal programının problemle bir ilgisi yok çünkü yeni makineye açılan uzak makinedeki sshd.
akira


2

Bash'ı etkinleştir:

$ /bin/bash

Kullanıcı için kabuğu değiştir:

$ sudo usermod -s /bin/bash username

nerede:

  -s, --shell SHELL             new login shell for the user account

2
(1) “bash etkinleştir” ile ne demek istiyorsunuz? (2) Kullanıcı uzaktaki bir sistemde kendi giriş kabuğunu değiştirmek istiyor . Neden sudoo sisteme erişimi olduğunu varsayıyorsun ? Neden başka bir kullanıcının oturum açma kabuğunu değiştirme konusunda talimatlar veriyorsunuz?
G-Man

Chsh kullanmak (yukarıda önerildiği gibi) benim için işe yaramadı. Bu komut yaptı!
Lindberg Başına

1

Herhangi bir kabuğunuzu varsayılan yapmak için, önce aşağıdakilerin içeriğine bakarak bilgisayarınıza yüklendiğini ve tanındığını doğrulayın /etc/shells:

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/fish

Ardından chshkabuğunuzu değiştirmek için kullanın :

$ sudo chsh -s /usr/bin/bash $(whoami) # or sudo chsh -s /bin/bash $(whoami)

Referanslar

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami
  3. https://linux.die.net/man/5/shells
  4. https://linux.die.net/man/1/chsh

0

Sorunuzda kesin olarak söyleyeceğim kadar bilgi yok, ancak daha önce de aynı soruna değindim. Parola girişinizde zaten ayarlanmış / bin / bash olduğunu varsayarsak, terminalinizin çalışma şekli bu olabilir.

Bir GUI terminali başlatmaya çalışıyorsanız gnome-terminal, kabuk başlangıç ​​dosyalarınızı okumasını bekliyor olabileceğinizi söyleyin . Ancak, bu Ubuntu ve belki de diğer sistemlerde varsayılan olarak olmaz.

Ubuntu'da düzelttiğim yöntem, gnome-terminal tercihlerini düzenlemek ve başlangıç ​​komutunu ayarlamaktır bash -l. -liçin kısa --login. Bu, bash'ın oturum açma kabuğu olarak başlatılmasını sağlar; bu, ssh aracılığıyla oturum açarken başlangıç ​​komut dosyalarının yüklenmesini sağlar.

Bunun olması için iyi bir neden olduğundan eminim, ama linux, cywgin ve macos sistemleri arasında aynı profilleri paylaşırken şaşırtıcı ve biraz can sıkıcı buldum.

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.