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

Σχετικά έγγραφα
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

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

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

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση στο Λειτουργικό Σύστημα UNIX

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή IF ΕΝΤΟΛΗ IF. Παράδειγμα #1. Παράδειγμα #1

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

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

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

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

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

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

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

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

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

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

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

PowerShell Εαρινό Εξάμηνο

Διάλεξη 18η: Διαχείρηση Αρχείων

Τυπικές χρήσεις της Matlab

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

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

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

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

Θέματα Προγραμματισμού Η/Υ

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

Διάλεξη 9 Προγραμματισμός Κελύφους

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

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

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

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

2.Shell, users, groups και privilegies

Πληρουορική Γ Γσμμασίοσ

Εισαγωγή στον Προγ/μό Υπολογιστών

Μεταφραστής (Compiler)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Basic Missions

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

Δομημένος Προγραμματισμός

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Δομημένος Προγραμματισμός

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

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

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

ΗΥ-150. Προγραμματισμός

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

ΗΥ-150. Προγραμματισμός

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

Υπολογισμός - Εντολές Ελέγχου

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

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

>_ ΔΕΣΜΕΥΜΕΝΑ ΟΝΟΜΑΤΑ +- Υπάρχουν ορισμένες μεταβλητές, οι οποίες έχουν πληροφορίες για τη λειτουργία ορισμένων προγραμμάτων με άμεση συνέπεια, να μην μπορούν να χρησιμοποιηθούν από εμάς. +- Κάποιες από αυτές είναι: +- USER Το όνομα του χρήστη +- HOME Το home directory του χρήστη +- SHELL Το κέλυφος που χρησιμοποιεί +- JAVA Η διαδρομή που έχει εγκατασταθεί η java +- RANDOM Γεννήτρια τυχαίων αριθμών +- Προκειμένου να πάρουμε την τιμή των μεταβλητών αυτών τις χρησιμοποιούμε όπως και τις υπόλοιπες

>_ ΔΗΜΙΟΥΡΓΙΑ SCRIPT +- Προκειμένου να εκτελέσουμε μία σειρά εντολών πρέπει να δημιουργήσουμε ένα αρχείο script το οποίο να τις περιέχει. +- Κάθε αρχείο script ξεκινάει με το όνομα του φλοιού που είναι γραμμένο, ώστε να διερμηνευτεί ανάλογα. Π.χ #!/bin/bash #!/bin/bourne Ποιο φλοιό χρησιμοποιεί το σύστημά μας? Hello world script (δημιουργούμε το αρχείο test.sh και γράφουμε τις παρακάτω γραμμές) #!/bin/bash echo hello world +- $chmod +x test.sh, Κάνουμε το αρχείο εκτελέσιμο +-./test.sh, εκτελούμε το αρχείο

>_ ΕΙΔΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ +- Υπάρχουν κάποιες μεταβλητές οι οποίες είναι ειδικού σκοπού καθώς εκτελούν συγκεκριμένες εργασίες. Αυτές είναι: +- $0 Το όνομα του script +- $n Ο αριθμός των ορισμάτων του script. π.χ $1 το πρώτο, $2 το δεύτερο κτλ +- $# Ο αριθμός των ορισμάτων του script +- $@ Όλα τα ορίσματα του script +- $? Η κατάσταση εξόδου που επέστρεψε η τελευταία εντολή

>_ ΕΙΣΟΔΟΣ ΤΙΜΩΝ +- Μάθαμε πώς να εμφανίζουμε τιμές μεταβλητών και μηνύματα. Πρέπει όμως να μπορούμε να εισάγουμε και δεδομένα. Για την εισαγωγή δεδομένων από το χρήστη χρησιμοποιούμε την εντολή read. +- Συντάσσεται read [επιλογές] όνομα μεταβλητής ή μεταβλητών +- Αν χρησιμοποιήσουμε την [-p] έχουμε τη δυνατότητα να εμφανίσουμε κείμενο, το οποίο θα προτρέψει για την καταχώρηση των τιμών. π.χ read -p doste to onoma sas name echo $name αλλιώς με την πεπατημένη echo doste to onoma sas read name echo $name

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (1/6) +- Προκαθορισμένη είσοδος είναι το stdin (πληκτρολόγιο) +- Προκαθορισμένη έξοδος είναι το stdout (οθόνη) +- Προκαθορισμένη έξοδος για διαγνωστικά μηνύματα είναι stderr (οθόνη) +- Για ορισμένες εντολές του Unix (π.χ cat, lpr, grep, wc, sort, head, tail κτλ) τα ορίσματα που είναι ονόματα αρχείων είναι προαιρετικά, υπό την έννοια ότι αν παραλείπονται, χρησιμοποιείται η προκαθορισμένη είσοδος (το τέλος του stdin δίνεται από το πληκτρολόγιο με το χαρακτήρα ^D) π.χ wc ^D

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (2/6) +- wc: μετράει λέξεις +- wc [επιλογές] +- wc I: μετράει γραμμές +- wc m: μετράει χαρακτήρες +- wc file: δίνουμε όνομα αρχείου που θέλουμε να μετρήσουμε λέξεις Π.χ wc myfile.txt 7=γραμμές 6=λέξεις 40=χαρακτήρες

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (3/6) +- Ανακατεύθυνση του stdin < Είσοδος από αρχείο και όχι από το πληκτρολόγιο +- Ανακατεύθυνση του stdout > Ανακατεύθυνση εξόδου σε αρχείο. Αν δεν υπάρχει το αρχείο δημιουργείται. Αν υπάρχει τότε αντικαθίσταται. +- Ανακατεύθυνση του stdout με προσάρτηση >> Ανακατεύθυνση εξόδου σε αρχείο. Το αρχείο αν δεν υπάρχει δημιουργείται. Αν υπάρχει, τα δεδομένα εισέρχονται μετά την τελευταία γραμμή.

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (4/6) +- π.χ ls- la > list.txt Το αποτέλεσμα (έξοδος) της ls-la αποθηκεύεται στο αρχείο list.txt +- π.χ cat list.txt > list_bak.txt Το αποτέλεσμα (έξοδος) της cat αποθηκεύεται στο αρχείο list_bak.txt

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (5/6) Αριθμός Όνομα Περιγραφή 0 stdin Standard input 1 stdout Standard output 2 stderr Standard error +- Το 1 μπορεί να παραλειφθεί, οπότε συνήθως δεν το γράφουμε. π.χ w > whoisonline.txt η εντολή αυτή είναι ίδια με w 1> whoisonline.txt +- Στην περίπτωση της ανακατεύθυνσης λάθους rm something.txt 2> error.log η εντολή αυτή είναι ίδια με rm /etc/something.txt &>error.log

>_ ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (6/6) +- Παραδείγματα cat /etc/passwd >> log wc l /etc/resolv.conf >> servers Ποιο είναι το περιεχόμενο του αρχείου τεστ? cat /etc/passwd >> test.txt cat /etc/papersize >> test.txt whoami > test.txt

>_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (1/7) +- Απλή επιλογή -Σύνταξη: if [συνθήκη] then <εντολές> else <εντολές> fi π.χ x=50 y=40 if [ $x==$y ] then echo x and y are equal else echo x and y are not equal fi

>_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (2/7) +- πολλαπλή επιλογή Σύνταξη: if [συνθήκη] then <εντολές> elif [συνθήκη] then <εντολές> else <εντολές> fi Το τελευταίο else μπορεί να παραληφθεί

>_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (3/7) Σχεσιακοί τελεστές: +- -eq (equal) = +- -ne (not equal)!= +- -gt (greater than) > +- -lt (less than) < +- -ge (greater or equal) >= +- -le (lower or equal) <=

>_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (4/7) Τελεστές ακολουθίας χαρακτήρων: +- == Ίσο, a==b +-!= Διάφορο, a!=b +- -z Έλεγχος αν είναι μηδενικού μήκους. Αν ναι επιστρέφει true +- -n Έλεγχος αν είναι μη μηδενικού μήκους. Αν ναι επιστρέφει true

Λογικοί τελεστές: >_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (5/7) +- Ισχύει η συνθήκη a ή η συνθήκη b π.χ if [συνθήκη a ] [συνθήκη b] +- && Ισχύει η συνθήκη a και η συνθήκη b π.χ if [συνθήκη a ] && [συνθήκη b] +- -o ισχύει το a ή το b π.χ [ $a gt $b -o $a ne $b ] +- -a ισχύει το a και το b π.χ [ $a gt $b -a $c -gt $b ]

>_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (6/7) Π.χ.: x=1 y=2 if [ $x eq $y ] [ $x lt $y ] then echo x <= y else echo x > y fi x=2 y=3 if [ $x ne $y ] && [ $x lt $y ] then echo x <= y else echo x > y fi

Π.χ. πρόσβασης >_ ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (7/7) valid_password=1234 echo Please enter your password read password if [ $password eq $valid_password ]; then echo You have Access!! else echo Access denied!! fi

If at first you don't succeed, call it version 1.0