Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Κ24: Προγραµµατισµός Συστήµατος
∆ιδάσκουσα∆ιδάσκουσα:: ΜέµαΜέµα ΡουσσοπούλουΡουσσοπούλου
∆ιδασκαλία∆ιδασκαλία::ΤρίτηΤρίτη 11:0011:00--13:00 (13:00 (ΑίθουσαΑίθουσα ΣΤΣΤ))ΠέµπτηΠέµπτη 12:0012:00--14:00 (14:00 (ΑίθουσαΑίθουσα ΣΤΣΤ))
ΓραφείοΓραφείο::ΑΑ3838
ΏρεςΏρες ΓραφείουΓραφείου: : ΜετάΜετά τοτο µάθηµαµάθηµαEmailEmail:: [email protected]@di.uoa.gr
Web Page:Web Page:http://cgi.di.uoa.gr/~mema/courses/k24/k24.htmlhttp://cgi.di.uoa.gr/~mema/courses/k24/k24.html
03/08/09
Γενικές Πληροφορίες
Μεταπτυχιακοί ΣυνεργάτεςChristos AgorasGiorgos BalatsourasNikos ChondrosAthanasios DoukoudakisManos KouvarakisDimitris 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%)
5
Περιεχόµενα Μαθήµατος
Λειτουργικό σύστηµα UNIXΠρογραµµατισµός σε κελύφηΠρογραµµατισµός λειτουργιώνσυστήµατος σε C
Χειρισµό λαθώνΑποστολή/παραλαβή σηµάτωνΕίσοδο/έξοδο χαµηλού επιπέδου∆ηµιουργία/τερµατισµό διεργασιώνΕπικοινωνία µεταξύ διεργασιών µέσωσωλήνων, υποδοχών, ουρών µηνυµάτων, κοινής µνήµης, και σηµατοφόρων∆ηµιουργία, τερµατισµό καισυγχρονισµό νηµάτων
Topic 4 (pdf)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
Τρίτη13/4
Easter break – no class.
Τρίτη30/3-Πεµπτη8/4
----Holiday – no class.Πέµπτη25/3
Φροντιστήριο – θέµα: HW 1.Τρίτη23/3
Topic 3 (cont’d).Πέµπτη18/3
HW1 assignedTopic 3 (cont’d).Τρίτη
16/3
Topic 3 (pdf)--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.
Πέµπτη11/3
Topic 2 (cont’d).Τρίτη 9/3
Topic 2 (cont’d).Πέµπτη4/3
Topic 2 (pdf)Topic 2: Bash shell programming: parameters, arithmetics, expr, conditional statements, if stmt, case stmt, for loops, while loops, sample script programs.
Τρίτη 2/3
Topic 1 (cont’d).Πέµπτη25/2
Topic 1 (continued). Τρίτη23/2
Topic 1 (pdf)Topic 1: Intro to Unix, basic commands, file processing, C shell, metacharacters, environment variables, process management, makefiles.
Πέµπτη18/2
Class overview.Τρίτη16/2
Lecture NotesHandouts, Assignments
TopicDate
HW 3 dueTopic 7 (cont’d)Πέµπτη27/5
Topic 7 (cont’d)Τρίτη25/5
Topic 7: Interprocess Communication: System V, message queues, shared memory, semaphores, deadlock
Πέµπτη20/5
Topic 6 (cont’d)Τρίτη18/5
Φροντιστήριο – θέµα: HW 3Πέµπτη13/5
Topic 6 (cont’d)Τρίτη11/5
Topic 6 (pdf)HW 2 dueHW3 assigned
Topic 6: Threads: concept, thread creation, termination, going from single-threaded to multi-threaded, synchronization, binary semaphores, conditional variables, producer-consumer problem
Πέµπτη6/5
Topic 5 (cont’d)Τρίτη 4/5
Topic 5 (cont’d)Πέµπτη29/4
Topic 5: Interprocess Communication across the Net: client-server model, handling client requests, socket syscalls, bind, connect, listen, accept, bzero, bcopy, TCP, UDP
Τρίτη27/4
Topic 5 (pdf)Topic 4 (cont’d)Πέµπτη22/4
Φροντιστήριο – θέµα: HW 2Τρίτη20/4
HW 1 due,HW2 assigned
Topic 4 (cont’d)Πέµπτη15/4
8
Λειτουργικό σύστηµα
Ενδιάµεσο πρόγραµµα µεταξύχρήστη-υλικού συστήµατοςΣτόχος∆ιευκόλυνση χρήσης υπολογιστήΑποδοτική χρήση υπολογιστή
∆ιαχείρηση ΠόρωνΕπεξεργαστέςΚύρια και δευτερεύουσα µνήµηΣυσκευές εισόδου/εξόδου
Σύστηµα διαχείρισης αρχείωνµακροπρόθεσµη αποθήκευσηπληροφοριών
9
Unix
1969 Bell Laboratories (AT&T) σε µορφή assembly1973 υλοποίηση σε γλώσσα CΠολλές αλλαγές βελτιώσειςαπό τότε
Major Revision από Univ. of California, Berkeley
Χρήση σε προσωπικούςυπολογιστές ως Linux (αλλάκαι σε servers).
10
Χαρακτηριστικά Unix
Πολλαπλοί χρήστες
Πολλαπλές διεργασίες, διαµέρισηχρόνου
Παροχή ασφάλειας
Υποστήριξη δικτύων
∆οµή:Πυρήνας (kernel)Βοηθητικά προγράµµαταΜεταγλωττιστές, διορθωτές, γλώσσεςδιαταγών
ΚέλυφοςC, Bourne, Bash, Korn…
11
Χαρακτηριστικά Unix (2)
Παροχή C συναρτήσεις για κλήσειςσυστήµατος
∆ιαλογική επικοινωνία χρήστη µέσωτου κελύφους
Επιτρέπει προγραµµατισµό τουκελύφους
∆ιάκριση πεζών-κεφαλαίων
12
Ιεραρχική Οργάνωση
/
bin etc home dev var usr tmp
jim john mary tmp spool local bin
Κατάλογος-Ρίζα (/)
Τρέχων κατάλογος (.)
Γονικός κατάλογος (..)
Μονοπάτια απόλυτα και σχετικά
Αρχεία
Σύνδεσµοι
Συσκευές
13
Λογαριασµός Χρήστη
Όνοµα και συνθηµατικό χρήστη
Κέλυφος αρχικής σύνδεσης
Οµάδες χρήστη
Κατάλογος αφετηρίας
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 theindividual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable law.
To access official Ubuntu documentation, please visit:http://help.ubuntu.com/Last login: Mon Jan 7 01:25:54 2008mema@bowser:~$ pwd/home/mema
14
Βασικές Εντολές
Κειµενογράφος οθόνηςviΕκτύπωση αρχείουlprΕµφάνιση περιεχοµένων αρχείουcat∆ιαγραφή αρχείουrmΜετακίνηση αρχείουmvΑντιγραφή αρχείου/καταλόγουcp∆ιαγραφή καταλόγουrmdir∆ηµιουργία καταλόγουmkdirΑλλαγή τρέχοντος καταλόγουcdΜονοπάτι τρέχοντος καταλόγουpwdΕµφάνιση περιεχοµένων καταλόγουlsΕµφάνιση οδηγιών χρήσης εντολώνman
15
Εντολή man
PWD(1) User Commands PWD(1)
NAMEpwd - print name of current/working directory
SYNOPSISpwd [OPTION]
DESCRIPTIONPrint the full filename of the current working directory.
--help display this help and exit
--versionoutput 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.
AUTHORWritten by Jim Meyering.
REPORTING BUGSReport bugs to <[email protected]>.
COPYRIGHTCopyright © 2008 Free Software Foundation, Inc. License GPLv3+: GNUGPL 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 ALSOgetcwd(3)
The full documentation for pwd is maintained as a Texinfo manual. Ifthe 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.
GNU coreutils 6.10 April 2008 PWD(1)
16
Εντολή man (-k)
Όλα όσα περιέχουν τη λέξη manual (-k) mema@bowser:~$ man -k manualapropos (1) - search the manual page names and descriptionsark (1) - manual page for Arkcatman (8) - create or update the pre-formatted manual pagescddb-slave2-properties (1) - manual page for Gnome cddb-slave2-properties 2.0.0ecj (1) - manual page for eclipse JDT Compilerecj-gcj (1) - manual page for eclipse JDT Compileresdcompat (1) - manual page for pulseaudio esd wrapper 0.9.5gnome-volume-control (1) - manual page for Gnome gnome-volume-control 2.1.0grub-reboot (8) - manual page for grub-reboot 0.01gstreamer-properties (1) - manual page for Gnome gstreamer-properties 2.2.1.1kwifimanager (1) - manual page for kwifimanagerman (1) - an interface to the on-line reference manualsmanconv (1) - convert manual page from one encoding to anothermandb (8) - create or update the manual page index cachesmanpath (1) - determine search path for manual pagesmissing (7) - missing manual pagespdfclose (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.5readahead-list (8) - manual page for readahead-list: 0.20050517.0220readahead-watch (8) - manual page for readahead-watch: 0.20050517.0220vumeter (1) - manual page for Gnome Volume Meter 2.1.0w3mman (1) - an interface to the on-line reference manuals by w3m(1)whatis (1) - display manual page descriptionswhereis (1) - locate the binary, source, and manual page files for a...xman (1) - Manual page display program for the X Window System
17
Εντολή ls (-a, -l, -r)
Ότι το προηγούµενο, λεπτοµερώς (-l)
Αντίστροφη εκτύπωση (-r)
Τύπωσε και περιεχόµενα από ‘.’ (-a)
Αρχείο που εκτελείται όταν ξεκινάει το κέλυφος:bash: .bashrccsh: .cshrctcsh: .tcshrc
18
∆ικαιώµατα χρηστών
Κάθε αρχείο/κατάλογος ανήκειστον δηµιουργό τουΚάθε χρήστης ανήκει σε µια ήπερισσότερες οµάδες. Πχ:
users, postgrads, dep, undergrads,.10 bits- rwx r-x r-x
ιδιοκτήτη οµάδα υπόλοιποι
1o bit συνήθως d (κατάλογος) ή‘-’ (κανονικό αρχείο)3 οµάδες τριών bit (ανάγνωση, εγγραφή, εκτέλεση)
19
∆ικαιώµατα χρηστών
x
w
r
ΚατάλογοςΑρχείο
Πρόσβαση µεεντολή cd. Αν δενέχω ‘r’ δεν βλέπωόµως ονόµατα των
αρχείων
Εκτέλεσηαρχείου
∆ιαγραφή, δηµιουργία αρχείων
Αλλαγήαρχείου. ΟΧΙδιαγραφή
Περιεχόµενακαταλόγου
Ανάγνωση, αντιγραφή
20
Εντολή ls (-d, -R, -t)
Μόνο για τον κατάλογο (-d)
Ταξινόµηση µε βάση τελευταία µεταβολή (-t)
Αναδροµική εκτύπωση υποκαταλόγων (-R)
21
Εντολές pwd, cd, mkdir, rmdir
rmdir -r (όχι για καταλόγους)
Μονοπάτι τρέχοντος καταλόγου
Έξτρα σύµβολα στο τέλος ονόµατος (-F)
22
Εντολές cp (-i, -r), mv (-i), rm (-i, -r, -f)
rm -f (διαγραφή χωρίς ερώτηση – λιγότερο ισχυρό από το -i)
Αναδροµική αντιγραφή (-r)
Αν υπάρχει, επιβεβαίωση (-i)
Αν υπάρχει, επιβεβαίωση (-i)
Αναδροµική διαγραφή (-r)
23
Κειµενογράφος vi
vi filename
Οδηγίες χρήσης στο βιβλίο(Kernighan & Pike) και στο Web
24
Εντολές cat (-n), lpr (-P), emacs
Εµφάνισε και αριθµούς γραµµών (-n)
25
Επεξεργασία Αρχείων
Αλλαγή δικαιωµάτων προστασίας αρχείωνκαι καταλόγωνchmod
Σύγκριση 2 αρχείωνcmp
Εµφάνιση διαφορών 2 αρχείων κειµένουdiff
∆ηµιουργία συνδέσµωνln
Εµφάνιση τελευταίων κ γραµµών.tailΕµφάνιση πρώτων κ γραµµώνhead
Παρουσίαση συγκεκριµένων τµηµάτωνγραµµών αρχείουcut
Χρονική ενηµέρωση αρχείου/ καταλόγουtouchΤαξινόµηση αρχείουsortΛεξικο-στατιστικά αρχείουwc
Εµφάνιση συγκεκριµένου περιεχοµένου σεαρχείοgrepΣταδιακή εµφάνιση περιεχοµένουmore
26
Εντολή chmod (-R)
Αφαίρεσε ανάγνωση από υπόλοιπουςΠρόσθεσε εγγραφή, εκτέλεσησε οµάδα
Αναδροµικά στον κατάλογο (-R)
27
Θέµα εξέτασης
Σαν owner, µπορώ. Αλλιώς όχι.
∆εν έχει δικαίωµα ανάγνωσης
28
Εντολή more
29
Εντολές grep (-n, -i, -v), wc (-l, -w, -c)
Τύπωσε # γραµµής
Αγνόησεκεφαλαία-µικρά
Όλες τις γραµµές ΕΚΤΟΣαπό όσες ταιριάζουν
# Γραµµές, λέξεις, χαρακτήρες
Μόνο # λέξεωνΜόνο # γραµµών
Μόνο # χαρακτήρων
Γραµµές που περιέχουν 6000
30
Εντολή sort
Ταξινόµηση (ανάγραµµή, σαν κείµενο)
Με βάση 2η στήλη, σαν κείµενο
Με βάση 2η στήλη,
Αριθµητική (-n),
Αντίστροφη (-r)
>sort -k 2 example.txt
>sort -r -n -k 2 example.txt
31
Εντολές touch, ln (-s)Αν υπάρχει ήδη, άλλαξε χρόνοτροποποίησης. Αλλιώς δηµιούργησε
Σκληρός σύνδεσµος
Συµβολικός Σύνδεσµος (-s)
∆ε σβήνει ούτε το .bashrcούτε το /etc/group
32
Εντολή ln (συνέχεια)
Ίδιο inode
33
Σκληροί και Συµβολικοί Σύνδεσµοι
∆ιαγραφή ∆ΕΝεπηρεάζει αρχικόαρχείο
Αρχείο σβήνεταιόταν ΟΛΟΙ οι δείκτεςσε αυτό σβηστούν
Αλλαγές σε σύνδεσµοή αρχικό αρχείοεπηρεάζουν και τα 2
Αλλαγές σεσύνδεσµο ή αρχικόαρχείο επηρεάζουνκαι τα 2
Μετονοµασία αρχικούαρχείου “σπάει” τοσύνδεσµο
Μετονοµασίααρχικού αρχείου δεδηµιουργεί πρόβληµα
Εφαρµόζεται σεκαταλόγους
∆εν εφαρµόζεται σεκαταλόγους
Αντιγράφει µονοπάτιαρχείου ΜΟΝΟ
∆είκτης σε κοινόαρχείο
ΣυµβολικοίΣκληροί
Θέµα Εξέτασης
35
Θέµα Εξέτασης
Ο adeli (επόµενη σελ.) φτιάχνει συνδέσµους σε αρχείατου spro (παραπάνω). Πρέπει να σβήσουν όλοι οι δείκτεςσε 1 αρχείο για να διαγραφεί αυτό. Όλα καλά αν ο adeliέχει ‘x’ στον ~spro/popo και ‘w’ στον δικό του. Ο sproδιαγράφει µε ‘wx’ στο ~adeli/popo.
1.
Ιδιοκτήτης, αλλά όχι ‘w’στο κατάλογο
4.
7.
Θέµα Εξέτασης
Katv
2. Όλα ΟΚ
3.
5.
6.
37
Έντολή cut (-f, -d)
-f (επιλογή στηλών που θέλουµε)-d (διαχωριστικό στηλών – αν δεν οριστείείναι το tab ‘\t’)
Αν δυνατότητες της cut δεν είναι επαρκείς, τότε γλώσσες awk, perl, python, ruby…
38
Εντολές cmp, diff, head (-n), tail (-n)
Αν διέφεραν, θα τύπωνε1ο σηµείο διαφοράς
Χωρίς όρισµα, πρώτες 10 γραµµές
Πρώτες 2 γραµµές (-n)
39
Λοιπές Εντολές: echo (-n), date, passwd, hostname, whoami, lpq (-P), lprm (-P)
Με αλλαγή γραµµής
Όνοµα µηχανήµατος
Κατάσταση ουράς εκτυπωτή
Χωρίς αλλαγήγραµµής
∆ιαγραφή εργασίας εκτύπωσης
40
Κέλυφος C (csh ή tcsh)
Συχνά το κέλυφος αρχικής σύνδεσης (bash στο Linux)Η εντολή logout αποσυνδέει το χρήστηΜε csh (tcsh) δηµιουργείται νεό κέλυφος CΗ εντολή exit τερµατίζει ένα κέλυφος CTo ~ συµβολίζει τον κατάλογο αφετηρίαςΚατά την ενεργοποίηση εκτελείται το~/.cshrcΚατά την αρχική σύνδεση εκτελείται το~/.loginΚατά την διακοπή της σύνδεσης εκτελείταιτο ~/.logout
41
Κέλυφος C (συνέχεια)
Προκαθορισµένη είσοδος stdin(πληκτρολόγιο)Προκαθορισµένη έξοδος stdout (οθόνη) Προκαθορισµένη έξοδος διαγνωστικώνσφαλµάτων stderr (οθόνη)
Για ορισµένες εντολές (cat, lpr, grep, wc, sort, head, tail κτλ) τα ορίσµατα τωναρχείων είναι προαιρετικά
Αν παραλειφθούν χρησιµοποιείται το stdin
Τέλος εισόδου για εντολή
42
Ανακατευθύνσεις
Ηµεροµηνία στο a_file
Το > δεν γράφει σε υπάρχον αρχείο σεκάποια UNIX συστήµατα
Είσοδος από το .screenrc
Το >! οµως ναι
Ανακατεύθυνση stdout και stderr
Γράψε πάνω στο αρχείο
ΠΡΟΣΟΧΗ: Για να προστατέψετε τα υπάρχοντααρχεία σε συστήµατα όπου η συµπεριφορά είναιδιαφορετική, γράψτε: set noclobberγια να µην γράφει σε υπάρχοντα αρχεία.
43
Ανακατευθύνσεις µεπροσάρτηση
Γράψε έξοδο του date στο ΤΕΛΟΣ του c_file
Γράψε µε έµφαση στο c_fileτα στατιστικά του .bashrc
Προσάρτηση stdout και stderr
Τύπωσε ταξινοµηµένες τις τελευταίες 5 γραµµέςτου .bashrc
44
Ανακατευθύνσεις
1) Για ανακατεύθυνση stdout and stderr σεδιαφορετικά αρχεία:
(command > stdout_file) >& stderr_file
1) Για ανακατεύθυνση µόνο stderr
sh –c ’command 2> stderr_file’mema@bowser> mema@bowser> more bllbll: No such file or directorymema@bowser> more balheymema@bowser> (cat bll bal > outFile) >& errFilemema@bowser> more outFileheymema@bowser> more errFilecat: bll: No such file or directorymema@bowser> sh -c 'cat bll bal 2> errFile2'heybowser.eecs.harvard.edu> more errFile2cat: bll: No such file or directorybowser.eecs.harvard.edu>
45
Ακολουθίες και ΟµάδεςΕντολών (;)
Με παρένθεση παραµένουµεστον ίδιο κατάλογο που δώσαµετις εντολές
Με παρένθεση
46
Εντολή umask
ΠΡΟΣΟΧΗ: Ο αριθµός της umaskδείχνει ποια δικαιώµατα ∆ΕΝθέλουµε να δίνουµεΣυγκρίνετε µε chmod
022: Όχι εγγραφή σε οµάδα, υπόλοιπους
077: Όλα κοµµένα σε οµάδα, υπόλοιπους
47
Μεταχαρακτήρες
cd
cd
48
ΜεταβλητέςΠεριβάλλοντος καιΜεταβλητές κελύφους
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.
49
Μεταβλητές Περιβάλλοντος(setenv, unsetenv)
Τελευταίες 5 ορισµένες µεταβλητές
Ακύρωση εντολής
50
Τοπικές ΜεταβλητέςΚελύφους C (set, unset)
∆ε χρειάζεται τώρα το !Αγνόησε το ^D ως logout
Μεταβλητές που ξεκινάνεαπό [i-t]
51
Ιστορία εντολών
52
Ψευδώνυµα Εντολών(alias, unalias)
Πάντα ερώτηση σε διαγραφή
Ακύρωση ψευδώνυµου
Για όταν ξεχνιέµαι (windows)
53
∆ιαχείρηση ∆ιεργασιών
Στατιστικά διαχείρισης επεξεργαστή, µνήµης κτλ για προγράµµαταtop
Βάλε διεργασία να τρέχει στο προσκήνιο(foreground)fg
Βάλε διεργασία να τρέχει στο παρασκήνιο(background)bgΣκότωσε µια διεργασίαkillΕµφάνιση ενεργών διεργασιών που έχουν διακοπείjobs
Εµφάνιση κατάστασης τρέχουσωνδιεργασιώνps
54
Εντολές ps (-u), jobs, kill (-9)
55
Εντολές bg, fg
56
Εντολή top
57
Συµπίεση, αποσυµπίεσηαρχείωνΠολλά προγράµµατα (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
58
Κι άλλες Εντολές
Μετατροπή χαρακτήρων σε αρχείαtr
Αναµονή για χρονικό διάστηµαsleepΚαθάρισµα οθόνηςclear
Καταγραφή αλληλεπίδρασης µεκέλυφος σε αρχείαscript
Εµφάνιση πρόσφατων συνδέσεωνχρηστώνlast
Ανεύρεση αρχείων ή καταλόγωνfind∆ιαγραφή στηλών από αρχείαcolrm
59
Εντολές 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
60
Εντολή find (-name, -exec)
Τύπωσε περιεχόµενα από τααρχεία (-exec την cat εντολή)
Τύπωσε πλήρες όνοµααρχείων (-print) και ταπεριεχόµενά τους
61
Εντολές last (-n), script, sleep, clear
Κατέγραψε τα πάντα απόεδώ και πέρα στοmy_session
Επίσης µε ^D, τέλος καταγραφής
62
Άλλα Χρήσιµα…
Ηλεκτρονικό ταχυδροµείοΠρογράµµατα mail ή pine
Μεταγλωτιστές της C gcc ή cc
63
Makefiles
Οργάνωση µεταγλώττισης αρχείων
Στη µορφή:Στόχος: Απαιτούµενα
\t Εντολή
Προσοχή στο tab.
Τα Απαιτούµενα πρέπει να υλοποιηθούνπριν το Στόχο.
Αν τα Απαιτούµενα δεν έχουν αλλάξει, δενεκτελείται η εντολή
Συχνά ο Στόχος του εκτελέσιµουπρογράµµατος έχει το όνοµα all
Συχνά ο Στόχος clean διαγράφει ταπαραγόµενα εκτελέσιµα και *.o
64
Παράδειγµα Makefile
Αν αλλάξει το kbd.c, υπολογίζεται τοkbd.o, και στη συνέχεια το edit
65
Παράδειγµα Makefile
OBJS = main.o iodat.o dorun.oLIB = /usr/lib/crtn.oCC = /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 $?
mylibops.a: interact.o sched.o gen.oar 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
tab