Hogyan válthatok át egy ismeretlen shellről bash-ra?

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

  • Csak azért, mert $ jött elő, nem pedig username@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.
  • @mouche Re: @frabjous echo $SHELL hogy megtudja, mi a jelenlegi héja.
  • @mouche @frabjous és egy $ -tal kezdődik, valójában a bash esetében, egyes nem bash héjak, mint például a zsh, a dobozból a% -ot használják, úgy gondolom, hogy más shellek egyéb dolgok.
  • @mouche /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.
  • @xenoterracide – A as /bin/sh letiltja sok bash funkciót (POSIX-megfelelőségi módba kerül).

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ő). A chsh -l felsorolja az alternatívákat. Vigyázz, néhányat (például a nologin) 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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük