Syntaxe základních příkazů v Linuxu

Krátké tipy a návody, často třeba jen poznámky k syntaxi nebo seznam zajímavých atributů příkazů. Vesměs se jedná o ty, které jsem již někdy použil, ale nepoužívám je zase až tak často abych si všechny možnosti a parametry zapamatoval. Když něco nejde hned, pomůžou pravidla administrátora….

1. Když to funguje, nesahej na to!
2. Nesahej na to ani když víš, že to vylepšíš!
3. Já jsem ti to říkal!


CHMOD – práva a jejich změna

Práva k souborům jsou v linuxu deklarována dvěmi způsoby – písmeny nebo čísly. Při použití čísel to vypadá nějak takto:
soubor_xy   rwx rwx rwx
přičemž první trojice znaků za názvem souboru definuje práva vlastníka, druhá práva skupiny a třetí práva pro ostatní. Význam znaků rwx je následující:

  • r = read – číst
  • w = write – zapisovat
  • x = execute – spustit

Je-li před sekvencí rwx rwx rwx uvedeno navíc písmeno d znamená to, že se jedná o adresář.

Protože počet možností, které lze kombinací rwx dosáhnout je rovný osmi, jsou pro zadávání práv použita čísla 0 až 7 takto:

  • 0 = nic
  • 1 = x = spustit
  • 2 = w = zapisovat
  • 3 = xw = spustit a zapisovat
  • 4 = r = číst
  • 5 = xv = spustit a číst
  • 6 = rw = číst a zapisovat
  • 7 = rwx = číst, zapisovat a spustit

Takže příkaz: $ chmod 750 soubor_xy způsobí, že:

  • Já můžu číst, zapisovat a spouštět,
  • skupina může číst a spouštět,
  • ostatní mají smůlu.

PS: Aktuálně přidělená práva k souboru zjistíte pomocí příkazu ls. Asi takhle:
$ ls -l /cesta/k/souboru_xy


SHUTDOWN

Za normálních okolností může provádět pouze root. Základní volby příkazu shutdown:

  • -h = halt – zastavit
  • -r = reboot – restart
  • HH:MM = provede se v HH hodin a MM minut
  • now = ihned
  • +m = provede se za m minut
  • -c = zruší již běžící příkaz
  • -k = pouze vypíše na obrazovku hlášení a shutdown zruší

Příklad:
# shutdown -h 16:35
Tento příkaz způsobí zastavení systému v 16:35 hod.
# shutdown -r +120
Tento příkaz provede reboot systému dvě hodiny po svém spuštění.


Změna MAC adresy

Kdo neví co dělá, ať tohle nedělá, ale jsou situace, kdy toto lze výhodně použít. Internet po kabelové televizi (dnes se to jmenuje Chello) má modem svázaný s MAC adresou ethernetového síťového rozhraní počítače. Dokud na to nesaháte, je vše v pohodě – v duchu tří pravidel administrátora. Může se Vám však stát, že si tzv. podříznete větev a najednou jste bez připojení k síti a současně bez možnosti to napravit. Pokud znáte MAC adresu, se kterou je modem svázán, můžete ji nastavit na nějaké jiné síťovce takto:

# ip link set eth0 address AA:BB:CC:DD:EE:FF

Za AA až FF pochopitelně dosadíte předmětnou MAC adresu v hexadecimálním tvaru. Nastavená MAC adresa je pak platná až do restartu stroje.


SLATTACH

Slattach je program, který slouží k připojování sériových linek jako ethernetových rozhraní. Základní syntax je: 
# slattach -parametry - rozhraní

Přehled základních parametrů:

  • -p = protokol (slip, cslip….)
  • -s = rychlost v b/s
  • -d = debug
  • -c xyz = spustí příkaz xyz když se spojení přeruší
  • -e = ukončí se okamžitě po inicializaci linky
  • -L = povolí komunikaci pouze po třech drátech

Celý příkaz potom vypadá takto:
# slattach -p slip -s 19200 /dev/ttyS0 &
Uvedeným příkazem připojíme první sériový port počítače jako ethernetové rozhraní sl0 s protokolem slip a rychlostí 19,2 kb/s. IP adresu a další náležitosti pro toto rozhraní pak můžeme nastavit třeba podle tohoto návodu.


PING

Všichni vědí k čemu slouží tento příkaz, zde jen krátký přehled základních parametrů – abych to furt nemusel hledat v manuálu.

  • -c = počet
  • -f = 100 x za sekundu nebo tak rychle jak se vracejí odpovědi podle toho, které číslo je vyšší (pozor, potenciálně nebezpečné)
  • -i = čeká zadaný počet sekund než pošle další paket
  • -l = dávka – vyšle počet paketů udaný v dávce a vrátí se do normálnímu režimu.
  • -p = specifikuje až 16 bajtů jako výplň odesílaných paketů. Zadává se v hex
  • -t = nastaví hodnotu time to live
  • -W = čas, po který čeká na odpověď v sekundách
  • -q = tichý výstup, zobrazí se jen konečné součty
  • -s = velikost paketů, implicitně je 56 B což s hlavičkou (8 B) činí 64B.

PS: Existuje také program arping, který mj. zjistí MAC adresu vzdáleného rozhraní v lokální síti. Použití:
# arping 192.168.100.100 -I eth0
Za adresu a jméno rozhraní pochopitelně musíte zadat správné údaje.


Moduly

Příkazy používané pro práci s moduly:

  • lsmod = vypíše seznam právě zavedených modulů
  • insmod xy = zavede modul xy bez modulů na něm závislých
  • modprobe xy = zavede modul xy včetně závislých modulů
  • modprobe -r xy = odstraní z paměti modul xy, včetně modulů závislých
  • modprobe -l | grep abc = vyhledá modul, který v názvu obsahuje řetězec abc
  • modinfo jmeno_modulu = vypíše informace o modulu, mj. např. parametry

Počítač při startu operačního systému zavádí moduly nalezené v souboru /etc/rc.d/rc.modules a je-li povoleno spouštění rc.hotplug, pak také zavádí potřebné moduly pro HW zařízení zjištěná tímto scriptem. Pro urychlení startu stroje se mi osvědčilo nechat rc.hotplug najít zařízení a zavést moduly, jejich názvy si pak napsat a doplnit je do /etc/rc.d/rc.modules. Pak je možné rc.hotplug vypnout což významně urychlí start počítače. Funguje to dobře a navíc se naučíte jaké zařízení potřebuje jaký modul.


Poinstalační nastavení

Nového uživatele vytvoříme pomocí adduser. Pokud má mít, alespoň ve Slackware, nově vytvořený uživatel alespoň trochu normální podmínky pro práci, musíme ho editací /etc/group přidat do některých skupin, přinejmenším do audio, cdrom, floppy a tty. Další podle uvážení a potřeb.

Abychom měli konzoli přístupnou i z Xek, musíme v /etc/inittab nastavit „4“ za první dvojtečkou u všech konzolí.

Volba výchozího runlevelu se nastavuje taktéž v /etc/inittab – 24. řádek (u Slacku), 3 = textový login, 4 = grafický login. U většiny distribucí je tomu jinak, 4 znamená textový login a 5 grafický.

V souboru /etc/profile si můžeme nastavit hodnotu proměnné PATH, což je cesta(y), na kterých hledá systém spustitelné soubory. Tvar promptu pro TUI se nastavuje tamtéž – proměnná PS1. Vyplatí se projít si tento soubor… Stejný tvar promptu jako je nastavený v konzoli lze pro terminál spuštěný v X nastavit (nepříliš čistý způsob) spuštěním s parametrem -ls, např. rxvt -ls.

Login manager – správce přihlášení pro grafický login vybíráme editací souboru /etc/rc.d/rc.4 – spustí se první zapsaný.

Správce oken pro grafický režim vybíráme buď pomocí skriptu wmconfig (ve Slackware) nebo editací/home/jmeno_uzivatele/.xinitrc. Globální nastavení můžeme ale provést též editací/etc/X11/xinit/.xinitrc.

„Pozdrav“ při přihlašování je možné nastavit v /etc/issue pro textový login a v/etc/X11//xdm/Xresources pro přihlášení v grafice pomocí XDM.

Umožňuje-li hardware stroje akceleraci grafiky, umožníte mu to editací souboru/etc/X11/xorg.conf, popř. /etc/X11/XF86Config. Do konfiguračního souboru X serveru doplníme řádky pro nahrání modulů Load "glx" a Load "dri". Má-li mít i user oprávnění používat akcelerovanou grafiku, je třeba vytvořit "Section DRI" a do ní dopíšeme ještě Mode 0666. Správnou funkci akcelerované grafiky je možné ověřit programy glxgears a glxinfo.


Zrychlení startu Slackware Linuxu

Po čisté instalaci Slacku s implicitní konfigurací služeb trvá start Elišky do textového loginu cca 69 sekund. Pokud si prolezete startovací skripty v /etc/rc.d/ a zakážete spouštění některých služeb, popřípadě povypínáte některé skripty, které nepotřebujete, třeba rc.hotplug – viz též výše, dosáhnete značného zrychlení. Mě se povedlo celkem lehce dosáhnout času startu do textového loginu kolem 18 sekund.

Co je však na uvedeném mnohem zajímavější je, že tento stav trvá s malými změnami v závislosti na konfiguraci spouštěných služeb pořád. Není to jako u Windows, kde svižný start je doménou asi tak prvního měsíce po instalaci.


CHECKINSTALL

V Slackware máme dvě možnosti instalace nových programů – z balíčků dodávaných společně s distribucí, resp. stažených z netu, nebo kompilací ze zdrojového kódu. Program se v tomto případě instaluje pomocí tzv. „svaté trojice“ – configure, make a make install.

V té druhé možnosti není žádný problém, kromě toho, že takto nainstalovaný program není zase až tak úplně triviální odinstalovat. Ne, že by to vadilo, nicméně, pro pohodu při práci, je zde program checkinstall. Ten zajistí, že nainstalovaný program bude možné v případě potřeby pohodlně odinstalovat pomocí příkazu removepkg nebo pomocí pkgtool. Použije se tak, že místo posledního příkazu make install zadáme příkaz checkinstall make install. A je to. Kromě výše uvedeného navíc získáme balíček s již skompilovaným softwarem, který pak můžeme později použít.


TAR

Program TAR je v Linuxu určen k archivaci dat. Má velké konfigurační možnosti, ale pro běžného uživatele postačí znát jen ty základní.

Mějme balíček s názvem neco-x.y.tar.gz. Rozbalení:
$ tar -xvzf neco-x.y.tar.gz (vznikne adresář s názvem neco-x.y)
Je-li formát balíčku *.bz2, použijeme příkaz:
$ tar -xvjf neco-x.y.bz2
Sbalení adresáře provedeme příkazem:
$ tar -cvzf jmeno_archivu.tar.gz /adresar_ke_sbaleni

K práci s archivy se dá výborně použít i souborový manažer Midnight Commander – klepnutím na archiv se zobrazí jeho obsah a ten lze překopírovat kam je libo. A je rozbaleno :-).


INITRD

Initrd se používá při startu systému. V podstatě se jedná o miniobraz obsahující ovladače například disku nebo speciálních zařízení, které při bootu potřebujeme inicializovat. Vytvoří se takto:
# cd /boot
# mkinitrd -c -k cislo_jadra -m moduly
kde za číslo jádra dosadíme aktuální číslo jádra, pro které initrd sestavujeme a moduly zahrnují seznam modulů k zahrnutí do initrd oddělený mezerami.

Po vytvoření se musí upravit soubor /etc/lilo.conf a zapsat lilo proto, aby jádro používalo nově vytvořený initrd.
Přestože implicitní instalace Slackware při bootu používá initrd, dlouhodobě se mi daří používání této vymoženosti vyhýbat a ničemu to nijak nevadí.


Myš klávesnicí

Občas se může hodit ovládání kurzoru myši pomocí klávesnice. Protože se jedná o funkci systému X window, fungovat by to mělo všude, nezávisle na používaném správci oken. Funkci zapneme současným stiskem Shift + NumLock. Význam jednotlivých kláves numerické klávesnice pak bude:
„5“ – stisk tlačítka
„+“ – dvojklik (funguje také 2 x stisk pětky)
„/“, „*“, „-“ – mění význam stisknutí „5“ ve smyslu – levé-prostřední-pravé tlačítko
„0“ – trvalý stisk tlačítka
„.“ – uvolnění tlačítka


Čeština v manuálových stránkách

I ve správně počeštěném systému (viz výše) se při zobrazování manuálových stránek některé znaky nezobrazují správně. Pro nápravu je nutné udělat následující: 
Stáhnout si balík groff-latin2-1.1.tar.gz a z něj zkopírovat do adresáře /usr/share/groff/1.17.2/font/ adresář devlatin2. Potom nastavit konfigurační soubor man.conf umístěný v /etc nebo také v /usr/lib takto:
TROFF /usr/bin/groff -S -Tps -mandoc
NROFF /usr/bin/nroff -S -Tlatin1 -mandoc


SWAPPINESS

… uvedené platí jen pro jádra řady 2.6.X
Obsah souboru /proc/sys/vm/swappiness určuje, jak „rád“ bude systém při běhu swapovat. Rozsah hodnot je 0 až 100, přičemž 0 znamená swapování jen v případě nezbytnosti, 100 znamená silné swapování. Výchozí hodnota je 60. Snížení této hodnoty na cca 30 by mělo zvýšit responsibilitu systému.


Zvětšení místa pro swap za běhu systému

Občas se může stát, že potřebujeme navýšit velikost prostoru, který systém používá ke swapování. Udělat to není nijak složité…
Nejdříve vytvoříme soubor, který bude budoucím swapovacím souborem. V tomto případě bude mít velikost 400 MB:
# dd if=/dev/zero bs=1M of=/cesta/k/swap_soubor count=400
Vytvoříme na něm souborový systém:
# mkswap /cesta/k/swap_soubor
A připojíme ho:
# swapon /cesta/k/swap_soubor
To je vše. Velikost swapu se právě zvýšila o 400 MB. Po použití můžeme systém uvést do původního stavu tak, že soubor nejdříve odpojíme:
# swapoff /cesta/k/swap_soubor
a pak jej můžeme smazat. To všechno bez jediného restartu systému.


Zálohování MBR

Zkratkou MBR je označován hlavní spouštěcí záznam na disku. Obsahuje zavaděč a tabulku rozdělení disku na oddíly. Přesné rozdělení MBR:
446B = boot loader
4 x 16B = 4 x primární partition table
2B = boot record signature, tzv. Magic Number jehož hodnota má být myslím AA55(hex).
Pokud si MBR nechtěně přepíšete nebo vám jej (chtěně) přepsala např. instalace Windows, nenastartujete operační systém. Jeho zálohování je však jednoduché a obnova smazaného MBR pak zabere jen pár vteřin. Zálohování celého MBR na prvním disku v systému provedeme pomocí programu dd takto:
# dd if=/dev/hda of=/cesta/k/zaloha_mbr.img bs=512 count=1
Tímto příkazem jsme zkopírovali prvních 512 Bytů disku hda do uvedeného souboru. Teď už můžeme bez obav experimentovat nebo například nainstalovat Windows s vědomím, že přepsaný MBR lehce opravíme. Obnovení MBR ze zálohy:
# dd if=/cesta/k/zaloha_mbr.img of=/dev/hda bs=512 count=1
Tímto příkazem obnovíme celý MBR včetně zavaděče a tabulky rozdělení disku.


Spuštění serverů pro TELNET, FTP a SSH

Ve Slackware Linuxu představuje spuštění a zastavení serverů pro telnet a ftp pouhé odkomentování, resp. zakomentování příslušných řádků v souboru /etc/inetd.conf a následný restart superdémona, který provedeme takto:
# /etc/rc.d/rc.inetd restart

Pro spuštění serveru SSH postačí nastavit atributy souboru /etc/rc.d/rc.sshd tak aby tento byl spustitelný a spustit démona ssh:
# /etc/rc.d/rc.sshd start (stop)
Ponecháte-li soubor /etc/rc.d/rc.sshd spustitelným, bude se server SSH spouštět při každém startu stroje automaticky prostřednictvím /etc/rc.d/rc.inet2.


Zapsání lilo když je lilo.conf na jiném disku

Zapsání lilo, které má svůj konfigurační soubor jinde než v aktuálně běžícím systému provedeme takto:
# lilo -r /cesta/k/jinemu/root/
Tohle se může dobře hodit při různých opravách nebo přenášení systému na jiný disk apod.


Zapnutí routování

Pokud máte na svém stroji více síťových rozhraní, zapnete routování jednoduše takto:
# echo 1 > /proc/sys/net/ipv4/ip_forward
V podstatě tímto příkazem zapíšete do souboru ip_forward jedničku a tím řeknete jádru, že má routovat. Podobně zapsáním nuly:
# echo 0 > /proc/sys/net/ipv4/ip_forward
routování zase vypnete.


Zapnutí NAT

NAT – NETWORK ADDRESS TRANSLATION nebo také maškaráda slouží mj. k „schování“ vnitřní sítě za jediným počítačem, který pak překládá IP adresy paketů od počítačů z vnitřní sítě tak aby zvenčí vypadaly jako že pochází z tohoto (překládajícího) počítače. Hodí se v případě kdy máte například jeden počítač připojený k internetu ve funkci routeru a ostatní počítače v lokální síti jsou k internetu připojeny přes tento počítač. Zvenčí se pak celá síť jeví (na první pohled) jako jeden stroj.
Program iptables kromě NATu umí spoustu dalších věcí, především filtrování paketů, ale pro jednoduché spuštění maškarády postačuje příkaz:
# iptables -A POSTROUTING -t nat -o ethX -j MASQUERADE
kde za X dosadíme číslo rozhraní, pro které NAT povolujeme. Obsah platných pravidel pro NAT pak vypíšeme příkazem:
# iptables -t nat -n -L
Zajímá-li Vás problematika filtrování paketů víc, zadejte příkaz
# man iptables 🙂


Spuštění více X serverů

Někdy se může hodit vědět jak spustit další Xka, třeba pro dva uživatele najednou nebo pro již přihlášeného uživatele a současně pro roota apod. Přepneme se do konzole (Ctrl+F1, F2…), přihlásíme se jako další uživatel nebo root a po přihlášení spustíme další Xserver takto:
# xinit -- :1
Mezi jednotlivými X sessions se pak můžeme přepínat pomocí Ctrl+F7, Ctrl+F8 atd.

V Praze 5.12.2005

Příspěvek byl publikován v rubrice Linux se štítky a jeho autorem je michal. Můžete si jeho odkaz uložit mezi své oblíbené záložky nebo ho sdílet s přáteli.