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

Σχετικά έγγραφα
Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών.

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

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

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

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

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

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

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

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

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

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

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

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

Work10 REMARKS script file lab08 ask2-6 dirstat, create, deli, dirsplit, myfind

Work12 REMARKS script file lab10 ask1-5 tabbing, ls2, urlparse, times, dates_correct

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

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

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

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

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

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

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

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

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

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

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

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

Basic Missions

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

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

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

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

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

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

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

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

1st exercise of work2 - REMARKS

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

Αλληλεπίδραση με το Matlab

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

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

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

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

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

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

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Transcript:

SCRIPTS FILES ΟΛΑ ΤΑ SCRIPT les πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: LAB8 chmod +x myscript $*, $@ : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων Σχόλια AΣΚΗΣΗ 1 - for και παράμετροι εντολής (script με όνομα scr1 ) #scr1 #------------------------------ echo "Arithmos Parameters : $#" for i in $* ; scr2 for i in "$*" ; chmod +x scr1 και τo τρέχουμε με./scr1 "third parameter Arithmos Parameters : 3 third parameter./scr2 "third parameter third parameter $* όλοι οι παραμέτροι θέσης ($1,$2, $n) Όταν χρησιμοποιoύνται διπλά εισαγωγικά, υλοποιείται με μια μόνο λέξη που περιλαμβάνει την τιμή κάθε παραμέτρου, διαχωριζόμενη με διαχωριστικό που αντιστοιχεί στον 1 ο χαρακτήρα του IFS "$1 $2.. $n" scr3 for i in $@ ; scr4 for i in "$@" ; third parameter third parameter $@ ίδιο με $* αλλά όταν χρησιμοποιoύνται διπλά εισαγωγικά κάθε παράμετρος είναι μια ξεχωριστή λέξη "$1" "$2".. "$n" [1]./scr3 "third parameter./scr4 "third parameter

Οι τιμές στην ΛΙΣΤΑ του for μπορούν να είναι νούμερα ή συμβολοσειρές με διαχωριστικό μεταξύ τους το κενό (εκτός και αν οριστεί διαφορετικά στο IFS) for i in ΛΙΣΤΑ π.χ. for i in tasos 3 mary john ΕΝΤΟΛΕΣ Παράδειγμα ενός απλού script με όνομα for1 #! /bin/bash for i in word1 2 test "long arg" 'long 2 arg' i is word1 echo "i is $i" i is 2 i is test i is long arg i is long 2 arg chmod +x for1./for1 ΑΣΚΗΣΗ 2 - Τest στις οντότητες του Λ.Σ. όνομα dirstat #dirstat #Τσεκάρει τι είναι η κάθε οντότητα στο τρέχοντα φάκελο? # Είναι DIRECTORY -d AΡXEIO -f ή κάτι άλλο? (τρέξτε το στο work) #µε * η λίστα του ls -ΠΡΟΣΟΧΗ το * χωρις " " for i in * #... echo "$i is " chmod +x dirstat το τρέχουμε με./dirstat if [ -d "$i" ] ; elif [ -f "$i" ]; Το $i αντιστοιχεί σε ότι έχουµε τρέχον directory π.χ. στο ~vassik/work έστω ότι έχουµε -rwxr-xr-x 2 ktoumpid x1314 351 Apr 18 13:35 monazyga.sh lrwxrwxrwx 1 vassik conit 3 Apr 18 23:12 mylink -> rem lrwxrwxrwx 1 vassik conit 39 Apr 19 00:47 readlink -> /hom -rw-r--r-- 4 vassik conit 422 Apr 19 11:31 readme -rwxr-xr-x 2 vassik conit 527 Apr 19 11:33 whatis drwxr-xr-x 2 vassik conit 4096 Mar 29 21:48 work1 drwxr-xr-x 2 vassik conit 4096 Apr 4 19:18 work2 Για να φτιάξω (soft) link : ln -s rem mylink Και μετά έσβυσα το αρχείο rem monazyga.sh is le mylink is something readlink is le readme is le whatis is le work1 is directory work2 is directory [2] if εντολή_επιτυχής Η επιτυχής εντολή επιστρέφει 0 (η αποτυχία μια τιμή 0 πχ.127 ). echo $? (exit code)

Πως θα ελέγξω τι είναι το καθένα if test -d "$i" ή if [ -d "$i" ] man test if test -f "$i" ή if [ -f "$i" ] SOS ΑΣΚΗΣΗ 3.1 μια παράμετρος /δημιουργία 3 (ή 50) αρχείων - όνομα create_test #create_test 1 Αν δεν δοθεί παράμετρος δηλ. if test $# -eq 0 echo "$0: missing arguments " >&2 exit 1 for ((i=1;i<=3;i++)) #Δημιουργία κενoύ αρχείου με όνομα αν ο αριθμός των παραμέτρων $#=0 θα δείξει μήνυμα και έξοδος (με κωδ.1) vassik@aetos:~$./create_ test./create_ test : missing arguments Αν δοθεί μια παράμετρος, η $1, θα δημιουργηθούν αρχεία με όνομα "$1".$i δηλ. αν δώσω ls -l θα έχω: -rw-r--r-- 1 vassik conit 0 May 4 14:41 kimi.1 -rw-r--r-- 1 vassik conit 0 May 4 14:41 kimi.2 -rw-r--r-- 1 vassik conit 0 May 4 14:41 kimi.3 chmod +x create_test./create_ test kimi H $1 ισούται με kimi #ή και με while: nbles=0 while test $nbles -ne 3 nbles=$(($nbles + 1)) #δημιουργία αρχείου 3.2 creator100, δημιουργεί 100 αρχεία με την ονομασία i le, δηλ. 1le 2le.. 100le times=10 #ας δώσουμε 10 αρχικά.. for (( i=0;i<$times;i++ )) touch "$i"le # ή και ${i}le #γιατί αν δώσω $ile θα ψάχνει μεταβλητή με όνομα ile #να τα δούμε και μετά να τα σβύσουμε ή..φτιάξτε άλλο script που τα σβύνει. 1 Δώστε μια εντολή που απαιτεί ορίσματα, σκέτη χωρίς ορίσματα π.χ. vassik@aetos:~$ cp cp: missing le operand Το μήνυμα λάθους θέλουμε να πάει στην έξοδο λαθών (οθόνη,αρχείο,..) [3]

SOS ΑΣΚΗΣΗ 4 - μια παράμετρος /διαγραφή αρχείου με επιβεβαίωση - όνομα deli #deli Integer comparison if test $# -eq 0 int1 -eq int2 echo "$0: missing arguments " >&2 exit 1 if test! -f "$1" FileSystemCheck -f le echo "$0: not an ordinary le $1.." >&2 exit 2 answer=a while test $answer!= n -o $answer!= y echo -n "Do you want to delete the le $1 (y/n) : " read answer #ελεγχος τι είναι $answer (y ή n : [ $answer = y ] )... chmod +x deli./deli_le1 Do you want to delete le1 (y/n) : y le1 Deleted # Αν δεν είναι κανονικό αρχείο η $1 Logical Operations! (not), -a (and), -o (or) String comparison -z string True if string is empty -n string True if string is not empty string1 ==string2 True if string1 = string2 string1!= string2 True if string1 string2. ΑΣΚΗΣΗ 5 - μια παράμετρος/directory και σπάσιμο σε 2 directories - όνομα dir_split #dir_split # έλεγχος αν έδωσε παράμετρο if [ $# -eq 0 ] ; ; exit 1 ; # έλεγχος αν υπάρχουν ήδη τα ονόματα των 2 καταλόγων με όνομα dir1,dir2 if [ -d "$1"/dir1 -o -d "$1"/dir2 ] ; echo "$0: Directories $1/dir1 or $1/dir2 exist..." >&2 exit 2 #αν δεν υπάρχουν οι φάκελοι dir1 και dir2 # (να ελέγξετε και αν υπάρχουν αρχεία µέσα στον $1) #θα δημιουργεί δύο νέους (κρυφούς) καταλόγους.dir1,.dir2 μέσα στον αρχικό κατάλογο #θα μετακινεί όλα τα αρχεία του καταλόγου στους δύο νέους καταλόγους ως εξής : #στο dir1: τα αρχεία με όνομα που ξεκινά από τα γράμματα A-L (κεφαλαία και μικρά) #στο dir2: τα υπόλοιπα αρχεία #θα εμφανίζει το πλήθος των αρχείων σε καθένα από τους δύο νέους καταλόγους [4] chmod +x dir_split./dir_split Desktop

ΑΣΚΗΣΗ 6 - μια παράμετρος/αρχείο εμφάνιση directory που το περιέχει - όνομα mynd ελέγχει αν το όνομα του αρχείου υπάρχει στον τρέχοντα κατάλογο ή σε κάποιον από τους υποκαταλόγους πρώτου επιπέδου κάτω από τον τρέχοντα κατάλογο και εμφανίζει κάθε κατάλογο στον οποίο υπάρχει αυτό το όνομα αρχείου #mynd chmod +x mynd # έλεγχος αν έδωσε παράμετρο if [ $# -eq 0 ] ; ; exit 1 ;./mynd le1 # έλεγχος αν η $1 είναι κανονικό αρχείο if test -f "$1" echo -n "I found $1 in ";pwd # έλεγχος αν η $1 βρίσκεται σε directory ένα επίπεδο κάτω $i/$1 for i in * if test -d "$i" # έλεγχos αν βρίσκεται το αρχείο μέσα στο $i [5]