Linux Deep Dive

Ο Πλήρης Οδηγός για
Linux

Από τον πυρήνα του kernel έως τα package managers, από τις πρώτες εντολές έως τη σύγκριση διανομών — ό,τι χρειάζεσαι σε ένα άρθρο.

30+ Λεπτά Ανάγνωσης
1991 Έτος Δημιουργίας
96% Top 500 Servers
~35M Γραμμές Κώδικα
scroll
Περιεχόμενα
Ενημερώθηκε Ιούνιος 2026
⏱ 45–55 λεπτά ανάγνωσης
📊 ~12.000 λέξεις
🎯 Επίπεδο: Αρχάριος → Προχωρημένος

Τι Είναι Πραγματικά το Linux

Το Linux δεν είναι απλώς ένα λειτουργικό σύστημα — είναι ο πυρήνας (kernel) πάνω στον οποίο χτίζονται εκατοντάδες λειτουργικά συστήματα. Αυτό που κοινώς αποκαλούμε "Linux" είναι στην πραγματικότητα μια διανομή (distribution ή distro): ο Linux kernel σε συνδυασμό με εργαλεία GNU, package managers, graphical environments και εκατοντάδες άλλες εφαρμογές.

Ο ίδιος ο Linus Torvalds, δημιουργός του Linux, ξεκίνησε το 1991 με έναν kernel που δεν είχε σκοπό να γίνει το backbone του σύγχρονου internet. Σήμερα, το Linux τρέχει στο 96.4% των top 500 supercomputers του κόσμου, σε κάθε Android smartphone, στα servers της Google, Amazon και Facebook, και στον πυρήνα του macOS (XNU, που μοιράζεται UNIX κληρονομιά).

💡 Core Concept
Το Linux kernel είναι ο διαχειριστής πόρων: χειρίζεται CPU, μνήμη, I/O συσκευές και δικτύωση. Τα υπόλοιπα (shell, GUI, εφαρμογές) είναι userspace — τρέχουν πάνω του, αλλά δεν είναι μέρος του.

Linux vs GNU/Linux

Υπάρχει μια ιστορική διαμάχη: ο Richard Stallman επιμένει στον όρο GNU/Linux, επειδή τα εργαλεία GNU (gcc, bash, coreutils) είναι εξίσου κρίσιμα με τον kernel. Ο Torvalds χρησιμοποιεί απλώς "Linux". Στην πράξη, όταν λέμε "Linux", εννοούμε το ολοκληρωμένο σύστημα.

✓ Πλεονεκτήματα Linux
  • Ελεύθερο και ανοιχτού κώδικα
  • Εξαιρετική ασφάλεια και σταθερότητα
  • Πλήρης έλεγχος του συστήματος
  • Τρέχει σε σχεδόν κάθε υλικό
  • Μηδενικό κόστος αδειοδότησης
  • Τεράστια κοινότητα και documentation
  • Ιδανικό για servers και dev environments
✗ Μειονεκτήματα Linux
  • Καμπύλη εκμάθησης για αρχάριους
  • Περιορισμένη υποστήριξη gaming (βελτιώνεται)
  • Ορισμένα professional apps δεν υπάρχουν
  • Driver issues σε νέο hardware
  • Κατακερματισμός distros μπερδεύει
  • Λιγότερη εμπορική υποστήριξη

Χρονολόγιο: Από το 1991 ως Σήμερα

Η ιστορία του Linux είναι μια από τις πιο απίθανες επιτυχίες στην ιστορία της τεχνολογίας. Ένας Φιλανδός φοιτητής 21 ετών έγραψε ένα μήνυμα σε mailing list που άλλαξε τον κόσμο.

comp.os.minix — Linus Torvalds, 25 Αυγούστου 1991
"Hello everybody out there using minix —
I'm doing a (free) operating system (just a hobby, won't be big and professional
like gnu) for 386(486) AT clones."

— Το αρχικό post που ξεκίνησε τα πάντα
1991
Linux 0.01 — Η Αρχή
Ο Linus Torvalds κυκλοφορεί τον πρώτο kernel (10.239 γραμμές κώδικα). Λειτουργεί μόνο σε 386 επεξεργαστές Intel.
1992
GNU GPL License
Ο kernel αδειοδοτείται υπό GNU GPLv2 — η πιο σημαντική απόφαση στην ιστορία του. Οποιοδήποτε fork πρέπει να παραμένει ανοιχτού κώδικα.
1993
Debian & Slackware
Οι πρώτες «διανομές» κάνουν εμφάνιση. Το Debian θα γίνει η βάση για Ubuntu, Mint, Kali και εκατοντάδες άλλα.
1994
Linux 1.0 — Επίσημη Κυκλοφορία
176.250 γραμμές κώδικα. Υποστήριξη TCP/IP networking. Το Linux αρχίζει να χρησιμοποιείται σε servers.
2003
Linux 2.6 — Enterprise Era
Τεράστιες βελτιώσεις σε scalability, SMP support, και device drivers. Το Linux κυριαρχεί στα enterprise servers.
2008
Android — 3 Δισεκατομμύρια Συσκευές
Η Google κυκλοφορεί το Android, βασισμένο στον Linux kernel. Ξαφνικά, το Linux βρίσκεται στην τσέπη του κάθε ανθρώπου.
2011
Linux 3.0
20 χρόνια Linux, νέα αρίθμηση. ~15 εκατομμύρια γραμμές κώδικα. Περίπου 1.000 developers συνεισφέρουν σε κάθε έκδοση.
2015
Linux 4.0 & Microsoft loves Linux
Η Microsoft (!) γίνεται από τους top contributors στον Linux kernel. Το Azure τρέχει κυρίως Linux VMs.
2019
Linux 5.0 & WSL2
Windows Subsystem for Linux 2 — η Microsoft ενσωματώνει πλήρη Linux kernel στα Windows. Το Linux τρέχει μέσα στα Windows.
2022
Linux 5.19 — Rust στον Kernel
Η γλώσσα Rust εγκρίνεται ως δεύτερη επίσημη γλώσσα του kernel, μαζί με C. Νέα εποχή για ασφάλεια κώδικα.
2024–2026
Linux 6.x — AI & Security Era
~35 εκατομμύρια γραμμές κώδικα. Βελτιστοποιήσεις για AI workloads, io_uring, eBPF. Ο Linus συνεχίζει να κάνει merge patches.

Ο Πυρήνας: Πώς Λειτουργεί

Ο Linux kernel είναι monolithic — ένα ενιαίο εκτελέσιμο που τρέχει στον kernel space. Σε αντίθεση με τα microkernel αρχιτεκτονικά (π.χ. GNU Hurd), όλες οι υπηρεσίες (drivers, filesystem, networking) τρέχουν στον ίδιο address space, κάτι που δίνει απόδοση αλλά απαιτεί προσοχή στην ασφάλεια.

LINUX SYSTEM ARCHITECTURE
USERSPACE APPLICATIONS bash, vim, firefox, python...
SYSTEM CALL INTERFACE (syscalls) read, write, fork, exec...
PROCESS MANAGEMENT  |  MEMORY MANAGEMENT scheduler, mm
VFS  |  NETWORKING  |  IPC ext4, TCP/IP, sockets
DEVICE DRIVERS block, char, network, USB...
HARDWARE (CPU, RAM, DISK, NIC, GPU...) x86_64, ARM, RISC-V

Βασικά Υποσυστήματα

Process Scheduler

Ο Linux χρησιμοποιεί τον CFS (Completely Fair Scheduler) από την έκδοση 2.6.23. Κάθε process παίρνει «δίκαιο» χρόνο CPU ανάλογα με το priority του (nice value: -20 έως +19). Από το Linux 6.6, το νέο EEVDF scheduler αντικαθιστά σταδιακά το CFS για καλύτερη latency.

Virtual File System (VFS)

Το VFS είναι μια abstraction layer που επιτρέπει στον kernel να μιλά με οποιοδήποτε filesystem (ext4, btrfs, xfs, ntfs, fat32) με ενιαίο API. Στο Linux, τα πάντα είναι αρχείο — ακόμα και devices (/dev/sda), processes (/proc/1234) και sockets.

Memory Management

Ο Linux χρησιμοποιεί virtual memory με paging (4KB pages by default, 2MB/1GB huge pages για performance). Το OOM Killer (Out of Memory) σκοτώνει processes όταν εξαντληθεί η μνήμη — επιλέγει αυτό με τη χαμηλότερη "oom_score".

Το Linux Filesystem Hierarchy

Σε αντίθεση με τα Windows που χρησιμοποιούν γράμματα (C:\, D:\), το Linux έχει ένα ενιαίο δέντρο αρχείων που ξεκινά από / (root). Κάθε directory έχει συγκεκριμένο σκοπό:

Filesystem Hierarchy Standard (FHS)
$ tree -L 1 /

/
├── bin/    # Essential binaries (ls, cp, mv, bash)
├── boot/   # Kernel images, bootloader (GRUB)
├── dev/    # Device files (/dev/sda, /dev/null)
├── etc/    # System configuration files
├── home/   # User home directories (/home/user)
├── lib/    # Shared libraries (.so files)
├── media/  # Removable media mount points
├── mnt/    # Temporary mount points
├── opt/    # Optional/third-party software
├── proc/   # Virtual FS: process & kernel info
├── root/   # Home directory of root user
├── run/    # Runtime data (PIDs, sockets)
├── sbin/   # System binaries (for root: fdisk, iptables)
├── srv/    # Data for services (web, ftp)
├── sys/    # Virtual FS: hardware/driver info
├── tmp/    # Temporary files (cleared on reboot)
├── usr/    # User programs, libraries, docs
└── var/    # Variable data: logs, databases, mail
⚠ Προσοχή
Ποτέ μην τρέχεις rm -rf / ή rm -rf /* — διαγράφει τα πάντα στο σύστημα. Το σύγχρονο Linux έχει προστασία, αλλά με --no-preserve-root μπορεί να εκτελεστεί. Πάντα να επαληθεύεις πριν από επικίνδυνες εντολές.

Οι Κορυφαίες Linux Distros

Υπάρχουν πάνω από 600 ενεργές Linux διανομές. Ο λόγος; Ο καθένας μπορεί να φτιάξει τη δική του. Στην πράξη, όμως, σχεδόν όλες προέρχονται από τρεις «οικογένειες»: Debian, Red Hat και Arch.

🟠
Ubuntu
Base: Debian
Η πιο δημοφιλής distro για αρχάριους. Εξαιρετικό hardware support, τεράστια κοινότητα, LTS εκδόσεις ανά 2 χρόνια.
Αρχάριοι Desktop Server
🟢
Linux Mint
Base: Ubuntu/Debian
Ιδανική για μετάβαση από Windows. Το Cinnamon DE μοιάζει πολύ με Windows 7/10. Σταθερό και φιλικό.
Αρχάριοι Desktop
🔵
Arch Linux
Base: Independent
Rolling release, εγκαθίσταται από μηδέν. Πλήρης έλεγχος, τεράστιο AUR. Το «btw, I use Arch» meme έχει λόγο ύπαρξης.
Προχωρημένοι Desktop DIY
🔴
Fedora
Base: Red Hat
Bleeding edge, χρησιμοποιείται ως testbed για RHEL. Εξαιρετική επιλογή για developers που θέλουν τελευταίες τεχνολογίες.
Μεσαίοι Desktop Dev
Debian
Base: Independent
Η «μητέρα» πολλών distros. Απόλυτη σταθερότητα, συντηρητικές εκδόσεις. Βασιλιάς για servers. Ελάχιστο bloatware.
Μεσαίοι Server Σταθερό
🐉
Kali Linux
Base: Debian
Η distro για penetration testing και cybersecurity. Έρχεται με 600+ hacking tools pre-installed. ΔΕΝ για καθημερινή χρήση.
Ειδικοί Security
🛡️
Tails OS
Base: Debian
Live distro για ανωνυμία. Τρέχει από USB, δεν αφήνει ίχνη, όλη η κίνηση μέσω Tor. Χρησιμοποιείται από δημοσιογράφους και ακτιβιστές.
Privacy Security
🎮
SteamOS / Bazzite
Base: Arch/Fedora
Βελτιστοποιημένες για gaming. Το SteamOS τρέχει στο Steam Deck. Το Bazzite είναι για desktops με εξαιρετικό hardware support.
Αρχάριοι Gaming

Σύγκριση Διανομών — Side by Side

Distro Package Manager Release Model Default DE Ideal For
Ubuntu 24.04 apt LTS (2 χρόνια) GNOME 46 Αρχάριοι, Servers, Dev
Debian 12 apt Stable (3-4 χρόνια) GNOME / KDE Servers, Production
Fedora 40 dnf Semi-rolling (6μηνο) GNOME 46 Developers, Desktop
Arch Linux pacman + yay Rolling Release Καμία (DIY) Experts, Control freaks
Linux Mint 21 apt LTS Cinnamon Windows Migrants
Kali Linux apt Rolling XFCE Pentesters, Security
RHEL / Rocky dnf Stable (10 χρόνια) GNOME Enterprise Servers
Alpine Linux apk Stable Καμία Docker, Embedded

Δείκτες Απόδοσης

Ubuntu — Ease of Use95%
Arch Linux — Customizability100%
Debian — Stability98%
Kali — Security Tools100%
Fedora — Bleeding Edge90%
Alpine — Minimal Footprint97%

Εκδόσεις Linux Kernel: Τι Άλλαξε

Ο Linux kernel κυκλοφορεί νέα έκδοση κάθε 8–10 εβδομάδες. Υπάρχουν δύο κύριες κατηγορίες: Mainline (τελευταία) και LTS (Long Term Support, συντηρείται 2–6 χρόνια).

6.9
Mainline — Μάιος 2024
io_uring improvements, Rust drivers, νέο P-state driver για Intel, AMD SEV-SNP security.
6.6
LTS — Νοέμβριος 2023
EEVDF scheduler αντικαθιστά CFS, Intel Meteor Lake support, Shadow stack για x86 security.
6.1
LTS — Δεκέμβριος 2022
Rust στον kernel επίσημα, MGLRU memory management, Apple M1/M2 support βελτιώσεις.
5.15
LTS — Νοέμβριος 2021
NTFS3 driver (καλύτερη Windows NTFS υποστήριξη), SMB server (ksmbd), Apple M1 αρχική υποστήριξη.
5.10
LTS — Δεκέμβριος 2020
Χρησιμοποιείται στο Android 12+. Exfat, WireGuard integrated, perf improvements.
5.4
LTS — Νοέμβριος 2019
Lockdown security mode, exfat filesystem, Raspberry Pi 4 υποστήριξη.
🔍 Πώς να δεις την έκδοση kernel σου
Τρέξε uname -r στο terminal. Το αποτέλεσμα π.χ. 6.5.0-45-generic σημαίνει: kernel 6.5, sub-version 0, ABI 45, generic build (για desktop).

Οδηγός Εγκατάστασης Ubuntu 24.04

Θα εγκαταστήσουμε το Ubuntu 24.04 LTS (Noble Numbat) — η πιο αξιόπιστη επιλογή για αρχάριους, με υποστήριξη έως Απρίλιο 2029.

1
Κατέβασε το ISO
Πήγαινε στο ubuntu.com/download/desktop και κατέβασε το Ubuntu 24.04 LTS ISO (~5.8GB). Επίλεξε "Ubuntu Desktop" για κανονική χρήση.
# Επαλήθευση SHA256 checksum (σημαντικό!)
$ sha256sum ubuntu-24.04-desktop-amd64.iso
81fae9cc21e2b1e3a9a4526c7dad3131b668e346...
2
Φτιάξε Bootable USB
Χρειάζεσαι USB 8GB+. Χρησιμοποίησε Balena Etcher (Windows/Mac/Linux) ή dd από terminal. Το Etcher είναι απλούστερο.
# Με dd (Linux/Mac) — ΠΡΟΣΟΧΗ: αντικατέστησε /dev/sdX με το USB σου
$ sudo dd bs=4M if=ubuntu-24.04.iso of=/dev/sdX status=progress oflag=sync
3
Boot από USB
Κάνε επανεκκίνηση και πάτα F12 (ή F2/F10/Del ανάλογα με BIOS) για Boot Menu. Επίλεξε το USB. Αν δεν λειτουργεί, απενεργοποίησε το Secure Boot από UEFI settings.
4
Δοκίμασε πριν εγκαταστήσεις
Επίλεξε "Try Ubuntu" για να δεις αν λειτουργεί το hardware σου (WiFi, display, ήχος) χωρίς να εγκαταστήσεις τίποτα. Αν όλα ΟΚ, κάνε διπλό κλικ στο "Install Ubuntu".
5
Partition Setup — Η Κρίσιμη Απόφαση
Έχεις 3 επιλογές:
ΕπιλογήΧρήσηΚίνδυνος
Erase disk & installΜόνο Linux, νέο PCΧαμηλός
Install alongside WindowsDual bootΜέτριος
Manual partitioningΠλήρης έλεγχοςΥψηλός
6
Post-Install: Πρώτες Εντολές
Μετά την εγκατάσταση, άνοιξε terminal και τρέξε:
# Ενημέρωσε το σύστημα
$ sudo apt update && sudo apt upgrade -y

# Εγκατέστησε βασικά εργαλεία
$ sudo apt install -y curl wget git vim htop neofetch build-essential

# Δες πληροφορίες συστήματος
$ neofetch
.:-=+*#%%@@%%#*+=-. user@ubuntu
.:+#@@@@@@@@@@@@@@@@#*=. -----------
.:+%@@@@@@@@@@@@@@@@@@@@@@%+. OS: Ubuntu 24.04 LTS
:+%@@@@@@@@@@@@@@@@@@@@@@@@@@%+: Kernel: 6.8.0-35-generic

Βασικές Terminal Εντολές

Το terminal είναι η καρδιά του Linux. Μάθε αυτές τις εντολές και θα μπορείς να χειριστείς οποιοδήποτε Linux σύστημα.

Navigation & Files

bash
$ pwd                   # Print Working Directory
/home/user

$ ls -la              # List all files with details
drwxr-xr-x 2 user user 4096 Jun 16 12:00 Documents

$ cd ~/Documents       # Change directory
$ mkdir -p projects/linux # Create nested directories
$ cp -r source/ dest/   # Copy recursively
$ mv old.txt new.txt    # Move / rename
$ find / -name "*.conf" # Find files by name

Process Management

$ ps aux               # All running processes
$ top                   # Real-time process monitor
$ htop                  # Better top (install first)
$ kill -9 1234         # Force kill process by PID
$ killall firefox       # Kill by process name
$ systemctl status nginx  # Service status
$ systemctl restart nginx # Restart service

Network

$ ip addr show          # Network interfaces & IPs
$ ping -c 4 google.com   # Test connectivity
$ ss -tlnp             # Open ports (replaces netstat)
$ curl -I https://google.com # HTTP headers
$ nmap -sV 192.168.1.1   # Port scan (install nmap)
$ wget -O file.zip URL   # Download file

Permissions & Users

$ chmod 755 script.sh    # rwxr-xr-x permissions
$ chown user:group file  # Change owner
$ sudo -i              # Switch to root shell
$ useradd -m newuser     # Create user with home dir
$ passwd newuser         # Set password
$ usermod -aG sudo user  # Add to sudo group

Package Managers: apt vs dnf vs pacman vs snap vs flatpak

Ο package manager είναι το «app store» του Linux — κατεβάζει, εγκαθιστά, ενημερώνει και αφαιρεί λογισμικό. Η επιλογή distro καθορίζει ποιον χρησιμοποιείς, αλλά υπάρχουν και cross-distro λύσεις.

apt — Debian / Ubuntu / Mint / Kali
# Ενημέρωση λίστας packages
$ sudo apt update

# Εγκατάσταση
$ sudo apt install vim git curl

# Αφαίρεση (+ config files)
$ sudo apt purge firefox

# Αναζήτηση
$ apt search nodejs

# Αναβάθμιση όλων
$ sudo apt upgrade -y

# Καθαρισμός χώρου
$ sudo apt autoremove && sudo apt autoclean
dnf — Fedora / RHEL / Rocky / AlmaLinux
# Εγκατάσταση
$ sudo dnf install vim git curl

# Αφαίρεση
$ sudo dnf remove firefox

# Αναζήτηση
$ dnf search nodejs

# Αναβάθμιση
$ sudo dnf upgrade --refresh

# Ιστορικό transactions
$ dnf history

# Undo τελευταίου transaction
$ sudo dnf history undo last
pacman + yay (AUR) — Arch / Manjaro / EndeavourOS
# Εγκατάσταση
$ sudo pacman -S vim git curl

# Αφαίρεση + dependencies
$ sudo pacman -Rns firefox

# Αναζήτηση
$ pacman -Ss nodejs

# Αναβάθμιση συστήματος
$ sudo pacman -Syu

# AUR (Arch User Repository) με yay
$ yay -S google-chrome # Packages που δεν υπάρχουν αλλού

# Εύρεση ορφανών packages
$ sudo pacman -Rns $(pacman -Qtdq)
snap (Canonical) & flatpak (cross-distro)
# SNAP — sandboxed packages από Canonical
$ sudo snap install code --classic # VS Code
$ snap list # Installed snaps
$ sudo snap refresh # Update all

# FLATPAK — universal Linux packages
$ flatpak install flathub org.gimp.GIMP
$ flatpak update
$ flatpak list

# Προσθήκη Flathub repository
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
💡 Τι να επιλέξεις;
Χρησιμοποίησε τον native package manager (apt/dnf/pacman) για ό,τι υπάρχει εκεί — είναι πιο ενσωματωμένος. Flatpak για νεότερες εκδόσεις apps ή apps που δεν υπάρχουν (π.χ. Spotify, Discord). Snap κυρίως για Ubuntu — άλλες distros το αποφεύγουν. Ποτέ μην ανακατεύεις snap και flatpak του ίδιου app.

Desktop Environments: GNOME vs KDE vs XFCE vs i3

Το Desktop Environment (DE) είναι το γραφικό περιβάλλον — αυτό που βλέπεις. Στο Linux, το DE είναι αποσυνδεδεμένο από το λειτουργικό σύστημα: μπορείς να εγκαταστήσεις οποιοδήποτε DE σε οποιαδήποτε distro.

🟣 GNOME
RAM: ~700–900MB
Το default στο Ubuntu και Fedora. Σύγχρονο, minimal design, εστιάζει στο workflow. Δεν έχει taskbar — χρησιμοποιεί Activities overview. Επεκτάσιμο με GNOME Extensions.
UbuntuFedoraΑρχάριοι
🔵 KDE Plasma
RAM: ~400–600MB
Ο «Windows killer». Εξαιρετικά customizable — κάθε pixel ρυθμίζεται. Καλύτερο performance από GNOME. Ιδανικό για power users που θέλουν GUI έλεγχο.
KubuntuΜεσαίοιCustomizable
🟤 XFCE
RAM: ~200–350MB
Ελαφρύ, γρήγορο, σταθερό. Δεν αλλάζει πολύ με τα χρόνια — αυτό είναι πλεονέκτημα. Ιδανικό για παλιό hardware ή όσους θέλουν να ξοδέψουν RAM αλλού.
KaliΠαλιό Hardware
🟡 LXQt / LXDE
RAM: ~150–250MB
Το πιο ελαφρύ DE. Ιδανικό για Raspberry Pi, παλιά netbooks, ή εξτρεμιστές της performance. Δεν εντυπωσιάζει οπτικά αλλά είναι αστραπή.
Raspberry PiUltra-light
⬛ i3 / Sway
RAM: ~50–150MB
Tiling window manager — δεν έχεις windows που "επιπλέουν". Κάθε παράθυρο παίρνει χώρο αυτόματα. Χειρίζεται 100% με keyboard. Learning curve απόκρημνη αλλά productivity τεράστιο.
ExpertsKeyboard-only
🟠 Cinnamon
RAM: ~400–500MB
Το default στο Linux Mint. Μοιάζει περισσότερο από όλα με Windows. Παραδοσιακό taskbar, Start menu, system tray. Καλύτερη επιλογή για Windows migrants.
Linux MintWindows-like
🔄 Αλλαγή DE χωρίς επανεγκατάσταση
Μπορείς να εγκαταστήσεις πολλά DE ταυτόχρονα και να επιλέγεις στο login screen:
sudo apt install kde-plasma-desktop ή sudo apt install xfce4 — και μετά επίλεξε από το gear icon στο login.

Bash Scripting: Αυτοματοποίησε τα Πάντα

Το bash scripting είναι η ικανότητα να γράφεις scripts που εκτελούν εντολές αυτόματα. Από backup αρχείων έως deployment servers — αν το κάνεις παραπάνω από μία φορά, γράψε το ως script.

Πρώτο Script

hello.sh
#!/bin/bash
# Το shebang λέει στο σύστημα ποιος interpreter να χρησιμοποιήσει

# Variables
NAME="Secret Room"
DATE=$(date +%Y-%m-%d)

echo "Καλωσήρθες στο $NAME"
echo "Σήμερα: $DATE"

# Εκτέλεση: chmod +x hello.sh && ./hello.sh

Conditionals & Loops

control-flow.sh
#!/bin/bash

# IF / ELSE
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ $DISK_USAGE -gt 80 ]; then
  echo "⚠ Δίσκος πάνω από 80%: ${DISK_USAGE}%"
else
  echo "✓ Δίσκος OK: ${DISK_USAGE}%"
fi

# FOR LOOP
for FILE in *.log; do
  echo "Επεξεργασία: $FILE"
  gzip "$FILE"
done

# WHILE LOOP — countdown
COUNT=5
while [ $COUNT -gt 0 ]; do
  echo "$COUNT..."
  ((COUNT--))
  sleep 1
done
echo "🚀 Εκτόξευση!"

Πρακτικό Script: Αυτόματο Backup

backup.sh
#!/bin/bash
# Αυτόματο backup με timestamp

SOURCE="/home/user/Documents"
DEST="/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="backup_${TIMESTAMP}.tar.gz"

# Δημιουργία backup directory αν δεν υπάρχει
mkdir -p "$DEST"

# Δημιουργία compressed backup
tar -czf "${DEST}/${BACKUP_NAME}" "$SOURCE"

# Διαγραφή backups παλαιότερων από 7 μέρες
find "$DEST" -name "backup_*.tar.gz" -mtime +7 -delete

echo "✓ Backup: $BACKUP_NAME"

# Αυτόματη εκτέλεση κάθε μέρα στις 2:00 π.μ. (crontab)
# 0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

Functions

functions.sh
#!/bin/bash

# Ορισμός function
check_service() {
  if systemctl is-active --quiet "$1"; then
    echo "✓ $1 τρέχει"
  else
    echo "✗ $1 είναι σταματημένο"
    sudo systemctl start "$1"
  fi
}

# Κλήση function
check_service nginx
check_service ssh

Cron Jobs — Χρονοπρογραμματισμός

crontab syntax
# Επεξεργασία crontab
$ crontab -e

# FORMAT: minute hour day month weekday command
# ┌─ minute (0-59)
# │ ┌─ hour (0-23)
# │ │ ┌─ day of month (1-31)
# │ │ │ ┌─ month (1-12)
# │ │ │ │ ┌─ day of week (0=Sun)
# * * * * * command

0 2 * * * /home/user/backup.sh # Κάθε μέρα 2:00 π.μ.
*/5 * * * * /usr/bin/check.sh # Κάθε 5 λεπτά
0 9 * * 1 /scripts/weekly.sh # Κάθε Δευτέρα 9:00 π.μ.
@reboot /home/user/startup.sh # Μετά από κάθε reboot

Linux για Gaming: 2026 Edition

Το Linux gaming έχει αλλάξει δραματικά. Το 2016 ήταν σχεδόν αδύνατο. Το 2026, χάρη στο Proton της Valve, παίζουν πάνω από 18.000 Windows games σε Linux — πολλά με καλύτερο performance από τα Windows. Το Steam Deck είναι η απόδειξη.

🎮 Steam + Proton
Το Proton είναι compatibility layer που μεταφράζει DirectX κλήσεις σε Vulkan. Ενεργοποίησε το "Steam Play for all titles" στις ρυθμίσεις και παίξε σχεδόν οτιδήποτε. Έλεγξε compatibility στο ProtonDB.
🍷 Wine & Lutris
Το Wine τρέχει Windows εκτελέσιμα (.exe) σε Linux. Το Lutris είναι game manager που αυτοματοποιεί εγκατάσταση από GOG, Epic, Battle.net, και άλλα platforms.
🔶 Vulkan & DXVK
Το DXVK μετατρέπει DirectX 9/10/11 κλήσεις σε Vulkan. Αποτέλεσμα: πολλά games τρέχουν καλύτερα σε Linux από ό,τι στα Windows, ειδικά με AMD GPUs.
🎯 Native Linux Games
Civilization VI, Counter-Strike 2, Dota 2, Team Fortress 2, Hollow Knight, Stardew Valley — τρέχουν native. Το Godot engine ενθαρρύνει Linux-first ανάπτυξη.

Setup Gaming στο Ubuntu

gaming-setup.sh
# 1. Εγκατάσταση Steam
$ sudo apt install steam

# 2. Εγκατάσταση Vulkan για AMD
$ sudo apt install mesa-vulkan-drivers vulkan-tools

# 3. Εγκατάσταση Vulkan για NVIDIA
$ sudo apt install nvidia-driver-545 vulkan-tools

# 4. Lutris για non-Steam games
$ sudo apt install lutris wine winetricks

# 5. GameMode — βελτιστοποίηση CPU για gaming
$ sudo apt install gamemode
$ gamemoderun ./game.exe # Εκτέλεση με GameMode

# 6. MangoHud — FPS overlay
$ sudo apt install mangohud
# Στο Steam: MANGOHUD=1 %command%
⚠ Anti-cheat Προβλήματα
Τα games με Easy Anti-Cheat (EAC) ή BattlEye συχνά δεν λειτουργούν σε Linux — εξαρτάται από την εκδοχή. Έλεγξε το ProtonDB (protondb.com) πριν αγοράσεις online multiplayer game. Τα single-player και co-op games σχεδόν πάντα λειτουργούν.

Τα 10 Πιο Κοινά Προβλήματα & Λύσεις

Το Linux δεν είναι άψογο — αλλά τα περισσότερα προβλήματα έχουν γνωστή λύση. Εδώ είναι τα 10 που συναντούν σχεδόν όλοι.

Δεν λειτουργεί το WiFi μετά την εγκατάσταση

Συχνότατο πρόβλημα με Broadcom και Realtek chipsets. Λύση:

# Βρες το WiFi chipset σου
$ lspci | grep -i network

# Για Broadcom (Ubuntu)
$ sudo apt install bcmwl-kernel-source

# Ενεργοποίηση additional drivers
$ sudo ubuntu-drivers autoinstall
Αν δεν υπάρχει internet, κατέβασε τον driver σε USB από άλλο PC ή χρησιμοποίησε ethernet προσωρινά.
Black screen μετά το login (NVIDIA GPU)

Κλασικό NVIDIA πρόβλημα. Το nouveau (open-source driver) συχνά δεν δουλεύει καλά.

# Στο GRUB menu, πρόσθεσε: nomodeset
# Μετά την εκκίνηση, εγκατέστησε proprietary driver:
$ sudo ubuntu-drivers install nvidia
$ sudo reboot
Broken packages — "dpkg: error"
$ sudo dpkg --configure -a
$ sudo apt install -f
$ sudo apt clean && sudo apt update
Αν εξακολουθεί, τρέξε sudo apt --fix-broken install.
Δεν ακούγεται ήχος (ALSA/PulseAudio)
# Έλεγχος αν ο ήχος είναι στο mute
$ alsamixer # Πάτα M για unmute

# Επανεκκίνηση PulseAudio
$ pulseaudio -k && pulseaudio --start

# Αν χρησιμοποιείς PipeWire (νεότερο)
$ systemctl --user restart pipewire pipewire-pulse
Δίσκος γεμάτος — "/" 100%
# Βρες τι τρώει χώρο
$ df -h # Δίσκοι
$ du -sh /* 2>/dev/null | sort -rh | head -20

# Καθαρισμός
$ sudo apt autoremove --purge
$ sudo journalctl --vacuum-size=100M # Logs
$ sudo apt clean
Το σύστημα "freezes" — πώς βγαίνω;

Το Magic SysRq είναι το Linux's emergency brake — δουλεύει ακόμα και όταν το GUI έχει κολλήσει:

# Magic SysRq key combo (κρατάς Alt+SysRq και πατάς)
R → Επαναφορά keyboard
E → Τερματισμός όλων των processes (SIGTERM)
I → Kill όλων (SIGKILL)
S → Sync δίσκων
U → Remount read-only
B → Reboot

# Mnemonic: "Reboot Even If System Utterly Broken"
Λάθος ώρα / dual boot με Windows

Τα Windows αποθηκεύουν ώρα ως local time, το Linux ως UTC. Λύση:

# Ρύθμιση Linux να χρησιμοποιεί local time (όπως Windows)
$ sudo timedatectl set-local-rtc 1 --adjust-system-clock

# Ή ρύθμισε timezone
$ sudo timedatectl set-timezone Europe/Athens
$ timedatectl status
Permission denied — δεν μπορώ να ανοίξω αρχείο
# Δες τα permissions
$ ls -la myfile.sh
-rw-r--r-- 1 root root 1234 Jun 16 myfile.sh

# Αλλαγή ιδιοκτήτη
$ sudo chown $USER:$USER myfile.sh

# Ή αλλαγή permissions
$ chmod 644 myfile.sh # rw-r--r--
$ chmod 755 myfile.sh # rwxr-xr-x (executable)
GRUB δεν εμφανίζεται / Windows έσβησε το dual boot

Συχνό μετά από Windows update. Το Windows αντικαθιστά τον bootloader.

# Boot από Live USB → open terminal
$ sudo mount /dev/sda2 /mnt # Linux partition
$ sudo grub-install --boot-directory=/mnt/boot /dev/sda
$ sudo update-grub
Ξέχασα το password root / sudo

Δεν χάνεται τίποτα — το Linux επιτρέπει reset από recovery mode:

# 1. Στο GRUB, επίλεξε "Advanced options"
# 2. Επίλεξε "Recovery mode"
# 3. Επίλεξε "root — Drop to root shell"

# 4. Remount ως read-write
# mount -o remount,rw /

# 5. Αλλαγή password
# passwd myusername

# 6. Reboot
# reboot

Linux & Ασφάλεια

Το Linux θεωρείται εγγενώς ασφαλέστερο από Windows για λόγους αρχιτεκτονικής: privilege separation (οι χρήστες δεν τρέχουν ως root), ανοιχτός κώδικας (οποιοσδήποτε μπορεί να βρει και να διορθώσει bugs), και SELinux/AppArmor για Mandatory Access Control.

Βασικές Πρακτικές Ασφαλείας

security-hardening.sh
# 1. Ενημέρωσε τακτικά
$ sudo apt update && sudo apt upgrade -y

# 2. Firewall με ufw
$ sudo ufw enable
$ sudo ufw allow ssh
$ sudo ufw status verbose

# 3. SSH Hardening — Απενεργοποίησε root login
$ sudo vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

# 4. Έλεγχος για rootkits
$ sudo apt install rkhunter chkrootkit
$ sudo rkhunter --check
🔴 Critical
Ποτέ μην τρέχεις scripts από το internet ως root χωρίς να τα διαβάσεις πρώτα. Το curl https://example.com/install.sh | sudo bash είναι μια από τις πιο επικίνδυνες πρακτικές — ακόμα και σε γνωστά projects.

Linux στο Cybersecurity

Το Linux είναι η de facto πλατφόρμα για security professionals. Εργαλεία όπως Wireshark, Metasploit, Burp Suite, nmap, john (John the Ripper) και hashcat τρέχουν native σε Linux. Το Kali Linux συγκεντρώνει 600+ από αυτά σε μία distro, ενώ το Parrot OS είναι μια ελαφρύτερη εναλλακτική.

📊 Linux σε Αριθμούς (2026)
Top 500 Supercomputers που τρέχουν Linux96.4%
Web Servers (Apache/Nginx) σε Linux~85%
Cloud Instances (AWS/Azure/GCP) σε Linux~90%
Android (βασισμένο σε Linux kernel)71%