σημειώσ ειςγια τo λειτουργικό σ ύσ τημα Unix



Σχετικά έγγραφα
Σημειώσεις για το λειτουργικό σύστημα UNIX

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ

Μερικές άλλες χρήσιμες εντολές

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Εισαγωγή στο UNIX. Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Σχολή Θετικών Επιστημών Τμ. Πληροφορικής. Διδάσκων: Ι. Η. Λαγαρής. Εισαγωγή

Linux με τη χρήση κονσόλας

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Λειτουργικά Συστήματα

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Βασικές εντολές του Unix-Linux

Λειτουργικό σύστημα Unix

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 2

Λειτουργικά Συστήματα (Λ/Σ)

Χρήση του διακόπτη /D για αλλαγή της τρέχουσας μονάδας δίσκου πέραν της αλλαγής τρέχοντος καταλόγου για μια μονάδα δίσκου.

Προγραµµατισµός 2 The shell

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Η εντολή ln. σύνδεση με την πραγματική καταχωρημένη πληροφορία. περισσότερα ονόματα (συνδέσεις). Τα επιπλέον ονόματα δημιουργούνται με

Μερικές άλλες χρήσιμες εντολές

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Δίκτυα Η/Υ στην Επιχείρηση

Λειτουργικά Συστήματα

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Εντολές του Λειτουργικού Συστήματος UNIX

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:]

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ

Προγραµµατισµός Συστήµατος

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Εντολές Διαχείρισης Αρχείων στο Λειτουργικό Σύστημα UNIX. Δημιουργία Αρχείων. Η Εντολή cat. Παράδειγμα Δένδρου Συστήματος Αρχείων

Λειτουργικά Συστήματα

Shell Scripts: loops / if / test

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Εισαγωγή στο λειτουργικό σύστηµα Unix

Λειτουργικά Συστήματα

ΕΡΓΑΣΤΗΡΙΟ #1. Το Λειτουργικό Σύστηµα Unix

Το Λειτουργικό Σύστημα MS-DOS

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

Λειτουργικά Συστήματα (Λ/Σ)

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B:

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

2.Shell, users, groups και privilegies

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

Λειτουργικά Συστήματα Ι - Εργαστήριο

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

Είσοδος/Έξοδος (I/O) Παράδειγμα Δένδρου Συστήματος Αρχείων. Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση στο Λειτουργικό Σύστημα UNIX

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

Εισαγωγή στα Λειτουργικά Συστήματα

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Διαδικασιακός Προγραμματισμός

wc -l <file1 10 ή να μετρήσω πόσες γραμμές δίνει μια οποιαδήποτε άλλη εντολή π.χ. η finger : finger wc -l 8

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Κεφάλαιο 4: Λογισμικό Συστήματος

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Εντολές Διαχείρισης Αρχείων στο Λειτουργικό Σύστημα UNIX

Κεφάλαιο 16: Ο κειμενογράφος Vi

Mε την ονομασία Unix ή μάλλον Unix-like αναφερόμαστε

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Transcript:

ΠΑΝΕΠΙΣΤΗ Μ ΙΟ ΠΕΛΟΠΟΝΝΗ ΣΟΥ σημειώσ ειςγια τo λειτουργικό σ ύσ τημα Unix Δρ. ΚώσταςΒ ασιλάκης, Δ ρ. Άνια Σωτηροπούλου, Δρ.ΑλέκοςΚαλόξυλος, Δ ρ. Δ ημήτρηςγκούσκος Οκτώβριος 2002

πίνακας περιεχομένων 1. βασικέςέννοιεςτου λειτουργικού συστήματοςunix... 3 1.1. ο φλοιός (shell) του Unix...3 1.2. ο πυρήνας(kernel) του Unix...4 1.3. διεργασίες(processes) στο Unix...4 1.4. το σύστημα αρχείων του Unix...5 2. χρήση αρχείων και καταλόγων στο Unix... 8 2.1. τρέχων κατάλογοςεργασίας: pwd...8 2.2. αλλαγή καταλόγου εργασίας: cd...8 2.3. δημιουργία καταλόγου : mkdir...8 2.4. παρουσίαση των περιεχομένων ενός καταλόγου : ls...9 2.5. παρουσίαση των περιεχομένων ενός αρχείου : cat...10 2.6. παρουσίαση των περιεχομένων ενός αρχείου : more...10 2.7. μετονομασία και μετακίνηση αρχείων : mv...10 2.8. αντιγραφή αρχείων : cp...11 2.9. σύνδεση αρχείων : ln...11 2.10. διαγραφή αρχείων : rm...12 3. σχηματισμόςεντολών στο Unix... 13 3.1. ανακατεύθυνση εισόδου και εξόδου...13 3.2. σωλήνωση διεργασιών...14 3.3. χρήση μεταχαρακτήρων...15 3.4. προστασία ειδικών χαρακτήρων...16 3.5. μηχανισμός history...17 3.6. μηχανισμός alias...17 4. εντολέςχειρισμού αρχείων στο Unix... 19 4.1. αλλαγή δικαιωμάτων προσπέλασης: chmod, chown, chgrp...19 4.2. σύγκριση αρχείων : cmp, diff...20 4.3. πληροφορίεςγια ένα αρχείο : file, head, tail, wc...20 4.4. ταξινόμηση ενός αρχείου : sort...21 4.5. αναζήτηση αρχείων : find...21 4.6. μετατροπή συμβολοσειρών : tr...22 4.7. αναζήτηση συμβολοσειρών : grep...22 5. έλεγχοςδιεργασιώ ν στο Unix... 23 5.1. εκτέλεση διεργασιών στο φλοιό...23 5.2. εντολές ελέγχου διεργασιών...23 5.3. βοηθητικές εντολές...24 6. ο κειμενογράφ οςπλήρουςοθόνηςvi... 25 6.1. περιβάλλον λειτουργίαςτου νί...25 6.2. εντολές μετακίνησηςμέσα στο κείμενο...25 6.3. εντολές εισαγωγήςκειμένου...26 6.4. εντολές διαγραφήςκειμένου...26 6.5. εντολές αποθήκευσηςκαι εξόδου...27 K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα2 από 27

1. βασικέςέννοιεςτου λειτουργικού συστήματοςunix 1.1. ο φ λοιός(shell) του Unix Ο κύριος σκοπός του φλοιού είναι να διαβάζει και να μεταφράζει τις εντολές μας καθώς μαςσυνδέει με το Unix. Αυτόσημαίνει ότι δέχεται τιςεντολές που δίνουμε στο τερματικό μας, ελέγχει τη σύνταξή τους, καλεί τις κατάλληλες εσωτερικές ή εξωτερικές εντολές του Unix και επαναφέρει τον έλεγχο στον χρήστη όταν οι εντολές ολοκληρωθούν ορθά. Είναι αλληλεπιδραστικός (interactive) επειδή απαντά άμεσα στις οδηγίες μας και αναφέρει λάθη και αποτελέσματα. Ο φλοιός προσφέρει και άλλεςδυνατότητες: Επιτρέπει στο χρήστη να φτιάξει το δικό του σύστημα (ή περιβάλλον) που να ταιριάζει στον τρόπο εργασίαςτου. Δίνει τη δυνατότητα για σύντμηση μεγάλων ονομάτων, εντολών και ακολουθιών εντολών. Αποθηκεύει προσωρινά τις πρόσφατες εντολές ώστε να μπορούμε να τις επαναλαμβάνουμε ή να χρησιμοποιήσουμε ένα τμήμα απόαυτές τις εντολές με αλλαγές. Έχει την δυνατότητα διαχείρισης εργασιών (job control), ώστε να μπορούμε να δημιουργήσουμε νέες εργασίες, να τις εκτελέσουμε με ή χωρίς διαλογική επικοινωνία απότο τερματικόμαςκαι να τιςτερματίσουμε. Μέσω του φλοιού γράφουμε προγράμματα τα οποία ονομάζονται scripts και εκτελούνται ωςεντολές. Αυτά μπορεί απλώς να εκτελούν εντολές σειριακά ή να χρησιμοποιούν δομές όπως επαναλήψεις και επιλογές. Μπορούν να έχουν ορίσματα (arguments) και να επιτρέπουν αλληλεπιδράσεις, π.χ. για ανάγνωση δεδομένων εισόδου. Σχήμα1. Ο φλοιός και τα υπόλοιπα τμήματα του λειτουργικού συστήματοςunix. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα3 από 27

1.2. ο πυρήνας(kernel) του Unix Ο πυρήνας (kernel) του Unix είναι η καρδιά του λειτουργικού συστήματος. Ελέγχει την προσπέλαση στον υπολογιστή και τα αρχεία, επιμερίζει τη χρήση των πόρων του συστήματοςμεταξύ των διαφόρων διεργασιών που γίνονται μέσα στον υπολογιστή, συντηρεί το σύστημα αρχείων και διαχειρίζεται τη μνήμη του υπολογιστή. Παρόλο που οι απλοί χρήστες σπάνια έχουν άμεση επαφή μαζί του, ο πυρήνας είναι το κυριότερο μέροςτου λειτουργικού συστήματος. Ο διαχειριστής του συστήματος (system administrator) εκτελεί μια διεργασία που λέγεται διαμόρφωση (configuration) του πυρήνα, για να προσαρμόσει τα λειτουργικά χαρακτηριστικά του συστήματος. Με τη διαμόρφωση του πυρήνα ρυθμίζονται ορισμένες εσωτερικές παράμετροι του συστήματος και δημιουργούνται οι οδηγοί (drivers) οι οποίοι ελέγχουν τιςπεριφερειακές μονάδεςπου είναι συνδεδεμένεςμε τον υπολογιστή. Ωστόσο, ακόμα και έναςδιαχειριστής συστήματοςδεν είναι σε θέση να τροποποιήσει τη δομή του πυρήνα διότι για να μπορέσει να το κάνει αυτόθα πρέπει να γράψει το ίδιο το Unix απότην αρχή. 1.3. διεργασίες(processes) στο Unix Κατά τη διάρκεια της λειτουργίας του Unix συμβαίνουν ταυτόχρονα πολλές δραστηριότητες οι οποίες ονομάζονται διεργασίες (processes). Μπορεί κανείς να θεωρήσει ότι αυτές οι διεργασίες συμβαίνουν παράλληλα, παρά το ότι οι περισσότεροι υπολογιστές με λειτουργικό σύστημα Unix δεν υποστηρίζουν πραγματικά παράλληλη επεξεργασία παρά μόνο για ορισμένεςεξειδικευμένεςεργασίες όπωςείναι η εκτύπωση. Κάθε στιγμή υπάρχει τουλάχιστον μια διεργασία για τον πυρήνα και μία για κάθε χρήστη που έχει συνδεθεί (έχει κάνει login) στο σύστημα. Στην πραγματικότητα για τον πυρήνα «τρέχουν» πάντοτε πολλές διεργασίες ταυτόχρονα ενώ κάθε χρήστης μπορεί να ξεκινήσει και αυτός αρκετές διεργασίες. Με την εντολή ps (process status) μπορείτε να δείτε έναν κατάλογο με τα στοιχεία όλων των διεργασιών που τρέχουν. Για να εκτελέσετε αυτή την εντολή μπορείτε να πληκτρολογήσετε ps -ef Η διαχείριση των διεργασιών γίνεται απότον πυρήνα, ο οποίοςεξυπηρετεί διαδοχικά τη μία μετά την άλλη ανάλογα με τιςπροτεραιότητεςκαι τις ανάγκεςτηςκάθε μίας. Μια διεργασία μπορεί να δημιουργήσει άλλες διεργασίες, και τότε ονομάζεται γονική (parent) διεργασία ενώ εκείνες που δημιουργούνται ονομάζονται θυγατρικές (child) διεργασίες της. Υπάρχουν επίσης κάποιες διεργασίες που ονομάζονται «δαίμονες» (daemons), οι οποίες παραμένουν μόνιμα σε εξέλιξη διότι εκτελούν δραστηριότητες που δεν πρέπει να σταματούν (όπωςγια παράδειγμα η διαχείριση του ταχυδρομείου, ο χρονοπρογραμματισμός εργασιών που εκτελούνται σε τακτά χρονικά διαστήματα, η δρομολόγηση των προς εκτύπωση αρχείων από την ουρά εκτύπωσης στους εκτυπωτές). Ο χρήστης μπορεί να εκτελεί πολλά προγράμματα ταυτόχρονα, δημιουργώντας πολλαπλές διεργασίες. Για παράδειγμα, εάν έχετε ένα πρόγραμμα που κάνει πολλή ώρα να ολοκληρωθεί μπορείτε να το εκτελέσετε στο παρασκήνιο (background) με μικρή προτεραιότητα και, για όσο εκτελείται αυτό, εσείς να κάνετε άλλες δουλειές K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα4 από 27

απότο τερματικόσας. Σημειώστε ότι μερικές φορές δεν είναι απίθανο μια διεργασία που τρέχει να «κολλήσει» και να πρέπει να την απαλείψετε. Αν η διεργασία αυτή δεν ελέγχεται απότο τερματικόσας, μπορείτε να βρείτε τον αριθμότηςμε την εντολή ps και να την απαλείψετε με την εντολή kill 1.4. το σύστημααρχείων του Unix Το σύστημα αρχείων του Unix αποτελείται απόένα σύνολο αρχείων. Υπάρχουν τριών ειδών αρχεία : τα κοινά αρχεία τα οποία περιέχουν δεδομένα τα ειδικά αρχεία μέσω των οποίων γίνεται η προσπέλαση σε περιφερειακές μονάδεςόπωςτα τερματικά και οι εκτυπωτές, αλλά και άλλεςειδικές εργασίες οι κατάλογοι αρχείων, που περιέχουν τις πληροφορίες που αφορούν μια ομάδα αρχείων και χρησιμεύουν για να μπορούμε να εντοπίσουμε ένα αρχείο απότο όνομα του. Το σύστημα αρχείων του Unix έχει τη μορφή ενός ιεραρχικού δέντρου που διακλαδώνεται απόένα μοναδικόσημείο, τη ρίζα (root). Μπορεί να περιέχει πολλούς καταλόγους (directories) τα οποία με τη σειρά τους να περιέχουν υποκαταλόγους (subdirectories) ή και αρχεία. Κάθε χρήστης του Unix έχει το δικό του σημείο εκκίνησης μέσα στο σύστημα αρχείων, το οποίο καλείται προσωπικός κατάλογος αρχείων (home directory). Οτιδήποτε κάτω απόαυτό τον κατάλογο ανήκει στο συγκεκριμένο χρήστη. Αυτός ο κατάλογος αποτελεί και το σημείο εκκίνησης κατά την είσοδο του χρήστη στο Unix. Δηλαδή, όταν κάνουμε login στο σύστημα πάντοτε μπαίνουμε στον προσωπικόμαςκατάλογο ο οποίοςσυμβολίζεται με ~ (tilde). Χρησιμοποιώνταςεντολές του Unix έναςχρήστηςμπορεί να δημιουργήσει αρχεία και υποκαταλόγους, διαμορφώνοντας έτσι ένα προσωπικό περιβάλλον. Στο υπόλοιπο σύστημα αρχείων (πάνω και έξω απότο περιβάλλον ενός χρήστη) ο χρήστης έχει περιορισμένη πρόσβαση. Ένας χρήστης μπορεί να κινηθεί οπουδήποτε μέσα στο σύστημα αρχείων αλλάζονταςτον τρέχοντα κατάλογο εργασίας. Για να καθοριστεί ή να αναφερθεί ένα αρχείο Unix το οποίο βρίσκεται στον τρέχοντα κατάλογο εργασίας (current working djrectory), απλώς γράφουμε το όνομα του αρχείου. Αν όμωςτο αρχείο βρίσκεται οπουδήποτε αλλού μέσα στο σύστημα αρχείων τότε πρέπει να προσδιοριστεί η ακριβήςτου θέση, Διαδρομή (path) ονομάζουμε την ακολουθία των καταλόγων η οποία οδηγεί στο αρχείο. Το πλήρες όνομα ενός αρχείου λέγεται όνομα διαδρομής (pathname) και περιλαμβάνει τη διαδρομή και το όνομα του αρχείου ώστε να εντοπίζεται μονοσήμαντα το αρχείο μέσα στο συνολικόιεραρχικόδέντρο. Το Σχήμα 2 δείχνει τη δενδρική μορφή ενός μέρους του συστήματος αρχείων του Unix. Μια διαδρομή μπορεί να ξεκινά είτε απότη ρίζα είτε απότο δικόμαςτρέχοντα κατάλογο εργασίας. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα5 από 27

Σχήμα2. Το δενδρικόσύστημα αρχείων του Unix. Ένα όνομα διαδρομήςμπορεί να έχει τρειςμορφές : 1) απόλυτο όνομα διαδρομής(absolute pathname), το οποίο πάντοτε ξεκινά από τη ρίζα παράδειγμα : /usr/users/user2/directory/prog1 2) σχετικό όνομα διαδρομής (relative pathname), το οποίο δείχνει πως θα φθάσουμε στον προορισμόμαςαπότον τρέχοντα κατάλογο εργασίας παράδειγμα : αν ο τρέχον κατάλογος εργασίας είναι ο /usr/users/user2 τότε το directory/prog1 είναι ένα σχετικόόνομα διαδρομής 3) απλόόνομα αρχείου (filename), το οποίο δείχνει πως θα φθάσουμε στον προορισμόμαςαπότον τρέχοντα κατάλογο εργασίας παράδειγμα : το prog1 είναι ένα απλόόνομα αρχείου. Το τελευταίο τμήμα ενός ονόματος διαδρομής (μετά το τελευταίο /) καλείται ουρά (tail) ή βασικό όνομα, και το υπόλοιπο μέρος του ονόματος διαδρομής καλείται κεφαλή (head). K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα6 από 27

προσοχή Τα σχετικά ονόματα διαδρομήςποτέδεν αρχίζουν με / (slash). Με το σύμβολο. (τελεία) συμβολίζουμε τον τρέχοντα κατάλογο εργασίας. Με το σύμβολο.. (δύο τελείες) συμβολίζουμε το γονικόκατάλογο εργασίας, π.χ.../user1/file2 Με το σύμβολο../.. αναφερόμαστε στον προηγούμενο του γονικού καταλόγου, δηλαδή σε δύο επίπεδα πιο πάνω. Τα ονόματα των αρχείων και των καταλόγων μπορούν να φθάνουν μέχρι και τους 14 χαρακτήρεςσε μήκος. Τα κεφαλαία γράμματα θεωρούνται διαφορετικά απότα αντίστοιχα πεζά. Στην ονομασία των αρχείων και των καταλόγων μπορούν να χρησιμοποιηθούν τα γράμματα a-z, A-Z, οι αριθμοί 0-9 και τα σύμβολα (hyphen) και _ (underscore) αλλά πρέπει να αποφεύγονται τα ειδικά σύμβολα. Αν κάποια εντολή ξεπερνά το μήκος μιας γραμμής οθόνης (command line), μπορούμε να συνεχίσουμε στην επόμενη θέτοντας \ (backslash) και πατώντας <RETURN>. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα7 από 27

2. χρήση αρχείων και καταλόγων στο Unix 2.1. τρέχων κατάλογοςεργασίας : pwd Τα πάντα στο Unix απεικονίζονται σε αρχεία τα οποία είναι οργανωμένα σε καταλόγους που σχηματίζουν μία ιεραρχία. Για να δούμε σε ποιον κατάλογο βρισκόμαστε χρησιμοποιούμε την εντολή pwd 2.2. αλλαγή καταλόγου εργασίας: cd Μπορούμε να κινηθούμε στην ιεραρχία των καταλόγων χρησιμοποιώνταςτην εντολή cd Ο προκαθορισμένος κατάλογος όταν μπαίνουμε στο σύστημα είναι ο /home/users/login_name, όπου login_name είναι ο κωδικός μας. Μπορούμε ανά πάσα στιγμή να μεταφερθούμε στον κατάλογο αυτόδίνοντας την εντολή cd (χωρίςορίσματα) ή την εντολή cd ~ (ο χαρακτήρας~ δηλώνει πάντα τον προσωπικόκατάλογο του χρήστη). Δίνονταςτην εντολή cd dirname κάνουμε τρέχοντα κατάλογο τον κατάλογο dirname. Η θέση του dirname θεωρείται ότι είναι σχετική με τον τρέχοντα κατάλογο αν ο πρώτοςχαρακτήραςδεν είναι ο / ή σχετική με το ριζικόκατάλογο (root directory) αν ξεκινά με /. παράδειγμα Έστω ότι βρισκόμαστε στον κατάλογο /home/users/user1. Αν δώσουμε την εντολή cd bin θα μεταφερθούμε στον κατάλογο /home/users/user1/bin (εφόσον υπάρχει ο κατάλογοςαυτός). Αν δώσουμε την εντολή cd /bin τότε θα μεταφερθούμε στον κατάλογο /bin. 2.3. δημιουργία καταλόγου : mkdir Για να δημιουργήσουμε έναν κατάλογο με όνομα dirname χρησιμοποιούμε την εντολή mkdir dirname K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα8 από 27

2.4. παρουσίαση των περιεχομένων ενόςκαταλόγου : ls Ένας κατάλογος περιέχει πολλά αρχεία και για να δούμε τα ονόματά τους χρησιμοποιούμε την εντολή ls ls χωρίςορίσματα είναι ισοδύναμη με την εντολή ls. Αν δώσουμε ορίσματα, τότε αν κάποιο από αυτά είναι αρχείο, η ls θα μας παρουσιάσει το όνομά του, ενώ αν είναι κατάλογος θα μας δώσει τα ονόματα των αρχείων και καταλόγων που υπάρχουν σε αυτόν. ls εκτός απόορίσματα μπορεί να δεχθεί και τιςπιο κάτω επιλ oγές: -a αναγκάζει την ls να δείξει και τα αρχεία των οποίων το όνομα ξεκινά με τελεία. Κανονικά τα αρχεία αυτά δεν εμφανίζονται (κρυφά αρχεία). -A όμοια με την -a αλλά δεν δείχνει τουςκαταλόγους. και.. -d αν κάποιο όρισμα είναι κατάλογος τότε παρουσιάζει μόνο το όνομα του καταλόγου και όχι τα αρχεία που περιέχει -F δίνει πληροφορίεςγια τον τύπο των αρχείων: οι κατάλογοι έχουν στο τέλοςτου ονόματός τουςένα / (slash), τα εκτελέσιμα αρχεία ένα * (asterisk) και οι συμβολικοί σύνδεσμοι ένα @ (at sign) -l δίνει περισσότερες πληροφορίες για κάθε αρχείο: δικαιώματα προσπέλασης, αριθμόσυνδέσμων, ιδιοκτήτη, μέγεθος και χρόνο τελευταίαςτροποποίησης -r η σειρά με την οποία παρουσιάζονται τα αρχεία αντιστρέφεται -R εκτελεί αναδρομικά την ls σε κάθε κατάλογο που βρίσκει -t τυπώνει τα αρχεία κατά σειρά που καθορίζεται απότο χρόνο τροποποίησης Μπορούμε να δώσουμε περισσότερες απόμία επιλογές, αλλά πρέπει πάντοτε όλες μαζί να δίνονται ωςπρώτο όρισμα. παράδειγμα Δώστε την εντολή ls a Θα δείτε τα αρχεία.login και.cshrc. Τα αρχεία.login και.cshrc είναι ειδικά αρχεία. Το.login εκτελείται κάθε φορά που συνδέεστε (κάνετε login) στο σύστημα. Το.cshrc κάθε φορά που αρχίζει η εκτέλεση του φλοιού csh (C-shell) ή του φλοιού tcsh. Ο φλοιός είναι το περιβάλλον που σας επιτρέπει να επικοινωνείτε με το λειτουργικό σύστημα. Κάθε χρήστης μπορεί να επιλέξει σε ποιον φλοιό θέλει να δουλεύει. Άλλοι φλοιοί είναι ο Bourne-shell (sh) (με την εκκίνηση του οποίου εκτελείται το αρχείο.profile, αν υπάρχει), ο Korn shell (ksh) κ.λπ. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα9 από 27

Άλλα ειδικά αρχεία που μπορεί να υπάρχουν είναι το αρχείο.logout που εκτελείται κάθε φορά που αποσυνδέεστε απότο σύστημα, το αρχείο.forward που καθορίζει σε ποια διεύθυνση προωθούνται τα μηνύματά σας. 2.5. παρουσίαση των περιεχομένων ενόςαρχείου : cat Για να δούμε τα περιεχόμενα ενός αρχείου κειμένου χρησιμοποιούμε την εντολή cat [-options] [filename(s)] (οι χαρακτήρες [ ] χρησιμοποιούνται για να δηλώσουν την προαιρετική ύπαρξη κάποιου ορίσματος). Επιλογές που μπορούμε να καθορίσουμε είναι οι ακόλουθες: -b αγνοεί τιςκενές γραμμές και τυπώνει αριθμούςγραμμών -n όμοια με το b αλλά δεν αγνοεί τιςκενές γραμμές -s τυπώνει ένα κενόόπου υπάρχουν πολλά διαδοχικά -v δείχνει τους χαρακτήρες που δεν μπορούν να τυπωθούν σαν αριθμούς Αν η εντολή cat δεν έχει ονόματα αρχείων στα ορίσματά τηςτότε διαβάζει δεδομένα από την προκαθορισμένη είσοδο (standard input), που συνήθως είναι το πληκτρολόγιο του τερματικού σας. Άρα παρουσιάζει ξανά ό,τι πληκτρολογείται. Για να δηλώσετε σε κάποια εντολή ότι έχει τελειώσει η είσοδος απότο πληκτρολόγιο, πιέζετε <CTRL>+<D>. Γενικά το <CTRL>+<D> στο Unix δηλώνει το τέλοςτου αρχείου (end of file). 2.6. παρουσίαση των περιεχομένων ενόςαρχείου : more Ορισμένα αρχεία έχουν μέγεθος μεγαλύτερο απ όσο χωράει σε μία οθόνη. Για να μπορέσουμε να δούμε τα περιεχόμενα των αρχείων αυτών χρησιμοποιούμε την εντολή more, η σύνταξη τηςοποίαςείναι: more [-nlines] [filename(s)] Αν υπάρχει η επιλογή nlines (π.χ. more 20 myfile) η εντολή more θα τυπώσει nlines γραμμές και μετά θα περιμένει να πιέσουμε το πλήκτρο <SPACE> για να τυπώσει τιςεπόμενεςnlines γραμμές ή το <RETURN> για να τυπώσει την επόμενη γραμμή. Αν δεν υπάρχει αυτή η επιλογή τότε θα τυπώσει τόσεςγραμμές όσεςείναι η οθόνη. Ό πωςκαι με την cat αν δεν τηςδώσουμε για ορίσματα ονόματα αρχείων θα παρουσιάζει ό,τι διαβάζει απότην προκαθορισμένη είσοδο. 2.7. μετονομασία και μετακίνηση αρχείων : mv Μπορούμε να αλλάξουμε το όνομα ενός αρχείου με την εντολή mv file1 file2 η οποία αλλάζει το όνομα του αρχείου file1 σε file2. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα10 από 27

Εάν η εντολή mv χρησιμοποιηθεί με τη σύνταξη mv file1 file2 filen directory μεταφέρει τα αρχεία file1, file2,, filen χωρίς να τους αλλάξει όνομα στον κατάλογο με όνομα directory. Οι δύο χρήσεις της εντολής mv (μετονομασία αρχείου και μεταφορά του σε άλλο κατάλογο) μπορούν να συνδυαστούν. παράδειγμα η εντολή mv ~/lex_programs/lex.yy.c ~/c_programs/paslex.c μεταφέρει το αρχείο lex.yy.c απότον κατάλογο ~/lex_programs στον κατάλογο ~/c_programs και το μετονομάζει σε paslex.c 2.8. αντιγραφή αρχείων : cp Μπορούμε να αντιγράψουμε αρχεία χρησιμοποιώνταςτην εντολή cp. Η σύνταξή της είναι μία απότιςακόλουθες cp f1 f2 cp f1 f2 fn dir cp r dir1 dir2 Στην πρώτη περίπτωση το αρχείο f1 αντιγράφεται στο αρχείο f2, στη δεύτερη περίπτωση στον κατάλογο dir δημιουργούνται αντίγραφα των αρχείων f1, f2,, fn και στην τρίτη περίπτωση δημιουργείται ο κατάλογοςdir2 (αν δεν υπάρχει ήδη) και αντιγράφονται σε αυτόν αναδρομικά όλα τα αρχεία και οι υποκατάλογοι του καταλόγου dir1. Στην τελευταία αυτή περίπτωση αν το dir2 είναι υποκατάλογοςτου dir1 τότε η εντολή αυτή δεν θα τελειώσει ποτέ. 2.9. σύνδεση αρχείων : ln Μπορούμε να αναφερόμαστε σε ένα αρχείο (ή έναν κατάλογο) με πολλά ονόματα ή απόδιαφορετικούςκαταλόγους, χωρίς να χρειάζεται να φτιάξουμε πολλά φυσικά αντίγραφα του αρχείου. Αυτόεπιτυγχάνεται δημιουργώνταςσυνδέσμους σε αυτόμε την εντολή ln, τηςοποίαςη σύνταξη είναι ln [-s] f1 f2 όπου f1 είναι το αρχείο που υπάρχει, ενώ f2 είναι το νέο όνομα του αρχείου που θα δημιουργηθεί. Όποιες αλλαγές γίνονται στο ένα από τα δύο αρχεία θα αντικατοπτρίζονται στο άλλο αρχείο και (στην περίπτωση που έχουμε χρησιμοποιήσει την επιλογή s) όταν σβηστεί το ένα το άλλο συνεχίζει να υπάρχει. Στην περίπτωση που θέλουμε να συνδέσουμε καταλόγους ή αρχεία που βρίσκονται σε διαφορετικά συστήματα αρχείων, τότε πρέπει να χρησιμοποιούμε την επιλογή -s, αλλά στην περίπτωση αυτή αν σβήσουμε το αρχικόαρχείο ο σύνδεσμοςείναι πλέον άχρηστος. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα11 από 27

2.10. διαγραφή αρχείων : rm Μπορούμε να διαγράψουμε ένα ή περισσότερα αρχεία χρησιμοποιώντας την εντολή rm, η σύνταξη τηςοποίαςείναι: rm [-irf] f1 fn αυτή σβήνει τα αρχεία f1,, fn. Οι επιλογές έχουν το εξήςνόημα: -i (interactive) μας ρωτάει αν θέλουμε να προχωρήσουμε σε διαγραφή του αρχείου -f (force) προχωρά στη διαγραφή του αρχείου χωρίςνα μαςρωτήσει -r (recursive) διαγράφει ολόκληρη ιεραρχία απόκαταλόγους Ένας κατάλογος ο οποίος είναι άδειος και δεν είναι ο τρέχων κατάλογος εργασίας μπορεί να διαγραφεί χρησιμοποιώνταςτην εντολή rmdir dirname K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα12 από 27

3. σχηματισμόςεντολών στο Unix 3.1. ανακατεύθυνση εισόδου και εξόδου Οι πιο πολλές εντολές του Unix διαβάζουν δεδομένα απόμια προκαθορισμένη είσοδο και γράφουν τα αποτελέσματα σε μια προκαθορισμένη έξοδο. Όταν ένας χρήστης δουλεύει σε έναν αλληλεπιδραστικό φλοιό όπως ο C-shell, τα αρχεία προκαθορισμένης εισόδου και εξόδου αντιστοιχούν προς το τερματικό του χρήστη (συγκεκριμένα η προκαθορισμένη είσοδος αντιστοιχεί προς το πληκτρολόγιο και η προκαθορισμένη έξοδοςπρος την οθόνη). Έτσι, ένα πρόγραμμα παίρνει τα στοιχεία εισόδου απότο τερματικόμαςκαι στέλνει τα στοιχεία εξόδου επίσηςστο τερματικό μας. Επίσης, υπάρχει ένα προκαθορισμένο αρχείο λαθών που χρησιμοποιείται για τα μηνύματα λαθών και άλλες πληροφορίες που σχετίζονται με την εκτέλεση μιας εντολής. Οι πληροφορίες που στέλνονται στο προκαθορισμένο αρχείο λαθών στέλνονται και στο τερματικόμας. Όλες οι διεργασίες του Unix αναγνωρίζουν τους επόμενους προκαθορισμένους περιγραφείςαρχείων (file descriptors) : stdin (standard input είσοδοςδεδομένων) stdout (standard output έξοδοςαποτελεσμάτων) και stderr (standard error έξοδοςσφαλμάτων) Κατά την εκτέλεση οποιασδήποτε διεργασίας του Unix (εντολής του Unix ή προγράμματος ενός χρήστη) οι περιγραφείς αυτοί έχουν προκαθορισμένες τιμές : ο περιγραφέαςstdin δείχνει στο πληκτρολόγιο του τερματικού, οι περιγραφείς stdout και stderr στην οθόνη του τερματικού. Ο χρήστης όμως μπορεί να συνδέσει τους περιγραφείς αυτούς με ονόματα αρχείων, έτσι ώστε να γίνει ανακατεύθυνση (redirection) τηςεισόδου ή/και τηςεξόδου μιαςδιεργασίαςαπό/προςτα συγκεκριμένα αρχεία. Ο περιγραφέαςstdin ανακατευθύνεται χρησιμοποιώνταςτο συμβολισμό < filename ο περιγραφέαςstdout ανακατευθύνεται χρησιμοποιώνταςτο συμβολισμό ή > filename >> filename και αν θέλουμε να ενώσουμε τις εξόδους αποτελεσμάτων stdout και σφαλμάτων stderr και να στείλουμε το αποτέλεσμα σε ένα αρχείο τότε χρησιμοποιούμε το συμβολισμό ή >& filename >>& filename Όταν χρησιμοποιούμε τους συμβολισμούς> filename και >& filename τότε εάν το αρχείο με όνομα filename δεν υπάρχει, δημιουργείται και η έξοδοςγράφεται σε αυτό. Εάν το αρχείο υπάρχει ήδη, τα προηγούμενα περιεχόμενά του διαγράφονται και αντικαθίστανται απότα καινούρια. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα13 από 27

Όταν χρησιμοποιούμε τουςσυμβολισμούς>> filename ή >>& filename, τότε εάν το αρχείο filename υπάρχει ήδη, η έξοδος θα προστεθεί στο τέλος του χωρίς τα προηγούμενά του περιεχόμενα να χαθούν. παράδειγμα cat < test > result αντιγράφει τα περιεχόμενα του αρχείου test στο αρχείο result. Όπως προαναφέραμε, με το συμβολισμό >> μπροστά απότο όνομα του αρχείου, τα στοιχεία γράφονται μέσα στο αρχείο αυτό μετά το τέλος των υφιστάμενων περιεχομένων του. Στο προηγούμενο παράδειγμα, τα περιεχόμενα του test θα προσαρτηθούν μετά το τέλοςτων περιεχομένων του result με την εντολή cat < test >> result 3.2. σωλήνωση διεργασιώ ν Μπορούμε επίσηςνα συνδέσουμε την προκαθορισμένη έξοδο μίαςδιεργασίαςμε την προκαθορισμένη είσοδο μίαςάλληςχρησιμοποιώνταςδιαύλουςή σωληνώσεις(pipes). Η δημιουργία μιαςσωλήνωσηςπροϋποθέτει την ύπαρξη ενός ζεύγους διεργασιών. Η πρώτη διεργασία θα δημιουργήσει την πληροφορία, η οποία στη συνέχεια θα περάσει απότη σωλήνωση για να δωθεί ωςείσοδοςστη δεύτερη διεργασία. Μία σωλήνωση δηλώνεται ως command1 command2 Μπορούμε βέβαια να φτιάξουμε σωληνώσειςμε περισσότερεςεντολές, π.χ. cmd1 cmd2 cmd3 cmdn Αν σε κάποιο σημείο θέλουμε να πάρουμε την ως τότε έξοδο σε κάποιο αρχείο μπορούμε να χρησιμοποιήσουμε την εντολή tee filename Για παράδειγμα, η εντολή cmd1 cmd2 tee my_file cmd3 θα γράψει την έξοδο τηςεντολήςcmd2 στο αρχείο my_file και στη συνέχεια θα την προωθήσει ωςείσοδο στην εντολή cmd3. παράδειγμα Ωςπαράδειγμα των παραπάνω θεωρείστε την εντολή grep Smith phones sort αυτή καλεί το πρόγραμμα grep το οποίο ξεδιαλέγει απότο αρχείο phones όλεςτις εγγραφές που περιέχουν τη σειρά χαρακτήρων Smith και δίνει αυτές τις εγγραφές στην προκαθορισμένη έξοδο του. Αυτές οι εγγραφές στη συνέχεια κατευθύνονται μέσω τηςσωλήνωσηςστην εντολή sort η οποία τις αντιμετωπίζει ως την προκαθορισμένη είσοδό της. Το τελικόαποτέλεσμα είναι να παρουσιαστεί στην K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα14 από 27

οθόνη ένας ταξινομημένος πίνακας με όλες τις γραμμές του αρχείου phones οι οποίεςπεριέχουν τη σειρά χαρακτήρων Smith. Σε μία γραμμή εντολών που περιέχει τόσο ανακατευθύνσεις όσο και σωληνώσεις, οι ανακατευθύνσεις έχουν μεγαλύτερη προτεραιότητα, δηλαδή πρώτα γίνεται η ανακατεύθυνση τηςεισόδου/εξόδου και μετά ο συσχετισμός τηςμε σωληνώσεις. Για παράδειγμα, η εντολή grep Smith phones sort > hangups επιλέγει απότο αρχείο phones τις εγγραφές που περιέχουν το Smith όπωςκαι προηγουμένως, τις ταξινομεί με το πρόγραμμα sort και γράφει τις ταξινομημένες εγγραφές στο αρχείο hang-ups (το προγενέστερο περιεχόμενο του αρχείου hangups χάνεται). 3.3. χρήση μεταχαρακτήρων Σχηματίζοντας μια εντολή στο Unix μπορούμε να χρησιμοποιήσουμε ορισμένους ειδικούς χαρακτήρες που λέγονται μεταχαρακτήρες (meta-characters) για να αναφερθούμε σε αρχεία με παρόμοιο όνομα χωρίς να χρειάζεται να πληκτρολογήσουμε όλα (ή ολόκληρα) τα ονόματα των αρχείων αυτών. Οι μεταχαρακτήρεςαυτοί είναι οι εξής: * δηλώνει μία οποιαδήποτε ακολουθία χαρακτήρων? δηλώνει έναν οποιονδήποτε χαρακτήρα [c1c2 cn] δηλώνει ένα χαρακτήρα απότουςc1, c2,, cn {word1, word2,, wordn} δηλώνει μία απότιςλέξειςword1, word2, wordn παραδείγματα ~/* όλα τα αρχεία στον προσωπικό κατάλογο του χρήστη ~/b* όλα τα αρχεία στον προσωπικό κατάλογο του χρήστη που ξεκινάνε με το γράμμα b *.c όλα τα αρχεία στον τρέχοντα κατάλογο που τελειώνουν με.c *chap* όλα τα αρχεία στον τρέχοντα κατάλογο που περιέχουν τη λέξη chap chap?.doc όλα τα αρχεία που αρχίζουν με chap, τελειώνουν σε.doc και ανάμεσα στο chap και το.doc υπάρχει μόνο έναςχαρακτήρας chap[0123456789].doc τα αρχεία chap0.doc, chap1.doc, chap2.doc, chap3.doc, chap4.doc, chap5.doc, chap6.doc, chap7.doc, chap8.doc, chap9.doc chap[0-9].doc το ίδιο με το προηγούμενο. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα15 από 27

Για να δούμε τα αρχεία που ξεκινούν από., πρέπει να χρησιμοποιήσουμε κάποια έκφραση που να αρχίζει με., διότι οι μεταχαρακτήρες δεν αντιστοιχούν ποτέστην αρχική τελεία. Επίσης, ο φλοιός εκλαμβάνει ωςλάθοςτην περίπτωση να μην υπάρχει κανένα αρχείο του οποίου το όνομα να ταιριάζει με τα patterns που δώσαμε και εμφανίζει το μήνυμα No match. προσοχή Πρέπει να τονιστεί ότι ο φλοιός αντικαθιστά τις εκφράσεις μεταχαρακτήρων που τυχόν περιέχει μια εντολή με τα ονόματα των αρχείων που ταιριάζουν προς τις εκφράσεις αυτές πριν εκτελέσει την εντολή. Εάν, για παράδειγμα, στον τρέχοντα κατάλογο εργασίαςυπάρχουν τα αρχεία file1, file2, file3, τότε πληκτρολογώντας cat * είναι σαν να λέμε cat file1 file2 file3 Επίσηςεντολές του τύπου cp *.c *.bak δεν έχουν ως αποτέλεσμα την αντιγραφή όλων των αρχείων με κατάληξη.c σε ομώνυμα με κατάληξη.bak. Αν έχουμε στον κατάλογο τα αρχεία a.c, b.c και c.c τότε η εντολή θα είναι ισοδύναμη με την cp a.c b.c c.c η οποία είναι συντακτικά λανθασμένη, ενώαν υπάρχουν μόνο τα a.c και b.c τότε θα είναι ισοδύναμη με την cp a.c b.c και θα καταστρέψει τα προηγούμενα περιεχόμενα του αρχείου b.c αντιγράφοντας πάνω του το αρχείο a.c. 3.4. προστασία ειδικών χαρακτήρων Αρκετοί χαρακτήρεςστο Unix (.,?,!, (, ), [, ], {, }, <, >, *, $, &, %,, ~,, `, <SPACE>, <ΤΑ Β>) έχουν ειδική σημασία για το φλοιό. Για να αναιρέσουμε την ειδική σημασία αυτών των χαρακτήρων, ώστε ο φλοιός να τους χειριστεί ως συνηθισμένουςχαρακτήρεςχωρίςνα τους«ερμηνεύσει» μπορούμε : να βάλουμε μπροστά τουςένα backslash (\) να τουςεσωκλείσουμε σε μονά εισαγωγικά ( ) να τουςεσωκλείσουμε σε διπλά εισαγωγικά ( ) Οι χαρακτήρες\,, είναι επίσηςειδικοί και πρέπει να προστατεύονται για να τύχουν χειρισμού ωςσυνηθισμένοι χαρακτήρες. Τα μονά εισαγωγικά παρέχουν σε όλουςτους χαρακτήρες που εσωκλείουν την προστασία αυτή. Τα διπλά εισαγωγικά λειτουργούν με τον ίδιο τρόπο, με την εξαίρεση ότι δεν προστατεύουν (άρα αφήνουν να ερμηνευθούν απότο φλοιό) τουςχαρακτήρες$ και \. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα16 από 27

Τα εισαγωγικά χρησιμεύουν επίσης για να περνάμε λέξεις ωςορίσματα σε εντολές. Εάν, για παράδειγμα, θέλουμε να βρούμε τις γραμμές που περιέχουν τη συμβολοσειρά Hello there στο αρχείο myfile θα πρέπει να δώσουμε την εντολή διότι η εντολή grep Hello there myfile grep Hello there myfile θα ερμηνευόταν ως αναζήτηση της συμβολοσειράς Hello στα αρχεία there και myfile. 3.5. μηχανισμόςhistory Ο φλοιός αποθηκεύει προσωρινά τις πιο πρόσφατες εντολές που έχουμε δώσει (το πόσες φαίνεται στη μεταβλητή history), οι οποίες μπορούν να εκτελεστούν ξανά, χωρίς να χρειάζεται να πληκτρολογηθούν εκ νέου. Αυτό γίνεται με τους εξής συμβολισμούς:!! δηλώνει την αμέσωςπροηγούμενη εντολή!n δηλώνει την εντολή με αριθμόn!-n δηλώνει την εντολή με αριθμόαυτόν την τελευταίας- n!str δηλώνει την πιο πρόσφατη εντολή που αρχίζει με str!?str δηλώνει την πιο πρόσφατη εντολή που περιέχει το str Μπορούμε να συμπληρώσουμε τις εντολές αυτές με κάποιο όρισμα το οποίο πληκτρολογούμε μετά τουςπαραπάνω συμβολισμούς. Π.χ. αν δώσουμε τιςεντολές ls!! bin η τελευταία εντολή θα είναι ισοδύναμη με την ls bin 3.6. μηχανισμόςalias Ο φλοιός μαςδίνει τη δυνατότητα να ορίσουμε ένα ψευδώνυμο (alias) για μια εντολή χρησιμοποιώντας την εντολή alias. Αν, για παράδειγμα, θέλουμε πάντοτε να λαμβάνουμε πληροφορίες για τα αρχεία ενός καταλόγου στη μορφή που τις επιστρέφει η εντολή ls -l μπορούμε να δώσουμε την εντολή alias myls ls l Αν στη συνέχεια δώσουμε την εντολή myls θα προκαλέσουμε την εκτέλεση τηςεντολήςls -l. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα17 από 27

Γενικά, η εντολή alias str command δηλώνει την αντιστοιχία της συμβολοσειράς str προς την εντολή command. Η αντιστοιχία αυτή ισχύει για τη συγκεκριμένη σύνδεσή μαςμε το σύστημα, μέχρι το επόμενο logout. Εάν θέλουμε η αντιστοιχία αυτή να ισχύει κάθε φορά που συνδεόμαστε με το σύστημα μπορούμε να γράψουμε την εντολή alias στο αρχείο.login. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα18 από 27

4. εντολέςχειρισμού αρχείων στο Unix 4.1. αλλαγή δικαιωμάτων προσπέλασης: chmod, chown, chgrp chmod χρησιμοποιείται για αλλαγή των δικαιωμάτων προσπέλασηςσε έναν κατάλογο ή αρχείο. Η σύνταξή τηςείναι ή chmod τριψήφιος-οκταδικός-αριθμόςfilename chmod [user_specifier] mode_change_specifier filename Στην πρώτη περίπτωση υπάρχουν οι εξής κανόνες: το πρώτο οκταδικό ψηφίο αναφέρεται στον ιδιοκτήτη του αρχείου, το δεύτερο στην ομάδα (group) όπου ανήκει ο ιδιοκτήτης του αρχείου και το τρίτο στους υπόλοιπους χρήστες. Σε κάθε ψηφίο προσθέτουμε 4 αν θέλουμε να δώσουμε δικαίωμα ανάγνωσης, 2 αν θέλουμε να δώσουμε δικαίωμα εγγραφής και 1 αν θέλουμε να δώσουμε δικαίωμα εκτέλεσης(το δικαίωμα εκτέλεσηςγια έναν κατάλογο έχει το νόημα ότι μπορούμε να κάνουμε τον κατάλογο αυτότρέχοντα κατάλογο εργασίας). Στη δεύτερη περίπτωση το (προαιρετικό) όρισμα user_specifier καθορίζει σε ποιον εφαρμόζεται η αλλαγή των προνομίων (u = owner ο ιδιοκτήτης, g = group η ομάδα όπου ανήκει ο ιδιοκτήτης, o = other οι υπόλοιποι χρήστες) και το mode_change_specifier δείχνει ποια αλλαγή θα επέλθει (+r, -r, +w, -w, +x, - x). παραδείγματα chmod 740 myfile δίνει όλα τα δικαιώματα στον ιδιοκτήτη του αρχείου myfile, δικαίωμα ανάγνωσης στα μέλη τηςίδιαςομάδαςκαι κανένα δικαίωμα στουςυπόλοιπουςχρήστες. chmod +x myfile δίνει δικαίωμα εκτέλεσηςσε όλουςγια το αρχείο myfile. chmod o-w myfile αφαιρεί το δικαίωμα εγγραφής για το αρχείο myfile απότους χρήστες που δεν ανήκουν στην ίδια ομάδα με τον ιδιοκτήτη. K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα19 από 27

Με τις εντολές chown και chgrp μπορούμε να μεταβιβάσουμε σε άλλους την ιδιοκτησία ενός χρήστη ή μιας ομάδας χρηστών πάνω σε μια ομάδα αρχείων και καταλόγων. Η σύνταξη των εντολών αυτών έχει τη μορφή: chown owner file chgrp group file όπου file είναι μια ομάδα αρχείων και καταλόγων των οποίων θέλουμε να αλλάξει η ιδιοκτησία. 4.2. σύγκριση αρχείων : cmp, diff cmp f1 f2 συγκρίνει τα αρχεία f1 και f2. diff f1 f2 κάνει την ίδια δουλειά με την cmp αλλά δίνει διαφορετικού τύπου έξοδο. Με την εντολή cmp μπορούμε να εξακριβώσουμε πολύ γρήγορα αν υπάρχουν διαφορές μεταξύ των αρχείων αλλά δεν παίρνουμε πολλές πληροφορίεςγια τιςδιαφορές τους. Αντίθετα με την εντολή diff δημιουργείται μια όσο το δυνατόπιο σύντομη λίστα με οδηγίες που δείχνουν τι αλλαγές πρέπει να γίνουν στο ένα αρχείο για να μετασχηματιστεί στο άλλο. 4.3. πληροφορίεςγιαένααρχείο : file, head, tail, wc file f1 fn δίνει πληροφορίεςγια το περιεχόμενο των αρχείων f1,, fn. head -no_lines filename τυπώνει τιςno_lines πρώτεςγραμμές του αρχείου filename. tail -no_lines filename τυπώνει τιςno_lines τελευταίεςγραμμές του αρχείου filename. tail +no_lines filename παραλείπει τις γραμμές 1 no_lines του αρχείου filename και τυπώνει τις υπόλοιπες. wc [-lwc] filename επιστρέφει το μέγεθοςτου αρχείου filename σε γραμμές, λέξειςή/και χαρακτήρες(l = lines, w = words, c = characters). K. Βασιλάκης, Α. Σωτηροπούλου, Σελίδα20 από 27