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

dimitris | Σάβ, 01/15/2011 - 16:18 | 19' | 17

Σε αυτήν την σειρά άρθρων, θα κάνουμε μια εισαγωγή στη χρήση της γραμμής εντολών, που οι περισσότεροι 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

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

 

Προγραμματισμός σε Bash:

Αν θέλετε να μάθετε περισσότερα για scripting και προγραμματισμό Bash διαβάστε τους παρακάτω οδηγούς:

Εισαγωγή στο Bash: Ροές και pipes

Bash: Βρόχος επανάληψης σε εύρος αριθμών όπου μεταβλητές ορίζουν την αρχή ή το τέλος

Bash: Πως εκτελούμε μια εντολή Χ φορές στη σειρά με την for

Bash: Κωδικοί εξόδου και έλεγχος ροής

Scripting: Όταν το GUI δέν επαρκεί

Bash: Επεξεργασία κειμένου με Regular Expressions και άλλα κόλπα

Δώσε αστέρια!

MO: 5 (ψήφοι: 2)

Σχόλια

dimitris,
να και για μας, τους πλησίον της συντάξεως, πεδίον μάχης λαμπρό. θα μάθουμε επίτέλους εντολές unix.
Σε ευχαριστώ για την απλότητα και τον κατανοητό τρόπο που παραθέτεις τις εντολές.
Γνωρίζω πάρα πού καλά τις εντολές του DOS, καιρός στα νειάτα των γηρατειών μου να μάθω και Linux.
Ευχαριστώ για άλλη μιά φορά.
Ετσι προσελκύουμε χρήστες στον κόσμο του Linux.

tassos gkamas]dimitris,
να και για μας, τους πλησίον της συντάξεως, πεδίον μάχης λαμπρό. θα μάθουμε επίτέλους εντολές unix.
Σε ευχαριστώ για την απλότητα και τον κατανοητό τρόπο που παραθέτεις τις εντολές.
Γνωρίζω πάρα πολύ καλά τις εντολές του DOS, καιρός στα νειάτα των γηρατειών μου να μάθω και Linux.
Ευχαριστώ για άλλη μιά φορά.
Ετσι προσελκύουμε χρήστες στον κόσμο του Linux.

Τάσσο, ευχαριστώ πολύ. Χαίρομαι πάρα πολύ που αυτό το άρθρο θα σε βοηθήσει.

Θα προσπαθήσω να τηρήσω το ίδιο ύφος σε όλα τα άρθρα αυτής της σειράς. Αν κάπου «ξεφεύγω» πες το με ένα σχόλιο να το εξηγήσω περισσότερο ή να το γράψω με διαφορετικό τρόπο.

Στα 38 μου ποιος 8α το περιμενε να μα8ω και εντολες. Καλιο αργα παρα ποτε. Μπραβο Δημητρη. Δεν περιμενα να ειναι τοσο απλα τουλαχιστον αυτα που διαβασα και εκανα πραξη στην κονσολα. Ειχα μια φοβια οταν εβλεπα φιλους να ανοιγουν κονσολα.

να σε ρωτησω κατι? σε εμενα δνε δουλευουν οι εντολες πχ δεν μπορω να παω στην επιφανεια εργασιας μου ωπος γραφεις τι να φταιει? τα εκανα και αντιγραφει επικκολησει δοκιμασα και με desktop και με επιφανεια εργασιας τα παντα κα μου λεει δεν υπαρχει τετιο αρχειο η καταλογος. . . εχω τα ubuntu ελληνικα. . .

Το linuxaki μας κανει διακριση μεταξυ πεζών και κεφαλαιων γραμματων
Μηπως κανεις εκει λαθος

μα κανω και αντιγραφη ωπος ακριβως τις βλεπω εδω τις εντολες. . . και παλι τιποτα. . .που μπρορω να ανεβασω εικονα αν θελετε να δειτε. . .

να δες παταω τις εντολες και δες τι μου λεει. . .
http://img510.imageshack.us/i/screenshotcaptaincaptai.png/

αα ακου δω. οταν εχεις ελληνικα δεν παιζει ετσι.  θελει   πλάγια καθετο  \ 
πατα  Cd  γραψε Ε ( απο το επιφανεια εργασίας )   θα σου συμπληρώσει μόνο του  το υπολοιπο 
δηλαδη θα στι βγαλει καπως ετσι
Cd  Επιφάνεια\ Εργασσιας

λ.χ  cd  D    {tab tab) 
Desktop/   Documents/ Downloads/ 

το παραδειγμα ειναι για την αγγλικη έκδοση

συπληρώνεις ακομα ενα στοιχειο - γραμμα και εισαι οκ. αν εχεις  3 οπως πανω  και θες στο  Download πρπει να βαλεις Dow 
για να εισαι οκ  και μετά enter

 δηλ cd  Do
Documents/ Downloads/ 

βλέπεις την διαφορα με πάνω?? 

 

δεν μπαινει ουτε ετσι στην επιφανεια εργασιας. . .:( παραξενο δεν ειναι??

βασικα δοκιμασα και σε αλλα μπαινει. .. σε βιντεος κ.τ.λ.π εχω προβλημα σε διπλα ονοματα δλδ επιφανεια εργασιας που αποτελειται απο δυο. . . μηπως θελει να βαλω κατι ενδιαμεσα τους?

thanks,αναλυτικοτατος!!!!!πολυ χρησιμος οδηγος,μπραβο πολυ καλη δουλεια.

παιδια οποιος-οποια θελει ας ρειξει μια ματια και στα παρακατω

1) http://wiki.teilar.net/index.php?title=%CE%92%CE%B1%CF%83%CE%B9%CE%BA%CE%AD%CF%82_%CE%95%CE%BD%CF%84%CE%BF%CE%BB%CE%AD%CF%82_Linux
2) http://www.linuxguide.it/command_line/linux_commands_gr.html
3) http://www.tem.uoc.gr/~nchristakis/Linux_commands.pdf