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

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Shell Scripts. $ friend=nikos $ echo $friend. $ set grep -n friend. [^a-z] π.χ. echo rm??ee*.txt [1] Nikos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

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

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

Directories & Files

Fixed Character strings

Εισαγωγή στην Tcl. Τί είναι η Tcl;

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

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

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

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

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

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

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

8 FORTRAN 77/90/95/2003

Διάλεξη 6 Εργαλεία Ωφελιμότητας Unix: Sed

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

Διάλεξη 6 Εργαλεία Ωφελιμότητας Unix: Sed

Fortran και Αντικειμενοστραφής προγραμματισμός.

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

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

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

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

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

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

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

$ vi pass Κλήση του vi για το αρχείο pass. $ vi pass. :wq

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

1st exercise of work2 - REMARKS

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ιαφάνειες παρουσίασης #12

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

!"#$µ"%" UNIX &'" ()*+)',-.

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

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

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

HY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26

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

Επεξεργασία Αρχείων Κειµένου

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

Transcript:

Directories και αρχεία... /bin bin../bin current/ένα πιο πάνω/root bin/current bin/ ένα πιο πάνω και bin mkdir bin rmdir bin (άδειο) cd bin touch f f1 bin/f2 cat >a1 vi a1 vi +10 a1 cp a1 a2 a3 bin cp -r ~vassik/xunix/px/*. rm f1 rm r f? rm i * rm ri * (OPTION -r recursive) home student x0506 chgen gkassos bin bin cat >a1 ena arxeio me onoma a1 dimiourgimeno sta grigora me tin entoli cat CTRL + C / bin mv a1 askisi1 mv a2 bin chmod 755 bin chmod 644 a1 chmod +x a1 Mεταβλητές ~ $HOME $PWD $PATH $LOGNAME $IFS $LANG.. echo "My home dir is $HOME" Wildcards Χαρακτήρες στο shell *? [xyz] [^xy] [!0-9] [:alpha:] [:digit:] ls f*[0-9] λίστα µε ονόµατα από f,0-πολλούς χαρακτήρες µετά και ένα αριθµό, στο currentdir ls dir1/[:alpha:]* λίστα µε ονόµατα, µε 0 έως πολλούς χαρακτήρες [a-za-z], στο dir1 Mερικές εντολές man touch cat le1 le2 which date umask 077 δηλ. 777-700 = 077 αφαιρούνται rwx για g και ο stat f1 wc -l (γραµµές) και c (χαρ/ρες) και w (λέξεις) ps -ef µε πολλές options u, aux, -al, -df.. kill -9 4250 sleep 10 & [1]

Κανονικές Εκφράσεις ^ $. [A-Z] [^0-9] * +? {2,5} {3} \1 Predined Σύνολα Χαρακτήρων [:alnum:] ίδιο µε [0-9a-zA-Z] [:alpha:] ίδιο µε [a-za-z] [:cntrl:] control χαρακτήρας δηλ.<31 στον πίνακα ASCII, [:print:] εκτυπώσιµος χαρακτήρας (visible and spaces). [:digit:] ίδιο µε [0-9] [:xdigit:] ίδιο µε [0-9A-F] [:graph:] εκτυπώσιµος χαρακτήρας εκτός spaces/tabs. [:lower:] πεζός χαρακτήρας [:upper:] κεφαλαίος χαρακτήρας [:punct:] σηµείο στίξης (\]\[!"#$%&'()*+,./:;<=>?@\^_`{ }~-) [:space:] κενό Ο χαρακτήρας \ µπορεί να αναιρέσει την ειδική σηµασία του χαρακτήρα που ακολουθεί Μέσα σε µια κλάση χαρακτήρων σχεδόν όλοι οι ειδικοί χαρακτήρες χάνουν την ειδική σηµασία τους πχ: [{}*()/+*?.] σηµαίνει ένας χαρακτήρας από τους {}*()/+*?. '^$' κενή γραµµή '^.$' γραµµή µε ένα χαρακτήρα [0-9][0-9] οποιοσδήποτε διψήφιος αριθµός [^ ] οποιοσδήποτε χαρακτήρας εκτός από το κενό Μr Miss Mrs εναλλακτικό '^[[:alnum:],+]' ξεκινά µε ένα χαρακτήρα [0-9a-zA-Z,+] '.*' όλες οι γραµµές A{2} και (ΑΒ){2} επανάληψη δηλ. ΑΑ και ΑΒΑΒ (.)\1\1 οποιοσδήποτε χαρακτήρας επαναλαµβάνεται άλλες δυο φορές π.χ. aaa (.)(.)\2\1 οποιοιδήποτε δυο χαρακτήρες επαναλαµβάνονται αντίστροφα πχ abba Yπάρχουν διάφορα set κανονικών εκφράσεων π.χ. ΒRE : βασικές κανονικές εκφράσεις ΕΡΕ: επεκταµένες κανονικές εκφράσεις Στις βασικές κανονικές εκφράσεις δεν ισχύει η ειδική σηµασία των?, +, {,, (, ) παρά µόνο όταν χρησιµοποιούνται µε back slash δηλαδή µε \?, \+, \{, \, \(, \) Εντολή egrep Options -n -v -c -i αριθµός γραµµών/ αντιστροφή λειτουργίας/ πλήθος γραµµών/αγνοεί πεζά-κεφαλαία [2]

Wildcards στο shell και Κανονικές Εκφράσεις RE Τα wildcards ερµηνεύονται από τον φλοιό και ταιριάζουν σε ονόµατα αρχείων. Οι RE ερµηνεύονται από εντολές (πχ: grep) και µπορούν να πραγµατοποιηθούν σύνθετεςλειτουργίες. Στις RΕ για να µην ερµηνευτούν οι ειδικοί χαρακτήρες από τον φλοιό, πρέπει η κανονική έκφραση να περικλείεται σε εισαγωγικά (' ή ", κατά προτίµηση ' µονά) Ανακατευθύνσεις ls -la > le1 date >> le1 write vassik < le1 tr ":" " " < le1 tr a-z A-Z < le1 Pipelines last grep -v '^wtmp' grep -v '^$' cut -f1 -d ' ' sort uniq -c sort -n tail -1 Λάθη stderr (Standard Error) Στην C ένα πρόγραµµα 1 έχει τρεις ροές δεδοµένων που µπορεί να εξετάζονται χωριστά: 0 σηµαίνει STDIN (κανονική είσοδο), που είναι συνήθως το πληκτρολόγιο 1 σηµαίνει STDOUT (κανονική έξοδο), που είναι η οθόνη 2 σηµαίνει STDERR (τυπικό σφάλµα), που είναι συνήθως η οθόνη από προεπιλογή. Ένα πρόγραµµα µε όνοµα x εκτυπώνει στην οθόνη (όταν προεπιλογή εξόδου είναι το stut). x > /dev/null 2>&1 Στην παραπάνω εντολή, το πρώτο µέρος x > /dev/null ανακατευθύνει την έξοδο του x από stut στο /dev/null αρχείο το οποίο είναι κάτι σαν µια «τρύπα χωρίς πυθµένα" στο Linux, ότι πάει εκεί ποτέ δεν έρχεται πίσω. Η κανονική έξοδος θα πάει στο /dev/null αρχείο αλλά η τυπική έξοδος των λαθών (stderr) του x δεν έχει ανακατευθυνθεί και τα µηνύµατα λάθους θα εξακολουθούν να τυπώνονται στην οθόνη. Το τελευταίο µέρος της εντολής 2>&1 (ή και 2>/dev/null) ανακατευθύνει το stderr (2) στο stdin (1), που έχει ήδη ανακατευθυνθεί στο /dev/null. Έτσι, κανένα από αυτά δεν εκτυπώνει στην οθόνη πια. (Πρέπει να προστεθεί το "&" πριν από τον αριθµό 1, διαφορετικά το stderr (2) θα µεταφερθεί σε ένα απλό αρχείο µε όνοµα 1 στον ίδιο κατάλογο, αντί του stut) 1 To Linux χτίστηκε κυρίως µε τη γλώσσα προγραµµατισµού C. [3]

echo "$1" egrep '[^0-9]+' >/dev/null 2>/dev/null και η έξοδος και τα λάθη, στο /dev/null (αυτό είναι χρήσιµο όταν κάνουµε ελέγχους και δεν θέλουµε να εµφανιστεί ΤΙΠΟΤΑ στην οθόνη, αλλά να ελέγξουµε το αποτέλεσµα της εντολής) echo "$1 not a number" 1>&2 η τυπική έξοδος, στην έξοδο των λαθών (αυτό είναι χρήσιµο στα µηνύµατα λαθών γιατί το κανονικό αποτέλεσµα µιας εντολής µπορεί να διασωληνωθεί σε µια άλλη εντολή ή να γραφτεί σε αρχείο ). (ενδεικτικό) κοµµάτι από την άσκηση 9.3 που ελέγχει αν το όρισµα room δεν είναι αριθµός: if echo "$room" egrep '[^0-9]+' >/dev/null 2>/dev/null echo "$room not a number" 1>&2 exit 1 Shell script exit error κωδικοί ορίσµατα µεταβλητές ανάθεση τιµών εκτέλεση εντολές επιτυχής εντολή ΣΗΜΑΙΝΕΙ exit code 0 (echo $?) ανεπιτυχής εντολή ΣΗΜΑΙΝΕΙ exit code οτιδήποτε άλλο εκτός µηδέν. if επιτυχής εντολή echo "Ok" else echo "Not Ok" loop µε την for for i in λίστα ne #! /bin/bash # SXOLIO if test $# -eq 0 echo "Give arguments pls " 1>&2 exit 1 while επιτυχής εντολή echo "loop until stop" ne for i in "$@" ne #σταµάτηµα.. for i in * ne while read a echo "$a" ne < le1 for i in "$1/"* ne *? "$i" " " ' ' ` ` $0 $1 - $9 $* $@ $# $? $$ $! #! # 1>&2 expr $(( )) $[ ] αριθµητικές πράξεις a=3 b=$(($a*4)) c=`expr $a \* 4 ` test -eq -ne -gt -lt =!= -f -d -s [4]

µερικές εντολές: more less head tail wc -l -w c le1µετρά σειρές / λέξεις / χαρακτήρες του αρχείου le1 le πληροφορίες για τα αρχεία που αποτελούν ορίσµατά της. df du tr -s " " < le1 µετατρέπει τα συνεχόµενα κενά, σε ένα κενό uniq -c στην αρχή κάθε γραµµής, ένας αριθµός δηλώνει πόσες φορές εµφανίζεται η ίδια γραµµή uniq -u εµφανίζει µόνον εκείνες τις γραµµές που δεν επαναλαµβάνονται sort -r -n -f le1αντιστροφή λειτουργίας/σορτάρισµα αριθµών/αγνοεί πεζά-κεφαλαία sort -k 2 le1 σορτάρισµα 2 ης στήλης (µε διαχωριστή στήλης το κενό) sort -t ":" αλλαγή διαχωριστή στήλης σε : set read a cut cut -c2,4,6 le1 αποσπά τoυς χαρακτήρες 2,4,και 6 από το le1 cut -c 1-6 le1 αποσπά τoυς πρώτους 6 χαρακτήρες από το le1 cut -f 2-4 le1 αποσπά τις στήλες/πεδία 2 έως 4 (µε διαχωριστή στήλης tab) cut -d: -f2-4 le1 αποσπά τις στήλες/πεδία 2 έως 4 µε διαχωριστή : sed sed 's/ $//g' < le1 οποιοδήποτε κενό χαρακτήρα που υπάρχει στο τέλος κάθε γραµµής sed 's/...//' le1 διαγραφή των 3 πρώτων χαρακτήρων από κάθε γραµµή του αρχείου le1 sed 's/.*$//' le1 εµφανίζει κενές όλες τις γραµµές του αρχείου sed 's/[ ][^ ]*$//g' le1 διαγράφει την τελευταία λέξη κάθε γραµµής echo "John.Smith" sed -r 's/^([^.]*).(.*)$/\2, \1/' δίνει Smith, John option -r sed -e 's/ja/x/' -e 's/sa/x/' le1 για περισσότερα του ενός πρότυπα option -e sed '5d' le1 διαγραφή της 5ης γραµµής sed '/^ *$/d' le1 διαγραφή των κενών γραµµών ή αυτών που περιέχουν µόνον κενά [5]