gedit nebo vim. Určitě je také možné použít komplexní prostředí jako je např. CLion. Nicméně jeho konfigurace a prozkoumání všech možností, může velmi rychle překročit časovou dotaci předmětu.
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 nebo modernější varianty PowerShell.exe, případně alternativou Z-shell. 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ů.
prikaz [přepínače] [parametry|argumenty|jména souboru(ů)]
| Příkaz | Používané přepínače | Význam |
|---|---|---|
ls | -l -t | vypíše obsah aktuálního pracovního adresáře (list directory contents) |
cd | změní aktuální pracovní adresář (change directory) | |
pwd | vypíše absolutní adresu aktuálního pracovního adresáře (print working directory name) | |
tree | vypíše strukturu aktuálního pracovního adresáře včetně podadresářů formou stromu |
| Příkaz | Používané přepínače | Význam |
|---|---|---|
mkdir | Vytvoří adresář zadaného jména (make directories ) | |
cp | -r | Zkopíruje soubor zadaného jména (copy files) |
mv | Přesune (přejmenuje) soubor zadaného jména (move files) | |
rm | -r -f | Odstraní soubor zadaného jména (remove directory entries) |
touch | | Vytvoří soubor zadaného jména, pokud takový existuje, jinak aktualizuje tzv. modification time. |
man touch, případně návod touch —-help.
| 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 vytvořené databáze. |
|
cat | Vypíše obsah souboru jako text | |
echo | Vypíše obsah argument na standardní výstup, např. návratovou hodnota posledního příkazu echo $? nebo proměnná prostředí echo $HOME nebo echo $PWD. |
|
hexdump | -C | Vypíše obsah souboru v hexadecimálním tvaru doplněný o adresy paměti. |
Adresář (anglicky directory) je objektem souborového systému s přesně definovaným umistěním v rámci hiearchie souborů. Složka (folder) je motivována grafickým rozhraním reprezentující nějaký konkrétní adresář. https://en.wikipedia.org/wiki/Directory_(computing)#Folder_metaphor.
Například domovský adresáře uživatele user najdeme typicky v adresáři /home/user. Složku Dokumenty můžeme například najít na grafického rozhraní a podle volby jazyka prostředí může odkazovat na /home/user/Documents nebo jinou složkou, třeba i vzdálený adresář.
prp a v něm lab01. Ideálně přímo v domovském adresáři, alternativně například ve složce Documents.
prp vytvořte adresář lab01.
lab01 vytvořte textový soubor se jménem prp-lab01.txt
~/ctu-fee, kde symbol ~ reprezentuje domovský adresář, tež odkazovaný v proměnné prostředí HOME, odkazované např. printenv $HOME.
prp-lab01.txt přejmenujte na main.c.
➜ ~ pwd
/home/jf
➜ mkdir -p prp/lab01
➜ touch prp/lab01/prp-lab01.txt
➜ tree prp
prp
└── lab01
└── prp-lab01.txt
1 directory, 1 file
➜ mkdir ctu-fee
➜ mv prp/lab01 $HOME/ctu-fee/prp-lab01
➜ cd ctu-fee/prp-lab01
➜ pwd
/home/jf/ctu-fee/prp-lab01
➜ ls
prp-lab01.txt
➜ mv prp-lab01.txt main.c
➜ cd
➜ tree ctu-fee
ctu-fee
└── prp-lab01
└── main.c
1 directory, 1 file
Jednotlivé kroky můžete kontrolovat například pohledem grafického správce souborů.
prp-lab01.sh, který provede uvedené kroky v posloupnosti, ale místo domovského adresáře umístě podadresáře a soubory do pracovního prostoru /tmp, například odkazovaného /tmp/$PWD.
chmod +x prp-lab01.sh pro přímé spuštění ve stylu ./prp-lab01.sh nebo jej můžete spustit v rámci konkrétní instance příkazového interpretu např. . ./prp-lab01.sh.
cd pro změnu aktuálního pracovního adresáře, můžete se k předchozím adresáři vrátit cd -, viz například https://www.youtube.com/watch?v=zvKRKU-ex6g.
dst=/tmp/$HOME použitelnou třeba v mkdir -p $dsts/prp/lab01.
. ./prp-lab01.sh
/tmp/home/jf/prp
└── lab01
└── prp-lab01.txt
1 directory, 1 file
/tmp/home/jf/ctu-fee
└── prp-lab01
└── main.c
1 directory, 1 file
wget https://cw.fel.cvut.cz/wiki/_media/courses/b0b36prp/labs/setup_gedit.zip
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
V případě použití vývojového prostředí VS Code lze lokálně nastavit formátování vytvořením souboru .clang-format, viz Programovací prostředí. Výstup pak může například vypadat následovně.
// example program in C #include <stdio.h> int main() { printf("Hello PRP!\n"); return 0; }
Překlad na spustitelný soubor provádíme z příkazové řádky příkazem
clang -Wall -pedantic -std=c99 main.c -o mainpřípadně
gcc -Wall -pedantic -std=c99 main.c -o main
Program spouštíme z příkazové řádky příkazem
./main
V prostředí VS Code může vypadat interaktivní práce tak, že si stáhneme soubor domácího úkolu v prohlížeči do adresáře ~/Downloads a dále vše řešíme už jen z VS Code s využitím integrovaného terminálu.
kde můžeme též využít příložena Makefile a vytvořit si zip soubour voláním make zip.
main.c napište zdrojový kód programu, který vypíše na standardní výstup “Hello PRP!”.
main.zip, například pomocí příkazu: “zip main.zip main.c“.
$? a vyzkoušet si různé návratové hodnoty programu a řetězení kompilace a spuštění programu, včetně např. podmíněného spuštění programu v závislosti na úspěchu kompilace programu.