{{indexmenu_n>1}} ====== 1 - Úvodní cvičení ====== Seznámení s počítačovou učebnou, [[courses:b0b36prp:tutorials:services|ownCloud]] a [[https://cw.felk.cvut.cz/upload/|BRUTE]]. * pro vyučující: [[courses:b0b36prp:internal:tutorialinstruction:01|]] ===== 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 (přejmenuje) 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 | ==== Úkoly ==== * nastavte si heslo v počítačové učebně [[https://www.felk.cvut.cz/labpass/|(Nastavení hesla)]] a seznamte se používaným prostředím * procvičte si práci v příkazové řádce * v adresáři Documents ve svém domovském adresáři si založte složku PRP a v ní podsložku CV01 * ve složce CV01 vytvořte soubor se jménem cviceni.txt * celou složku PRP přesuňte ze složky Documents do domovského adresáře * přejmenujte cviceni.txt na main.c * stáhněte si nastavení pro textový editor **gedit**: {{:courses:b0b36prp:labs:setup_gedit.zip|}} === === wget https://cw.fel.cvut.cz/wiki/_media/courses/b0b36prp/labs/setup_gedit.zip ==== ==== * rozbalte ho a nainstalujte (=spusťte) === === unzip setup_gedit.zip ./setup_gedit.sh ==== ==== Klíčové nastavení editoru je pro formátování zdrojového kódu. V předmětu PRP je preferováno formátování nástrojem clang-format a nastavením stylu: {BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux} Formátování zdrojového kódu pak provedete např. následovně: clang-format -style='{BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux}' muj_kod.c >formatovany_kod.c ===== Úvod do programování v jazyce C ===== ==== ==== // example program in C #include int main() { printf("Hello PRP!\n"); return 0; } ==== Překlad programu ==== Překlad na spustitelný soubor provádíme z příkazové řádky příkazem clang -Wall -pedantic -std=c99 main.c -o main případně gcc -Wall -pedantic -std=c99 main.c -o main ==== Spuštění programu ==== Program spouštíme z příkazové řádky příkazem ./main ==== Úkoly ==== * do souboru main.c napište zdrojový kód programu, který vypíše na standardní výstup **"Hello PRP!"** * program zkompilujte a spusťte * zdrojový kód zazipujte do archivu **''main.zip''**, například pomocí příkazu: **"''zip main.zip main.c''"** * vytvořený archiv nahrajte do [[https://cw.felk.cvut.cz/brute|Upload systému]], viz úkol [[courses:b0b36prp:hw:hw00|HW00]].