uname -a # verzia kernelu, architektúra, hostname
uname -r # iba verzia kernelu
cat /etc/os-release # distro, verzia OS
cat /etc/issue # verzia (stručne)
hostname # názov stroja
hostname -I # IP adresy
uptime # ako dlho beží systém
date # aktuálny dátum a čas
lscpu # info o CPU
lsmem # info o RAM
df -h # využitie diskov (human-readable)
du -sh /path/ # veľkosť adresára
free -h # využitie RAM / swap
lsblk # zoznam blokových zariadení (disky, partície)
env # všetky premenné prostredia
echo $SHELL # aktuálny shell
echo $PATH # cesty kde shell hľadá príkazy
Navigácia & Súborový systém
pwd # aktuálny adresár
ls # zoznam súborov
ls -l # detailný výpis (oprávnenia, veľkosť, dátum)
ls -la # vrátane skrytých súborov (začínajú .)
ls -lh # human-readable veľkosti
ls -lt # zoradiť podľa dátumu modifikácie
cd /path/to/dir # zmeniť adresár
cd .. # o úroveň vyššie
cd - # prepnúť na predchádzajúci adresár
cd ~ # domovský adresár
tree # vizuálna stromová štruktúra
tree -L 2 # maximálna hĺbka 2 úrovne
Práca so súbormi
touch file.txt # vytvor prázdny súbor / aktualizuj timestamp
mkdir folder # vytvor adresár
mkdir -p /path/to/nested/dir # vytvor vrátane nadradených adresárov
cp file.txt /dest/ # kopíruj súbor
cp -r dir/ /dest/ # kopíruj adresár rekurzívne
mv file.txt /dest/ # presuň súbor
mv old.txt new.txt # premenuj súbor
rm file.txt # zmaž súbor
rm -r dir/ # zmaž adresár rekurzívne
rm -rf dir/ # force, bez potvrdenia
ln -s /target /link # symbolický link
file unknown_file # zisti typ súboru
stat file.txt # detailné info (veľkosť, inode, časy)
Čítanie súborov
cat file.txt # vypíš celý obsah
less file.txt # stránkovanie (q = koniec, / = hľadaj)
more file.txt # stránkovanie (len dopredu)
head file.txt # prvých 10 riadkov
head -n 20 file.txt # prvých 20 riadkov
tail file.txt # posledných 10 riadkov
tail -n 20 file.txt # posledných 20 riadkov
tail -f /var/log/syslog # sleduj log naživo
wc -l file.txt # počet riadkov
wc -w file.txt # počet slov
Hľadanie súborov & Textu
# find – hľadanie súborov
find / -name "flag.txt" 2>/dev/null # hľadaj podľa názvu (root)
find . -name "*.conf" # v aktuálnom adresári, wildcard
find / -type f -name "*.sh" 2>/dev/null # len súbory
find / -type d -name "secret" 2>/dev/null # len adresáre
find / -perm -u=s -type f 2>/dev/null # SUID súbory
find / -writable -type f 2>/dev/null # zapisovateľné súbory
find / -mtime -1 2>/dev/null # modifikované za posledných 24h
find / -size +10M 2>/dev/null # väčšie ako 10MB
find / -user root -type f 2>/dev/null # vlastník root
find / -name "*.txt" -exec cat {} \; # nájdi a spusti príkaz na každom
# locate – rýchle hľadanie (z databázy, nie live)
locate filename
updatedb # aktualizuj databázu
# which / whereis – kde je binary
which python3
whereis python3 # binárka, manuál, zdroj
# grep – hľadanie textu
grep "text" file.txt # hľadaj v súbore
grep -i "text" file.txt # case-insensitive
grep -r "text" /dir/ # rekurzívne v adresári
grep -r "password" /etc/ 2>/dev/null # hľadaj heslo v /etc/
grep -l "text" *.txt # len názvy súborov kde sa nachádza
grep -n "text" file.txt # s číslami riadkov
grep -v "text" file.txt # inverzné – riadky BEZ textu
grep -E "regex" file.txt # extended regex
grep -o "pattern" file.txt # vypíš len zhodu, nie celý riadok
Operátory shellu
command1 ; command2 # spusti oba (bez ohľadu na výsledok)
command1 && command2 # spusti druhý len ak prvý uspeje (exit 0)
command1 || command2 # spusti druhý len ak prvý zlyhá
command & # spusti na pozadí
echo "text" > file.txt # presmeruj výstup do súboru (prepíše)
echo "text" >> file.txt # pridaj na koniec súboru (append)
command < file.txt # vstup zo súboru
command 2>/dev/null # zahoď chybové hlásenia
command 2>&1 # presmeruj stderr do stdout
command | tee file.txt # výstup na obrazovku A do súboru
command1 | command2 # pipe – výstup prvého = vstup druhého
Príklady pipe
ls -la | grep ".sh" # filtruj iba .sh súbory
ps aux | grep apache # hľadaj apache v procesoch
cat /etc/passwd | cut -d: -f1 # iba mená userov
cat file.txt | sort | uniq # zoradiť a odstrániť duplikáty
cat file.txt | sort | uniq -c # počítaj výskyty každého riadku
netstat -tulnp | grep LISTEN # iba listening porty
Textové utility
sort file.txt # zoradiť riadky abecedne
sort -r file.txt # zostupne
sort -n file.txt # numericky
sort -k2 file.txt # podľa 2. stĺpca
uniq file.txt # odstrániť duplikáty (súbor musí byť sorted)
uniq -c file.txt # pridaj počet výskytov
cut -d: -f1 /etc/passwd # rozrez podľa : a vezmi 1. stĺpec
cut -d, -f2,4 file.csv # z CSV ber 2. a 4. stĺpec
awk '{print $1}' file.txt # vypíš 1. slovo každého riadku
awk -F: '{print $1, $3}' /etc/passwd # user a UID z passwd
sed 's/old/new/g' file.txt # nahraď "old" za "new" (všetky výskyty)
sed -i 's/old/new/g' file.txt # priamo v súbore (in-place)
sed -n '5,10p' file.txt # vypíš riadky 5-10
tr 'a-z' 'A-Z' < file.txt # konvertuj na veľké písmená
tr -d '\r' < file.txt # odstrániť Windows \r (CRLF → LF)
diff file1.txt file2.txt # porovnaj súbory
chmod +x file # pridaj execute pre všetkých
chmod -x file # odober execute
chmod 755 file # rwxr-xr-x (owner: rwx, group: r-x, other: r-x)
chmod 644 file # rw-r--r-- (typické pre súbory)
chmod 600 file # rw------- (súkromné, napr. SSH kľúče)
chmod 777 file # rwxrwxrwx (nebezpečné!)
chmod -R 755 dir/ # rekurzívne na celý adresár
chown user file # zmeň vlastníka
chown user:group file # zmeň vlastníka aj skupinu
chown -R user:group dir/ # rekurzívne
ls -la # zobraz oprávnenia
# Špeciálne bity
chmod u+s file # nastav SUID bit
chmod g+s dir # nastav SGID bit
chmod +t dir # nastav Sticky bit (napr. /tmp)
Čítanie výpisu ls -la
-rwxr-xr-x 1 root root 12345 Jan 1 file
│└─┤└─┤└─┤ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ └── názov
│ │ │ │ │ │ │ │ └───────── dátum
│ │ │ │ │ │ │ └─────────────── veľkosť
│ │ │ │ │ │ └────────────────────── skupina
│ │ │ │ │ └──────────────────────────── vlastník
│ │ │ │ └──────────────────────────────── počet hard linkov
│ │ │ └─────────────────────────────────── oprávnenia: others
│ │ └────────────────────────────────────── oprávnenia: group
│ └───────────────────────────────────────── oprávnenia: owner
└──────────────────────────────────────────── typ (- súbor, d adresár, l symlink)
Používatelia & Skupiny
whoami # aktuálny používateľ
id # UID, GID, všetky skupiny
id username # info o inom userovi
w # kto je prihlásený a čo robí
who # kto je prihlásený
last # história prihlásení
lastlog # posledné prihlásenie každého usera
# Prepínanie userov
su username # prepni na iného usera (potrebuje heslo)
su - # prepni na root (login shell)
su -l username # prepni + načítaj jeho prostredie
sudo command # spusti príkaz ako root
sudo -l # čo môžem spustiť cez sudo?
sudo -u user command # spusti ako konkrétny user
sudo su # získaj root shell
# Správa userov (root)
useradd -m username # vytvor usera + domovský adresár
useradd -m -s /bin/bash -G sudo username # s bashom a sudo skupinou
passwd username # nastav heslo
usermod -aG sudo username # pridaj do skupiny sudo
usermod -aG docker username # pridaj do skupiny docker
userdel -r username # zmaž usera + domovský adresár
groupadd groupname # vytvor skupinu
groupdel groupname # zmaž skupinu
# Dôležité súbory
cat /etc/passwd # zoznam userov (user:x:UID:GID:info:home:shell)
cat /etc/shadow # hashe hesiel (iba root)
cat /etc/group # zoznam skupín
cat /etc/sudoers # sudo konfigurácia
Sieť
# IP & rozhrania
ip a # všetky sieťové rozhrania a IP
ip r # routing tabuľka
ip link show # sieťové rozhrania (len)
ifconfig # starší príkaz (net-tools)
# Spojenia & porty
ss -tulnp # otvorené porty (moderné, náhrada netstat)
ss -tulnp | grep LISTEN # iba listening porty
netstat -tulnp # staršia alternatíva
netstat -aon # všetky spojenia + PID
# DNS
nslookup domain.com # DNS lookup
dig domain.com # detailný DNS lookup
dig domain.com ANY # všetky záznamy
cat /etc/resolv.conf # nakonfigurované DNS servery
cat /etc/hosts # lokálne DNS záznamy
# Konektivita
ping -c 4 8.8.8.8 # test dostupnosti (4 pakety)
traceroute 8.8.8.8 # trasa paketu (hop-by-hop)
curl http://IP # HTTP GET request
curl -I http://IP # iba hlavičky (HEAD)
curl -X POST -d "data=value" http://IP # POST request
curl -o file.zip http://IP/file.zip # stiahni súbor
wget http://IP/file # stiahni súbor
wget -q -O - http://IP/file # stiahni na stdout (tichý)
# ARP
arp -a # ARP tabuľka (IP → MAC)
Sťahovanie & Prenos súborov
wget
wget http://IP/file # stiahni súbor
wget -O output.txt http://IP/file # ulož pod iným názvom
wget -r http://IP/dir/ # rekurzívne stiahnutie
wget -q http://IP/file # tichý režim (quiet)
wget --no-check-certificate https://IP/ # ignoruj SSL chyby
curl
curl -O http://IP/file # stiahni súbor (zachová názov)
curl -o output.txt http://IP/file # stiahni pod iným názvom
curl -L http://IP/redirect # nasleduj presmerowania
curl -s http://IP/file # tichý režim
curl -k https://IP/file # ignoruj SSL
scp – kopírovanie cez SSH
scp file.txt user@IP:/remote/path/ # nahrať lokálny súbor na vzdialený
scp user@IP:/remote/file.txt ./ # stiahnuť zo vzdialeného
scp -r dir/ user@IP:/path/ # nahrať celý adresár
scp -P 2222 file user@IP:/path/ # iný port
scp -i key.pem file user@IP:/path/ # s SSH kľúčom
Python HTTP server (rýchle zdieľanie)
python3 -m http.server 8000 # server v aktuálnom adresári, port 8000
python3 -m http.server 8080 # iný port
SSH
ssh user@IP # pripojenie
ssh user@IP -p 2222 # iný port
ssh -i key.pem user@IP # s privátnym kľúčom
ssh -L 8080:localhost:80 user@IP # local port forwarding
ssh -R 4444:localhost:4444 user@IP # remote port forwarding
ssh -D 1080 user@IP # SOCKS proxy (dynamic forwarding)
ssh -N -f user@IP -L 8080:localhost:80 # background, bez príkazového riadku
# Kľúče
ssh-keygen -t rsa -b 4096 # generuj RSA kľúč
ssh-copy-id user@IP # skopíruj verejný kľúč na server
cat ~/.ssh/authorized_keys # autorizované kľúče
chmod 600 ~/.ssh/id_rsa # správne oprávnenia pre kľúč
Procesy
ps aux # všetky bežiace procesy
ps aux | grep apache # filtrovanie procesov
ps -ef # alternatívny formát (PPID viditeľný)
top # interaktívny monitor (q = koniec)
htop # vylepšený monitor (ak nainštalovaný)
pstree # procesy v stromovej štruktúre
pgrep sshd # PID podľa mena procesu
pidof sshd # PID konkrétneho programu
# Ukončenie procesov
kill PID # SIGTERM (15) – korektné ukončenie
kill -9 PID # SIGKILL – násilné ukončenie
kill -19 PID # SIGSTOP – pozastaviť
kill -18 PID # SIGCONT – pokračovať
killall apache2 # ukončí všetky procesy tohto mena
pkill -f "python script.py" # ukončí podľa vzoru
Signály
Signál
Číslo
Popis
SIGTERM
15
Žiadosť o korektné ukončenie; proces môže upratať
SIGKILL
9
Okamžité zabitie jadrom; nedá sa blokovať
SIGSTOP
19
Pozastaví proces; pokračuje SIGCONT
SIGCONT
18
Pokračovanie pozastaveného procesu
SIGHUP
1
Reload konfigurácie (napr. nginx)
Job Control – Popredie & Pozadie
command & # spusti rovno na pozadí
Ctrl+Z # pozastaviť bežiaci proces
bg # pokračovať pozastavený na pozadí
bg %2 # konkrétna úloha číslo 2
fg # presunúť do popredia
fg %2 # konkrétna úloha
jobs # zoznam úloh na pozadí
nohup command & # beží aj po odhlásení
disown %1 # odpojiť úlohu od terminálu
Systemctl & Služby
systemctl status service # stav služby
systemctl start service # spusti
systemctl stop service # zastav
systemctl restart service # reštartuj
systemctl reload service # reload konfig (bez reštartu)
systemctl enable service # spusti pri boote
systemctl disable service # neštartuj pri boote
systemctl is-active service # je aktívna?
systemctl is-enabled service # je povolená pri boote?
systemctl list-units --type=service # všetky služby
systemctl list-units --type=service --state=running # iba bežiace
journalctl -u service # logy konkrétnej služby
journalctl -u service -f # logy naživo (follow)
journalctl -u service --since "1 hour ago"
journalctl -xe # posledné logy s detailmi (po chybe)
Cron & Automatizácia
crontab -e # edituj crontab aktuálneho usera
crontab -l # zobraz crontab
crontab -r # zmaž crontab
crontab -u user -l # crontab iného usera (root)
cat /etc/crontab # systémový crontab
ls /etc/cron.d/ # ďalšie cron súbory
ls /etc/cron.daily/ # denné joby
cat /var/spool/cron/crontabs/root # root crontab (ak máš prístup)
Formát záznamu
* * * * * príkaz
│ │ │ │ └─ deň v týždni (0-7, 0 aj 7 = nedeľa)
│ │ │ └─── mesiac (1-12)
│ │ └───── deň v mesiaci (1-31)
│ └─────── hodina (0-23)
└───────── minúta (0-59)
Príklady
* * * * * /skript.sh # každú minútu
*/5 * * * * /check.sh # každých 5 minút
0 3 * * * /backup.sh # každý deň o 3:00
0 9 * * 1 /report.sh # každý pondelok o 9:00
0 0 1 * * /monthly.sh # prvý deň každého mesiaca o polnoci
@reboot /startup.sh # pri každom boote
i vstúp do INSERT módu
Esc vráť sa do NORMAL módu
:w uložiť
:q ukončiť
:wq uložiť a ukončiť
:q! ukončiť bez uloženia
:set nu zobraziť čísla riadkov
/text hľadaj "text" (n = ďalší výskyt)
dd zmaž riadok
yy kopíruj riadok
p vlož
u undo
gg choď na začiatok
G choď na koniec
:%s/old/new/g nahraď všetky výskyty