Οδηγός εκμάθησης εντολών Linux #1

Σε αυτήν την σειρά άρθρων, θα κάνουμε μια εισαγωγή στη χρήση της γραμμής εντολών, που οι περισσότεροι Linuxάδες αποκαλούν Τερματικό ή Κονσόλα. Θα μάθουμε να χρησιμοποιούμε τις βασικές εντολές και σταδιακά θα περάσουμε σε πιο σύνθετα θέματα.

Ανοίξτε ένα παράθυρο Tερματικού. Αν έχετε Ubuntu, θα το βρείτε στο μενού Εφαρμογές > Βοηθήματα. Εναλλακτικά, στο γραφικό περιβάλλον Gnome, μπορείτε να τρέξετε το Tερματικό πατώντας Alt+F2 και γράφοντας:

gnome-terminal

Με τον τρόπο αυτό μπορείτε να τρέξετε και κάθε άλλη εφαρμογή του Linux αρκεί να ξέρετε το όνομα του εκτελέσιμου της.

Όσοι έχετε διανομή με περιβάλλον KDE, το αντίστοιχο πρόγραμμα τερματικού λέγεται konsole.

Που είμαι;

Βρίσκεστε λοιπόν μπροστά στο μικρό παραθυράκι του τερματικού με το άσπρο φόντο και τα μαύρα γράμματα. Πάνω αριστερά, βλέπετε κάτι σαν κι αυτό:

dimitris@localhost ~]$ 

Αυτό είναι το Bash prompt, η γραμμή εντολών. Το Bash είναι ένα κέλυφος του Linux, δηλαδή ένα πρόγραμμα-διερμηνέας που του δίνουμε εντολές και αυτό τις μεταφέρει στον πυρήνα Linux. Υπάρχουν πολλά τέτοια “κελύφη” αλλά στις περισσότερες διανομές είναι προεγκατεστημένο το Bash. Ουσιαστικά όταν τρέχετε την εφαρμογή “Τερματικό”, λέτε στη διανομή σας να ανοίξει ένα “παράθυρο” για να δώσετε εντολές στο Bash.

To prompt σας παρακινεί να δώσετε μια εντολή. Παράλληλα σας δίνει τέσσερις χρήσιμες πληροφορίες (από αριστερά προς δεξιά):

dimitris – Τυπώνει όνομα του συνδεδεμένου χρήστη. Εδώ εμφανίζει το δικό μου.

localhost – Μετά το σύμβολο @ δίνει το όνομα του υπολογιστή στον οποίο είμαστε συνδεδεμένοι κάθε φορά. Αυτό είναι το λεγόμενο hostname και αλλάζει μόνο αν π.χ. συνδεθείτε μέσω SSH σε άλλον υπολογιστή (θα το δούμε αργότερα).

~ – Το σύμβολο ~ συμβολίζει πάντα το home μας, δηλαδή τον προσωπικό φάκελο μας. Κάθε φορά που ανοίγετε ένα τερματικό βρίσκεστε αυτόματα σε αυτόν τον φάκελο (/home/username όπου username είναι το όνομα του λογαριασμού σας). Μόλις αλλάξετε κατάλογο με την cd, το prompt θα ανανεωθεί κατάλληλα με το όνομα του εκάστοτε καταλόγου.

$ – Το σήμα του δολάριου δεν έχει καμία σχέση με χρήμα :). Σημαίνει ότι είστε συνδεδεμένοι με προνόμια απλού χρήστη. Δηλαδή μπορείτε να κάνετε ότι θέλετε μόνο στον προσωπικό σας φάκελο και πουθενά αλλού. Αν όμως είσασταν συνδεδεμένοι ως root, τότε αντί για δολάριο θα βλέπατε ένα “καγκελο” (#). Αυτό είναι χρήσιμο για να ξεχωρίζουμε τις δύο καταστάσεις. Θα δείτε συχνά σε άρθρα και tutorials να χρησιμοποιούμε το # για να δηλώσουμε ότι οι εντολές αυτές εκτελούνται ως root.

Κάντε μια βόλτα!

Αν δώσετε

ls

θα δείτε τα περιεχόμενα του προσωπικού φακέλου σας, όπου αρχικά οι περισσότερες διανομές δημιουργούν μερικούς τυπικούς υποφακέλους (για αποθήκευση των βίντεο, της μουσική σας, κοκ). Παρατηρήστε ότι οι φάκελοι εμφανίζονται με διαφορετικό χρώμα από τα αρχεία.

Αν χρησιμοποιείτε διανομή με πλήρως Ελληνικό περιβάλλον, όπως το Ubuntu, το Fedora ή το openSUSE, θα δείτε φακέλους με Ελληνικά ονόματα. Ο πιο σημαντικός από αυτούς είναι το “Επιφάνεια εργασίας” (ή Desktop). Αυτός είναι ο κατάλογος που αντιστοιχεί στην επιφάνεια εργασίας μας, δηλαδή περιέχει ότι αρχείο ή έγγραφο έχουμε αφήσει εκεί.

Για να δείτε περισσότερες λεπτομέρειες για τα αρχεία δώστε:

ls -l

Πλοήγηση

Πολλές φορές λέμε σε κάποιον “πήγαινε στο φάκελο Desktop” ζητώντας να πληκτρολογήσει την εντολή:

cd  ~/Επιφάνεια Εργασίας
ή cd ~/Desktop

Η εντολή cd (change dir) σημαίνει απλά «άλλαξε κατάλογο ή φάκελο» και δέχεται μία παράμετρο: το νέο φάκελο όπου θέλουμε να πάμε.

Εδώ θέλουμε να πάμε στο φάκελο της επιφάνειας εργασίας. Αντ’ αυτού θα μπορούσαμε να γράψουμε και τα εξής:

cd /home/dimitris/Επιφάνεια εργασίας

ή

cd $HOME/Επιφάνεια εργασίας

Στην πρώτη περίπτωση δίνουμε την πλήρη “διαδρομή” από τη ρίζα / του συστήματος αρχείων μέχρι τον φάκελο που θέλουμε να πάμε. Στην δεύτερη περίπτωση χρησιμοποιούμε τα περιεχόμενα μιας μεταβλητής περιβάλλοντος (δείτε σχετικό πλαίσιο), που λέγεται HOME. Η $ΗΟΜΕ περιέχει πάντα την διαδρομή του προσωπικού φακέλου του εκάστοτε χρήστη, στην περίπτωσή μας /home/dimitris.

Όταν δίνουμε την παραπάνω εντολή, το Bash βλέπει το σύμβολο $ και αντιλαμβάνεται ότι του ζητάμε να αντικαταστήσει τη λέξη αυτή με τη διαδρομή του προσωπικού μας φακέλου.

Μπήκατε στο Επιφάνεια εργασίας. Πως βγαίνετε από εκεί όμως; Απλό! Ή πάτε στον προσωπικό σας κατάλογο απευθείας, δίνοντας

cd

ή πηγαίνετε ένα “επίπεδο πάνω” στην ιεραρχία του συστήματος αρχείων με την εντολή

cd ..

Οι δύο τελείες σημαίνουν κατά σύμβαση “γονικός φάκελος” ενώ η μία τελεία σημαίνει πάντα “τρέχον φάκελος”. Έτσι δίνοντας

cd .

δεν θα πάτε πουθενά…

Φάκελοι

Για να φτιάξουμε έναν νέο φάκελο, με όνομα temp, δίνουμε την εντολή

mkdir temp

Αν ο φάκελος ειναι κενός, μπορούμε να τoν διαγράψουμε με την εντολή rmdir:

rmdir temp

Προσοχή, αν επιχειρήσετε να διαγράψετε ένα φάκελο που έχει αρχεία μέσα, με την rmdir δεν θα το πετύχετε! Δείτε παρακάτω την εντολή rm…

Αρχεία

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

1. Με την εντολή touch:

touch test.txt

δημιουργούμε ένα κενό αρχείο test.txt.

2. Mε την εντολή echo:

Η echo λειτουργεί σαν αντίλαλος, δηλαδή δεν κάνει τίποτε άλλο παρά να τυπώνει ότι της πείτε:

$ echo δοκιμή  
δοκιμή

Αν όμως δοκιμάσουμε αυτό:

echo δοκιμή > test.txt

Τότε το σύμβολο > δηλώνει στο Bash ότι δεν θέλουμε να τυπώσει τα αποτελέσματα της echo στην οθόνη, αλλά να τα γράψει απευθείας στο (νέο) αρχείο test.txt. Αν το αρχείο υπάρχει και απλά θέλουμε να προσθέσουμε κάτι στο τέλος, βάζουμε δύο φορές το τελεστή >:

echo “δοκιμή” >> test.txt

3. Mε έναν κειμενογράφο της κονσόλας

Για παράδειγμα, το nano:

nano test.txt

Γράψτε ότι θέλετε και αποθηκεύστε το αρχείο πατώντας το συνδυασμό πλήκτρων Ctrl+O. Θα σας ζητήσει επιβεβαίωση του ονόματος αρχείου, οπότε απλώς πατήστε Enter. Βγαίνετε από τον κειμενογράφο πατώντας Ctrl+X.

Διαγραφή αρχείου

Και πως διαγράφουμε ένα αρχείο; Με την εντολή rm:

rm file.txt

Αντιγραφή αρχείου

Για να αντιγράψετε ένα αρχείο με όνομα file σε ένα φάκελο temp/, δίνετε:

cp file  temp/

Μετακίνηση αρχείου

Για να μετακινήσετε ένα αρχείο με όνομα file.txt σε ένα φάκελο π.χ. /home/dimitris/temp/, δίνετε:

mv file.txt  /home/dimitris/temp/

Ελεγχος ελεύθερου χώρου στο δίσκο

Για να δείτε το χώρο που καταλαμβάνει ο τρέχον κατάλογος δώστε την εντολή du (disk usage):

du .

Η’ πάρτε το τελικό άθροισμα με πιο ανθρώπινα νούμερα με τις παραμέτρους -h (human) και -s (sum)

$ du . -hs 
1.6G	.

Δέντρο συστήματος αρχείων

Η ιεραρχία του συστήματος αρχείων εμφανίζεται με την εντολή

tree /

την οποία μπορεί να πρέπει να εγκαταστήσετε. Επειδή τυπώνει πολλά όμως, πάρτε μια ιδέα μόνο της ιεραρχίας του /home σας με την εντολή:

tree /home

Για περισσότερα σχετικά με το σύστημα αρχείων δείτε εδώ.

Αυτόματη συμπλήρωση

Για να μην κουραζόμαστε με την πληκτρολόγηση, το Bash προσφέρει μια χρήσιμη λειτουργία συμπλήρωσης, το “Tab Completion”. Χοντρικά, γράφετε τα πρώτα γράμματα μιας εντολής ή μιας διαδρομής και πατάτε το πλήκτρο Tab. Το Bash θα συμπληρώσει τα υπόλοιπα. Δοκιμάστε το. Γραψτε:

cd

πατήστε το Space και μετά πληκτρολογήστε /h ώστε να βλέπετε:

cd /h

Τώρα πατήστε το Tab και θα δείτε ότι θα συμπληρωθεί μόνο του σε

cd /home/

Μαγικό! Δοκιμάστε τώρα κάτι πιο περίπλοκο. Γράψτε

cd ~/Επι

και πατηστε Tab. Το Bash θα συμπληρώσει αυτόματα το υπόλοιπο όνομα για να σας εξοικονομήσει χρόνο…

Διεργασίες

Όταν βρίσκεστε στη γραμμή εντολών μπορείτε να μάθετε πόσο φορτωμένος είναι ο υπολογιστής σας. Αυτό γίνεται με την εντολή top:

$ top

Η top εμφανίζει χρήσιμες πληροφορίες, όπως ποιά προγράμματα τρέχει το Linux, πόσο απασχολούν τον επεξεργαστή και τη μνήμη κλπ και μάλιστα κατά φθίνουσα σειρά “βαρύτητας”. Για να αλλάξετε την ταξινόμηση, πατήστε το πλήκτρο “ο” και θα εμφανιστεί μια λίστα με τα πεδία ως προς τα οποία γίνεται η ταξινόμηση (μνήμη, CPU, κλπ). Η σειρά εμφάνισης αντιστοιχεί και στην σειρά ταξινόμησης. Για να αλλάξετε την σειρά ενός πεδίου, πατήστε το αντίστοιχο γράμμα. Με κεφαλαίο το φέρνετε πιο πάνω ενώ με μικρό το πηγαίνετε πιο πίσω. Κατόπιν πατήστε Enter. Αποθηκεύετε τις ρυθμίσεις πατώντας W.

Μεταβλητές περιβάλλοντος

Ο λογαριασμός κάθε χρήστη είναι εφοδιασμένος με μερικές μεταβλητές. Τι ειναι οι μεταβλητές; Είναι καταχωρήσεις στη μνήμη του Linux, κάθε μία από τις οποίες έχει διαφορετική χρήση και διαφορετικό περιεχόμενο. Οι μεταβλητές χρησιμοποιούνται από τις εφαρμογές είτε για να παίρνουν πληροφορίες για το χρήστη είτε για την προσαρμογή του γραφικού περιβάλλοντος. Μπορείτε να δείτε όλες τις μεταβλητές του συστήματός σας με την εντολή:

$ env 

Θα σας απαντήσει κάτι σαν κι αυτό:

ΗOSTNAME=localhost
SHELL=/bin/bash
TERM=xterm
USERNAME=dimitris
MAIL=/var/spool/mail/dimitris
PATH=/usr/kerberos/bin:/usr/local/bin…
DESKTOP_SESSION=gnome
PWD=/home/dimitris
LANG=en_US.utf8
HOME=/home/dimitris
LOGNAME=dimitris
DISPLAY=:0.0
COLORTERM=gnome-terminal

Οι περισσότερες μεταβλητές δεν θα σας απασχολήσουν ποτέ. Υπάρχουν όμως και μερικές, όπως η PATH, DISPLAY και LANG που μπορεί να φανούν χρήσιμες. Για να δείτε τα περιεχόμενα μιας μεμονωμένης μεταβλητής χρησιμοποιείτε την εντολή echo, π.χ.

$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/home/dimitris/bin

Η PATH ορίζει όλους τους καταλόγους που ψάχνει το Linux, κάθε φορά που πληκτρολογείτε μια εντολή. Στις εντολές που περιλαμβάνουν μεταβλητές, πρέπει να βάζετε το σήμα του δολάριου μπροστά από το όνομα της κάθε μεταβλητής για να καταλαβαίνει το Bash ότι αναφέρεστε σε μεταβλητή. Μόλις δει το σύμβολο $, κοιτάζει στη μνήμη του για το αν υπάρχει μεταβλητή με το όνομα που ακολουθεί (εδώ PATH) και αν το βρει το αντικαθιστά με τα περιεχόμενα της μεταβλητής. Φυσικά, μπορείτε να δημιουργείτε δικές σας μεταβλητές περιβάλλοντος, π.χ. δίνοντας (χωρίς κενά!):

$ var=1

Εδώ ορίσαμε την μεταβλητή var με τιμή 1. Θα μπορούσαμε να είχαμε δώσει και γράμματα:

$ var=dimitris

Για να δούμε τα περιεχόμενα της μεταβλητής μας, δίνουμε πάλι:

$ echo $var

Σημειώστε ότι αυτές οι μεταβλητές είναι προσωρινές. Για να γίνουν μόνιμες πρέπει να τις προσθέσουμε στο αρχείο .bash_profile.

Κρυφά αρχεία

Αν δώσετε την εντολή:

ls -la

Θα δείτε να εμφανίζονται όλα τα περιεχόμενα του φακέλου όπου βρίσκεστε. Που βρέθηκαν όλα τα αρχεία που ξεκινούν με τελεία; Πρόκειται συνήθως για αρχεία ρυθμίσεων των εφαρμογών που είναι κρυφά σε εσάς. Κάθε αρχείο που ξεκινά με . είναι εξορισμού κρυφό. Δοκιμάστε το φτιάχνοντας ένα δικό σας κρυφό αρχείο:

>touch .secret

Αν δώσετε ls για να δείτε όλα τα αρχεία του φακέλου. δεν θα εμφανιστεί το .secret! Ωστόσο υπάρχει και μπορείτε να γράψετε εκεί, π.χ. ένα κωδικό: echo password >> .secret Αν δώσετε cat .secret θα δείτε τον κωδικό σας!

Ημερολόγιο

Για να βλέπετε την ώρα και την μέρα, δίνετε την εντολή:

date

Υπάρχει και ημερολόγιο! Δώστε την εντολή:

cal

για να δείτε τον τρέχοντα μήνα και

cal 08 2013

για να δείτε τον Αύγουστο! Για να δείτε όλο το χρόνο δώστε

cal -y

Αρχεια καταγραφών

Ένας καλός τρόπος για να παρακολουθείτε μόνιμα το σύστημα είναι από τα μηνύματα του πυρήνα, που καταγράφονται συνεχώς στο αρχείο /var/log/messages.

Μπορείτε να έχετε πάντοτε ανοικτό ένα παράθυρο τερματικού όπου θα προβάλλονται οι καταγραφές (logs). Για να βλέπετε μόνο τα τελευταία μηνύματα (και όχι όλο το αρχείο) δώστε τις εντολές:

sudo -i (ή su)  
tail -f /var/log/messages

Θα σας ζητήσει τον κωδικό σας και μετά θα αρχίσει να εμφανίζει τα μηνύματα του πυρήνα…