Τερματικό για...αρχάριους!

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

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

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Τερματικό για...αρχάριους!

Δημοσίευσηαπό ftso » 22 Ιουν 2008, 15:22

Τα πρώτα βήματα με το Τερματικό


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


:arrow: Περιεχόμενα






Τι είναι το τερματικό?
Το τερματικό (terminal) που συχνά λέγεται και γραμμή εντολών (Command line interface) ή κέλυφος (shell) ή κονσόλα (console) είναι στην ουσία μια γραμμή εντολών από την οποία μπορούμε να κάνουμε σχεδόν το 90% των πραγμάτων που κάνουμε με το γραφικό περιβάλλον αλλά και πολύ περισσότερα που γίνονται μόνο μέσω τερματικού...
Παλαιότερα, αυτός ήταν ο μόνος τρόπος με τον οποίο ο χρήστης αλληλεπιδρούσε με τον υπολογιστή. Όμως, οι χρήστες του Linux έχουν διαπιστώσει ότι το κέλυφος μπορεί να είναι ταχύτερο από ένα αντίστοιχο γραφικό εργαλείο, γι' αυτό διατηρεί την αξία του ακόμα και σήμερα.
Επίσης οι περισσότερες γραφικές εφαρμογές που τρέχουμε σε linux δεν είναι τίποτα παραπάνω απο ένα Frontend GUI των προγραμμάτων που στη ουσία τρέχουν στο τερματικό...




Που είναι, πως το ανοίγω? - Η πρώτη επαφή μαζί του!
Το τερματικό μπορούμε να το βρούμε σε διάφορες εκδόσεις (οι οποίες κάνουν όλες την ίδια δουλειά) πέραν των default του κάθε Desktop Environment...εμείς όμως θα δούμε μόνο τις default του κάθε Desktop Environment.

Το τερματικό λοιπόν μπορούμε να το ανοίξουμε:
Απο το μενού...
Στο Gnome (Ubuntu)
Applications menu -> Accessories -> Terminal
μενού Εφαρμογές → Βοηθήματα → Τερματικό

Στο Xfce (Xubuntu)
Applications menu -> System -> Terminal
μενού Εφαρμογές → Βοηθήματα → Τερματικό

Στο KDE (Kubuntu)
KMenu -> System -> Terminal Program (Konsole)
KMenu → Σύστημα → Τερματικό (Konsole)


...ή πατώντας τα πλήκτρα Alt+F2 και γράφοντας στο πεδίο εκτέλεσης εντολής που θα εμφανιστεί:
Στο Gnome (Ubuntu)gnome-terminal
Στο Xfce (Xubuntu)xfce-terminal
Στο KDE (Kubuntu)konsole
και πατώντας Enter.

Αυτό που θα πρέπει να δούμε είναι κάτι σαν και αυτό:
Εικόνα
(To χρώμα του background και το μενού του μπορεί να διαφέρει απο το δικό μας και δεν παίζει κανένα ουσιαστικό ρόλο)
Αυτό που βλέπουμε να γράφει είναι "asdf@laptoplinux:~$" και το οποίο σημαίνει:
  • asdf → είναι το όνομα του user με τον οποίο έχουμε κάνει login.
  • laptoplinux → είναι το όνομα που έχουμε δώσει στο σύστημά μας.
  • @ → έχει παρόμοια χρήση με το @ του email μας.
  • : → μετά απο αυτό το σύμβολο υπάρχει το path/διαδρομή καταλόγου στην οποία βρίσκετε το τερματικό
  • ~ → είναι ο συμβολισμός του home καταλόγου του χρήστη μας.Δηλαδή στη συγκεκριμένη περίπτωση του /home/asdf/.
  • $ → το σύμβολο αυτό δείχνει ότι το τερματικό είναι έτοιμο να δεχτεί εντολές και οτι η προηγούμενη εντολή που εκτελέσαμε έχει τερματίσει...

Με λίγα λόγια αυτό που βλέπουμε είναι ποιος χρήστης είμαστε,σε ποιο σύστημα, και σε πιο path/διαδρομή καταλόγου...






Πως γράφω και πώς εκτελώ εντολές?
Τις εντολές τις γράφουμε μετά το σύμβολο $ και τις εκτελούμε πατώντας Enter.
Επίσης μπορούμε να εισάγουμε μία εντολή κάνοντάς την Αντιγραφή/Copy από κάπου αλλού (πχ κείμενο,σελίδα,άλλο τερματικό) και κάνοντας δεξί κλίκ μετά το $ να επιλέξουμε Επικόλληση/Paste.
Προσοχή! Οι συντομεύσεις πληκτρολογίου Ctrl+V και Ctrl+C κάνουν άλλες δουλειές.Συγκεκριμένα η Ctrl+C κλείνει εφαρμογές που τρέχουν σε τερματικό.
Αν θέλουμε να αντιγράψουμε το αποτέλεσμα κάποιας εντολής το μαρκάρουμε με το ποντίκι και κάνοντας δεξί κλικ επιλέγουμε Αντιγραφή/Copy.

*To linux διαθέτει και ένα ακόμα τρόπο για την αντιγραφή/επικόλληση που είναι ανεξάρτητος του κλασικού με δικιά του μνήμη (buffer) ανεξάρτητη του κλασσικού Copy/Paste και τον οποίο μπορούμε επίσης να χρησιμοποιήσουμε.Αν μαρκάρουμε κάποια εντολή με το ποντίκι τότε αυτόματα έχουμε κάνει αντιγραφή.Αν πάμε κάπου και πατήσουμε την ροδέλα του ποντικιού τότε το μαρκαρισμένο κείμενο θα επικολληθεί.
**Προσοχή!Μερικές φορές μπορεί να τύχει την ώρα που κάνουμε την Επικόλληση κάποια εντολής στο τερματικό αυτήν μπορεί να εκτελεστεί κιόλας ταυτόχρονα χωρίς να πατήσουμε Enter...

Οι εντολές που εκτελούμε μπορεί να μας επιστρέψουν κάποιο αποτέλεσμα το οποίο μπορεί να δούμε (πχ ls ~) , μπορεί και όχι (πχ mkdir ~/test) και να τερματίσουν εμφανίζοντάς μας ξανά το "asdf@laptoplinux:~$" ή να εκτελέσουν κάποιο πρόγραμμα τερματικού (πχ top) το οποίο το κλείνουμε συνήθως πατώντας Ctrl+C ή q ή γράφοντας αν δέχεται εντολές το πρόγραμμα exit ή quit ή close .

Παραδείγματα:
Αν δώσουμε την εντολή ls ~ θα μας εμφανίσει τα περιεχόμενα του home καταλόγου του χρήστη μας.
Αν δώσουμε την εντολή mkdir ~/test δεν θα εμφανίσει κάτι, αλλά θα δημιουργήσει ένα νέο κατάλογο με το όνομα "test" μέσα στον home καταλόγο του χρήστη μας.
Αν δώσουμε την εντολή top θα εκτελέσει το πρόγραμμα TOP (εμφανίζει τις Linux διεργασίες που τρέχουν) το οποίο για το κλείσουμε πατάμε τα πλήκτρα Crtl+C ή q.







Βασικές εντολές και πράγματα τα οποία θα πρέπει να γνωρίζουμε!


Γενικά - Tips
  • Εκτελώντας την εντολή clear καθαρίζουμε την οθόνη του τερματικού απο τα αποτελέσματα των εντολών που έχουμε εκτελέσει.

  • Πατώντας τα βελάκια του πληκτρολογίου πάνω/κάτω εμφανίζουμε το ιστορικό των εντολών που έχουμε εκτελέσει ακόμα και μέρες πρίν.
    Επίσης εκτελέσουμε την εντολή history θα μας εμφανιστεί όλο το ιστορικό με την κάθε εντολή να έχει ένα αριθμό δίπλα της (πχ 502 clear ,503 history).Αν εκτελέσουμε τώρα !502 θα εκτελεστεί η εντολή clear.
    Αν τρέξουμε την εντολή πχ !b θα εκτελεστεί η τελευταία εντολή που τρέξαμε και ξεκινούσε απο b .

  • Αν γράψουμε τα πρώτα γράμματα κάποιας εντολής (ή διαδρομής αρχείου/καταλόγου) και πατήσουμε το πλήκτρο TAB 2 φορές θα μας εμφανιστεί ολόκληρη η εντολή (ή η διαδρομή αρχείου/καταλόγου) ή περισσότερες απο μια εντολές που αρχίζουν απο αυτά τα γράμματα...

  • Στο τερματικό μπορούμε να εκτελούμε/εκκινούμε ακόμα και προγράμματα που έχουν γραφικό και τα οποία αν κλείσουμε το τερματικό θα κλείσουν και αυτά!

  • Βάζοντας την . (τελεία) μπροστά απο το / δηλαδή ./ , ότι γράψουμε (είτε εντολή, είτε κατάλογος,είτε πρόγραμμα, είτε αρχείο) μετά απο αυτό θα είναι σαν να λέμε στο τερματικό να κοιτάξει μόνο μέσα στον κατάλογο που βρισκόμαστε και να μην ψάξει αλλού (αλλού = στο υπόλοιπο path που έχει οριστεί by default. To path μπορούμε να το δούμε εκτελώντας την εντολή echo $PATH) .

  • Σχεδόν όλες οι εντολές και τα προγράμματα που υπάρχουν στο linux διαθέτουν ένα manual/εγχειρίδιο και το οποίο θα πρέπει να συμβουλευόμαστε πριν εκτελέσουμε κάποια εντολή που δεν γνωρίζουμε τι κάνει ή για να μάθουμε τι παραμέτρους αυτήν παίρνει (Τις παραμέτρους τις βάζουμε δίπλα/μετά από την εντολή που θα εκτελέσουμε αφήνοντας ένα κενό).
    Για να δούμε το manual/εγχειρίδιο κάποιας εντολής/προγράμματος θα πρέπει να γράψουμε την λέξη man και αφήνοντας ένα κενό να γράψουμε δίπλα/μετά την εντολή (πχ man ls).
    To manual/εγχειρίδιο το διαβάζουμε (δηλαδή κάνουμε περιήγηση) πατώντας τα βελάκια του πληκτρολογίου πάνω/κάτω ή πατώντας Enter.
    Για να το κλείσουμε πατάμε το πλήκτρο με το γράμμα q .

  • Αν θέλουμε να δούμε τι εντολές είναι διαθέσιμες όσον αφορά κάποιο πράγμα τότε εκτελούμε:
    man - k <λέξη> ή apropos <λέξη>.
    Όπου <λέξη> είναι κάποια λέξη αναφορικά με την οποία θέλουμε να κάνουμε αναζήτηση.
    Για παράδειγμα: man -k network ,θα βρει λίστα εντολών που έχουν να κάνουν με διαχείριση του δικτύου.

  • Αν θέλουμε να εκτελέσουμε παραπάνω απο μια εντολή στην ίδια γραμμή , χωρίζουμε τις εντολές με ένα ; .Παράδειγμα: ls ; pwd (έτσι θα εκτελεστεί πρώτα η ls και μετά η pwd).
    Αν βάλουμε αντί του ; το && τότε η εντολή θα εκτελεστεί μόνο αν η προηγούμενη εκτελέστηκε σωστά.
    Αν θέλουμε να δούμε αν μια εντολή εκτελέστηκε σωστά τότε αμέσως μετά την εντολή εκτελούμε echo $?.
    Αν μας βγάλει μηδέν (0) τότε η εντολή που εκτελέσαμε εκτελέστηκε χωρίς σφάλμα!Οποιοσδήποτε άλλος αριθμός σημαίνει οτι είχαμε σφάλμα.

  • Χρησιμοποιώντας την | pipe μπορούμε να στείλουμε την έξοδο μιας εντολής ως είσοδο της άλλης.
    Πχ με την ls -l ~ | grep Desktop θα πάρουμε το αποτέλεσμα της ls -l ~ και θα αναζητήσουμε σε αυτό μόνο την γραμμή με την λέξη Desktop.
    Αν υπάρχει θα δούμε κάτι τέτοιο drwxr-xr-x 2 asdf asdf 4096 2008-06-23 00:17 Desktop .

  • Αυτάκια " " , ' ' , ``
    Το καθένα παίζει τον ρόλο του δίνοντας διαφορετικό αποτέλεσμα. Ας το δούμε με ένα παράδειγμα...
    #Εκχωρούμε στην μεταβλητή tmp την τιμή "ls /"
    asdf@laptoplinux:~$ tmp="ls /"

    #Εμφανίζουμε το περιεχόμενο της tmp χρησιμοποιώντας " "
    #Παρατηρούμε ότι μας επιστρέφει την τιμή της tmp

    asdf@laptoplinux:~$ echo "$tmp"
    ls /

    #Εμφανίζουμε το περιεχόμενο της tmp χρησιμοποιώντας ' '
    #Παρατηρούμε ότι μας επιστρέφει ακριβώς την συμβολοσειρά που του είπαμε να εκτυπώσει

    asdf@laptoplinux:~$ echo '$tmp'
    $tmp

    #Εμφανίζουμε το περιεχόμενο της tmp χρησιμοποιώντας ` `
    #Παρατηρούμε ότι μας επιστρέφει το αποτέλεσμα της εκτέλεσης της εντολής που δώσαμε ως τιμή στην μεταβλητή tmp

    asdf@laptoplinux:~$ echo `$tmp`
    bin boot cdrom dev etc home initrd.img initrd.img.old lib lib32 lib64 lost+found man1 media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old



Πλοήγηση στους καταλόγους με το τερματικό
Όπως είπαμε αρχικά ο αρχικός κατάλογος που βρισκόμαστε μόλις ανοίξουμε το τερματικό είναι αυτό του home του user μας που συμβολίζεται με ~.
Αν θέλουμε να δούμε ποιο είναι το path(διαδρομή) που βρισκόμαστε τότε εκτελούμε την εντολή pwd.
Για να δείτε μια λίστα των αρχείων και των καταλόγων μέσα στον τρέχοντα κατάλογό σας, εκτελέστε την εντολή ls. Αν θέλετε να ανεβείτε ένα επίπεδο πάνω στο δένδρο των καταλόγων γράφετε cd .. (προσοχή, ανάμεσα στο cd και στις δύο τελείες υπάρχει ένα διάστημα). Αν θέλετε να κατεβείτε σε ένα υπο-κατάλογο γράφετε cd NAME όπου NAME είναι το όνομα του υπο-καταλόγου που θέλετε να μεταβείτε. Παράδειγμα: αν ο asdf βρίσκεται στον οικείο του κατάλογο και αν εκτελέσει pwd θα δεί στην οθόνη κάτι σαν /home/asdf. Έστω οτι εκτελεί την ls και μεταξύ των άλλων καταλόγων υπάρχει και ένας κατάλογος test. Για να μεταβεί σε αυτό γράφει cd test. Αν τώρα γράψει pwd θα δεί στην οθόνη κάτι σαν /home/asdf/test. Αν θέλει να επιστρέψει πίσω θα γράψει cd .. . Αν ποτέ χάσει το δρόμο του γράφει cd ~ και θα επιστρέψει στον οικείο κατάλογό του.
Προσοχή:Αν θέλουμε να πλοηγηθούμε σε κάποιον κατάλογο που στο όνομά σου έχει κάποιο ειδικό χαρακτήρα (όπως ένα κενό) τότε θα πρέπει πριν τον χαρακτήρα αυτόν να βάλουμε ένα \ ( Πχ: cd /home/asdf/Επιφάνεια\ εργασίας ).



Δικαιώματα διαχειριστή
Για να κάνουμε κάποια σημαντική παρέμβαση στο σύστημά μας ή να διαβάσουμε/τροποποιήσουμε κάποιο αρχείο το οποίο προστατεύετε με κάποια εντολή/πρόγραμμα θα πρέπει να την εκτελέσουμε με δικαιώματα διαχειριστή (ή αλλιώς root ή αλλιώς su (super user) ) καθώς σαν απλούς user το σύστημα δεν θα μας το επιτρέψει εμφανίζοντας κάποιο προειδοποιητικό μήνυμα.
Για να γίνει αυτό θα πρέπει πριν απο την εντολή που θέλουμε να εκτελέσουμε να βάλουμε την εντολή sudo (super user do) η οποία θα μας ζητήσει να βάλουμε τον κωδικό του διαχειριστή μας.
Αυτό που θα πρέπει να γράψουμε δηλαδή θα είναι κάπως έτσι: sudo <εντολή>
(αν θέλουμε για παράδειγμα να εκτελέσουμε την εντολή ls ως super user τότε εκτελούμε: sudo ls)
Προσοχή: Όταν εισάγουμε τον κωδικό δεν βλέπουμε ούτε ****** ούτε χαρακτήρες για λόγους ασφαλείας.



Εντολές διαχείρισης αρχείων
ls παρουσίαση των αρχείων ενός φακέλου
ls -al προσαρμοσμένη παρουσίαση των αρχείων ενός φακέλου με τα κρυφά αρχεία
cd dir αλλαγή του ενεργού φακέλου στο φάκελο dir
cd αλλαγή ενεργού φακέλου στο φάκελο home
pwd εμφάνιση του ενεργού φακέλου
mkdir dir δημιουργία φακέλου με το όνομα dir
rmdir διαγραφή του φακέλου dir (Προσοχή στη χρήση της με sudo)
rm file διαγραφή του αρχείου file
rm -r dir διαγραφή του φακέλου dir (Προσοχή στη χρήση της με sudo)
rm -f file αναγκαστική διαγραφή του αρχείου file (Προσοχή στη χρήση της με sudo)
rm -rf dir αναγκαστική διαγραφή του φακέλου dir (ΜΕΓΑΛΗ Προσοχή στη χρήση της με sudo)
cp file1 file2 αντιγραφή του αρχείου file1 στο αρχείο file2
cp -r dir1 dir2 αντιγραφή του φακέλου dir1 στο φάκελο dir2, εάν ο φάκελος dir2 δεν υπάρχει τον δημιουργεί
mv file1 file2 μετονομασία ή μεταφορά αρχείου file1 στο file2, αν το file2 είναι υπαρκτός φάκελος τότε μεταφέρεται το file1 στο φάκελο file2
ln -s file link δημιουργία συμβολικού συνδέσμου link στο αρχείο file
touch file δημιουργία ή ανανέωση του αρχείου file
cat > file τοποθέτηση της στάνταρ είσοδου στο αρχείο file
more file εμφάνιση των περιεχόμενων του αρχείου file
head file εμφάνιση των 10 πρώτων γραμμών του αρχείου file
tail file εμφάνιση των 10 τελευταίων γραμμών του αρχείου file
tail -f file εμφάνιση των περιεχομένων του αρχείου file καθώς αυτό μεγαλώνει αρχίζοντας από τις 10 τελευταίες γραμμές



Προγράμματα που τρέχουν στο τερματικό
vi επεξεργαστής κειμένου
nano επεξεργαστής κειμένου (ευκολότερος αλλά πιο απλός απο τον vi)
links εναλλακτικός character mode WWW browser
sed stream editor για φιλτράρισμα και μεταφορά κειμένου (Τα πάντα όλα!)



Διαχείριση διεργασιών
ps εμφάνιση των ενεργών διεργασιών του χρήστη σας τη παρούσα στιγμή
top εμφάνιση όλων των τρεχουσών διεργασιών
kill pid σκότωμα της διεργασίας με pid pid
killall proc σκότωμα της διεργασίας με όνομα proc
bg δημιουργία μιας λίστας με όλες τις διεργασίες που έχουν σταματήσει ή των εργασιών που είναι στο background, επανεκκίνηση εργασιών στο background
fg φέρνει την πλέον πρόσφατη εργασία στο foreground
fg n φέρνει την εργασία n στο foreground



Αναζήτηση
grep pattern files αναζήτηση ενός όρου pattern στα αρχεία files
grep – r pattern dir αναζήτηση ενός όρου pattern στο φάκελο dir
command | greep pattern αναζήτηση ενός όρου pattern στην έξοδο της εντολής command
locate file εντοπισμός όλων των υφιστάμενων αντιγράφων ενός αρχείου
find dir -name florina -print αναζητεί στον κατάλογο dir ένα αρχείο με το όνομα florina (επιλογή -name) και το εμφανίζει στην οθόνη (επιλογή -print)



Πληροφορίες συστήματος
date εμφάνιση της τρέχουσας ώρας και ημέρας στο σύστημα
cal εμφάνιση ημερολογίου για τον τρέχον μήνα
uptime εμφάνιση του χρόνου που λειτουργεί το μηχάνημα
w εμφάνιση των χρηστών που είναι συνδεδεμένοι
whoami εμφάνιση του ονόματος χρήστη (username) σας
finger user εμφάνιση πληροφοριών για το χρήστη user
uname -a εμφάνιση έκδοσης του πυρήνα
cat /proc/cpuinfo εμφάνιση πληροφοριών κεντρικής μονάδας επεξεργασίας
cat /proc/meminfo εμφάνιση πληροφοριών μνήμης
df εμφάνιση χρήσης δίσκων σε χωρητικότητα
du εμφάνιση χρήσης χώρου των υποφακέλων του τρέχοντος φάκελου
free εμφάνιση χρήσης μνήμης και swap
whereis app εμφάνιση πιθανών τοποθεσιών ενός εκτελέσιμου app
which app εμφάνιση του ακριβούς εκτελέσιμου app που καλεί το σύστημα
lsusb εμφάνιση συσκευών usb
lspci -nn εμφάνιση συσκευών pci
lshw εμφάνιση όλου του hardware



Δικτύωση
ping host διεξαγωγή ping σε ένα εξυπηρετητή host και εμφάνιση αποτελέσματος
whois domain λήψη πληροφοριών whois για ένα domain
dig domain λήψη πληροφοριών DNS για ένα domain
dig -x host ανάστροφη εμφάνιση πληροφοριών ενός host
wget file κατέβασμα ενός αρχείου file
wget -c file συνέχιση ενός κατεβάσματος
ifconfig μπορούμε να δούμε τα δικτυακά μας interface αλλά και να τα τροποποιήσουμε
iwconfig μπορούμε να δούμε τα ασύρματα δικτυακά μας interface αλλά και να τα τροποποιήσουμε



Εγκατάσταση προγραμμάτων
Δείτε στον οδηγό Πως να εγκαταστήσετε προγράμματα στο (k)ubuntu!!! την παράγραφο Εγκατάσταση λογισμικού από το τερματικό



Δικαιώματα αρχείων
chmod octal file αλλαγή των δικαιώματων του αρχείου file σε octal, το
octal είναι ένα τριψήφιο νούμερο που κάθενα από τα ψηφία του
συμβολίζει ξεχωριστά το χρήστη,το group, και με πρόσθεση των
ακόλουθων
* 4 ανάγνωση (r)
* 2 γραφή (w)
* 1 εκτέλεση (x)
παραδείγματα
chmod 777 – δικαιώματα rwx για όλους
chmod 755 – δικαιώματα rwx για τον ιδιοκτήτη,rx για το group και για όλους (περισσότερες οδηγίες θα βρείτε με την εντολή man chmod)
Επίσης δείτε και την chown για την αλλαγή ιδιοκτήτη του αρχείου.



Συντομεύσεις
Ctrl+C παύση της τρέχουσας εντολής
Ctrl+Z σταμάτημα της τρέχουσας εντολής, επανέναρξη με fg για το foreground ή bg για το background
Ctrl+W διαγραφή μιας λέξης στη τρέχουσα γραμμή
Ctrl+U διαγραφή ολόκληρης της γραμμής
Ctrl+R πρόσφατες εντολές
!! εκτέλεση τελευταίας εντολής
exit ή Ctrl+D έξοδος από την παρούσα συνεδρία



Shell Scripts
Όλες οι εντολές που υπάρχουν είναι δυνατόν να τοποθετηθούν σε ένα αρχείο ("κειμένου") που ονομάζεται shell script.
Το Αρχείο αυτό θα πρέπει να έχει στο περιεχόμενό του την δομή:
Κώδικας: Επιλογή όλων
#!/bin/bash
# Comments ... Comments ...
code
.
.
.
code

Η πρώτη γραμμή (#!/bin/bash) είναι υποχρεωτική.
Όσες γραμμές ξεκινάνε με # εκτός της πρώτης εκλαμβάνονται ως σχόλια.
Κάνοντας μια αναζήτηση στο διαδίκτυο θα βρούμε πάμπολλους οδηγούς για τη δημιουργία
και τις δυνατότητες των Shell Scripts.
Η συνήθης κατάληξη που δίνουμε σε ένα αρχείο shell script είναι .sh.
Για να μπορέσουμε να εκτελέσουμε ένα shell script θα πρέπει πρώτα να του δώσουμε
δικαιώματα εκτέλεσης όπως βλέπουμε εδώ:
Κώδικας: Επιλογή όλων
chmod +x filename.sh

Για να το εκτελέσουμε θα πρέπει να δώσουμε στο τερματικό την πλήρη διαδρομή του αρχείου ή κάνοντας πλοήγηση και μεταφερόμενοι στο κατάλογο που το έχουμε τοποθετήσει εκτελούμε:
Κώδικας: Επιλογή όλων
./filename.sh

Αν πάλι θέλουμε να εκτελούμε το shell script ανά πάσα στιγμή, δίνοντας απλά το όνομά του, τότε
θα πρέπει να το τοποθετήσουμε μέσα σε κάποιο κατάλογο που περιέχεται στο PATH (βλ. παραπάνω Γενικά - Tips).
Προσοχή! Το να τροποποιήσουμε το PATH προσθέτοντας τον κατάλογο που περιέχεται
το shell script μας είναι πάλι μια λύση, αλλά επικίνδυνη αν το τοποθετήσουμε σε λάθος σειρά...και καλό είναι να μην την προτιμήσουμε όντας αρχάριοι.



Απαγορευμένες Εντολές
ΠΟΤΕ μα ΠΟΤΕ μην εκτελέσετε τις παρακάτω εντολές:
  • Κώδικας: Επιλογή όλων
    :(){ :|:& };:
    Αυτήν είναι μία Fork Bomb.Το σύστημα crashάρει και κολλάει.Μόνο hard reset σώζει την κατάσταση...αλλά είναι επικίνδυνο για το filesystem να γίνετε και υπάρχει κίνδυνος απώλειας δεδομένων. :evil: :evil: :evil:
    --------------------

  • Κώδικας: Επιλογή όλων
    sudo rm -rf /
    ή
    rm -rf /
    Εντολή εξαναγκασμένης διαγραφής του / χωρίς προειδοποίηση. Διαγραφή ΌΛΩΝ των αρχείων του συστήματος, δηλαδή χάσιμο ΌΛΩΝ των δεδομένων ΚΑΙ της εγκατάστασης. :twisted: :twisted: :twisted:
    --------------------

  • Κώδικας: Επιλογή όλων
    rm -rf .
    rm -rf *
    rm -rf .* *
    rm -r .*
    rm -rf <κάτι>
    rm -r <κάτι>
    Προσοχή επίσης και στις παραπάνω εντολές (ή σε παρόμοιες), μπορεί να διαγράψουν πράγματα που δεν θέλετε.Ακόμα και το ίδιο το σύστημα.Ακόμα και αν γνωρίζετε τι κάνουν, σκεφτείτε καλά για το αποτέλεσμά τους, γιατί ακόμα και ένα λαθάκι λόγο κεκτημένης ταχύτητας μπορεί να αποβεί μοιραίο.Αν δεν γνωρίζετε τι πρόκειται να κάνουν αποφύγετε τη χρήση τους. :evil: :twisted: :evil:





Περισσότερες εντολές και τις παραμέτρους τους μπορούμε να βρούμε στον παγκόσμιο ιστό χρησιμοποιώντας
κάποια μηχανή αναζήτησης ή όπως αναφέραμε πιο πριν με την εντολή "man"!


Επίσης εδώ (http://www.linuxguide.it/command_line/l ... ds_gr.html) θα βρείτε αρκετές εντολές με Ελληνική περιγραφή.





------------------Τ---Ε---Λ---Ο---Σ-----------------


Βασική πηγή του παραπάνω οδηγού ήτανε οι οδηγοί που βρίσκονται εδώ (http://www.it.uom.gr/teaching/linux/)
Αν θέλετε να συμπληρώσετε κάτι ή έχετε κάποια απορία ή ένσταση παρακαλώ να το πείτε ώστε να γίνει ακόμα καλύτερος ο οδηγός...



Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό zafkos » 12 Αύγ 2008, 00:09

Από μια αρχάρια, μη εξοικειωμένη με το τερματικό ακόμα, αλλά λάτρη του Σκληροτράχηλου Ερωδιού: να αγιάσουν τα χεράκια σου! :D

Τέλεια κι εξαιρετικά χρήσιμη δημοσίευση!
zafkos
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 11 Αύγ 2008, 23:48
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό ftso » 12 Αύγ 2008, 00:30

zafkos έγραψε:Από μια αρχάρια, μη εξοικειωμένη με το τερματικό ακόμα, αλλά λάτρη του Σκληροτράχηλου Ερωδιού: να αγιάσουν τα χεράκια σου! :D

Τέλεια κι εξαιρετικά χρήσιμη δημοσίευση!


Αυτός ήτανε ο σκοπός που το έγραψα και χαίρομαι που επιβεβαιώνεις την αποτελεσματικότητά του. :D
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό headless » 12 Αύγ 2008, 00:37

Πολύ καλός οδηγός,μπράβο ftso!
Γνώσεις ⇛ Linux: Καλές ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Καλά
Λειτουργικό: debian wheezy/sid 64-bit (en_US.utf8)
Προδιαγραφές ⇛ CPU: 2x Intel Core2 Duo CPU E8400 3.00GHz │ RAM 3965 MiB │ ASUS INC. P5QL/EPU
Κάρτα γραφικών: nVidia GF104 [GeForce GTX 460] [10de:0e22]
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168]
My Blog
Άβαταρ μέλους
headless
powerTUX
powerTUX
 
Δημοσιεύσεις: 2173
Εγγραφή: 14 Μάιος 2008, 17:30
Τοποθεσία: Αθήνα
Launchpad: headl3ss
IRC: h3adl3ss
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό orfeas » 12 Αύγ 2008, 19:37

thnx! polu me boithise! eimai akoma arxarios.
Άβαταρ μέλους
orfeas
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 12 Αύγ 2008, 15:14
Τοποθεσία: giannitsa
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό taratatzoum » 17 Σεπ 2008, 10:27

Υπάρχει άλλος ένας πολύ καλός οδηγός για unix από τον manoli kiagia
μπορείτε να τον κατεβάσετε απο εδώ
υπάρχει στο ελληνικό site του freebsdgr.org.
Ιστολόγιο
1 Γνώσεις → Linux: Προχωρημένος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Λειτουργικό → Slackware 13.37.0 64-bit (el_GR.utf-8)
3 Προδιαγραφές → CPU: 8x Intel Core i7 CPU Q 740 1.73GHz ‖ RAM 3894 MiB ‖ Dell Inc. - Dell Inc. Inspiron N5010
4 Κάρτες γραφικών: ATI Redwood [Radeon HD 5600 Series] ⎨1002:68c1⎬
5 Δίκτυα: wlan0: Broadcom BCM4313 802.11b/g/n Wireless LAN Controller ⎨14e4:4727⎬ ⋮ eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller ⎨10ec:8136⎬
taratatzoum
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 849
Εγγραφή: 10 Μάιος 2008, 20:29
Τοποθεσία: Χανιά
Launchpad: rizitis
IRC: rizitis or rtz
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό bullgr » 17 Σεπ 2008, 10:29

Μπράβο @ftso... :mrgreen:
ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΠΕΣΕΙΣ, ΕΠΙΒΑΛΛΕΤΑΙ ΝΑ ΣΗΚΩΘΕΙΣ... HASTA SIEMPRE...
Άβαταρ μέλους
bullgr
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 1853
Εγγραφή: 10 Μάιος 2008, 21:45
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό g00fy » 24 Σεπ 2008, 14:41

Θα ήθελα κι εγώ να προσθέσω μία μικρή επεξήγηση για το οκταδικό σύστημα στην εντολή chmod.

Όπως αναφέρθηκε πριν η εντολή στηρίζεται στο οκταδικό και όχι στο δεκαδικό σύστημα. Όταν γράφουμε π.χ. chmod 776 ο αριθμός αυτός λέει στο Λ/Σ άλλαξε τις ιδιότητες του τάδε αρχείου σε r(ead) w(rite) e(x)ecute για τον ιδιοκτήτη, το ίδιο για το group και read write για τους άλλους.. Πως μεταφράζεται αυτό.
Ξεκινώντας θα το δούμε από το δυαδικό σύστημα

Chmod 111 111 110

Βλέπουμε τρείς δυαδικούς αριθμούς των τριών ψηφίων. Κάθε ψηφίο αντιστοιχεί στις ιδιότητες που θέλουμε να δώσουμε στις τρεις ομάδες (read, write, execute). Με 1 επιβεβαιώνουμε, με 0 αφαιρούμε.

Η μετατροπή γίνεται ως εξής Στο οκταδικό ξεκινούμε από 0 μέχρι 7 έτσι στα τρία ψηφία π.χ. 110 μετράμε από δεξιά προς αριστερά 1 2 4. Μηδέν είναι άκυρο έτσι δεν το μετράμε, οπότε 0. Το 1 είναι έγκυρο, άρα 2. Το τέρμα αριστερά 1 είναι έγκυρο, άρα 4. Οπότε έχουμε 0 + 2 + 4 = 6 octal

Αν θέλουμε να δώσουμε μόνο ανάγνωση έχουμε 100. Δεξιό 0 = 0, μεσαίο 0 = 0, αριστερό 1 = 4, οπότε 4+0+0 = 4 octal . Αν έχουμε chmod 100 100 100 = chmod 444 = r για owner, r για group, read για others.

Ελπίζω να βοήθησα λίγο στο θέμα της εντολής αυτής και το πόσο όμορφα συμβαδίζει το Linux με τα μαθηματικά και του αριθμούς των υπολογιστών. ;)
Η/Υ: Intel Pentium DualCore / 2GB RAM / nVidia Geforce 8400GS / Ubuntu 10.04 64bit
Η/Υ: Toshiba Tecra R10-10S / Ubuntu 9.10 64bit

motd: May the source be with you!
g00fy@ubuntu-gr.org:~$ cat /etc/γνώσεις.conf
Linux:kuru (όχι guru) / Προγραμματισμός:Ναί / Αγγλικά:Καλά
Άβαταρ μέλους
g00fy
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 614
Εγγραφή: 12 Σεπ 2008, 18:58
Τοποθεσία: Σε όλη τη Μακεδονία!
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό ftso » 25 Σεπ 2008, 00:03

Πολύ καλό.
Πιο πολλές λεπτομέρειες για το θέμα υπάρχουν στον οδηγό εδώ (viewtopic.php?f=9&t=906)

g00fy έγραψε:...
Η μετατροπή γίνεται ως εξής Στο οκταδικό ξεκινούμε από 0 μέχρι 7 έτσι στα τρία ψηφία π.χ. 110 μετράμε από δεξιά προς αριστερά 1 2 4. Μηδέν είναι άκυρο έτσι δεν το μετράμε, οπότε 0. Το 1 είναι έγκυρο, άρα 2. Το τέρμα αριστερά 1 είναι έγκυρο, άρα 4. Οπότε έχουμε 0 + 2 + 4 = 6 octal
...


Εξηγώ λίγο περισσότερο την μετατροπή (η οποία δεν απέχει πολύ απο αυτήν του δυαδικού σε δεκαδικό) απλά για εγκυκλοπαιδική γνώση...
Έχουμε όπως είδαμε τρία ψηφία (0 ή 1) στη σειρά τα οποία ανα τριάδες μπορούν να πάρουν 8 διαφορετικές μορφές...
000,001,010,011,100,101,110,111
0,1,2,3,4,5,6,7

Αν πάρουμε τυχαία τον αριθμό 011 τότε για να δούμε ποίος οκταδικός είναι τότε κάνουμε την εξής πράξη:
0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 3 octal (^=ύψωση σε δύναμη)
Δηλαδή ξεκινώντας απο προς τα αριστερά , πολλαπλασιάζουμε τον κάθε αριθμό με δυνάμεις του 2 ξεκινώντας απο το μηδέν και αυξάνοντας όσο πάμε δεξιά κατα ένα.

Υπάρχουν 10 ήδη ανθρώπων! Αυτοί που καταλαβαίνουν το δυαδικό σύστημα και αυτοί που δεν το καταλαβαίνουν ! :lol:

Αυτά :)
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Τερματικό για...αρχάριους!

Δημοσίευσηαπό jimis86 » 28 Οκτ 2008, 19:48

ευχαριστω πολυ καλο βοηθημα για noobakia σαν εμενα.. :P
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Ubuntu 8.4 32bit
jimis86
babeTUX
babeTUX
 
Δημοσιεύσεις: 56
Εγγραφή: 23 Οκτ 2008, 20:33
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials

Μέλη σε σύνδεση

Μέλη σε αυτή τη Δ. Συζήτηση: Google [Bot] και 4 επισκέπτες