Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Corso UNIX per principianti
Elisabetta Pace Corso UNIX per principianti 2003
2
Corso UNIX per principianti 2003
I sistemi UNIX (IBM, HP, Compaq, Linux,...) sono dialetti: i comandi principali sono fondamentalmente gli stessi ma ci sono piccole differenze (p.es. nel modo di dare le opzioni) Useremo il sistema operativo dell’IBM, il cui nome e’ AIX. L’indirizzo del calcolatore IBM di Frascati e’ axcalc.lnf.infn.it Elisabetta Pace Corso UNIX per principianti 2003
3
Corso UNIX per principianti 2003
Attenzione in UNIX: maiuscolo e minuscolo hanno un diverso significato non esiste il concetto di versione di file Elisabetta Pace Corso UNIX per principianti 2003
4
Corso UNIX per principianti 2003
Come connettersi Collegandosi da un PC o da un McIntosh, comunque si usa il protocollo di comunicazione telnet. Emulatori di finestre alfanumeriche da cui e’ possible dare solo comandi di linea (p.es.finestra DOS) emulatore di x-terminal (p.es. exceed, versaterm, putty) Elisabetta Pace Corso UNIX per principianti 2003
5
Corso UNIX per principianti 2003
Operazione di login: login: pace password: (la password non viene visualizzata mentre la scriviamo) Elisabetta Pace Corso UNIX per principianti 2003
6
Corso UNIX per principianti 2003
AIX Version 4 (C) Copyrights by IBM and by others 1982, 1996. login: pace pace's Password: **************************************************************************************** * * * * * Welcome to AIX Version 4.3! * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System * Last login: Tue May 7 11:06:12 METDST 2002 on /dev/pts/28 from dxcalc.lnf.infn.it You have mail. TERM = (xterm) Elisabetta Pace Corso UNIX per principianti 2003
7
Corso UNIX per principianti 2003
Una volta collegati, il sistema scrive una serie di messaggi e poi chiede che tipo di terminale si stia usando (vt100, xterm) Elisabetta Pace Corso UNIX per principianti 2003
8
Per cambiare la password
passwd Changing password for 'pace' in cell 'lnf.infn.it'. Old password: New password (RETURN to abort): Retype new password: Elisabetta Pace Corso UNIX per principianti 2003
9
Corso UNIX per principianti 2003
Che cosa e’ una shell E’ l’interprete dei comandi, cioe’ l’interfaccia tra l’utente ed il sistema. Esistono diverse shell (p.es. Z shell, C shell, tc-shell, Bourne shell, Korn shell): alcuni comandi sono comuni alle varie shell, mentre altri sono completamente diversi. L’informazione della shell prescelta e’ contenuta nel file di sistema che contiene tutte le informazioni riguardanti gli utenti. Elisabetta Pace Corso UNIX per principianti 2003
10
Corso UNIX per principianti 2003
Per esempio in tc-shell il <TAB> completa la parola mentre in altre shell no (p.es. in c-shell) Elisabetta Pace Corso UNIX per principianti 2003
11
Corso UNIX per principianti 2003
Che shell sto usando? > chsh Current available shells: /bin/sh /bin/bsh /bin/csh /bin/ksh /bin/tsh /usr/bin/sh /usr/bin/bsh /usr/bin/csh /usr/bin/ksh /usr/bin/tsh /usr/sbin/sliplogin /usr/sbin/uucp/uucico /usr/bin/tcsh /bin/tcsh pace's current login shell: Change (yes) or (no)? > Elisabetta Pace Corso UNIX per principianti 2003
12
Parleremo solo della tc-shell
Elisabetta Pace Corso UNIX per principianti 2003
13
Variabili di shell (locali)
set my_variable=value Per verificarne il valore echo $my_variable oppure set (per l’elenco di tutte le variabili) Per deassegnare unset my_variable p.es. set history = 50 Attenzione: se prima del segno = c’e’ uno spazio, deve esserci uno spazio anche dopo Elisabetta Pace Corso UNIX per principianti 2003
14
Variabili di ambiente (1)
setenv MY_VARIABLE value Per verificarne il valore echo $MY_VARIABILE oppure env oppure setenv (per l’elenco di tutte le variabili) Per deassegnare unsetenv my_variable p.es. setenv EDITOR emacs Elisabetta Pace Corso UNIX per principianti 2003
15
Variabili di ambiente (2)
setenv dichiara una variabile e la mette nella “calling environment” di tutti i processi figli Elisabetta Pace Corso UNIX per principianti 2003
16
Corso UNIX per principianti 2003
cat ex1 set formaggio=italiano echo “1 : $formaggio” subtest echo “2: $formaggio” cat subtest echo “3 : $formaggio” set formaggio = francese echo “4 : $formaggio” Elisabetta Pace Corso UNIX per principianti 2003
17
Corso UNIX per principianti 2003
source ex1 1 : italiano 3 : 4 : francese 2: italiano Elisabetta Pace Corso UNIX per principianti 2003
18
Ma se avessi sostituito setenv formaggio=italiano in esempio1
il risultato sarebbe source ex1 1 : italiano 3 : italiano 4 : francese 2: italiano Elisabetta Pace Corso UNIX per principianti 2003
19
Corso UNIX per principianti 2003
alias alias alias_name [’ |”]comando [’ |”] Per verificarne il valore alias alias_name Per deassegnare unalias my_variable p.es. alias dir ls -a Elisabetta Pace Corso UNIX per principianti 2003
20
Corso UNIX per principianti 2003
Sulle virgolette Chiudere una stringa tra virgolette a sinistra (’), fa si’ che non venga interpretata All’interno di virgolette doppie (“), parametri e comandi vengono sostituiti. Una stringa tra virgolette destre (‘) viene eseguita Elisabetta Pace Corso UNIX per principianti 2003
21
Corso UNIX per principianti 2003
set A=’Hello’ echo $A Hello set B=’say $A’ echo $B say $A set C="say $A" echo $C say Hello set D=‘date ‘ echo $D Wed May 8 15:28:12 METDST 2002 Elisabetta Pace Corso UNIX per principianti 2003
22
Execution e source di files
Si puo’ fare il source di un file contenente codice tcshell (script): in questo modo non sara’ fatto partire un nuovo processo e la shell corrente eseguira’ i comandi dello script. source nome_file Nel file ci devono essere SOLO comandi tcshell. Elisabetta Pace Corso UNIX per principianti 2003
23
Corso UNIX per principianti 2003
p.es. Creo lo script il cui nome e’ provaScript e che contiene la seguente riga setenv EDITOR emacs Per eseguire questo script, devo dare il comando source provaScript Elisabetta Pace Corso UNIX per principianti 2003
24
Un file contenente un codice tcshell e che abbia come prima riga
#!/usr/local/bin/tcsh Puo’ essere eseguito, iniziando cosi’ un nuovo processo. In questo modo si possono usare i comandi della tcshell usando come interpreti di comandi un’altra shell. Elisabetta Pace Corso UNIX per principianti 2003
25
Corso UNIX per principianti 2003
p.es. Creo lo script il cui nome e’ provaScript e che contiene le seguenti righe #!/usr/local/bin/tcsh setenv EDITOR emacs Per eseguire questo script, devo dare i seguenti comandi chmod u+x provaScript (per cambiare le protezioni del file e renderlo eseguibile) ./provaScript (per eseguire lo script) Elisabetta Pace Corso UNIX per principianti 2003
26
Corso UNIX per principianti 2003
Per uscire dalla tcshell > exit Elisabetta Pace Corso UNIX per principianti 2003
27
Corso UNIX per principianti 2003
Al momento del login, il sistema esegue alcuni file, diversi per ogni shell. Per la tc-shell questi file sono \etc\csh.cshrc e \etc\csh.login (se esistono) file di sistema .tcshrc (o .cshrc ) stabilsce variabili e parametri locali a questa shell .history (se tcshell e’ la shell di login) ricostruisce la history list della shell Elisabetta Pace Corso UNIX per principianti 2003
28
Corso UNIX per principianti 2003
.login (se tcshell e’ la shell di login) dovrebbe contenere i comandi che si vogliono eseguire una sola volta all’inizio di una sessione (per esempio determinare il tipo di terminale) .cshdir (se tcshell e’ la shell di login) ricostruisce il directory stack (per i comandi pushd e popd) Elisabetta Pace Corso UNIX per principianti 2003
29
Corso UNIX per principianti 2003
Al completamento della tcshell, il sistema esegue .logout Elisabetta Pace Corso UNIX per principianti 2003
30
Corso UNIX per principianti 2003
.login (esempio) # LNF .login file (Sandro Angius 16/11/99) # echo ".login starting" if ( $?ENVIRONMENT ) then if ( "$ENVIRONMENT" == "BATCH" ) exit endif ################################################################# source /afs/lnf.infn.it/system/userenv/common/system_login # Execute GROUP level commands if a group file exists and is readable if ( -r /afs/lnf.infn.it/system/userenv/common/${group}_login ) source /afs/lnf. infn.it/system/userenv/common/${group}_login Elisabetta Pace Corso UNIX per principianti 2003
31
Corso UNIX per principianti 2003
################################################################# # # Execute USER level commands if a user exists and is readable if (-r $home/.alias) source $home/.alias if (-r $home/.complete) source $home/.complete if ( `uname` == "HP-UX" ) set opt = "-R" if ( `uname` == "OSF1" ) set opt = "-M" if ( `uname` == "SunOS" ) set opt = "" setenv REMHOST `who $opt | grep $tty | cut -f2 -d"(" | cut -f1 -d")"` setenv DISPLAY "$REMHOST":0 if ( "$REMHOST" == "hpxserv" && -f $home/.xmodmap ) then source .xmodmap; echo "sourcing .xmodmap" endif #xhost + echo ".login finished" Elisabetta Pace Corso UNIX per principianti 2003
32
File inquire operations
-d file Il file e’ una directory -e file Il file esiste -f file Il file e’ un file normale -o file L’utente e’ l’owner del file -r file L’utente ha il permesso di read -w file L’utente ha il permesso di write -x file L’utente ha il permesso di execute -z file Il file ha dimensione nulla Elisabetta Pace Corso UNIX per principianti 2003
33
Corso UNIX per principianti 2003
.cshrc (esempio) # # LNF .cshrc file (Sandro Angius 16/11/99) echo "cshrc started" if ( $?ENVIRONMENT ) then if ( "$ENVIRONMENT" == "BATCH" ) exit endif ##################################################################### # Execute SYSTEM level commands if file exists and is readable echo "system_cshrc started" source /afs/lnf.infn.it/system/userenv/common/system_cshrc echo "system_cshrc ended" Elisabetta Pace Corso UNIX per principianti 2003
34
Corso UNIX per principianti 2003
##################################################################### # Execute GROUP level commands if a group file exists and is readable # echo "group_cshrc started" if ( -r /afs/lnf.infn.it/system/userenv/common/${group}_login ) \ source /afs/lnf.infn.it/system/userenv/common/${group}_login echo "group_cshrc ended" umask 022 if ( $?prompt ) then # shell is interactive. set history= # previous commands to remember. set savehist= # number to save across sessions. set ignoreeof # no logout with <Ctrl-D> set noclobber set notify set filec set autolist # correct mispelled commands set correct = cmd set correct = all set notify (mando un messaggio quando un job in background e’ terminato) set noclobber (chiede conferma se cerco di sovrascrivere un file redirigendo l’output) set autolist (dando TABper il completamento di un coamndo, viene fornito l’elenco di tutti i possibili completamenti (altrimenti CNTRL-D)) set correct = cmd set correct = all (per chiedere alla shell di fare correzioni ortografiche) Elisabetta Pace Corso UNIX per principianti 2003
35
Corso UNIX per principianti 2003
unset autologout set matchbeep=nomatch setenv EDITOR emacs unsetenv http_proxy unsetenv no_proxy setenv PRINTER aen2b1 setenv WWW_HOME Elisabetta Pace Corso UNIX per principianti 2003
36
Corso UNIX per principianti 2003
set prompt="%m:%~%B%#%b " # tcsh prompt per AX IBM if ( `uname` == "OSF1" ) then set prompt="%T %m:%C %# " # tcsh prompt set path = ( . $path /sbin /usr/bin/X11 /usr/local/X11R5/bin \ /usr/local/bin /usr/local/gnu/bin $home/bin $home/bin/osf ) else set path = ( $path /etc /usr/local/bin /usr/local/X11R5/bin \ /usr/local/gnu/bin /usr/uimx2.9/bin $home/bin \ $home/bin/hpux . ) endif if ( `uname` == "HP-UX" ) then # setenv LPATH /usr/lib:/lib:/usr/lib/X11/extensions:. setenv LHC_ROOT # setenv PATH ./:/u1/pace::$PATH if ( `uname` == "SunOS" ) then set prompt="`date '+%H:%M:%S' ` `hostname`: >" %m hostname senza dominio %~ valore del cwd (current working directory) Elisabetta Pace Corso UNIX per principianti 2003
37
Corso UNIX per principianti 2003
################################################################### # # Sample alias: alias settitle 'echo -n "^[]2;$cwd^G"' alias datebook /u1/pace/datebook/bin/datebook alias edf emacs -ms white -cr white -bg black -fg white \ -fn -misc-fixed-medium-r-normal c-100-iso8859-1 alias ls ls -F alias kk kill -KILL alias edi 'emacs -ms white -cr white -bg black -fg white' endif echo "cshrc ended" Elisabetta Pace Corso UNIX per principianti 2003
38
Corso UNIX per principianti 2003
#set path = ( . $path) #set history= # previous commands to remember. #set savehist= # number to save across sessions. #set system=`hostname` # name of this system. #set prompt="%m:%~%B%#%b " # new tcsh prompt #set ignoreeof # no logout with <Ctrl-D> #set noclobber #set notify #set filec #set autolist #setenv EDITOR vi # # EOF Elisabetta Pace Corso UNIX per principianti 2003
39
Corso UNIX per principianti 2003
!! ripete l’ultimo comando !?stringa? Ripete l’ultimo comando contenente stringa !numero-evento esegue l’evento numero-evento Elisabetta Pace Corso UNIX per principianti 2003
40
Corso UNIX per principianti 2003
Help man comando (restituisce la pagina di manuale relativa a comando) man –k parolaChiave (localizza le pagine di manuale relative a parolaChiave) manprint comando (stampa la pagina di manuale relativa a comando) xman comando (come man, ma su una nuova finestra) whatis comando (descrive la funzione di comando) Elisabetta Pace Corso UNIX per principianti 2003
41
Corso UNIX per principianti 2003
man man Commands Reference, Volume 3 man Command Purpose Displays manual entries online. Syntax man [ [ [ -c ] [ -t ] [ Section ] ] | [ -k | -f ] ] [ -MPath ] Title ... Description The man command provides reference information on topics, such as commands, subroutines, and files. The man command provides one-line descriptions of commands specified by name. The man command also provides information on all commands whose descriptions contain a set of user-specified keywords. Elisabetta Pace Corso UNIX per principianti 2003
42
Corso UNIX per principianti 2003
The man command formats a specified set of manual pages. If you specify a section for the Section parameter, the man command searches in that section of the manual pages for the title specified by the Title parameter. The value of the Section parameter can be either an Arabic number from 1 through 8 or a letter. The Section letters are: C Specifies commands (including system management commands). F Specifies file-type manual pages. L Specifies library functions. n Specifies new. l Specifies local. o Specifies old. p Specifies public. Elisabetta Pace Corso UNIX per principianti 2003
43
Corso UNIX per principianti 2003
Note: The n, l, o, and p section specifiers are not valid for reading the hypertext information bases, which contain the operating system documentation. The Section numbers are: 1 Indicates user commands and daemons. 2 Indicates system calls and kernel services. 3 Indicates subroutines. 4 Indicates special files, device drivers, and hardware. 5 Indicates configuration files. 6 Indicates games. 7 Indicates miscellaneous commands. 8 Indicates administrative commands and daemons. Elisabetta Pace Corso UNIX per principianti 2003
44
Corso UNIX per principianti 2003
Note: The operating system documentation in the hypertext information databases is grouped into three sections only: command manual pages (in section 1, equivalent to section C), subroutine manual pages (in section 3, equivalent to section L), and file manual pages (in section 4, equivalent to section F). When searching for hypertext information, specifying section 1, 6, 7, or 8 will default to the command manual pages, section 2 or 3 will default to the subroutine manual pages, and section 4 or 5 will default to the file manual pages. If the Section parameter is omitted, the man command searches all sections of the manual. The search path the man command uses is a list of directories separated by a : (colon) in which manual subdirectories can be found. The MANPATH environment variable value is used for the default path. The MANPATH environment variable is not valid when reading the hypertext information bases. The man command displays the manual pages as follows: 1. The man command searches the nroff directories (man?) under the /usr/share/man directory. Elisabetta Pace Corso UNIX per principianti 2003
45
Corso UNIX per principianti 2003
2. The man command searches the formatted version directories (cat?) under the /usr/share/man directory. If the formatted version is available, and if it has a more recent modify time than the nroff command source, the man command displays the formatted version. Otherwise, the manual page is formatted with the nroff command and displayed. If the user has permission, the formatted manual page is deposited in the proper place, so that later invocations of the man command do not format the page again. Note: There is no nroff source for the supplied manual pages. However, you can put nroff source for manual pages into the man directories and the man command can locate and process the nroff source. 3. If the man command does not find a manual page in the /usr/share/man/man or /usr/share/man/cat directory, the man command reads from the hypertext information bases. The hypertext information bases reside in the /usr/share/man/info directory structure and contain the operating system documentation. When reading from the hypertext databases, the man command does not put any manual pages in the /usr/share/man/cat directory structure. The man command strips formatting information from the manual page, wraps lines so the lines fit on the display, and displays the manual page using the command described by the PAGER environment variable. Elisabetta Pace Corso UNIX per principianti 2003
46
Corso UNIX per principianti 2003
When accessing the HTML databases, man looks for the AIX library before it proceeds to other LPP libraries. Within these libraries, it processes information in the following order: cmds Commands Reference libs Subroutines, System Calls files Files Reference If the standard output is a tty, the man command pipes its output using the more command with the -s and -v flags. The -s flag eliminates multiple blank lines and stops after each page on the screen. The -v flag suppresses the display of nonprinting characters to the screen. To continue scrolling, press the space bar. To scroll an additional 11 lines when the output stops, press the Ctrl-D key sequence. The PAGER environment variable can be set to whatever pager is desired. The default value is the more command. To change the default pager, enter: PAGER=Somepager export PAGER Elisabetta Pace Corso UNIX per principianti 2003
47
Corso UNIX per principianti 2003
For example, if there are customized manual pages which are formatted with reverse or fractional line feeds, the PAGER environment variable may be set to /usr/bin/pg so that the line feeds are not printed as control characters. This procedure is not necessary for the AIX manual pages. When the man command uses a hypertext database, it can retrieve several articles. For example, man open displays several articles. The use of SIGINT (Ctrl-C) exits the man command completely. On the other hand, man open close also displays several articles but the use of SIGINT (Ctrl-C) causes man to display the close command information instead of exiting. Using SIGINT (Ctrl-C) again exits the man command completely. When specifying one of the Network Computing System library routines that contains a $ (dollar sign) in its name, enter a \ (backslash) preceding the $. Flags -c Displays the manual information using the cat command. Elisabetta Pace Corso UNIX per principianti 2003
48
Corso UNIX per principianti 2003
-f Displays entries in the keyword database related only to the command name given as the final parameter. You can enter more than one command name, each separated by a space. Use this flag to search for command articles only. To use the -f flag, a root user must have previously entered catman -w to create the /usr/share/man/whatis file. -k Displays each line in the keyword database that contains a string of characters matching the title given as the final parameter. You can enter more than one title, each separated by a space. To use the -k flag, a root user must have previously entered catman -w to create the /usr/share/man/whatis file. -MPath Changes the standard location where the man command searches for manual information. The search path the man command uses is a list of directories separated by a : (colon) in which manual subdirectories can be found. The MANPATH environment variable value is used for the default path. Note: The -M flag is not valid when the man command reads from the hypertext databases. -t Formats the manual information using the troff command. This flag is ignored if the manual page is found in a hypertext information base. Elisabetta Pace Corso UNIX per principianti 2003
49
Corso UNIX per principianti 2003
Exit Status This command returns the following exit values: 0 Successful completion. >0 An error occurred. Examples 1. To display information about the grep command, enter: man grep 2. To display information about the rpc_$register library routine, enter: man rpc_\$register 3. To display all entries in the /usr/share/man/whatis keyword database that contain the "mkdir" string , enter: man -k mkdir The output is equivalent to the apropos command. You receive output from the -k flag only when the /usr/share/man/whatis keyword database already exists. Elisabetta Pace Corso UNIX per principianti 2003
50
Corso UNIX per principianti 2003
4. To display all entries from the keyword database related to the nroff and troff commands, enter: man -f nroff troff The output is equivalent to the whatis command. You receive output from the -f flag only when the /usr/share/man/whatis keyword database already exists. 5. To display all ftp command related articles in the /usr/share/man or /usr/share/man/local path, enter: man -M/usr/share/man:/usr/share/man/local ftp Files /usr/bin/man Contains the man command. /usr/share/man Standard manual directory structure. /usr/share/man/cat?/* Directory containing preformatted pages. /usr/share/man/whatis Contains the keyword database. /usr/share/man/man?/* Directory containing nroff format manual pages. Elisabetta Pace Corso UNIX per principianti 2003
51
Corso UNIX per principianti 2003
Related Information The apropos command, catman command, more command, whatis command, whereis command. Elisabetta Pace Corso UNIX per principianti 2003
52
Corso UNIX per principianti 2003
man -k fortran f2c (1) Convert Fortran 77 to C or C f90 (1) Fortran 90 compiler ftnchek (1) Fortran 77 program checker g77 (1) GNU project Fortran Compiler (v0.5.24) hepf77 (1) FORTRAN compiler front end UNPACK_DATA_RECORD(3) - Use Unpack Data Record to unpack a data record returned by FORTRAN binding input device inquiries. asa(1) Prints FORTRAN files to AIX line-printer conventions. fpr(1) Prints FORTRAN files to AIX line-printer conventions. fsplit(1) Splits FORTRAN source code into separate routine files. struct(1) Translates a FORTRAN program into a RATFOR program. Elisabetta Pace Corso UNIX per principianti 2003
53
Come aprire una nuova finestra X
xterm xterm -sb (crea una finestra con scrollbar) xterm -sl number (specifica il numero di linee da salvare accessibili usando lo scrollbar) xterm –tn nome (determina il nome della finestra) xterm –bg colore (definisce il colore dello sfondo della nuova finestra X) xterm –e comando (esegue l’operazione comando nella nuova finestra; e’ sempre l’ultima opzione) Elisabetta Pace Corso UNIX per principianti 2003
54
Corso UNIX per principianti 2003
showrgb fornisce una lista dei colori disponibili Elisabetta Pace Corso UNIX per principianti 2003
55
Multitasking: background e foreground
Multitasking: esecuzione contemporanea di piu’ programmi (job control). Un programma che gira in background ha la stessa priorita’ di un programma che gira in interattivo. & CTRL-z bg jobs fg Elisabetta Pace Corso UNIX per principianti 2003
56
Come vedere tutti i processi attivi
ps -ef Le colonne dell’output ottenuto hanno il seguente significato login name processID processID del processo padre processor utilization for scheduling data di inizio del processo control terminal del processo tempo di CPU consumatodal processo nome del comando e suoi argomenti Elisabetta Pace Corso UNIX per principianti 2003
57
Come uccidere un comando in esecuzione
kill – KILL proc-id Elisabetta Pace Corso UNIX per principianti 2003
58
Caratteri per nomi di files
Consiglio di usare qualsiasi lettera maiuscola o minuscola, numeri, “_”, “-”, “.”. Elisabetta Pace Corso UNIX per principianti 2003
59
Corso UNIX per principianti 2003
File invisibili Si chiamano file invisibili quelli con nome che inizi con il carattere “.” perche’ nomralmente il comando ls non li mostra. Elisabetta Pace Corso UNIX per principianti 2003
60
Corso UNIX per principianti 2003
Caratteri speciali da NON usare nei nomi dei files: & ; | * ? ‘ “ ’ [ ] ( ) $ < > { } ^ # \ / % ! ~ \ per continuare un comando a capo ; pipe & background | pipe Ogni gruppo di caratteri (anche zero caratteri) ? Un qualsiasi singolo carattere [lista-caratteri] un singolo carattere della lista Elisabetta Pace Corso UNIX per principianti 2003
61
Corso UNIX per principianti 2003
Unix file system I files sono organizzati in gerarchie di directory. Una directory speciale e’ root, che e’ la directory piu’ alta (/). Un filename e’ una sequenza di file identifiers (cioe’ di nomi di directories) separati dal carattere /. Elisabetta Pace Corso UNIX per principianti 2003
62
Corso UNIX per principianti 2003
path names assoluti: iniziano per / (p.es. /exp/esperimento/user/utente/miofile) path names relativi: non iniziano per / (p.es. miofile) Elisabetta Pace Corso UNIX per principianti 2003
63
Corso UNIX per principianti 2003
current directory ( . ) o directory di lavoro parent directory ( .. ) home directory (˜,˜username) Elisabetta Pace Corso UNIX per principianti 2003
64
Corso UNIX per principianti 2003
File permissions E’ una proprieta’ del file: tutti i link a quel file avranno lo stesso modo. Tre possibili permessi (mode bits): read (r), write (w), execute (x). Il permesso x e’ necessario per eseguire un file compilato o uno shell script (cioe’ una procedura di comandi). Elisabetta Pace Corso UNIX per principianti 2003
65
Corso UNIX per principianti 2003
Cambiare il modo chmod mode-list filename P.es. chmod u+x file1 accorda il permesso di execute al proprietario del file chmod g-r file1 toglie il permesso di read al gruppo Elisabetta Pace Corso UNIX per principianti 2003
66
Corso UNIX per principianti 2003
Che cosa e’ AFS E’ un file system distribuito che permette di condividere file attraverso la rete, con dei sistemi di autenticazione, access control list e sistemi di cache migliori rispetto ad altri file systems. Per identificare gli utenti, AFS usa i token. Un token puo’ essere ottenuto al momento del login o usando il comando klog. Un token ha un tempo di vita limitato. Elisabetta Pace Corso UNIX per principianti 2003
67
Corso UNIX per principianti 2003
Un utente puo’ ottenere un solo token per cella alla volta, ma piu’ token per celle diverse P.es. se ho il token per non posso avere contemporaneamente quello per ma posso avere Posso vedere quali sono i miei token con il comando tokens. Elisabetta Pace Corso UNIX per principianti 2003
68
Corso UNIX per principianti 2003
comandi AFS klog klog –h klog –cell nome-cella –principal username tokens Elisabetta Pace Corso UNIX per principianti 2003
69
Corso UNIX per principianti 2003
ACL per AFS In AFS, l’accesso ai file e’ gestito da un Access Control List (ACL). Solo le directory hanno un ACL: non e’ possibile assegnare un ACL ad un singolo file e quindi tutti i file contenuti in una certa directory hanno lo stesso ACL. Elisabetta Pace Corso UNIX per principianti 2003
70
Corso UNIX per principianti 2003
AFS definisce i seguenti diritti di accesso: r read w write k lock l lookup i insert d delete a admin ACL Elisabetta Pace Corso UNIX per principianti 2003
71
Corso UNIX per principianti 2003
fs listacl per vedere quale sia l’ACL di una certa directory fs setacl [userid|protectioGroup] accessRights per cambiare un ACL Elisabetta Pace Corso UNIX per principianti 2003
72
Corso UNIX per principianti 2003
ACL e permessi Unix I mode bits dello Unix di group e word vengono ignorati, mentre quelli dell’owner vengono esaminati se c’e’ l’assenso dell’ACL e usati per dare il permesso finale (read/write/execute) al file. P.es. Se la flag di lettura di un file e’ non selezionata (con un comando chmod –r) e si tenta di leggere quel file, si otterra’ un errore del tipo ‘Permission denied’ anche se nell’ACL il permesso di read era selezionato. Non c’e’ un permesso ACL corrispodente direttamente al mode bit execute (x): per eseguire un file AFS, l’utente deve avere il permesso di read (r) e lookup (l) nell’ACL della directory in cui si trova il file. Elisabetta Pace Corso UNIX per principianti 2003
73
Creazione di protection groups
In AFS ogni utente puo’ creare fino a 20 protection groups. Un protection group e’ un insieme di userid e/o group-id che possono essere usate in ACL per condividere delle directory tra utenti AFS. pts creategroup username:mygroup Elisabetta Pace Corso UNIX per principianti 2003
74
Corso UNIX per principianti 2003
pts creategroup usertwo:mygroup (per creare un protection group) pts adduser –user newusername usertwo:mygroup (per aggiungere utenti ad un protection group esistente) pts membership usertwo:mygroup (per vedere l’elenco degli utenti di un protection group) pts listowned usertwo (per elencare i protection groups posseduti) Elisabetta Pace Corso UNIX per principianti 2003
75
Checking volume quotas
Lo spazio file di AFS e’ composto da volumi. Ogni volume contiene una certa quantita’ di spazio allocata su un disco fisico su un certo AFS server, montato coe directory ne filesystem AFS. A ogni utente e’ associata una quota di volume fissa. fs listquota $HOME (per vedere l’uso di spazio attuale e l’uso di quota) vos examine user.usetwo (per esaminare l’uso di un certo volume) Elisabetta Pace Corso UNIX per principianti 2003
76
LNF AFS cell environment
Home directory structure: private public www .dotfiles Elisabetta Pace Corso UNIX per principianti 2003
77
Corso UNIX per principianti 2003
Leggere la pagina WEB del centro di calcolo per ulteriori informazioni su AFS Elisabetta Pace Corso UNIX per principianti 2003
78
Bakup e restore dei files sulle macchine LNF
cp $BACKUPVOL/private/main.c $HOME/private (per recuperare un file dal backup notturno (snapshot volumes) un file chiamato main.c) Elisabetta Pace Corso UNIX per principianti 2003
79
Come vedere il contenuto di una directory
ls (directory list) ls –l (long list) ls –a (mostra anche i file nascosti) ls –F (alla fine del nome del file viene aggiunto un carattere che individua il tipo di file: / indica una directory, * indica un file indica un link soft) ls –ls (size in Kbytes) Elisabetta Pace Corso UNIX per principianti 2003
80
Corso UNIX per principianti 2003
ls ancoraUnaDir file file2 ls -F ancoraUnaDir/ file file2 ls -l total 8 drwxr-xr-x 2 pace finuda May 07 12:40 ancoraUnaDir -rw-r--r pace finuda May :39 file1 -rw-r--r pace finuda May :40 file2 ls -la total 34 drwxr-xr-x 3 pace finuda May :29 . drwxr-xr-x 25 pace finuda May 07 12:39 .. -rw-r--r pace finuda May :04 .file3 drwxr-xr-x 2 pace finuda May :40 ancoraUnaDir -rw-r--r pace finuda May :39 file1 -rw-r--r pace finuda May :40 file2 Elisabetta Pace Corso UNIX per principianti 2003
81
Corso UNIX per principianti 2003
ls -laFs total 17 2 drwxr-xr-x 3 pace finuda May 07 14:29 ./ 10 drwxr-xr-x 25 pace finuda May 07 12:39 ../ 1 -rw-r--r pace finuda May 07 15:04 .file3 2 drwxr-xr-x 2 pace finuda May 07 12:40 ancoraUnaDir/ 1 -rw-r--r pace finuda May 07 12:39 file1 1 -rw-r--r pace finuda May 07 12:40 file2 nome proprietario data ultimo accesso gruppo mode bits (il primo carattere Indica il tipo del file) dimensione Elisabetta Pace Corso UNIX per principianti 2003
82
comandi relativi alle directory
pwd (indica la working directory) (print working directory) cd directory (cambio working directory) mkdir dirname (creo una directory) du disk usage pushd popd Elisabetta Pace Corso UNIX per principianti 2003
83
Corso UNIX per principianti 2003
Links Un link permette a piu’ utenti di accedere agli stessi dati. Una directory entry relativa ad un file contiene il nome del file ed un inode number, che e’ una struttura dati interna che contiene informazioni relative a quel file. Elisabetta Pace Corso UNIX per principianti 2003
84
differenze tra un collegamento soft e hard
Un collegamento soft è praticamente un nome ulteriore che viene assegnato allo stesso file. Non occupa spazio su disco (se non per un inode), cioe’ non e’ una copia del file Un collegamento hard è una copia fisica del file; inoltre ogni cambiamento fatto all'originale (o alla copia) risulterà effettuata anche sulla copia (o sull'originale). Elisabetta Pace Corso UNIX per principianti 2003
85
ln filename nomelinkHard ln –s filename nomelinkSoft
ls –i per vedere gli i-node dei file Elisabetta Pace Corso UNIX per principianti 2003
86
Corso UNIX per principianti 2003
Se si cancella un collegamento soft il file originale viene perso; se invece c'è un collegamento hard e si cancella l'originale, il collegamento (ed il suo contenuto) non verranno modificati. Elisabetta Pace Corso UNIX per principianti 2003
87
Corso UNIX per principianti 2003
axcalc:~/corsoUnix> ls -l total 38 drwxr-xr-x 2 pace finuda May 07 12:40 ancoraUnaDir/ -rw-r--r pace finuda May 07 15:26 file -rw-r--r pace finuda May 07 12:39 file1 -rw-r--r pace finuda May 07 15:26 file10 -rw-r--r pace finuda May 07 15:26 file2 -rw-r--r pace finuda May 07 15:16 qq.qq axcalc:~/corsoUnix> ln file1 file1LinkHard axcalc:~/corsoUnix> ln -s file1 file1LinkSoft total 42 -rw-r--r pace finuda May 07 15:26 file -rw-r--r pace finuda May 07 12:39 file1 -rw-r--r pace finuda May 07 15:26 file10 -rw-r--r pace finuda May 07 12:39 file1LinkHard lrwxr-xr-x 1 pace finuda May 08 14:21 -> file1 -rw-r--r pace finuda May 07 15:26 file2 -rw-r--r pace finuda May 07 15:16 qq.qq Elisabetta Pace Corso UNIX per principianti 2003
88
Redirezione di input, output e error log
> redireziona l’output standard >> concatena l’output standard ad un file esistente >! sovrascrive un file esistente con l’output standard < operatore di redirezione dell’input standard >& redirezione dell’output standard e dell’error standard Elisabetta Pace Corso UNIX per principianti 2003
89
Corso UNIX per principianti 2003
Nella tcshell lo standard error NON puo’ essere rediretto separateente dall’output > cat x cat: no such file > cat y this is y > cat x y >& hold (il file x non esiste, mentre il file y contiene la sola riga ‘this is y’) Elisabetta Pace Corso UNIX per principianti 2003
90
Per visualizzare un file
cat filename (mostra tutto il file) more filename (mostra tutto il file, una schermata alla volta) head [-n number] filename (mostra le prime n righe del file) tail [-n number] filename (mostra le ultime n righe del file) Elisabetta Pace Corso UNIX per principianti 2003
91
Come appendere un file all’altro
cat filename per vedere un file cat filename1 filename2 > filename3 concatena filename1 e filename2 e li scrive in filename3 cat filename1 >> filename2 appende filename1 a filename2 Elisabetta Pace Corso UNIX per principianti 2003
92
Corso UNIX per principianti 2003
cat > filename1 Stringhe CTRL+D per creare il file filename1 cat >> filename1 per appendere al file filename1 Elisabetta Pace Corso UNIX per principianti 2003
93
Corso UNIX per principianti 2003
grep grep stringa filename1 (visualizza le righe di filename1 contenenti stringa) Elisabetta Pace Corso UNIX per principianti 2003
94
sort sort filename1 > filename2
ordina filename1 e lo scrive in filename2 Elisabetta Pace Corso UNIX per principianti 2003
95
Corso UNIX per principianti 2003
uniq filename1 cancella due righe adiacenti uguali in filename1 Elisabetta Pace Corso UNIX per principianti 2003
96
Corso UNIX per principianti 2003
Come muovere un file mv filename1 filename2 (per rinominare un file) cp filename1 filename2 (per copiare un file) cp –i per avere la conferma Elisabetta Pace Corso UNIX per principianti 2003
97
Corso UNIX per principianti 2003
Per cancellare rm filename (per cancellare un file) rm –i (per cancellare un file dopo aver dato conferma) rm –R (per cancellare in modo ricorsivo una directory) rmdir directoryname (per cancellare una directory se e’ vuota) Elisabetta Pace Corso UNIX per principianti 2003
98
Come comparare due files
cmp file1 file2 (dice solo se i due files sono uguali o no) diff file1 file2 (mostra anche le linee che diversificano i due files) Elisabetta Pace Corso UNIX per principianti 2003
99
Come classificare i files
file [options] filename permette di determinare il tipo di un file: p.es. directory, data, ASCII text, C-program source, archive, eseguibile, empty, core file Elisabetta Pace Corso UNIX per principianti 2003
100
Corso UNIX per principianti 2003
Come trovare un file find pathlist criterion permette di trovare un file con certe caratteristiche in una parte del filesystem. P.es. Se il criterion e’ –name, viene cercato un file con un certo nome find . –name nomefile –print (se nomefile contiene wildcards, deve essere messo tra virgolette, p.es. “*.html”) Elisabetta Pace Corso UNIX per principianti 2003
101
Come modificare un file
vi emacs Elisabetta Pace Corso UNIX per principianti 2003
102
vi: comandi principali (1)
i inserisci testo prima del cursore a inserisci testo dopo il cursore A inserisci testo alla fine della riga I inserisci testo all’inizio della riga dd cancella la riga corrente x cancella il carattere sotto il cursore r sostituisce il carattere sotto il cursore <esc> passo dalla modalita’ testo alla modalita’ comando visuale /string<RET> cerca string in avanti /<RET> cerca ancora string in avanti :viusage lista tutti icomandi vi :viusage com help breve del comando com :q esce dall’editor :q! esce dall’editor senza salvare le modifiche :wq salva le modifiche ed esce dall’editor Elisabetta Pace Corso UNIX per principianti 2003
103
vi: comandi principali (2)
frecce per muoversi nella pagina <space>, l o freccia-destra sposta il cursore a destra h o freccia-a-sinistra sposta il cursore a sinistra J o freccia-in-basso sposta il cursore in basso K o freccia-in-alto sposta il cursore in alto Elisabetta Pace Corso UNIX per principianti 2003
104
Corso UNIX per principianti 2003
emacs Editor orientato alla pagina Elisabetta Pace Corso UNIX per principianti 2003
105
Corso UNIX per principianti 2003
sed editor non interattivo p.es. sed ‘s/b/B/g’ file-name sostituisce tutte le b con B nel file file-name Elisabetta Pace Corso UNIX per principianti 2003
106
Corso UNIX per principianti 2003
awk Cerca e processa dei pattern in un file p.es. awk –F “ “ ’{print $1 “+” $2}’ file-name Elisabetta Pace Corso UNIX per principianti 2003
107
Corso UNIX per principianti 2003
Wildcards * qualsiasi stringa ? qualsiasi carattere [...] qualsiasi carattere di quelli tra parentesi [char1-char2] qualsiasi carattere tra char1 e char2 ^pattern qualsiasi stringa che non sia pattern Elisabetta Pace Corso UNIX per principianti 2003
108
Corso UNIX per principianti 2003
[...] puo’ essere usato solo per caratteri esistenti (quindi funziona con ls ma non con mkdir) Usare parentesi graffe per generare argomenti p.es. mkdir file{1,2,3,4,5} (crea le directory file1, file2, file3, file4, file5) mv file{1,2} (rinomina file1 in file2) diff prova{.old,} (guarda le differenze tra prova.old e prova) Elisabetta Pace Corso UNIX per principianti 2003
109
Corso UNIX per principianti 2003
echo echo stringa scrive i suoi argomenti sullo standard output Elisabetta Pace Corso UNIX per principianti 2003
110
Corso UNIX per principianti 2003
Piping di operazioni Permette di eseguire piu’ operazioni in sequenza e di usare l’output della operazione predente come input della operazione successiva p.es. ls –l | grep May Elisabetta Pace Corso UNIX per principianti 2003
111
Corso UNIX per principianti 2003
date ; who | more (date ; who) | more date ; du > file10 (date ; du) > file10 Elisabetta Pace Corso UNIX per principianti 2003
112
Corso UNIX per principianti 2003
date date Elisabetta Pace Corso UNIX per principianti 2003
113
Corso UNIX per principianti 2003
Compressione di files compress nomefile (genera un file compresso di nome nomefile.Z) gzip (genera un file compresso di nome nomefile.gz) zip unzip tar xvf nomefile tar cvf miofile ./* gunzip (decomprime file generati con gzip o compress) Elisabetta Pace Corso UNIX per principianti 2003
114
Un sistema di posta elettronica: pine
Elisabetta Pace Corso UNIX per principianti 2003
115
Per vedere file postscript: gv
gv postscripFile Elisabetta Pace Corso UNIX per principianti 2003
116
Per vedere file pdf: acroread
acroread pdfFile Elisabetta Pace Corso UNIX per principianti 2003
117
Per vedere file grafici: xv
xv nomefilegrafico Elisabetta Pace Corso UNIX per principianti 2003
118
Per convertire file grafici
display convert Elisabetta Pace Corso UNIX per principianti 2003
119
Come stampare un file a Frascati
lpr filename (per stampare SOLO file di testo o postscript) lpq (per controllare lo stato di una coda di stampa) Elisabetta Pace Corso UNIX per principianti 2003
120
lprm –PnomeStampante@unixprint (per cancellare una stampa) lprm –a
(per cancellare tutti i miei file in stampa su tutte le stampanti) ATTENZIONE lprm –a all (cancella TUTTI i jobs su TUTTE le stampanti, non solo i miei) Elisabetta Pace Corso UNIX per principianti 2003
121
Come interagire con sistemi remoti
telnet login remoto ssh login remoto in modo sicuro ftp trasferimento di files tra un sistema remoto ed il sistema locale ping per verificare se un sistema remoto e’ attivo Elisabetta Pace Corso UNIX per principianti 2003
122
Comandi principali per ftp
pwd nome della working dir remota ls lista della working dir remota get rfile lfile copia il file remoto rfile nel file locale lfile mget put lfile rfile copia il file locale lfile nel file remoto rfile mput ascii|binary seleziona il modo di trasferimento cd [rdir] cambia la working dir sulla macchina remota lcd [ldir] cambia la working dir sulla macchina locale Elisabetta Pace Corso UNIX per principianti 2003
123
Login remoto sicuro: ssh
ssh ssh password: scp Elisabetta Pace Corso UNIX per principianti 2003
124
Corso UNIX per principianti 2003
ASIS ASIS e’ un gruppo di programmi di utilita’ generale, installati anche a Frascati su tutte le macchine UNIX. Il link alla documentazione e’ Elisabetta Pace Corso UNIX per principianti 2003
125
Corso UNIX per principianti 2003
Elisabetta Pace Corso UNIX per principianti 2003
126
Come creare una propria pagina WEB visibile anche fuori dai LNF
Da un qualsiasi WEB browser, con l’indirizzo si accede al file ˜user/www/Welcome.html. Elisabetta Pace Corso UNIX per principianti 2003
127
Alcuni comandi di utilita’ generale
ps2ascii traduce PostScript o PDF in ASCII ps2pdf traduce da Post Script a PDF pdf2ps traduce da PDF a Post Script epsffit forza un file encapsulated PostScript (EPSF) in una certa dimensione xgrab cattura l’immagine di una finestra xpaint programma simile a Paint ispell analizzatore ortografico interattivo Elisabetta Pace Corso UNIX per principianti 2003
128
Corso UNIX per principianti 2003
xcal calendario per X11 con allarmi xcalc calcolatrice scientifica cut estrae byte, caratteri o campi selezionati da ogni riga di un file join per creare un nuovo file le cui colonne sono costituite dai due file di input id mostra l‘identificatore di sistema di un utente specificato Elisabetta Pace Corso UNIX per principianti 2003
129
Corso UNIX per principianti 2003
nohup command-line continua ad eseguire la linea di comando anche dopo il logout xwd salva una immagine dello schermo in un file xclock orologio paste file-list legge le linee dei file nella file-list e congiunge le linee corrispondenti sull’output Elisabetta Pace Corso UNIX per principianti 2003
130
Corso UNIX per principianti 2003
Esempio di paste cat ex1 1 one ONE cat ex2 2 two TWO paste ex1 ex2 one two ONE TWO Elisabetta Pace Corso UNIX per principianti 2003
131
Corso UNIX per principianti 2003
Compilatori gcc C e C++ f77 fortran77 f90 fortran90 Elisabetta Pace Corso UNIX per principianti 2003
132
Corso UNIX per principianti 2003
f77 (1) f77 chiama: preprocessore: espande le definizioni delle macro compilatore: crea codice assembler corrispondente alle istruzioni del programma sorgente assembler: crea un “object code” comprensibile per la CPU Elisabetta Pace Corso UNIX per principianti 2003
133
Corso UNIX per principianti 2003
f77 (2) 4. linker: cerca le librerie in cui si trovano le funzioni usate nel mio programma e combina tutti gli “object file” necessari. Per default cerca libc.a ma posso usare un’opzione a f77 per fargli cercare altre librerie. P.es f77 file.f –lm fa il link con libm.a f77 file.f –lgraphic fa il link con libgraphic.a In entrambi questi casi, il linker cerca le librerie in /usr/lib o /lib Elisabetta Pace Corso UNIX per principianti 2003
134
Corso UNIX per principianti 2003
f77 (3) f77 file.f –Ldir1 –Ldir2 –lm cerca libm.c in dir1, poi in dir2 ed infine in /user/lib e /lib Il linker crea un eseguibile chiamato per default a.out e cancella tutti i .o creati Elisabetta Pace Corso UNIX per principianti 2003
135
Corso UNIX per principianti 2003
f77 –o prog f1.o f2.c f3.o non ricrea f1.o e f2.o f77 –O file.f usa un ottimizzatore nella creazione dell’eseguibile (non si puo’ usare quando si voglia eseguire un debug) f77 –g file.f genera informazioni addizionali necessarie al debugger (p.es. una tabella dei simboli che contiene tutti i valori e tutti i tipi di variabili usate nel programma) Elisabetta Pace Corso UNIX per principianti 2003
136
Corso UNIX per principianti 2003
prova.f program prova read (5,*) b a=b+1 print *,a END Elisabetta Pace Corso UNIX per principianti 2003
137
Per compilare un programma fortran
f77 programma.f genera un eseguibile chiamato a.out f77 –o programma programma.f genera un eseguibile chiamato programma f77 –c programma.f genera un object file chiamato programma.o Elisabetta Pace Corso UNIX per principianti 2003
138
Corso UNIX per principianti 2003
make (1) Elisabetta Pace Corso UNIX per principianti 2003
139
Corso UNIX per principianti 2003
make (2) Struttura di un Makefile Target: lista-prerequisiti <TAB> comandi-costruttivi Target e’ il nome del file che dipende dai file elencati nella lista-prerequisiti. comandi-costruttivi sono i comandi per la shell che servono per costruire il Target Elisabetta Pace Corso UNIX per principianti 2003
140
Corso UNIX per principianti 2003
make (3) make esegue i comandi-costruttivi quando la data di modifica di uno o piu’ file nella lista-prerequisiti e’ piu’ recente del Target file Elisabetta Pace Corso UNIX per principianti 2003
141
Corso UNIX per principianti 2003
Makefile (1) prova : prova.o f77 -o prova prova.o prova.o : prova.f qui DEVE esserci un <TAB> f77 -c prova.f clean : ls rm prova.o test : echo "prova" Elisabetta Pace Corso UNIX per principianti 2003
142
Corso UNIX per principianti 2003
make (4) In un Makefile si possono usare delle macro ID=list Dopo questa definizione di macro $ID rappresenta sempre list nel resto del Makefile Elisabetta Pace Corso UNIX per principianti 2003
143
Corso UNIX per principianti 2003
Makefile (2) ML=prova $(ML) : $(ML).o f77 -g -o $(ML) $(ML).o echo "f77 -o prova prova.o" $(ML).o : $(ML).f f77 -g -c $(ML).f echo "f77 -c prova.f" clean : ls rm prova.o test : echo prova Elisabetta Pace Corso UNIX per principianti 2003
144
Corso UNIX per principianti 2003
debug (1) Un debugger simbolico di alto livello permette di analizzare l’esecuzione di un programma in termini di comandi di linguaggio di programmazione, ma anche di vedere cosa succede a livello piu’ basso, permettendo di analizzare l’esecuzione di un programma a livello di istruzioni macchina. Elisabetta Pace Corso UNIX per principianti 2003
145
Corso UNIX per principianti 2003
debug (2) dbx gdb adb sdb debug Elisabetta Pace Corso UNIX per principianti 2003
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.