Linux parancsok IV.

Sort kell kerítsek még néhány parancs bemutatására. Nézzük sorban. Ha belépünk egy Linux szerverre, hasznos lehet az uname parancs.

gvamosi@gergo1:~$ uname -a
Linux gergo1 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux

A parancs kimenetéből egyből megtudhatjuk, hogy az operációs rendszer Linux, Debian Linux, a hoszt neve gergo1, a kernelünk (leírása később) 4.19-es, a rendszerünk x86 alapú és 64 bites, és egy dátumot is láthatunk az oprendszer kibocsátásával kapcsolatban. 🙂

Fontos parancs lehet még a hostname parancs is, hasonlóan sokmindent kideríthetünk az adott hosztról.

gvamosi@gergo1:~$ hostname
gergo1
gvamosi@gergo1:~$ hostname -I
192.168.0.109

Ebből a parancsból megtudjuk a szerver IP-címét. Nem beszéltem még részletesebben a hálózat egyik alapvető protokolljáról, az ICMP-ről (Internet Control Message Protocol). A hálózat diagnosztikájában segítségünkre lehet a ping parancs. Ez egy ICMP üzenet, datagramm jellegű, ahogy az UDP, és válaszüzenete a pong. Milyen meglepő. 🙂

https://hu.wikipedia.org/wiki/ICMP

Nézzünk egy példát a parancs kimenetére, melyben “megpingetjük” a BME névszerverét.

gvamosi@gergo1:~$ ping nic.bme.hu
PING nic.bme.hu (152.66.115.1) 56(84) bytes of data.
64 bytes from nic.bme.hu (152.66.115.1): icmp_seq=1 ttl=55 time=23.5 ms
64 bytes from nic.bme.hu (152.66.115.1): icmp_seq=2 ttl=55 time=22.9 ms
64 bytes from nic.bme.hu (152.66.115.1): icmp_seq=3 ttl=55 time=32.0 ms
^C
— nic.bme.hu ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 22.899/26.133/32.006/4.161 ms

Látható, hogy feloldja az IP-címet, aztán hogy ctrl+c-vel “lépünk ki” belőle, illetve egy rövid kis statisztika. A 0% csomagveszteség a jó, és ezek a milliszekundomok jó válaszidőnek számítanak. A hálózat megfelelően gyors. 🙂

Van még egy parancs, amiről szólni szeretnék, ez a mount. Ezzel a paranccsal lehetett eredetileg egy CD-t vagy DVD-t a Linux filerendszer részévé tenni, “felcsatolni” a /mnt könyvtár alá. De így lehet pl. a teljes filerendszert újracsatolni, pl. read-only (csak olvasható) módban, vagy akár egy hálózati kötetet csatolni, pl. NFS-en (Network File System) keresztül. A külső médiák behelyezésénél ma már automatikusan működik mindez. Ha pl. egy USB stick-et, egy “pendrive“-ot csatlakoztatok a laptopomhoz, akkor azt a rendszer felismeri. 🙂 De nézzük meg a mount parancs kimenetét paraméterek nélkül. Elég cifra!

gvamosi@gergo1:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3965840k,nr_inodes=991460,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=797444k,mode=755)
/dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=44,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12776)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=797440k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime)

Ebben nagyon sok minden van. Látható a “lényeg” is, a root filerendszer: /dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro). Itt az áll, hogy a filerendszer ext4 típusú, és rw – írható módon van csatolva. 🙂

Egyébként az fstab – a /etc könyvtárban – tartalmazza a filerendszer mount-jait (root, swap, etc.)

gvamosi@gergo1:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=cab2004d-b7b8-4ba2-9831-cc1a987e2ba2 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=B5A5-032A /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda3 during installation
UUID=83144245-6f61-477a-97a3-9f55ca34c3fc none swap sw 0 0

És akkor a mai írásom végére egy apró nüansz. Amikor a konzolon bejelentkezik egy felhasználó, vagy akár SSH-n keresztül, kap egy rövid üzenetet. Ez nem máshol van, mint a /etc/motd file-ban. Ide bármit írhatunk, még ún. vezérlő karaktereket is, ha valami színest vagy fényeset szeretnénk. 🙂

gvamosi@gergo1:~$ cat /etc/motd
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

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)