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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

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

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

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

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

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

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

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

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εγχειρίδιο για το Λειτουργικό Σύστηµα Linux. Ιωάννης Ε. Λιβιέρης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Users (Χρήστες) Κατανοµή προνοµίων (πρόσβαση σε αρχεία, έλεγχος διεργασιών κλπ) σύµφωνα µε συµβάσεις.

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

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

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

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

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

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

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

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

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

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

Ενότητα 1 Διάλεξη 1β

Directories & Files

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

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

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

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

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

Βαςικέσ Έννοιεσ Λειτουργικών Συςτημάτων

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


Command Line For Beginners. Thessaloniki Linux. User. Group

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ. ΕΠΛ371 - Προγραµµατισµός Συστηµάτων

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

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

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

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

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

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

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

Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΡΓΑΣΤΗΡΙΟ #1 Το Λειτουργικό Σύστημα Unix

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου. Λειτουργικά Συστήματα Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

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

Transcript:

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

Σημεύωςη: τα παραδεύγματα που ακολουθούν εκτελϋςτηκαν ςε: Linux, διανομό Debian με kernel 2.6.18 κϋλυφοσ bash 3.2 Ωςτόςο, γενικϊ ιςχύουν και για ϊλλεσ διανομϋσ/πυρόνεσ/κελύφη Ειςαγωγό ςτο UNIX 2

Κέλυφοσ (shell) Διερμηνϋασ γραμμόσ εντολών (command line interpreter) Βαςικό (βαςικότατο!) μϋςο διεπαφόσ με το χρόςτη ενόσ ςυςτόματοσ Συνηθιςμϋνα κελύφη: Bourne shell (sh) Korn shell (ksh) C shell (csh) Tenex C shell (tcsh) Bourne Shell Again (bash) Για να δούμε ςε ποιο κϋλυφοσ δουλεύουμε: echo $SHELL Ειςαγωγό ςτο UNIX 3

Το Κέλυφοσ είναι απλώσ ένα πρόγραμμα Φιλοςοφύα: while(1) { read line from terminal; parse into words; substitute variables; execute commands; } Ειςαγωγό ςτο UNIX 4

Δομή γραμμήσ εντολών prompt command [-options] [arguments] Παραδεύγματα: peace:/# cd /var/home/ peace:/var/home# ls -la drwxr-xr-x 4 gelioud gelioud 4096 2008-01-07 18:45 gelioud drwxr-xr-x 3 gkapi gkapi 90 2008-05-05 11:57 gkapi peace:/var/home# ls -la grep *lioud drwxr-xr-x 4 gelioud gelioud 4096 2008-01-07 18:45 gelioud Ειςαγωγό ςτο UNIX 5

Για βοήθεια: man gelioud@peace:~$ man ls LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... 200++ γραμμέσ! DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvsux nor --sort. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with. -A, --almost-all do not list implied. and.. Ειςαγωγό ςτο UNIX 6

Για βοήθεια Περύληψη βοόθειασ (ςε μύα γραμμό): man f <command> π.χ. Σύντομη, ςυνεκτικό βοόθεια : <command> -help π.χ. gelioud@peace:~$ man -f ls ls (1) - list directory contents gelioud@peace:~$ -a do not ignore entries starting with. -A do not list implied. and.. -g like -l, but do not list owner -h with -l, print sizes in human readable format -l use a long listing format -r reverse order while sorting -R list subdirectories recursively -s print the size of each file, in blocks -S sort by file size -t sort by modification time...... Ειςαγωγό ςτο UNIX 7

Πληροφορίεσ για το ςύςτημα και τουσ χρήςτεσ uname: εμφανύζει πληροφορύεσ για το ςύςτημα gelioud@peace:/$ uname -a Linux peace 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux users: εμφανύζει τουσ χρόςτεσ που εύναι ςυνδεδεμϋνοι gelioud@peace:/$ users gelioud gelioud who: εμφανύζει τουσ χρόςτεσ που εύναι ςυνδεδεμϋνοι με περιςςότερεσ λεπτομϋρειεσ gelioud@peace:~$ who gelioud pts/0 gelioud pts/1 2011-03-31 01:42 (vpn-131-245.vpn.ntua.gr) 2011-03-31 01:47 (vpn-131-245.vpn.ntua.gr) Ειςαγωγό ςτο UNIX 8

Πληροφορίεσ για το ςύςτημα και τουσ χρήςτεσ whoami: εμφανύζει το όνομα του τρϋχοντοσ χρόςτη gelioud@peace:~$ whoami gelioud finger: εμφανύζει πληροφορύεσ για κϊποιο χρόςτη gelioud@peace:~$ finger -l Login: gelioud Name: Georgios Lioudakis Directory: /home/gelioud Shell: /bin/bash On since Thu Mar 31 01:42 (EEST) on pts/0 from vpn-131-245.vpn.ntua.gr On since Thu Mar 31 01:47 (EEST) on pts/1 from vpn-131-245.vpn.ntua.gr w: εμφανύζει πληροφορύεσ για τουσ ςυνδεδεμϋνουσ χρόςτεσ gelioud@peace:~$ w -sh gelioud pts/0 vpn-131-245.vpn. 0.00s w -sh gelioud pts/1 vpn-131-245.vpn. 29.00s -bash Ειςαγωγό ςτο UNIX 9

Βαςικοί κατάλογοι ςτο UNIX / (root): η ρύζα του δϋντρου τησ ιεραρχύασ των αρχεύων /boot: αρχεύα που εκτελούνται κατϊ την εκκύνηςη του ςυςτόματοσ /lib: βαςικϋσ βιβλιοθόκεσ /bin: βαςικϋσ εκτελϋςιμεσ εντολϋσ /sbin, /usr/sbin: εντολϋσ για τη διαχεύριςη του ςυςτόματοσ /usr: διαμοιραζόμενα αρχεύα χρηςτών μόνο για ανϊγνωςη /home: τα home directories των χρηςτών του ςυςτόματοσ /etc: αρχεύα διαμόρφωςησ ςυςτόματοσ /dev: αρχεύα που αναπαριςτούν τισ ςυςκευϋσ του ςυςτόματοσ /mnt: εδώ γύνονται mount ϊλλα ςυςτόματα αρχεύων /media: αρχεύα εξωτερικών ςυςκευών (π.χ., CD-ROM) /var: αρχεύα που αλλϊζουν ςυνεχώσ κατϊ τη λειτουργύα του ςυςτόματοσ (π.χ., log files) /tmp: προςωρινϊ αρχεύα Ειςαγωγό ςτο UNIX 10

Πλοήγηςη pwd: μασ δεύχνει ςε ποιο φϊκελο βριςκόμαςτε cd: αλλαγό καταλόγου gelioud@peace:/$ pwd / gelioud@peace:/$ cd /home/gelioud/ gelioud@peace:~$ pwd /home/gelioud Ειδικού κατϊλογοι:.: ο τρϋχων κατϊλογοσ..: ο κατϊλογοσ γονϋασ ~: το home directory του χρόςτη /: ο κατϊλογοσ ρύζα gelioud@peace:/$ pwd / gelioud@peace:/$ cd ~ gelioud@peace:~$ pwd /home/gelioud gelioud@peace:~$ cd.. gelioud@peace:/home$ pwd /home gelioud@peace:/home$ cd. gelioud@peace:/home$ pwd /home gelioud@peace:/home$ cd ~/uop2011 gelioud@peace:~/uop2011$ pwd /home/gelioud/uop2011 Ειςαγωγό ςτο UNIX 11

Πλοήγηςη ls: εμφανύζει τα περιεχόμενα ενόσ καταλόγου gelioud@peace:~/uop2011$ ls dir1 dir2 file1 file2 primenumber.sh Πολλϋσ παρϊμετροι, π.χ.: l: long list format a: όλα h: φιλικό γραφό μεγεθών gelioud@peace:~/uop2011$ ls -lahf total 8.0K drwxr-xr-x 4 gelioud gelioud 64 2011-03-31 04:17./ drwxr-xr-x 6 gelioud gelioud 4.0K 2011-03-31 03:30../ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1/ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2/ -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file1 0 2011-03-31 04:12 file2 -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh* -rw-r--r-- 1 gelioud gelioud F: προςθόκη χαρακτόρων ενδεικτικών του τι εύναι το αρχεύο (π.χ., /: κατϊλογοσ, *: εκτελϋςιμο) Ειςαγωγό ςτο UNIX 12

Χρήςτεσ και ομάδεσ Ο κϊθε χρόςτησ του ςυςτόματοσ ϋχει ϋνα όνομα (user name) και ϋνα αναγνωριςτικό (user identifier UID) Ο κϊθε χρόςτησ ανόκει ςε μύα ό περιςςότερεσ ομϊδεσ (groups) Κϊθε group ϋχει όνομα και αναγνωριςτικό (group identifier GID) Πληροφορύεσ για τουσ χρόςτεσ βρύςκονται ςτο αρχεύο /etc/passwd Τα passwords βρύςκονται κρυπτογραφημϋνα ςτο αρχεύο /etc/shadow Πληροφορύεσ για τα groups βρύςκονται ςτο αρχεύο /etc/groups peace:/etc# pwd /etc peace:/etc# more passwd grep gelioud gelioud:x:1000:1000:georgios Lioudakis,,,:/home/gelioud:/bin/bash peace:/etc# more shadow grep gelioud gelioud:$1$iwype1ud$6dupwoxx8zuledyqj3mv4.:14780:0:99999:7::: Ειςαγωγό ςτο UNIX 13

Βαςικέσ εντολέσ χειριςμού αρχείων mkdir: δημιουργύα καταλόγου touch: δημιουργύα αρχεύου rmdir: διαγραφό καταλόγου rm: διαγραφό αρχεύου cp: αντιγραφό αρχεύου mv: μεταφορϊ/μετονομαςύα αρχεύου head: εμφϊνιςη πρώτων γραμμών tail: εμφϊνιςη τελευταύων γραμμών more: εμφϊνιςη περιεχομϋνου αρχεύου ςελύδα-ςελύδα cat: ςυνϋνωςη αρχεύων ςτην ϋξοδο file: εμφϊνιςη του τύπου ενόσ αρχεύου Ειςαγωγό ςτο UNIX 14

Ανακατεύθυνςη ειςόδου/εξόδου Τυπικό εύςοδοσ: stdin Τυπικϋσ ϋξοδοι: stdout ρεύμα εξόδου stderr ρεύμα ςφαλμϊτων cmd > file: δημιουργύα αρχεύου ό overwrite cmd >> file: προςϊρτηςη (append) ςτο όδη υπϊρχον περιεχόμενο του αρχεύου cmd < file: εύςοδοσ από αρχεύο Ειςαγωγό ςτο UNIX 15

Ανακατεύθυνςη ειςόδου/εξόδου gelioud@peace:~/uop2011$ ls -alhf total 8.0K drwxr-xr-x 4 gelioud gelioud 64 2011-03-31 04:17./ drwxr-xr-x 6 gelioud gelioud 4.0K 2011-03-31 03:30../ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1/ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2/ -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file1 -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file2 -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh* gelioud@peace:~/uop2011$ ls -alhf > lsalhf gelioud@peace:~/uop2011$ more lsalhf total 8.0K drwxr-xr-x 4 gelioud gelioud 77 2011-03-31 05:34./ drwxr-xr-x 6 gelioud gelioud 4.0K 2011-03-31 03:30../ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1/ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2/ -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file1 -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file2 -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 05:34 lsalhf -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh* Ειςαγωγό ςτο UNIX 16

Σωλήνωςη Με χρόςη του pipe ( ) μπορούμε να δώςουμε την ϋξοδο κϊποιασ εντολόσ ωσ εύςοδο ςε κϊποια ϊλλη cmd1 cmd2 cmd3 peace:/etc# pwd /etc peace:/etc# more passwd grep gelioud gelioud:x:1000:1000:georgios Lioudakis,,,:/home/gelioud:/bin/bash peace:/etc# more shadow grep gelioud gelioud:$1$iwype1ud$6dupwoxx8zuledyqj3mv4.:14780:0:99999:7::: Ειςαγωγό ςτο UNIX 17

Δικαιώματα πρόςβαςησ Κϊθε αρχεύο (και κατϊλογοσ!) ϋχει ϋναν ιδιοκτότη (owner) ο οπούοσ εύναι χρόςτησ του ςυςτόματοσ Τρεισ τύποι δικαιωμϊτων πρόςβαςησ: read write execute για τρεισ τύπουσ χρηςτών: owner group others gelioud@peace:~/uop2011$ ls -lahf total 8.0K drwxr-xr-x 4 gelioud gelioud 64 2011-03-31 04:17./ drwxr-xr-x 6 gelioud gelioud 4.0K 2011-03-31 03:30../ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1/ drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2/ -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file1 -rw-r--r-- 1 gelioud gelioud 0 2011-03-31 04:12 file2 -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh* δικαιώματα πρόςβαςησ owner group Ειςαγωγό ςτο UNIX 18

Δικαιώματα πρόςβαςησ drwxr-xr-x d rwx r-x r-x Δεύκτησ τύπου αρχεύου Δικαιώματα πρόςβαςησ owner Δικαιώματα πρόςβαςησ group Δικαιώματα πρόςβαςησ υπολούπων r: ανϊγνωςη w: εγγραφό x: εκτϋλεςη Ειςαγωγό ςτο UNIX 19

Δικαιώματα πρόςβαςησ Οκταδικό γραφό: rwx r-x r-x 111 101 101 755 Καθοριςμόσ δικαιωμϊτων πρόςβαςησ: chmod chmod [OPTIONS] u g o a + - = r w x <filename> chmod OCTAL MODE <filename> π.χ. chmod -R g+wx mydir π.χ. chmod 771 myfile Αλλαγό ιδιοκτότη αρχεύου: chown chown <new owner> <filename> π.χ. chown jhendrix myfile MODE Ειςαγωγό ςτο UNIX 20

Δικαιώματα πρόςβαςησ peace:/home/gelioud/uop2011# ls -l total 8 drwxr-xr-x 4 gelioud gelioud 40 2011-03-31 09:01. drwxr-xr-x 6 gelioud gelioud 4096 2011-03-31 09:00.. drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1 drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2 -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh peace:/home/gelioud/uop2011# whoami root peace:/home/gelioud/uop2011# touch file1 peace:/home/gelioud/uop2011# ls -l total 8 drwxr-xr-x 4 gelioud gelioud 52 2011-03-31 09:02. drwxr-xr-x 6 gelioud gelioud 4096 2011-03-31 09:00.. drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir1 drwxr-xr-x 2 gelioud gelioud 6 2011-03-31 04:12 dir2 -rw-r--r-- 1 root root 0 2011-03-31 09:02 file1 -rwxr-xr-x 1 gelioud gelioud 353 2011-03-31 04:13 pn.sh peace:/home/gelioud/uop2011# chmod 777 file1 peace:/home/gelioud/uop2011# ls -la grep file1 -rwxrwxrwx 1 root root 0 2011-03-31 09:02 file1 peace:/home/gelioud/uop2011# chown gelioud file1 peace:/home/gelioud/uop2011# ls -la grep file1 -rwxrwxrwx 1 gelioud root 0 2011-03-31 09:02 file1 Ειςαγωγό ςτο UNIX 21

Διαχείριςη διεργαςιών ps: μασ δύνει τη λύςτα των τρεχουςών διεργαςιών peace:~# ps -ef grep gelioud root 7743 2432 0 08:54? 00:00:00 sshd: gelioud [priv] gelioud 7751 7743 0 08:55? 00:00:00 sshd: gelioud@pts/0 gelioud 7752 7751 0 08:55 pts/0 00:00:00 -bash root 8280 2432 0 09:53? 00:00:00 sshd: gelioud [priv] gelioud 8282 8280 0 09:53? 00:00:00 sshd: gelioud@pts/1 gelioud 8283 8282 0 09:53 pts/1 00:00:00 bash root 8385 7813 0 10:00 pts/0 00:00:00 grep gelioud kill -9 <PID>: τερματιςμόσ διεργαςύασ με process ID PID peace:~# kill -9 8283 peace:~# ps -ef grep gelioud root 7743 2432 0 08:54? 00:00:00 sshd: gelioud [priv] gelioud 7751 7743 0 08:55? 00:00:00 sshd: gelioud@pts/0 gelioud 7752 7751 0 08:55 pts/0 00:00:00 -bash root 8410 7813 0 10:03 pts/0 00:00:00 grep gelioud Ειςαγωγό ςτο UNIX 22

BASH scripts Script: ςύνολο από bash εντολϋσ Αρχεύο κειμϋνου Εκτελϋςιμο Γιατύ? Για την αυτοματοπούηςη απλών καθημερινών εργαςιών Ένα αντύςτοιχο πρόγραμμα C/C++/Java κλπ. θα χρειαζόταν μεταγλώττιςη, βιβλιοθόκεσ,... Για απλϋσ λειτουργύεσ ϋνα script εύναι πιο εύκολο ςτην ανϊπτυξη και πιο γρόγορο ςτην εκτϋλεςη Παρϋχονται ευκολύεσ όπωσ: Έλεγχοσ ροόσ Μεταβλητϋσ Χειριςμόσ αρχεύων... Ειςαγωγό ςτο UNIX 23

Εκτέλεςη BASH scripts bash script_file ό απλώσ:./script_file ϋχοντασ ωσ πρώτη γραμμό ςτο script_file την: #!/bin/bash ό #!/bin/sh (ςτα περιςςότερα ςυςτόματα πλϋον, το sh υπονοεύ bash) Ειςαγωγό ςτο UNIX 24

Μερικοί ειδικοί χαρακτήρεσ * : οποιαδόποτε ςυμβολοςειρϊ? : οποιοςδόποτε (ϋνασ) χαρακτόρασ ~ : home directory ; : διαχωριςμόσ εντολών & : εκτϋλεςη ςτο παραςκόνιο $ : αντικατϊςταςη μεταβλητόσ # : ςχόλιο : η ϋξοδοσ μύασ εντολόσ δύνεται ωσ εύςοδοσ ςε ϊλλη &&,,! : λογικϊ AND, OR, NOT Ειςαγωγό ςτο UNIX 25

Χρήςη ειςαγωγικών Τι θα εμφανύςει καθϋνα από τα παρακϊτω?? echo "Hello World" echo "Hello World" echo Hello World echo "Hello" World echo Hello " " World echo "Hello * World" echo Hello * World echo "Hello \"*\" World" echo `Hello` World echo 'Hello' World Ειςαγωγό ςτο UNIX 26

Μεταβλητέσ #!/bin/sh MY_MESSAGE="Hello World" echo $MY_MESSAGE #!/bin/sh echo What is your name? read MY_NAME echo "Hello $MY_NAME" #!/bin/sh echo "What is your name?" read USER_NAME echo "Hello $USER_NAME" echo "I will create you a file called ${USER_NAME}_file" touch "${USER_NAME}_file" Ειςαγωγό ςτο UNIX 27

Μεταβλητέσ #!/bin/sh echo "I was called with $# parameters" echo "My name is $0" echo "My first parameter is $1" echo "My second parameter is $2" echo "All parameters are $@" Ειςαγωγό ςτο UNIX 28

Έλεγχοσ ροήσ: for #!/bin/sh for i in 1 2 3 4 5 do echo "Looping... number $i" done #!/bin/sh for i in hello 1 * 2 goodbye do echo "Looping... number $i" done Ειςαγωγό ςτο UNIX 29

Έλεγχοσ ροήσ: while #!/bin/sh INPUT_STRING=hello while [ "$INPUT_STRING"!= "bye" ] do echo "Please type something in (bye to quit)" read INPUT_STRING echo "You typed: $INPUT_STRING" done #!/bin/sh while : do echo "Please type something in (^C to quit)" read INPUT_STRING echo "You typed: $INPUT_STRING" done Ειςαγωγό ςτο UNIX 30

Έλεγχοσ ροήσ: if if [... ] then # if-code else # else-code fi if [ something ]; then echo "Something" elif [ something_else ]; then echo "Something else" else echo "None of the above" fi Ειςαγωγό ςτο UNIX 31

Χρήςη των && και για εκτέλεςη υπό ςυνθήκη #!/bin/sh read X if [ "$X" -lt "0" ] then echo "X is less than zero" fi if [ "$X" -gt "0" ]; then echo "X is more than zero" fi [ "$X" -le "0" ] && \ echo "X is less than or equal to zero" [ "$X" -ge "0" ] && \ echo "X is more than or equal to zero" [ "$X" = "0" ] && \ echo "X is the string or number \"0\"" [ "$X" = "hello" ] && \ echo "X matches the string \"hello\"" [ "$X"!= "hello" ] && \ echo "X is not the string \"hello\"" [ -n "$X" ] && \ echo "X is of nonzero length" [ -f "$X" ] && \ echo "X is the path of a real file" \ echo "No such file: $X" [ -x "$X" ] && \ echo "X is the path of an executable file" [ "$X" -nt "/etc/passwd" ] && \ echo "X is a file which is newer than /etc/passwd" Ειςαγωγό ςτο UNIX 32

Έλεγχοσ ροήσ: case #!/bin/sh while read f do case $f in hello) echo English ;; howdy) echo American ;; gday) echo Australian ;; bonjour) echo French ;; "guten tag") echo German ;; *) echo Unknown Language: $f ;; esac done < myfile Ειςαγωγό ςτο UNIX 33

Ανακατεύθυνςη Ειςόδου/Εξόδου Τυπικό εύςοδοσ: stdin Τυπικϋσ ϋξοδοι: stdout ρεύμα εξόδου stderr ρεύμα ςφαλμϊτων cmd > file: δημιουργύα αρχεύου ό overwrite cmd >> file: προςϊρτηςη (append) ςτο όδη υπϊρχον περιεχόμενο του αρχεύου cmd < file: εύςοδοσ από αρχεύο το αρχεύο ανούγει readonly! cmd <> file: το αρχεύο ανούγει και για ανϊγνωςη και για εγγραφό cmd > file 2>&1: ανακατεύθυνςη ςτο αρχεύο του ρεύματοσ εξόδου και του ρεύματοσ ςφαλμϊτων Ειςαγωγό ςτο UNIX 34

Συναρτήςεισ #!/bin/sh add_a_user() { USER=$1 PASSWORD=$2 shift; shift; COMMENTS=$@ echo "Adding user $USER..." echo useradd -c "$COMMENTS" $USER echo passwd $USER $PASSWORD echo "Added user $USER ($COMMENTS) with password $PASSWORD" } echo "Start of script..." add_a_user bob letmein Bob Holness the presenter add_a_user fred badpassword Fred Durst the singer add_a_user bilko worsepassword Sgt. Bilko the role model echo "End of script..." Ειςαγωγό ςτο UNIX 35

Συναρτήςεισ #!/bin/sh adduser() { USER=$1 PASSWD=$2 shift ; shift COMMENTS=$@ useradd -c "${COMMENTS}" $USER if [ "$?" -ne "0" ]; then echo "Useradd failed" return 1 fi passwd $USER $PASSWD if [ "$?" -ne "0" ]; then echo "Setting password failed" return 2 fi echo "Added user $USER ($COMMENTS) with pass $PASSWORD"} } adduser bob letmein Bob Holness from Blockbusters if [ "$?" -eq "1" ]; then echo "Something went wrong with useradd" elif [ "$?" -eq "2" ]; then echo "Something went wrong with passwd" else echo "Bob Holness added to the system." fi Ειςαγωγό ςτο UNIX 36