2009-09-25 12:03:09 +0000 2009-09-25 12:03:09 +0000
107
107

Jak uczynić Bash moją domyślną powłoką na Ubuntu?

Mam .bash_profile w moim katalogu domowym, ale nie jest on uruchamiany przy logowaniu. Jeśli wykonam następujące czynności, to wszystko wygląda tak, jak się spodziewam:

ssh myhost
bash
source ~/.bash_profile

Ale normalnie to wszystko dzieje się przy logowaniu. Jakieś pomysły?

Odpowiedzi (8)

176
176
176
2009-09-25 12:08:58 +0000

Użyj:

chsh

Wprowadź swoje hasło i podaj ścieżkę do powłoki, której chcesz użyć.

Dla Bash będzie to /bin/bash. Dla Zsh będzie to /usr/bin/zsh.

37
37
37
2009-09-25 12:09:20 +0000

Na dodatek do odpowiedzi akiry, możesz również edytować swój plik /etc/passwd aby określić domyślną powłokę.

Znajdziesz tam linię jak w tym przykładzie:

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

Powłoka jest określona na końcu.

4
4
4
2009-09-25 12:14:23 +0000

Możesz sprawdzić swój program terminala. Może on być skonfigurowany do uruchamiania /bin/sh zamiast /bin/bash

Bash wykonuje .bashprofile tylko dla sesji logowania. .bashrc jest wykonywany dla wszystkich sesji basha, nie tylko dla sesji logowania. Spróbuj pozyskać .bashprofile z .bashrc (unikniesz okrągłej zależności!) lub skonfigurować swój program terminala tak, by uruchamiał /bin/bash -l jako program powłoki.

4
4
4
2018-01-25 18:44:30 +0000

Włącz bash:

$ /bin/bash

Zmień powłokę dla użytkownika:

$ sudo usermod -s /bin/bash username

gdzie:

-s, --shell SHELL new login shell for the user account
```.
2
2
2
2010-06-01 11:40:25 +0000

Jedną z alternatyw jest zmiana nazwy skryptu startowego na .profile. Plik ten jest źródłowy dla większości powłok uniksowych .

1
1
1
2019-11-17 19:17:11 +0000

Jeśli w jakiś sposób nie widzisz swojej nazwy użytkownika w pliku /etc/passwd [jest to przypadek, gdy twój system jest pod kontrolą jakiejś innej domeny, np. w firmach IT] lub mówi “user not found” z opcją chsh to poniższy proces może ci pomóc.

Logika stojąca za poniższą sztuczką - W Ubuntu, /bin/sh jest dash. Możesz przełączyć swój system na używanie basha. W Ubuntu, /bin/sh jest dowiązaniem symbolicznym do dash. Aby to zmienić, uruchom

sudo dpkg-reconfigure dash

i naciśnij Nie, aby przełączyć się na bash.

Teraz, przejdź do Terminal->Edycja->preferencje->Poleceń i zaznacz pole wyboru z oświadczeniem

Uruchom polecenie jako powłoka logowania

I to wszystko.

1
1
1
2019-06-27 13:29:35 +0000

Aby uczynić dowolną powłokę domyślną, najpierw sprawdź, czy jest ona zainstalowana i rozpoznana na twoim komputerze, patrząc na zawartość /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

Następnie użyj chsh, aby zmienić swoją powłokę:

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

Referencje

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami ](https://linux.die.net/man/1/whoami)
  3. https://linux.die.net/man/5/shells ](https://linux.die.net/man/5/shells)
  4. https://linux.die.net/man/1/chsh ](https://linux.die.net/man/1/chsh)
0
0
0
2018-09-15 19:37:41 +0000

Nie ma wystarczająco dużo informacji w twoim pytaniu, abym mógł powiedzieć na pewno, ale trafiłem na ten sam problem wcześniej. Zakładając, że masz już /bin/bash ustawiony w swoim haśle, może to być sposób, w jaki uruchamia się twój terminal.

Jeśli próbujesz uruchomić terminal GUI, powiedzmy gnome-terminal, możesz oczekiwać, że powłoka odczyta twoje pliki startowe bash. Jednakże, nie dzieje się tak w Ubuntu i być może w innych systemach domyślnie.

Sposób w jaki to naprawiłem na Ubuntu to edycja preferencji gnome-terminal, i ustawienie komendy startowej na bash -l. -l jest skrótem od --login. To mówi bashowi, by uruchamiał się jako powłoka logowania, co powoduje, że ładuje skrypty startowe, takie jak przy logowaniu przez ssh.

Jestem pewien, że istnieje dobre uzasadnienie tego, że jest tak, jak jest, ale dla mnie jest to zaskakujące i więcej niż trochę irytujące, ponieważ dzielę te same profile na systemy linux, cywgin i macos.