Rozšíření

Linuxový shell

Cvičení

Soubory a souborový systém

SSŠVT

Emulace shellu v Linuxu

Požadavky k rozšířené funkcionalitě

Toto rozšíření projektu LinSh bude (vedle minimální funkcionality) umět ještě další příkazy:


Příkaz rm

Příkaz rm (remove) smaže soubor, jehož název (případně i cestu k němu) uvedeme jako parametr. Pokud uvedeme více parametrů (oddělovačem je vždy mezera), bere se každý parametr jako soubor (název/cesta) a příkaz smaže všechny takové soubory.

Příklady:

Příkaz (nejprve vypíšeme obsah aktuálního adresáře):

ls -la
        

Výsledek (zvýrazněné soubory budou příštím příkazem odstraněny):

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
-rw-r--r--  1 paja paja 1647 Sep 25 06:14 csv.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 1565 Sep 25 06:14 json.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
-rw-r--r--  1 paja paja 2078 Sep 25 06:14 xml.html
        

Příkaz (nyní některé soubory z aktuálního adresáře odstraníme pomocí rm):

rm csv.html json.html xml.html
        

Výsledek (pokud nedošlo k chybě, soubory se z adresáře odstraní a nic se nevypíše):

        

Příkaz (znovu vypíšeme obsah aktuálního adresáře, odstraněné soubory ve výpisu chybí):

ls -la
        

Výsledek:

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz cp

Příkaz cp (copy) zkopíruje soubor, jehož název (případně i cestu k němu) uvedeme jako první parametr, do adresáře, jehož cestu uvedeme jako druhý parametr. Pokud uvedeme ve druhém parametru cestu k existujícímu adresáři, avšak s názvem neexistujícího souboru v něm, původní soubor se zkopíruje do tohoto adresáře pod tímto novým názvem.

Příkaz (nejprve vypíšeme obsah adresáře exercises):

ls -la exercises/
        

Výsledek:

drwxr-xr-x 4 paja paja 4096 Oct 20 11:50 .
drwxr-xr-x 3 paja paja 4096 Oct 20 12:16 ..
drwxr-xr-x 2 paja paja 4096 Oct 20 12:00 csvdb
-rw-r--r-- 1 paja paja  854 Oct 20 11:56 index.html
drwxr-xr-x 2 paja paja 4096 Oct 20 12:00 linsh
        

Příkaz (nyní zkopírujeme soubor bo.html z aktuálního adresáře do adresáře exercises pod novým názvem bo2.html):

cp bo.html exercises/bo2.html
        

Výsledek (pokud nedošlo k chybě, soubor se zkopíruje a nic se nevypíše):

        

Příkaz (znovu vypíšeme obsah adresáře exercises):

ls -la exercises/
        

Výsledek (zvýrazněný soubor vznikl jako kopie původního souboru bo.html):

drwxr-xr-x 4 paja paja 4096 Oct 20 11:50 .
drwxr-xr-x 3 paja paja 4096 Oct 20 12:16 ..
-rw-r--r-- 1 paja paja 3655 Oct 21 09:32 bo2.html
drwxr-xr-x 2 paja paja 4096 Oct 20 12:00 csvdb
-rw-r--r-- 1 paja paja  854 Oct 20 11:56 index.html
drwxr-xr-x 2 paja paja 4096 Oct 20 12:00 linsh
        

Příkaz mv

Příkaz mv (move) přesune soubor, jehož název (případně i cestu k němu) uvedeme jako první parametr, do adresáře, jehož cestu uvedeme jako druhý parametr. Pokud uvedeme ve druhém parametru cestu k existujícímu adresáři, avšak s názvem neexistujícího souboru v něm, původní soubor se do tohoto adresáře přesune pod tímto novým názvem.

Pokud jsou zdrojový a cílový adresář stejné, avšak název souboru je ve druhém parametru odlišný od názvu zdrojového souboru, dojde k přejmenování souboru v daném adresáři. Pokud chceme přejmenovat soubor v aktuálním adresáři, nemusíme vůbec uvádět cesty, pouze původní název a nový název.

Příkaz (nejprve vypíšeme obsah aktuálního adresáře):

ls -la
        

Výsledek (zvýrazněný soubor bude přejmenován):

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz (nyní přejmenujeme soubor read.html na read-me.html):

mv read.html read-me.html
        

Výsledek (pokud nedošlo k chybě, soubor se přejmenuje a nic se nevypíše):

        

Příkaz (znovu vypíšeme obsah aktuálního adresáře):

ls -la
        

Výsledek:

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read-me.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz mkdir

Příkaz mkdir (make directory) vytvoří nový adresář, jehož název (případně i cestu k němu) uvedeme jako parametr.

Příkaz (nejprve vypíšeme obsah aktuálního adresáře):

ls -la
        

Výsledek:

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read-me.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz (nyní vytvoříme nový adresář jako podadresář aktuálního adresáře):

mkdir aaa-auto
        

Výsledek (pokud nedošlo k chybě, adresář se vytvoří a nic se nevypíše):

        

Příkaz (znovu vypíšeme obsah aktuálního adresáře, v adresáři přibyl nový adresář aaa-auto):

ls -la
        

Výsledek:

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
drwxr-xr-x  2 paja paja 4096 Oct 21 09:50 aaa-auto
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read-me.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz rmdir

Příkaz rmdir (remove directory) odstraní adresář, jehož název (případně i cestu k němu) uvedeme jako parametr. Aby bylo možné zadaný adresář pomocí rmdir odstranit, musí být prázdný (nesmí obsahovat žádné soubory ani podadresáře).

Příkaz (nejprve vypíšeme obsah aktuálního adresáře):

ls -la
        

Výsledek (zvýrazněný adresář bude odstraněn):

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
drwxr-xr-x  2 paja paja 4096 Oct 21 09:50 aaa-auto
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read-me.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html
        

Příkaz (nyní odstraníme dříve vytvořený adresář aaa-auto):

rmdir aaa-auto
        

Výsledek (pokud nedošlo k chybě, adresář se odstraní a nic se nevypíše):

        

Příkaz (znovu vypíšeme obsah aktuálního adresáře – adresář aaa-auto byl skutečně odstraněn):

ls -la
        

Výsledek:

drwxr-xr-x  3 paja paja 4096 Oct 20 12:16 .
drwxr-xr-x 34 paja paja 4096 Oct 20 11:30 ..
-rw-r--r--  1 paja paja 3655 Sep 25 06:14 bo.html
drwxr-xr-x  4 paja paja 4096 Oct 20 11:50 exercises
-rw-r--r--  1 paja paja 1323 Oct 20 12:15 index.html
-rw-r--r--  1 paja paja 3097 Sep 25 06:14 read-me.html
-rw-r--r--  1 paja paja  403 Feb  8  2022 StreamReaderExample.csx
-rw-r--r--  1 paja paja 8872 Sep 25 06:14 system-io.html
-rw-r--r--  1 paja paja 1713 Sep 25 06:14 text-file.html
-rw-r--r--  1 paja paja 1726 Sep 25 06:23 validate.html
-rw-r--r--  1 paja paja 2709 Sep 25 06:14 write.html