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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικαστικά. Εισαγωγή στο Λειτουργικό Σύστημα UNIX. Διαδικαστικά. Τι είναι το Λειτουργικό Σύστημα

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

7ο Εργαστήριο - Ο φλοιός Bash και η διαμόρφωση του

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

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

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

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

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

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

Εισαγωγή στο Λειτουργικό Σύστημα UNIX

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

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

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

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

9ο Εργαστήριο - Ο φλοιός Bash και η διαµόρφωση του

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

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

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

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

Εισαγωγή...1 Το κοινό αυτού του βιβλίου...2 Οι συμβάσεις που χρησιμοποιούνται στο βιβλίο...3

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

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

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

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

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

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

Εισαγωγή στο Linux και στο περιβάλλον εργασίας.

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

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

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

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

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

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

Στοιχεία Επικοινωνίας

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

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

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

Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων

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

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

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση X2Go

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

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

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

Παράρτηµα Α : Εισαγωγή στο Linux.

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

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

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

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

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

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

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

Εισαγωγικό εργαστήριο C

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

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

Transcript:

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

Operating System (O.S)

O.S Types Windows 1981 Macintosh 1984 Linux 1991 Unix 1969

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ UNIX Λειτουργικό σύστημα πολλών χρηστών Υποστήριξη πολλαπλών διεργασιών με διαμέριση χρόνου Built in (και όχι patch) παροχή ασφάλειας Υποστήριξη δικτύων Υποστήριξη πολλών τεχνολογιών: IA-32, MIPS, x86-64, SPARC, DEC Alpha, Itanium, PowerPC, ARM, m68k, PA-RISC, s390, SuperH, M32R κτλ Τα πάντα είναι παραμετροποιήσιμα Τα πάντα είναι σταθερά Αυτοματοποίηση καθημερινών εντολών και ρουτινών Αποφυγή Δεσμεύσεων χρήστη Είναι γρήγορα Τα δυνατότερα συστήματα στον κόσμο χρησιμοποιούν linux

O.S Structure (1/3)

UNIX Architecture

ΛΟΓΑΡΙΑΣΜΟΣ ΧΡΗΣΤΗ (replay) Όνομα χρήστη (user name) Συνθηματικό (password) Κέλυφος αρχικής σύνδεσης Αρχική ομάδα Κατάλογος αφετηρίας Πώς κάνουμε login από το putty: Δίνουμε το hostname (ή την ip) και πατάμε open Δίνουμε το username Μετά το password και μας πάει στον αρχικό κατάλογο

ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Putty Το βασικό μας εργαλείο Μας προσφέρει απομακρυσμένη σύνδεση μέσω ssh στον server που θα κάνουμε τις εργασίες μας στο εργαστήριο και στο σπίτι Vmware player Πλατφόρμα διαχείρισης εικονικών μηχανών (Virtual Machines), όπου θα τοποθετήσουμε το δικό μας server για την εξάσκηση στο σπίτι Kali Linux Διανομή Linux που θα χρησιμοποιήσουμε για εξάσκηση στο σπίτι Help!!! Πώς τα δουλεύω αυτά τα εργαλεία??? Ακολουθώ τον οδηγό που υπάρχει αναρτημένος στον evdoxo, στο διαδικτυακό χώρο του μαθήματος.

ΔΟΜΗ ΤΩΝ ΕΝΤΟΛΩΝ (replay) Υπάρχει διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων, δηλαδή είναι Case Sensitive Η κάθε εντολή έχει την εξής δομή: Εντολή [επιλογές] προέλευση προορισμός Ότι εμπεριέχεται στις επιλογές δηλαδή εντός των [] είναι προαιρετικό Το συμβολίζει ότι δεν μπορούν να χρησιμοποιηθούν δύο επιλογές ταυτόχρονα Υπάρχει και η δυνατότητα συνδυασμού των εντολών π.χ ls /home/nikos/ >list.txt mail boss

ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (1/2 replay) man: Εμφάνιση οδηγιών χρήσης εντολών ls: Εμφάνιση περιεχομένων καταλόγου pwd: Εμφάνιση τρέχοντος καταλόγου cd: Αλλαγή τρέχοντος καταλόγου mkdir: Δημιουργία καταλόγου rmdir: Διαγραφή καταλόγου cp: Αντιγραφή αρχείων mv:μετακίνηση, ή μετονομασία αρχείών rm: Διαγραφή αρχείων cat: Εμφάνιση περιεχομένων αρχείων lpr: Εκτύπωση αρχείων vi: Κειμενογράφος οθόνης passwd: Αλλαγή κωδικού χρήστη Προσοχή! Κατά την πληκτρολόγηση του κωδικού δεν τυπώνεται τίποτα στην οθόνη

ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (2/2 replay) whoami: Πληροφορίες χρήστη who: Εμφάνιση των χρηστών που είναι logged in w: Εμφάνιση των χρηστών που είναι logged in με περισσότερες λεπτομέρειες από την who finger: Εμφάνιση πληροφοριών χρήστη last: Εμφάνιση τελευταίων συνδέσεων clear: Καθαρισμός οθόνης cal: Προβολή ημερολογίου exit: Έξοδος από το τερματικό logout: Αποσύνδεση χρήστη more: Εμφάνιση περιεχομένου ανά σελίδα tail: Εμφανίζει τις πρώτες γραμμές του αρχείου head:εμφανίζει τις τελευταίες γραμμές του αρχείου

UNIX editors Vi Pico Nano Kwrite Gedit Κτλ

Εντολές Unix (replay) echo: Εμφάνιση στην οθόνη της ακολουθίας χαρακτήρων που δώσαμε όνομα μεταβλητής= τιμή μεταβλητής Π.χ myname=nikos $ όνομα μεταβλητής: επιστροφή τιμής της μεταβλητής Π.χ echo $myname declare [επιλογές ] όνομα μεταβλητής -a: η μεταβλητή είναι πίνακας -i: η μεταβλητή είναι ακέραιος -r: η μεταβλητή είναι μόνο για ανάγνωση

ΔΗΜΙΟΥΡΓΙΑ SCRIPT (replay) Προκειμένου να εκτελέσουμε μία σειρά εντολών πρέπει να δημιουργήσουμε ένα αρχείο script το οποίο να τις περιέχει. Κάθε αρχείο script ξεκινάει με το όνομα του φλοιού που είναι γραμμένο, ώστε να διερμηνευτεί ανάλογα. Π.χ #!/bin/bash #!/bin/bourne Ανακατεύθυνση του stdin < Είσοδος από αρχείο και όχι από το πληκτρολόγιο Ανακατεύθυνση του stdout > Ανακατεύθυνση εξόδου σε αρχείο. Αν δεν υπάρχει το αρχείο δημιουργείται. Αν υπάρχει τότε αντικαθίσταται. Ανακατεύθυνση του stdout με προσάρτηση >> Ανακατεύθυνση εξόδου σε αρχείο. Το αρχείο αν δεν υπάρχει δημιουργείται. Αν υπάρχει, τα δεδομένα εισέρχονται μετά την τελευταία γραμμή.

απλή επιλογή: if [συνθήκη] then <εντολές> else <εντολές> fi ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ (replay) σύνθετη: if [συνθήκη] then <εντολές> elif [συνθήκη] then <εντολές> else <εντολές> fi If OR case??? case <έκφραση> in <περίπτωση 1> <εντολές1>;; <περίπτωση 2> <εντολές2>;;... <περίπτωση ν> <εντολέςν>;; esac

ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ (replay) Δομές επανάληψης Σύνταξη: <δομή επανάληψης> do <εντολές> done (1) while <συνθήκη> do <εντολές> done for (έκφραση1; έκφραση2; έκφραση3) > do <εντολές> done select <έκφραση> in λίστα do <εντολές> done (2) (3)

ΣΩΛΗΝΩΣΕΙΣ PIPES (replay) Τροφοδότηση της δεύτερης εντολή με το αποτέλεσμα (έξοδος) της πρώτης. Αντί να χρησιμοποιούμε προσωρινές μεταβλητές μεταφέρουμε το αποτέλεσμα της προηγούμενης εντολής στην επόμενη. π.χ cat php.ini more ls /etc more w wc -l

ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ (replay) Οι κανονικές εκφράσεις χρησιμοποιούνται από διάφορες εντολές στο unix και κυρίως από την sed, την grep και την awk, οι οποίες έχουν να κάνουν με την επεξεργασία συμβολοσειρών. [ ] Οτιδήποτε περιέχεται στις αγκύλες. Ταιριάζει με οποιονδήποτε χαρακτήρα Συμβολοσειρά$ Ταιριάζει patterns που τελειώνουν με τη Συμβολοσειρά ^Συμβολοσειρά Ταιριάζει patterns που αρχίζουν με τη Συμβολοσειρά /^$/ Ταιριάζει κενές γραμμές \ Ακυρώνει την ειδική σημασία των μεταχαρακτήρων

ΥΠΟΛΟΓΙΣΜΟΣ ΕΚΦΡΑΣΕΩΝ (replay) Δεδομένου ότι ο φλοιός δεν υποστηρίζει πράξεις, χρησιμοποιούμε το βοηθητικό πρόγραμμα expr, προκειμένου να τις υπολογίσουμε. Οι πράξεις που υποστηρίζονται με τα αντίστοιχα σύμβολα είναι + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση % Υπόλοιπο διαίρεσης = Απόδοση τιμής == Ισότητα!= Διάφορο

Linux Guru practical examples

Παράδειγμα 1 Τι θα εμφανιστεί στην οθόνη με την εκτέλεση του παρακάτω προγράμματος κελύφους : #script01 #----------------------------------- echo first parameter : $1 echo second parameter : $2 echo third parameter : $3 echo ninth parameter : $9 echo tenth parameter : $10 echo eleventh parameter : $11 echo No of parameters : $# echo all parameters : $* echo all parameters : $@ shift echo first parameter : $1 echo all parameters : $* με την γραμμή εντολής script01 one two 3 4 5 6 7 eight 9 ten 11

Λύση first parameter : one second parameter : two third parameter : 3 ninth parameter : 9 tenth parameter : one0 eleventh parameter : one1 No of parameters : 11 all parameters : one two 3 4 5 6 7 eight 9 ten 11 all parameters : one two 3 4 5 6 7 eight 9 ten 11 first parameter : two all parameters : two 3 4 5 6 7 eight 9 ten 11

Παράδειγμα 2 Δημιουργήστε ένα πρόγραμμα σεναρίου κελύφους (script) με μια παράμετρο που να δημιουργεί ένα αρχείο με όνομα την παράμετρο. Αν δοθεί χωρίς παράμετρο να δημιουργεί το myfile.txt. Για περισσότερες από μια παραμέτρους να βγαίνει μήνυμα λάθους. Αν το αρχείο με όνομα την παράμετρο υπάρχει, να κάνει έλεγχο επικάλυψης (overwrite) και να ρωτάει το χρήστη τι ενέργεια θέλει να κάνει παίρνοντας ως είσοδο την επιλογή του.

Λύση if [ $# -gt 1 ]; then echo usage: test1 parameter elif [ $# -eq 0 ]; then touch myfile.txt else if [ -f $1 ]; then echo file $1 exists. Overwrite? Yy/Nn read answer if [ \( $answer!= y \) a \( $answer!= Y \) ]; then echo file NOT overwritten else >$1 echo file $1 overwritten fi else touch $1 echo file $1 created fi fi

root@oslab:~$ sudo shutdown h now