Monday 14 January 2008

Linux Terminal - Μάθημα 5ο - Καποιες εξτρα εντόλες

ln ->Δημιουργώντας Συντομεύσεις

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

Οι συντομευσείς μπορούν να δημιουργηθούν χρησιμοποιώντας την εντολή ln. Με την εντολή ln μπορούμε να κάνουμε και μαλακές (soft) και σκλήρες (hard) συντομεύσεις. Στη συνέχεια θα χρησιμοποιήσω την αγγλική ορολογία, γιατι θεωρώ τη μετάφραση τουλάχιστο γελοία. Η γενική σύνταξη της εντολής είναι ln [παραμέτροι] πηγή προορισμός . Για να φτίαξουμε μια soft συντόμευση χρησιμοποιούμε την παράμετρο -s. Αν δεν προσδιορίσουμε παράμετρο η συντόμευση είναι κατ' επιλογή hard. Ποια ακριβώς διαφορά έχουν τα δύο είδη συντομευσεών θα εξήγησουμε παρακάτω. Έστω λοίπον το εκτελέσιμο αρχείο /usr/games/pacman, έχουμε δικαίωμα προσβάσης στον κατάλογο /usr/games, άλλα βαρίομαστε να μπαινούμε συνέχεια στον κατάλογο αυτό ή να τρέxουμε την εντολή $/usr/games/pacman, για να παίξουμε. Ετσι θέλουμε να φτίαξουμε μια συντόμευση στον κατάλογο εργασίας μας /home/username/, και να τρέχούμε το παιχνίδι απο εκεί. Γραφούμε λοιπόν: $ln /usr/games/pacman /home/username/pacman και αυτή η εντολή δημιουργεί μια hard συντόμευση στο home καταλογο μας, δηλαδή μπορούμε πλέον να τρεχούμε το πρόγραμμα μοναχά με την εντολή $pacman. Αν είχαμε τρέξει την εντολή ln -s /usr/games/pacman /home/username/pacman θα είχαμε δημιουργήσει μια soft συντόμευση. Το πρακτικό αποτέλεσμα θα ηταν και στις δύο περιπτώσεις το ίδιο. Όμως η ουσιαστική διαφόρα της soft από την hard συντόμευση θα ήταν οτι η hard εξακολούθει να λειτουργεί ακόμα και αν σβηστεί το αρχίκο αρχείο, ενώ η soft όχι. Ουσιαστίκα δηλαδή η soft συντομεύση δημιουργεί ενα μίκρο αρχείο που δείχνει στο αρχίκο, ενώ η hard ένα καινούργιο ισομεγεθές αντίγραφο του αρχικού. Ουσιαστίκα οι hard συντομευσείς δεν δείχνουν απλά το αρχείο αλλά τα πραγματικά δεδομένα στον σκληρό δίσκο. Δηλαδή Το αρχικό αρχείο δεν είναι παρα μια hard συντόμευση σε κάποιο inode με δεδομένα που εφτίαξε το σύστημα γι εμά όταν δημιουργήσαμε τα δεδομένα.

Ευρεση Αρχείων ->Η εντολή find

Με τη εντολή find μπορούμε να βρούμε αρχεία που βρίσκονται κάπου στο σκλήρο δίσκο. Δίνουμε ως παραμέτρους τα αρχικά μονοπάτια αναζήτησης και τα κριτήρια που θελούμε να πλήρει το αρχείο, και η find, αργά άλλα σταθέρα το βρίσκει για έμας επιστέφοντας τα μονοπάτια και τα αρχεία που ταιρίαζουν στα κριτηρία αναζήτησης μας.

Η βασική σύνταξη της εντολής είναι: $ find μονοπάτια κριτηρία

πχ εντολή: $find /home/username /tmp -name "*.jpg"| print 
αποτέλεσμα:
/home/username/pamela01.jpg
/home/username/pamela02.jpg
/home/username/work/company_logo.jpg
/tmp/sunset.jpg
κτλ
Όπως καταλαβαίνετε η εντόλη αυτή (find) βρίσκει όλα τα αρχεία με κατάληξη *.jpg (-name "*.jpg") που υπαρχουν στους επιλεγμένους καταλόγους (/home/username και /tmp) και τους υποκαταλόγους τους. Υστέρα στέλνουμε το αποτέλεσμα για εμφάνιση στο τερματίκο (|print) ή όπου αλλού θέλουμε. Η τελεύταια παράμετρος (|print) δεν έχει να κάνει με καθεαυτή την εντολή, απλά ανακατευθύνουμε (βλέπε παρακάτω για pipes) την εξόδο στην οθόνη (μερίκες παλίες εκδόσεις της find δεν το έκαναν αυτό αυτομάτως).

Η find έχει υπερβολίκα πόλλες παραμέτρους, συμπεριλαμβανομένων και παραμέτρων για να βρούμε αρχεία με βάση την ώρα δημιουργίας ή την ώρα τελευταίας προσβάσεις. Επισής μπορούμε να εκτελέσουμε μια εντολή με ορισμάτα τα απότελέσματα της find. Αυτό γίνεται με την χρήση της παραμέτρου -exec.

πχ εντολή: $find /home/ -name "acc?.txt" -exec grep tuesday {} \;

Αυτή η εντολή ψάχνει για τα αρχεία acc?.txt (πχ acc1.txt, acca.txt κτλ) που βρισκόνται κάπου στο /home, και μόλις τα βρει εκτέλει την grep για καθένα από αυτά ψάχνοντας την συμβολοσειρά tuesday στο κείμενο τους. Οι {} αντικαθιστώνται από το όνομα του αρχείου που ταίριαζει στα κριτήρια της αναζήτησης, και στη σύνεχεια γίνεται όρισμα για την εντολή υπο εκτέλεση (εδώ την grep). Παρατηρήστε οτί στο τέλος της εντολής ύπαρχει ένα ; το οποίο υποδηλώνει το τέλος των υπόορισμάτων του ορισμάτος -exec. Για να αποτρέψουμε το κέλυφος από το να μεταφράσει το ; βαζούμε μπροστά του τον χαρακτήρα διαφυγής \ (backslash).

Παρατήρηση: Ενάς πόλυ πιο απλός (και γρήγορος) τρόπος για την ευρέση αρχείων είναι η εντολή locate. Συντάσεται : $locate αρχείο . Ομώς για να τρέξει θα πρέπει πρώτα ο διαχειριστής (root) του συστήματος να δημιουργήσει τη βάση με τα δεδομένα της, με την εντολή $/usr/bin/updatedb .

Αλλες χρησιμές εντολές

Η εντολή su:

Με την εντολή su, ενάς χρήστης με πολλαπλά accounts, μπορεί να τρέξει εντολές με τα προνόμια ενός αλλού account του. Οταν πληκτρολογήσουμε σκέτα su, τότε μας ζητείται το password, για το account του root, και μπορούμε να τρέξουμε εντολές σαν root.

Η εντολή sudo:

Με την εντολη αυτη μπορουμε να εκτελεσουμε μια εντολη σαν root, δινωντας τον κωδικο του χρήστη μας. Συνταξη: sudo εντολη

Δημιουργία δισκέττας συστήματος:

Πρώτα τρέχουμε την εντολή $uname -r για να δούμε ποιον πυρήνα χρησιμοποιούμε. Θα πάρουμε ως αποτέλεσμα μια σειρά από νουμέρα, κάτι σαν 2.4.x-yy. Στη συνέχεια τρέχουμε την εντολή: $mkbootdisk --device /dev/fd0 2.4.x-yy και έχουμε έτοιμη μια δισκέττα εκκίνησης με τον τρέχον πύρηνα.

Δημιουργία ext2 partition σε μια δισκέττα
Τοποθετήστε μια άδεια δισκέττα στον οδήγο και τρέξτε την εντολη $/sbin/mke2fs /dev/fd0 Αυτό θα διαμορφώσει την δισκέττα αποκλειστικά για χρήση στο linux, και τα περιεχόμενα της θα γίνουν απροσπέλαστα σε άλλα λειτουργικά.

Η εντολή split:

Ας υποθέσουμε οτι θέλουμε να διαχωρίσουμε ένα αρχείο 40mb σε μικρότερα ώστε να το αποθηκευσούμε σε δισκέττες. Το Linux μας παρέχει την εντολή split. Συντάσσεται: $split [επιλογες] μέγεθος αρχείο όνομα_εξόδου.

πχ  $split -b 1395k intro.zip intro.zip 
Το αρχίκο αρχείο θα διαχωριστεί σε μικρότερα των 1395Kb και θα ονομαστούν intro.zip.aa, intro.zip.ab κτλ...
Αν θελήσουμε να τα ξαναενώσουμε σε ένα αρχείο, χρησιμοποιούμε την εντολή: $ cat intro.zipp.?? > intro.zip

Η εντολή sort:

Ταξινομεί τα περιεχόμενα ένος αρχείου και τυπώνει το αποτέλεσμα. Σύνταξη: $sort [παραμέτροι} αρχέιο

Οι πιο συνήθεις εκφράσεις είναι:
-n για αριθμητική ταξινόμηση
-f για να αγνοήσει κεφαλαία-μικρά
-r για αναστροφή αποτελέσματος

πχ $ sort /etc/passwd (Ταξινομεί αλφαβητικά τα περιεχόμενα του αρχείο /etc/passwd και τα τυπώνει στην οθόνη.)

Η εντολή fmt:

Διαμορφώνει κείμενα γραμμένα με επεξεργαστή κειμένου που δεν υποστηρίζει μορφοποίηση.

Σύνταξη:$fmt [παραμέτροι] αρχείο
πχ $fmt -w 70 chapter1.txt
Αποτέλεσμα: Κάνει το μέγεθος κάθε γραμμής του κειμένου 70 χαρακτήρες.

Keywords: Linux, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series, link files
soft,hard,links,ln,find,sort,split,fmt,locate,su,sudo

No comments: