Μάθε παιδί μου 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 ~/snap/gimp

Pro tip:
Χρησιμοποιούμε το σύμβολο "~" στην αρχή της εντολής, αν δε γνωρίζουμε το όνομα χρήστη στο συγκεκριμένο 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 για παράδειγμα). Μπορούμε να το ανοίξουμε και να το επεξεργαστούμε μέσα στο τερματικό με την εντολή:

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 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


Το τερματικό μας απαντάει μαρκάροντας όλα τα σημεία στα οποία βρίσκεται το "το". Αυτό που δε λαμβάνει όμως υπ' όψιν είναι το "Το" (με ταυ κεφαλαίο) στην αρχή της πρώτη πρότασης. Αν θέλουμε λοιπόν να μας εμφανίσει και αυτές τις περιπτώσεις, προσθέτουμε στην εντολή την επιλογή "-i" ως εξής:

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 συσκευή. Τώρα μπορείς να πας ένα βήμα παρά πέρα και αν μάθεις και άλλες εντολές για να εμπλουτίσεις τις γνώσεις σου.

Σχόλια

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter