La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso UNIX per principianti

Presentazioni simili


Presentazione sul tema: "Corso UNIX per principianti"— Transcript della presentazione:

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


Scaricare ppt "Corso UNIX per principianti"

Presentazioni simili


Annunci Google