Sedláme Linux, 7. díl: práce se soubory

Sedmá část našeho seriálu bude věnována dalším příkazům pro práci se soubory a adresáři v operačním systému GNU/Linux. Projdeme si všechny důležité operace, které se se soubory a adresáři dají provádět.
Sedláme Linux, 7. díl: práce se soubory

Vytvoření prázdného souboru

Jestliže se rozhodnete vytvořit prázdný soubor, použijte k tomu příkaz touch, kterému jako parametr zadáte název příslušného souboru. Tedy například:

touch blbost.txt

Tímto příkazem vytvoříme prázdný soubor blbost.txt. Nejčastěji používaným příkladem, podle kterého si jistě tento příkaz zapamatujete, je touch heaven.

Změna data a času modifikace souboru

Toto je vlastně primární funkce příkazu touch - změna času a data modifikace souboru. Když si totiž vypíšete seznam souborů (příkaz ls - viz minulá část), zjistíte, že součástí tohoto výpisu je také datum a čas, které signalizují poslední změnu souboru. To můžete dle libosti změnit. Stačí použít příkaz touch s parametrem -d a časovým údajem:

touch -d `15 January 2003 21:07` vypis.txt
touch -d `15 January` vypis.txt
touch -d `15 January 1983` vypis.txt
touch -d `21:07` vypis.txt

Kopírování souborů

Když se rozhodnete zkopírovat nějaký soubor z jednoho adresáře do jiného, použijte příkaz cp (copy). Jako parametry mu zadáme nejprve původní soubor a následně cílovou lokaci. Například:

cp blbost.txt /etc/skel
cp /etc/shadow /home/lama

Kopírování adresářů

Malinko odlišné je to v případě kopírování adresářů. Tam musíme doplnit parametr -R. Tedy například:

cp -R /etc /home/kmartin

Přejmenování a přesouvání souborů a adresářů

Jestliže byste rádi přenesli soubor(y) nebo adresář(e) z jednoho místa na jiné, anebo byste chtěli některý soubor či adresář přejmenovat, je tu pro vás příkaz mv (move). Syntaxe je podobná jako při kopírování:

mv blbost.txt /tmp
mv blbost.txt blbost-1.txt

Odstranění souboru

K odstranění souboru slouží příkaz rm (remove). Ale pozor, po potvrzení klávesou Enter se už neptá, jestli to myslíte vážně, apod. Předpokládá, že všechno co děláte, děláte vědomě. Dobře si tedy rozmyslete, co chcete vlastně udělat. Existuje možnost vynucení potvrzení, ale tím se budeme zabývat až při povídání o aliasech. Typické použití příkazu rm je takovéto:

rm blbost.txt

Odstranění prázdného adresáře

K odstranění prázdného adresáře slouží příkaz rmdir. Syntaxe je dále shodná s rm - zadáme tedy jen název adresáře, který chceme odstranit:

rmdir adresar

Odstranění neprázdného adresáře

Rádi byste odstranili adresář včetně všech souborů, které obsahuje? Ani to není problém. Zde sáhneme opět po příkazu rm, ale tentokrát mu zadáme jako parametr -R. Tedy:

rm -R adresar

Odstranění souboru s komplikovaným názvem

Může se stát, že na disku budete mít například soubor typu -blbost. Kdybyste zadali rm -blbost, bude systém předpokládat, že se jedná o parametr. Abyste mu vysvětlili, že tomu tak není, použijte přepínač --, který mu sdělí, že všechno, co následuje, nejsou parametry, ale názvy souborů:

rm -- -blbost

Symbolické odkazy

Určitou zajímavostí, na kterou v řadě jiných systémů nenarazíte, jsou odkazy. Může se stát, že budete potřebovat, aby se na dvou různých místech vyskytoval stejný soubor. Proč ale zbytečně zaplňovat diskový prostor něčím, co už tu je? Zkrátka umístíme originální soubor na jednu pozici a na tu druhou umístíme odkaz. Pokud nějaký program zavolá tento odkaz, tak odkaz zase zavolá původní soubor a všechno se chová tak, jako kdybychom v systému měli dva totožné soubory. Rozlišujeme symbolické a pevné odkazy. Budu se zabývat pouze symbolickými (pevné se liší z praktického hlediska jen v tom, že nemohou odkazovat na adresář a mimo hranice svazku a když odkaz smažeme, smaže se i původní soubor). Vytvoření symbolického odkazu je prosté:

ln -s /home/kmartin/blbost.txt /etc/kravina.txt

Zdrojovým souborem (původním) je v tomto případě blbost.txt a odkazem, který vytváříme, je kravina.txt.

Spuštění programu

Prošli jsme si řadu příkazů pro práci se soubory, ale ještě vlastně nevíme, jak spustit nějaký program. V zásadě existují dvě možnosti. Pokud je tento program v některém z určených adresářů, tedy především v /bin nebo /usr/bin, pak stačí zadat pouze název spouštěcího souboru a potvrdit klávesou Enter. Jestliže se ale program vyskytuje jinde, pak je vhodné se do tohoto adresáře přesunout a zadat ./soubor, kde ./ specifikuje aktuální adresář. Anebo můžeme zkrátka zadat /cesta/soubor z libovolného umístění v systému.

Výpis a ukončení procesů

Každý spuštěný program je v systému označen jako proces a ten je identifikován svým číslem. Jeden program se může rozložit i do více procesů. Když se stane, že některý program přestane fungovat a "zamrzne", pak můžeme, díky práci s procesy, jeho běh ukončit. Stačí se přepnout do jiné konzole (nejčastěji ALT+F2F6) a zadat příkaz ps. Tím dojde k výpisu všech běžících procesů:

 PID TTY          TIME CMD
1690 tty1     00:00:00 login
1691 tty2     00:00:00 login
1692 tty3     00:00:00 login
1693 tty4     00:00:00 login
1695 tty6     00:00:00 mingetty
1703 tty2     00:00:00 bash
2507 tty5     00:00:00 login
2717 tty2     00:00:00 ps

Když se teď rozhodneme některý z nich ukončit, zadáme jednoduše příkaz kill následovaný číslem procesu (PID). Tedy například:

kill 1703

Jen doplním, že výpis procesů můžeme mít trošku pestřejší. Pokud budeme chtít vypsat všechny běžící procesy, použijeme parametr a. Abychom viděli čas spuštění programu a jméno uživatele, který jej využívá, doplníme ještě parametr u. A protože nás zajímá i návaznost mezi jednotlivými procesy, použijeme ještě parametr f, který nám jednotlivé závislosti vykreslí. Dostaneme tedy podobu ps auf. Výpis pak bude vypadat nějak takto:

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
lucka    29245  0.0  0.2  3904 2336 pts/2    S    Jan03   0:00 -csh
kmartin  23284  0.2  0.2  4008 2416 pts/6    S    07:31   0:00 -csh
kmartin  23292  0.0  0.2  5392 2304 pts/6    R    07:31   0:00  \_ ps auf
root       324  0.0  0.0  1816  776 tty6     S     2002   0:00 /sbin/getty 38400 tty6
root       323  0.0  0.0  1816  776 tty5     S     2002   0:00 /sbin/getty 38400 tty5
root       322  0.0  0.0  1816  776 tty4     S     2002   0:00 /sbin/getty 38400 tty4
root       321  0.0  0.0  1816  776 tty3     S     2002   0:00 /sbin/getty 38400 tty3
root       320  0.0  0.0  1816  776 tty2     S     2002   0:00 /sbin/getty 38400 tty2
root       319  0.0  0.1  3616 1944 tty1     S     2002   0:00 -bash

K procesům se ještě vrátíme a budeme si povídat mj. o nástroji killall. Pro dnešek je to už ale všechno.

Témata článku: Linux, Heaven, Lama, Login, Lucky, Meme, PID, PS 2, Remove, Root, Shadow, Stat, Touch, Soubor, Díl, Práce, Lin

89 komentářů

Nejnovější komentáře

  • Jarda 30. 7. 2003 11:05:05
    Pro tuhle novou grafickou kartu, je třeba zadat do XF86Config[-4]...
  • Martin Kysela 28. 7. 2003 18:21:21
    Zni to pekne, ale nemate uplne pravdu. Tady se ozvli dva lidi, kterym...
  • Martin Kysela 28. 7. 2003 18:19:17
    nechapu, kam na to chodite... kdyz udelam chybu, uznam ji, jak jste se...
Určitě si přečtěte

USB zařízení je možné odposlouchávat ze sousedního portu

USB zařízení je možné odposlouchávat ze sousedního portu

** Crosstalk byl dřív problém paralelních portů, dnes se ho pokusili prověřit na USB ** Zařízení ze sousedního USB portu může odposlouchávat to vedlejší ** Mohou vznikat záškodnické flašky nebo třeba USB lampičky

14.  8.  2017 | Adam Harmada | 19

Co je realita a fikce? Brzy to nepoznáme. A.I. ze Stanfordu tvoří fotky z neexistujících měst

Co je realita a fikce? Brzy to nepoznáme. A.I. ze Stanfordu tvoří fotky z neexistujících měst

** Fotografii každý vnímá jako jednoznačný důkaz ** časem to ale přestane platit ** Strojové učení se totiž neustále zdokonaluje

16.  8.  2017 | Jakub Čížek | 13


Aktuální číslo časopisu Computer

Velký test NVMe a SATA SSD

Máte slabý signál
Wi-Fi? Poradíme!

Jak umělá inteligence opravuje fotky

Kupujete dron? Ty levné se nevyplatí