Βασικές γνώσεις τερματικού Linux (Μέρος Α)

Στο Linux η βασική μονάδα ταξινόμησης των αρχείων είναι ο κατάλογος (directory). Κάθε αρχείο βρίσκεται μέσα σε έναν κατάλογο, ο οποίος μπορεί να περιέχει πολλά αρχεία. Κάθε κατάλογος με τη σειρά του βρίσκεται μέσα σε κάποιον άλλο κατάλογο ο οποίος ονομάζεται “γονικός κατάλογος” (parent directory). O κατάλογος / ονομάζεται “ριζικός κατάλογος” (root directory) και είναι η κορυφή της ιεραρχίας των καταλόγων, είναι δηλαδή ο κατάλογος που περιέχει όλους του άλλους καταλόγους και αρχεία. Σημείωση: Γονικός κατάλογος ονομάζεται ο ανώτερος ιεραρχικά κατάλογος του τρέχοντα καταλόγου, δηλαδή ο κατάλογος που βρίσκεται ακριβώς από πάνω.
Στο Linux, δεν υπάρχει διάκριση μεταξύ αρχείων και καταλόγων. Τα ονόματα των αρχείων και των καταλόγων αντιμετωπίζονται ακριβώς με τον ίδιο τρόπο. Το μόνο που διαχωρίζει το όνομα ενός αρχείου από έναν κατάλογο είναι ότι στους καταλόγους μπορεί να μπει ένα / στο τέλος του ονόματος, η ύπαρξη του οποίου όμως είναι προαιρετική.
Όταν θέλουμε να είμαστε σίγουροι ότι αναφερόμαστε σε έναν κατάλογο τότε βάζουμε πάντα ένα / στο τέλος της διαδρομής (path).
Παράδειγμα
Θέλουμε να αναφέρουμε ότι το Documents είναι κατάλογος,τότε βάζουμε το / στο τέλος της διαδρομής (path).
/home/john/Documents/
Παράδειγμα
Το όνομα Music δεν ξέρουμε αν είναι όνομα αρχείου ή όνομα καταλόγου.
/home/john/Music
Προσοχή
Στο Linux, εν αντιθέσει με τα Windows, οι καταλήξεις των ονομάτων των αρχείων και των καταλόγων δεν παίζουν κανένα ρόλο. Έτσι μπορούμε να έχουμε ονόματα καταλόγων με . όπως το /home/john/mysong.wav/
Προσοχή
Στο Linux τα πεζά/κεφαλαία γράμματα έχουν σημασία, δηλαδή οι κατάλογοι /home/john/movies/ και /home/john/Movies/ είναι δύο διαφορετικοί κατάλογοι.
Κάθε φορά που μπαίνουμε σε ένα περιβάλλον γραμμής εντολών (ονομάζεται και κονσόλα ή τερματικό) βρισκόμαστε πάντα στον προσωπικό κατάλογο του χρήστη μας.
Η εντολή pwd (από τα αρχικά της φράσης “print working directory”) μας δείχνει το όνομα του καταλόγου στον οποίο βρισκόμαστε (τρέχον κατάλογος).

Παράδειγμα

αν ο χρήστης μας ονομάζεται john, με την εκτέλεση της παραπάνω εντολής, η έξοδος που θα πάρουμε θα ήταν η εξής:
$ pwd 
$ /home/john

Αλλαγή καταλόγου – cd

Η εντολή για να μεταβούμε σε έναν διαφορετικό κατάλογο είναι η εντολή cd (change directory).
Για να μεταβούμε σε έναν κατάλογο αρκεί να γράψουμε cd όνομα_καταλόγου.
Αν το όνομα του φακέλου είναι ένα absolute path (απόλυτη διαδρομή) τότε ανεξαρτήτως ποιος είναι ο τρέχων κατάλογος θα μεταφερθούμε στον κατάλογο που δείχνει το absolute path (με την προϋπόθεση ότι αυτό το path υπάρχει φυσικά…).

Παράδειγμα

αν θέλουμε να μεταβούμε στον κατάλογο /home/john/Documents/school τότε αρκεί να δώσουμε την εντολή cd /home/john/Documents/school
$ pwd
$ /home/john
$ cd /home/john/Documents/school
$ pwd
$ /home/john/Documents/school
Η προηγούμενη εντολή θα δουλέψει ανεξαρτήτως του που βρισκόμαστε αυτήν την στιγμή.
Αν όμως βρισκόμαστε σε έναν από τους γονικούς καταλόγους του /home/john/Documents/school τότε υπάρχει και πιο εύκολος τρόπος για να μεταβούμε σε αυτόν, και δεν είναι άλλος από την χρήση των relative paths (σχετικών διαδρομών)

Παράδειγμα

έστω ότι βρισκόμαστε στον φάκελο /home/john/Documents. Στην περίπτωση αυτή, για να μεταβούμε στον υποφάκελο school, αρκεί να δώσουμε cd school
$ pwd
$ /home/john/Documents
$ ls
$ school
$ cd school
$ pwd
$ /home/john/Documents/school

Παράδειγμα

Έστω ότι βρισκόμαστε στον φάκελο /home/john/Documents/. Αν δώσουμε cd . τότε δεν θα αλλάξουμε κατάλογο καθώς, το . συμβολίζει τον τρέχοντα φάκελο.
$ pwd
$ /home/john/Documents
$ cd .
$ pwd
$ /home/john/Documents

Παράδειγμα

Εάν επιθυμούμε να μεταβούμε στον γονικό κατάλογο, αρκεί να δώσουμε cd .. και έτσι θα επιστρέψουμε στον /home/john.
$ pwd
$ /home/john/Documents
$ cd ..
$ pwd
$ /home/john

Παράδειγμα

Εάν βρισκόμαστε στον κατάλογο /home/john/Documents/school/ και θέλουμε με έναν εύκολο τρόπο να μεταβούμε αμέσως στον αρχικό μας κατάλογο /home/john, αυτό μπορούμε να το επιτύχουμε δίνοντας την εντολή cd ../..
$ pwd
$ /home/john/Documents/school/
$ cd ../..
$ pwd
$ /home/john
Μία πάρα πολύ χρήσιμη συντόμευση είναι η χρήση της cd σκέτης χωρίς κανένα path μετά από αυτήν. Κάθε φορά που δίνουμε αυτή την εντολή μεταφερόμαστε στον αρχικό κατάλογο του χρήστη μας.

Παράδειγμα

Εάν βρισκόμαστε στον κατάλογο /home/john/Documents/school/labs και θέλουμε με έναν εύκολο τρόπο να μεταβούμε αμέσως στον αρχικό μας κατάλογο /home/john , μπορούμε να δώσουμε cd
$ pwd
$ /home/john/Documents/school/labs
$ cd
$ pwd
$ /home/john 
Όταν βρισκόμαστε σε κάποιον κατάλογο και θέλουμε να εμφανίσουμε τα περιεχόμενά του, δίνουμε την εντολή ls (list).
Μπορούμε βέβαια και να εμφανίσουμε τα περιεχόμενα ενός καταλόγου γνωρίζοντας την απόλυτη ή σχετική διαδρομή του.
Δίνοντας την εντολή ls -l επιστρέφεται αυτή τη φορά μία πιο λεπτομερής εμφάνιση των περιεχομένων του τρέχοντος καταλόγου, μαζί με τα χαρακτηριστικά του καθενός.
Για να εμφανιστούν τα κρυφά αρχεία δίνουμε μαζί και την παράμετρο -a . Δηλαδή ls -a

Η εντολή mkdir (make directory) δημιουργεί νέο κατάλογο στον τρέχοντα κατάλογο.
mkdir όνομα_καταλόγου

Παράδειγμα
Δημιουργούμε τον κατάλογο Music μέσα στον τρέχοντα κατάλογο /home/john/

$ pwd
$ /home/john/
$ mkdir Music
$ ls
 Music

Μπορούμε να δημιουργήσουμε κατάλογο και έξω από τον τρέχοντα κατάλογο δίνοντας τη διαδρομή (path) όπου θα δημιουργηθεί αυτός.

mkdir path

Παράδειγμα

Έστω βρισκόμαστε στο home directory /home/john και θέλουμε να δημιουργήσουμε τον φάκελο “/home/john/Music/discographies”. Σε αυτήν την περίπτωση μπορούμε να χρησιμοποιήσουμε την διαδρομή (path) που θα δημιουργήσει το νέο κατάλογο.
$ pwd
$ /home/john/
$ mkdir Music/discographies
$ ls Music 
  discographies

Η εντολή mv (move) μας χρησιμεύει σε εργασίες μετακίνησης και μετονομασίας.
Η mv πέρνει δύο παραμέτρους, μία πηγής και μία προορισμού.
mv αρχείο1 αρχείο2 όπου μετονομάζουμε το αρχείο1 σε αρχείο2.
Εάν όμως υπήρχε το αρχείο2 ,σε αυτήν την περίπτωση το περιεχόμενο του θα διαγραφόταν και θα το αντικαθιστούσε με αυτό του αρχείου1.
mv κατάλογος1 κατάλογος2 όπου μετονομάζουμε τον κατάλογο1 σε κατάλογο2.
Για να μεταφέρουμε το αρχείο σε κάποιον άλλο κατάλογο δίνουμε την εντολή: 
mv αρχείο1 path

Παράδειγμα
Μετακινούμε το αρχείο1 από το /home/john/Documents στο /home/john/Documents/school δηλαδή ένα επίπεδο μπροστά.
$ pwd
$ /home/john/Documents
$ ls
αρχείο1 αρχείο2 school
$ mv αρχείο1 school/
$ ls school
αρχείο1
Παράδειγμα

Μετονομάζουμε το αρχείο αρχείο1 που βρίσκεται στο /home/john/Documents/school σε αρχείο3

$ pwd
$ /home/john/Documents/school
$ ls
αρχείο1
$ mv αρχείο1 αρχείο3
$ ls
αρχείο3

Άσκηση 1

  1. Ανοίξτε το τερματικό.
  2. Καταγράψτε τον τρέχοντα κατάλογο.
    Ποια εντολή χρησιμοποιήσατε;
  3. Δημιουργήστε τον κατάλογο askisi1.
    Με ποια εντολή τον φτιάξατε;
  4. Επιβεβαιώστε τη δημιουργία του καταλόγου askisi1.
    Με ποιον τρόπο το κάνατε;

Άσκηση 2

  1. Μπείτε μέσα στον κατάλογο που φτιάξατε στην ΑΣΚΗΣΗ1.
    Καταγράψτε την εντολή που χρησιμοποιήσατε.
  2. Ποιος είναι ο ενεργός κατάλογος τώρα;
    Γράψτε την εντολή που χρησιμοποιήσατε και το αποτέλεσμα.
  3. Μεταβείτε έναν κατάλογο πίσω.
    Ποια εντολή γράψατε; 

Άσκηση 3

  1. Φτιάξτε τη δομή καταλόγων όπως στην εικόνα.
    Ποιες εντολές χρησιμοποιήσατε;

  1. Μεταβείτε στον μητρικό κατάλογο του alfa
  2. Εκτελέστε την εντολή mv alfa alpha
  3. Τι έκανε αυτή η εντολή;
  4. Μετονομάστε τον κατάλογο vita σε bita .
    Με ποιες εντολές το καταφέρατε;