Jako základ efektivní práce se systémem je nutné zvládnout správu souborů a adresářů, jejich vytváření, rušení, kopírování a další operace.
26.7.2004 13:00 | Petr Hatina | přečteno 174781×
Před zahájením popisu příkazů si vysvětlíme několik společných pojmů.
V Linuxu je odlišná struktura přístupu k diskům, souborový oddíl s instalací Linuxu obsahuje adresářovou strukturu s celkem pevně daným seznamem adresářů. Zde je přehled těch nejdůležitějších z hlediska běžného uživatele:
/
kořenový adresář celé struktury/bin
systémové příkazy Linuxu/dev
soubory zařízení/etc
konfigurační soubory s nastavením systémových příkazů/home
domovské adresáře jednotlivých uživatelů/mnt
připojeny jako podadresáře ostatní disky/root
domácí adresář uživatele root (administrátora)/usr
nainstalované aplikační programy
Výměnné disky (disketové mechaniky, CD-ROM, USB flash disky) se obvykle připojují jako
podadresáře adresáře /mnt
, nebo /mount
(zvlášť u novějších distribucí, v souladu s FHS - standardem pro adresářovou strukturu nejen linuxových systémů).
Používané názvy jsou sice ustálené ale mohou se u jednotlivých distribucí trochu
lišit, kupříkladu disketová mechanika je viditelná jako adresář /mnt/floppy
nebo jako /mnt/fd0
, mechanika CD-ROM jako /mnt/cdrom
, USB flash disk jako
/mnt/sda1
, a podobně.
Je to adresář ve kterém právě pracujeme. Soubory v něm stačí specifikovat
pouze jménem. Pro odkaz na aktuální adresář se často používá
./. Zvláště v případech, že voláme program nebo script
v aktuálním adresáři a systém se tváří že ho nezná, ho lze spustit jako
./příkaz
. Například script skripticek
v aktuálním
adresáři zavoláme:
./skripticek
Pro každého uživatele se při jeho přidání do systému
vytváří jeho domovský adresář, /home/jmeno
do kterého se ukládají jeho
uživatelská data a konfigurační nastavení. Po přihlášení se do systému se stává
pro něj ihned aktuální a má v něm plný přístup a oprávnění ke všem
činnostem. Pokud vezmeme jako příklad uživatele bfu
z dílu o správě
uživatelských účtů, jeho domovský adresář je
/home/bfu
Soubory uložené v jiném než aktuálním adresáři, musíme v příkazech
zapsat včetně cesty, tedy sledu průchodu adresáři k souboru, oddělenými lomítky
/
. Používají se 2 způsoby - absolutní (od kořenového adresáře)
a relativní (z právě aktuálního adresáře).
Jako příklad, soubor poznamka.txt
v podadresáři texty
aktuálního adresáře
uživatele bfu
může být specifikován z adresáře
/home/bfu/
takto:
/home/bfu/texty/poznamka.txt texty/poznamka.txt ./texty/poznamka.txt
Abychom mohli v rámci jednoho příkazu zpracovat více souborů, název souboru nahradíme nebo doplníme
zástupnými znaky. Používají se 2 základní: *
, který nahrazuje 0 nebo více znaků a
?
, který nahrazuje právě jeden znak za každý svůj výskyt. Například:
cp obrazky/* kopie #zkopíruje všechny soubory z obrazky/ do kopie/ cp obrazky/Berta* kopie #pouze soubory začínající "Berta" cp obrazky/Berta?? kopie #takto zkopíruje pouze soubory Berta01 až Berta10
Většina příkazů obsahuje dále parametr -R
, který rozšiřuje vykonávání příkazu
rekurzivně, tedy i pro soubory v podadresářích. A ještě jednu dosti podstatnou věc, Linux důsledně
rozlišuje velká a malá písmena v názvech příkazů i souborů.
Příkaz pwd
zobrazí cestu a název právě aktuálního
adresáře. Pokud jsme v domovském adresáři uživatele bfu
,
příkaz pwd
zobrazí:
pwd
/home/bfu
Nový adresář vytvoříme příkazem mkdir
. Takto
se vytvoří nový podadresář texty v aktuálním adresáři:
mkdir texty
Již existující, prázdný adresář lze smazat příkazem rmdir adresář
.
Pro změnu aktuálního adresáře použijeme příkaz cd
. Lze použít absolutní i relativní
cestu, takže do podadresáře texty aktuálního adresáře bfu
lze přejít z tohoto
adresáře jednou z těchto možností:
cd texty cd /home/bfu/texty cd ./texty
Příkaz cd
bez parametru způsobí přechod do domovského adresáře uživatele.
Výpis souborů v adresáři, získáme příkazem ls
. Bez parametrů zobrazí stručný seznam
názvů souborů v adresáři. Při použití parametru -l
získáme detailní výpis, přidáme-li ještě
parametr -a
, ve výpisu se objeví i skryté soubory. Lze samozřejmě uvést specifikaci
souborů které se mají zobrazit, včetně cesty. Pokud není uvedena, ls
vypíše všechny soubory
v aktuálním adresáři. Příklady:
ls p*.txt #vypíše soubory které začínají písmenem p ls p?? #vypíše soubory, které začínají p a za ním jsou #právě 2 znaky (např. p01, p02) ls /dev #vypíše obsah adresáře /dev ls -l -R #vypíše adresář včetně podadresářů
K této skupině příkazů snad ještě můžeme připojit příkaz du
,
který vypíše zaplnění diskového prostoru.
Soubor lze zkopírovat příkazem cp
. Lze kopírovat do souboru jiného
jména, nebo soubor pod stejným jménem do jiného adresáře. Například
cp /mnt/floppy/01.jpg /home/bfu #takto zkopírujeme soubor #z diskety do adresáře uživatele bfu cp 01.jpg kopie.jpg #a nakopírovaný soubor si pak uložíme jako kopii
Zvláště pokud kopírujeme hromadně více souborů, bude užitečný parametr-i
,
při jehož použití bude nutné potvrdit každý přepisovaný, již existující soubor.
Jestliže ve výstupním adresáři již existuje soubor 01.jpg
, pak po příkazu
cp -i /mnt/floppy/*.jpg
se zobrazí dotaz :
cp: ovewrite '01.jpg'
.
Aby se soubor přepsal, je třeba ho potvrdit stiskem klávesy y
.
Pro zachování starší verze přepisovaného souboru lze použít parametr
-b
, který vytvoří archivní kopii přepisovaného souboru.
Obsah adresáře, včetně podadresářů lze zkopírovat s pomocí parametru -r
.
cp -r . /tmp
Podobnou syntax má příkaz mv
, který soubor přenese do jiného adresáře,
užívá se i pro přejmenování souboru.
mv 01.jpg nejlepsi.jpg #obrazek přejmenuje mv 01.jpg obrazky #přenese do podadresáře obrazky (musí existovat)
Existující soubor lze smazat příkazem rm
. I zde lze pro bezpečnější
rušení více souborů použít parametr -i
, který si vynutí potvrzování každého souboru samostatně.
rm /home/bfu/01.jpg
Příkazem ln
vytvoříme odkaz, tedy jiný další název
kterým se na soubor nebo adresář můžeme odkazovat.
Odkaz samozřejmě může být uložen ve zcela jiném adresáři, což se dá využít například
pro rychlejší přístup k prohlížení soubor logu /var/log/boot.log
.
ln -s /var/log/boot.log log
A pak si ho lze prohlížet přímo pomocí more log
.
Častější a užitečnější budou případy, kdy program vyžaduje potřebné knihovny jinde než jsou nainstalovány.
V tom případě se místo kopírování jen vytvoří odkaz na patřičný soubor.
Zde byl použit parametr -s
, který označuje běžnější, symbolický odkaz,
který se odkazuje na jméno původního souboru, na rozdíl od druhého typu
odkazu, pevného, který je přiřazen přímo inodu, tj, umístění souboru na
disku.
Pro rychlé prohlížení souborů na obrazovce můžeme použít příkazy cat
a
more
. Příkaz more
je výhodný v tom že stránkuje,
po zaplnění obrazovky výpis zastaví a čeká na pokyn k dalšímu posunu stiskem klávesy.
Příkaz cat
naproti tomu můžeme využít k rychlému vytvoření krátkého
textového souboru:
cat >poznamka.txt 1.radek 2.radek po posledním řádku stisknout stisknout Ctrl+D