{{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]].