===============================================================================================================
Θα αναφερθώ μονο σε 2 αρχεία σε αυτο το σημείο τα οποια ειναι το μεν ενα
- Κώδικας: Επιλογή όλων
/etc/network/interfaces
και το δε αλλο
- Κώδικας: Επιλογή όλων
/etc/resolv.conf
αυτα τα αρχεία λοιπον βρίσκονται κατω απο τον "ει τι σί" και ακριβως εκει πρεπει να βρίσκονται τουλαχιστον στην διανομή μας

ένα αρχείο μπορει κάποιος να το πεί είτε απευθειας με το τελικό του όνομα (μεσα απο το path) δηλαδη interfaces ή resolv.conf είτε να παραθέσει ολο του το path οπως κανουμε και εμεις εδω και στις 2 περιπτώσεις ειναι σωστος και αυτα αποτελουν τα στοιχειωδη των αρχειων οπως και επισης οτι ενα αρχειο ειναι ενα αρχειο δίσκου διοτι η αποθηκευση του ειναι μονιμη!
Καποιες φορες μπορει να υπάρξει προβλημα στο συστημα μας (χωρις να υπάρχει προβλημα με το δικτυο) οταν το 1ο αρχειο πχ ειναι κενό. Επομένως ειναι συνετο να το συμπληρώνουμε με τις τιμές που χρειάζεται! Εκτός αυτού στο αρχείο αυτο μπορούμε να διαμορφώσουμε μια στατική IP για το διαδικτυακο μας interface. Το 1ο λοιπον αρχείο (interfaces) έχει τεκμηρίωση την οποια μπορούμε να δούμε αν απο το τερματικό δώσουμε την εντολή
- Κώδικας: Επιλογή όλων
man interfaces // manual for interfaces
Για να βγούμε απο το manual πληκτρολογούμε μια φορα το "q" απο το πληκτρολογιο μας (quit).
Πάμε τωρα να εξετάσουμε αυτο το αρχείο . Καταρχην για να μπορέσουμε να το δούμε θα πρέπει να δώσουμε την γνωστή εντολή
- Κώδικας: Επιλογή όλων
cat
αλλα εστω το σενάριο το οποίο λεει πως ξεχάσαμε το path του αρχείου και βρισκόμαστε μεσα στον home μας.(1ο μη ευνοικό σενάριο)
- Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ cat interfaces
cat: interfaces: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
οπως βλεπετε δεν δουλεύει αυτο :/ , για αυτο μπορούμε να σκεφτούμε κατι πιο πρακτικό. Να χρησιμοποιήσουμε πχ την εντολή
- Κώδικας: Επιλογή όλων
locate interfaces // ψάχνει για την τοποθεσία ενος αρχείου
αυτη η εντολή βγάζει μεγαααάλη έξοδο... και πραγματικά
- Κώδικας: Επιλογή όλων
locate interfaces | wc -l //Το wc υπολογίζει τις γραμμες (με παράμετρο -l => line)
90
90 αρχεία....τρέχα γύρευε δηλαδη! Ουτε αυτο λοιπον μας κάνει... αν σκεφτούμε λιγο πιο ανοιχτα εκεινο που ψάχνουμε ειναι το interface αλλα οχι ενα απλο αλλα εκείνο του δικτύου επομένως αν βάλουμε και την grep στο παιχνίδι ισως η ζωη μας αλλαξει.... προς το καλύτερο

- Κώδικας: Επιλογή όλων
locate interfaces | grep network // Η grep ψάχνει ενα πρότυπο το οποιο θα της δώσεις
σαν όρισμα πχ μια λέξη και στην δείχνει με κόκκινα γράμματα
- Κώδικας: Επιλογή όλων
/etc/network/interfaces
/usr/share/doc/ifupdown/examples/network-interfaces.gz
Ωπ! ΑΥτη ειναι μια έξοδος που μου κάνει!!! Για να δω το αρχείο
- Κώδικας: Επιλογή όλων
/usr/share/doc/ifupdown/examples/network-interfaces.gz
τι ειδους αρχειο ειναι (αν δεν θυμαμαι την καταλήξη του) θα δωσω την εντολή
- Κώδικας: Επιλογή όλων
file /usr/share/doc/ifupdown/examples/network-interfaces.gz/usr/share/doc/ifupdown/examples/network-interfaces.gz: gzip compressed data, from Unix, max compression
Η οποια και μου λεει πως ειναι ενα συμπιεσμένο αρχείο που επι της παρούσης δεν μου κάνει και έτσι έμεινε λοιπον το αρχειο
- Κώδικας: Επιλογή όλων
/etc/network/interfaces
το ανοίγω με
- Κώδικας: Επιλογή όλων
cat /etc/network/interfaces
ή
- Κώδικας: Επιλογή όλων
cat -n /etc/network/interfaces
ΣΤην 1η περίπτωση απλα παίρνω το αρχείο οπως ειναι... ενω στην 2η δίνεται αριθμημένο ως προς τις γραμμες του.. το flag -n δηλαδη σαν ορισμα στο προγραμμα - εντολη cat κάνει πιο τακτοποιημενη δουλεια.
Επομενως με την 2η εντολη θα έχω
- Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ cat -n /etc/network/interfaces
1 auto lo
2 iface lo inet loopback
3
4 iface eth0 inet static
5
6 address 192.168.1.90
7 netmask 255.255.255.0
8 gateway 192.168.1.254
9
10 auto eth0
11
kostas@kostas-SSL:~$
ΑΝ το αρχείο αυτο ηταν κενό τοτε οι εγγραφές του - οδηγίες - ντιρεκτίβες θα σταματούσαν ακριβως στην 2η γραμμη "iface lo inet loopback"
τον βρογχο loopback θα τον δούμε σε επομενες παρουσιασεις τι ειναι. Αν δεν ειναι γεμάτο επομενως στην δικη σας διανομη μπορείτε να το γεμίσετε συμφωνα με αυτο το πρότυπο και βάζοντας τα πεδία
το 1ο ειναι :
- Κώδικας: Επιλογή όλων
address => Personal Computer IP
σε περίπτωση που δεν ξερετε την IP του υπολογιστή σας μπορείτε να δώσετε την εντολη
- Κώδικας: Επιλογή όλων
ifconfig | grep in
to 2o πεδίο είναι :
- Κώδικας: Επιλογή όλων
netmask => Μάσκα δικτύου //
Έχουμε μιλήσει αρκετά για αυτές στο 2ο μάθημα λογικα το τοπικο σας δίκτυο θα ειναι δίκτυο κλάσης C αρα θα θυμάστε απεξω πως η μάσκα για δίκτυα κλάσης C θα είναι 255.255.255.0 αν δεν την θυμάστε ή δεν εχετε διαβάσει τους οδηγούς μπορείτε παλι με (σχεδόν) ισοδύναμη εντολή να την βρείτε
- Κώδικας: Επιλογή όλων
ifconfig | grep Mask
Και τέλος το 3ο και τελευταίο πεδίο είναι το
- Κώδικας: Επιλογή όλων
gateway // Προκαθορισμένη πύλη δικτύου // το ρουτεράκι μας
Αυτο μπορείτε να το βρείτε απο την εντολή
- Κώδικας: Επιλογή όλων
route -n
Τωρα ας υποθέσουμε ένα δευτερο (μη ευνοικό) παλι σενάριο... Ας υποθέσουμε λοιπον πως πρέπει να χειριστούμε ένα αρχείο δικτύου στο οποίο οι εγγραφές είναι πολλων γραμμων πχ 500. Τι μπορούμε να κάνουμε σε ένα αρχείο το οποίο διαθέτει 500 γραμμές και θέλουμε να κάνουμε μια εγγραφή ακριβώς στην 330η γραμμή? Εδω τα χέρια έρχεται να μας λύσει πραγματικά ο επεξεργαστής vi και οχι ο emacs επειδη κάνω εμπάργκο στον Stallman

Τον vi τις πιο πολλες φορες θα τον δειτε και σαν vim. Και ειναι ενας σχετικα "απομακρος" επεξεργαστής κειμένου που ομως αν εξοικειωθείς μαζι του κάνει πραγματικα θαύματα και υπάρχουν ακριβώς εντολές οι οποίες σε πάνε στην γραμμή που θέλεις ακριβως για να κάνεις την συγκεκριμένη εγγραφή οπως στο παραπάνω παράδειγμα οπου σε ένα πραγματικά μεγάλο αρχείο δίσκου 500 γραμμών πηγαίνεις ακριβώς στην 330η γραμμή για να κάνεις αυτο που θέλεις!!!!
Φυσικα η εκμάθηση του vi ειναι ενα κεφάλαιο απο μονη της στο bash αλλα εδω θα πω μερικά απλά πραγματα που μπορει να κάνει κάποιος και οποιος θέλει περισσότερες πληροφοριες μπορει να ανατρέξει στο manul του vi.
ΠΡΟΣΟΧΗ!!! Πριν κάνετε εφαρμογή στον vi σε κάποιο αρχείο δικτύου ή κρατηστε οπωςσδήποτε ενα backup σαν στοιχειώδη μέριμνα για την ακρεαιότητα του συστηματός σας. Είτε κάντε πρώτα προεργασία σε κάποιο τυχαίο και ελάσσονος σημασίας αρχείο στον προσωπικό σας κατάλογο. Πάμε τωρα να ανοίξουμε το αρχείο interfaces με τον vi και μάλιστα για εγγραφή στην γραμμή 6 πχ. (αλλαγή) έστω οτι το 90 θέλω να το κάνω 95 στην τελευταία οκτάδα της IP διεύθυνσης. Ανοίγω στο αρχείο με
- Κώδικας: Επιλογή όλων
sudo vi /etc/network/interfaces
με sudo διοτι το αρχείο αυτο βρίσκεται σε έναν απο τους βασικούς καταλόγους του συστήματος κατω απο τον γονικό (/) .
Το πρώτο λοιπον βήμα ήταν το παραπάνω (άλλωστε οτιδηποτε κάνουμε με ένα αρχείο πάντα προηγείται η διαδικασία του να το ανοίξουμε)
Σε ένα μεγάαααλο αρχείο οπως είπα και πριν ειναι πρωτα συνετό να δώσουμε την εντολή cat -n ωστε να πάρουμε μια αριθμημένη του εκδοχή και ακομα καλύτερα μπορούμε να δώσουμε την εντολή
- Κώδικας: Επιλογή όλων
cat -n <filename> | grep <προτυπο>
Ωστε να εκμεταλευτούμε στο έπακρο τις δυνατότητες του vi μετέπειτα...
Πχ μπορω να γνωρίζω εξαρχής την γραμμή στην οποία θέλω να κάνω εγγραφη στην IP μου επομενως
συμφωνα με τα παραπανω
- Κώδικας: Επιλογή όλων
cat -n /etc/network/interfaces | grep address
6 address 192.168.1.90
Τέλεια γραμμή 6 λοιπόν!
Επομένως το ανοικτό αρχείο μέσω του vi (μετα το άνοιγμα του με την εντολή sudo vi....) θα έχει την εξής μορφή
- Κώδικας: Επιλογή όλων
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.90
netmask 255.255.255.0
gateway 192.168.1.254
auto eth0
~
~
~
~
"/etc/network/interfaces" 11 lines, 134 characters
To αρχείο αυτο δεν ειναι αριθμημένο αλλα εγω γνωρίζω οτι την εγγραφή θελω να την κάνω στην γραμμή 6 (σε ένα πολυ μεγάλο αρχείο αυτο θα ηταν σωτήριο) καθως θα βλέπαμε μονο την αρχή του εδω... και οχι πχ την 330η γραμμη που θα θέλαμε.
Τώρα θα κάνω 4 πράγματα τα οποία θα αριθμήσω σε βήματα για να μην χαθούμε.
- Κώδικας: Επιλογή όλων
Βήμα 1 => Πατάω μια φορα Escape (Tωρα πλεον ειμαι σε κατάσταση εντολών)
Βήμα 2 => Έχω ενεργοποιήσει τα κεφαλαία απο το keyboard και δινω τον αριθμό της γραμμης (6 σε αυτη την περίπτωση 330 σε μια αλλη κτλπ)
και παταω το G απο το πληκτρολόγιο
Βήμα 3 => Πατάω Escape για να βρεθώ απο κατάσταση εντολών σε κατάσταση εισαγωγής του vi και στην συνέχεια πατάω i => insert εισαγωγή (αφου βέβαια πριν απο αυτο και ενω ημουν σε κατασταση εντολων έχω πάει στην ακριβή θέση με τα βελάκια πανω , κατω , αριστερά και δεξιά οπου θέλω να κάνω την εγγραφή.
Βήμα 4 => Κάνω την εγγραφή και αφου ειμαι έτοιμος πατάω shift + : και στην προοτροπη κατω κατω δίνω w για αποθήκευση του αρχείου και στην συνέχεια ξανα με shift + : δινω q αυτη τη φορά για να βγω τελείως απο το αρχείο
Τωρα επειδή πανω στην βιασύνη και επειδή ο vi ειναι μεν ενας ταχύτατος αλλα και ισχυρός επεξεργαστής κειμένου αλλα ειναι και εύκολος στους λάθους χειρισμούς τα λάθη ειναι αναπόφευχθα με ένα "u" στο σημείο του λάθους ολα επανέρχονται στην αρχική τους μορφη -φυσικα αυτο σε κατάσταση εντολών και οχι εισαγωγής-.

Περισσότερα για τον vi ο οποίος ειναι αρκετά χρήσιμος για διαχειριστές οι οποίοι δουλεύουν σε τερματικό και θέλουν ταχύτατα να κάνουν αλλαγές στα αρχεία τους μπορει κανείς να βρει και στο εγχειριδιό του
- Κώδικας: Επιλογή όλων
man vi
Το επόμενο μικρό αρχείο στο οποίο θα κάνουμε μια μικρή αναφορά ειναι το
- Κώδικας: Επιλογή όλων
/etc/resolv.conf
Απο την κατάληξη του μπορει κανεις να καταλάβει οτι και αυτο ειναι ουσιαστικά ενα αρχείο ρυθμίσεων! Σε αυτό το αρχείο μπορούμε να ρυθμίσουμε ποιος (name server) θα χρησιμοποιηθεί όταν γίνεται η επίλυση των ονομάτων απο hostnames σε IP διευθύνσεις αλλα και αντίστροφα.
Στο δικό μου σύστημα το αρχείο έχει μια εγγραφή της IP του ρούτερ μου ως nameserver (επιλυτής ονομάτων)
- Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ cat -n /etc/resolv.conf
1 # Generated by NetworkManager
2 domain lan
3 search lan
4 nameserver 192.168.1.254
kostas@kostas-SSL:~$
Για την διαδικασία της επίλυσης απο hostnames σε IP διευθύνσεις θα γίνει λόγος σε πιο πάνω επίπεδο του TCP/IP.


Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα