Από Coder σε Engineer
    Linux & το Terminal

    Το Μαύρο Κουτί: Terminal & Shell

    Filesystem & Paths

    Permissions & Root

    Εισαγωγή στο DevOps
    Στοιχειώδες Networking
    HTTP επικοινωνία
    Git vs Github
    Εισαγωγή στο Cloud
    Ρόλοι στο Tech
    Πώς να τα καταφέρεις στο Interview
    Take-Home Assignments
Απορίες;

Το Μαύρο Κουτί: Terminal & Shell

Αν υπάρχει ένα πράγμα που ξεχωρίζει αυτόν που "ξέρει να γράφει κώδικα" από αυτόν που μπορεί να δουλέψει σε ένα πραγματικό περιβάλλον, είναι η άνεση με το terminal.
Στα tutorials και στη σχολή όλα γίνονται με κουμπάκια και γραφικά. Στην πραγματικότητα; Δεν υπάρχουν κουμπάκια. Όταν συνδεθείς σε έναν server που τρέχει το app της εταιρείας, δεν θα δεις επιφάνεια εργασίας, εικονίδια ή ποντίκι. Θα δεις ένα μαύρο κουτί που περιμένει να γράψεις. Σε αυτό το μάθημα θα σταματήσεις να το φοβάσαι.

1. Terminal, Shell, Command Line - Τι είναι τι;

Αυτές οι τρεις λέξεις μπερδεύουν τους πάντες, γιατί τις χρησιμοποιούμε σαν συνώνυμα. Ας τις ξεκαθαρίσουμε με μια αναλογία.
Φαντάσου ότι παραγγέλνεις φαγητό σε ένα εστιατόριο:
  • Terminal είναι το τραπέζι και το μενού - το παράθυρο μέσα από το οποίο επικοινωνείς. Είναι απλά το πρόγραμμα που σου δείχνει το κείμενο και δέχεται αυτά που πληκτρολογείς.
  • Shell είναι ο σερβιτόρος - αυτός που παίρνει την παραγγελία σου, την καταλαβαίνει, την πάει στην κουζίνα και σου φέρνει πίσω το αποτέλεσμα. Η Shell είναι το πρόγραμμα που διαβάζει τις εντολές σου και τις εκτελεί.
  • Command Line (ή CLI) είναι ο τρόπος που παραγγέλνεις - δηλαδή με κείμενο, γράφοντας, αντί να δείχνεις με το δάχτυλο.
Δεν χρειάζεται να κάθεσαι να τα ξεχωρίζεις στην καθημερινότητα. Όλοι λένε "άνοιξε το terminal". Απλά να ξέρεις ότι πίσω από το terminal τρέχει μια Shell που κάνει την πραγματική δουλειά.

2. Bash & Zsh - Οι δύο που θα συναντήσεις

Shell δεν υπάρχει μόνο μία. Οι δύο που θα δεις στο 99% των περιπτώσεων είναι:
  • Bash - η κλασική, η πιο διαδεδομένη. Σχεδόν κάθε Linux server στον κόσμο τρέχει Bash. Αν μάθεις Bash, είσαι καλυμμένος παντού.
  • Zsh - μια πιο μοντέρνα εκδοχή με ωραιότερα χρώματα και autocomplete. Είναι η default shell στα σύγχρονα Mac.
Η καλή είδηση: Οι βασικές εντολές είναι ακριβώς ίδιες και στις δύο. Ό,τι μάθεις εδώ δουλεύει και στις δύο. Μη χάνεις χρόνο διαλέγοντας - απλά γράψε.

3. Το Prompt: Πού πατάς

Όταν ανοίξεις το terminal, θα δεις κάτι σαν αυτό:
bash
ioannis@server:~$
Αυτό λέγεται prompt και σου δίνει πληροφορίες πριν καν γράψεις κάτι:
  • ioannis → ο χρήστης (user) με τον οποίο είσαι συνδεδεμένος.
  • server → το όνομα του μηχανήματος (hostname). Χρήσιμο όταν είσαι συνδεδεμένος σε απομακρυσμένο server και θες να ξέρεις πού ακριβώς βρίσκεσαι.
  • ~ → ο φάκελος μέσα στον οποίο βρίσκεσαι αυτή τη στιγμή (το ~ σημαίνει "ο προσωπικός σου φάκελος"). Θα το δούμε αναλυτικά στο επόμενο μάθημα.
  • $ → το σύμβολο που λέει "είμαι έτοιμος, γράψε". Αν δεις # αντί για $, προσοχή - σημαίνει ότι είσαι root (ο διαχειριστής με απόλυτη εξουσία).
Όταν δεις παραδείγματα στο internet που ξεκινάνε με $, μην αντιγράφεις το $ μέσα στην εντολή σου. Είναι απλά το σύμβολο του prompt. Γράφεις μόνο ό,τι ακολουθεί μετά το $.

4. Η ανατομία μιας εντολής

Σχεδόν κάθε εντολή που θα γράψεις ακολουθεί το ίδιο μοτίβο τριών μερών:
bash
ls -l /home
  • ls → η εντολή (το ρήμα: "τι θέλω να κάνω").
  • -l → ένα flag ή option (πώς να το κάνει - εδώ "δείξε μου αναλυτική λίστα").
  • /home → το argument (σε ποιον στόχο να το κάνει).
Μόλις καταλάβεις αυτό το pattern, σταματάς να αποστηθίζεις και αρχίζεις να διαβάζεις εντολές. Τα flags ξεκινάνε σχεδόν πάντα με - (ένα ή δύο παύλες) και αλλάζουν τη συμπεριφορά της εντολής.

5. Όταν κολλήσεις: --help & man

Κανείς δεν θυμάται όλα τα flags. Ούτε οι senior engineers. Αυτό που τους ξεχωρίζει είναι ότι ξέρουν πού να κοιτάξουν.
Κάθε εντολή σου εξηγεί τον εαυτό της:
bash
ls --help     # γρήγορη περίληψη των επιλογών
man ls        # το πλήρες εγχειρίδιο (manual)
Το man (από το manual) ανοίγει το επίσημο εγχειρίδιο της εντολής. Για να βγεις από αυτό, πάτα το πλήκτρο q (quit). Θυμήσου αυτό το q - είναι ο πιο συνηθισμένος τρόπος που "κολλάνε" οι αρχάριοι, νομίζοντας ότι πάγωσε το terminal.

Σύνοψη

  • Terminal = το παράθυρο, Shell = το πρόγραμμα που εκτελεί τις εντολές, CLI = ο τρόπος (με κείμενο).
  • Bash και Zsh είναι οι δύο shells που θα δεις, οι βασικές εντολές είναι ίδιες.
  • Το prompt σού λέει ποιος είσαι, πού είσαι και αν είσαι απλός χρήστης ($) ή root (#).
  • Κάθε εντολή = command + flags + arguments.
  • Όταν χαθείς, ρώτα την ίδια την εντολή με --help ή man. Από το man βγαίνεις με q.

Θες να συνεχίσεις;

Αυτό το μάθημα είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου, ή απόκτησε το course για να ξεκλειδώσεις τα υπόλοιπα μαθήματα, τα labs και την κοινότητα.