Κ24: Προγραμματισμός Συστήματος



Σχετικά έγγραφα
Προγραµµατισµός Συστήµατος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

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

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

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

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

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

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

make Προγραμματισμός II 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

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

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ UNIX

Shell Scripts: loops / if / test

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Transcript:

Κ24: Προγραμματισμός Συστήματος Διδάσκουσα: Μέμα Ρουσσοπούλου Διδασκαλία: Γραφείο:Α38 Δευτέρα 13:00 :00-15:00 (Α2)( Τρίτη 13:00 :00-15:00 (Α2) Ώρες Γραφείου: Τρίτη 15:00 :00-16:00 Email: mema@di.uoa.gr Web Page: http://cgi.di.uoa.gr/~mema/courses/k24/k24.html 1

ΓενικέςΠληροφορίες ΕΔΙΠ Miltos Kyriakakos A24 Μεταπτυχιακοί Συνεργάτες Georgios Balatsouras Serafeim Chatzopoulos Stamatios Christoforidis Panagiotis Diamantopoulos George Kastrinis Michalis Konstantopoulos Sotirios-Efstathios (Stathis) Maneas Emmanouil Papadomichelakis Dimitrianos Savva Yannis Kavvouras Ανακοινώσεις, εργασίες, χρήσιμοι σύνδεσμοι, και άλλες πληροφορίες στην ιστοσελίδα Να γραφτείτε στο Piazza class forum. 2

Βιβλίο M.J. Rochkind, Advanced Unix Programming, Prentice-Hall Software Series, Englewood Cliffs, NJ, 2004 Άλλες χρήσιμες αναφορές στην ιστοσελίδα μαθήματος Διαφάνειες στην ιστοσελίδα του μαθήματος (ευχαριστίες στους κκ. Τάκη Σταματόπουλο, Αντώνιο Δελιγιαννάκη, και Αλέξη Δελή). 3

Βαθμολογία Programming Assignments: 50% Final Exam: 50% To pass the course, you must achieve: 1) a score of at least 50% on HW1 2) an average score of 50% on HW2 and HW3 3) a score of >=40% on final exam Same rules hold for September exam 4

ΠεριεχόμεναΜαθήματος Λειτουργικό σύστημα UNIX Προγραμματισμός σε κελύφη Προγραμματισμός λειτουργιών συστήματος σε C Χειρισμό λαθών Αποστολή/παραλαβή σημάτων Είσοδο/έξοδο χαμηλού επιπέδου Δημιουργία/τερματισμό διεργασιών Επικοινωνία μεταξύ διεργασιών μέσω σωλήνων, υποδοχών, ουρών μηνυμάτων, κοινής μνήμης, και σηματοφόρων Δημιουργία, τερματισμό και συγχρονισμό νημάτων 5

Homeworks HW 1 assigned end of this week DUE: Sunday March 15 HW 2 assigned Mon March 23 DUE: Saturday April 25 HW 3 assigned Mon May 4 DUE: Sunday March 24 Late Policy: May submit up to 3 days late, with 5% penalty each day. Oral exam required; during the week of the deadline. 6

Λειτουργικόσύστημα Ενδιάμεσο πρόγραμμα μεταξύ χρήστη-υλικού συστήματος Στόχος Διευκόλυνση χρήσης υπολογιστή Αποδοτική χρήση υπολογιστή Διαχείρηση Πόρων Επεξεργαστές Κύρια και δευτερεύουσα μνήμη Συσκευές εισόδου/εξόδου Σύστημα διαχείρισης αρχείων μακροπρόθεσμη αποθήκευση πληροφοριών 7

Unix 1969 Bell Laboratories (AT&T) σε μορφή assembly Ken Thompson 1973 υλοποίηση σε γλώσσα C Brian Kernighan, Dennis Ritchie Πολλές αλλαγές βελτιώσεις από τότε Major Revision από Univ. of California, Berkeley (in the 1980s) Redevelopment for SPARC processor by SUN Microsystems (1990s) Release of Linux and ongoing development (1990s now) Unix/Linux (in various versions and releases) now used on servers as well as PCs, notebooks, workstations, and mobile phones. 8

ΧαρακτηριστικάUnix Πολλαπλοί χρήστες Πολλαπλές διεργασίες, διαµέριση χρόνου Παροχή ασφάλειας Υποστήριξη δικτύων οµή: Πυρήνας (kernel) Βοηθητικά προγράµµατα Μεταγλωττιστές, διορθωτές, γλώσσες διαταγών Κέλυφος C, Bourne, Bash, Korn 9

ΧαρακτηριστικάUnix (2) Παροχή C συναρτήσεις για κλήσεις συστήµατος ιαλογική επικοινωνία χρήστη µέσω του κελύφους Επιτρέπει προγραµµατισµό του κελύφους ιάκριση πεζών-κεφαλαίων 10

ΙεραρχικήΟργάνωση / bin etc home dev var usr tmp jim john mary tmp spool local bin Κατάλογος-Ρίζα (/) Τρέχωνκατάλογος (.) Γονικόςκατάλογος (..) Μονοπάτια απόλυτα και σχετικά Αρχεία Σύνδεσµοι Συσκευές 11

ΛογαριασμόςΧρήστη Όνοµα και συνθηµατικό χρήστη Κέλυφος αρχικής σύνδεσης Οµάδες χρήστη Κατάλογος αφετηρίας (home directory) mema@bowser's password: Linux bowser 2.6.24-23-generic #1 SMP Mon Jan 26 00:13:11 UTC 2009 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Last login: Mon Jan 7 01:25:54 2008 mema@bowser:~$ pwd /home/mema 12

ΒασικέςΕντολές man ls pwd cd mkdir rmdir cp mv rm cat lpr vi Εµφάνιση οδηγιών χρήσης εντολών Εµφάνιση περιεχοµένων καταλόγου Μονοπάτι τρέχοντος καταλόγου Αλλαγή τρέχοντος καταλόγου ηµιουργία καταλόγου ιαγραφή καταλόγου Αντιγραφή αρχείου/καταλόγου Μετακίνηση αρχείου ιαγραφή αρχείου Εµφάνιση περιεχοµένων αρχείου Εκτύπωση αρχείου Κειµενογράφος οθόνης 13

PWD(1) PWD(1) User Commands NAME pwd - print name of current/working directory SYNOPSIS pwd [OPTION] DESCRIPTION Print the full filename of the current working directory. --help display this help and exit --version output version information and exit NOTE: your shell may have its own version of pwd, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports. 14

Όλα όσα περιέχουν τη λέξη manual (-k) linux02:/home/users/mema>man -k manual cddb-slave2-properties (1) - manual page for Gnome cddb-slave2-prope gstreamer-properties (1) - manual page for Gnome gstreamer-properties apropos (1) - search the manual page names and descriptions catman (8) - create or update the pre-formatted manual pages ecj (1) - manual page for eclipse JDT Compiler ecj-gcj (1) - manual page for eclipse JDT Compiler esdcompat (1) - manual page for pulseaudio esd wrapper 0.9.5 gnome-volume-control (1) - manual page for Gnome gnome-volume grub-reboot (8) - manual page for grub-reboot 0.01 readahead-watch (8) - manual page for readahead-watch: 0.20050517.0 man (1) - an interface to the on-line reference manuals manconv (1) - convert manual page from one encoding to another mandb (8) - create or update the manual page index caches manpath (1) - determine search path for manual pages missing (7) - missing manual pages pulseaudio (1) - manual page for pulseaudio 0.9.5 readahead-list (8) - manual page for readahead-list: 0.20050517.0220 vumeter (1) - manual page for Gnome Volume Meter 2.1.0 w3mman (1) whatis (1) whereis (1) xman (1) - an interface to the on-line reference manuals by w - display manual page descriptions - locate the binary, source, and manual page files for a - Manual page display program for the X Window Sys 15

Εντολή ls (-a, -l, -r) Τύπωσε και περιεχόµενα από. (-a) Ότι το προηγούµενο, λεπτοµερώς (-l) Αντίστροφη εκτύπωση (-r) Αρχείο που εκτελείται όταν ξεκινάει το κέλυφος: bash:.bashrc csh:.cshrc tcsh:.tcshrc 16

Δικαιώματαχρηστών Κάθε αρχείο/κατάλογος ανήκει στον δηµιουργό του Κάθεχρήστηςανήκεισεµιαή περισσότερεςοµάδες. Πχ: users, postgrads, dep, undergrads,. 10 bits - rwx r-x r-x ιδιοκτήτη οµάδα υπόλοιποι 1o bit συνήθως d (κατάλογος) ή - (κανονικόαρχείο) 3 οµάδεςτριών bit (ανάγνωση, εγγραφή, εκτέλεση) 17

Δικαιώματαχρηστών r w x Αρχείο Ανάγνωση, αντιγραφή Αλλαγή αρχείου. ΟΧΙ διαγραφή Εκτέλεση αρχείου Κατάλογος Περιεχόµενα καταλόγου ιαγραφή, δηµιουργία αρχείων Πρόσβαση µε εντολή cd. Αν δεν έχω r δεν βλέπω όµως ονόµατα των αρχείων 18

Εντολή ls (-d, -R, -t) Εντολήls(-d, -R, -t) Μόνο για τον κατάλογο (-d) Αναδροµική εκτύπωση υποκαταλόγων (-R) Ταξινόµηση µε βάση τελευταία µεταβολή (-t) 19

Εντολές pwd, cd, mkdir, rmdir Έξτρα σύµβολα στο τέλος ονόµατος (-F) Μονοπάτι τρέχοντος καταλόγου rmdir -r (όχι γιακαταλόγους) 20

Εντολές cp (-i, -r), mv (-i), rm (-i, -r, -f) Αν υπάρχει, επιβεβαίωση (-i) Αν υπάρχει, επιβεβαίωση (-i) Αναδροµική αντιγραφή (-r) Αναδροµική διαγραφή (-r) rm -f (διαγραφή χωρίς ερώτηση λιγότερο ισχυρό από το -i) 21

Κειμενογράφοςvi vi/vim filename: edit the content of the file with name <filename> Two modes of operation: input and edit Move from input to edit with ESC Move from edit to input mode by pressing i www.yolinux.com/tutorials/lin uxtutorialadvanced_vi.html emacs, pico, ed, gedit, xemacs, etc Οδηγίες χρήσης στο βιβλίο (Kernighan & Pike) καιστο Web 22

Εντολές cat (-n), lpr (-P) Εντολές Εµφάνισεκαιαριθµούςγραµµών (-n) 23

ΕπεξεργασίαΑρχείων chmod more grep wc sort touch ln cut cmp diff head tail Αλλαγή δικαιωµάτων προστασίας αρχείων και καταλόγων Σταδιακή εµφάνιση περιεχοµένου Εµφάνιση συγκεκριµένου περιεχοµένου σε αρχείο Λεξικο-στατιστικά αρχείου Ταξινόµηση αρχείου Χρονική ενηµέρωση αρχείου/ καταλόγου ηµιουργία συνδέσµων Παρουσίαση συγκεκριµένων τµηµάτων γραµµών αρχείου Σύγκριση 2 αρχείων Εµφάνιση διαφορών 2 αρχείων κειµένου Εµφάνιση πρώτων κ γραµµών Εµφάνιση τελευταίων κ γραµµών. 24

mema@bowser>cp.cshrc tmpfile mema@bowser>ls -l total 4 -rwx------ 1 mema dep 751 Feb 17 11:09 tmpfile* mema@bowser>chmod 0744 tmpfile mema@bowser>ls -l total 4 -rwxr--r-- 1 mema dep 1751 Feb 17 11:09 tmpfile* mema@bowser>chmod o-r tmpfile mema@bowser>chmod g+wx tmpfile mema@bowser>ls -lt total 4 Αφαίρεσε ανάγνωση από υπόλοιπους Πρόσθεσεεγγραφή, εκτέλεση σε οµάδα -rwxrwx--- mema@bowser>chmod u-wx,g+rx,o+r tmpfile mema@bowser>ls -l total 4 1 mema dep 1751 Feb 17 11:09 tmpfile* -r--rwxr-- 1 mema dep mema@bowser> rm tmpfile rm: remove write-protected `tmpfile (yes/no)? Y mema@bowser> rm tmpfile 1751 Feb 17 11:09 tmpfile* 25

mema@bowser>ls dir1/ dir1: file1.txt file2.txt mema@bowser>cp -r dir1 dir2 mema@bowser>ls -l dir2 total 4 -rw-r--r-- 1 mema dep 16 Feb 17 11:38 file1.txt -rw-r--r-- 1 mema dep 16 Feb 17 11:38 file2.txt mema@bowser>chmod -R 750 dir2 mema@bowser>ls -lrf dir2 dir2: total 4 Αναδροµικά στον κατάλογο (-R) -rwxr-x--- 1 mema dep 16 Feb 17 11:38 file1.txt* -rwxr-x--- 1 mema dep 16 Feb 17 11:38 file2.txt* mema@bowser> 26

Τι δικαιώµατα (permissions) απαιτούνται για να µπορεί να διαφραφεί ένα αρχείο; Τι δικαιώµατα απαιτούνται για να µπορεί να εκτελεσθεί επιτυχώς η εντολή ls dir ; Χρειάζονται περισσότερα δικαιώµατα αν η έντολη είναιη ls l dir ; 27

Θέμαεξέτασης Σαν owner, µπορώ. Αλλιώςόχι. εν έχει δικαίωµα ανάγνωσης 28

Εντολή more 29

Εντολήless Similar to more: [return] skip a line [space] get next page b display previous page /<s> -- search for pattern s!<c>[return] -- execute command c h help q exit from less Used to offer more than more, hence less is more now, on some systems, is the same binary 30

Εντολέςgrep(-n, -i, -v), wc(-l, -w, -c) Γραµµές που περιέχουν 6000 Τύπωσε # γραµµής Αγνόησε κεφαλαία-µικρά Όλες τις γραµµές ΕΚΤΟΣ από όσες ταιριάζουν # Γραµµές, λέξεις, χαρακτήρες Μόνο # γραµµών Μόνο # λέξεων Μόνο # χαρακτήρων 31

Εντολή sort Εντολήsort Ταξινόµηση (ανάγραµµή, σανκείµενο) Με βάση 2η στήλη, σαν κείµενο >sort -k 2 example.txt Μεβάση 2ηστήλη, Αριθµητική (-n), Αντίστροφη (-r) >sort -r -n -k 2 example.txt 32

Εντολές touch, ln (-s) mema@bowser>touch empty.txt mema@bowser>ls -la total 4 Αν υπάρχει ήδη, άλλαξε χρόνο τροποποίησης. Αλλιώςδηµιούργησε drwxr-xr-x 2 mema dep 512 Feb 19 11:22./ drwxr-xr-x 4 mema dep 512 Feb 17 11:38../ -rw-r--r-- 1 mema dep 0 Feb 19 11:22 empty.txt -rw-r--r-- 1 mema dep 16 Feb 17 11:30 file1.txt -rw-r--r-- 1 mema dep 18 Feb 17 11:30 file2.txt mema@bowser>ln file1.txt hard-link mema@bowser>ls -la total 5 drwxr-xr-x 2 mema dep 512 Feb 19 11:25./ drwxr-xr-x 4 mema dep 512 Feb 17 11:38../ -rw-r--r-- 1 mema dep 0 Feb 19 11:22 empty.txt -rw-r--r-- 2 mema dep 16 Feb 17 11:30 file1.txt -rw-r--r-- 1 mema dep 18 Feb 17 11:30 file2.txt -rw-r--r-- 2 mema dep 16 Feb 17 11:30 hard-link mema@bowser>ln -s /home/mema/rev.txt symbolic-link Συµβολικός Σύνδεσµος (-s) Σκληρός σύνδεσµος 33

mema@bowser>ls -la total 6 drwxr-xr-x 2 mema dep 512 Feb 19 11:26./ drwxr-xr-x 4 mema dep 512 Feb 17 11:38../ -rw-r--r-- 1 mema dep 0 Feb 19 11:22 empty.txt -rw-r--r-- 2 mema dep 16 Feb 17 11:30 file1.txt -rw-r--r-- 1 mema dep 18 Feb 17 11:30 file2.txt -rw-r--r-- 2 mema dep 16 Feb 17 11:30 hard-link lrwxrwxrwx 1 mema dep 24 Feb 19 11:26 symbolic-link -> /home/mema/rev.txt mema@bowser>ls -F empty.txt file1.txt file2.txt hard-link symbolic-link@ mema@bowser>rm hard-link symbolic-link εσβήνειούτετο file1.txt ούτε το /home/mema/rev.txt 34

Εντολή ln (συνέχεια) mema@bowser>ls -l total 2 -rw-r--r-- 1 mema dep 16 Feb 17 11:30 file2.txt mema@bowser>ln file2.txt hard-link mema@bowser>ls -l total 4 -rw-r--r-- 2 mema dep 16 Feb 17 11:30 file2.txt -rw-r--r-- 2 mema dep 16 Feb 17 11:30 hard-link mema@bowser>ls -i 1266325 file2.txt 1266325 hard-link Ίδιο inode mema@bowser>rm file2.txt mema@bowser>ls -l total 2 -rw-r--r-- 1 mema dep 16 Feb 17 11:30 hard-link 35

Σκληροί και Συμβολικοί Σύνδεσμοι Σκληροί είκτης σε κοινό αρχείο(newnam, sameinode) εν εφαρµόζεται σε καταλόγους Μετονοµασία αρχικού αρχείου δε δηµιουργεί πρόβληµα Αλλαγές σε σύνδεσµο ή αρχικό αρχείο επηρεάζουν καιτα 2 Αρχείο σβήνεται όταν ΟΛΟΙ οι δείκτες σε αυτό σβηστούν Συµβολικοί Αντιγράφει µονοπάτι αρχείου ΜΟΝΟ Εφαρµόζεται σε καταλόγους Μετονοµασία αρχικού αρχείου σπάει το σύνδεσµο Αλλαγές σε σύνδεσµο ή αρχικό αρχείο επηρεάζουν και τα 2 ιαγραφή ΕΝ επηρεάζει αρχικό αρχείο 36

ΣκληροίκαιΣυμβολικοί Σύνδεσμοι Πότε µπορούµε να δηµιουργήσουµε ένα αρχείο/σκληρό σύνδεσµο σε ένα αρχείο που ανήκει σε άλλον ιδιοκτήτη; Το αρχείο/σκληρός σύνδεσµος που φτιάξαµε, ποιον έχει ιδιοκτήτη; Ποτε µπορεί ο ιδιοκτήτης να σβήσει το σκληρό σύνδεσµο που δηµιουργήσαµε; Αν ο ιδιοκτήτης σβήσει το αρχικό αρχείο τότε σβήνει και ο σκληρός σύνδεσµος; 37

1. Παράδειγμα 4. Ιδιοκτήτης, αλλάόχι w στο κατάλογο 7. Ο adeli (επόµενη σελ.) φτιάχνει συνδέσµους σε αρχεία του spro (παραπάνω). Πρέπει να σβήσουν όλοι οι δείκτες σε 1 αρχείογιαναδιαγραφείαυτό. Όλακαλάαν ο adeli έχει x στον ~spro/popo και w στον δικό του. Ο spro διαγράφει µε wx στο ~adeli/popo. 38

2. 3. Παράδειγµα Katv ΌλαΟΚ 5. 6. Αν ένας χρήστης ΕΝ έχει δικαίωµα εγγραφής σε έναν κατάλογο, δεν µπορεί να σβήσει ένα αρχείο µέσα στον κατάλογο ακόµα και αν είναι ο ιδιοκτήτης. 39

Έντολήcut (-f, -d) -f (επιλογή στηλών που θέλουµε) -d (διαχωριστικό στηλών αν δεν οριστεί είναιτο tab \t ) Ανδυνατότητεςτης cut δενείναιεπαρκείς, τότεγλώσσες awk, perl, python, ruby 40

Εντολέςcmp, diff, head (-n), tail (-n) Αν διέφεραν, θα τύπωνε 1ο σηµείο διαφοράς Χωρίςόρισµα, πρώτες 10 γραµµές Πρώτες 2 γραµµές (-n) 41

ΛοιπέςΕντολές: echo (-n), date, passwd, hostname, whoami, lpq (-P), lprm(-p) Με αλλαγή γραµµής Χωρίς αλλαγή γραµµής Όνοµα µηχανήµατος Κατάσταση ουράς εκτυπωτή ιαγραφή εργασίας εκτύπωσης 42

Κέλυφος(Shell) Program just like date or who that does some extra special stuff Sits between user and kernel Benefits: Ανακατεύθυνση εισόδου-εξόδου Συντομογραφικά ονόματα αρχείων με μεταχαρακτήρες (pattern matching of filenames) Δυνατότητα προσωπικής προσαρμογής του περιβάλλοντος 43

Κέλυφος(csh,tcsh, bash, kornsh, etc.) Το κέλυφος αρχικής σύνδεσης στο Linux είναι το bash Η εντολή logout αποσυνδέει το χρήστη Με csh (tcsh) δημιουργείται νεό κέλυφος C Η εντολή exit ή control-d τερματίζει ένα κέλυφος C To ~ συμβολίζει τον κατάλογο αφετηρίας Κατά την ενεργοποίηση ενός κελύφους C εκτελείται το ~/.cshrc Κατά την αρχική σύνδεση εκτελείται το ~/.login Κατά την διακοπή της σύνδεσης εκτελείται το ~/.logout 44

Κέλυφος(συνέχεια) Προκαθορισμένη είσοδος stdin (πληκτρολόγιο) Προκαθορισμένη έξοδος stdout (οθόνη) Προκαθορισμένη έξοδος διαγνωστικών σφαλμάτων stderr (οθόνη) Περιγραφείς αρχείων για αυτά είναι 0,1,2 Για ορισμένες εντολές (cat, lpr, grep, wc, sort, head, tail κτλ) τα ορίσματα των αρχείων είναι προαιρετικά Αν παραλειφθούν χρησιμοποιείται το stdin Τέλος εισόδου για εντολή 45

Ανακατευθύνσεις(csh) Είσοδος από το.screenrc Ηµεροµηνία στο a_file Το > δενγράφεισευπάρχοναρχείοσε κάποια UNIX συστήµατα Το >! οµως ναι Ανακατεύθυνση stdout και stderr Γράψε πάνω στο αρχείο ΠΡΟΣΟΧΗ: Για να προστατέψετε τα υπάρχοντα αρχεία σε συστήµατα όπου η συµπεριφορά είναι διαφορετική, γράψτε: set noclobber για να µην γράφει σε υπάρχοντα αρχεία. 46

Ανακατευθύνσειςμε προσάρτηση Γράψεέξοδοτου date στο ΤΕΛΟΣ του c_file Γράψε µε έµφαση στο c_file τα στατιστικά του.bashrc Προσάρτηση stdout και stderr Τύπωσε ταξινοµηµένες τις τελευταίες 5 γραµµές του.bashrc 47

The Beauty of Unix Με σωληνώσεις αποφεύγουμε τη χρήση προσωρινών αρχείων Με την έννοια προκαθορισμένης εισόδου / εξόδου, απλοποιούνται τα προγράμματα 48

Ανακατευθύνσεις 1) Γιαανακατεύθυνση stdout and stderrσε διαφορετικά αρχεία: (command > stdout_file) >& stderr_file 2) Για ανακατεύθυνση µόνο stderr sh c command 2> stderr_file mema@bowser> more bll bll: No such file or directory mema@bowser> more bal hey mema@bowser> (cat bll bal > outfile) >& errfile mema@bowser> more outfile hey mema@bowser> more errfile cat: bll: No such file or directory mema@bowser> sh -c 'cat bll bal 2> errfile2' hey mema@bowser> more errfile2 cat: bll: No such file or directory 49

ΑκολουθίεςκαιΟμάδες Εντολών(;) Με παρένθεση Με παρένθεση παραµένουµε στον ίδιο κατάλογο που δώσαµε τις εντολές 50

Εντολήumask ΠΡΟΣΟΧΗ: Ο αριθμός της umask δείχνει ποια δικαιώματα ΔΕΝ θέλουμε να δίνουμε Συγκρίνετε με chmod 022: Όχι εγγραφή σε οµάδα, υπόλοιπους 077: Όλα κοµµένα σε οµάδα, υπόλοιπους 51

Μεταχαρακτήρες cd cd 52

ΜεταβλητέςΠεριβάλλοντοςκαι Μεταβλητέςκελύφους setenv displays/sets all environment (i.e., global) variables usable by any program. Αν θέλουμε όλα τα προγράμματα που τρέχουμε από μέσα από το κέλυφος να έχουν πρόσβαση σε κάποιες μεταβλητές τότε τις καθορίζουμε με setenv. set displays/sets properties specific to the shell Αν θέλουμε να ορἰσουμε ιδιότητες που θέλουμε να έχει το κέλυφος καθώς εκτελεί τις διαταγές που του δἰνουμε e.g., prompt, path, etc. 53

ΜεταβλητέςΠεριβάλλοντος στοcsh(setenv, unsetenv) Τελευταίες 5 ορισµένες µεταβλητές Ακύρωση εντολής 54

Μεταβλητέςκελύφουςcsh(set, unset) Μεταβλητές που ξεκινάνε από [i-t] εχρειάζεταιτώρατο! Αγνόησε το ^D ως logout 55

Ιστορίαεντολών 56

Ψευδώνυμα Εντολών(alias, unalias) Για όταν ξεχνιέµαι (windows) Πάντα ερώτηση σε διαγραφή Ακύρωση ψευδώνυµου 57

ΔιαχείρησηΔιεργασιών ps jobs kill bg fg top Εµφάνιση κατάστασης τρέχουσων διεργασιών Εµφάνιση ενεργών διεργασιών που έχουν διακοπεί Σκότωσε µια διεργασία Βάλε διεργασία να τρέχει στο παρασκήνιο (background) Βάλε διεργασία να τρέχει στο προσκήνιο (foreground) Στατιστικάδιαχείρισηςεπεξεργαστή, µνήµης κτλ για προγράµµατα 58

Εντολέςps(-u), jobs, kill (-9) 59

Εντολές bg, fg ξεκινά σταµατηµένη διεργασία στο παρασκήνιο ξεκινά σταµατηµένη διεργασία στο προσκήνιο ή φέρνει µια ενεργή από το παρασκήνιο στο προσκήνιο 60

Εντολήtop 61

Συμπίεση, αποσυμπίεσηαρχείων Πολλάπρογράµµατα (tar, zip, gzip, gunzip, zcat, uuencode, uudecode ) gzip compr.tar gunzip compr.tar.gz Συµπίεσητωναρχείων Makefile *.c *.h και του καταλόγου experiments στο αρχείο compr.tar: tar cvf compr.tar Makefile *.c *.h experiments Αποσυµπίεσηµε: tar xvf compr.tar Σε.gzχρησιµοποιήστε gunzip Σε.tgzχρησιµοποιήστε gunzipκαιµετά tar xvf Σε.uueχρησιµοποιήστε uudecode 62

ΚιάλλεςΕντολές tr colrm find last script sleep clear Μετατροπή χαρακτήρων σε αρχεία ιαγραφή στηλών από αρχεία Ανεύρεση αρχείων ή καταλόγων Εµφάνιση πρόσφατων συνδέσεων χρηστών Καταγραφή αλληλεπίδρασης µε κέλυφος σε αρχεία Αναµονή για χρονικό διάστηµα Καθάρισµα οθόνης 63

Εντολέςtr(-d), colrm Τύπωσε στην οθόνη το /etc/resolv.confαντικαθιστώνταςτους χαρακτήρες του 56789abc µε τους αντίστοιχους από το 012345xyz Όλα εκτός από τους χαρακτήρες Όλους τους χαρακτήρες σε στήλες 8-14 Όλoυς τους χαρακτήρες σε στήλες >= 15 tr: translate, squeeze, and/or delete characters from standard input, writing to standard output colrm: remove columns from standard input, writing to standard output 64

Εντολή find (-name, -exec) Τύπωσε περιεχόµενα από τα αρχεία (-exec την cat εντολή) Τύπωσε πλήρες όνοµα αρχείων (-print) και τα περιεχόµενά τους 65

Εντολές last (-n), script, sleep, clear Κατέγραψε τα πάντα από εδώκαιπέραστο my_session Επίσης µε ^D, τέλος καταγραφής 66

ΆλλαΧρήσιμα Ηλεκτρονικό ταχυδροµείο Προγράµµατα mail, mutt, pine, xmail Μεταγλωτιστές της C/C++: gcc/g++ mema@bowser> ls InputFile LinkedList.c main.c MyHeader.h OrderedLinkedList.h InputFile.out LinkedList.h Makefile OrderedLinkedList.c mema@bowser> mema@bowser> gcc -c main.c mema@bowser> gcc -c LinkedList.c mema@bowser> gcc c OrderedLinkedList.c mema@bowser> gcc -o myexe main.o LinkedList.o OrderedLinkedList.o mema@bowser>./myexe expected syntax: myexe inputfile 67

C/C++ Compilation To compile programs in C/C++ use gcc/g++ for separate compilation: -c flag every reference needs to be to a declared variable/function, but it may be defined in a different compilation unit compilation unit:.c/.cpp file with all others it includes for functions: declaration has signature, no body for variables: declaration uses extern C header files (.h) should contain only function declarations, get included wherever these functions are referenced 68

Makefiles Οργάνωση µεταγλώττισης αρχείων Στηµορφή: Στόχος: Απαιτούµενα \t Εντολή Προσοχή στο tab. ΠΡΕΠΕΙ ΝΑ ΤΟ ΒΑΖΕΤΕ. Τα Απαιτούµενα πρέπει να υλοποιηθούν πριν το Στόχο. Αν τα Απαιτούµενα δεν έχουν αλλάξει, δεν εκτελείται η εντολή Συχνά ο Στόχος του εκτελέσιµου προγράµµατος έχει το όνοµα all Συχνά ο Στόχος clean διαγράφει τα παραγόµενα εκτελέσιµα και *.o 69

# # In order to execute this "Makefile" just type "make" # A. Delis (ad@di.uoa.gr) # OBJS = main.o LinkedList.o OrderedLinkedList.o SOURCE = main.c LinkedList.c OrderedLinkedList.c HEADER = MyHeader.h LinkedList.h OrderedLinkedList.h OUT = myexe CC = gcc FLAGS = -g -c # -g option enables debugging mode # -c flag generates object code for separate files all: $(OBJS) $(CC) -g $(OBJS) -o $(OUT) # create/compile the individual files >>separately<< main.o: main.c $(CC) $(FLAGS) main.c LinkedList.o: LinkedList.c $(CC) $(FLAGS) LinkedList.c OrderedLinkedList.o: OrderedLinkedList.c $(CC) $(FLAGS) OrderedLinkedList.c # clean house clean: rm -f $(OBJS) $(OUT) # do a bit of accounting count: wc $(SOURCE) $(HEADER) 70

ΠαράδειγμαMakefile OBJS = main.o iodat.o dorun.o LIB = /usr/lib/crtn.o CC = /usr/bin/gcc program: ${OBJ} ${LIB} mylibops.a ${CC} -o $@ ${OBJS} ${LIB} mylibops.a main.o: main.c ${CC} -c $? iodat.o: iodat.c ${CC} -c $? dorun.o: dorun.c ${CC} -c $? $? : current list of prerequisites $@: current target mylibops.a: interact.o sched.o gen.o ar r $@ $? interact.o: interact.c ${CC} -c $? gen.o: gen.c ${CC} -c $? sched.o: sched.c ${CC} -c $? 71