Prompt – PS1 környezeti változó – mit is jelent a terminál ablakban vagy szöveges terminálban megjelenő gvamosi@gergo1:~$ prompt jel?

Az egész rendszerre érvényes, belépéskor automatikusan végrehajtott parancsok és beállítások helye a /etc/profile, ami rendszergazdaként, vagyis root user-ként (felhasználóként) szerkeszthető. Csak a prompt-beállítás szempontjából fontos részeket idézem.

gvamosi@gergo1:~$ cat /etc/profile

if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "id -u" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi

Nézzük meg a PS1 környezeti változó beállítását, ami nem más, mint a prompt jel. 🙂

Értelmezés: ha a PS1 környezeti változó beállított azaz definiált (set -u parancccsal ekvivalens a szintaxis, a set-ről a későbbiekben lesz szó), továbbá a BASH környezeti változó is létezik és értéke nem /bin/sh, akkor végrehajtja a /etc/bash.bashrc file-ban foglaltakat (a . <script-név> ekvivalens a source <script-név> jelöléssel) Nézzük csak meg ezt a file-t! Csak a prompt-beállítás szempontjából fontos részeket idézem.

gvamosi@gergo1:~$ cat /etc/bash.bashrc
# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Ez a szkript-rész először megnézi, hogy nem zérus-e a PS1 környezeti változó, azután megpróbálja beállítani a debian_chroot változót – a chroot-ról majd később -, végül pedig beállítja a prompt-ot. Ha van chroot változó, akkor (ez_a_chroot) kezdetű, amúgy pedig \u – felhasználónév @ \h – hosztnév : \w munkakönyvtár és a végén egy dollárjel és egy “space” – üres karakter. 🙂

gvamosi@gergo1:~$

A ~ jel nem mást jelöl, mint a home könyvtárat. A pwd parancs mindig kiírja az aktuális könyvtárat.

gvamosi@gergo1:~$ pwd
/home/gvamosi

Az összes környezeti változót amúgy a set paranccsal kérdezhetjük le.

gvamosi@gergo1:~$ set | grep PS1
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

A grep parancsról és a | pipe jelről pedig majd a későbbiekben írok. 🙂

Mi fán terem a / – azaz a gyökér vagy root könyvtár – avagy bevezetés a Linux könyvtárstruktúra alapjaiba

Linux alatt, akár az Android telefonokon nincsenek C: D: E: satöbbi “meghajtók”, csupán egy, a gyökér “/” alól elágazó könyvtárfa. 🙂

gvamosi@gergo1:~$ ls -l /
total 408
drwxr-xr-x 2 root root 4096 Jun 28 21:09 bin
drwxr-xr-x 4 root root 4096 Jun 27 06:47 boot
drwxr-xr-x 20 root root 3380 Aug 27 04:49 dev
drwxr-xr-x 153 root root 12288 Sep 2 13:33 etc
drwxr-xr-x 4 root root 4096 Jun 7 03:22 home
lrwxrwxrwx 1 root root 30 Jun 19 03:55 initrd.img -> boot/initrd.img-4.19.0-5-amd64
lrwxrwxrwx 1 root root 29 Jun 19 03:55 initrd.img.old -> boot/initrd.img-4.9.0-9-amd64
drwxr-xr-x 18 root root 4096 Jun 19 03:50 lib
drwxr-xr-x 2 root root 12288 Jun 19 03:33 lib32
drwxr-xr-x 2 root root 4096 Jun 19 03:32 lib64
drwxr-xr-x 2 root root 12288 Jun 19 03:33 libx32
drwx------ 2 root root 16384 Aug 26 2017 lost+found
drwxr-xr-x 4 root root 4096 Aug 26 2017 media
drwxr-xr-x 2 root root 4096 Jul 23 2017 mnt
drwxr-xr-x 7 root root 4096 Aug 22 03:33 opt
dr-xr-xr-x 289 root root 0 Aug 27 01:11 proc
drwxr-xr-x 15 root root 4096 Aug 22 03:34 root
drwxr-xr-x 29 root root 860 Sep 2 13:33 run
drwxr-xr-x 2 root root 12288 Jun 27 17:34 sbin
drwxr-xr-x 2 root root 4096 Jul 23 2017 srv
dr-xr-xr-x 13 root root 0 Sep 2 13:36 sys
drwxrwxrwt 26 root root 299008 Sep 2 13:38 tmp
drwxr-xr-x 13 root root 4096 Jun 19 03:46 usr
drwxr-xr-x 12 root root 4096 Aug 28 2017 var
lrwxrwxrwx 1 root root 27 Jun 19 03:55 vmlinuz -> boot/vmlinuz-4.19.0-5-amd64
lrwxrwxrwx 1 root root 26 Jun 19 03:55 vmlinuz.old -> boot/vmlinuz-4.9.0-9-amd64

Mit takarnak a gyökérből nyíló könyvtárnevek? Alább olvasható a teljesség igénye nélkül egy rövid ismertető.

bin: fontos binárisok, azaz “futtatható” programok könyvtára
etc: rendszerbeállítások könyvtára
home: felhasználók “otthon” könyvtárai
lib: rendszerkönyvtárak
media, mnt: külső kötetek, pl. egy pendrive “helye”
root: a rendszergazda “otthon” könyvtára 🙂
sbin: fontos rendszer binárisok
tmp: ideiglenes file-ok könyvtára
usr: felhasználói programok és könyvtárak
var: adatok

Megjegyzés: a merevlemez (HDD) vagy SSD (Solid State Disk) minden partíciójának (fdisk parancs) saját filerendszere van. Filerendszer ellenőrzésére és javítására az e2fsck parancs használatos. Segítségével ext2, ext3 és ext4 filerendszereket vizsgálhatunk. Ezek a Linux saját filerendszerei. Jelenleg a legújabb ext4-es filerendszert használom én is. Filerendszert vizsgálni általában csak olvasható módban mount-olt köteten lehetséges (mount parancs leírása később).

https://wiki.archlinux.org/index.php/File_systems_(Magyar)