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

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

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

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

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Basic Missions

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr

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

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

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

ΕΙΔΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ Υπάρχουν κάποιες μεταβλητές οι οποίες είναι ειδικού σκοπού καθώς εκτελούν συγκεκριμένες εργασίες. Αυτές είναι: $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 > nikos.txt Το αποτέλεσμα (έξοδος) της cat αποθηκεύεται στο αρχείο nikos.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

root@oslab:~$ sudo shutdown h now