La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Elisabetta PaceCorso UNIX per principianti 2003 1 Corso UNIX per principianti.

Presentazioni simili


Presentazione sul tema: "Elisabetta PaceCorso UNIX per principianti 2003 1 Corso UNIX per principianti."— Transcript della presentazione:

1 Elisabetta PaceCorso UNIX per principianti Corso UNIX per principianti

2 Elisabetta PaceCorso UNIX per principianti 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 dellIBM, il cui nome e AIX. Lindirizzo del calcolatore IBM di Frascati e axcalc.lnf.infn.it

3 Elisabetta PaceCorso UNIX per principianti Attenzione in UNIX: maiuscolo e minuscolo hanno un diverso significato non esiste il concetto di versione di file

4 Elisabetta PaceCorso UNIX per principianti 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)

5 Elisabetta PaceCorso UNIX per principianti Operazione di login: login: pace password: (la password non viene visualizzata mentre la scriviamo)

6 Elisabetta PaceCorso UNIX per principianti AIX Version 4 (C) Copyrights by IBM and by others 1982, 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)

7 Elisabetta PaceCorso UNIX per principianti Una volta collegati, il sistema scrive una serie di messaggi e poi chiede che tipo di terminale si stia usando (vt100, xterm)

8 Elisabetta PaceCorso UNIX per principianti Per cambiare la password passwd Changing password for 'pace' in cell 'lnf.infn.it'. Old password: New password (RETURN to abort): Retype new password:

9 Elisabetta PaceCorso UNIX per principianti Che cosa e una shell E linterprete dei comandi, cioe linterfaccia tra lutente 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. Linformazione della shell prescelta e contenuta nel file di sistema che contiene tutte le informazioni riguardanti gli utenti.

10 Elisabetta PaceCorso UNIX per principianti Per esempio in tc-shell il completa la parola mentre in altre shell no (p.es. in c-shell)

11 Elisabetta PaceCorso UNIX per principianti 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: /bin/tcsh Change (yes) or (no)? >

12 Elisabetta PaceCorso UNIX per principianti Parleremo solo della tc-shell

13 Elisabetta PaceCorso UNIX per principianti Variabili di shell (locali) set my_variable=value Per verificarne il valore echo $my_variable oppure set (per lelenco di tutte le variabili) Per deassegnare unset my_variable p.es. set history = 50 Attenzione: se prima del segno = ce uno spazio, deve esserci uno spazio anche dopo

14 Elisabetta PaceCorso UNIX per principianti Variabili di ambiente (1) setenv MY_VARIABLE value Per verificarne il valore echo $MY_VARIABILE oppure env oppure setenv (per lelenco di tutte le variabili) Per deassegnare unsetenv my_variable p.es. setenv EDITOR emacs

15 Elisabetta PaceCorso UNIX per principianti Variabili di ambiente (2) setenv dichiara una variabile e la mette nella calling environment di tutti i processi figli

16 Elisabetta PaceCorso UNIX per principianti cat ex1 set formaggio=italiano echo 1 : $formaggio subtest echo 2: $formaggio cat subtest echo 3 : $formaggio set formaggio = francese echo 4 : $formaggio

17 Elisabetta PaceCorso UNIX per principianti source ex1 1 : italiano 3 : 4 : francese 2: italiano

18 Elisabetta PaceCorso UNIX per principianti Ma se avessi sostituito setenv formaggio=italiano in esempio1 il risultato sarebbe source ex1 1 : italiano 3 : italiano 4 : francese 2: italiano

19 Elisabetta PaceCorso UNIX per principianti alias alias alias_name [ |]comando [ |] Per verificarne il valore alias alias_name Per deassegnare unalias my_variable p.es. alias dir ls -a

20 Elisabetta PaceCorso UNIX per principianti Sulle virgolette Chiudere una stringa tra virgolette a sinistra (), fa si che non venga interpretata Allinterno di virgolette doppie (), parametri e comandi vengono sostituiti. Una stringa tra virgolette destre () viene eseguita

21 Elisabetta PaceCorso UNIX per principianti 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

22 Elisabetta PaceCorso UNIX per principianti 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.

23 Elisabetta PaceCorso UNIX per principianti 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

24 Elisabetta PaceCorso UNIX per principianti 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 unaltra shell.

25 Elisabetta PaceCorso UNIX per principianti 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)

26 Elisabetta PaceCorso UNIX per principianti Per uscire dalla tcshell > exit

27 Elisabetta PaceCorso UNIX per principianti 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

28 Elisabetta PaceCorso UNIX per principianti login (se tcshell e la shell di login) dovrebbe contenere i comandi che si vogliono eseguire una sola volta allinizio 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)

29 Elisabetta PaceCorso UNIX per principianti Al completamento della tcshell, il sistema esegue.logout

30 Elisabetta PaceCorso UNIX per principianti 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

31 Elisabetta PaceCorso UNIX per principianti ################################################################# # # 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"

32 Elisabetta PaceCorso UNIX per principianti File inquire operations -d fileIl file e una directory -e fileIl file esiste -f fileIl file e un file normale -o fileLutente e lowner del file -r fileLutente ha il permesso di read -w fileLutente ha il permesso di write -x fileLutente ha il permesso di execute -z fileIl file ha dimensione nulla

33 Elisabetta PaceCorso UNIX per principianti 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"

34 Elisabetta PaceCorso UNIX per principianti ##################################################################### # 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=50 # previous commands to remember. set savehist=50 # number to save across sessions. set ignoreeof # no logout with set noclobber set notify set filec set autolist # correct mispelled commands set correct = cmd set correct = all

35 Elisabetta PaceCorso UNIX per principianti unset autologout set matchbeep=nomatch setenv EDITOR emacs unsetenv http_proxy unsetenv no_proxy setenv PRINTER aen2b1 setenv WWW_HOME

36 Elisabetta PaceCorso UNIX per principianti 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 set prompt="%T %m:%C %# " # tcsh prompt # setenv LPATH /usr/lib:/lib:/usr/lib/X11/extensions:. setenv LHC_ROOT # setenv PATH./:/u1/pace::$PATH endif if ( `uname` == "SunOS" ) then set prompt="`date '+%H:%M:%S' ` `hostname`: >" endif

37 Elisabetta PaceCorso UNIX per principianti ################################################################### # # 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-iso alias ls ls -F alias kk kill -KILL alias edi 'emacs -ms white -cr white -bg black -fg white' endif echo "cshrc ended"

38 Elisabetta PaceCorso UNIX per principianti #set path = (. $path) #set history=50 # previous commands to remember. #set savehist=50 # 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 #set noclobber #set notify #set filec #set autolist #setenv EDITOR vi # # EOF #

39 Elisabetta PaceCorso UNIX per principianti !! ripete lultimo comando !?stringa? Ripete lultimo comando contenente stringa !numero-evento esegue levento numero-evento

40 Elisabetta PaceCorso UNIX per principianti 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)

41 Elisabetta PaceCorso UNIX per principianti man man Commands Reference, Volume 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.

42 Elisabetta PaceCorso UNIX per principianti 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.

43 Elisabetta PaceCorso UNIX per principianti 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.

44 Elisabetta PaceCorso UNIX per principianti 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.

45 Elisabetta PaceCorso UNIX per principianti 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.

46 Elisabetta PaceCorso UNIX per principianti 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

47 Elisabetta PaceCorso UNIX per principianti 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.

48 Elisabetta PaceCorso UNIX per principianti 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.

49 Elisabetta PaceCorso UNIX per principianti 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.

50 Elisabetta PaceCorso UNIX per principianti 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.

51 Elisabetta PaceCorso UNIX per principianti Related Information The apropos command, catman command, more command, whatis command, whereis command

52 Elisabetta PaceCorso UNIX per principianti 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.

53 Elisabetta PaceCorso UNIX per principianti 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 loperazione comando nella nuova finestra; e sempre lultima opzione)

54 Elisabetta PaceCorso UNIX per principianti showrgb fornisce una lista dei colori disponibili

55 Elisabetta PaceCorso UNIX per principianti 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

56 Elisabetta PaceCorso UNIX per principianti Come vedere tutti i processi attivi ps -ef Le colonne delloutput ottenuto hanno il seguente significato 1.login name 2.processID 3.processID del processo padre 4.processor utilization for scheduling 5.data di inizio del processo 6.control terminal del processo 7.tempo di CPU consumatodal processo 8.nome del comando e suoi argomenti

57 Elisabetta PaceCorso UNIX per principianti Come uccidere un comando in esecuzione kill – KILL proc-id

58 Elisabetta PaceCorso UNIX per principianti Caratteri per nomi di files Consiglio di usare qualsiasi lettera maiuscola o minuscola, numeri, _, -,..

59 Elisabetta PaceCorso UNIX per principianti File invisibili Si chiamano file invisibili quelli con nome che inizi con il carattere. perche nomralmente il comando ls non li mostra.

60 Elisabetta PaceCorso UNIX per principianti Caratteri speciali da NON usare nei nomi dei files: & ; | * ? [ ] ( ) $ { } ^ # \ / % ! ~

61 Elisabetta PaceCorso UNIX per principianti 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 /.

62 Elisabetta PaceCorso UNIX per principianti path names assoluti: iniziano per / (p.es. /exp/esperimento/user/utente/miofile) path names relativi: non iniziano per / (p.es. miofile)

63 Elisabetta PaceCorso UNIX per principianti current directory (. ) o directory di lavoro parent directory (.. ) home directory (˜,˜username)

64 Elisabetta PaceCorso UNIX per principianti 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).

65 Elisabetta PaceCorso UNIX per principianti 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

66 Elisabetta PaceCorso UNIX per principianti 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.

67 Elisabetta PaceCorso UNIX per principianti 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.

68 Elisabetta PaceCorso UNIX per principianti comandi AFS klog klog –h klog –cell nome-cella –principal username tokens

69 Elisabetta PaceCorso UNIX per principianti ACL per AFS In AFS, laccesso 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.

70 Elisabetta PaceCorso UNIX per principianti AFS definisce i seguenti diritti di accesso: r read w write k lock l lookup i insert d delete a admin ACL

71 Elisabetta PaceCorso UNIX per principianti fs listacl per vedere quale sia lACL di una certa directory fs setacl [userid|protectioGroup] accessRights per cambiare un ACL

72 Elisabetta PaceCorso UNIX per principianti ACL e permessi Unix I mode bits dello Unix di group e word vengono ignorati, mentre quelli dellowner vengono esaminati se ce lassenso dellACL 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 nellACL il permesso di read era selezionato. Non ce un permesso ACL corrispodente direttamente al mode bit execute (x): per eseguire un file AFS, lutente deve avere il permesso di read (r) e lookup (l) nellACL della directory in cui si trova il file.

73 Elisabetta PaceCorso UNIX per principianti 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

74 Elisabetta PaceCorso UNIX per principianti 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 lelenco degli utenti di un protection group) pts listowned usertwo (per elencare i protection groups posseduti)

75 Elisabetta PaceCorso UNIX per principianti 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 luso di spazio attuale e luso di quota) vos examine user.usetwo (per esaminare luso di un certo volume) Checking volume quotas

76 Elisabetta PaceCorso UNIX per principianti LNF AFS cell environment Home directory structure: private public

77 Elisabetta PaceCorso UNIX per principianti Leggere la pagina WEB del centro di calcolo per ulteriori informazioni su AFS

78 Elisabetta PaceCorso UNIX per principianti 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)

79 Elisabetta PaceCorso UNIX per principianti 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)

80 Elisabetta PaceCorso UNIX per principianti ls ancoraUnaDir file1 file2 ls -F ancoraUnaDir/ file1 file2 ls -l total 8 drwxr-xr-x 2 pace finuda 2048 May 07 12:40 ancoraUnaDir -rw-r--r-- 1 pace finuda 32 May 07 12:39 file1 -rw-r--r-- 1 pace finuda 40 May 07 12:40 file2 ls -la total 34 drwxr-xr-x 3 pace finuda 2048 May 07 14:29. drwxr-xr-x 25 pace finuda May 07 12:39.. -rw-r--r-- 1 pace finuda 28 May 07 15:04.file3 drwxr-xr-x 2 pace finuda 2048 May 07 12:40 ancoraUnaDir -rw-r--r-- 1 pace finuda 32 May 07 12:39 file1 -rw-r--r-- 1 pace finuda 40 May 07 12:40 file2

81 Elisabetta PaceCorso UNIX per principianti ls -laFs total 17 2 drwxr-xr-x 3 pace finuda 2048 May 07 14:29./ 10 drwxr-xr-x 25 pace finuda May 07 12:39../ 1 -rw-r--r-- 1 pace finuda 28 May 07 15:04.file3 2 drwxr-xr-x 2 pace finuda 2048 May 07 12:40 ancoraUnaDir/ 1 -rw-r--r-- 1 pace finuda 32 May 07 12:39 file1 1 -rw-r--r-- 1 pace finuda 40 May 07 12:40 file2 mode bits (il primo carattere Indica il tipo del file) proprietario gruppo dimensione data ultimo accesso nome

82 Elisabetta PaceCorso UNIX per principianti pwd (indica la working directory) (print working directory) cd directory (cambio working directory) mkdir dirname (creo una directory) du disk usage pushd popd comandi relativi alle directory

83 Elisabetta PaceCorso UNIX per principianti 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.

84 Elisabetta PaceCorso UNIX per principianti 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).

85 Elisabetta PaceCorso UNIX per principianti ln filename nomelinkHard ln –s filename nomelinkSoft ls –i per vedere gli i-node dei file

86 Elisabetta PaceCorso UNIX per principianti 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.

87 Elisabetta PaceCorso UNIX per principianti axcalc:~/corsoUnix> ls -l total 38 drwxr-xr-x 2 pace finuda 2048 May 07 12:40 ancoraUnaDir/ -rw-r--r-- 1 pace finuda 72 May 07 15:26 file -rw-r--r-- 1 pace finuda 32 May 07 12:39 file1 -rw-r--r-- 1 pace finuda 72 May 07 15:26 file10 -rw-r--r-- 1 pace finuda 72 May 07 15:26 file2 -rw-r--r-- 1 pace finuda May 07 15:16 qq.qq axcalc:~/corsoUnix> ln file1 file1LinkHard axcalc:~/corsoUnix> ln -s file1 file1LinkSoft axcalc:~/corsoUnix> ls -l total 42 drwxr-xr-x 2 pace finuda 2048 May 07 12:40 ancoraUnaDir/ -rw-r--r-- 1 pace finuda 72 May 07 15:26 file -rw-r--r-- 2 pace finuda 32 May 07 12:39 file1 -rw-r--r-- 1 pace finuda 72 May 07 15:26 file10 -rw-r--r-- 2 pace finuda 32 May 07 12:39 file1LinkHard lrwxr-xr-x 1 pace finuda 5 May 08 14:21 -> file1 -rw-r--r-- 1 pace finuda 72 May 07 15:26 file2 -rw-r--r-- 1 pace finuda May 07 15:16 qq.qq

88 Elisabetta PaceCorso UNIX per principianti Redirezione di input, output e error log > redireziona loutput standard >> concatena loutput standard ad un file esistente >! sovrascrive un file esistente con loutput standard < operatore di redirezione dellinput standard >& redirezione delloutput standard e dellerror standard

89 Elisabetta PaceCorso UNIX per principianti Nella tcshell lo standard error NON puo essere rediretto separateente dalloutput > cat x cat: no such file > cat y this is y > cat x y >& hold cat: no such file this is y (il file x non esiste, mentre il file y contiene la sola riga this is y)

90 Elisabetta PaceCorso UNIX per principianti 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)

91 Elisabetta PaceCorso UNIX per principianti Come appendere un file allaltro 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

92 Elisabetta PaceCorso UNIX per principianti cat > filename1 Stringhe CTRL+D per creare il file filename1 cat >> filename1 Stringhe CTRL+D per appendere al file filename1

93 Elisabetta PaceCorso UNIX per principianti grep grep stringa filename1 (visualizza le righe di filename1 contenenti stringa)

94 Elisabetta PaceCorso UNIX per principianti sort sort filename1 > filename2 ordina filename1 e lo scrive in filename2

95 Elisabetta PaceCorso UNIX per principianti uniq filename1 cancella due righe adiacenti uguali in filename1

96 Elisabetta PaceCorso UNIX per principianti Come muovere un file mv filename1 filename2 (per rinominare un file) cp filename1 filename2 (per copiare un file) cp –i per avere la conferma

97 Elisabetta PaceCorso UNIX per principianti 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)

98 Elisabetta PaceCorso UNIX per principianti 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)

99 Elisabetta PaceCorso UNIX per principianti 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

100 Elisabetta PaceCorso UNIX per principianti 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)

101 Elisabetta PaceCorso UNIX per principianti Come modificare un file vi emacs

102 Elisabetta PaceCorso UNIX per principianti vi: comandi principali (1) iinserisci testo prima del cursore ainserisci testo dopo il cursore Ainserisci testo alla fine della riga Iinserisci testo allinizio della riga ddcancella la riga corrente xcancella il carattere sotto il cursore rsostituisce il carattere sotto il cursore passo dalla modalita testo alla modalita comando visuale /string cerca string in avanti / cerca ancora string in avanti :viusagelista tutti icomandi vi :viusage comhelp breve del comando com :qesce dalleditor :q!esce dalleditor senza salvare le modifiche :wqsalva le modifiche ed esce dalleditor

103 Elisabetta PaceCorso UNIX per principianti vi: comandi principali (2) frecce per muoversi nella pagina, l o freccia-destrasposta il cursore a destra h o freccia-a-sinistrasposta il cursore a sinistra J o freccia-in-bassosposta il cursore in basso K o freccia-in-altosposta il cursore in alto

104 Elisabetta PaceCorso UNIX per principianti emacs Editor orientato alla pagina

105 Elisabetta PaceCorso UNIX per principianti sed editor non interattivo p.es. sed s/b/B/g file-name sostituisce tutte le b con B nel file file-name

106 Elisabetta PaceCorso UNIX per principianti awk Cerca e processa dei pattern in un file p.es. awk –F {print $1 + $2} file-name

107 Elisabetta PaceCorso UNIX per principianti 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

108 Elisabetta PaceCorso UNIX per principianti [...] 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)

109 Elisabetta PaceCorso UNIX per principianti echo echo stringa scrive i suoi argomenti sullo standard output

110 Elisabetta PaceCorso UNIX per principianti Piping di operazioni Permette di eseguire piu operazioni in sequenza e di usare loutput della operazione predente come input della operazione successiva p.es. ls –l | grep May

111 Elisabetta PaceCorso UNIX per principianti date ; who | more (date ; who) | more date ; du > file10 (date ; du) > file10

112 Elisabetta PaceCorso UNIX per principianti date

113 Elisabetta PaceCorso UNIX per principianti 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)

114 Elisabetta PaceCorso UNIX per principianti Un sistema di posta elettronica: pine pine

115 Elisabetta PaceCorso UNIX per principianti Per vedere file postscript: gv gv postscripFile

116 Elisabetta PaceCorso UNIX per principianti Per vedere file pdf: acroread acroread pdfFile

117 Elisabetta PaceCorso UNIX per principianti Per vedere file grafici: xv xv nomefilegrafico

118 Elisabetta PaceCorso UNIX per principianti Per convertire file grafici display convert

119 Elisabetta PaceCorso UNIX per principianti 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)

120 Elisabetta PaceCorso UNIX per principianti lprm (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)

121 Elisabetta PaceCorso UNIX per principianti 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

122 Elisabetta PaceCorso UNIX per principianti Comandi principali per ftp pwdnome della working dir remota lslista della working dir remota get rfile lfilecopia il file remoto rfile nel file locale lfile mget put lfile rfile copia il file locale lfile nel file remoto rfile mput ascii|binaryseleziona il modo di trasferimento cd [rdir]cambia la working dir sulla macchina remota lcd [ldir]cambia la working dir sulla macchina locale

123 Elisabetta PaceCorso UNIX per principianti Login remoto sicuro: ssh ssh ssh password: scp

124 Elisabetta PaceCorso UNIX per principianti ASIS ASIS e un gruppo di programmi di utilita generale, installati anche a Frascati su tutte le macchine UNIX. Il link alla documentazione e

125 Elisabetta PaceCorso UNIX per principianti

126 Elisabetta PaceCorso UNIX per principianti Come creare una propria pagina WEB visibile anche fuori dai LNF Da un qualsiasi WEB browser, con lindirizzo si accede al file ˜user/www/Welcome.html.

127 Elisabetta PaceCorso UNIX per principianti 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 limmagine di una finestra xpaint programma simile a Paint ispell analizzatore ortografico interattivo

128 Elisabetta PaceCorso UNIX per principianti 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 lidentificatore di sistema di un utente specificato

129 Elisabetta PaceCorso UNIX per principianti 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 sulloutput

130 Elisabetta PaceCorso UNIX per principianti Esempio di paste cat ex1 1 one ONE cat ex2 2 two TWO paste ex1 ex2 1 2 one two ONE TWO

131 Elisabetta PaceCorso UNIX per principianti Compilatori gcc C e C++ f77fortran77 f90 fortran90

132 Elisabetta PaceCorso UNIX per principianti f77 (1) f77 chiama: 1. preprocessore: espande le definizioni delle macro 2. compilatore: crea codice assembler corrispondente alle istruzioni del programma sorgente 3. assembler: crea un object code comprensibile per la CPU

133 Elisabetta PaceCorso UNIX per principianti 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 unopzione 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

134 Elisabetta PaceCorso UNIX per principianti 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

135 Elisabetta PaceCorso UNIX per principianti 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 delleseguibile (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)

136 Elisabetta PaceCorso UNIX per principianti prova.f program prova read (5,*) b a=b+1 print *,a END

137 Elisabetta PaceCorso UNIX per principianti 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

138 Elisabetta PaceCorso UNIX per principianti make (1)

139 Elisabetta PaceCorso UNIX per principianti make (2) Struttura di un Makefile Target: lista-prerequisiti 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

140 Elisabetta PaceCorso UNIX per principianti 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

141 Elisabetta PaceCorso UNIX per principianti Makefile (1) prova : prova.o f77 -o prova prova.o prova.o : prova.f qui DEVE esserci un f77 -c prova.f clean : ls rm prova.o test : echo "prova"

142 Elisabetta PaceCorso UNIX per principianti 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

143 Elisabetta PaceCorso UNIX per principianti 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

144 Elisabetta PaceCorso UNIX per principianti debug (1) Un debugger simbolico di alto livello permette di analizzare lesecuzione di un programma in termini di comandi di linguaggio di programmazione, ma anche di vedere cosa succede a livello piu basso, permettendo di analizzare lesecuzione di un programma a livello di istruzioni macchina.

145 Elisabetta PaceCorso UNIX per principianti debug (2) dbx gdb adb sdb debug


Scaricare ppt "Elisabetta PaceCorso UNIX per principianti 2003 1 Corso UNIX per principianti."

Presentazioni simili


Annunci Google