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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

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

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

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

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

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

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

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

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

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

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

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

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

Επιτεύγµατα των Λ.Σ.

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

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγµα χρήσης perror, errno (πρόγραµµα errors_demo.c)

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

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

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

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

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

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

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

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

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

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

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

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

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

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

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

Shell Scripts: loops / if / test

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

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

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

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

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

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

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

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

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4

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

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

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

Σύντομο Εγχειρίδιο Linux. 1 ον Μέρος.

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

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

Εργαστήριο Βάσεων Δεδομένων

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Transcript:

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

Γενικές Πληροφορίες Μεταπτυχιακοί Συνεργάτες Christos Agoras Giorgos Balatsouras Nikos Chondros Athanasios Doukoudakis Manos Kouvarakis Dimitris Rabiolos Ανακοινώσεις, εργασίες, χρήσιµοι σύνδεσµοι, και άλλες πληροφορίες στην ιστοσελίδα. Να γραφτείτε στη mailing list του µαθήµατος. 03/08/09

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

Βαθµολογία Τρεις εργασίες (50%) Τελική εξέταση (50%) 03/08/09

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

Date Topic Handouts, Assignmen ts Lecture Notes Τρίτη 16/2 Class overview. Πέµπτη 18/2 Topic 1: Intro to Unix, basic commands, file processing, C shell, metacharacters, environment variables, process management, makefiles. Topic 1 (pdf) Τρίτη 23/2 Topic 1 (continued). Πέµπτη 25/2 Topic 1 (cont d). Τρίτη 2/3 Topic 2: Bash shell programming: parameters, arithmetics, expr, conditional statements, if stmt, case stmt, for loops, while loops, sample script programs. Topic 2 (pdf) Πέµπτη 4/3 Topic 2 (cont d). Τρίτη 9/3 Topic 2 (cont d). Πέµπτη 11/3 Topic 3: Error handling, perror, errno, low-level I/O, system calls link, unlink, mkdir, rmdir, rename, symlink, readlink, signals, signal handling actions, syscalls raise, pause, alarm. -- Topic 3 (pdf) Τρίτη 16/3 Topic 3 (cont d). HW1 assigned Πέµπτη 18/3 Topic 3 (cont d). Τρίτη 23/3 Φροντιστήριο θέµα: HW 1. Πέµπτη 25/3 Holiday no class. -- -- Τρίτη 30/3- Πεµπτη 8/4 Easter break no class. Τρίτη 13/4 Topic 4: Process: concept, process state machine execution, syscalls getpid, getppid, exit, fork, wait, waitpid, exec, orphan processes, zombie processes, pipes, file descriptors after exec Topic 4 (pdf)

Πέµπτη 15/4 Topic 4 (cont d) HW 1 due, HW2 assigned Τρίτη 20/4 Φροντιστήριο θέµα: HW 2 Πέµπτη 22/4 Topic 4 (cont d) Topic 5 (pdf) Τρίτη 27/4 Topic 5: Interprocess Communication across the Net: clientserver model, handling client requests, socket syscalls, bind, connect, listen, accept, bzero, bcopy, TCP, UDP Πέµπτη 29/4 Topic 5 (cont d) Τρίτη 4/5 Topic 5 (cont d) Πέµπτη 6/5 Topic 6: Threads: concept, thread creation, termination, going from single-threaded to multi-threaded, synchronization, binary semaphores, conditional variables, producer-consumer problem HW 2 due HW3 assigned Topic 6 (pdf) Τρίτη 11/5 Topic 6 (cont d) Πέµπτη 13/5 Φροντιστήριο θέµα: HW 3 Τρίτη 18/5 Topic 6 (cont d) Πέµπτη 20/5 Topic 7: Interprocess Communication: System V, message queues, shared memory, semaphores, deadlock Τρίτη 25/5 Topic 7 (cont d) Πέµπτη 27/5 Topic 7 (cont d) HW 3 due

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

Unix 1969 Bell Laboratories (AT&T) σε µορφή assembly 1973 υλοποίηση σε γλώσσα C Πολλές αλλαγές βελτιώσεις από τότε Major Revision από Univ. of California, Berkeley Χρήση σε προσωπικούς υπολογιστές ως Linux (αλλά και σε servers). 9

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

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

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

Λογαριασµός Χρήστη Όνοµακαισυνθηµατικό χρήστη Κέλυφος αρχικής σύνδεσης Οµάδες χρήστη Κατάλογος αφετηρίας 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 13

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

Εντολή man ( 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 super sedes the version described here. Please refer to your shell s docu mentation for details about the options it supports. AUTHOR Written by Jim Meyering. REPORTING BUGS Report bugs to <bug-coreutils@gnu.org>. COPYRIGHT Copyright 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO ( getcwd(3 The full documentation for pwd is maintained as a Texinfo manual. If the info and pwd programs are properly installed at your site, the com mand info coreutils pwd invocation should give you access to the complete manual. ( PWD(1 GNU coreutils 6.10 April 2008 15

Εντολή man (-k) mema@bowser:~$ man -k manual ( k -) Όλα όσα περιέχουν τη λέξη manual apropos (1) - search the manual page names and descriptions ark (1) - manual page for Ark catman (8) - create or update the pre-formatted manual pages cddb-slave2-properties (1) - manual page for Gnome cddb-slave2-properties 2.0.0 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-control 2.1.0 grub-reboot (8) - manual page for grub-reboot 0.01 gstreamer-properties (1) - manual page for Gnome gstreamer-properties 2.2.1.1 kwifimanager (1) - manual page for kwifimanager 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 pdfclose (1) - manual page for pdfopen 0.4: Acrobat Reader remote con... pdfopen (1) - manual page for pdfopen 0.4: Acrobat Reader remote con... pulseaudio (1) - manual page for pulseaudio 0.9.5 readahead-list (8) - manual page for readahead-list: 0.20050517.0220 readahead-watch (8) - manual page for readahead-watch: 0.20050517.0220 vumeter (1) - manual page for Gnome Volume Meter 2.1.0 w3mman (1) ( w3m(1 - an interface to the on-line reference manuals by whatis (1) - display manual page descriptions whereis (1) - locate the binary, source, and manual page files for a... xman (1) - Manual page display program for the X Window System 16

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

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

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

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

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

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

Κειµενογράφος vi vi filename Οδηγίες χρήσης στο βιβλίο (Kernighan & Pike) και στο Web 23

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

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

( R -) Εντολή chmod Αφαίρεσε ανάγνωση από υπόλοιπους Πρόσθεσε εγγραφή, εκτέλεση σε οµάδα Αναδροµικά στον κατάλογο (-R) 26

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

Εντολή more 28

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

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

Εντολές touch, ln (-s) Αν υπάρχει ήδη, άλλαξε χρόνο τροποποίησης. Αλλιώς δηµιούργησε Σκληρός σύνδεσµος Συµβολικός Σύνδεσµος (-s) ε σβήνει ούτε το.bashrc ούτε το /etc/group 31

Εντολή ln (συνέχεια) Ίδιο inode 32

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

Θέµα Εξέτασης

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

Θέµα Εξέτασης 2. 3. Katv Όλα ΟΚ 5. 6.

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

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

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

Κέλυφος C (csh ή tcsh) Συχνά το κέλυφος αρχικής σύνδεσης (bash στο Linux) Η εντολή logout αποσυνδέει το χρήστη Με csh (tcsh) δηµιουργείται νεό κέλυφος C Η εντολή exit τερµατίζει ένα κέλυφος C To ~ συµβολίζει τον κατάλογο αφετηρίας Κατά την ενεργοποίηση εκτελείται το ~/.cshrc Κατά την αρχική σύνδεση εκτελείται το ~/.login Κατά την διακοπή της σύνδεσης εκτελείται το ~/.logout 40

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

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

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

Ανακατευθύνσεις 1) Για ανακατεύθυνση stdout and stderr σε διαφορετικά αρχεία: (command > stdout_file) >& stderr_file 1) Για ανακατεύθυνση µόνο stderr sh c command 2> stderr_file mema@bowser> 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 bowser.eecs.harvard.edu> more errfile2 cat: bll: No such file or directory bowser.eecs.harvard.edu> 44

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

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

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

Μεταβλητές Περιβάλλοντος και Μεταβλητές κελύφους 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. 48

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

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

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

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

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

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

Εντολές bg, fg 55

Εντολή top 56

Συµπίεση, αποσυµπίεση αρχείων Πολλά προγράµµατα (tar, zip, gzip, gunzip, zcat, uuencode ) 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 57

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

Εντολές 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 59

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

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

Άλλα Χρήσιµα Ηλεκτρονικό ταχυδροµείο Προγράµµατα mail ή pine Μεταγλωτιστές της C gcc ή cc 62

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

Παράδειγµα Makefile Αν αλλάξει το kbd.c, υπολογίζεται το kbd.o, και στη συνέχεια το edit 64

Παράδειγµα 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 tab main.o: main.c ${CC} -c $? iodat.o: iodat.c ${CC} -c $? dorun.o: dorun.c ${CC} -c $? 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 $? $? : current list of prerequisites $@: current target 65