Linux'ta varsayılan kabuğu değiştirme [kapalı]


317

Varsayılan kabuğu nasıl değiştirebilirim? envKomut şu anda diyor ki:

SHELL=/bin/tcsh

ve bunu Bash olarak değiştirmek istiyorum.


4
Bu iyi bir soru, ancak Linux KG sitesi için daha uygun olabilir.
BradleyDotNET

6
/ etc / passwd olarak ayarlayın
resultsway

Yanıtlar:


414

Linux komutunu deneyin chsh.

Ayrıntılı komut chsh -s /bin/bash. Sizden şifrenizi girmeniz istenir. Varsayılan giriş kabuğunuz /bin/bashşimdi. Bu değişikliği görmek için oturumu kapatıp tekrar giriş yapmalısınız.

Man sayfasından alıntılar:

Chsh komutu kullanıcı oturum açma kabuğunu değiştirir. Bu, kullanıcıların ilk oturum açma komutunun adını belirler. Normal bir kullanıcı sadece kendi hesabı için giriş kabuğunu değiştirebilir, süper kullanıcı herhangi bir hesap için giriş kabuğunu değiştirebilir

Bu komut varsayılan giriş kabuğunu kalıcı olarak değiştirir.

Not: Kullanıcı hesabınız Kerberos kimlik doğrulaması (ör. Enterprise RHEL) gibi uzaksa, kullanamazsınız chsh.


10
chsh: can only change local entries; use ypchsh instead. O zaman ypchsh'in başka -sseçeneği yok
mahmood

10
@ShaktiMalik Yapılandırma dosyasının olduğuna inanıyorum /etc/passwd, ancak iki kez kontrol etmedim.
Summer_More_More_Tea

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

22
Benim durumumda, kök erişim vardı ama gerçek ana bilgisayar üzerinde herhangi bir yapılandırma ile uğraşmak istemiyordu. Eklediğim exec /bin/bashiçin ~/.profileve bu beni sunucuya herhangi bir değişiklik yapmadan bash doğrudan giriş izin verdi. (Orijinal varsayılan kabuk sadece /bin/sh)
Paul Nelson Baker

2
@BCqrstoO Bunun için teşekkür ederim. Peki ya exitbash yazarsanız ? Sunucuyu doğrudan oturumdan çıkaracak mısınız yoksa sadece bash ve exitsh'den çıkacak ve sunucunun oturumunu kapatmak için gereken başka bir sunucuya mı gireceksiniz?
Summer_More_More_Tea

148

Passwd dosyasını belirli bir kullanıcı için doğrudan değiştirebilir veya aşağıdaki komutu kullanabilirsiniz

chsh -s /usr/local/bin/bash username

Sonra oturumu kapatın ve oturum açın


8
which bashYukarıdaki komutu çağırmadan önce denemek iyi bir fikir olabilir ; kilometreniz yere göre değişebilir. Benim durumumda, bulundu/bin/bash
Martin Haeberli

Ben de ekleyebilirsiniz, chshkomut util-linuxpaketin bir parçasıdır ; ve chsh -s $(which bash) $USERyukarıdakiyle aynı sonucu vermelidir.

Ayrıca bir -lseçenek de vardır : "mermi listesini yazdır".
Betlista

3
öyleydi chsh -s /bin/bash usernamebenim için
Salvatorelab

Teşekkür ederim! Bu, farklı bir kullanıcı için değiştirmeye çalışırken bana yardımcı oldu
Tobias Feil

18

/etcMuhtemelen bir yerde bir 'iskelet' olmalı /etc/skeletonveya varsayılan ayarları, muhtemelen /etc/defaultfalan kontrol etmelisiniz . Bunlar, oturum açma sırasında ayarlanan standart ortam değişkenlerini tanımlayan komut dosyalarıdır.

Yalnızca kendi hesabınız içinse: (gizli) dosyayı kontrol edin ~/.profileve ~/.login. Ya da yoksa onları oluşturun. Bunlar aynı zamanda oturum açma işlemi ile de değerlendirilir.


5
Artı 1 soruyu özel olarak cevaplamak için (Varsayılan Kabuk). Red Hat Linux'ta/etc/default/useradd
geedoubleya

@geedoubleya Varsayılan ve giriş kabuğundaki farkın ne olduğunu belirtebilir misiniz?
Betlista

1
Hi @Betlista Varsayılan kabuk, belirli bir kabuk bağımsız değişken olarak sağlanmadığı sürece yeni kullanıcılar oturum açma kabuğu için kullanılan kabuktur.
geedoubleya
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.