{{indexmenu_n>1}} ====== Základní příkazy příkazové řádky ====== Příkazová řádka je základním uživatelským rozhraním každého systému. Příkazová slouží k ovládání operačního systému a například ke kompilaci programů pomocí kompilátoru. V Ubuntu lze příkazovou řádku spustit pomocí klávesové zkratky **ctrl+alt+t**. Ve Windows je nejrychlejší způsob spuštění příkazové řádky pomocí **win+r, "cmd", enter** (win+r spustí dialogové okno, které po napsání cmd spustí program cmd.exe -- úříkazová řádka Windows). V Mac OS X se terminál spouští podobně jako ve Windows pomocí sekvence **command+space, "terminal", enter**. ===== Práce v příkazové řádce ===== Příkazová řádka je uživatelské rozhranní, ve kterém uživatel komunikuje s počítačem podobně jako při psaní programu, tj. píše příkazy, které počítač vykonává tak, jako když programátor píše program (recept), který následně spustí. V případě přímého ovládání počítače a interakce s operačním systémem je využito interaktivního režimu, ve kterém počítač reaguje na každý příkaz, který je v příkazové řádce napsán a odeslán počítači ke zpracování klávesou "''Enter''". Data jsou v počítači uložena ve formě souborů, k nímž je přístup uživatelů zprostředkován operačním systémem. Proto základní práce s počítačem spočívá v interakci s operačním systémem a práci se soubory. Příkazová řádka je přítomna ve všech operačních systémech. Ve Windows je příkazová řádka přístupna pomocí programu **cmd.exe**, na systémech unixového typu běží příkazová řádka jako tzv. shell dostupný buď přímo v textovém režimu, nebo přes emulátory z grafického rozhranní (na Linuxu **Xterm, Gnome terminal, Konsole ...**, na OS X **terminal**). Příkazová řádka umožňuje základní ovládání operačního systému (procházení adresářové struktury, práce se soubory, vyhledávání ...), poskytuje rozhranní uživatelským programům a hlavně umožňuje řetězit vstupy a výstupy jednotlivých programů. Velkou výhodou ovládání počítače sekvencí příkazu je opakovatelnost, neboť se vlastně jedná o textový zápis operací podobně jako při psaní programu. Takový zápis lze uložit do souboru a posleze replikovat, nebo vytvořit takzvaný skript, který lze následně opakovaně spouštět a tím vlastně vytvořit nový příkaz. ==== Typická struktura příkazu ==== ''prikaz [přepínače] [parametry]'' ==== Příkazy navigace v adresářové struktuře ==== ^ Příkaz ^ Používané přepínače ^ Význam ^ |''ls''| -l -t | vypíše obsah aktuálního pracovního adresáře | |''cd''| | změní aktuální pracovní adresář | |''pwd''| | vypíše absolutní adresu aktuálního pracovního adresáře | |''tree''| | vypíše strukturu aktuálního pracovního adresáře včetně podadresářů formou stromu| ==== Příkazy práce se soubory a adresáři ==== ^ Příkaz ^ Používané přepínače ^ Význam ^ |''mkdir''| | vytvoří adresář zadaného jména| |''cp''| -r | zkopíruje soubor zadaného jména| |''mv''| | přesune soubor zadaného jména | |''rm''| -r -f | odstraní soubor zadaného jména| |''touch''| | vytvoří soubor zadaného jména | ==== Ostatní důležité příkazy ==== ^ Příkaz ^ Používané přepínače ^ Význam ^ |''man''| | vypíše manuálovou stránku zadaného příkazu | |''find''| | vyhledá soubor zadaného jména v aktuálním adresáři| |''locate''| | jako ''find'', ale hledá v kompletní adresářové struktuře | |''cat''| | vypíše obsah souboru jako text | |''hexdump''| -C | vypíše obsah souboru v hexadecimálním tvaru doplněný o adresy paměti | |''diff''| -y -W 100 file1 file2 | vypíše rozdíl jednotlivých souborů stejně jako BRUTE | |''xxd'' | -g 1 -c 8 pub01.out > pub01.hex | převede výstup do hex podoby | |''valgrind'' | --max-stackframe=1000000000 --leak-check=full --error-exitcode=191 ./program < input | kontrola programu jako přes BRUTE | Diff syntaxe pro Windows ''C:\MinGW\msys\1.0\bin\diff -y -W 100 pub01.out pub02.out'' ====== Adresářová struktura ====== Hierarchie adresářů (složek) a souborů je uvnitř počítače reprezentována pomocí stromu. Při práci s adresáři rozlišujeme mezi absolutními a relativními adresami. Relativní adresa popisuje cestu z aktuálního adresáře. Nechť se nacházíme uvnitř adresáře bin ve složce Lab03 a chceme znát adresu k souboru notes ve složce Lab01. Relativní adresa (vůči aktuálnímu pracovnímu adresáře) je ../../Lab01/notes.txt a absolutní adresa je /home/kubikj/PRP/Lab01/notes.txt. {{:courses:b0b36prp:tutorials:adresare.png|}} ====== Příkazy ====== ===== pwd (print working directory) ===== Příkaz pwd vypíše absolutní adresu aktuálního pracovního adresáře. {{:courses:b0b36prp:tutorials:pwd.png?600|}} ===== ls (list) ===== Tento příkaz vypíše jména všech souborů a složek uvnitř aktuálního pracovního adresáře. {{:courses:b0b36prp:tutorials:ls.png?600|}} ===== cd (change directory) ===== Tento příkaz změní aktuální pracovní adresář. Za klíčové slovo cd lze napsat absolutní adresu i relativní adresu. Dvě tečky za klíčovým slovem cd přesunou aktuální prcovní adresář do nadřazeného adresáře. {{:courses:b0b36prp:tutorials:cd.png?600|}} Povšimněme si, že dvě tečky (..) lze použít i vícenásobně. Poslední příkaz cd se vrátí o dva adresáře výše (tj do složky PRP) a odtud se přesune do složky lab02. ===== ostatní příkazy ===== Příkaz **mkdir** (make directory) vytvoří adresář daného jména uvnitř aktuálního pracovního adresáře. Příkaz **rmdir** (remove directory) smaže adresář daného jména, ovšem pouze v případě, že je tento adresář prázdný. Příkaz **clear** vymaže obrazovku příkazové řádky. Pomocí tabulátoru lze uvnitř příkazové řádky doplňovat slova. Příkaz **touch** se "dotkne" souboru nebo adresáře, což znamená, že změní datum poslední změny na aktuální systémové datum a v případě neexistence souboru nebo adresáře ho vytvoří. {{:courses:b0b36prp:tutorials:mkdir_touch.png?600|}} Pomocí šipky nahoru a šipky dolu lze procházet historii zadaných příkazů. Klávesa tabulátor doplňuje názvy souborů a složek. Příkaz man a jméno příkazu otevře jeho manuál.