Από Coder σε Engineer
Linux & το Terminal
Εισαγωγή στο DevOps
Στοιχειώδες Networking
HTTP επικοινωνία
Git vs Github
Εισαγωγή στο Cloud
Ρόλοι στο Tech
Πώς να τα καταφέρεις στο Interview
Take-Home Assignments
Απορίες;
Filesystem & Paths
Πριν μάθεις να κάνεις πράγματα στο terminal, πρέπει να μάθεις να κινείσαι σε αυτό. Γιατί σε αντίθεση με τα Windows ή το Finder, εδώ δεν βλέπεις φακέλους με εικονίδια. Είσαι σαν να περπατάς σε ένα κτίριο με κλειστά μάτια - και οι εντολές αυτού του μαθήματος είναι τα μάτια σου.
1. Το filesystem είναι ένα δέντρο
Στο Linux όλα ξεκινάνε από μία ρίζα: Τον φάκελο
/ (λέγεται root directory). Φαντάσου το σαν ένα πολυώροφο κτίριο όπου το / είναι η είσοδος στο ισόγειο, και κάθε φάκελος μέσα του είναι ένας διάδρομος που οδηγεί σε άλλα δωμάτια.ascii/ ├── home/ │ └── ioannis/ ← εδώ "μένεις" εσύ ├── etc/ ← ρυθμίσεις του συστήματος ├── var/ │ └── log/ ← εδώ ζουν τα logs └── usr/
Δύο φάκελοι που θα συναντάς συνεχώς:
/home/<user>→ ο προσωπικός σου φάκελος. Εδώ έχεις πλήρη δικαιώματα να φτιάχνεις και να σβήνεις./var/log→ εδώ τα προγράμματα γράφουν τα logs τους. Όταν κάτι χαλάσει στην παραγωγή, εδώ θα ψάξεις.
2. Πού είμαι; - pwd
Η πρώτη εντολή που γράφεις όταν χαθείς:
bashpwd
Σημαίνει print working directory - "πες μου σε ποιον φάκελο στέκομαι αυτή τη στιγμή". Σου τυπώνει το πλήρες μονοπάτι, π.χ.
/home/ioannis. Απλό, αλλά θα το χρησιμοποιείς εκατοντάδες φορές.3. Τι υπάρχει εδώ; - ls
bashls # δείξε τα περιεχόμενα του φακέλου ls -l # αναλυτική λίστα (δικαιώματα, μέγεθος, ημερομηνία) ls -a # δείξε ΚΑΙ τα κρυφά αρχεία ls -la # τα δύο μαζί
Το
-a είναι κρίσιμο: Στο Linux τα αρχεία που ξεκινάνε με τελεία (π.χ. .env, .gitignore) είναι κρυφά και δεν εμφανίζονται με σκέτο ls. Πολλά "μυστηριώδη" προβλήματα ρυθμίσεων λύνονται μόλις θυμηθείς το ls -a.4. Μετακίνηση - cd
bashcd /var/log # πήγαινε στον φάκελο /var/log cd projects # μπες στον φάκελο "projects" που είναι εδώ μέσα cd .. # ανέβα έναν φάκελο προς τα πάνω cd ~ # γύρνα στον προσωπικό σου φάκελο cd # σκέτο cd κάνει το ίδιο: γυρνάει στο home cd - # γύρνα στον προηγούμενο φάκελο που ήσουν
Το
cd σημαίνει change directory. Τα .. (πήγαινε πάνω) και ~ (home) θα τα χρησιμοποιείς ασταμάτητα.5. Absolute vs Relative Paths - Η πιο σημαντική έννοια
Εδώ μπερδεύονται οι περισσότεροι. Υπάρχουν δύο τρόποι να περιγράψεις πού βρίσκεται ένα αρχείο:
-
Absolute path - ξεκινάει πάντα από τη ρίζα
/. Είναι σαν να δίνεις πλήρη ταχυδρομική διεύθυνση: "Ελλάδα, Αθήνα, Σταδίου 10". Δουλεύει από οπουδήποτε κι αν στέκεσαι.bashcd /home/ioannis/projects/app -
Relative path - ξεκινάει από εκεί που στέκεσαι τώρα. Είναι σαν να λες "δύο πόρτες παρακάτω, στρίψε δεξιά". Εξαρτάται από το πού βρίσκεσαι.bash
cd projects/app # μόνο αν είσαι ήδη μέσα στο /home/ioannis
Ο κανόνας για να μην μπερδεύεσαι: Αν το μονοπάτι ξεκινάει με
/, είναι absolute. Αν ξεκινάει με όνομα φακέλου, . ή .., είναι relative.Δύο σύμβολα-κλειδιά: Το.σημαίνει "ο φάκελος που είμαι τώρα" και το..σημαίνει "ο από πάνω φάκελος". Θα τα δεις παντού - π.χ../script.shσημαίνει "τρέξε το script που είναι εδώ".
Δες το στην πράξη: Περιηγήσου στο δέντρο παρακάτω και άλλαξε μεταξύ Relative και Absolute για να δεις ότι η ίδια κίνηση γράφεται με δύο τρόπους - και πώς αλλάζει το
pwd:Περιήγηση στο Filesystem
/homeioannisprojectsappnotesetcvarlogΜορφή εντολής:Πήγαινε σε:RelativeAbsolute$
$ pwd
/home/ioannis
6. Tab completion - Το πιο χρήσιμο πλήκτρο
Δεν χρειάζεται να γράφεις ολόκληρα ονόματα φακέλων. Γράψε τα πρώτα γράμματα και πάτα Tab:
bashcd pro<Tab> # γίνεται αυτόματα cd projects/
Το terminal συμπληρώνει μόνο του. Αν υπάρχουν πολλές επιλογές, πάτα Tab δύο φορές για να τις δεις όλες. Αυτό δεν είναι απλά για ταχύτητα - σε γλιτώνει από ορθογραφικά λάθη στα μονοπάτια, που είναι η νούμερο ένα αιτία "δεν δουλεύει η εντολή μου".
Σύνοψη
- Το filesystem είναι ένα δέντρο με ρίζα το
/. pwd→ πού είμαι,ls→ τι υπάρχει εδώ (-laγια κρυφά & αναλυτικά),cd→ μετακίνηση...= πάνω,~= home,.= εδώ.- Absolute path ξεκινάει από
/και δουλεύει παντού, relative path ξεκινάει από εκεί που στέκεσαι. - Πάτα Tab για αυτόματη συμπλήρωση και μηδέν ορθογραφικά λάθη.
Θες να συνεχίσεις;
Αυτό το μάθημα είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου, ή απόκτησε το course για να ξεκλειδώσεις τα υπόλοιπα μαθήματα, τα labs και την κοινότητα.