ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX
Αρχικός φάκελος χρήστη Home directory Στο ΛΣ UNIX κάθε χρήστης διαθέτει ένα φάκελο κάτω από τον οποίο φυλάσσονται όλα τα στοιχεία του, οι ρυθμίσεις του καθώς και τα προσωπικά του αρχεία. Κοινώς, είναι ο προσωπικός χώρος του χρήστη στο σύστημα, τον οποίο μπορεί να τον διαχειριστεί όπως νομίζει, καθώς έχει πλήρη δικαιώματα πάνω σε αυτόν. Ο φάκελος αυτός ονομάζεται αρχικός κατάλογος χρήστη (home directory), βρίσκεται κάτω από τον φάκελο /home και έχει όνομα το username του χρήστη. Σχήμα 1: Αρχικοί κατάλογοι χρηστών Ο αρχικός κατάλογος του τρέχοντος χρήστη συμβολίζεται με τον χαρακτήρα ~ (tilde) και αντιστοιχεί πάντα στο path /home/username όπου username το όνομα χρήστη που χρησιμοποιείται (πχ αν χρησιμοποιείται ο λογαριασμός του χρήστη Evi τότε ο ~ αντιστοιχεί στον φάκελο /home/evi). Είναι δυνατό να γίνει αναφορά στον αρχικό κατάλογο ενός τρίτου χρήστη χρησιμοποιώντας τον συμβολισμό ~username όπου username ο χρήστης στον αρχικό κατάλογο του οποίου γίνεται η αναφορά (πχ ~moum ο αρχικός κατάλογος του χρήστη moum και ~nick ο αρχικός κατάλογος του χρήστη nick). Παράδειγμα: ~/textfile : Αναφορά στο αρχείο textfile στο home directory του τρέχον χρήστη. ~tsak/textfile: Αναφορά στο αρχείο textfile στο home directory του χρήστη tsak. Εντολές Καταλόγων και αρχείων pwd - Τρέχον απόλυτο μονοπάτι Η εντολή pwd (print working directory) εμφανίζει το απόλυτο μονοπάτι προς τον κατάλογο προς τον οποίο βρίσκεται ο χρήστης όταν εκτελείται η εντολή. Ο κατάλογος στον οποίο βρίσκεται ο χρήστης είναι
ο κατάλογος στον οποίο θα εκτελεστεί όποια εντολή δώσει. ls Πληροφορίες για αρχεία Η εντολή ls παρέχει πληροφορίες για αρχεία. Αν το αρχείο είναι τύπου directory, δηλαδή είναι κατάλογος, τότε εμφανίζει πληροφορίες για τα αρχεία που περιέχει. Η σύνταξη της εντολής είναι: ls FILEs όπου FILEs λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενά η οποία μπορεί να να παραληφθεί και σε αυτή την περίπτωση η εντολή θεωρεί ότι ο χρήστης αναφέρεται στον τρέχων κατάλογο. (Όπου ονόματα αρχείων εννοούνται paths, απόλυτα ή σχετικά) Ορισμένα από τα ποιο συνηθισμένα options της εντολής αυτής είναι: -l: το σύνολο σχεδόν των πληροφοριών που φυλάσσονται στο inode σε λίστα. -i: χρησιμοποιείται μόνο σε συνδυασμό με το -l και εμφανίζει τον αριθμό inode κάθε αρχείου. -a: εμφανίζει και τα κρυφά αρχεία. (Κρυφά αρχεία στο UNIX θεωρούνται αυτά που ο πρώτος χαρακτήρας του ονόματός τους είναι ο χαρακτήρας. (τελεία) -R: εμφανίζει και τα αρχεία των υποκαταλόγων. -d: Στην περίπτωση που το αρχείο είναι τύπου directory δεν εμφανίζει πληροφορίες για τα αρχεία που περιέχει αλλά για το ίδιο το αρχείο. -t : εμφανίζει τα περιεχόμενα του τρέχοντος καταλόγου ταξινομημένα ως προς την ώρα και ημερομηνία τελευταίας τροποποίησης. -S : εμφανίζει τα περιεχόμενα του τρέχοντος καταλόγου ταξινομημένα ως προς την το μέγεθος του αρχείου. -r : αντίστροφη ταξινόμηση (reverse order while sorting). ls Πληροφορίες για τα περιεχόμενα του τρέχοντος καταλόγου. ls.. Εμφανίζει τα περιχόμενα του γονικού καταλόγου. ls -l Πληροφορίες για τα περιεχόμενα του τρέχοντος καταλόγου σε λίστα. ls -lr ~/Documents
Πληροφορίες για τα περιεχόμενα του καταλόγου Documents κάτω από το home directory του τρέχοντος χρήστη καθώς και για όλους τους υποκαταλόγους του σε λίστα. Τι εμφανίζουν οι παρακάτω εντολές; Δοκιμάστε τες ls lt ls ltr ls -ls cd Μετακίνηση σε φάκελο Η εντολή cd (change directory) χρησιμοποιείται για τη μετακίνηση του χρήστη από έναν κατάλογο σε έναν άλλο. Η σύνταξη της εντολής είναι η εξής: cd path όπου path το απόλυτο ή το σχετικό path για τον φάκελο στον οποίο θέλει να μετακινηθεί ο χρήστης. cd /usr/local Μετακίνηση στον φάκελο local κάτω από το usr κάτω από το / cd ~ Μετακίνηση στον αρχικό φάκελο του χρήστη δηλαδή στον φάκελο κάτω από το home κάτω από το / cd ~/Documents Μετακίνηση στον φάκελο Documents κάτω από τον αρχικό φάκελο του χρήστη που χρησιμοποιείται. cd../desktop Μετακίνηση στον φάκελο Desktop που βρίσκεται κάτω από τον φάκελο που είναι ένα επίπεδο πιο πάνω από τον τρέχον φάκελο. mkdir Δημιουργία αρχείου τύπου directory. Με την εντολή mkdir (make directory) δημιουργούνται αρχεία τύπου directory. Η σύνταξη την εντολής είναι η εξής mkdir FILEs όπου FILEs λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενά (Όπου ονόματα αρχείων εννοούνται paths, απόλυτα ή σχετικά) mkdir /tmp/test Δημιουργία του καταλόγου test κάτω από τον κατάλογο tmp του /
mkdir ~/Desktop/f1 f2 f2/f3 Δημιουργία του καταλόγου f1 κάτω από τον κατάλογο Desktop κάτω από τον home directory, του καταλόγου f2 κάτω από τον τρέχον κατάλογο και του καταλόγου f3 κάτω από τον κατάλογο f2 κάτω από τον τρέχον κατάλογο. mkdir../../myfolder Δημιουργία του καταλόγου MyFolder κάτω από τον κατάλογο που βρίσκεται 2 επίπεδα πιο πάνω από τον τρέχον κατάλογο. touch και δημιουργία κενών αρχείων Η χρήση της εντολής touch είναι να ενημερώνει τα timestamps των αρχείων που δέχεται ως όρισμα στην τρέχουσα ημερομηνία και ώρα. Όταν όμως δέχεται ως όρισμα ένα αρχείο το οποίο δεν υπάρχει τότε δημιουργεί ένα κενό (μηδενικού μεγέθους άδειο) αρχείο με αυτό το όνομα. Η σύνταξη την εντολής είναι touch FILEs όπου FILEs λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενά (Όπου ονόματα αρχείων εννοούνται paths, απόλυτα ή σχετικά) touch myfile Δημιουργία του αρχείου myfile κάτω από τον τρέχον κατάλογο. touch my1 my2 /tmp/my1 ~/Documents/my2 Δημιουργία των αρχείων my1 και my2 κάτω από τον τρέχον κατάλογο, του αρχείου my1 κάτω από τον κατάλογο tmp του / και του αρχείου my2 κάτω από τον κατάλογο Documents κάτω από τον αρχικό φάκελο χρήστη. touch myfolder/myotherfolder/myfile /testing Δημιουργία του αρχείου myfile κάτω από τον κατάλογο myotherfolder του καταλόγου myfolder κάτων από τον τρέχον κατάλογο και του αρχείου testing κάτω από τον / (root) cp Αντιγραφή αρχείων Η εντολή cp (copy) αντιγράφει ένα η περισσότερα αρχεία σε ένα φάκελο. Τα αρχεία που αντιγράφονται μπορούν να είναι όλων των τύπων, ακόμα και αρχεία τύπου directory. Η σύνταξη την εντολής είναι η εξής: cp FILEs Destination FILEs λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενά (Όπου ονόματα αρχείων εννοούνται paths, απόλυτα ή σχετικά) Destination το όνομα (path absolute ή relative) του φακέλου στον οποίο θα αντιγραφούν τα αρχεία.
Στην περίπτωση που στην λίστα των αρχείων προς αντιγραφή υπάρχουν και κάποια τύπου directory τότε για να αντιγραφούν πρέπει να χρησιμοποιηθεί το option -R ή -r cp myfile myfolder Αντιγραφή του αρχείου myfile από τον τρέχον κατάλογο στον κατάλογο myfolder κάτω από τον τρέχον κατάλογο. cp /tmp/my1 my2 /testing ~/Documents Αντιγραφή του αρχείου my1 από τον καταλόγου tmp κάτω από το /, του my2 από τον τρέχον κατάλογο και του αρχείου testing από το / στον φάκελο Documents κάτω από τον αρχικό κατάλογο χρήστη. cp -R myfolder /tmp/my1 /usr/local Αντιγραφή των αρχείων (ακόμα κι αν είναι αρχεία καταλόγου) myfolder του τρέχοντος καταλόγου και my1 του καταλόγου tmp του / στον κατάλογο local κάτω από τον κατάλογο usr του / mv Μετονομασία και μεταφορά Η εντολή mv (move) μετονομάζει και μετακινεί αρχεία όλων των τύπων. Η επιλογή της λειτουργίας (μετονομασία, μεταφορά, μεταφορά και μετονομασία) γίνεται με βάση τα ορίσματα που δίνει ο χρήστης. Η βασική σύνταξη της εντολής είναι: mv FILEs Destination Destination όνομα (path) φακέλου ενώ FILEs λίστα ονομάτων αρχείων χωρισμένα μεταξύ τους με κενά. Σε αυτή την περίπτωση γίνεται μεταφορά. mv FILE NewFile FILE όνομα (path) αρχείου και NewFILE το νέο όνομα(path) του αρχείου. Στην περίπτωση αυτή γίνεται μετονομασία. Το αν γίνεται ταυτόχρονα και μεταφορά εξαρτάται από το αν το παλαιό με το καινούργιο όνομα βρίσκονται στον ίδιο κατάλογο mv myfile1 myfile2 /tmp/testfolder ~/TestFolder
Μετακίνηση των αρχείων myfile1 myfile2 του τρέχοντος καταλόγου και του αρχείο TestFolder του καταλόγου tmp του / στον φάκελο TestFolder κάτω από τον αρχικό φάκελο χρήστη. mv myfile3 newmyfile3 Μετονομασία του αρχείου myfile3 του τρέχοντος καταλόγου σε newmyfile3 mv myfile2 /tmp/newmyfile2 Μετονομασία και μετακίνηση του αρχείου myfile2 του τρέχοντος καταλόγου σε newmyfile2 στον κατάλογο tmp του /. rmdir Διαγραφή κενών καταλόγων Η εντολή rmdir (remove directory) διαγράφει αρχεία τύπου directory που είναι κενά. Στην περίπτωση που περιέχουν άλλα αρχεία (ή καταλόγους) τότε εμφανίζεται μήνυμα λάθους. Η σύνταξη της εντολής είναι: rmdir FILEs FILEs λίστα ονομάτων αρχείων τύπου directory χωρισμένα μεταξύ τους με κενά. rmdir /tmp/testfolder ~/Documents/Test ~ /testing test1/mytest Διαγραφή του καταλόγου TestFolder του καταλόγου tmp του /, του καταλόγου Test κάτω από τον φάκελο Documents του home folder, του καταλόγου testing κάτω από τον αρχικό κατάλογο χρήστη του χρήστη και του καταλόγου mytest κάτω από τον φάκελο test1του τρέχοντος καταλόγου. rmdir../testfolder../../testdirectory Διαγραφή των καταλόγων testfolder του καταλόγου που βρίσκεται ένα επίπεδο πιο πάνω από τον τρέχον κατάλογο και του καταλόγου testdirectory του καταλόγου που βρίσκεται δύο επίπεδα πιο πάνω από τον τρέχον κατάλογο. rm Διαγραφή αρχείων Η εντολή rm (remove) διαγράφει αρχεία όλων των τύπων, άρα και τύπου directory, ακόμα κι αν αυτά δεν είναι άδεια. Η σύνταξη της εντολής είναι: rm FILEs FILEs λίστα ονομάτων αρχείων τύπου directory χωρισμένα μεταξύ τους με κενά. Στην περίπτωση που κάποιο από τα αρχεία είναι τύπου directory πρέπει να χρησιμοποιηθεί το option r
rm my1 my2 Διαγραφή των αρχείων my1 και my2 του τρέχοντος καταλόγου. rm /tmp/file1 διαγραφή του αρχείου file1 του καταλόγου tmp του / rm -r /tmp/folder διαγραφή του καταλόγου folder του φακέλου tmp του / rm -r myfile myfolder/myfiles myfolder/myotherfolder /tmp/test /testfolder. Διαγραφή των αρχείων και των καταλόγων: myfile του τρέχοντος καταλόγου, myfiles και myotherfolder κάτω από τον κατάλογο myfolder του τρέχοντος καταλόγου, test του καταλόγου tmp του / και του testfolder κάτω από το / (root). Path και οι ειδικοί χαρακτήρες? και * Το UNIX επιτρέπει τη χρήση ειδικών χαρακτήρων κατά το σχηματισμό ενός path. Οι χαρακτήρες αυτοί είναι οι:? Συμβολίζει έναν οποιοσδήποτε χαρακτήρα. * Συμβολίζει μηδέν ή παραπάνω οποιοιδήποτε χαρακτήρες. Οι ειδικοί αυτοί χαρακτήρες επιτρέπουν στον χρήστη γράφοντας ένα path να αναφέρεται σε περισσότερα από ένα αρχεία. /usr/local/bi? Όλα τα αρχεία του φακέλου local κάτω από τον usr κάτω από τον / που το όνομά τους έχει τρεις χαρακτήρες και οι δύο πρώτοι είναι οι bi. /etc/tes* Όλα τα αρχεία του φακέλου etc κάτω από τον / που το όνομά τους ξεκινάει από tes. *my* Όλα τα αρχεία στον τρέχον κατάλογο που το όνομά τους περιέχει το συμβολοσειρά (string) my. myfol/?in*
Όλα τα αρχεία στον κατάλογο myfol κάτω από τον τρέχον κατάλογο που το δεύτερο και το τρίτο γράμμα τους είναι αντίστοιχα τα i και n. Αυτό βρίσκει εφαρμογές σε όλες τις εντολές του UNIX. cp /tmp/*bin ~/MyDocuments Αντιγραφή όλων των αρχείων του φακέλου tmp κάτω από το / που το όνομά τους τελειώνει σε bin στον φάκελο MyDocuments του αρχικού φακέλου χρήστη. rm a??? Διαγραφή όλων των αρχείων του τρέχοντος φακέλου που το όνομά τους ξεκινάει από a και έχει συνολικό μήκος 4 χαρακτήρες. mv?est*./myfolder Μετακίνηση όλων των αρχείων του τρέχοντος φακέλου που το όνομά τους ξεκινάει με οποιοδήποτε χαρακτήρα, συνεχίζει με est και τελειώνει με οποιουσδήποτε χαρακτήρες. ls -ld my* Πληροφορίες σε λίστα για τα αρχεία και τους φακέλους που το όνομά τους ξεκινάει με my. Εντολές εμφάνισης περιεχομένων αρχείων Στο Unix/Linux υπάρχουν πολλές εντολές με τις οποίες μπορούμε να δούμε τα περιεχόμενα ενός ή περισσότέρων αρχείων. pg και more Αυτές οι εντολές μας επιτρέπουν να διατρέξουμε τα περιεχόμενα ενός αρχείου ανά σελίδα. Less Όμοια με την more με περισσότερες δυνατότητες στο πως κινουμαστε στις πληροοφρίες του αρχείου ή πως αυτές εμφανίζονται. cat Όταν ακολουθείται από ένα αρχείο τότε εμφανίζονται τα περιεχόμενα του στην έξοδο. Όταν ακολουθείται από περισσότερα αρχεία τότε συνενώνει τα περιεχόμενα τους και τα εμφανίζει στην έξοδο σε συνεχή ροή ή τα αποστέλλει σε άλλο αρχείο.για το σκοπό αυτό χρησμοποιείται ο τελεστής ανακατεύθυνσης >. Π.χ. cat doc1 doc2 > document. Με την
εντολή cat > file1 θα δημιουργηθεί το αρχείο file1. head Η εντολή head χρησιμοποιείται για να εμφανίσει τις πρώτες γραμμές ενός αρχείου. Η εντολή head εμφανίζει τις πρώτες 10 γραμμές ενός αρχείου εκτός αν χρησιμοποιείται με τον διακόπτη -n. Η εντολή: head n 5 /etc/passwd, εμφανίζει μόνο τις πρώτες 5 γραμμές του αρχείου. tail Η εντολή tail χρησιμοποιείται για να εμφανίσει τις τελευταίες γραμμές ενός αρχείου. Η εντολή tail εμφανίζει τις τελευταίες 10 γραμμές ενός αρχείου εκτός αν χρησιμοποιείται με τον διακόπτη -n. Η εντολή: tail n 5 /etc/passwd, εμφανίζει μόνο τις τελευταίες 5 γραμμές του αρχείου. Η εντολή tail χρησιμοποιείται συχνά για να βλέπουμε τις τελευταίες εγγραφές ενός αρχείου καταγραφής (log file). Για να βλέπουμε συνεχώς τις τελευταίες εγγραφές ενός αρχείου χρησιμοποιούμε τον διακόπτη -f. Π.χ. : tail f /var/log/messages. pr Εντολή για την μορφοποίηση αρχείων κειμένου σε σελίδες για εμφάνιση σε οθόνη ή για εκτύπωση με συνδιασμό εντολών παροχέτευσης εκτύπωσης. π.χ. pr.profile lp. Με χρήση μόνο της εντολής lp θα γίνει εκτύπωση χωρίς μορφοποίηση. Για την μορφοποίηση με την εντολή pr χρησιμοποιούνται παράμετροι: -d : δημιουργεί διπλό διάστημα γραμμὠν. -l20 : ορίζει μήκος σελίδας τις 20 γραμμἐς. -t : καταργεί την κεφαλίδα και το υποσέλιδο. -p : περιμένει να πατήσουμε enter για να ενφανιστεί η επόμενη σελίδα. -w40: ορίζει το μήκος της γραμμής σε 40 χαρακτήρες. π.χ. pr -pl30 file1, θα εμφανίσει μόνο τις 30 πρώτες γραμμές του αρχείου file1 σε μία οθόνη (με το enter μετά θα εμφανιστεί η επόμενη σελίδα).
file Εντολή για την εμφάνιση του τύπου ενός αρχείου (ή αρχείων) που δίνεται ως όρισμα. π.χ. file file1 grep Εντολή για την ανίχνευση συγκεκριμένου κειμένου στο εσωτερικό αρχείων και κατόπιν εμφάνιση των αρχείων σε λίστα. π.χ. grep data file1 Θα εμφανιστούν ολες οι γραμμές του περιεχομένου του αρχείου file1 οι οποίες περιέχουν τη λέξη data. Σε συνδιασμό της εντολής με παραμέτρους έχουμε: -c: Εμφανίζεται το πλήθος εμφάνισης του κειμένου στο αρχείο. -n: Εμφανίζει τον αριθμό της γραμμής που βρέθηκε το κείμενο. -i: Η αναζήτηση θα γίνει το ίδιο ανεξάρτητα αν έχουμε πεζά ή κεφαλαία γραμματα στη λέξη. wc Εντολή για την εμφάνιση γραμμών, λέξεων ή χαρακτήρων που αποτελείται το περιεχόμενο ενός αρχείου κειμένου ή μιας ομάδας αρχείων σε bytes. Σε συνδιασμό της εντολής με παραμέτρους έχουμε: -l: τον αριθμό των γραμμών κειμένου, -w: τον αριθμό των λέξεων του κειμένου και -c: τον εριθμό των χαρακτήρων κειμένου. Locate Εντολή για αναζητήσεις αρχείων. Π.χ. locate *.ps, εμφανίζει όλα τα αρχεία του συστήματος με επέκταση.ps. slocate Εντολή για αναζητήσεις αρχείων όμως με τη διαφορά ότι ελέγχεται ο χρήστης που δίνει την εντολή και του επιστρέφονται μόνο τα αρχεία τα οποία επιτρέπεται να δει. diff και compare Εντολές για τη σύγκριση μεταξύ των περιεχομένων αρχείων.
split Με την εντολή αυτἠ ο χρήστης μπορεί να χωρίσει ένα αρχείο σε μικρότερα με βάση ένα μέγεθος που δίνει. Αν δεν δώσει μέγεθος τότε το αρχείο χωρίζεται σε μικρότερα αρχεία, ανά 1000 γραμμές. Τα αρχεία ονομάζονται με τη σειρά: xaa,xab,xac,κοκ. sort Η εντολή αυτή ταξινομεί την είσοδο. Σε συνδιασμό της εντολής με παραμέτρους έχουμε: -ο: δημιουργείται ένα νέο αρχείο με τα αποτελέσματα της ταξινόμησης. -n: χρησιμοποιείται για αριθμητική ταξινόμηση. uniq Με την εντολή αυτή ο χρήσης αποκόπτει τις επαναλαμβανόμενες γραμμές σε ένα ταξινομημένο αρχείο.