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

Σχετικά έγγραφα
Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο λειτουργικό σύστηµα Unix

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

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

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

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

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

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

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

ΒασικέςέννοιεςτουUNIX: Πλοήγηση στο Σύστημα Αρχείων, ΟφλοιόςτουUNIX, Βοηθητικά Προγράμματα, ΗδομήτουΠυρήνα.

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

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

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

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

2.Shell, users, groups και privilegies

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

Άγγελος Αγγελόπουλος. Εισαγωγή στο LINUX. Οδηγός Χρήσης

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

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

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

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

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

Κεθάιαην 8. Χρήστες. Εφαρμογές. Κελφφη. Πυρήνας. Υλικό. ρήκα 8.1: Ιεξάξρεζε ζηα ηκήκαηα ηνπ Unix.

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

ΕΛΠ 605: Προχωρημένη Αρχιτεκτονική Υπολογιστών. Εργαστήριο Αρ. 1

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

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

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

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

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

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

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

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

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

Shell Scripts: loops / if / test

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

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

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

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

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

Π Ο Λ Ι Τ Ι Κ Α Κ Α Ι Σ Τ Ρ Α Τ Ι Ω Τ Ι Κ Α Γ Ε Γ Ο Ν Ο Τ Α

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

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

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

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

Οδηγός του Bash για αρχάριους

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

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

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

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος

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

Σενάρια φλοιού (Shell scripts)

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

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

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

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

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

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

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

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

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

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

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 4

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

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

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

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

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

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

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

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

Transcript:

Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 10 S C R I P T S Α Ν Τ Ω Ν Η Σ Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο Σ

Φλοιός (Shell) 2 Είναι το πρόγραμμα που διερμηνεύει (interpreter) τις εντολές που εισάγονται από το πληκτρολόγιο. Οι εντολές είναι δυνατόν να τοποθετηθούν σε ένα αρχείο που ονομάζεται shell script. Κάθε φορά που εισάγεται από το πληκτρολόγιο μια γραμμή το Λ.Σ. χρησιμοποιεί ένα τμήμα του για να αναλύσει το περιεχόμενο της γραμμής, τον command line processor (CLP). Στο UNIX ο CLP είναι εξ ολοκλήρου διαχωρισμένος από το υπόλοιπο Λ.Σ. user Applications shells Kernel Hardware

φλοιοί 3 Σε κάθε σύστημα UNIX υπάρχουν τουλάχιστον δύο διαθέσιμοι φλοιοί: Bourne shell (sh) και C-shell (csh) (αναπτύχθηκε στα πλαίσια του BSD Unix). Ωστόσο η γλώσσα που χρησιμοποιείται για την επικοινωνία με καθένα από τους φλοιούς αυτούς είναι διαφορετική. Άλλοι φλοιοί: Korn shell (ksh) terminal-based C shell (tcsh) Bourne again shell (bash) βελτιωνένη έκδοση του sh και είναι πλέον ο εξ ορισμού φλοιός σε συστήματα linux. Μάλιστα σε αρκετές περιπτώσεις το Bourne Shell δεν υπάρχει κάν, και η εντολή sh είναι link στην εντολή bash. Ανεξάρτητα από τον φλοιό που χρησιμοποιείται, όλοι έχουν ως στόχο να παρέχουν στο UNIX μια διεπαφή χρήστη (user interface).

Χαρακτηριστικά φλοιών Διερμηνεία (interpretation ) και επεξεργασία της γραμμής εντολών Δεσμευμένες λέξεις Μετα-χαρακτήρες φλοιού (wild cards) Εκτέλεση εντολών (προγραμμάτων ή εσοτερικών εντολών του φλοιού - bultin commands) Διαχείριση αρχείων: ανακατεύθυνση εισόδου / εξόδου και διασωληνώσεις Υποστήριξη μεταβλητών Καθορισμό ψευδωνύμων (aliases) Έλεγχο του περιβάλλοντος και δημιουργία περιβάλλοντος προσαρμοσμένου στις απαιτήσεις του χρήστη Δημιουργία σεναρίων φλοιού (shell scripts) 4

shell scripts Η εντολή sh δέχεται ορίσματα. Αν δεχτεί όρισμα όνομα αρχείου, τότε από μόνη της διαβάζει το αρχείο (αντί από το stdin) και θεωρεί τα περιεχόμενά του ως εντολές προς εκτέλεση. 5 bash-2.05a$ cat file1 ls -l whoami date bash-2.05a$ sh file1 total 24 -rw-r--r-- 1 asidirop it 314 Jan 11 2003 cc -rw-r--r-- 1 asidirop it 18 Nov 20 15:22 file1 -rw-r--r-- 1 asidirop it 183 Jan 8 2003 list asidirop Mon Nov 20 15:23:05 EET 2006 bash-2.05a$

shell Όταν ένα αρχείο περιέχει text το οποίο είναι εντολές, τότε αυτό το αρχείο ονομάζεται script. Όταν το αρχείο περιέχει εντολές για το shell, ονομάζεται shell script Ο χαρακτήρας # σηματοδοτεί σχόλιο για το shell 6

shell Στο UNIX τα scripts χρησιμοποιούνται συχνά. Για να μην χρειάζεται κάθε φορά να βρίσκει ο χρήστης για ποιο «πρόγραμμα» (ή shell) είναι οι εντολές που περιέχονται σε ένα script, υπάρχει η σύμβαση στην πρώτη γραμμή του αρχείου να περιέχεται το όνομα της «εντολής» που πρέπει να εκτελέσει το script. H πρώτη γραμμή ενός script πρέπει να είναι: #!εντολή Για ένα shell script η πρώτη γραμμή πρέπει να είναι: #!/bin/sh ή #!/bin/bash Όταν to # βρίσκεται στην πρώτη γραμμή ενός αρχείου και ακολουθείται από το!, σημαίνει πως αυτό που ακολουθεί είναι η εντολή προς εκτέλεση. 7

shell Έστω ένα αρχείο με όνομα file1 που περιέχει: #!/path/command Lala Foo Όταν προσπαθήσουμε να «εκτελέσουμε» το file1 με την εντολή:./file1 τότε το UNIX θα αναγνωρίσει ότι δεν πρόκειται για binary αρχείο αλλά για text αρχείο. Θα διαβάσει την πρώτη γραμμή και θα εκτελέσει την εντολή: /path/command./file1 8

shell 9 Σε ένα shell script (έστω με όνομα αρχείου file1) βάζουμε: #!/bin/sh Εντολές Όταν προσπαθήσουμε να το εκτελέσουμε με την εντολή./file1 το UNIX θα δει ότι δεν πρόκειται για binary εκτελέσιμο αρχείο, θα διαβάσει την πρώτη γραμμή, βρεί το #! Και θα εκτελέσει την εντολή: /bin/sh./file1

shell 10 Ένα text αρχείο (script) για να μπορέσουμε να το εκτελέσουμε πρέπει να έχουμε άδεια πρόσβασης execute. Συνεπώς όταν δημιουργούμε scripts, πρέπει να τους δώσουμε την άδεια πρόσβασης execute, η οποία όπως έχουμε δει δεν τίθεται από μόνη της όταν δημιουργούμε αρχεία. Αν το αρχείο δεν έχει άδεια execute θα πάρουμε το μήνυμα: aetos_test_27_$./file1./file1: Permission denied. aetos_test_27_$ls -l total 24 -rw-r--r-- 1 asidirop it 314 Jan 11 2003 cc -rw------- 1 asidirop it 28 Nov 20 18:40 file1 -rw-r--r-- 1 asidirop it 183 Jan 8 2003 list

shell Εφόσον σε ένα script έχουμε άδεια execute όταν το εκτελούμε διαβάζει το λειτουργικό την πρώτη γραμμή κειμένου για να βρει ποιος είναι ο interpreter. Αφού αναγνωρίσει ποιος είναι ο interpreter (πχ /bin/sh) καλεί την εντολή: /bin/sh file1 O interpreter αναγνωρίζει ότι δόθηκε όρισμα όνομα αρχείου και προσπαθεί να το ανοίξει για ανάγνωση. Αν δεν έχουμε δικαίωμα ανάγνωσης στο αρχείο τότε θα πάρουμε το μήνυμα λάθους: 11 aetos_test_27_$./file1 /bin/sh:./file1: cannot open: Permission denied aetos_test_45_$/bin/sh file1 /bin/sh: file1: cannot open: Permission denied aetos_test_27_$ls -l total 24 -rw-r--r-- 1 asidirop it 314 Jan 11 2003 cc --wx------ 1 asidirop it 28 Nov 20 18:48 file1 -rw-r--r-- 1 asidirop it 183 Jan 8 2003 list

Διαφορετικά κελύφη 12 Η πρώτη γραμμή στο script ορίζει το κέλυφος που θα χρησιμοποιηθεί για την εκτέλεση των εντολών που περιέχει το σενάριο (το! ακολουθεί αμέσως μετά το # χωρίς ενδιάμεσα κενά) : #!/bin/sh #!/bin/csh #!/bin/tcsh #!/bin/bash #!/usr/bin/perl Bourne shell C-shell TC-shell BASH shell Perl script

Όλα τα κελύφη παρέχουν την επιλογή v για να εμφανίζεται στην οθόνη κάθε γραμμή του σεναρίου καθώς αυτό διαβάζεται και την επιλογή x για να εμφανίζονται οι εντολές, καθώς εκτελούνται. Οι επιλογές αυτές είναι πολύ χρήσιμες για τη συντακτική ανάλυση των εντολών. Εμφάνιση του φλοιού που χρησιμοποιείται : echo $SHELL SHELL είναι η μεταβλητή περιβάλλοντος που κρατά το όνομα του τρέχοντος φλοιού, ενώ $SHELL είναι η τιμή αυτής της μεταβλητής. 13

όρισμα -v 14 bash-2.05a$ cat file1 #!/bin/sh -v whoami # dixnei poios eimai #Twra typonoyme tin hmeromhnia date bash-2.05a$./file1 #!/bin/sh -v whoami # dixnei poios eimai asidirop #Twra typonoyme tin hmeromhnia date Mon Nov 20 19:16:30 EET 2006 bash-2.05a$

15 όρισμα -x bash-2.05a$ cat file1 #!/bin/sh -x whoami # dixnei poios eimai #Twra typonoyme tin hmeromhnia date bash-2.05a$./file1 + whoami asidirop + date Mon Nov 20 19:17:13 EET 2006 bash-2.05a$

shell 16 Για να εκτελέσουμε ένα πρόγραμμα ή script πρέπει να αναφερθούμε στο όνομα αρχείου είτε με σχετική είτε με απόλυτη διαδρομή. Πχ: aetos_test_51_$cat file1 #!/bin/sh whoami date aetos_test_52_$./file1 asidirop Mon Nov 20 18:54:36 EET 2006 aetos_test_53_$~/test/file1 asidirop Mon Nov 20 18:54:42 EET 2006 aetos_test_54_$pwd /usr/people/staff/ektaktoi/it/asidirop/test

shell Αν δεν δώσουμε διαδρομή για το πρόγραμμα που προσπαθούμε να εκτελέσουμε, το shell δεν ψάχνει την εντολή στον τρέχον κατάλογο, αλλά στους καταλόγους που είναι ορισμένοι στο ΡΑΤΗ. bash-2.05a$./file1 asidirop Mon Nov 20 18:57:17 EET 2006 bash-2.05a$ file1 bash: file1: command not found bash-2.05a$ bash-2.05a$ 17