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

Hoe maak ik Bash mijn standaard shell op Ubuntu?

Ik heb een .bash_profile in mijn home directory, maar die wordt niet uitgevoerd bij het inloggen. Als ik het volgende doe, dan lijkt het te gaan zoals ik verwacht:

ssh myhost
bash
source ~/.bash_profile

Maar normaal gesproken gebeurt dat allemaal bij het inloggen. Ideeën?

Antwoorden (8)

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

Gebruik:

chsh

Voer uw wachtwoord in en geef het pad aan naar de shell die u wilt gebruiken.

Voor Bash zou dat /bin/bash zijn. Voor Zsh zou dat /usr/bin/zsh zijn.

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

Naast het antwoord van akira, kunt u ook uw /etc/passwd bestand bewerken om uw standaard shell op te geven.

Je zult een regel vinden zoals in dit voorbeeld:

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

De shell wordt aan het eind gespecificeerd.

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

U zou uw terminalprogramma kunnen controleren. Misschien is het geconfigureerd om /bin/sh te draaien in plaats van /bin/bash

Bash voert .bashprofile alleen uit voor inlogsessies. .bashrc wordt uitgevoerd voor alle bash-sessies, niet alleen voor inlogsessies. Probeer .bashprofile te sourcen vanuit .bashrc (voorkom circulaire afhankelijkheid!) of configureer uw terminalprogramma om /bin/bash -l uit te voeren als een shellprogramma.

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

Activeer bash:

$ /bin/bash

Verander shell voor gebruiker:

$ sudo usermod -s /bin/bash username

waar:

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

Een alternatief is om je opstartscript te hernoemen naar .profile. Dit bestand wordt door de meeste Unix shells als bron gebruikt.

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

Als je op de een of andere manier je gebruikersnaam niet ziet in het /etc/passwd bestand [dit is het geval wanneer je systeem onder controle is van een ander domein, bv. in IT bedrijven] of het zegt “user not found” met chsh optie dan kan het onderstaande proces je misschien helpen.

De logica achter de onderstaande truc - Op Ubuntu is /bin/sh een streepje. U kunt uw systeem omschakelen naar het gebruik van bash. Op Ubuntu is /bin/sh een symbolische link naar dash. Je kunt er een symbolische link naar bash van maken. Om het te veranderen, voer

uit en druk op Nee om naar bash te schakelen.

Ga nu naar Terminal->Edit->voorkeuren->Commando en vink het selectievakje aan met de verklaring

Voer commando uit als login-shell

En dat is het.

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

Om een shell uw standaard te maken, controleert u eerst of hij geïnstalleerd en herkend is op uw computer door naar de inhoud van /etc/shells te kijken:

$ 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

Gebruik dan chsh om uw shell te veranderen:

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

Referenties

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/cat
  3. https://linux.die.net/man/1/cat
  4. [ https://linux.die.net/man/1/cat ]

https://linux.die.net/man/1/whoami 3. [ https://linux.die.net/man/5/shells ]0x3& 4. [ https://linux.die.net/man/1/chsh ]0x3&

0
0
0
2018-09-15 19:37:41 +0000

Er staat niet genoeg informatie in je vraag om het met zekerheid te kunnen zeggen, maar ik heb hetzelfde probleem al eerder gehad. Ervan uitgaande dat je /bin/bash al hebt ingesteld in je wachtwoordinvoer, kan het de manier zijn waarop je terminal opstart.

Als je een GUI terminal probeert te starten, bijvoorbeeld gnome-terminal, verwacht je misschien dat de shell je bash opstartbestanden leest. Dit gebeurt echter niet standaard op Ubuntu en misschien andere systemen.

De manier waarop ik dit op Ubuntu heb opgelost is door de gnome-terminal voorkeuren aan te passen, en het opstart commando in te stellen op bash -l. -l is een afkorting voor --login. Dit vertelt bash om op te starten als login-shell, waardoor het de opstartscripts laadt die je krijgt als je inlogt via ssh.

Ik ben er zeker van dat er een goede reden is waarom dit zo is, maar ik vond het verrassend en meer dan een beetje vervelend omdat ik dezelfde profielen deel over linux, cywgin en macos systemen.