man (manual)man [příkaz]
man ls
| Klávesa | Význam |
|---|---|
q |
ukončení |
/text |
hledání textu |
n |
další nalezený výskyt |
PgUp / PgDown |
pohyb |
| šipky | pohyb |
--helphelp if, help for, …man[příkaz] --help
ls --help
pwd (print working directory)pwd
ls (list)ls [parametry] [adresář]
ls
ls documents
| Parametr | Význam |
|---|---|
-l |
detailní výpis |
-a |
zobrazí skryté soubory |
-h |
čitelné velikosti souborů |
-R |
rekurzivní výpis |
-t |
řazení podle času |
-r |
obrácené pořadí |
cd (change directory)cd [adresář]
cd documents
cd ..
cd ~
cd /home/ondra/projects
cd -
| Symbol | Význam |
|---|---|
. |
aktuální adresář |
.. |
nadřazený adresář |
~ |
domovský adresář |
mkdir (make directory)mkdir [adresář]
mkdir documents
mkdir images videos backups
mkdir -p projects/python/app
| Parametr | Význam |
|---|---|
-p |
vytvoří i chybějící nadřazené adresáře |
cp (copy)cp [zdroj] [cíl]
cp file.txt backup.txt
cp file.txt documents/
cp file1.txt file2.txt backups/
cp -r projects backups/
| Parametr | Význam |
|---|---|
-r |
rekurzivní kopírování adresářů |
-i |
potvrzení před přepsáním |
-v |
verbose režim |
-u |
kopíruje pouze novější soubory |
mv (move)mv [zdroj] [cíl]
mv file.txt documents/
mv old.txt new.txt
mv file1.txt file2.txt backups/
mv projects/ backups/
| Parametr | Význam |
|---|---|
-i |
potvrzení před přepsáním |
-v |
verbose režim |
-n |
nepřepisuje existující soubory |
rm (remove)rm [soubor]
rm file.txt
rm file1.txt file2.txt
rm -r projects/
rm -f file.txt
| Parametr | Význam |
|---|---|
-r |
rekurzivní odstranění adresářů |
-f |
vynucené odstranění |
-i |
potvrzení před odstraněním |
-v |
verbose režim |
findfind [cesta] [podmínka]
find . -name "*.txt"
find . -type d
find . -type f
find . -size +10M
find . -iname "*.jpg"
| Parametr | Význam |
|---|---|
-name |
hledání podle názvu |
-iname |
hledání bez ohledu na velikost písmen |
-type f |
pouze soubory |
-type d |
pouze adresáře |
-size |
hledání podle velikosti |
-empty |
prázdné soubory/adresáře |
cat (concatenate)cat [soubor]
cat file.txt
cat file1.txt file2.txt
cat file1.txt file2.txt > output.txt
| Parametr | Význam |
|---|---|
-n |
číslování řádků |
-b |
číslování neprázdných řádků |
grep (global regular expression print)grep [vzor] [soubor]
grep "error" log.txt
grep -i "error" log.txt
grep -r "TODO" .
grep -c "error" log.txt
| Parametr | Význam |
|---|---|
-i |
ignoruje velikost písmen |
-r |
rekurzivní vyhledávání |
-n |
zobrazí čísla řádků |
-c |
počet nalezených řádků |
-v |
invertuje výsledek |
cutcut [parametry] [soubor]
cut -c 1-5 file.txt
cut -d ":" -f 1 /etc/passwd
| Parametr | Význam |
|---|---|
-c |
výběr znaků |
-d |
oddělovač |
-f |
číslo sloupce |
tr (translate)tr [znaky] [znaky]
echo "HELLO" | tr 'A-Z' 'a-z'
echo "hello123" | tr -d '0-9'
echo "a,b,c" | tr ',' ';'
| Parametr | Význam |
|---|---|
-d |
odstranění znaků |
-s |
sloučení opakujících se znaků |
sortsort [soubor]
sort names.txt
sort -r names.txt
sort -n numbers.txt
sort -u names.txt
| Parametr | Význam |
|---|---|
-r |
obrácené pořadí |
-n |
numerické řazení |
-u |
odstranění duplicit |
uniquniq [soubor]
uniq names.txt
uniq -c names.txt
uniq -d names.txt
| Parametr | Význam |
|---|---|
-c |
počet výskytů |
-d |
pouze duplicitní řádky |
-u |
pouze unikátní řádky |
wc (word count)wc [soubor]
wc -l file.txt
wc -w file.txt
wc -c file.txt
| Parametr | Význam |
|---|---|
-l |
počet řádků |
-w |
počet slov |
-c |
počet znaků |
-m |
počet znaků (Unicode) |
ps (process status)ps [parametry]
ps
ps aux
ps -p 1234
| Parametr | Význam |
|---|---|
a |
procesy všech uživatelů |
u |
detailní informace |
x |
procesy bez terminálu |
-p |
konkrétní PID |
toptop
q
| Sloupec | Význam |
|---|---|
PID |
ID procesu |
%CPU |
využití CPU |
%MEM |
využití paměti |
USER |
vlastník procesu |
COMMAND |
spuštěný příkaz |
killkill [PID]
kill 1234
kill -9 1234
| Parametr | Význam |
|---|---|
-9 |
SIGKILL |
-15 |
SIGTERM |
-l |
seznam signálů |
jobsjobs
jobs
| Symbol | Význam |
|---|---|
[1] |
číslo úlohy |
Running |
běží |
Stopped |
pozastaveno |
bg (background)bg [job]
bg
bg %1
fg (foreground)fg [job]
fg
fg %1
croncrontab [parametry]
crontab -e
crontab -l
crontab -r
* * * * * příkaz
- - - - -
| | | | |
| | | | +--- den v týdnu (0-7)
| | | +----- měsíc (1-12)
| | +------- den v měsíci (1-31)
| +--------- hodina (0-23)
+----------- minuta (0-59)
0 3 * * * /home/ondra/backup.sh
*/5 * * * * /home/ondra/script.sh
0 8 * * 1 /home/ondra/report.sh
| Parametr | Význam |
|---|---|
-e |
editace cron úloh |
-l |
výpis cron úloh |
-r |
odstranění cron úloh |
| Právo | Význam |
|---|---|
r |
read |
w |
write |
x |
execute |
ls -l
Příklad výstupu:
-rwxr-xr-- 1 ondra users 120 file.sh
-rwxr-xr--
| Část | Význam |
|---|---|
- |
typ souboru |
rwx |
práva vlastníka |
r-x |
práva skupiny |
r-- |
práva ostatních |
| Symbol | Význam |
|---|---|
- |
běžný soubor |
d |
adresář |
l |
symbolický odkaz |
chmod [práva] [soubor]
chmod +x script.sh
chmod -w file.txt
| Hodnota | Práva |
|---|---|
7 |
rwx |
6 |
rw- |
5 |
r-x |
4 |
r-- |
chmod 755 script.sh
Význam:
755
| Číslo | Význam |
|---|---|
7 |
vlastník = rwx |
5 |
skupina = r-x |
5 |
ostatní = r-x |
chown ondra file.txt
chgrp developers file.txt
ps
ps aux
top
kill 1234
kill -9 1234
python app.py &
jobs
bg %1
fg %1
Ctrl + Z
Ctrl + C
| Signál | Význam |
|---|---|
SIGTERM |
standardní ukončení |
SIGKILL |
vynucené ukončení |
SIGSTOP |
pozastavení procesu |
SIGCONT |
pokračování procesu |
| Pojem | Význam |
|---|---|
PID |
Process ID |
| foreground | proces běžící v popředí |
| background | proces běžící na pozadí |
$name="Ondra"
echo "$name"
age=20
first_name="Ondra"
last_name="Svorc"
echo "$first_name $last_name"
count=5
count=$((count + 1))
echo "$count"
read name
echo "$name"
readonly PI=3.14
export PATH="$PATH:/custom/path"
$Správně:
name="Ondra"
Špatně:
$name="Ondra"
= nejsou povolenéSprávně:
name="Ondra"
Špatně:
name = "Ondra"
Správně:
echo "$name"
if = pokudelif = jinak pokudelse = jinakfi = ukončení podmínky[ ] jsou povinné| Operátor | Význam |
|---|---|
-eq |
equal |
-ne |
not equal |
-gt |
greater than |
-lt |
lower than |
-ge |
greater or equal |
-le |
lower or equal |
| Operátor | Význam |
|---|---|
= |
equal |
!= |
not equal |
-z |
empty string |
-n |
non-empty string |
| Operátor | Význam |
|---|---|
&& |
AND |
|| |
OR |
! |
NOT |
if [ podmínka_1 ]; then
# kód pokud platí podmínka_1
elif [ podmínka_2 ]; then
# kód pokud platí podmínka_2
else
# kód pokud neplatí žádná podmínka
fi
age=20
if [ "$age" -ge 18 ]; then
echo "Adult"
else
echo "Minor"
fi
score=75
if [ "$score" -ge 90 ]; then
echo "Grade A"
elif [ "$score" -ge 70 ]; then
echo "Grade B"
elif [ "$score" -ge 50 ]; then
echo "Grade C"
else
echo "Failed"
fi
name="Ondra"
if [ "$name" = "Ondra" ]; then
echo "Hello Ondra"
else
echo "Unknown user"
fi
text=""
if [ -z "$text" ]; then
echo "Empty string"
fi
text="hello"
if [ -n "$text" ]; then
echo "String contains text"
fi
age=25
if [ "$age" -ge 18 ] && [ "$age" -le 65 ]; then
echo "Working age"
fi
role="admin"
if [ "$role" = "admin" ] || [ "$role" = "moderator" ]; then
echo "Access granted"
fi
file="data.txt"
if ! [ -f "$file" ]; then
echo "File does not exist"
fi
if [ -f "notes.txt" ]; then
echo "File exists"
fi
if [ -d "documents" ]; then
echo "Directory exists"
fi
Správně:
[ "$age" -ge 18 ]
Špatně:
["$age" -ge 18]
Správně:
if [ "$name" = "Ondra" ]; then
Špatně:
if [ "$name" -eq "Ondra" ]; then
forwhilefor proměnná in hodnoty; do
příkazy
done
for name in Ondra Petr Jan; do
echo "$name"
done
for file in *.txt; do
echo "$file"
done
for i in {1..5}; do
echo "$i"
done
while [ podmínka ]; do
příkazy
done
count=1
while [ "$count" -le 5 ]; do
echo "$count"
count=$((count + 1))
done
while true; do
echo "running"
done
for i in {1..10}; do
if [ "$i" -eq 5 ]; then
break
fi
echo "$i"
done
for i in {1..5}; do
if [ "$i" -eq 3 ]; then
continue
fi
echo "$i"
done
function pozdrav() {
echo "Hello"
}
pozdrav() {
echo "Hello"
}
pozdrav
pozdrav() {
echo "Hello $1"
}
pozdrav Ondra
| Argument | Význam |
|---|---|
$1 |
první argument |
$2 |
druhý argument |
$# |
počet argumentů |
$@ |
všechny argumenty |
is_adult() {
if [ "$1" -ge 18 ]; then
return 0
else
return 1
fi
}
is_adult 20
if [ $? -eq 0 ]; then
echo "Adult"
fi
show_name() {
local name="Ondra"
echo "$name"
}
./script.sh
./script.sh hello world
echo "$1" # hello
echo "$2" # world