Meglepődtem, hogy nem találtam meg ezt a kérdést már a webhelyen. Tehát ma jött a $
fel, miután új felhasználóként jelentkeztem be. Ez váratlan volt, mert a fő felhasználó promptja a következővel kezdődik: username@computername:~$
.
Szóval, hogyan válthatok erre más shell a bash-hoz?
Megjegyzések
Válasz
Feltételezve, hogy az ismeretlen shell támogatja az abszolút parancs futtatását, megpróbálhatja: /bin/bash
Az alapértelmezett shell megváltoztatásához a chsh(1)
parancsot használnám. Minta használat: chsh -s /bin/bash $USER
Megjegyzések
- A chsh véglegesen megváltoztatja a héjat vagy csak az aktuális munkamenethez ?
- @mouche állandóan; megváltoztatja a bejegyzést a
/etc/passwd
- @mouche mezőben,
chsh(1)
csak a felsorolt héjra enged átállni a/etc/shells
fájlban (és feltehetően elérhető). Achsh -l
felsorolja az alternatívákat. Vigyázz, néhányat (például anologin
) olyan fiókokhoz határoztak meg, amelyek soha nem használhatók bejelentkezéshez (jó módja annak, hogy bezárkózzon), előfordulhat, hogy helyi kiegészítések vannak speciális célokra.
Válasz
Beírja a következőt: bash
. Ha azt akarja, hogy ez véglegesen módosítsa az alapértelmezett héjat /bin/bash
-re /etc/passwd
szerkesztésével.
Itt “s néhány részlet a /etc/passwd
-ből:
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
A legutolsó mező tartalmazza a héjat, a mező módosítása az utolsó után Az érvényes vagy érvénytelen héjhoz tartozó :
működni fog. /bin/false
és /sbin/nologin
egyaránt a felhasználót jelenti nincs valódi bejelentkezési héja, bár ha a pam nincs megfelelően beállítva, ez nem azt jelenti, hogy nem tudnak bejelentkezni (hibát jelentettem erről az Arch Linux rendszerben, mert grafikusan is bejelentkezhet, anélkül, hogy bejelentkezési héja lenne). A /bin/bash
és a /bin/zsh
egyaránt érvényes héj, az érvényes héjak listáját lásd: /etc/shells
rendszereit. Itt van a /etc/shells
, ha érdekel.
/bin/sh /bin/bash /bin/ksh /bin/zsh /bin/dash
Igen, használhatja a chsh
vagy usermod
ugyanazok elvégzéséhez, ne feledje, hogy ezek csak strukturált szövegfájlok és TIMTOWTDI.
Megjegyzések
- Valószínűleg a
chsh
fájlt szeretné használni a manuális szerkesztés helyett:passwd
- @Michael a héj megváltoztatásának körülbelül 5 (POOMA) módja van a
/etc/passwd
-ban. Nem volt kedvem ' , mert mindig manuálisan csinálom. A chsh és a usermod egyaránt képes rá. - A konfigurációs fájlokkal való elrontás rossz ötlet (TM), egy hiba miatt a rendszer használhatatlanná válhat. Igen, gyakran ez az egyetlen / leggyorsabb módszer, de akkor tegye meg rendkívüli körültekintéssel .
Válasz
Ha chsh vagy a konfiguráció manuális szerkesztése nem működik, de a ~ / .profile parancsfájl végrehajtásra kerül a bejelentkezéskor, adja hozzá ezt a sort:
exec /bin/bash --login
Megjegyzések
- Miután egy ideig körülnéztem, ez volt a megoldás, amire szükségem volt. Köszönöm!
- Nagyszerű ötlet, főleg, ha a shell az indításkor kiválasztotta azokat a fájlokat, amelyek az fájlt …
-
touch ~/.bash_profile
vagy másképp a bash végrehajtja magát egy hurokban: a bash~/.profile
-t veszi fel~/.bash_profile
didn ' nem létezik.
$
jött elő, nem pedigusername@computername:~$
nem azt jelenti, hogy ' nem azt jelenti, hogy nem volt ' t bash. A felszólítás pontos formátumát a PS1 változó állítja be, amelyet különböző felhasználók számára másképp lehet beállítani vagy testreszabni.echo $SHELL
hogy megtudja, mi a jelenlegi héja./bin/sh
gyakran ' nem sokat jelent, hogy ' s általában valami máshoz való szimpla link. ' d beírom a következőt:ls -l /bin/sh
, hogy lássam, mire ' kapcsolódik. Bizonyos esetekben az, hogy valamihez szimbólum kapcsolódik, megváltoztatja a viselkedését, nem hiszem, hogy a bash ilyen./bin/sh
letiltja sok bash funkciót (POSIX-megfelelőségi módba kerül).