Μάθε παιδί μου Linux (μέρος 3) | Το τερματικό και οι βασικές εντολές του
Εν έτει 2019 είναι πολύ πιθανό να έχεις τουλάχιστον μία Linux συσκευή στο σπίτι σου. Το Android κινητό σου, το Raspberry Pi, ένα desktop PC ή μία smart home συσκευή, σίγουρα τρέχει κάποια παραλλαγή του Linux πυρήνα. Αν λοιπόν θέλεις να εξερευνήσεις το Linux με τη βοήθεια της συσκευής σου, θα χρειαστεί να γνωρίζεις μερικά πράγματα για το τερματικό, το οποίο είναι ένα τρομερό εργαλείο που μόλις το μάθεις δε θα θες να το αποχωριστείς.
Κατ' αρχάς πρέπει να πούμε ότι δεν είναι απαραίτητη η χρήση τερματικού αν έχεις Linux στον υπολογιστή σου, όπως δεν είναι απαραίτητη στο Windows και το MacOS που διαθέτουν παρόμοιες κονσόλες. Αν γνωρίζεις όμως πώς να το χρησιμοποιείς μπορείς να κάνεις πολλά πράγματα μαζί του. Μπορείς για παράδειγμα να χειριστείς απομακρυσμένα μία άλλη συσκευή μέσω σύνδεσης SSH ή να μπεις στο λειτουργικό σύστημα μίας συσκευής που δε διαθέτει γραφικό περιβάλλον. Αν έχεις για παράδειγμα τη ρομποτική σκούπα της Xiaomi, μπορείς με αυτές τις οδηγίες να της εγκαταστήσεις το Spotify για να σου παίζει μουσική κάθε φορά που θα βγαίνει βόλτα για καθάρισμα!
Σήμερα λοιπόν θα δούμε τις βασικότερες εντολές του τερματικού στο Linux, με τις οποίες μπορούμε μεταξύ άλλων να περιηγηθούμε στο σύστημα φακέλων της συσκευής μας, να δημιουργήσουμε νέα αρχεία, να τα μεταφέρουμε σε άλλους φακέλους και να εγκαταστήσουμε εφαρμογές.
Διαφήμιση
Περιήγηση στους φακέλους
Το πρώτο πράγμα που πρέπει να γνωρίζουμε είναι ότι το τερματικό ανοίγει πάντα σε μία τοποθεσία, δηλαδή μέσα σε ένα συγκεκριμένο φάκελο. Για να μάθουμε λοιπόν σε ποιον φάκελο βρισκόμαστε, δίνουμε την εντολή:
pwd
Σημείωση:
Το "pwd" προέρχεται από το "print working directory". Στο παράδειγμά μας βρισκόμαστε στο φάκελο "ubuntu" που βρίσκεται μέσα στο φάκελο "home".
Όταν ανοίγουμε ένα φάκελο στον υπολογιστή μας, συνήθως θέλουμε να δούμε τα αρχεία και τους άλλους φακέλους που περιέχει, σωστά; Αφού λοιπόν μάθαμε σε ποιο φάκελο βρισκόμαστε, η επόμενη κίνηση είναι να δούμε μία λίστα με τα περιεχόμενά του και αυτό γίνεται με την εντολή:
ls
Σημείωση:
Το "ls" προέρχεται από το "list".
Στο παράδειγμά μας μέσα στο φάκελο "home" περιλαμβάνεται ο φάκελος με το όνομα "sketchbook". Μπορούμε να μπούμε σε αυτό το φάκελο αν θέλουμε, δίνοντας την εντολή:
cd sketchbook
Σημείωση:
Το "cd" προέρχεται από το "change directory".
Με την εντολή "cd" μπορούμε να μπούμε σε οποιοδήποτε φάκελο θέλουμε, αρκεί να γνωρίζουμε την ακριβή διαδρομή του μέσα στο σύστημα. Για παράδειγμα:
Το "cd" προέρχεται από το "change directory".
Με την εντολή "cd" μπορούμε να μπούμε σε οποιοδήποτε φάκελο θέλουμε, αρκεί να γνωρίζουμε την ακριβή διαδρομή του μέσα στο σύστημα. Για παράδειγμα:
cd ~/snap/gimp
Pro tip:
Χρησιμοποιούμε το σύμβολο "~" στην αρχή της εντολής, αν δε γνωρίζουμε το όνομα χρήστη στο συγκεκριμένο PC. Έτσι η ίδια εντολή μπορεί να λειτουργήσει σε όλους τους Linux υπολογιστές.
Στο προηγούμενο παράδειγμα μπήκαμε στο φάκελο "gimp", ο οποίος βρίσκεται μέσα στο φάκελο "snap". Αν θέλουμε τώρα να μπούμε στον "snap", θα δίναμε κανονικά την εντολή:
Χρησιμοποιούμε το σύμβολο "~" στην αρχή της εντολής, αν δε γνωρίζουμε το όνομα χρήστη στο συγκεκριμένο PC. Έτσι η ίδια εντολή μπορεί να λειτουργήσει σε όλους τους Linux υπολογιστές.
Στο προηγούμενο παράδειγμα μπήκαμε στο φάκελο "gimp", ο οποίος βρίσκεται μέσα στο φάκελο "snap". Αν θέλουμε τώρα να μπούμε στον "snap", θα δίναμε κανονικά την εντολή:
cd ~/snap
Επειδή όμως ο "snap" είναι ο αμέσως προηγούμενος φάκελος από αυτόν στον οποίο βρισκόμαστε, μπορούμε να μπούμε σε αυτόν δίνοντας απλά την εντολή:
cd ..
Με τα "pwd", "ls" και "cd" λοιπόν μπορούμε μπούμε σε όλους τους φακέλους του λειτουργικού συστήματος και να δούμε τι περιλαμβάνουν. Πάμε τώρα να μάθουμε πώς θα δημιουργήσουμε τα δικά μας αρχεία.
Διαφήμιση
Δημιουργία αρχείων και φακέλων
Ο λόγος για τον οποίο βολτάρουμε στους φακέλους είναι φυσικά για να βρούμε και να ανοίξουμε κάποιο αρχείο ή να δημιουργήσουμε ένα νέο φάκελο. Ας πούμε αρχικά ότι θέλουμε να φτιάξουμε το φάκελο με το όνομα "photos". Αυτό γίνεται με την εντολή:
mkdir photos
Σημείωση:
Το "mkdir" προέρχεται από το "make directory".
Τώρα θα μπούμε στο φάκελο που μόλις φτιάξαμε με την εντολή "cd photos" και αυτή τη φορά θα δημιουργήσουμε ένα νέο αρχείο. Θα το ονομάσουμε "doctor" και η εντολή είναι η εξής:
touch doctor
Το αρχείο που μόλις φτιάξαμε δεν έχει συγκεκριμένη κατάληξη κι έτσι ο υπολογιστής μας δεν ξέρει με ποιο πρόγραμμα πρέπει να το ανοίξει. Μπορούμε λοιπόν να δημιουργήσουμε αρχεία για συγκεκριμένα προγράμματα, δηλώνοντας απλά στο τέλος την κατάληξη που θέλουμε. Για παράδειγμα:
touch word.doc
touch text.txt
touch website.html
touch webdesign.css
touch excel.xls
Σημείωση:
Αν δώσουμε τώρα την εντολή "ls" θα δούμε ότι ο φάκελός μας περιέχει όλα τα νέα αρχεία.
Ας πούμε ότι θέλουμε να ανοίξουμε το αρχείο "website.html", αλλά δεν έχουμε εγκαταστήσει το πρόγραμμα που μπορεί να το επεξεργαστεί ή δεν έχουμε στη διάθεσή μας κάποιο γραφικό περιβάλλον (όταν βρισκόμαστε σε σύνδεση SSH για παράδειγμα). Μπορούμε να το ανοίξουμε και να το επεξεργαστούμε μέσα στο τερματικό με την εντολή:
Αν δώσουμε τώρα την εντολή "ls" θα δούμε ότι ο φάκελός μας περιέχει όλα τα νέα αρχεία.
Ας πούμε ότι θέλουμε να ανοίξουμε το αρχείο "website.html", αλλά δεν έχουμε εγκαταστήσει το πρόγραμμα που μπορεί να το επεξεργαστεί ή δεν έχουμε στη διάθεσή μας κάποιο γραφικό περιβάλλον (όταν βρισκόμαστε σε σύνδεση SSH για παράδειγμα). Μπορούμε να το ανοίξουμε και να το επεξεργαστούμε μέσα στο τερματικό με την εντολή:
nano website.html
Η εντολή "nano" ανοίγει έναν επεξεργαστή κειμένου μέσα στο τερματικό ο οποίος μας επιτρέπει να γράψουμε ή να σβήσουμε ότι θέλουμε μέσα στο αρχείο μας. Για να αποθηκεύσουμε το αρχείο μας και να βγούμε από την επεξεργασία πατάμε "Ctrl+X" και στη συνέχεια "Y".
Μάθαμε λοιπόν ότι με τα "mkdir", "touch" και "nano" μπορούμε να δημιουργήσουμε και να επεξεργαστούμε τους δικούς μας φακέλους και αρχεία. Τώρα θα δούμε πώς θα τα μεταφέρουμε όλα αυτά σε άλλο σημείο του συστήματος, αλλά και πώς θα τα διαγράψουμε.
Αντιγραφή, επικόλληση, μετονομασία και διαγραφή
Έχουμε φτιάξει μέχρι στιγμής ένα σωρό αρχεία τα οποία βρίσκονται στο φάκελο "photos". Ας πούμε ότι θέλουμε να δημιουργήσουμε ένα αντίγραφο του "word.doc" μέσα στο φάκελο "videos". Φτιάχνουμε το φάκελο με την εντολή "mkdir videos" και αντιγράφουμε το αρχείο μας με την εντολή:
cp word.doc videos
Σημείωση:
Το "cp" προέρχεται από το "copy". Στο παράδειγμά μας μπαίνουμε στο φάκελο "videos" και βλέπουμε αν αντιγράφηκε το αρχείο, με τις εντολές που ήδη έχουμε μάθει.
Τώρα θέλουμε να μεταφέρουμε και όχι να αντιγράψουμε απλά το αρχείο "text.txt" στο φάκελο "videos". Αυτό γίνεται με την εντολή:
mv text.txt videos
Σημείωση:
Το "mv" προέρχεται από το "move". Χρησιμοποιείται με τον ίδιο τρόπο και για τη μετακίνηση φακέλων.
Ας πούμε επίσης ότι θέλουμε να μετονομάσουμε το αρχείο "excel" σε "new-excel". Αυτό γίνεται και πάλι με την εντολή "mv", δηλώνοντας πρώτα το αρχικό αρχείο και στη συνέχεια το τελικό. Η εντολή είναι η εξής:
Το "mv" προέρχεται από το "move". Χρησιμοποιείται με τον ίδιο τρόπο και για τη μετακίνηση φακέλων.
Ας πούμε επίσης ότι θέλουμε να μετονομάσουμε το αρχείο "excel" σε "new-excel". Αυτό γίνεται και πάλι με την εντολή "mv", δηλώνοντας πρώτα το αρχικό αρχείο και στη συνέχεια το τελικό. Η εντολή είναι η εξής:
mv excel.xls new-excel.xls
Σημείωση:
Προσέξτε πώς το "mv" έχει δύο χρήσεις στο τερματικό μας, οι οποίες στην πραγματικότητα κάνουν την ίδια λειτουργία. Στην πρώτη κάνει αποκοπή στο αρχείο μας από τον ένα φάκελο και επικόλληση σε έναν άλλο φάκελο. Στη δεύτερη κάνει πάλι αποκοπή στο αρχείο μας και επικόλληση στον ίδιο φάκελο απλά με άλλη ονομασία.
Για το τέλος θέλουμε να διαγράψουμε το αρχείο "webdesign.css" από το φάκελό μας. Αυτό γίνεται με την εντολή:
rm webdesign.css
Σημείωση:
Το "rm" προέρχεται από το "remove". Στο παράδειγμά μας δίνουμε και την εντολή "ls" και βλέπουμε ότι όντως το αρχείο έχει διαγραφεί.
Αν θέλουμε όμως να διαγράψουμε ένα φάκελο, όπως τον "videos", θα πρέπει να προσθέσουμε και την επιλογή "-r". Συγκεκριμένα:
rm -r videos
Σημείωση:
Το "-r" προέρχεται από το "recursive". Θα μιλήσουμε παρακάτω για τις επιλογές και τη χρήση τους.
Με τα "cp", "mv" και "rm" είδαμε πώς μπορούμε να αντιγράψουμε, να αποκόψουμε, να επικολλήσουμε και να μετονομάσουμε τα αρχεία και τους φακέλους μας. Σειρά έχει τώρα να δούμε πώς μπορούμε να κάνουμε παρόμοιες εργασίες με το περιεχόμενων των αρχείων μας.
Εμφάνιση και αντιγραφή των περιεχομένων ενός αρχείου
Είδαμε προηγουμένως ότι με το "nano" μπορούμε να επεξεργαστούμε οποιοδήποτε αρχείο. Αν θέλουμε απλά να δούμε τα περιεχόμενά του, μπορούμε να χρησιμοποιήσουμε το "cat". Για να δούμε για παράδειγμα τι υπάρχει γραμμένο μέσα στο "website.html" δίνουμε την εντολή:
cat website.html
Σημείωση:
Το "cat" προέρχεται από το "concatenation".
Με το "cat" μπορούμε επίσης να αντιγράψουμε τα περιεχόμενα ενός αρχείου σε ένα άλλο. Για παράδειγμα για να μεταφέρουμε στο "word.doc" όσα έχουμε γράψει στο "website.html", δίνουμε την εντολή:
cat website.html > word.doc
Με την παραπάνω εντολή όλα τα περιεχόμενα του "word.doc" διαγράφηκαν και αντικαταστάθηκαν από τα καινούρια. Αν θέλουμε να κρατήσουμε τα περιεχόμενά του και να προσθέσουμε από κάτω τα περιεχόμενα του "website.html" δίνουμε την εντολή:
cat website.html >> word.doc
Η όλη ουσία του "cat" είναι ότι σου δίνει τη δυνατότητα να ενώσεις τα περιεχόμενα πολλών αρχείων και να τα αποθηκεύσεις σε ένα. Αν θέλουμε για παράδειγμα να πάρουμε τα περιεχόμενα του "website.html" και του "word.doc" και να τα αποθηκεύσουμε στο "new-excel.xls" πρέπει να δώσουμε την εντολή:
cat website.html word.doc > new-excel.xls
Τέλος μπορούμε να μεταφέρουμε τα περιεχόμενα ενός αρχείου μέσα στο τερματικό. Αν θέλουμε για παράδειγμα τα περιεχόμενα του "new-excel.xls", δίνουμε την εντολή:
cat < new-excel.xls
Το "cat" λοιπόν είναι μία ακόμη βασικότατη εντολή, η οποία μπορεί να μας φανεί εξαιρετικά χρήσιμη, στις απλές ή σύνθετες εργασίες που θέλουμε να κάνουμε στο τερματικό. Πάμε τώρα να δούμε πώς κάνουμε αναζήτηση μέσα στα αρχεία μας!
Αναζήτηση σε αρχείο
Είδαμε ότι με το "cat" μπορούμε να διαβάσουμε τα περιεχόμενα ενός ολόκληρου αρχείου. Αν όμως έχουμε 10 αρχεία σε ένα φάκελο και ψάχνουμε να βρούμε ποιο από αυτά περιέχει συγκεκριμένες λέξεις τι κάνουμε; Αναζήτηση με το "grep"!
Αν για παράδειγμα θέλουμε να δούμε αν το αρχείο "website.html" περιέχει τη λέξη "επεξεργαστής", δίνουμε την εντολή:
grep "επεξεργαστής" website.html
Σημείωση:
Το "grep" προέρχεται από το "Global Regular Expression Print".
Αν υπάρχει η συγκεκριμένη λέξη, το τερματικό θα μας φέρει όλη την παράγραφο στην οποία περιέχεται. Ας ψάξουμε τώρα για το "το":
grep "το" website.html
grep -i "το" website.html
Αν τέλος δε γνωρίζουμε σε ποια από τα αρχεία μας έχουμε γράψει τη συγκεκριμένη λέξη, μπορούμε να το βρούμε με την εντολή:
grep -R "το"
Το τερματικό μας απαντάει με το όνομα του αρχείου και στη συνέχεια με τη φράση στην οποία περιλαμβάνεται.
Είδαμε λοιπόν πώς με το "grep" μπορούμε να κάνουμε αναζήτηση στα αρχεία μας και με την τελευταία βασική εντολή θα δούμε πώς θα κατεβάσουμε αρχεία από το ίντερνετ!
Κατέβασμα αρχείων από το ίντερνετ
Μπήκαμε στους φακέλους μας, δημιουργήσαμε αρχεία, τα επεξεργαστήκαμε και κάναμε αναζήτηση μέσα σε αυτά. Πολλές φορές όμως θα χρειαστεί να κατεβάσουμε κάτι από το ίντερνετ, όπως ένα βίντεο ή ένα συμπιεσμένο αρχείο. Πώς γίνεται αυτό;
Ας πούμε ότι θέλουμε να κατεβάσουμε την ταινία Big Buck Bunny, η οποία βρίσκεται εδώ: "https://tinyurl.com/6munyq". Για να την κατεβάσουμε στον υπολογιστή μας, θα δώσουμε την εντολή:
wget https://tinyurl.com/6munyq
Σημείωση:
Βλέπουμε στο κάτω μέρος της εικόνας ότι το αρχείο μας ξεκίνησε να κατεβαίνει και ότι θα ολοκληρωθεί σε 5 ώρες και 10 λεπτά.
Οι επιλογές
Κλείνοντας πρέπει να πούμε δυο λόγια για τις επιλογές που προσθέσαμε στις παραπάνω εντολές. Οι επιλογές είναι διαφορετικές για όλες τις εντολές και είναι ιδιαίτερα χρήσιμες καθώς προσθέτουν έξτρα λειτουργίες. Είδαμε για παράδειγμα πριν, πώς με την εντολή "ls" μπορούμε να δούμε μία λίστα με τα αρχεία και τους φακέλους μας. Για να δούμε και τα κρυφά αρχεία, θα δώσουμε το εξής:
ls -a
Σημείωση:
Το "-a" προέρχεται από το "all" και εμφανίζει όλα τα αρχεία του φακέλου.
Για να δούμε τη λίστα των αρχείων μας με περισσότερες πληροφορίες για αυτά, όπως για παράδειγμα τα δικαιώματά τους στο σύστημα ή το χρήστη που τα έχει δημιουργήσει, δίνουμε την εντολή:
ls -l
Σημείωση:
Το "-l" προέρχεται από το "long format".
Αν πάλι θέλουμε να δούμε τα αρχεία και τους φακέλους μας με χρονολογική σειρά (βάσει δημιουργίας ή επεξεργασίας), δίνουμε την εντολή:
ls -t
Σημείωση:
Το "-t" προέρχεται από το "time".
Μπορούμε τέλος να δώσουμε όλες τις επιλογές μαζί αν θέλουμε. Για παράδειγμα:
ls -alt
Για να μάθουμε τις διαθέσιμες επιλογές για την κάθε εντολή, υπάρχει η εντολή "man". Για παράδειγμα αν θέλουμε να δούμε περισσότερες πληροφορίες για την εντολή "pwd", θα δώσουμε την εντολή:
man pwd
Εν κατακλείδι
Μόλις έμαθες το Linux τερματικό! Ήταν δύσκολο; Όχι. Είναι το Linux μόνο για χάκερ; Όχι. Μπορείς πλέον να διαχειριστείς το σύστημά σου χωρίς γραφικό περιβάλλον; Ναι! Μπορείς πλέον να μπεις μέσω SSH σε μία τρίτη συσκευή; Ναι!
Το σημαντικότερο είναι ότι άρχισες να εξοικειώνεσαι με ένα τρομερό εργαλείο, το οποίο θα σου φανεί σίγουρα χρήσιμο αν έχεις στην κατοχή σου ένα Raspberry Pi ή μία Android συσκευή. Τώρα μπορείς να πας ένα βήμα παρά πέρα και αν μάθεις και άλλες εντολές για να εμπλουτίσεις τις γνώσεις σου.
Σχόλια
Δημοσίευση σχολίου
Πες την άποψή σου ή κάνε την ερώτησή σου ελεύθερα, ακολουθώντας όμως τους στοιχειώδεις κανόνες ευγένειας.