Stavové příkazy jsou příkazy systému UNIX, nikoli specifické příkazy shellu.
Příkaz | Účel |
---|---|
datum | Zobrazuje aktuální (systémové) datum a čas |
ps | Zobrazuje informace o systémových procesech |
kdo | Zobrazení uživatelů, kteří jsou přihlášeni do systému |
rusers | Zobrazuje uživatele v systémech místní sítě (LAN) |
prst | Zobrazuje informace o přihlášených uživatelích |
doba provozu | Zobrazuje, jak dlouho je systém v provozu |
rup | Zobrazuje, jak dlouho jsou systémy LAN v provozu (doba provozu všech síťových systémů) |
w | Zobrazí výstup příkazu uptime a poté zobrazí seznam aktuální aktivity v systému a toho, co každý uživatel dělá |
Příkaz data
Pokud vytvoříte skript, který zapíše zprávu, možná budete chtít, aby se datum a čas objevily jako položka v souboru. Příkaz date vytiskne jednořádkový výstup aktuálního data a času (systémové datum a čas).
# date Tue Jun 9 11:36:00 UTC 2020
Příkaz ps
Příkaz ps zobrazuje aktuální procesy pro spouštějícího uživatele.
# ps PID TTY TIME CMD 2281 pts/0 00:00:00 sudo 2285 pts/0 00:00:00 su 2286 pts/0 00:00:00 bash 2477 pts/0 00:00:00 ps
Následující tabulka popisuje význam sloupců ve výstupu ps.
Záhlaví sloupce | Význam |
---|---|
PID | Číselné identifikační číslo procesu |
TTY | Číslo terminálu, ze kterého byl proces zahájen |
ČAS | Ukazuje, kolik času centrální procesorová jednotka (CPU) proces spotřeboval |
CMD | Název příkazu, který proces provádí |
UUID | Jméno uživatele, který spustil proces |
PPID | ID nadřazeného procesu |
C | Využití procesoru pro plánování (zastaralé) |
ČAS | Den, kdy byl proces zahájen |
Jak ukazuje následující příklad, některé volby příkazu ps rozšiřují zobrazené informace. Volba -f zobrazí úplný seznam a zahrnuje takové informace, jako je přihlašovací jméno uživatele, identifikační číslo procesu (PID), PID rodiče atd. Volba -e zobrazí všechny procesy v systému. Tyto možnosti můžete kombinovat.
# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:29 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 11:29 ? 00:00:00 [kthreadd] root 4 2 0 11:29 ? 00:00:00 [kworker/0:0H] root 5 2 0 11:29 ? 00:00:00 [kworker/u4:0] root 6 2 0 11:29 ? 00:00:00 [ksoftirqd/0] root 7 2 0 11:29 ? 00:00:00 [migration/0] root 8 2 0 11:29 ? 00:00:00 [rcu_bh] root 9 2 0 11:29 ? 00:00:00 [rcu_sched] root 10 2 0 11:29 ? 00:00:00 [lru-add-drain] root 11 2 0 11:29 ? 00:00:00 [watchdog/0] root 12 2 0 11:29 ? 00:00:00 [watchdog/1] root 13 2 0 11:29 ? 00:00:00 [migration/1] root 14 2 0 11:29 ? 00:00:00 [ksoftirqd/1] root 16 2 0 11:29 ? 00:00:00 [kworker/1:0H] ...
The who Command
Při přípravě na úkoly správy systému je důležité vědět, kdo na systému aktuálně pracuje. Příkaz who zobrazí seznam aktuálně přihlášených uživatelů, na kterém terminálu jsou přihlášeni a datum a čas, kdy se přihlásili.
# who geek_user pts/0 2020-06-09 11:33 (192.168.1.39) mike pts/0 2020-06-09 10:21 (192.168.1.77)
Příkaz rusers
Příkaz rusers se dotazuje na LAN a vytiskne seznam všech aktuálně přihlášených uživatelů. Pokud systém nemá žádné přihlášené uživatele, žádní uživatelé se v seznamu nezobrazí. Příkaz rusers však vynutí zobrazení všech systémů, ať už mají aktuální uživatele nebo ne. Možnosti také řídí pořadí zobrazení (seřazené podle systému, seřazené podle uživatele atd.). Ukončení příkazu rusers někdy trvá dlouho. Informace se vytisknou rychle, ale pak se příkaz zastaví, jako by stále hledal další uživatele. Poté se obvykle nic nevytiskne, takže příkaz můžete ukončit pomocí Ctrl-C (znak přerušení).
# rusers Sending broadcast for rusersd protocol version 3... system01 mike system09 john system100 root milton
Příkaz prstem
Příkaz finger uvádí informace o uživatelích přihlášených do aktuálního systému. Pole informací jsou:
- Přihlašovací jméno uživatele
- Skutečné jméno uživatele (jak je definováno v souboru /etc/passwd)
- Terminál, ke kterému je uživatel přihlášen
- Doba nečinnosti (doba od zjištění jakékoli aktivity klávesnice)
- Když se uživatel přihlásí
- Odkud se uživatel přihlásil (pokud se uživatel vzdáleně přihlásil z jiného systému v síti)
# finger cloud_user Login: cloud_user Name: Directory: /home/cloud_user Shell: /bin/bash On since Tue Jun 9 11:33 (UTC) on pts/0 from 192.168.132.21 3 seconds idle No mail. No Plan.
Příkaz uptime
# uptime 11:51:38 up 22 min, 1 user, load average: 0.00, 0.05, 0.06
Příkaz rup
Příkaz rup je podobný provádění příkazu uptime pro všechny systémy v síti LAN. Informace jsou stejné, až na tyto rozdíly:
- Název systému je uveden jako první
- Datum není uvedeno
- Počet uživatelů není uveden
$ rup system01 up 7 days, 6:47, load average: 0.21, 0.21, 0.21 system09 up 4:20, load average: 0.21, 0.26, 0.26 system11 up 15:53, load average: 0.20, 0.16, 0.14 system19 up 2 days, 2:44, load average: 0.00, 0.00, 0.01
Příkaz w
Příkaz w nejprve zobrazí výstup příkazu uptime. Poté příkaz w zobrazí seznam aktuální aktivity v systému a toho, co každý uživatel dělá. Poskytuje následující informace:
- Přihlašovací jméno uživatele
- Terminál, na kterém se uživatel přihlásil
- Čas, kdy se uživatel přihlásil
- Doba, po kterou byl uživatel nečinný
- Čas společného CPU (JCPU), který všechny procesy tohoto terminálu spotřebovaly
- Čas procesoru (PCPU) procesu, který aktuálně aktivní procesy spotřebovaly
- Název a argumenty aktuálního procesu
# w 11:55:09 up 25 min, 1 user, load average: 0.00, 0.03, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT cloud_us pts/0 1.186.113.22 11:33 5.00s 0.23s 0.17s sshd: cloud_user [priv]