Byl jsem překvapen, že jsem tuto otázku již nenašel na webu. Takže dnes přišel $
po přihlášení jako nový uživatel. To bylo neočekávané, protože výzva mého hlavního uživatele začíná username@computername:~$
.
Jak tedy přepnout z tohoto jiný shell do bash?
Komentáře
Odpověď
Za předpokladu, že neznámý shell podporuje spuštění absolutního příkazu, můžete zkusit: /bin/bash
Ke změně výchozího prostředí použiji chsh(1)
. Ukázkové použití: chsh -s /bin/bash $USER
Komentáře
- Změní chsh permanentně shell nebo jen pro aktuální relaci ?
- @mouche Trvale; změní váš vstup v
/etc/passwd
- @mouche,
chsh(1)
umožní změnu pouze na uvedený shell v/etc/shells
(a je pravděpodobně k dispozici).chsh -l
uvádí alternativy. Buďte opatrní, některé (napříkladnologin
) jsou definovány pro účty, které by se nikdy neměly používat k přihlášení (pěkný způsob, jak se zamknout), mohou být přidány místní doplňky pro speciální použití.
Odpověď
Zadejte bash
. Pokud chcete, aby to bylo trvalé, změňte výchozí prostředí na /bin/bash
úpravou /etc/passwd
.
Tady několik úryvků z mých /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh postgres:x:88:88::/var/lib/postgres:/bin/zsh bob:x:1001:1001::/home/bob:/bin/bash usbmux:x:140:140:usbmux user:/:/sbin/nologin
Úplně poslední pole obsahuje shell, úprava pole za posledním :
na platný nebo neplatný shell bude fungovat. /bin/false
a /sbin/nologin
oba znamenají uživatele nemá skutečný přihlašovací shell, i když pokud není pam nastavena správně, neznamená to, že se nemůže přihlásit (nahlásil jsem chybu v tomto v Arch Linuxu, protože se můžete přihlásit graficky, aniž byste měli přihlašovací shell). /bin/bash
a /bin/zsh
jsou obě platné skořápky, seznam platných skořápek najdete na stránce /etc/shells
vaše systémy. Tady je moje /etc/shells
pokud vás zajímá.
/bin/sh /bin/bash /bin/ksh /bin/zsh /bin/dash
Ano, můžete použít chsh
nebo usermod
k provádění stejných věcí, nezapomeňte, že jde pouze o strukturované textové soubory a TIMTOWTDI.
Komentáře
- Pravděpodobně budete chtít použít
chsh
místo ruční úpravypasswd
- @Michael existuje asi 5 (POOMA) různých způsobů, jak změnit prostředí v
/etc/passwd
Neměl jsem ' pocit, že bych chtěl vypsat některý z nich , protože to dělám vždy ručně. chsh i usermod to dokážou. - Pohánění konfiguračních souborů je Bad Idea (TM), chyba může způsobit nepoužitelnost systému. Ano, je to často jediný / nejrychlejší způsob, ale udělejte to s extrémní péčí .
Odpovědět
Pokud chsh nebo ruční úprava konfigurace nebude fungovat, ale při přihlášení je spuštěn skript ~ / .profile, přidejte tento řádek:
exec /bin/bash --login
Komentáře
- Poté, co jsem se po chvíli rozhlédl, toto bylo řešení, které jsem potřeboval. Děkuji!
- Skvělý nápad, zvláště pokud shell vybral zdroje, které tento soubor při spuštění …
-
touch ~/.bash_profile
nebo jinak se bash spustí ve smyčce: bash vezme~/.profile
v případě, že~/.bash_profile
nebude ' neexistují.
$
přišel spíše nežusername@computername:~$
neznamená ' to není ' t bash. Přesné formátování výzvy je nastaveno proměnnou PS1, kterou lze nastavit nebo přizpůsobit různě pro různé uživatele.echo $SHELL
zjistit, jaký je váš aktuální shell./bin/sh
často neznamená ' to moc, co ' je obvykle symbolický odkaz na něco jiného. ' d typemls -l /bin/sh
zobrazím, na co je ' symbolický odkaz. V některých případech to, že symbolický odkaz na něco změní jeho chování, si nemyslím, že je to bash.bash
as/bin/sh
zakáže mnoho bash funkcí (přejde do režimu shody POSIX).