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

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

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

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο

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

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

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

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

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

Αβδέλαρου Κωνσταντίνα

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

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

Λειτουργικά Συστήματα - Εργαστήριο 6. 6ο Εργαστήριο. Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών. Χρήστες και Ομάδες Χρηστών

% ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul /usr/bin/wc

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

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

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

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

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

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

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

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

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

Shell Scripts: loops / if / test

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

Εργαστήριο Λειτουργικών Συστημάτων. Shell Programming

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

Εισαγωγή στον Προγραμματισμό

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

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

Λειτουργικά Συστήματα. Άσκηση Πράξη. Shell Programming

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX. Χρήστες και Ομάδες στο Unix. Δικαιώματα στο Unix. Παράδειγμα Δένδρου Συστήματος Αρχείων

2.Shell, users, groups και privilegies

Ενότητα 1 Διάλεξη 1β

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

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

Εισαγωγή στην Tcl. Τί είναι η Tcl;

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

Επαναληπτικές Ασκήσεις

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

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Εργαστήριο 4: Εργαλεία Συστήματος UNIX. Διδάσκων: Γιώργος Χατζηπολλάς. Στο εργαστήριο θα μελετηθούν: Εργαστηριακή Άσκηση 2 Παραδείγματα χρήσης awk

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Κεφάλαιο 5. Έλεγχος Πρόσβασης σε Λειτουργικά Συστήματα

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

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

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 20 Μαρτίου 2011 Οµάδα

Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΡΓΑΣΤΗΡΙΟ #1 Το Λειτουργικό Σύστημα Unix

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

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

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

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

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash

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

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

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

Εισαγωγή στην Αριθμητική Ανάλυση

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

Σύντομη εισαγωγή στο Unix

Γνωρίστε το Excel 2007

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

Το Shell. Προγραμματισμός II 1

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

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

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

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

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

Transcript:

1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) less (Το ίδιο με την εντολή «cat», αλλά επιτρέπει την κύλιση στο κείμενο. more (Το ίδιο με την εντολή «less») echo 'Welcome' (Εμφανίζει στην οθόνη ό,τι πληκτρολογήσουμε μέσα σε εισαγωγικά) echo 'ΟΚ!!! > test.txt (Εγγράφει στο αρχείο κειμένου «test.txt» το κείμενο «ΟΚ!!!». Εάν το αρχείο «test.txt» δεν υπάρχει τότε δημιουργείται. echo $(whoami) > test.txt (Εγγράφει στο αρχείο κειμένου «test.txt» ό,τι προκύπτει από την εκτέλεση της εντολής «whoami». echo 'END >> test.txt (Προσαρτεί στο τέλος του αρχείου «test.txt» μια σειρά με την λέξη «END». finger (Δείχνει μια λίστα με τους συνδεδεμένους χρήστες) talk «username άλλου χρήστη» (Επιτρέπει την συνομιλία μεταξύ δύο χρηστών) ps ax (Δείχνει μια λίστα με όλα τα φορτωμένα processes και τα PID) kill (Μπορείτε να σταματήσετε το process ή το πρόγραμμα με process ID π.χ. 122 πληκτρολογώντας «kill 122». man «command» (Δείχνει τον τρόπο χρήσης της «command»). π.χ. man cp (δείχνει τον τρόπο χρήσης της εντολής «cp») «command» --help (Βοήθεια για τον τρόπο χρήσης της «command»). π.χ. cp -help (Βοήθεια για τον τρόπο χρήσης της «cp») Αναζήτηση-εντοπισμός αρχείων με την εντολή «find». find /home -user pc17 (Εντοπισμός όλων των αρχείων του καταλόγου «home», τα οποία έχουν κτήτορα (ιδιοκτήτη) τον χρήστη «pc17».) find /usr -name *stat (Εντοπισμός όλων των αρχείων του καταλόγου «usr», των οποίων το όνομα λήγει σε «stat».)

2 find. -perm 755 (Εντοπισμός όλων των αρχείων του τρέχοντος καταλόγου «.», στα οποία ο κτήτωρ έχει δικαιώματα rwx, ενώ η ομάδα και οι άλλοι έχουν δικαιώματα r-x.) read p Please give an answer: ans (Ό,τι πληκτρολογηθεί στο prompt που εμφανίζεται γίνεται τιμή της μεταβλητής ans, π.χ. «Yes») echo $ans Yes Αναζήτηση-εντοπισμός κειμένου μέσα σε αρχεία με την εντολή «grep» Η εντολή «grep» αναζητεί σε δοσμένο αρχείο γραμμές που περιέχουν συγκεκριμένη σειρά χαρακτήρων ή λέξεις. grep ακολουθία χαρακτήρων «όνομα αρχείου» Εάν κατά την αναζήτηση δεν θέλουμε να διακρίνονται πεζά από κεφαλαία τότε χρησιμοποιούμε το flag «-i» (insensitive). grep -i ακολουθία χαρακτήρων «όνομα αρχείου» Εάν η προς εντοπισμό ακολουθία χαρακτήρων αποτελεί ολόκληρη λέξη τότε συμπληρώνουμε το flag με «w»: grep -iw λέξη «όνομα αρχείου» Εάν επιδιώκουμε αναζήτηση μιας ακολουθίας χαρακτήρων σε όλα τα αρχεία όλων των υποκαταλόγων του τρέχοντος καταλόγου τότε χρησιμοποιούμε το flag «-r»: grep -r ακολουθία χαρακτήρων * Η εντολή pgrep επιτρέπει τον εντοπισμό ενός process ή προγράμματος που είναι ενεργό εκείνη την στιγμή χρησιμοποιώντας το όνομά του και επιστρέφει το Process ID (PID), π.χ.: pgrep xterm Συνδυασμός των εντολών «find» και «grep» Εάν θέλουμε η εντολή «grep» να αναζητήσει μια ακολουθία χαρακτήρων μέσα σε αρχεία που εντοπίζουμε με την εντολή «find», τότε συνδυάζουμε τις δύο εντολές:

3 Οι δύο εντολές που ακολουθούν αναζητούν την ακολουθία χαρακτήρων «done >» σε αρχεία του τρέχοντος καταλόγου και των υποκαταλόγων του. find. -type f -exec grep done > {} \; find. -type f xargs grep done > Πολύ χρήσιμες είναι οι εντολές sed και awk που όμως απαιτούν μεγαλύτερο βαθμό εξοικείωσης. Πιο συγκεκριμένα με την εντολή sed μπορούμε χειρισθούμε κείμενα με την βοήθεια regular expressions. Η εντολή awk είναι πιο ισχυρή και αποτελεί γλώσσα αναζήτησης και επεξεργασίας μοτίβων. sed (stream editor), s/ (substitute), /g (global) Πολιτική δικαιωμάτων (permissions) Κάθε αρχείο ή κατάλογος στο Linux συνδέεται με δικαιώματα πρόσβασης (τί επιτρέπεται να γίνει με το αρχείο), τα οποία είναι τριών τύπων: Ανάγνωσης (r) Τροποποίησης (w) Εκτέλεσης (x) Τα δικαιώματα αυτά ορίζονται για τρεις τύπους χρηστών: Τον κτήτορα (owner) του αρχείου Την ομάδα (group) που ανήκει ο κτήτωρ Τους άλλους χρήστες (other users) Έτσι προκύπτουν 9 bits πληροφορίας καθένα από τα οποία μπορεί να πάρει δύο τιμές: επιτρέπεται ή απαγορεύεται. Αυτόματα «κτήτωρ» ενός αρχείου γίνεται ο χρήστης που το δημιουργεί και έχει πλήρη δικαιώματα (read, write, execute). Ο υπερχρήστης root έχει όλα τα δικαιώματα. Σε κάθε αρχείο ή κατάλογο στο Linux μπορεί να αποδοθεί ένας κτήτωρ (owner). Με κάθε αρχείο ή κατάλογο συνδέεται μια πολιτική δικαιωμάτων. Δηλαδή, ποιοι χρήστες ή ομάδες χρηστών θα έχουν δικαιώματα ανάγνωσης (r), τροποποίησης (w) και εκτέλεσης (x). Η τροποποίηση περιλαμβάνει και το σβήσιμο ή την μετακίνηση. Ο κτήτωρ μπορεί να αλλάξει τις ιδιότητες ενός αρχείου του π.χ. να το μετατρέψει σε αναγνώσιμο, αλλά μη εγγράψιμο και μη εκτελέσιμο. Ο υπερχρήστης μπορεί να δώσει σε κάποιον χρήστη δικαιώματα πρόσβασης π.χ.

4 στην ανάγνωση και στην εκτέλεση ενός προγράμματος αλλά να του στερήσει το δικαίωμα τροποποίησης. chmod (Αλλάζει τα δικαιώματα ενός αρχείου [r, w, x]) chown (Αλλάζει τον κτήτορα ενός αρχείου) Δικαιώματα σε μορφή κειμένου Αποτελούνται από 10 χαρακτήρες. Ο πρώτος χαρακτήρα φανερώνει τον τύπο του αρχείου, δηλαδή κατάλογος (d), σύνδεσμος (l) ή συνηθισμένο αρχείο (-). Οι επόμενοι 9 χαρακτήρες αντιστοιχούν σε δικαιώματα, χωρισμένα σε τρεις ομάδες: κτήτωρ (owner), ομάδα (group), άλλοι (others). Κάθε ομάδα αποτελείται από τρία σύμβολα: rwx (με αυτήν την σειρά). Εάν κάποιο δικαίωμα δεν παρέχεται, τότε στην θέση του αντίστοιχου χαρακτήρα μπαίνει μια παύλα «-». Π.χ. -rwxr--r-- 0123456789 Το σύμβολο στην θέση 0 (-) δείχνει ότι πρόκειται για συνηθισμένο αρχείο. Τα σύμβολα στις θέσεις 1 έως 3 (rwx) αποτελούν δικαιώματα του κτήτορα του αρχείου. Δηλαδή έχει πρόσβαση ανάγνωσης, εγγραφής-τροποποίησης και εκτέλεσης. Τα σύμβολα στις θέσεις 4 έως 6 (r--) αναφέρονται στα αντίστοιχα δικαιώματα της ομάδας στην οποία ανήκει ο κτήτωρ. Εδώ η ομάδα έχει μόνο δικαίωμα ανάγνωσης. Τα σύμβολα στις θέσεις 7 έως 9 (r--) αναφέρονται στα αντίστοιχα δικαιώματα των «άλλων». dr-x------ Εδώ πρόκειται για κατάλογο (d) στον οποίον ο κτήτωρ έχει δικαιώματα ανάγνωσης και εκτέλεσης, η ομάδα και οι άλλοι δεν έχουν κανένα δικαίωμα. Δικαιώματα σε αριθμητική (οκταδική) μορφή Παράδειγμα παράστασης αριθμού στο δεκαδικό σύστημα: 92 10 = 9x10 1 + 2x10 0 Παράδειγμα παράστασης του ίδιου αριθμού οκταδικό σύστημα: 134 8 = 1x8 2 + 3x8 1 + 4x8 0 Τα δικαιώματα μπορούν να παρασταθούν και σε αριθμητική μορφή (π.χ. κατά την χρήση της εντολής «chmod») με 4 ψηφία από το 0 έως το 7. Το πρώτο ψηφίο «0» σημαίνει ότι ακολουθεί οκταδική παράσταση (συνήθως παραλείπεται). Το δεύτερο

5 ψηφίο αναφέρεται στα δικαιώματα του κτήτορα, το τρίτο στα δικαιώματα της ομάδας και το τέταρτο στα δικαιώματα των άλλων. Οκταδικό ψηφίο Μορφή κειμένου Δυαδική τιμή Σημασία 0 --- 000 Απαγόρευση κάθε πρόσβασης 1 --x 001 Επιτρέπεται μόνο εκτέλεση 2 -w- 010 Επιτρέπεται μόνο εγγραφή 3 -wx 011 Επιτρέπονται μόνο εγγραφή και εκτέλεση 4 r-- 100 Επιτρέπεται μόνο ανάγνωση 5 r-x 101 Επιτρέπονται μόνο ανάγνωση και εκτέλεση 6 rw- 110 Επιτρέπονται μόνο ανάγνωση και εγγραφή 7 rwx 111 Επιτρέπονται όλα Παραδείγματα: 644 755 κτήτωρ: δικαιώματα ανάγνωσης και εγγραφής ομάδα : μόνο δικαίωμα ανάγνωσης άλλοι : μόνο δικαίωμα ανάγνωσης. κτήτωρ: δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης ομάδα : δικαιώματα ανάγνωσης και εκτέλεσης άλλοι : δικαιώματα ανάγνωσης και εκτέλεσης Παραδείγματα χρήσης chmod, chown Έστω ότι δημιουργήσατε το script «dokimi.sh» και θέλετε να το μετατρέψετε σε εκτελέσιμο. Πληκτρολογήστε: chmod 755 dokimi.sh Επίσης με: chmod +x dokimi.sh Προκειμένου να αλλάξετε τον κτήτορα του αρχείου «file» σε «ego» πρέπει να έχετε δικαιώματα root (chown ego file).

6 Ο απλός κειμενογράφος «nano» Για την σύνταξη κειμένων μπορούμε να χρησιμοποιήσουμε τον κειμενογράφο «nano». Έστω ότι θέλετε να δημιουργήσετε το αρχείο κειμένου test.txt και να συντάξετε σ αυτό ένα κείμενο. Πληκτρολογήστε: nano test.txt Το τερματικό μετατρέπεται τότε σε οθόνη επεξεργασίας κειμένου. Πληκτρολογήστε δοκιμαστικά δύο σειρές κειμένου. Στο κάτω μέρος της οθόνης υπάρχουν συνδυασμοί πλήκτρων με την λειτουργία τους. Είναι χρήσιμο να θυμάστε τους εξής συνδυασμούς πλήκτρων: ALT + A (επιλογή κειμένου με τα βέλη) ALT + 6 (αντιγραφή επιλογής στο πρόχειρο (clipboard) CTRL + U (επικόλληση επιλογής)(^u) Δοκιμάστε αντιγραφή και επικόλληση τμημάτων του κειμένου που συντάξατε. Δώστε εντολή για έξοδο από τον κειμενογράφο με «^X» και πληκτρολογήστε «y» για να σώσετε το κείμενο. Πατήστε μετά «Enter» για να σώσετε με το ίδιο όνομα αρχείου με αυτό που ξεκινήσατε. Χρήση των εντολών του bash για δημιουργία script Είναι δυνατόν να ομαδοποιήσουμε την εκτέλεση μιας σειράς εντολών του shell συντάσσοντας ένα script. Π.χ. γράφουμε με έναν editor τις ακόλουθες εντολές

7 ls mkdir test1 echo OK! > test1/test1.txt cat test1/test1.txt και σώζουμε το script με το όνομα «script.sh». Αφού το μετατρέψουμε σε εκτελέσιμο (chmod 755 script.sh) το εκτελούμε με:./script.sh Οι εντολές μπορούν να γραφούν σε μια γραμμή, αρκεί να διαχωρίζονται μεταξύ τους με «;». cd..; ls; mkdir test1; echo OK! > test1/test1.txt; cat test1/test1.txt Ένα script μπορεί να συμπεριλάβει διαδοχικές εντολές που συνθέτουν ένα πρόγραμμα. Τα πιο συνηθισμένα στοιχεία ενός τέτοιου προγράμματος είναι το «for-do loop» και η εντολή «if». Το «for-do loop» χρησιμοποιείται για επαναλαμβανόμενη εκτέλεση μιας ή περισσοτέρων εντολών. for i in {1..5} do echo ΟΚ! done > test.txt Το for i in {1..5} ισοδυναμεί με for i in 1 2 3 4 5 Δοκιμάστε να βάλετε μετά το "ΟΚ!" την τιμή της "i". while read line do name=$line echo "Text from file: $name" done < test.txt Η εντολή «if» χρησιμοποιείται για να ελεγχθεί εάν αληθεύει μια συνθήκη. Εάν αληθεύει η συνθήκη τότε εκτελούνται κάποιες εντολές. Στην αντίθετη περίπτωση εκτελούνται κάποιες άλλες ή και καμία. count=100 if [ $count -eq 100 ] then

8 echo count is 100 else echo count is not 100 fi if [ $(whoami)!= 'root' ]; then echo No permission to reboot fi Το κέλυφος bash προσφέρει μεγάλη ποικιλία λογικών τελεστών, τόσο για αριθμητικές συγκρίσεις όπως eq (ίσο), -gt (μεγαλύτερο από), -lt (μικρότερο από), όσο και για συγκρίσεις ακολουθιών χαρακτήρων, όπως = (ίδιο),!= (διάφορο) και πολλοί άλλοι. cd Desktop/PDBs for pdb in 1A8U.pdb1 1ADW.pdb1 1AI9.pdb1 do sed 's/his/hse/g' $pdb > H_$pdb.pdb done Το s στην εντολή sed σημαίνει να αντικατασταθεί (substitute) ό,τι υπάρχει μεταξύ του πρώτο και δευτέρου / με αυτό που υπάρχει μεταξύ του δευτέρου και του τρίτου /. Το g στο τέλος σημαίνει παντού (global). Αριθμητικές πράξεις με Shell Scripts Οι μεταβλητές σε ένα shell script αντιμετωπίζονται εξ ορισμού ως χαρακτήρες και όχι ως αριθμοί. Αυτό εισάγει μια δυσκολία στο να εκτελούμε αριθμητικές πράξεις. Οι γλώσσες προγραμματισμού με scripts όπως είναι η Tcl, η Perl ή η Python είναι καταλληλότερες όταν χρειάζεται μαθηματικός προγραμματισμός. Εντούτοις, είναι δυνατόν να κάνουμε μαθηματικές πράξεις με shell scripts. Η εντολή declare Με την εντολή αυτή μπορούμε π.χ. να δηλώσουμε ότι ο τύπος μιας μεταβλητής είναι ακέραιος αριθμός. Το παράδειγμα που ακολουθεί δείχνει σε τί εξυπηρετεί η εντολή declare:

9 $ n=6/3 $ echo $n 6/3 $ declare -i n # Το -i δηλώνει ότι η μεταβλητή που ακολουθεί είναι ακέραιος (integer) # αριθμός. $ echo $n 2 Η εντολή expr ΠΡΟΣΟΧΗ στα διάκενα! $ z=5 $ z=$(expr $z+1) $ echo $z 5+1 # Χρειάζονται κενά γύρω από το "+" για γίνει η πράξη. $ z=$(expr $z + 1) $ echo $z 6 Η εντολή let Πιο ειδική για αριθμητικές πράξεις είναι η εντολή let. Εδώ, σε αντίθεση με την expr, πρέπει να αποφεύγονται τα διάκενα. Έχει ενδιαφέρον ότι η let δείχνει ανοχή στην παράληψη του "$" μπροστά από τις μεταβλητές. $ let z=5 $ echo $z 5 $ let z=$z+1 $ echo $z 6 # Τα διάκενα γύρω από το "+" δεν δουλεύουν με την let. $ let z=$z + 1 -bash: let: +: syntax error: operand expected (error token is "+") # Ενώ: $let z=z+1 $echo $z 7

1 Εναλλακτικά, αντί να χρησιμοποιήσουμε την let μπορούμε να βάλουμε την μαθηματική έκφραση μέσα σε διπλή παρένθεση. # Δουλεύει χωρίς διάκενα $ ((e=5)) $ echo $e 5 # Δουλεύει και με διάκενα $ (( e = e + 3 )) $ echo $e 8 $ (( e=e+4 )) $ echo $e 12 Η εντολή bc ΕΠΙΤΡΕΠΕΙ σε συνδυασμό με την scale υπολογισμούς floating point. A=12 ; bc <<< "scale=2; $A/5" 2.40