Weboldal keresés

A shell inicializálási fájlok és felhasználói profilok megértése Linuxban


A Linux egy többfelhasználós, időmegosztó rendszer, ami azt jelenti, hogy egynél több felhasználó is bejelentkezhet és használhat egy rendszert. A rendszergazdáknak pedig az a feladata, hogy különféle szempontokat kezeljenek, hogy a különböző felhasználók hogyan üzemeltethetik a rendszert a szoftverek telepítése/frissítése/eltávolítása, a futtatható programok, a megtekinthető/szerkeszthető fájlok és így tovább.

A Linux két fő módon is lehetővé teszi a felhasználói környezetek létrehozását vagy karbantartását: rendszerszintű (globális) és felhasználó-specifikus (személyes) konfigurációk használatával. Általában a Linux rendszerekkel való munkavégzés alapvető módszere a shell, és a shell a sikeres felhasználói bejelentkezést követően az inicializálás során beolvasott bizonyos fájloktól függően hoz létre egy környezetet.

Javasolt olvasmány: Környezeti változók beállítása Linuxban

Ebben a cikkben elmagyarázzuk a shell inicializálási fájlokat a Linux helyi felhasználói kezeléséhez szükséges felhasználói profilokkal kapcsolatban. Tájékoztatjuk Önt, hogy hol tárolhatja az egyéni shell-függvényeket, álneveket, változókat, valamint az indítóprogramokat.

Fontos: Ebben a cikkben a bash-ra, egy sh-kompatibilis shellre összpontosítunk, amely a legnépszerűbb/használt shell Linux rendszereken.

Ha más shell (zsh, ash, fish stb.) programot használ, olvassa el annak dokumentációját, hogy többet megtudjon néhány kapcsolódó fájlról, amelyekről itt fogunk beszélni.

Shell inicializálása Linuxban

Amikor a shell meghívásra kerül, bizonyos inicializálási/indítási fájlokat olvas be, amelyek segítenek a környezet beállításában magának a shellnek és a rendszerfelhasználónak; azaz előre meghatározott (és testreszabott) függvények, változók, álnevek és így tovább.

A shell által beolvasott inicializálási fájloknak két kategóriája van:

  • rendszerszintű indítófájlok – a tézisek olyan globális konfigurációkat tartalmaznak, amelyek a rendszer összes felhasználójára vonatkoznak, és általában a /etc könyvtárban találhatók. Ide tartoznak: /etc/profiles és /etc/bashrc vagy /etc/bash.bashrc.
  • Felhasználó-specifikus indító fájlok – ezek a konfigurációkat tárolják, amelyek a rendszer egyetlen felhasználójára vonatkoznak, és általában a felhasználók kezdőkönyvtárában találhatók pontfájlokként. Felülbírálhatják a rendszerszintű konfigurációkat. Ide tartoznak: .profiles, .bash_profile, .bashrc és .bash_login.

A shell ismét három lehetséges módban hívható meg:

1. Interaktív bejelentkezési shell

A rendszerhéj akkor kerül meghívásra, ha a felhasználó sikeresen bejelentkezett a rendszerbe a /bin/login használatával, miután elolvasta az /etc/passwd fájlban tárolt hitelesítő adatokat.

Amikor a rendszerhéj interaktív bejelentkezési parancsértelmezőként indul, beolvassa az /etc/profile fájlt és annak felhasználóspecifikus megfelelőjét, a ~/.bash_profile fájlt.

2. Interaktív bejelentkezés nélküli Shell

A shell a parancssorból indul el egy shell programmal, például $/bin/bash vagy $/bin/zsh. A /bin/su parancs futtatásával is elindítható.

Ezenkívül egy interaktív, bejelentkezést nem igénylő shell egy terminálprogrammal, például konsoleval, terminátorral vagy xterm-vel is meghívható grafikus környezetből.

Amikor a rendszerhéj ebben az állapotban elindul, átmásolja a szülő shell környezetét, és beolvassa a felhasználóspecifikus ~/.bashrc fájlt a további indítási konfigurációs utasításokért.

su
ls -la

3. Nem interaktív Shell

A shell akkor kerül meghívásra, amikor egy shell szkript fut. Ebben a módban egy szkriptet dolgoz fel (shell vagy általános rendszerparancsok/-függvények halmazát), és nincs szükség felhasználói bevitelre a parancsok között, hacsak másképp nem. A szülő shelltől örökölt környezettel működik.

A rendszerszintű shell indítófájlok megértése

Ebben a részben jobban megvilágítjuk azokat a shell indító fájlokat, amelyek a rendszer összes felhasználójának konfigurációit tárolják, és ezek a következők:

Az /etc/profile fájl – rendszerszintű környezeti konfigurációkat és indítóprogramokat tárol a bejelentkezés beállításához. Minden olyan konfigurációt, amelyet alkalmazni szeretne az összes rendszerfelhasználó környezetében, hozzá kell adni ehhez a fájlhoz.

Például itt beállíthatja a globális PATH környezeti változót.

cat /etc/profile

Megjegyzés: Bizonyos rendszerekben, például az RHEL/CentOS 7 rendszerben, a következő figyelmeztetéseket kapja: „Nem ajánlott módosítani ezt a fájlt, hacsak nem tudja, mit csinál. Sokkal jobb, ha egyéni .sh shell szkriptet hoz létre az /etc/profile.d/ fájlban, hogy egyéni módosításokat hajtson végre a környezetében, mivel ez megakadályozza, hogy a rendszerbe egyesítsen. jövőbeli frissítések”.

Az /etc/profile.d/ könyvtár – a környezet egyéni módosításához használt shell-szkripteket tárol:

cd /etc/profile.d/
ls  -l 

Az /etc/bashrc vagy az /etc/bash.bashrc fájl – az egész rendszerre kiterjedő függvényeket és álneveket tartalmaz, beleértve az egyéb konfigurációkat is, amelyek minden rendszerfelhasználóra vonatkoznak.

Ha a rendszerén többféle shell is található, célszerű bash-specifikus konfigurációkat elhelyezni ebbe a fájlba.

cat /etc/bashrc

A felhasználóspecifikus shell indítófájlok megértése

Ezután részletesebben ismertetjük a felhasználó-specifikus shell (bash) indítópont fájlokat, amelyek egy adott felhasználó konfigurációit tárolják a rendszeren, a felhasználó kezdőkönyvtárában találhatók, és a következőket tartalmazzák:

ls -la

A ~/.bash_profile fájl – ez tárolja a felhasználóspecifikus környezet és az indítási programok konfigurációit. Itt állíthatja be egyéni PATH környezeti változóját, az alábbi képernyőképen látható módon:

cat ~/.bash_profile

A ~/.bashrc fájl – ez a fájl felhasználóspecifikus álneveket és funkciókat tárol.

cat ~/.bashrc

A ~/.bash_login fájl – speciális konfigurációkat tartalmaz, amelyek általában csak a rendszerbe való bejelentkezéskor hajtódnak végre. Ha a ~/.bash_profile hiányzik, ezt a fájlt a bash olvassa be.

A ~/.profile fájl – ez a fájl a ~/.bash_profile és ~/.bash_login hiányában kerül beolvasásra; ugyanazokat a konfigurációkat tudja tárolni, amelyeket a rendszer más shelljei is elérhetnek. Mivel itt főleg a bash-ról beszéltünk, vegye figyelembe, hogy más shell-ek esetleg nem értik a bash szintaxist.

Ezután két másik fontos felhasználóspecifikus fájlt is elmagyarázunk, amelyek nem feltétlenül bash inicializálási fájlok:

A ~/.bash_history fájl – a bash a rendszer felhasználója által megadott parancsok előzményeit tartja nyilván. A parancsok listája a felhasználó kezdőkönyvtárában, a ~/.bash_history fájlban található.

A lista megtekintéséhez írja be:

history 
or 
history | less

A ~/.bash_logout fájl – nem a shell indítására szolgál, de tárolja a felhasználóspecifikus utasításokat a kijelentkezési eljáráshoz. A rendszer akkor olvassa be és hajtja végre, amikor a felhasználó kilép egy interaktív bejelentkezési rendszerhéjból.

Egy gyakorlati példa erre a terminál ablakának törlése kijelentkezéskor. Ez fontos a távoli kapcsolatoknál, amelyek bezárásuk után tiszta ablakot hagynak maguk után:

cat bash_logout 

További információkért tekintse meg a shell inicializálási fájlok tartalmát különböző Linux disztribúciókban, és olvassa el a bash man oldalt is:

Ez minden most! Ebben a cikkben elmagyaráztuk a shell indító/inicializáló fájlokat Linuxban. Használja az alábbi megjegyzés űrlapot, hogy visszaírjon nekünk.