Εισαγωγή στο UNIX και άλλα εργαλεία Pedro Trancoso Γιαννάκης Σαζεϊδης
UNIX Τι είναι; Γιατί UNIX;
UNIX Δημιούργησε στης αρχές του 70 από τα Bell Labs Παραλλαγές Unix: Linux, AIX, Solaris, Ultrix, Irix, Tru64, FreeBSD Χαρακτηριστικά: Πολλών χρηστών (multi-user) Πολλών εργασιών (multi-tasking)
Χρησιμοποίηση του συστήματος 1 User account: Username Password (αλλαγή του password με την εντολή passwd) Προσοχή!(1) Το UNIX είναι case-sensitive δηλαδή το username pedro είναι διαφορετικό από Pedro ή PEDRO Προσοχή!(2) Αλλάξτε password συχνά! Login και Logout logout, exit, CTRL-D
Χρησιμοποίηση του συστήματος 2 Shell (Κέλυφος) Είναι το πρόγραμμα που διαβάζει τις εντολές του χρήστη, τις ερμηνεύει και ξεκινά τα προγράμματα που θα τις εκτελέσουν Παραδείγματα: sh, csh, bash, tcsh Το X: περιβάλλον “windows” Ξεκινά με xinit Ανοίγεις “παράθυρα” με xterm&
Οργάνωση Αρχείων Δέντρο Ριζικός κατάλογος (root directory): “/” Κατάλογοι (directories) και υποκατάλογοι (sub-directories) Βασικές εντολές: pwd, ls, cd, mkdir, rm, cp, mv, cat, more Π.Χ.: ls –l Ειδικοί συμβολισμοί. Τρέχον κατάλογος (current dir)..Κατάλογος που περιέχει τον τρέχον (parent dir) ~Κατάλογος του χρήστη (user´s dir) Π.Χ.: cd../.., cd ~/RES Βοήθεια για τις εντολές: man εντολή
Προστασία αρχείων (File Protection) Αλλάξτε τις άδειες των κατάλογων και αρχείων: chmod Άδειες: r (διάβαση), w (γράψιμο), x (εκτέλεση) u (χρήστης), g (ομάδα), o (υπόλοιποι), a (όλοι) Π.Χ. χρηστής ομάδα τουάδειες μέγεθος ημερομηνία όνομα >ls –l -rw-r--r-- 1 pedro cs Apr 16:54 x.c -rw-r--r-- 1 pedro cs Aug 13:45 x.txt >chmod g+w x.c >ls –l x.c -rw-rw-r-- 1 pedro cs Apr 16:54 x.c
Επιμελητές Vi i (για εισόδου), ESC (για εντολές) Εντολές: h (αριστερά), l (δεξιά), j (κάτω), k (πάνω) Εντολές: :w (φύλαξη ), :q (έξοδο), Emacs Έχει μενού!
Δημιουργήσει Προγράμματα Βήματα:...Σκεφτείτε για την λύση του προβλήματος... Γράψτε τον πρόγραμμα σε γλώσσα προγραμματισμού “C”... χρησιμοποιώντας ή το vi ή to emacs Μεταφράστε τον πρόγραμμα χρησιμοποιώντας ένα μεταγλωττιστής όπως το cc ή το gcc >gcc –o hello hello.c Εκτελείστε τον πρόγραμμα >hello Hello World! >
Makefiles # # Makefile # CC = gcc CFLAGS = -O3 hello: hello.c $(CC) $(CFLAGS) -o hello hello.c
Makefiles (2) # # Makefile - simulator suite make file # CC = gcc OFLAGS = -O3 OEXT = o BINUTILS_INC = -I../include BINUTILS_LIB = -L../lib CFLAGS = $(OFLAGS) $(BINUTILS_INC) $(BINUTILS_LIB) SRCS = main.c sim-outorder.c memory.c regs.c cache.c \ resource.c endian.c misc.c power.c sgtty.c all: "my work is done here..." sim-outorder: sim-outorder.$(OEXT) cache.$(OEXT) $(CC) -o sim-outorder $(CFLAGS) sim-outorder.$(OEXT) cache.$(OEXT) c.$(OEXT): $(CC) $(CFLAGS) -c $*.c
Shell Scripts #! /bin/csh set APP = hello set OUTPUT = hello.output echo "Running the program" $APP echo "Running the program and redirecting output" $APP > $OUTPUT echo "The End"
Shell Scripts (2) #! /bin/csh # # Variables # set SIM = sim-outorder set SIMOPS = "-cache:dl1 dl1:64:32:4:l" set APP = postgres set OUTDIR = /local/pedro/results set APPX = (q3 q6 q12) set APPINPUT = (Q3.sql Q6.sql i = 1 while ($i <= $#APPX) $SIM $SIMOPS $APP $APPINPUT[$i] >& i++ end $SIM $SIMOPS $APP Q3.sql >& $OUTDIR/q3.out $SIM $SIMOPS $APP Q6.sql >& $OUTDIR/q6.out $SIM $SIMOPS $APP Q12.sql >& $OUTDIR/q12.out
Perl #!/usr/bin/perl open(INFILE, "w01.out"); while (defined($line = )) { if ($line =~ /^sim_num_insn/) = split(/[ ]+/, $line); $data } print "sim_num_insn = ". $data. "\n"; #!/usr/bin/perl open(INFILE, $ARGV[0]); …
Perl (2) #!/usr/bin/perl $path = = (icache_power, dcache_power, clock_power, sim_num_insn); while (defined($file = )) { open(INFILE, $file); while (defined($line = )) { for ( $x = 0; $x <= $#tokens; $x++ ) { if ($line =~ = split(/[ ]+/, } # output results print $file. “\n“; for ( $x = 0; $x <= $#tokens; $x++ ) { print " } print "\n"; }
Bibliography Links Documentation Makefile Shell Scripts Perl