ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
>_ vi editor Είναι ο βασικός επεξεργαστής κειμένου στο Unix +- Χρησιμοποιείται κυρίως για τη δημιουργία και τροποποίηση των scripts +- Σύνταξη vi όνομα αρχείου Αν το αρχείο δεν υπάρχει τότε θα δημιουργηθεί +- Υπάρχουν δύο καταστάσεις λειτουργίας του vi Κατάσταση εντολών Κατάσταση εισαγωγής κειμένου
>_ Έλεγχος οθόνης και δρομέα (1/2) +- : Μετακίνηση αριστερά κάτω επάνω δεξιά κατά ένα χαρακτήρα +- h j k l : Όπως και προηγουμένως +- 0 $ Μετακίνηση στην αρχή τέλος της τρέχουσας γραμμής +- H L M Μετακίνηση στην πρώτη τελευταία μεσαία γραμμή της οθόνης +- G (n)g :Μετακίνηση στην τελευταία n οστή γραμμή του αρχείου
>_ Έλεγχος οθόνης και δρομέα (2/2) +- ^F ^B : Μετακίνηση κάτω επάνω μία οθόνη +- ^D ^U : Μετακίνηση κάτω επάνω μισή οθόνη +- ^E ^Y : Εμφάνιση μίας επιπλέον γραμμής στο τέλος αρχή της οθόνης +- ^G : Εμφάνιση του αριθμού της τρέχουσας γραμμής +- ^L : Επανασχεδίαση της οθόνης
>_ Εντολές διόρθωσης (1/4) +- i(t) [Esc] a(t) [Esc] : Εισαγωγή του κειμένου t πριν μετά τον δρομέα +- I(t) [Esc] A(t) [Esc] : Εισαγωγή του κειμένου t στην αρχή τέλος της τρέχουσας γραμμής +- o(t) [Esc] O(t) [Esc] : Δημιουργία μίας κενής γραμμής μετά πριν την τρέχουσα γραμμή και εισαγωγή του κειμένου t +- x (n)x : Διαγραφή ενός n χαρακτήρων από τη θέση του δρομέα και μετά +- Y (n)y : Αποθήκευση μίας n γραμμών από την τρέχουσα γραμμή και μετά
>_ Εντολές διόρθωσης (3/4) +- D : Διαγραφή των χαρακτήρων μέχρι και το τέλος της τρέχουσας γραμμής +- r(c) Αντικατάσταση του τρέχοντα χαρακτήρα με το χαρακτήρα c +- R(t) [Esc] : Αντικατάσταση των χαρακτήρων πλήθους όσο το μήκος του κειμένου t με το t +- ~ : Αλλαγή από μικρό σε κεφαλαίο και αντίστροφα του τρέχοντα χαρακτήρα +- J : Συνένωση της τρέχουσας και της επόμενης γραμμής
>_ Εντολές διόρθωσης (4/4) +-. : Επανάληψη της πιο πρόσφατης διόρθωσης +- u : Ακύρωση της πιο πρόσφατης διόρθωσης +- U: Ακύρωση της πιο πρόσφατης διαγραφής +- ΖΖ: Φύλαξη των αλλαγών στο αρχείο και έξοδος
>_ Εντολές αναζήτησης +- /(s) [Return]?(s) [Return] : Αναζήτηση προς τα εμπρός πίσω της συμβολοσειράς s (η. στο s ερμηνεύεται σαν οποιοσδήποτε χαρακτήρας, το.* ταιριάζει με μηδέν ή περισσότερους χαρακτήρες, το ^ και το $ υποδηλώνουν την αρχή και το τέλος μίας γραμμής, αντίστοιχα) +- n N : Επανάληψη μίας αναζήτησης προς την ίδια αντίθετη κατεύθυνση
>_ Εντολές κειμενογράφου γραμμής ed (1/2) +- :(n)1, (n)2d[return]: Διαγραφή των γραμμών από την (n)1 μέχρι και την (n)2 (εκτός από αριθμοί, τα (n)i μπορεί να είναι., που δηλώνει την τρέχουσα γραμμή, ή $, που δηλώνει την τελευταία γραμμή) +- :(n)1,(n)2s/(s)1/(s)2[return]: Αντικατάσταση της συμβολοσειράς (s)1 με τη συμβολοσειρά (s)2 από τη γραμμή (n)1 μέχρι και τη (n)2 (για τις συμβολοσειρές (s)i, ισχύει ή ίδια σύμβαση όπως και στις εντολές αναζήτησης) +- r (f) [Return]: Εισαγωγή του αρχείου f μετά την τρέχουσα γραμμή
>_ Εντολές κειμενογράφου γραμμής ed (2/2) +- :w [Return] : Σώσιμο των αλλαγών στο αρχείο +- :q [Return]: Έξοδος +- :q! [Return] : Έξοδος χωρίς σώσιμο των αλλαγών στο αρχείο +- :wq [Return] :x [Return]: σώσιμο των αλλαγών στο αρχείο και έξοδος (όπως και η εντολή ZZ)
>_ Εντολές Unix (συνέχεια) /# date: Μας δείχνει την ημερομηνία /# hostname: Μας δείχνει το όνομα του μηχανήματός μας /# ps: Εμφάνιση κατάστασης τρεχουσών διεργασιών /# echo: Εμφάνιση στην οθόνη της ακολουθίας χαρακτήρων που δώσαμε +- echo [επιλογές] ακολουθία χαρακτήρων π.χ echo hello world +- [-n] Εμφάνιση στην ίδια γραμμή
>_ Εντολές Unix (echo) /# echo: Εμφάνιση στην οθόνη της ακολουθίας χαρακτήρων που δώσαμε +- [-e]: ερμηνεία του τι έπεται μετά το \ σε χαρακτήρα διαφυγής: \b backspace \n νέα γραμμή \t οριζόντιο κενό \v κάθετο κενό π.χ echo -e \n Project1: \n\n\tplan \n\twrite \n\ttest\n Προσοχή!: μετά την e η ακολουθία πρέπει να περικλείεται από
>_ Εντολές Unix (echo) /# echo Παραδείγματα: +- echo my name is \t chris +- echo e my name is \t chris +- echo e my os is \t unix +- echo * +- echo.?????
>_ Προγραμματισμός μεταβλητών (1/3) +- όνομα μεταβλητής= τιμή μεταβλητής Π.χ myname=chris (όχι myname = chris ) +- $όνομα μεταβλητής: επιστροφή τιμής της μεταβλητής π.χ echo $myname Π.χ. echo my name is $myname /# unset όνομα μεταβλητής: διαγράφεται η μεταβλητή Π.χ myname=chris echo $myname unset myname echo $myname
>_ Προγραμματισμός μεταβλητών (2/3) +- declare [επιλογές ] όνομα μεταβλητής -a: η μεταβλητή είναι πίνακας -i: η μεταβλητή είναι ακέραιος -r: η μεταβλητή είναι μόνο για ανάγνωση
>_ Προγραμματισμός μεταβλητών (3/3) /# $ (εντολή) επιστροφή της εξόδου της εντολής π.χ. echo $(whoami) echo $(ls) echo $ w Λάθος echo $ w Λάθος echo $(w) Σωστό
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity Dennis Ritchie