c T.Besanon (v14.0.1025)
Administration UNIX
1 / 918
N de transparent
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 3 6 9 12 15 20 22 23 24 25 26 27 30 32 33 34 35 37 47 48 49 50 52 57 63 65 66 67 68 81 82 83 84 85 86 87 89 90 91 92 93 100 101 102 123 124 125 129 130 134 135
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Chapitre 7 1 2 3 4 5 6 Chapitre 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Notions de rpertoire sous UNIX . . . . . . . . . . . . . . . . . Notions de chemins absolus et relatifs . . . . . . . . . . . . . . Positionnement dans larborescence : cd . . . . . . . . . . . . Position dans larborescence : pwd . . . . . . . . . . . . . . . Liste des objets : ls . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Liste des objets : dir.exe) . . . . . . . . . . . . Cration de rpertoires : mkdir . . . . . . . . . . . . . . . . (Windows : : cration de rpertoires : md.exe, mkdir.exe) . Dplacer et renommer des objets : mv . . . . . . . . . . . . . . (Windows : : dplacer des objets : move.exe) . . . . . . . . . (Windows : : renommer des objets : ren.exe, rename.exe) Duplication dun objet : cp . . . . . . . . . . . . . . . . . . . . (Windows : : Duplication dun objet : copy.exe) . . . . . . . . (Windows : : Duplication dun objet : xcopy.exe) . . . . . . . Destruction dun objet : rm . . . . . . . . . . . . . . . . . . . (Windows : : Destruction dun objet : del.exe) . . . . . . . . . Suppression de rpertoires : rmdir . . . . . . . . . . . . . . (Windows : : suppression dun rpertoire : rd.exe) . . . . . . . Liens sur objets . . . . . . . . . . . . . . . . . . . . . . . . . Lien hard sur objets : ln . . . . . . . . . . . . . . . . . . . . Lien symbolique sur objets : ln -s . . . . . . . . . . . . . . . (Windows : : raccourci, shortcut) . . . . . . . . . . . . . . . . . (Windows : : lien symbolique : junction) . . . . . . . . . . . . . Gestion de versions de chiers . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . SCCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUBVERSION . . . . . . . . . . . . . . . . . . . . . . . . . . GIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de manipulation de base dobjets UNIX (suite) . Afchage du contenu dun chier texte : cat . . . . . . . . . . (Windows : : Afchage du contenu dun chier texte : type.exe) Afchage du contenu dun chier texte : tac . . . . . . . . . . Afchage du contenu dun chier texte : nl . . . . . . . . . . . Afchage du contenu dun chier texte : more . . . . . . . . . . (Windows : : Afchage du contenu dun chier texte : more.exe) Afchage du contenu dun chier texte : less . . . . . . . . . . Comptage de lignes dans un chier : wc . . . . . . . . . . . . . Comparaison de deux chiers : diff . . . . . . . . . . . . . . Comparaison de deux chiers binaires : cmp . . . . . . . . . . Extraction des premires lignes de chiers : head . . . . . . . . Extraction des dernires lignes de chiers : tail . . . . . . . . Extraction de colonnes de chiers : cut . . . . . . . . . . . . . Tri dun chier : sort . . . . . . . . . . . . . . . . . . . . . . (Windows : : Tri dun chier : sort.exe) . . . . . . . . . . . . Elimination des lignes identiques dun chier : uniq . . . . . . . Cration dun chier vide : touch . . . . . . . . . . . . . . . . Modication des dates dun objet : touch . . . . . . . . . . . . Cration dobjets temporaires : /tmp . . . . . . . . . . . . . . (Windows : : variable temp, rpertoire temp) . . . . . . . . . . Manipulation des noms dobjets : basename . . . . . . . . . . Nature dun objet : file . . . . . . . . . . . . . . . . . . . . Afchage du contenu dun objet binaire : od . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136 143 150 151 152 168 169 172 173 180 181 182 187 188 189 195 196 197 198 203 210 217 221 225 226 227 228 229 235 236 237 238 239 240 241 242 244 245 246 247 252 253 254 257 259 267 268 271 272 274 276 277 279 281
Commande de traduction de caractres : tr . . . . . . . . . . . . Information sur le remplissage des disques : df . . . . . . . . . . (Windows : : Information sur le remplissage des disques : df.exe) Calcul de la place disque occupe : du . . . . . . . . . . . . . . (Windows : : Calcul de la place disque occupe : diruse.exe) . (Windows : : Calcul de la place disque occupe : diskuse.exe) Compression de chiers : compress, uncompress, zcat . . Compression de chiers : gzip, gunzip, gzcat . . . . . . . Compression de chiers : bzip2, bunzip2, bzcat . . . . . . Compression de chiers : 7za . . . . . . . . . . . . . . . . . . Compression de chiers : temps de compression . . . . . . . . . . Compression de chiers : place occupe . . . . . . . . . . . . . . Archivage dobjets : tar . . . . . . . . . . . . . . . . . . . . . Commandes issues du monde Windows : zip, unzip . . . . . . (Windows : : PowerArchiver Command Line) . . . . . . . . . . . . (Windows : : 7-ZIP) . . . . . . . . . . . . . . . . . . . . . . . . Impression : lpr, lpq, lprm . . . . . . . . . . . . . . . . . . Impression de chiers texte : a2ps . . . . . . . . . . . . . . . . Impression de chiers texte : enscript . . . . . . . . . . . . . Utilitaires pour disquettes PC : mtools, mcopy . . . . . . . . . Utilisation de clefs USB . . . . . . . . . . . . . . . . . . . . . . Attributs des objets UNIX . . . . . . . . . . . . . . . . . . . . Dnition des droits daccs dun objet . . . . . . . . . . . . . . . (Windows : : Droits NTFS) . . . . . . . . . . . . . . . . . . . . . Changements des droits daccs dun objet : chmod . . . . . . . Droits interdits par dfaut lors de cration dobjets : umask . . . . Rgler le umask de faon permanente . . . . . . . . . . . . . . . Attribut spcial de chier : bit setuid . . . . . . . . . . . . . . . . Attribut spcial de chier : bit setgid . . . . . . . . . . . . . . . . Attribut spcial de rpertoire : sticky bit . . . . . . . . . . . . . . . Attributs de date dun objet : mtime, atime, ctime . . . . . . . . . . Consultation de lhorloge : date . . . . . . . . . . . . . . . . . Modication des dates dun objet : touch . . . . . . . . . . . . . Expressions rgulires et commandes UNIX associes . . . . . Expressions rgulires . . . . . . . . . . . . . . . . . . . . . . . Contraintes sur des valeurs de caractres . . . . . . . . . . . . . Contraintes sur les positions de caractres . . . . . . . . . . . . . Rptitions dune contrainte . . . . . . . . . . . . . . . . . . . . Choix entre regexps . . . . . . . . . . . . . . . . . . . . . . . . Manipuler les caractres spciaux . . . . . . . . . . . . . . . . . Principes fondamentaux des regexps . . . . . . . . . . . . . . . Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recherche de regexp dans un chier : grep . . . . . . . . . . . Remplacement de regexp dans un chier : sed . . . . . . . . . . Commande GNU grep . . . . . . . . . . . . . . . . . . . . . . . Remplacement de tabulations par des espaces : expand . . . . . Remplacement despaces par des tabulations : unexpand . . . . Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . Recherche dobjets : find . . . . . . . . . . . . . . . . . . . Introduction la commande find . . . . . . . . . . . . . . . . Zones de recherche . . . . . . . . . . . . . . . . . . . . . . . . Option pour rechercher sur un nom : -name . . . . . . . . . . . Option pour rechercher sur un nom : -iname . . . . . . . . . . . Option pour rechercher sur des droits daccs : -perm . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
283 288 293 295 301 302 303 305 307 309 311 314 318 326 329 330 331 333 335 337 338 349 350 356 358 362 371 372 376 380 385 388 389 391 392 396 402 403 406 407 411 414 423 429 451 454 457 459 460 461 463 466 467 468
6 7 8 9 10 11 12 13 14 15 16 17 18 Chapitre 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Chapitre 13 1 2 3 4 5 6 7 8
Option pour rechercher sur le propritaire dobjets : -user . . . . . . . . . . . . Option pour rechercher sur un objet sans propritaire : -nouser . . . . . . . . . Option pour rechercher sur le groupe dobjets : -group . . . . . . . . . . . . . Option pour rechercher sur un objet sans groupe : -nogroup . . . . . . . . . . Option pour rechercher sur types dobjets : -type . . . . . . . . . . . . . . . . Option pour rechercher sur des tailles dobjets : -size . . . . . . . . . . . . . . Options pour rechercher sur des dates : -atime, -mtime, -ctime, -newer Option de recherche des liens dun inode : -inum . . . . . . . . . . . . . . . . Composition doptions : ET -a, OU -o . . . . . . . . . . . . . . . . . . . . . . Options pour afchage du nom des objets trouvs : -print, -ls . . . . . . . . Option dexcution dune commande : -exec . . . . . . . . . . . . . . . . . . . Confusion courante : ls versus find . . . . . . . . . . . . . . . . . . . . . . Ordre dafchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes UNIX rseau de base . . . . . . . . . . . . . . . . . . . . . . . . Nom de machine : hostname . . . . . . . . . . . . . . . . . . . . . . . . . . Nom de systme, de machine : uname . . . . . . . . . . . . . . . . . . . . . . Test de connectivit : ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Test de connectivit : ping.exe) . . . . . . . . . . . . . . . . . . Tests de connectivit : traceroute . . . . . . . . . . . . . . . . . . . . . . (Windows : : Test de connectivit : tracert.exe . . . . . . . . . . . . . . . . Transfert de chiers : ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Transfert de chiers : ftp.exe) . . . . . . . . . . . . . . . . . . . Lancement de commande distance : protocole SSH, ssh . . . . . . . . . . . . (Windows : : Connexion distance interactive SSH : putty.exe) . . . . . . . . Recopie de chiers distance : protocole SSH, scp . . . . . . . . . . . . . . . . (Windows : : Recopie de chiers distance : winscp.exe) . . . . . . . . . . . Point dentre rseau de la Formation Permanente . . . . . . . . . . . . . . . . . Liste des utilisateurs connects : users . . . . . . . . . . . . . . . . . . . . . Liste des utilisateurs connects : who . . . . . . . . . . . . . . . . . . . . . . . Liste des utilisateurs connects : w . . . . . . . . . . . . . . . . . . . . . . . . . Navigation Web : URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur Web : lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur Web : netscape . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur Web : mozilla . . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur Web : firefox . . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur Web : opera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pseudo navigateur Web : wget . . . . . . . . . . . . . . . . . . . . . . . . . . Pseudo navigateur Web : curl . . . . . . . . . . . . . . . . . . . . . . . . . . Courrier lectronique la Formation Permanente . . . . . . . . . . . . . . . . . Courrier lectronique : redirection . . . . . . . . . . . . . . . . . . . . . . . . . Courrier lectronique : mail, mailx, Mail . . . . . . . . . . . . . . . . . . . Courrier lectronique : netscape . . . . . . . . . . . . . . . . . . . . . . . . Courrier lectronique : mozilla . . . . . . . . . . . . . . . . . . . . . . . . . Courrier lectronique : thunderbird . . . . . . . . . . . . . . . . . . . . . . Courrier lectronique : webmail de la Formation Permanente . . . . . . . . . . . . Pratique du Bourne shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Afchage dune chane de caractres : echo . . . . . . . . . . . . . . . . . . . Principe dexcution par le shell dune commande UNIX . . . . . . . . . . . . . . Caractres spciaux du shell : mtacaractres . . . . . . . . . . . . . . . . . . . Mtacaractres tabulation, espace . . . . . . . . . . . . . . . . . . . . . . . . . Mtacaractre retour charriot . . . . . . . . . . . . . . . . . . . . . . . . . . . Mtacaractre point-virgule . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mtacaractres parenthses ( ) . . . . . . . . . . . . . . . . . . . . . . . . . Contrle des commandes lances : &, fg, bg, kill, C, Z . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
470 471 472 473 474 476 478 480 483 485 487 488 493 494 495 496 498 500 501 504 505 508 511 513 514 515 517 518 519 520 521 523 524 525 526 529 530 532 534 536 537 538 539 540 557 558 559 561 562 563 564 565 567 570
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Chapitre 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Contrle des processus : ps . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrle des processus : kill . . . . . . . . . . . . . . . . . . . . . . . . . Contrle des processus : top . . . . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Contrle des processus : taskmgr.exe) . . . . . . . . . . . . . . . Mtacaractres : , ", \ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File descriptors : stdin, stdout,stderr . . . . . . . . . . . . . . . . . . Mtacaractres de redirection : <, >, >>, <<, , |, 2>, >& . . . . . . . . . . . Redirection du le descriptor 0 : mtacaractre < . . . . . . . . . . . . . . . . Redirection du le descriptor 1 : mtacaractre > . . . . . . . . . . . . . . . . Redirection du le descriptor 1 : mtacaractre . . . . . . . . . . . . . . . . Redirection du le descriptor 1 : mtacaractre | . . . . . . . . . . . . . . . . Redirection du le descriptor 2 : mtacaractre 2> . . . . . . . . . . . . . . . . Ordre des redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rsum sur les redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . Protection contre lcrasement de chiers lors de redirection . . . . . . . . . . . Trou noir pour redirection : /dev/null . . . . . . . . . . . . . . . . . . . . Mtacaractres : *, ?, [], [] . . . . . . . . . . . . . . . . . . . . . . . . . Interprtation de la ligne de commande et lancement dune commande par le shell Mtacaractre $ et variables du shell . . . . . . . . . . . . . . . . . . . . . . Rappel : visibilit des variables du langage C . . . . . . . . . . . . . . . . . . . Visibilit des variables du shell : variables denvironnement . . . . . . . . . . . . Variable denvironnement PATH . . . . . . . . . . . . . . . . . . . . . . . . . Rgler son PATH de faon permanente . . . . . . . . . . . . . . . . . . . . . Variable denvironnement TERM . . . . . . . . . . . . . . . . . . . . . . . . . Commande stty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Variables denvironnement) . . . . . . . . . . . . . . . . . . . . . Se dconnecter du shell : exit, Ctrl-D . . . . . . . . . . . . . . . . . . . Shell de login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell interactif Shell non interactif . . . . . . . . . . . . . . . . . . . . . . . Fichiers dinitialisation pour bash . . . . . . . . . . . . . . . . . . . . . . . . Fichiers dinitialisation pour sh . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers dinitialisation pour tcsh . . . . . . . . . . . . . . . . . . . . . . . . Fichiers dinitialisation pour csh . . . . . . . . . . . . . . . . . . . . . . . . . Compltion interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Windows : : Compltion interactive) . . . . . . . . . . . . . . . . . . . . . . . Programmation en Bourne shell . . . . . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Convention de nommage dun shell script . . . . . . . . . . . . . . . . . . . . Excution dun shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure dun shell script : dsignation de la syntaxe . . . . . . . . . . . . . . . Structure dun shell script : commentaires . . . . . . . . . . . . . . . . . . . . Erreur de mauvaise spcication de linterprteur . . . . . . . . . . . . . . . . Debugging dun shell script : mthode intuitive . . . . . . . . . . . . . . . . . . Debugging dun shell script : set -x . . . . . . . . . . . . . . . . . . . . . . Code de retour dun shell script : exit . . . . . . . . . . . . . . . . . . . . . Variables dun shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables de passage de paramtres un shell script : $1 $9 . . . . . . . . . Liste des paramtres dun shell script : $*, $@ . . . . . . . . . . . . . . . . . Variable prdnie $ ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable prdnie $$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes internes du shell : builtins . . . . . . . . . . . . . . . . . . . . . . Commandes internes du shell : type . . . . . . . . . . . . . . . . . . . . . . Commande dafchage de chaines de caractres : builtin echo, /bin/echo . Entre interactive : read . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
581 584 588 590 591 601 607 608 611 613 615 619 621 622 624 625 627 629 638 648 650 662 666 668 674 678 679 680 681 682 689 690 692 693 694 695 696 697 698 700 701 703 706 707 709 714 715 723 725 729 732 734 735 742
Structure if - then - else . . . . . . . . . . . . . Structure case . . . . . . . . . . . . . . . . . . . . Commande test . . . . . . . . . . . . . . . . . . . Commande [ . . . . . . . . . . . . . . . . . . . . . Erreur de dbutant au sujet de la commande test . . . . Du bon usage des guillemets . . . . . . . . . . . . . Structure de boucles : while, for, until . . . . . Techniques classiques de boucle for . . . . . . . . . . Contrle du ux dexcution : break, continue . . Enregistrement de session texte : commande script Pratique de BASH (Bourne Again SHell) . . . . . . . Problmes avec le Bourne SHELL . . . . . . . . . . . Raccourcis clavier . . . . . . . . . . . . . . . . . . . Caractre . . . . . . . . . . . . . . . . . . . . . . Excution de commandes . . . . . . . . . . . . . . . Variable numrique . . . . . . . . . . . . . . . . . . Caractres { } . . . . . . . . . . . . . . . . . . . . . Variable de type tableau . . . . . . . . . . . . . . . . Variable denvironnement PS1 . . . . . . . . . . . . . Autres variables spciales . . . . . . . . . . . . . . . Variables paramtres . . . . . . . . . . . . . . . . . Scripts BASH . . . . . . . . . . . . . . . . . . . . . Programmation en langage AWK . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . Syntaxe de la commande awk . . . . . . . . . . . . Structure dun programme AWK . . . . . . . . . . . . Variables prdnies de AWK . . . . . . . . . . . . . Masques sous AWK . . . . . . . . . . . . . . . . . . Oprateurs de AWK . . . . . . . . . . . . . . . . . . Instructions de AWK . . . . . . . . . . . . . . . . . . Principales fonctions prdnies . . . . . . . . . . . . Exemples . . . . . . . . . . . . . . . . . . . . . . . Annexe 1 . . . . . . . . . . . . . . . . . . . . . . . Langage PERL . . . . . . . . . . . . . . . . . . . . Avant-propos . . . . . . . . . . . . . . . . . . . . . Prsentation . . . . . . . . . . . . . . . . . . . . . . Documentations . . . . . . . . . . . . . . . . . . . . Extensions PERL : les modules sur CPAN . . . . . . . Le module strict, fonction my . . . . . . . . . . . Structure dun script PERL . . . . . . . . . . . . . . . Variables, criture $ . . . . . . . . . . . . . . . . Oprations sur les variables numriques . . . . . . . . Chaines de caractres entre apostrophes . . . . . . . Chaines de caractres entre guillemets . . . . . . . . Oprations sur les variables chaines de caractres . . . Afchage de chaines : printf(), sprintf() . . Variables listes, criture @ . . . . . . . . . . . . . Oprations sur les listes . . . . . . . . . . . . . . . . Liste ARGV des paramtres du script PERL . . . . . . Listes associatives, criture % . . . . . . . . . . . Oprations sur les listes associatives . . . . . . . . . Liste associative ENV des variables denvironnement . Expression boolenne . . . . . . . . . . . . . . . . . Structure de contrle if / else . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
745 749 754 770 775 776 783 790 793 795 798 799 801 802 804 807 808 809 810 814 815 816 817 818 819 820 821 822 823 824 826 827 829 830 831 832 836 839 842 845 846 847 849 850 852 853 854 855 859 861 864 866 867 868
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
Structure de controle while . . . . . . . . . . . . . . . . . . . . . Structure de controle until . . . . . . . . . . . . . . . . . . . . . Structure de controle for . . . . . . . . . . . . . . . . . . . . . . . Structure de controle foreach . . . . . . . . . . . . . . . . . . . Structure de controle last, next . . . . . . . . . . . . . . . . . . Oprateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . Oprateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . . Oprateurs sur les chiers . . . . . . . . . . . . . . . . . . . . . . . File descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . File descriptor : entre standard, STDIN . . . . . . . . . . . . . . . File descriptor : sortie standard, STDOUT . . . . . . . . . . . . . . . File descriptor : sortie erreur, STDERR . . . . . . . . . . . . . . . . Lecture / Ecriture dans un chier : open(), close(), die() . . . Lecture / Ecriture via des pipes . . . . . . . . . . . . . . . . . . . . Supprimer un chier : unlink() . . . . . . . . . . . . . . . . . . Renommer un chier : rename() . . . . . . . . . . . . . . . . . . Crer un lien symbolique : symlink(), readlink() . . . . . . Modier les proprits dun chier : chmod(), chown(), chgrp() Crer et supprimer un rpertoire : mkdir(), rmdir() . . . . . . . Expressions rgulires PERL . . . . . . . . . . . . . . . . . . . . . Dcoupage dune chaine via une expression rgulire : split() . . Opration inverse de split : join() . . . . . . . . . . . . . . . Dclaration dune fonction . . . . . . . . . . . . . . . . . . . . . . . Invocation dune fonction . . . . . . . . . . . . . . . . . . . . . . . . Paramtres passs la fonction . . . . . . . . . . . . . . . . . . . . Dclaration dune variable locale dans une fonction : my . . . . . . . . Code de retour : return . . . . . . . . . . . . . . . . . . . . . . . Module Spreadsheet : :WriteExcel . . . . . . . . . . . . . . . . . Modules Text : :CSV , Text : :CSV : :Simple . . . . . . . . . . . Module Cong : :IniFiles . . . . . . . . . . . . . . . . . . . . . . Modules DBI , DBD : :Mysql , DBD : :Pg . . . . . . . . . . . Module Template . . . . . . . . . . . . . . . . . . . . . . . . . Module Data : :Dumper . . . . . . . . . . . . . . . . . . . . . . Installer un module PERL de CPAN . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
871 872 873 874 875 876 877 878 879 880 883 884 885 892 893 894 895 896 897 898 905 906 907 908 909 910 911 912 913 914 915 916 917 918
Chapitre 1
c T.Besanon (v14.0.1025)
Administration UNIX
2 / 918
Un systme dexploitation est une application comme une autre en gros. Par exemple, noyau LINUX version REDHAT 2.6.18-164 : 43682 chiers dont
18205 chiers .c 17699 chiers .h 1805 chiers .S
Les missions dun systme dexploitation sont : mise disposition de ressources matrielles : espace disque, temps dexcution sur le microprocesseur central, espace mmoire, etc. partage quitable de ces ressources entre les utilisateurs pour atteindre le but de systme multi-utilisateurs
c T.Besanon (v14.0.1025)
Administration UNIX
3 / 918
UNIX est un systme multi-tches. UNIX permet une excution concurrente et indpendante de plusieurs applications inities par plusieurs utilisateurs. Concurrence : les applications demandent laccs des ressources partages (processeur, mmoire, disques durs, etc.). Un chef dorchestre arbitre les demandes (on appelle cela un ordonnanceur). Indpendance : chaque application sexcute de manire autonome et indpendante des autres applications.
c T.Besanon (v14.0.1025)
Administration UNIX
4 / 918
UNIX est un systme multi-utilisateurs. Tout programme excut sur un systme LINUX est troitement li un utilisateur : Authentication de lutilisateur Protection de lexcution de chaque programme de lutilisateur Comptabilit des ressources alloues lutilisateur Un utilisateur correspond : un identiant un mot de passe
c T.Besanon (v14.0.1025)
Administration UNIX
5 / 918
Version dUNIX MacOS X 10.x HP-UX 11.x Tru64 Unix 5.x AIX 7.x IRIX 6.x Solaris 11 OpenSolaris 11
http ://www.hp.com http ://www.digital.com http ://www.ibm.com http ://www.sgi.com http ://www.sun.com
Ces UNIX ne sont pas interchangeables : Solaris pour machines de marque SUN MacOS X pour machines de marque APPLE AIX pour machines de marque IBM etc.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 6 / 918
Version dUNIX noyau 2.6.x FreeBSD 8.x NetBSD 5.x OpenBSD 5.x
c T.Besanon (v14.0.1025)
Administration UNIX
7 / 918
Du point de vue de lutilisateur, les divers UNIX se ressemblent beaucoup. Du point de vue de ladministration, les divers UNIX ont chacun des spcicits (les commandes lies au hardware varient, on trouve des extensions propres chaque constructeur). En pratique, ladministrateur attend toujours. Plusieurs tentatives dunication : System V Interface Denition de AT&T (SVID, SVID2, SVID3 en 1989) IEEE POSIX (POSIX1003.1 en 1990) X/OPEN Portability Guide (XPG4 en 1993) du consortium X/OPEN (cr en 1984) Mais. . .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 9 / 918
Il reste 2 grandes familles dUNIX issues dun schisme : la famille System V avec notamment la dernire version connue sous le nom de System V release 4 (alias SVR4 ) la famille BSD issue de luniversit de Berkeley (BSD Berkeley Software Distribution)
Votre rle : connatre les principes et les mcanismes dUNIX an de savoir sadapter nimporte quel UNIX.
c T.Besanon (v14.0.1025)
Administration UNIX
10 / 918
Ken Thompson et Dennis M. Ritchie, les parents dUNIX On notera les teletypes 33 !
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 11 / 918
LINUX nest pas un systme UNIX au sens propre car son code ne provient pas du code originel des UNIX. On parle de UNIX like pour LINUX. On parle plus gnralement de systme GNU/LINUX .
c T.Besanon (v14.0.1025)
Administration UNIX
12 / 918
1991 : Linus Torvald propose la communaut son systme dexploitation LINUX issu de MINIX En 1991, seules quelques applications peuvent fonctionner sous LINUX (bash, gcc, sed, etc.) Aujourdhui : LINUX est devenu une plateforme de rfrence pour les applications dentreprises Raison du succs : Code source sous licence GPL (GNU Public Licence == cette licence empche le logiciel libre dtre modi et de devenir propritaire) Communaut mondiale de dveloppeurs
c T.Besanon (v14.0.1025)
Administration UNIX
14 / 918
Il existe beaucoup de distributions LINUX car LINUX nest la proprit de personnes mais de toute la communaut de programmeurs informatiques.
c T.Besanon (v14.0.1025)
Administration UNIX
15 / 918
LINUX = un noyau LINUX (cest--dire le coeur/moteur du systme dexploitation) ; cf http://www.kernel.org un ensemble cohrent de logiciels associs et compatibles entre eux
GNU Utilitaires LINUX Noyau
REDHAT Distribution
DEBIAN Distribution
MANDRIVA Distribution
SUSE Distribution
c T.Besanon (v14.0.1025)
Administration UNIX
16 / 918
Cf gttp://distrowatch.com Les principales distributions sont : Red Hat, http://www.redhat.com Centos (clone de Red Hat), http://www.centos.org Suse, http://www.suse.com OpenSuse (clone de Suse), http://www.opensuse.org Mandriva, http://www.mandriva.com Debian, http://www.debian.org Ubuntu, http://www.ubuntu.com gentoo, http://www.gentoo.com Knoppix, http://www.knoppix.org
c T.Besanon (v14.0.1025)
Administration UNIX
17 / 918
Avantages des distributions LINUX Faible consommation en mmoire vive Faible consommation en espace disque Grande stabilit Grande rapidit en multi-tche, mme sur un systme monoprocesseur Evolution trs rapide Systme totalement paramtrable Systme trs complet, utilisable ds la n de linstallation Parfaitement adapt au mode multi-utilisateur
c T.Besanon (v14.0.1025)
Administration UNIX
18 / 918
Inconvnients des distributions LINUX Manque dapplications spciques (jeux par exemple) ou commerciales Relative complexit Problme sur le support en gnral Problme de pilotes avec certains matriels (absence des spcications, retard de mise au point, etc.) Evolution trs voire trop rapide Systme totalement paramtrable o tout est paramtrer ; absence dintgration des outils entre eux (par exemple : messagerie, antivirus, antispam, gestionnaire de listes, etc.) Illusion du gratuit et de laccessibilit des sources du logiciel rservs en fait des programmeurs chevronns
c T.Besanon (v14.0.1025)
Administration UNIX
19 / 918
La salle de TP de la Formation Permanente est quipe de PC sous Mandriva (information non conrme au moment de lcriture de ce support de cours) et les TP se feront sur des machines virtuelles fonctionnant sous le logiciel VMWARE ou sous le logiciel VIRTUAL BOX. Vos interlocuteurs (dans cet ordre dcroissant dimportance) : Vassiliki Spathis email : Vassiliki.Spathis@formation.jussieu.fr Responsable des formations, elle informera les autres techniciens des interventions raliser. adresse email assistance email : assistance@formation.jussieu.fr
Vous devez signaler : tout problme de compte ; faire au plus vite si vous souponnez que votre compte est pirat. problme sur les imprimantes : cartouche dencre vide, bourrage papier, etc. ; problme sur le poste de travail : terminal en mode inhabituel, clavier cass, souris hors service, etc. ; problme anormal avec un logiciel : le logiciel ne fonctionne plus comme dhabitude, un logiciel a disparu, le logiciel ne fonctionne pas du tout comme le prcise la documentation, etc. ; Vous devez signaler les problmes comme un patient donne ses symptmes un mdecin. Un jour prochain, cest vous que les utilisateurs signaleront les problmes. Alors mettez-vous notre place ds maintenant en adoptant une attitude dadministrateur systme : prcision, dtails, etc.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 21 / 918
1.7 Annexe 1
1.7 Annexe 1
Ci joint dans la version imprime de ce cours, un index des direntes version dUNIX.
c T.Besanon (v14.0.1025)
Administration UNIX
22 / 918
1978 1979 1980 1980 1994 1995 1992 1986 1989 1988 1990 2000 1989 1990 1989 1991 1986 1990 1995 1992 2007 1994 1991 1989 1989 1979 1988 1991 1991 1992 1978 1986 1988 1983 1987 1984 1999 2000 1995 1989 2005 1995 2003 1984 1993 2003 1977 2004 1993 2006 1986 2001 2005 1987 1983
1BSD 2BSD 3BSD 4BSD 4.4BSD Lite 1 4.4BSD Lite 2 386 BSD A/UX Acorn RISC iX Acorn RISC Unix AIX AIX 5L AIX PS/2 AIX/370 AIX/6000 AIX/ESA AIX/RT AMiX AOS Lite AOS Reno AppleTV ArchBSD ASV Atari Unix BOS BRL Unix BSD Net/1 BSD Net/2 BSD/386 BSD/OS CB Unix Chorus Chorus/MiX Coherent CTIX CXOS Darwin Debian GNU/Hurd DEC OSF/1 ACP Dell Unix DesktopBSD Digital Unix DragonFly BSD Dynix Dynix/ptx ekkoBSD Eunice FireFly BSD FreeBSD FreeDarwin GNU GNU-Darwin Gnuppix GNU/Hurd-L4 HPBSD HP-UX
2000 1991 1988 1985 1985 1978 2010 2007 2007 1983 1986 1991 1994 1977 1999 1999 1985 1974 2002 1977 1984 2005 2000 1985 2002 1996 1998 1988 1983 1993 1993 1988 1987 1994 2001 1995 2003 2010 1995 2005 1996 1996 1997 1990 2011 2005 1982 1986 1982 2007 1977 1974 1984 2001 1996
HP-UX 11i HP-UX BLS IBM AOS IBM IX/370 Interactive 386/ix Interactive IS iOS iPhone OS iPod OS IRIS GL2 IRIX Linux Lites LSX Mac OS X Mac OS X Server Mach MERT MicroBSD Mini Unix Minix Minix 3 Minix-VMD MIPS OS RISC/os MirBSD Mk Linux Monterey more/BSD mt Xinu MVS/ESA OpenEdition NetBSD NeXTSTEP NonStop-UX Open Desktop Open UNIX 8 OpenBSD OpenDarwin OpenIndiana OpenServer 5 OpenSolaris OPENSTEP OS/390 OpenEdition OS/390 Unix OSF/1 OS X PC-BSD PC/IX Plan 9 Plurix PureDarwin PWB PWB/UNIX QNX QNX RTOS QNX/Neutrino
1981 1997 1997 1991 1977 1994 2002 1984 1987 2001 2004 1983 1995 1990 1992 1982 1982 2004 1999 1995 1998 1991 1977 1981 1980 1979 1988 1984 1982 1986 1996 2002 1993 1969 1981 1979 1991 1981 1982 1983 1984 1986 1988 1985 1986 1971 1993 1998 1976 1977 1982 1980 1984 1998 2001
QUNIX ReliantUnix Rhapsody RISC iX RT SCO UNIX SCO UnixWare 7 SCO Xenix SCO Xenix System V/386 Security-Enhanced Linux Silver OS Sinix Sinix ReliantUnix Solaris 1 Solaris 2 SPIX SunOS Triance OS Tru64 Unix Trusted IRIX/B Trusted Solaris Trusted Xenix TS Tunis UCLA Locus UCLA Secure Unix Ultrix Ultrix 32M Ultrix-11 Unicos Unicos/mk Unicos/mp Unicox-max UNICS UniSoft UniPlus UNIX 32V UNIX Interactive UNIX System III UNIX System IV UNIX System V UNIX System V Release 2 UNIX System V Release 3 UNIX System V Release 4 UNIX System V/286 UNIX System V/386 UNIX Time-Sharing System UnixWare UnixWare 7 UNSW USG Venix Xenix OS Xinu xMach z/OS Unix System Services
1.8 Annexe 2
1.8 Annexe 2
Ci joint dans la version imprime de ce cours, un historique des direntes version dUNIX.
c T.Besanon (v14.0.1025)
Administration UNIX
23 / 918
1969
1970
1971
1972
1973
1974
1975
1976
1977
SRI Eunice
UNSW Mini Unix may 1977 LSX UNIX Time-Sharing System Fourth Edition (V4) november 1973 UNIX Time-Sharing System Fifth Edition (V5) june 1974 UNIX Time-Sharing System Sixth Edition (V6) may 1975
PWB/UNIX 1974
RT 1.0 1977
1978
1979
1980
UNIX Time-Sharing System Seventh Edition Modified (V7M) december 1980
UNSW 04 november 1979 UNIX 32V may 1979 BRL Unix V4.1 july 1979 V7appenda february 12, 1980
PWB 1.2
CB UNIX 2
Interactive IS/1
Note 1 : an arrow indicates an inheritance like a compatibility, it is not only a matter of source code. Note 2 : this diagram shows complete systems and [micro]kernels like Mach, Linux, the Hurd... This is because sometimes kernel versions are more appropriate to see the evolution of the system.
1981
V7M 2.1 october 1981
1982
Ultrix-11
1983
Eunice 2 1982 UniSoft UniPlus V7 1981 UNSW 81 april 1981 SunOS 1.0 february 1982 UniSoft UniPlus System V 1983
Tunis 1981
Plurix 1982
Sinix
XENIX 2.3
TS 4.0.1 1981
TS 5.0 1982 PC/IX IS/3 HP-UX 1.0 (S500) H1 1983 SPIX 1982
TS 5.2 1983
1984
Ultrix 32M 1.0 1984 mt Xinu (4.2BSD)
1985
Ultrix-11 v3.0 1986 Ultrix 32M 1.2 1985
1986
Ultrix-11 v3.1 1986
mt Xinu (4.3BSD)
2.9BSD-Seismo august 1985 MIPS OS RISC/os 4.3BSD june 1986 QNX 1.0 1984 Eunice 4.2 1985 SunOS 1.2 january 1985 SunOS 2.0 may 15, 1985 SunOS 3.0 february 17, 1986 SunOS 3.2 september 1986
BRL Unix (4.2BSD) 1985 Mach 1985 UNIX Time-Sharing System Eighth Edition (V8) february 1985
BRL Unix (4.3BSD) 1986 Mach 2.0 UNIX Time-Sharing System Ninth Edition (V9) september 1986 IRIX 1986
IRIS GL2 4.0 march 1986 Plan 9 UNIX System V Release 3.0 1986 Chorus 1986
IRIS GL2 5.0 dec. 1986 GNU (Trix) 1986 UNIX System V/386 rel 3.0
UNIX System V/286 1985 Dynix 1984 CXOs 1984 Xinu 1984 IS/5 CXOs 0.9 sept. 1985 Interactive 386/ix 1985 Unicos 1.0 april 3, 1986
IBM IX/370 1985 HP-UX 5.0 (S200/S300) H1 1986 Venix 2.0 1986
HP-UX 1.0 (S800) november 20, 1986 SPIX 32 HP-UX 5.1 (S200/S300) H1 1986
Venix/286
1987
Ultrix 32M 2.0 1987
1988
Ultrix 4.2 BSD Net/1 november 1988 more/BSD december 1988
1989
Acorn RISC iX 1989
mt Xinu mach386
2.10.1BSD january 1989 MIPS OS RISC/os 4 4.3BSD Tahoe june 1988 HPBSD 1.0 april 1988 IBM AOS 1988 SunOS 3.5 1988 SunOS 4.0 1989 SunOS 4.0.3 may 1989
QNX 2.21
Sinix 2.1 1988 IRIX 3.0 june 10, 1988 SCO XENIX System V/386 release 2.3.4 june 1989
UNIX Time-Sharing System Tenth Edition (V10) october 1989 NonStop-UX B00 august 22, 1989 SCO UNIX System V/386 release 3, 1989
IRIX 2.0 NonStop-UX november 18, 1987 april 10, 1987 SCO XENIX System V/386 october 1987 IRIS GL2 6.0 1987 UNIX System V/386 Release 3.2
Xinu 7 march 1988 UNIX Interactive 4.1 1988 HP-UX 2.0 HP-UX 2.1 (S800) (S800) march 1988 july 1988 HP-UX 6.2 (S300) june 1988
Unicos 5.0 may 15, 1989 CTIX 4.0 HP-UX 7.02 (S800) H2 1989
Microport Unix V/386 september 1987 HP-UX 1.1 HP-UX 1.2 (S800) (S800) august 17, 1987 nov. 16, 1987 HP-UX 5.2 (S300) H2 1987 HP-UX 6.0 (S300) H2 1987
AIX PS/2 1.1 march 31, 1989 Venix 3.2 Minix 1.0 1987 AIX/RT 2.1.2 AIX/RT 2.2.1 1987 A/UX 1.0 february 1988 Venix 3.2.3
AIX/6000 v3 1989
1990
Ultrix 4.2A BSD Net/2 (4.3BSD Lite) june 1991 mt Xinu mach 2.6
1991
1992
386 BSD 0.0 february 1992 2.11BSD february 1992 MIPS OS RISC/os 5 4.3BSD Reno june 1990 QNX 4.0 1990 SunOS 4.1.1 (Solaris 1) november 1990 4.4BSD alpha june 1992
AOS Reno 1992 SunOS 4.1.2 (Solaris 1.0.1) december 1991 Solaris 2.0 (sparc) (SunOS 5.0) july 1992 NeXTSTEP 2.1 march 25, 1991 SunOS 4.1.3 (Solaris 1.1a) august 1992 Solaris 2.1 (SunOS 5.1) december 1992 NeXTSTEP 3.0 september 1992 Solaris 2.0 (x86) end 1992
NeXTSTEP 2.0 sept. 18, 1990 Mach 2.6 OSF/1 1990 Mach 3
Trusted XENIX 2.0 january 9, 1991 Plan 9 1990 AMiX 1.1 (Amiga Unix SVR4) 1990
AMiX 2.2 ASV (dev release) 1991 Chorus/MiX SVR4 1991 Unicos 6.0 february 14, 1991 SunSoft UNIX Interactive 4.1 1992 HP-UX 8.02 (S800) august 5, 1991
Xinu
Unicos 7.0 october 29, 1992 Unix System V Release 4.1ES december 1992 Microport Unix SVR4.1 HP-UX 8.06 (S800) H2 1991 HP-UX 9.0 (S800) october 7, 1992 Dell Unix SVR4 Issue 2.2 1992 HP-UX BLS 8.04 (S800) H2 1991 Linux 0.95 Linux 0.12 march 8, 1992 january 16, 1992 HP-UX 9,01 HP-UX 8.07 (S300/S700) (S300/S700) november 2, 1992 november 21, 1991 AIX/ESA 2.1 1992 Minix 1.5 december 1992
Microport Unix SVR4.0 HP-UX 8.0 (S300/S800) march 27, 1991 Dell Unix SVR4.0 1990 Linux 0.01 august 1, 1991
AIX/ESA 1 1991
1993
Ultrix 4.3A NetBSD 0.8 april 20, 1993 NetBSD 0.9 august 23, 1993 FreeBSD 1.0 december 1993 2.11BSD patch 100 january 1993
1994
NetBSD 1.0 october 26, 1994 FreeBSD 1.1 may 1994 FreeBSD 1.1.5.1 july 1994 386 BSD 1.0 12 november 1994 2.11BSD patch 200 december 1994
4.4BSD Lite 1 march 1, 1994 4.4BSD june 1, 1993 HPBSD 2.0 april 1993 4.4BSD Encumbered june 1993 HPBSD QNX 4.1 1994 SunOS 4.1.3_U1 (Solaris 1.1.1) december 1993 Solaris 2.3 (sparc) (SunOS 5.3) november 1993 NeXTSTEP 3.2 october 1993 Solaris 2.1 (x86) SunOS 4.1.3_U1b (Solaris 1.1.1B) february 1994 SunOS 4.1.4 (Solaris 1.1.2) september 1994
Lites
Solaris 2.2 (sparc) (SunOS 5.2) may 1993 NeXTSTEP 3.1 may 25, 1993
Mach 4 UK02 july 20, 1994 OSF/1.3 june 1994 IRIX 5.2 march 1994 SCO UNIX 3.2.4 (Open Desktop) 1994 IRIX 5.3 december 1994
IRIX 5.0 march 1993 NonStop-UX B22 november 22, 1993 Trusted XENIX 4.0 september 17, 1993
Sinix 5.42 IRIX 6.0 december 1994 NonStop-UX B31 november 1, 1994 Unicos-max 1.2 november 30, 1994
UnixWare 1.1 Unix SVR4.2 may 18, 1993 Dynix/ptx 2.0.4 1993 Chorus/MiX SVR4 Xinu
UNIX Interactive 4.1a june 1994 MVS/ESA OpenEdition SP4.3.0 MVS/ESA OpenEdition SP5.1.0 march 26, 1993 june 24, 1994 HP-UX 9.04 (S800) november 17, 1993 Dell Unix SVR4 Issue 2.2.1 1993 Linux 0.99.15j march 2, 1994 Linux 1.0 march 14, 1994 Linux 1.0.6 april 3, 1994 Linux 1.0.9 april 17, 1994 HP-UX 9.05 april 19, 1994 Linux 1.1.0 april 6, 1994 AIX/ESA 2.2 1994 AIX 4.1 august 12, 1994
Linux 1.1.52 october 6, 1994 AIX 4.1.1 october 28, 1994 A/UX 3.1
A/UX 3.0.2
1995
BSD/OS 2.0.1 (BSDI) august 1995 Ultrix 4.5 november 1995 NetBSD 1.1 november 26, 1995 FreeBSD 2.1 november 19, 1995
1996
QNX 4.2 AOS Lite 1995 Lites 1.0 Lites 1.1 february 28, 1995 march 24, 1995 Solaris 2.5 (SunOS 5.5) november 1995 NeXTSTEP 3.3 february 1995
QNX 4.22
QNX 4.24 Lites 1.1u3 march 30, 1996 Solaris 2.5.1 (SunOS 5.5.1) may 1996 OPENSTEP 4.0 july 22, 1996 OPENSTEP 4.1 december 1996
Digital Unix (DEC OSF/1 AXP) march 1995 IRIX 6.1 july 1995 NonStop-UX B32 june 12, 1995 OpenServer 5.0 may 9, 1995 Plan 9 r2 july 1995 Trusted IRIX/B 4.0.5 EPL february 6, 1995 UnixWare 2.0 Unix System V Release 4.2MP january 1995
Mach 4 Mach 4 UK02p21 UK22 november 3, 1995 march 29, 1996 Digital Unix Digital Unix 4.0 Digital Unix 4.0A (DEC OSF/1 V4) 4.0B Sinix ReliantUnix 5.43 september 1996 may 1996 december 1996 1995 IRIX 6.2 IRIX 6.4 IRIX 6.3 march 1996 november 1996 september 1996 NonStop-UX Cxx february 1996 OpenServer 5.0.2 june 1996 Unicos-max 1.3 november 15, 1995 GNU 0.1 (GNU/Hurd) september 6, 1996
UnixWare 2.1.2 october 1996 Unicos/mk 1.2.5 Unicos/mk 1.3 november 11, 1996 december 9, 1996
Unicos 9.0 september 21, 1995 Trusted Unicos 8.0 march 9, 1995 MVS/ESA OpenEdition SP5.2.1 MVS/ESA OpenEdition SP5.2.2 september 29, 1995 june 20, 1995 HP-UX 10.01 HP-UX 10.0 (S700/S800) may 1995 february 1995 Linux 1.2 march 7, 1995 Linux 1.2.13 august 2, 1995 Linux 1.3 june 12, 1995
OS/390 OpenEdition V1R1 OS/390 OpenEdition V1R2 march 29, 1996 september 27, 1996 HP-UX 10.10 HP-UX 10.20 december 1995 june 1996 Mk Linux DR2 Mk Linux DR1 december 1996 1996 Linux 2.0.21 Linux 2.0 september june 9, 1996 20, 1996 Linux 1.3.100 Linux 2.1 may 10, 1996 september 30, 1996 Minix 1.7.2 march 1996 AIX 4.1.5 november 8, 1996 AIX 4.2 may 17, 1996
1997
NetBSD 1.2.1 may 20, 1997
BSD/OS 3.1 (BSDI) december 10, 1997 NetBSD 1.3.1 march 9, 1998
NetBSD 1.3 january 4, 1998 FreeBSD 2.2 march 16, 1997 FreeBSD 2.1.7 FreeBSD 2.2.1 february 20, 1997 march 25, 1997 2.11BSD patch 366 february 1997 OpenBSD 2.1 june 1, 1997 FreeBSD 2.2.5 october 22, 1997
BSD/OS 4.0 (BSDI) august 17, 1998 NetBSD 1.3.2 may 29, 1998
1998
NetBSD 1.3.3 december 23, 1998
FreeBSD 3.0 october 16, 1998 4.3BSD-Quasijarus0 december 27, 1998 FreeBSD 2.2.8 november 29, 1998
Solaris 2.6 (SunOS 5.6) august 1997 OPENSTEP 4.2 january 1997 Rhapsody DR1 september, 1997 Mach 4 1998 Digital Unix 4.0D december 1997
Solaris 7 (SunOS 5.7) october 27, 1998 Rhapsody DR2 may, 1998 Trusted Solaris 2.5.1 september 1998
ReliantUnix 5.44 1997 NonStop-UX C40 august 20, 1997 OpenServer 5.0.4 may 1997 GNU 0.2 (GNU/Hurd) june 12, 1997
IRIX 6.5.1M IRIX 6.5 august 14, 1998 june 15, 1998 NonStop-UX C50 june 3, 1998 OpenServer 5.0.5 august 12, 1998
UnixWare 7 Unix System V Release 5 march 3, 1998 Unicos/mk 2.0 october 13, 1997 Chorus/MiX SVR4
Xinu 8 1998 UNIX Interactive 4.1.1 july 21, 1998 OS/390 Unix V2R5 march 27, 1998 Mk Linux DR3 july 31, 1998 Linux 2.0.36 november 15, 1998
UnixWare 7.0.1 september 8, 1998 Unicos/mk 2.0.3 may 1998 Dynix/ptx 4.4.4 1998 Unicos 10.0.0.2 Unicos 10.0.0.3 may 1998 october 1998
OS/390 OpenEdition V1R3 march 28, 1997 HP-UX 10.30 july 1997 Mk Linux DR2.1 Linux 2.0.28 january 14, 1997 Linux 2.1.32 april 5, 1997 Minix 2.0.0 january 1997
OS/390 Unix V2R4 september 26, 1997 HP-UX 11.0 november 1997
Linux 2.1.132 december 22, 1998 Minix 2.0.2 december 1998 Monterey (announced) october 1998 AIX 4.3.2 october 23, 1998
AIX 4.2.1 april 25, 1997 AIX 4.3 october 31, 1997
1999
NetBSD 1.4.1 august 26, 1999 NetBSD 1.4 may 12, 1999
FreeBSD 3.4 FreeBSD 3.3 december 20, 1999 september 17, 1999 4.3BSD-Quasijarus0a october 10, 1999 2.11BSD patch 430 december 13, 1999
OpenBSD 2.5 may 19, 1999 QNX/Neutrino 2.10 (QRTP) Darwin 0.1 march 16, 1999 Darwin 0.2 may 13, 1999 Mac OS X (DP1) may 10, 1999 Solaris 7, 3/99 march 1999 Mac OS X Server 1.0 march 16, 1999 Solaris 7, 5/99 may 1999 Solaris 7, 8/99 august 1999 Mac OS X Server 1.0.2 july 22, 1999 Darwin 0.3 august 16, 1999
Mac OS X (DP2) november 10, 1999 Solaris 7, 11/99 november 1999 Solaris 8 (beta) nov 2, 1999
Trusted Solaris 7 november 2, 1999 Tru64 Unix V4.0F february 1, 1999 IRIX 6.5.3 february 9, 1999 OpenServer 5.0.5a february 1999 IRIX 6.5.4 may 11, 1999 Tru64 Unix V5.0 august 12, 1999 IRIX 6.5.5 august 6, 1999 IRIX 6.5.6 november 10, 1999
UnixWare 7.1 february 23, 1999 Unicos/mk 2.0.4 january 25, 1999 Unicos 10.0.0.4 february 1999 Unicos 10.0.0.5 may 1999 Unicos 10.0.0.6 june 1999
OS/390 Unix V2R7 march 26, 1999 HP-UX 11.0 9905 may 1999 MkLinux Pre-R1 1999 Linux 2.0.37 june 14, 1999 Linux 2.2.0 january 26, 1999 Linux 2.2.8 may 11, 1999
OS/390 Unix V2R8 september 24, 1999 Linux 2.3.0 may 11, 1999 Linux 2.3.14 august 19, 1999 Linux 2.0.38 august 25, 1999 Linux 2.2.12 august 26, 1999 Linux 2.2.13 october 19, 1999
2000
NetBSD 1.4.2 march 19, 2000
BSD/OS 4.2 (BSDI) november 29, 2000 NetBSD 1.4.3 november 25, 2000 NetBSD 1.5 december 6, 2000
FreeBSD 3.5 june 24, 2000 FreeBSD 4.0 march 14, 2000 FreeBSD 4.1 july 27, 2000 FreeBSD 5.0 beta march 2000 TrustedBSD (announced) april 9, 2000 OpenBSD 2.7 june 15, 2000 xMach DR 01 august 6, 2000
FreeBSD 4.2 november 21, 2000 FreeBSD 4.1.1 september 27, 2000 2.11BSD patch 433 november 5, 2000 TrustedBSD beta OpenBSD 2.8 december 1, 2000
Darwin 1.0 april 5, 2000 Mac OS X (DP3) february 14, 2000 Solaris 8 january 26, 2000 Mac OS X Server 1.2 january 14, 2000
Darwin 1.1 may 15, 2000 Mac OS X (DP4) may 15, 2000 Solaris 8 6/00 (su1) june 2000
Mac OS X (beta) september 13, 2000 Solaris 8 10/00 (su2) october 2000 Mac OS X Server 1.2v3 october 27, 2000 Trusted Solaris 8 november 20, 2000
Tru64 Unix V4.0G may 2000 IRIX 6.5.7 february 10, 2000 IRIX 6.5.8 may 22, 2000
IRIX 6.5.9 august 9, 2000 OpenServer 5.0.6 august 21, 2000 Debian GNU/Hurd A1 august 2000
Plan 9 r3 june 7, 2000 UnixWare NSC 7.1.1+IP june 26, 2000 UnixWare 7.1.1+LKP august 21, 2000 UnixWare 7.1.1 DCFS november 27, 2000
Unicos 10.0.0.7 january 2000 Linux 2.4.0 test 1 may 25, 2000 OS/390 Unix V2R9 march 31, 2000 Linux 2.3.51 march 10, 2000
Unicos 10.0.0.8 november 22, 2000 Linux 2.4.0 test12 Linux 2.4.0 test8 december 12, 2000 september 8, 2000 Security-Enhanced Linux 1.0 december 22, 2000 OS/390 Unix V2R10 september 29, 2000 HP-UX 11.11 aka 11iv1 december 2000
2001
NetBSD 1.5.1 july 11, 2001 FreeBSD 4.3 april 22, 2001 NetBSD 1.5.2 september 14, 2001 FreeBSD 4.4 september 19, 2001
OpenBSD 2.9 june 1, 2001 QNX RTOS 6.1.0 Darwin 1.3.1 april 13, 2001 Mac OS X 10.0.4 june 22, 2001 Solaris 8 4/01 may 2001 Mac OS X Server 10.0.3 may 21, 2001 Solaris 8 7/01 july 2001 Mac OS X Server 10.0.4 july 3, 2001 Solaris 9 alpha QNX RTOS 6.1.0 patch A september 28, 2001 Darwin 1.4.1 october 1, 2001 Mac OS X 10.1 (Puma) sept. 29, 2001
xMach current march 16, 2001 Mac OS X 10.0 (Cheetah) march 24, 2001
Darwin 5.1
Mac OS X Mac OS X 10.1.2 10.1.1 nov 13, 2001 dec 20, 2001 Solaris 8 10/01 october 2001 Mac OS X Mac OS X Server 10.1.1 Server 10.1 november september 29, 2001 21, 2001 Solaris 9 EA october 2, 2001 Tru64 Unix V5.1A september 2001
IRIX 6.5.13 IRIX 6.5.14 november 7, 2001 august 8, 2001 NonStop-UX C53 october 19, 2001 Debian GNU/Hurd G1 Debian GNU/Hurd H2 october 10, 2001 december 4, 2001
Open UNIX 8 MP2 Release 8.0 november 6, 2001 Dynix/ptx 4.5.3 october 2001
Unicos 10.0.1.0 june 2001 Linux 2.4.0 january 4, 2001 Linux 2.4.3 march 30, 2001 Linux 2.4.5 may 25, 2001 Linux 2.4.7 july 20, 2001 Linux 2.4.15 november 23, 2001 S-E Linux 2.0 september 26, 2001 Linux 2.4.17 december 21, 2001 z/OS Unix V1R2 october 26, 2001 HP-UX 11.11/11iv1/0112 december 2001 Linux 2.5.0 november 23, 2001 HP-UX 11.20 aka 11iv1.5 (IA) june 2001 Minix 2.0.3 may 22, 2001 AIX 5L v5.1 may 4, 2001
z/OS Unix System Services V1R1 march 30, 2001 HP-UX 11.11/11iv1/0106 june 2001
2002
NetBSD 1.6 beta may 28, 2002 NetBSD 1.5.3 july 22, 2002 FreeBSD 4.6 june 15, 2002 MicroBSD 0.1 july 14, 2002 FreeBSD 5.0 Developer Preview 1 april 8, 2002 GNU-Darwin (beta 2.5) march 12, 2002 OpenBSD 3.1 may 19, 2002 QNX 6.2 (Momentics) june 4, 2002 Darwin 5.4 Mac OS X 10.1.4 april 17, 2002 Mac OS X 10.1.5 june 4, 2002 Darwin 5.5 Mac OS X 10.2 (Jaguar) august 13, 2002 FreeBSD 4.6.2 august 15, 2002 MicroBSD 0.5 august 14, 2002 NetBSD 1.6 sept. 14, 2002
FreeBSD 4.7 october 10, 2002 MicroBSD 0.6 october 12, 2002
MirBSD #0 october 11, 2002 QNX 6.2 (patch A) october 18, 2002 Darwin 6.0.1 sept. 23, 2002 Mac OS X 10.2.1 sept. 18, 2002
Darwin 5.2 Mac OS X 10.1.3 february 19, 2002 Solaris 8 2/02 february 2002 Mac OS X Server 10.1.2 january 17, 2002
Darwin 5.3
Mac OS X Server 10.1.5 july 1, 2002 Solaris 9 OE may 22, 2002 Yamit (alpha) may 5, 2002
Mac OS X Server 10.2.1 sept. 18, 2002 Solaris 9 OE 9/02 sept. 2002
IRIX 6.5.16 may 8, 2002 NonStop-UX C60 may 3, 2002 GNU (GNU/Hurd, GNU Mach 1.3) Plan 9 r4 may 27, 2002 april 28, 2002
Unicos/mp 1.0 august 23, 2002 NonStop-UX C61 october 2, 2002 OpenServer 5.0.7 (announced) august 26, 2002 Debian GNU/Hurd J1 Debian GNU/Hurd J2 august 5, 2002 october 10, 2002 IRIX 6.5.17 august 7, 2002
Unicos 10.0.1.1 may 2002 Linux 2.4.18 february 25, 2002 z/OS, z/OS.e Unix V1R3 march 29, 2002 HP-UX 11.11/11iv1/0203 march 2002 Linux 2.5.3 january 30, 2002 Linux 2.5.5 february 19, 2002 Linux 2.5.10 april 24, 2002 Linux 2.4.19 august 3, 2002 z/OS, z/OS.e Unix V1R4 september 27, 2002 HP-UX 11.11/11iv1/0209 september 2002 Linux 2.5.44 october 19, 2002
HP-UX 11.22 aka 11iv1.6 (IA) august 2002 Linux 2.2.21 may 20, 2002
2003
2.11BSD patch 444 february 10, 2003 FreeBSD 5.0 FreeBSD 5.0 DP 2 january 19, 2003 november 18, 2002 MirBSD #4 MirBSD #1 MirBSD #3 MirBSD #2 april 16, 2003 november 31, 2002 march 2, 2003 january 28, 2003 OpenBSD 3.2 OpenBSD 3.3 november 1, 2002 may 1, 2003 GNU-Darwin 1.0 january 10, 2003 QNX 6.2.1 (Momentics) february 18, 2003 OpenDarwin-20030212 february 17, 2003 Darwin Darwin 6.0.2 Darwin 6.5 Darwin 6.2 Darwin 6.4 Darwin 6.3 6.1 oct. 28, 2002 april 15, 2003 Mac OS X 10.2.2 november 11, 2002 Mac OS X 10.2.3 december 19, 2002 Solaris 8 12/02 december 2002 Mac OS X Server 10.2.2 november 11, 2002 Mac OS X Server 10.2.3 december 19, 2002 Solaris 9 OE 12/02 december 2002 Mac OS X Server 10.2.4 february 24, 2003 Solaris 9 x86 PE february 6, 2003 Mac OS X Server 10.2.5 april 14, 2003 Mac OS X 10.2.4 february 13, 2003 Mac OS X 10.2.5 april 10, 2003 Mac OS X 10.2.6 may 6, 2003
Unicos/mp 2.1 march 17, 2003 IRIX 6.5.19 february 5, 2003 NonStop-UX C62 january 17, 2003 OpenServer 5.0.7 february 24, 2003 Debian GNU/Hurd Debian GNU/Hurd K2 K1-Unstable march 3, 2003 december 12, 2002
HP-UX 11.11/11iv1/0212 december 2002 Linux 2.5.48 november 18, 2002 Linux 2.5.52 december 15, 2002
HP-UX 11.11/11iv1/0303 march 2003 Linux 2.5.62 february 17, 2003 Linux 2.5.65 march 17, 2003 Linux 2.5.68 april 19, 2003 Linux 2.5.70 may 26, 2003
AIX 5L v5.2 Maintenance Level 1 may 2003 AIX 4.3.3 Maintenance Level 11 february 2003
DragonFly BSD july 16, 2003 FreeBSD 4.9 october 28, 2003 MicroBSD 0.7 beta october 27, 2003 FreeBSD 5.1 june 9, 2003 MirBSD #5 june 11, 2003 ekkoBSD august 6, 2003 MirBSD #6 july 8, 2003 OpenBSD 3.4 beta august 11, 2003 MirBSD #7semel september 28, 2003 MirBSD #7bis october 4, 2003 OpenBSD 3.4 november 1, 2003 GNU-Darwin 1.1 october 8, 2003 ekkoBSD 1.0 BETA1B november 25, 2003 FreeBSD 5.2-BETA november 26, 2003 MirBSD #7ter november 22, 2003
Darwin 7.0 Preview june 25, 2003 Mac OS X 10.3 beta (Panther) june 23, 2003
Darwin 6.7 sept. 22, 2003 Mac OS X 10.2.7 august 18, 2003
Darwin 7.0 october 24, 2003 Mac OS X 10.3 october 24, 2003 Mac OS X 10.3 Server october 24, 2003
Darwin 7.0.1 november 14, 2003 Mac OS X 10.3.1 november 10, 2003 Mac OS X 10.3.1 Server november 10, 2003
Darwin 7.1
Mac OS X Server 10.3 beta (Panther) june 23, 2003 Solaris 9 OE 8/03 july 29, 2003 Solaris 10 Preview july 29, 2003 Unicos/mp 2.2 july 2003 IRIX 6.5.21 august 6, 2003
Tru64 Unix V5.1B-1 october 20, 2003 Unicos/mp 2.3 october 2003
OpenServer 5.0.7 Update Pack 1 july 31, 2003 Debian GNU/Hurd K4 july 29, 2003
HP-UX 11.11/11iv1 0306 june 2003 Linux 2.5.75 july 10, 2003
HP-UX 11.11/11iv1/0309 septembre 2003 HP-UX 11.23 aka 11iv2 (IA) september 2003
2004
NetBSD 1.6.2 february 29, 2004 DragonFly BSD (beta) march 5, 2004 4.3BSD-Quasijarus0b december 7, 2003 4.3BSD-Quasijarus0c february 15, 2004 ekkoBSD BETA 2 february 18, 2004 FreeBSD 5.2 FreeBSD 5.2.1 january 12, 2004 february 25, 2004 OpenBSD 3.5 may 1, 2004 DragonFly BSD 1.0-RC1 june 28, 2004 FreeBSD 4.10 may 27, 2004 Silver OS july 10, 2004 DragonFly BSD 1.0 july 12, 2004 DragonFly BSD 1.0A july 15, 2004
ekkoBSD 1.0 BETA 2 july 7, 2004 MirBSD #7quater june 14, 2004
Darwin 7.2 december 19, 2003 Mac OS X 10.3.2 december 17, 2003 Mac OS X 10.3.2 Server december 19, 2003 Mac OS X 10.3.3 march 15, 2004 Mac OS X 10.3.3 Server march 15, 2004
Darwin 7.3 march 15, 2004 Mac OS X 10.3.4 may 26, 2004 Mac OS X 10.3.4 Server may 26, 2004 Solaris 9 OE 4/04 april 1, 2004
Darwin 7.4 may 26, 2004 Mac OS X 10.4 (Tiger beta) june 28, 2004
Tru64 Unix V5.1B-2 may 2004 Unicos/mp 2.4 march 2004 IRIX 6.5.23 IRIX 6.5.24 february 4, 2004 may 5, 2004 NonStop-UX C63 february 6, 2004 OpenServer 5.0.7 Update Pack 2 february 18, 2004 Debian GNU/Hurd K6 may 9, 2004
IRIX 6.5.25 august 4, 2004 OpenServer 5.0.7 Update Pack 3 july 9, 2004
SCO UnixWare 7.1.4 Maintenance Pack 1 july 2004 Linux 2.6.8 august 13, 2004 Diamond SVR6 (announced) august 3, 2004 Linux 2.4.27 august 7, 2004
z/OS, z/OS.e Unix V1R5 march 26, 2004 HP-UX 11.23/11iv2/0403 march 2004 Linux 2.0.40 february 8, 2004 Linux 2.2.26 february 24, 2004
AIX 5L v5.2 ML 3 may 2004 AIX 5L v5.3 (announced) july 13, 2004
NetBSD 2.0 RC1 september 27, 2004 FireFly BSD 1.0 september 2004
Triance OS 1.0-BETA august 23, 2004 FreeBSD 5.3-BETA1 august 22, 2004 FreeBSD 5.3 november 6, 2004
MirBSD #8-beta october 16, 2004 OpenBSD 3.6 october 29, 2004
Darwin 8.0b1 september 2004 Mac OS X 10.4 (Tiger beta 2) october 30, 2004 Mac OS X 10.3.6 november 5, 2004
Darwin 7.6 november 6, 2004 Mac OS X 10.3.7 december 15, 2004 Mac OS X 10.3.7 Server december 15, 2004
Darwin 7.7 december 15, 2004 Mac OS X 10.3.8 february 9, 2005 Mac OS X 10.3.8 Server february 9, 2005
Mac OS X 10.3.6 Server november 5, 2004 Solaris 9 OE 9/04 august 16, 2004
Solaris 10 (announced) november 15, 2004 Unicos/mp 2.5 november 2004 IRIX 6.5.26 november 3, 2004 Debian GNU/Hurd K7 september 22, 2004
SCO UnixWare 7.1.4 Maintenance Pack 2 february 2005 Linux 2.6.8.1 august 14, 2004 Linux 2.6.9 october 18, 2004 Linux 2.6.10 december 24, 2004
Linux 2.4.28 november 17, 2004 z/OS Unix V1R6 september 24, 2004 HP-UX 11.23/11iv2/0409 (IA/PA) september 2004
AIX 5L v5.2 ML 5 january 2005 AIX 5L v5.3 Maintenance Level 1 january 2005
2005
NetBSD 2.0.2 april 15, 2005 PC-BSD 0.7 may 18, 2005 DragonFly BSD 1.2.0 march 8, 2005 PC-BSD 0.7.8 july 18, 2005
DesktopBSD 1.0-RC1 july 25, 2005 FreeBSD 6 FreeBSD 6 BETA 3 (announced) august 29, 2005 july 2, 2005 FreeBSD 5.4 may 9, 2005 OpenBSD 3.7 may 19, 2005
Darwin 8.0.1 april 29, 2005 Mac OS X 10.4 april 29, 2005 Mac OS X 10.4.1 may 16, 2005
Darwin 8.1 may 16, 2005 Mac OS X 10.4.2 july 12, 2005
IRIX 6.5.27 february 2, 2005 OpenServer 6 (Legend beta) february 23, 2005 Gnuppix GNU/Hurd-L4 0503 march 1, 2005
Tru64 Unix V5.1B-3 june 2, 2005 IRIX 6.5.28 august 3, 2005 OpenServer 6 Maintenance Pack 1 august 4, 2005
2006
NetBSD 2.0.3 october 31, 2005 PC-BSD 0.8.3 october 23, 2005 NetBSD 2.1 november 2, 2005 NetBSD 3.0 december 23, 2005 PC-BSD 1.0rc1 november 10, 2005 DesktopBSD 1.0-RC3 november 26, 2005 FreeBSD 6.0 november 4, 2005 PC-BSD 1.0rc2 january 20, 2006 PC-BSD 1.0 april 28, 2006 DragonFly BSD 1.4.4 april 23, 2006 FreeBSD 6.1 may 8, 2006 FreeBSD 5.5 may 25, 2006 OpenBSD 3.9 may 1, 2006 GNU-Darwin 1.1 Opteron may 26, 2006 PC-BSD1.1 may 28, 2006
Darwin 8.3 october 31, 2005 Mac OS X 10.4.3 october 31, 2005
FreeDarwin PR1 march 16, 2006 Darwin 8.4 Darwin 8.5 Darwin 8.6 jan. 10, 2006 february 15, 2006 april 10, 2006 Mac OS X Mac OS X Mac OS X 10.4.4 10.4.6 10.4.5 january 10, 2006 april 3, 2006 february 15, 2006
Mac OS X 10.4.3 Server october 31, 2005 Solaris 9 OE 9/05 september 3, 2005
IRIX 6.5.29 february 8, 2006 OpenServer 6 Maintenance Pack 2 march 7, 2006 Debian GNU/Hurd K11 april 26, 2006 Plan 9 20060522 may 21, 2006
Solaris 11 beta Nevada build 23 october 18, 2005 Linux 2.6.14 october 27, 2005
SCO UnixWare 7.1.4 Maintenance Pack 3 january 2006 Linux 2.6.15 january 2, 2006
Linux 2.4.32 november 16, 2005 z/OS Unix V1R7 september 30, 2005 HP-UX 11.11/11iv1/0509 september 2005
Minix 3 V3.0, V3.1, V3.1.1 october 24, 2005 AIX 5L v5.1 ML 9 september 2005 AIX 5L v5.2 ML 7 september 2005 AIX 5L v5.3 ML 3 september 2005
Minix 3 V3.1.2a may 29, 2006 AIX 5L v5.2 Technology Level 8 february 2006 AIX 5L v5.3 Technology Level 4 february 2006
NetBSD 3.0.1 july 24, 2006 PC-BSD 1.11 june 19, 2006 PC-BSD 1.2 july 12, 2006 DragonFly BSD 1.6.0 july 24, 2006
NetBSD 3.0.2 november 4, 2006 NetBSD 3.1 november 4, 2006 PC-BSD 1.3 december 31, 2006
PC-BSD 1.3.01 january 6, 2007 DragonFly BSD 1.8.0 january 30, 2007 FreeBSD 6.2 january 15, 2007 DragonFly BSD 1.8.1 march 27, 2007
Darwin 8.7 august 16, 2006 Mac OS X 10.4.7 june 27, 2006 Mac OS X 10.5 (Leopard, beta) august 7, 2006 Mac OS X 10.4.7 Server june 27, 2006 Solaris 10 6/06 june 26, 2006 Mac OS X 10.4.8 Server september 30, 2006 Mac OS X 10.4.8 september 30, 2006
Mac OS X 10.4.9 Server march 13, 2007 Solaris 10 11/06 december 12, 2006 Tru64 Unix V5.1B-4 december 2006
Debian GNU/Hurd K14 november 27, 2006 Plan 9 20060628 june 28, 2006
Linux 2.4.33 august 11, 2006 z/OS Unix V1R8 september 29, 2006 HP-UX 11.23/11iv2/0609 september 2006
2007
NetBSD 4.0 RC3 october 19, 2007 PC-BSD 1.4 september 24, 2007 DragonFly BSD 1.10.1 august 21, 2007
DragonFly BSD 1.10.0 august 6, 2007 DesktopBSD 1.6-RC3 july 25, 2007
PureDarwin 2007 iPod OS 1.1 sept. 13, 2007 OpenBSD 4.1 may 1, 2007 iPhone OS 1.0.2 august 21, 2007 iPhone OS 1.1.1 sept. 27, 2007
Darwin 8.10 october 30, 2007 Darwin 9.0 october 30, 2007 Mac OS X 10.5 (Leopard) october 26, 2007
Mac OS X 10.4.10 Server june 20, 2007 Solaris 10 update 4 8/07 september 4, 2007
OpenSolaris (build 78) october 29, 2007 Solaris 11 beta Nevada build 74 october 9, 2007 Linux 2.6.21 april 26, 2007 Linux 2.6.22 july 8, 2007 Linux 2.6.23 october 9, 2007 Linux 2.4.35 july 26, 2007 z/OS Unix V1R9 august 7, 2007 HP-UX 11.23/11iv2/0706 june 2007 HP-UX 11.31/11iv3 Update 1 (0709) september 2007
Minix 3 V3.1.3a june 8, 2007 AIX 6 open beta july 11, 2007 AIX 5L v5.2 TL 10 june 2007 AIX 5L v5.3 TL6 june 2007
NetBSD 4.0 december 19, 2007 PC-BSD 1.4.1 november 16, 2007 PC-BSD 1.5 march 12, 2008 DesktopBSD 1.6 january 9, 2008 FreeBSD 6.3 january 18, 2008 DragonFly BSD 1.12 february 26, 2008 PC-BSD 1.5.1 april 23, 2008 DragonFly BSD 1.12.2 april 20, 2008
FreeBSD 7.0 february 27, 2008 MirBSD #10 march 16, 2008
iPhone OS 1.1.4 february 26, 2008 AppleTV 2.0 feb. 12, 2008 Darwin 9.2 february 13, 2008 AppleTV 2.0.1 march 28, 2008
iPhone OS 2.0 july 11, 2008 AppleTV 2.1 july 10, 2008 Darwin 9.3 june 19, 2008
Darwin 8.11 november 14, 2008 Darwin 9.1 november 15, 2007 Mac OS X 10.4.11 november 14, 2007 Mac OS X 10.5.1 november 15, 2007 Mac OS X 10.4.11 Server november 14, 2007 Mac OS X 10.5.1 Server november 15, 2007
Mac OS X 10.5.2 Server february 11, 2008 Solaris 10 update 5 05/08 april 17, 2008
OpenServer 6 Maintenance Pack 3 november 2, 2007 Debian GNU/Hurd K15 november 19, 2007 Debian GNU/Hurd K16 december 21, 2007 OpenSolaris (build 86) march 4, 2008 OpenSolaris 2008.05 (Indiana) may 5, 2008
SCO UnixWare 7.1.4 Maintenance Pack 4 june 11,2008 Linux 2.6.26 july 13, 2008
HP-UX 11.23/11iv2/0712 december 2007 HP-UX 11.31/11iv3 Update 2 (0803) march 2008
2008
NetBSD 4.0.1 october 14, 2008 PC-BSD 7 september 16, 2008 DragonFly BSD 2.0 july 20, 2008 FreeBSD 6.4 november 28, 2008 DragonFly BSD 2.2 february 17, 2009
QNX Neutrino RTOS 6.4.0 october 30, 2008 AppleTV 2.2 october 2, 2008
iPhone OS 2.2 november 21, 2008 AppleTV 2.3 november 20, 2008 Darwin 9.6 december 18, 2008
iPhone OS 2.2.1 january 27, 2009 AppleTV 2.3.1 february 25, 2009
Linux 2.4.37 december 2, 2008 z/OS Unix V1R10 september 26, 2008
2009
NetBSD 5.0 april 29, 2009 PC-BSD 7.1 april 11, 2009 DragonFly BSD 2.2.1 april 26, 2009 FreeBSD 8.0 beta 1 july 7, 2009 FreeBSD 7.2 may 4, 2009 PC-BSD 7.1.1 july 6, 2009 DragonFly BSD 2.4 september 16, 2009 DesktopBSD 1.7 september 7, 2009 FreeBSD 8.0 RC1 september 21, 2009 NetBSD 5.0.1 august 2, 2009
OpenBSD 4.5 may 1, 2009 iPhone OS 3.0 QNX Neutrino RTOS 6.4.1 june 17, 2009 may 2009 AppleTV 2.4 june 24, 2009 Darwin 9.7 may 14, 2009
OpenBSD 4.6 october 18, 2009 iPhone OS 3.1.2 october 8, 2009 AppleTV 3.0 october 29, 2009
Darwin 10.0 august 28, 2009 Mac OS X 10.6 (Snow Leopard) august 28, 2009
Darwin 10.1 september 15, 2009 Mac OS X 10.6.1 september 10, 2009
Mac OS X 10.5.7 Server may 12, 2009 Solaris 10 update 7 05/09 april 30, 2009 Tru64 Unix V5.1B-5 march 2009
Mac OS X 10.6.1 Server september 10, 2009 Solaris 10 update 8 10/09 october 8, 2009
HP-UX 11.31/11iv3 Update 4 (0903) april 9, 2009 Minix 3 V3.1.4 (4203) march 26, 2009 AIX 6.1 TL3 may 2009
2010
NetBSD 5.0.2 february 12, 2010 PC-BSD 8.0 february 22, 2010 DragonFly BSD 2.6.1 april 6, 2010 FreeBSD 8.0 november 26, 2009 FreeBSD 7.3 march 23, 2010 iOS 4.0 june 21, 2010 OpenBSD 4.7 may 19, 2010 iPhone OS 3.2 april 3, 2010 iOS 4.0.1 july 15, 2010 iOS 4.0.2 august 11, 2010 iOS 4.1 sept. 8, 2010 OpenBSD 4.8 november 1, 2010 FreeBSD 8.1 beta 1 may 29, 2010 FreeBSD 8.1 july 23, 2010 PC-BSD 8.1 july 20, 2010
iPhone OS 3.1.3 february 2, 2010 AppleTV 3.0.1 november 7, 2009 Darwin 10.2 november 13, 2009 Mac OS X 10.6.2 november 9, 2009
AppleTV 3.0.2 february 10, 2010 Darwin 10.3 april 1, 2010 Mac OS X 10.6.3 march 29, 2010
iOS 3.2.2 august 11, 2010 QNX Neutrino RTOS 6.5.0 july 2010
Darwin 10.4 june 17, 2010 Mac OS X 10.6.4 june 15, 2010 Mac OS X 10.6.5 november 10, 2010
Mac OS X 10.6.5 Server november 10, 2010 Solaris 10 update 9 09/10 september 8, 2010 Tru64 Unix V5.1B-6 october 2010
OpenIndiana build 147 september 14, 2010 OpenSolaris 2010.03 march 2010
HP-UX 11.31/11iv3 Update 6 (1003) march 2010 Minix 3 V3.1.5 november 5, 2009 Minix 3 V3.1.7 june 16, 2010 AIX 7 open beta july 14, 2010
HP-UX 11.31/11iv3 Update 7 (1009) september 2010 Minix 3 V3.1.8 october 4, 2010 AIX 7.1 september 10, 2010
2011
NetBSD 5.1 november 19, 2010 PC-BSD 8.2 february 24, 2011 DragonFly BSD 2.10.1 april 26, 2011 FreeBSD 8.2 february 24, 2011 FreeBSD 7.4 february 24, 2011 iOS 4.3 march 9, 2011
OpenBSD 5.0 beta july 18, 2011 Darwin 11.0 july 20, 2011
Darwin 10.6 january 9, 2011 Mac OS X 10.6.6 january 6, 2011 Mac OS X 10.6.7 march 21, 2011 Mac OS X 10.7 beta (Lion) february 24, 2011 Mac OS X 10.6.7 Server march 21, 2011
Darwin 10.7 march 28, 2011 Mac OS X 10.6.8 june 23, 2011
Linux 2.6.39 may 18, 2011 Linux 3.0 july 22, 2011
Darwin 11.1 august 25, 2011 Mac OS X 10.6.8 v1.1 july 25, 2011 OS X Lion 10.7.1 august 20, 2011
1.9 Annexe 3
1.9 Annexe 3
Ci joint dans la version imprime de ce cours, un historique des direntes version de WINDOWS. Adresse web du document fourni : http://www.levenez.com/windows/
c T.Besanon (v14.0.1025)
Administration UNIX
24 / 918
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
PC-DOS 5.02 august 1992 Windows for PEN Computing 1.0 1992 Windows 3.1 (Janus) april 6, 1992 Windows 4 Chicago (announced) july 4, 1992 Windows for Workgroups 3.1 october 27, 1992 Windows 3.11
PC-DOS 6.00 1993 Windows for PEN Computing 3.0 may 1993
Win-OS/2 1992
1994
1995
1996
1997
PC-DOS 7 revision 1
Windows NT 4.0 Option Pack december 1997 Windows NT 4.0 Enterprise Edition december 15, 1997
1998
Windows NT 4.0 Service Pack 4 october 1998 Windows NT Embedded 4.0 (beta 1) february 22, 1999 Windows NT Terminal Server Edition (Hydra) september 13, 1998
1999
Xbox (beta) october 1999
Windows NT 4.0 Service Pack 6 october 1999 Windows NT Embedded 4.0 (Impala) september 27, 1999 Windows NT TSE Service Pack 5 november 25, 1999
Windows CE 2.12
2000
Xbox (announced) march 9, 2000 MS-DOS 8.0 september 14, 2000
Windows Me (Georgia, build 4.90.3000) september 14, 2000 Whistler Embedded beta 1 december 19, 2000
Windows 2000 (build 5.0.2195) february 17, 2000 Windows 2000 Datacenter Server (beta 2) may 23, 2000 Windows NT 4.0 Service Pack 6a 2000 Whistler Server (alpha) june 30, 2000
Windows 2000 Service Pack 1 (Asteroid) july 27, 2000 Windows 2000 Datacenter Server (release candidate 1) july 26, 2000 Windows 2000 Datacenter Server september 26, 2000 Whistler Server (beta 1) october 31, 2000 Embedded Whistler (beta 1) december 18, 2000 Windows NT TSE Service Pack 6 may 2, 2000
2001
Xbox (announced) january 6, 2001
Neptune
eComStation OS/2 v1.0 october 4, 2001 Stinger (beta) february 22, 2001 PocketPC 2002 (Merlin) september 6, 2001
2002
Xbox november 15, 2001
Windows XP Media Center Edition (Freestyle build 5.1.2600.1106) october 31, 2002 Windows Longhorn (alpha build 3683) november 19, 2002
Windows XP Professional october 25, 2001 Windows XP Home Edition october 25, 2001 Windows 2000 SRP1 january 30, 2002 Windows XP Tablet Edition (announced) november 11, 2001 Windows .NET Server (Whistler Server beta 3) november 19, 2001
Windows 2000 Service Pack 3 august 1, 2002 Windows XP Tablet PC Edition (beta) june 25, 2002 Windows .NET Server (Pre-RC1 build 3604) february 11, 2002 Windows .NET Server (RC1) july 24, 2002 Windows XP Tablet PC Edition november 7, 2002 Windows .NET Server 2003 (announced) november 18, 2002 Windows Advanced Server Limited Edition 1.2 october 2002
Windows Advanced Server Limited Edition 1.2 (announced) july 8, 2002 Windows 2000 Server Service Pack 3 july 18, 2002 Windows CE for Automotive 3.5 april 22, 2002 Windows CE for Smart Displays (announced) june 26, 2002 Windows CE .NET 4.1 (Jameson) july 30, 2002
2003
Windows Server System Longhorn XP (Longhorn) Professional (announced) (alpha 3 build 4015) april 16, 2003 april 2003
Windows 2000 SP4 beta december 19, 2002 Windows XP Tablet PC Edition (MUIRP beta) march 12, 2003 Windows .NET Server 2003 (RC2) december 2, 2002 Windows Server 2003 (announced) january 7, 2003 Windows Server 2003 (RTM build 5,2,3790)
Windows Server 2003 for 64-bit Itanium 2 Systems (Datacenter, Enterprise) april 24, 2003
Windows Server 2003 (Standard, Datacenter, Enterprise, Web Server) april 24, 2003 Windows Server 2003 Small Business Edition (announced) april 23, 2003 Windows Server 2003 for AMD processor 64-bit (announced) april 9, 2003
Windows Server 2003 (SP1 beta build 1023) july 3, 2003 Windows Server 2003 Small Business Edition (RC1) july 1, 2003
Mira (MUIRP beta) march 12, 2003 Windows CE .NET 4.2 (McKendric) april 23, 2003 Media2Go (beta) january 9, 2003 eComStation v1.1 may 24, 2003 Windows Mobile 2003 for Smartphone (announced) june 23, 2003 Windows Mobile 2003 for Pocket PC (Ozone) june 23, 2003
Windows Powered Smartphone 2002 (update) february 24, 2003 PocketPC 2003 (Ozone) (announced)
Windows XP 64-Bit Edition for AMD64, Version 2003 (beta build 1039) september 2, 2003
Windows XP 64-Bit Edition for 64-Bit Extended Systems (beta) september 23, 2003 Windows XP Media Center Edition 2004 (Harmony, build 5.1.2600.1217) september 30, 2003 Windows Longhorn (PDC build 4051) october 27, 2003
Windows XP 64-Bit Edition for 64-Bit Extended Systems (beta CPP) february 3, 2004
Windows Server 2003 for 64-bit Itanium 2 Systems Standard Edition (announced) october 15, 2003 Windows XP Tablet PC Edition 2004 (announced) november 17, 2003 Windows Server 2003 (SP1 beta build 1159) february 19, 2004
Windows Small Business Server 2003 (RTM) (Bobcat) september 16, 2003 Windows Server 2003 for AMD 64-bit Systems (beta build 1039) september 2, 2003
Windows Small Business Server 2003 october 9, 2003 Windows Server 2003 for 64-Bit Extended Systems (beta) october 15, 2003 Windows Server 2003 for 64-Bit Extended Systems (beta CPP) january 6, 2004 Windows Automotive .NET Connected Car (announced) january 8, 2004
Windows Mobile for Portable Media Centers (announced) october 27, 2003
2004
Windows XP 64-Bit Edition for 64-Bit Extended Systems (announced) july 29, 2004
Windows Longhorn (HEC build 4074) may 5, 2004 Windows XP Starter Edition (beta) june 23, 2004
Windows Server 2003 R2 (announced) may 26, 2004 Windows Server HPC Edition (announced) may 25, 2004
Windows Server 2003 for 64-Bit Extended Systems (beta CPP) august 18, 2004
Windows CE 5.0 (Macallan) (announced) march 29, 2004 Portable Media Center (beta) march 18, 2004
Windows Mobile 2003 Second Edition for Smartphone march 24, 2004 Windows Mobile 2003 Second Edition for Pocket PC march 24, 2004
Windows Embedded for Point of Service (announced) october 3, 2004 Windows XP Embedded Service Pack 2 (Technology Preview) october 3, 2004 Windows XP Embedded Service Pack 2 december 1, 2004 Windows XP Professional x64 Edition (RC1 build 1289) january 5, 2005 Windows XP Media Center Edition 2005 (Symphony, build 5.1.2700.2180) october 12, 2004 Windows XP Professional x64 Edition (RC2 build 1433) february 2005 Windows XP Professional x64 Edition (RTM build 5.2.3790.1830) march 30, 2005
Windows XP Pro Eiger & Mnch (beta) april 18, 2005 Windows XP Professional Edition N, Home Edition N (announced) Windows Server 2003 march 28, 2005 (Standard, Enterprise, Datacenter) x64 Edition (RTM) Windows Server 2003 march 30, 2005 SP1 (buiild 1830) march 30, 2005
Windows Server 2003 (SP1 beta2 build 1247) october 18, 2004
Windows Server 2003 (SP1 RC1) december 6, 2004 Windows Server 2003 R2 (beta) december 8, 2004 Windows Server 2003 Compute Cluster Edition (announced) november 8, 2004
2005
Xbox 360 (announced) may 12, 2005
Windows XP Professional x64 Edition april 25, 2005 Windows Server Longhorn (beta 1) july 27, 2005
Windows XP Media Center Edition 2005 Update Rollup 2 (Emerald, build 5.1.2715.2883) october 17, 2005
Windows XP SP3 (announced) may 2, 2005 Windows XP Pro Eiger (announced) may 13, 2005 Windows 2000 Update Rollup june 27, 2005 Windows XP Professional Edition N, Home Edition N june 15, 2005 Windows Server 2003 x64 Edition (build 5.2.3790.1830) april 25, 2005 Windows Server 2003 R2 (trial) may 6, 2005
Windows Fundamentals for Legacy PCs (announced) september 2005 Windows 2000 Update Rollup patch september 13, 2005
Windows Server 2003 R2 RC0 august 31, 2005 Windows Server 2003 Compute Cluster Edition (beta 1) september 15, 2005 Windows Automotive 5.0 july 12, 2005
Windows Server 2003 R2 RC1 october 17, 2005 Windows Server 2003 Compute Cluster Edition (beta 2) november 15, 2005
2006
Windows Server Longhorn (beta 2, build 5600) august 2006 Windows Vista (RTM, build 6000.16386) (Longhorn) november 8, 2006
Windows Vista (beta 2, build 5384.4) may 23, 2006 Windows XP Home Edition K Windows XP Professional KN august 24, 2006
Windows Server 2003 SP2 beta march 30, 2005 Windows Server 2003 R2 february 1, 2006 Windows Compute Cluster Server 2003 june 9, 2006
2007
Windows XP Professional x64 Edition SP2 (build 3959) march 12, 2007
Windows Server Longhorn Web, Standard, Enterprise, Datacenter Edition (beta 3, build 6001.16510, SP1) april 25, 2007
Windows Vista Home Basic Edition, Home Premium Edition Business Edition, Enterprise Edition, Ultimate Edition Ultimate Limited Numbered Signature Edition january 30, 2007 Windows Vista Home Basic Edition N / K / KN Business Edition N / K / KN, Starter Edition, Starter Edition N / KN (announced) january 30, 2007
Windows Vista SP1 (beta, build 16659) september 27, 2007 Windows 7 (announced) july 19, 2007 Windows XP Professional (N) SP2c august 9, 2007
Windows Server 2003 x64 Edition SP2 (build 3959) march 12, 2007 Windows Server 2003 SP2 (build 3959) march 12, 2007 Windows Server 2003 R2 SP2 march 12, 2007
Windows Home Server 1.0 RTM (build 5.2.3790.4062) july 16, 2007
2008
Windows Server 2008 Standard [32-bit] [without Hyper-V] Edition Windows Server 2008, Enterprise [32-bit] [without Hyper-V] Edition Windows Server 2008 Datacenter [32-bit] [without Hyper-V] Edition Windows Web Server 2008 [32-bit] Edition Windows Storage Server 2008 [32-bit] Edition Windows Small Business Server 2008 Edition Windows Essential Business Server 2008 Edition Windows Server 2008 for Itanium-based Systems (announced) november 12, 2007 Windows Vista SP1 (RC) november 15, 2007
Windows Vista SP1 (RC public 2) january 9, 2008 Windows 7 (M1, build 6519.1) january 19, 2008
Windows Embedded Standard (announced) april 15, 2008 Windows Embedded Enterprise (announced) april 15, 2008
Windows Server 2008 SP2 RC1 build 6002.16670 february 19, 2009
Windows Vista SP1 (build 6001) march 18, 2008 Windows 7 (M3, build 6789.1) september 7, 2008 Windows XP SP3 (RTM) april 21, 2008 Windows XP SP3 may 6, 2008
Windows Vista SP2 beta december 4, 2008 Windows 7 pre-beta (M3, build 6933) october 28, 2008 Windows 7 beta (build 7000) january 7, 2009 Windows 7 RC (build 7100) april 30, 2009
Windows HPC Server 2008 (build 1345, beta 2) may 17, 2008 Windows Home Server Power Pack 1 build 6.0.1800 july 21, 2008 Windows Embedded NavReady 2009 june 16, 2008 Windows Embedded Compact (announced) april 15, 2008
Windows Home Server Power Pack 2 build 6.0.2030 march 24, 2009
2009
2010
Windows Vista SP2 may 26, 2009 Windows 7 Starter Edition, Home Basic Edition, Home Premium Edition, Professional Edition, Ultimate Edition, Enterprise Edition (RTM build 7600.16385) july 22, 2009
Windows HPC Server 2008 R2 september 20, 2010 Windows Home Server Power Pack 3 july 17, 2009 Windows Home Server V2 Vail public beta april 26, 2010
Windows Embedded Compact 7 CTP june 1, 2010 Windows Phone 7 Series (announced) february 15, 2010 eComStation 2.0 may 21, 2010 Windows Phone 7 TC july 18, 2010 Windows Phone 7 RTM september 1, 2010
2011
Windows 8 beta M3 build 7971 march 2011 Windows 7 SP1 RC october 27, 2010 Windows 7 SP1 february 22, 2011 Windows Thin PC RTM june 6, 2011
Windows Embedded Compact 7 march 1, 2011 Windows Phone 7 october 11, 2010 Windows Phone 7 update build 7008 february 21, 2011 eComStation 2.1 may 20, 2011 Windows Phone 7.5 (Mango RTM) july 26, 2011
1.10 Annexe 4
1.10 Annexe 4
Ci joint dans la version imprime de ce cours, un article intitul UNIX : lUnivers a 40 ans du hors-srie 46 de Fvrier/Mars 2010 de LINUX Magazine France.
c T.Besanon (v14.0.1025)
Administration UNIX
25 / 918
Chapitre 2
c T.Besanon (v14.0.1025)
Administration UNIX
26 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
27 / 918
grer les comptes utilisateurs (tche simple et automatisable) assister et duquer les utilisateurs (rponses leurs questions, documentation jour) grer les logiciels (installation, conguration, mise jour) grer le matriel (panne, remplacement, ajout) assurer la scurit du systme et des utilisateurs (sauvegardes ables et rgulires, contrle daccs, utilisations abusives de ressources) vrication de ladquation du matriel avec son utilisation (identier les goulets dtranglement) maintenance de premier niveau (diagnostiquer une panne, appel de la maintenance constructeur) gestion quotidienne (multiples tches, petites ou grosses)
c T.Besanon (v14.0.1025)
Administration UNIX
28 / 918
Autres facettes du mtier : diplomatie, police aspects lgaux (chirement, etc.) enqutes judiciaires (vol, saccage, piratage informatique, articles pdophiles, etc.) relations commerciales politique dutilisation des machines Bien sr, la charge de travail dpend de la taille du site.
Ladministrateur est en premire ligne lorsquun problme surgit. Cest lui quon incrimine naturellement lorsque quelque chose ne marche pas.
c T.Besanon (v14.0.1025)
Administration UNIX
29 / 918
Votre pire ennemi, cest vous : attention ce que vous faites ! Exemple rm /tmp * (explications sur lexpansion des metacharacters du shell page 627) Si vous tes fatigu, ne faites rien. Pas de modication importante un vendredi aprs-midi. Soyez sr de pouvoir revenir en arrire : sauvegarder tout chier qui doit tre modi :
% mv config.ini config.ini.orig % cp config.ini.orig config.ini % vi config.ini
2 3 4
5 6
Documentez ce que vous faites. Faites comme si vous ne pouviez pas venir demain.
c T.Besanon (v14.0.1025)
Administration UNIX
30 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
31 / 918
Administrateur dUNIX : dabord un utilisateur expert dUNIX environnement utilisateur aide en ligne systme de chiers utilisation du shell utilisation dun diteur de texte commandes de base programmation shell
c T.Besanon (v14.0.1025)
Administration UNIX
32 / 918
2.4 Annexe 1
2.4 Annexe 1
Ci joint dans la version imprime de ce cours, un document humoristique sur la journe dun administrateur systmes.
c T.Besanon (v14.0.1025)
Administration UNIX
33 / 918
Chacun lINRA, quel que soit son centre, quel que soit son corps dappartenance, utilise couramment le reseau : messagerie, accs Internet, accs aux outils-scientiques, accs Yole,. . . Le rseau est dsormais un point de passage oblig. Si pour lutilisateur tout semble fonctionner "tout seul", il est certain que la condition de cette apparente facilit est un immense travail qui se droule en coulisses, avec une pluralit dacteurs, en gnral de la direction de linformatique, garantie de la qualit et de la cohrence de lensemble. "La journe dun informaticien de centre", acteur local par excellence, conte une partie de la face cache de la ralit exige par la mise en place, la maintenance et lvolution dune telle infrastructure rseau/serveurs). Eh bien oui ! Voil dix-huit mois, Carry-le-Rouet, dans livresse des "journes de la direction de llnformatique , promesse solennelle et inconsidre tait faite au rdacteur en chef de "Iditeur de Liens", de matteler la rdaction de cet article de premire importance ! Et puis, et puis, la gestion des priorits, tche minemment complexe et gourmande en temps, lalgorithme de gestion, totalement imparfait, ont repouss de semaine en semaine, en queue de le dattente, Icriture de ces pages. . . Soudain, tel un archange vengeur surplombant la tourmente, coup de poing sur la table dudit rdacteur ! "Bon ! dis-donc, cest pour quand ta copie ?". . .Rvision en urgence de Ialgorithme de gestion ! Mise en chantier, toutes affaires cessantes, de ce qui commence prendre des allures de pensum !. . .Voici donc le rcit de la palpitante aventure quotidienne dun "informaticien de centre" (IC sous la forme abrge). Mais tout dabord. il importe que vous sachiez comment se dcline le prol dun IC, mtier de gnraliste hautement quali en toutes spcialits informatiques.
PROFIL DUN IC
Une solide formation en informatique mnagre un oeil attentif, des mains expertes : les casseroles sur le feu sont nombreuses ! tous les jours, donner chacun selon ses besoins tous les soirs. faire conserve de la production du jour ranger, nettoyer. remiser, installer, re-installer, il importe que lespace soit dgag pour permettre aux joueurs de sbattre loisir une place pour chaque chose et chaque chose sa place ! (rgle dor de ladministrateur). Des etudes approfondies informaticien(ne) de plomberie moderne Pour rsoudre les problmes de rseaux, il sera indispensable davoir une bonne experience dans les problmes de robinet, les problmes de debit. Ies problmes de circulation. Ies problemes de conduit. Ies stations de distribution et les problmes de rgulation. Un CAP srieux de mecanique applique : savoir monter, dmonter. remonter, congurer, optimiser un maximum de systmes connatre lart dlicat de mettre de lhuile dans les rouages acqurir un air des occurrences problmes et etre capable danticiper laide de bouts de celles nouer, de manire scientique et acrobatique. Une certication "LEGO" Edier des constructions complexes, agrger des briques supplmentaires et remplacer les lments dfectueux : ces oprations doivent pouvoir etre effectues les yeux ferms, des sonneries de tlphone stridentes dans loreille droite, des bips en deux tonalits dans loreille gauche, trois personnes la porte du bureau, sept fenetres sur trois 1
systmes diffrents en attente sur le poste de travail. De bonnes capacits relationnelles : fournir les cartes dorientation, et les rgles du jeu tenir la main des nophytes rassurer les angoisss, les frustrs, les timides, calmer les colreux. ramener les gars accompagner les aventureux dans les passages difciles proposer de nouveaux jouets aux aguerris. On laura compris, Iexercice de cette profession rclame, du soufe de lendurance et un optimisme de bon aloi. Une longue pratique conduit penser quun sens de lhumour toute preuve, peut faciliter considrablement la tche. . . Voici donc notre Ic, parti de bon matin, frais et dispos, guilleret, sautillant sur le chemin de son bureau, btissant dans sa tte, tel Perette et le pot au lait, le planning de sa journe ordinaire . . .
LE PLANNING DUN IC
Mes rendez-vous : 8h30-9h30 : dmnagement de "tartinette", une des machines de centre. Les utilisateurs ont t prvenus la veille, linspection du nouveau logis na sembl recler aucune surprise, les cbles sont prets, tout devrait baigner. . . 11h-12h30 : Audio-confrence de travail du groupe Baoutiltout 13h30 : RV avec un chercheur qui souhaite se sparer de son PC pour une station de travail. . . Mon Pense-bte : appeler la Hot-line TLK pour renseignement technique sur la liaison onduleur/ordinateur re-recontacter GQ pour un code de licence appeler DonneStock pour le changement de plate-forme du produit Rseaulaborieux installer la version 5.07 de Navigateur-Moderne instruire les demandes dextension rseau en attente. Dans les intervalles de temps. rchit notre homme, jinstalle sur le nouveau GQ, Ies imprimantes, les compilateurs Fortiche et Blaise, pendant que sous Solarimax je remets niveau la dernire version de ZZ, je prpare mes transparents pour ma prochaine prsentation de Magic Ware, et le tour est jou se dit-il, grimpant quatre quatre les marches. . .
MA VRAIE JOURNEE
A prsent. reprenez de lendurance et que la vraie ralit vcue les deux pieds sur terre vous emporte plus srement "aux frontires du rel" que la moins mauvaise tlvisuelle srie B. Pom, pom, pom, pom ! ! !. . .8h28. Un message davertissement, je vais stopper tartinette. . . 3 mn aprs : plus personne ne travaille, sauf Dugenou. . .Allo, Gaston Dugenou ? oui, votre appli. . ., ca tourne. . ., ah oui. . ., le message. . ., non, jai pas vu. . .oui, jarrte tout de suite. . . Le champ est libre. . .init 0, et tout et tout. . . Se prolent la porte, trois utilisateurs, des Macs plein les bras ! Bonjour, la formation rseau Mac, cest ici ? Le temps de dtromper ces valeureux apprentis. . . tartinette attend. . . A peine ont-ils tourn les talons. . . Tlphone ! Allo, ici Hiro-Hito, . . . sur ma machine bluejean, jai un problme dimpression, tu pourrais pas regarder, parce que tu comprends, je dois fournir mon papier pour hier soir et jai pas termin. . . et puis au fait, tu ne pourrais pas me donner la nouvelle adresse de Packgenie qui distribue Teletoc . . .
Bien ! bluejean remis sur pieds, notre Ic vole vers tartinette : dbranchements, transport, rebranchements. 9h40 : Iopration dmnagement se solde par un succs. Tout est reparti. Mais pendant ce temps, Ia boite aux lettres de notre ami sest meuble. Pas le temps de lire. . . Re-tlphone : Allo, . . . ici Dupied. St Thermoclim. . . je suis dans le coin. . . je passe vous voir 11h15. . . on pourra voir ensemble les derniers dtails de votre installation. . . on gagnera quelques jours. . . ? Audioconf ou climatisation ? Entre les deux, pas dhsitation : le jugement de Salomon ! une demi-heure Thermoclim, une heure Baoutiltout. Le dpeage commence ! Revenons notre bote aux lettres pleine de moutons ! douze messages. . . La base Oracle n est pas lance : tiens ! ben oui, hier grosse katastrophe, un disque menac dasphyxie par les bases dindex des sauvegardes. En plein vol, la base Oracle a t dmnage. Depuis, patinette (serveur de centre) a reboot (ou comment repartir zro. . .) et les liens symboliques. . . a a ses limites. . . bon. on revoit la copie. . . cest rpar. Demande douverture de compte : du travail pour Mikado (le technicien rseau) Ah. Ia rponse de la hot-line Applox. voir plus tard. . . Les nouveaux tarifs Pleinsoleil : engranger pour consultation. Courtepaille, station isole, rclame cors et cris, sa cascade Renater en chantier. Et que le Megapac a besoin dun upgrade pour la numrotation dix chiffres (dans six jours), et que sinon a va plus marcher, et que pour que la cascade marche, il faudrait que les routeurs soient oprationnels, et que pour a il faudrait avoir reu les upgrades mmoire dicelui, et que renseignements pris. Ia numrotaticn Transpac nest pas concerne par la rforme, et donc on revient la case dpart, o il urge dattendre. . . Dringgg ! ! . . . Ie tlphone vous pargne les suivants. . . 10h45 : Allo, . . . ici Dukoud, . . . bonjour, . . . mon rseau ne marche plus ! ? Restons calme. . . Interrogeons la boule de cristal, pardon, Iutilisateur. . . Pouvez-vous me dire ce qui est afch sur votre cran ? . . . tchzoewrfndbdgr. . . ! Si vous appuyez sur la touche x, ca fait quoi ? . . . brredrrebrredrre.. ! et si vous faites Ctrl Z ? . . . kiuyyuytgfre. . . ! Aprs 5 minutes de dialogue entre une tte et des yeux bras dports, le diagnostic est pos et conrm, la messagerie a des soucis. . . Trifouillage dans les entrailles (virtuelles) du monstre : mais bon sang, cest bien sr, cest le dmon de messagerie qui a perdu le DNS ! Un geste chirurgical simpose, meurtre dudit dmon, suivi de sa rsurrection ! Les phoenix ont toujours fait de belles carrires informatiques. . . . 11h05, jentre en tlconfrence. . . et il ne me reste plus quune page. . . il va falloir faire court ! Eh bien. vous me croirez si vous voulez, mais pendant que laudioconfrence se poursuivait sans notre ami rclam par Dukoud aux alentours de 11h26, patinette a plant de la plus belle manire qui soit. Mais le Dieu des Informaticiens veillait ! Mikado, de retour dune expdition prilleuse (connexion de PC au rseau. cest jamais la mme chose que les autres fois), tient la main de patinette pendant son redmarrage laborieux, . . . trois disques stoppes en pleine course, il faut effacer les traces. . . 12h35 : Laudioconfrence termine, Ic range ses notes et se prend une profonde rexion mtaphysique, sans doute favorise par le creux qui commence sinstaller au fond de son estomac : lhomme aurait-il cr lordinateur son image ? (tel Dieu. . . cf. La Bible) ? Plusieurs raisonnements conduits de conserve, cest monnaie courante (multiprocesseur), le cerveau se dbrouille pour que a marche au mieux (multithread), en utilisant la mmoire court terme (mmoire accs rapide), la mmoire long terme (mmoire accs lent), en travaillant hors du champ de conscience (background), une ide en faisant jaillir dix autres (fork, processus engendrant un autre processus), avec des niveaux dinterruption et des procdures de reprise sur pointeur dans les piles, sans parler des routines, qui me permettent de prparer mon caf du matin sans y penser intensment ! ! La question nest-elle pas des plus angoissantes ? Las, le rappel lordre, physiologique et brutal, des fonctions de nutrition brise net toute tentative dapprofondissement de cette nouvelle voie ouverte la recherche. 13h30 : Contretemps : Albert Dubras reporte son rendez-vous 14h30. Protons de ce petit trou pour appeler GQ 3
et peut-tre enn joindre le prpos la dlivrance des mots de passe. Manque de chance, une fois de plus il est en runion, une fois de plus le message lui sera transmis, Blaise nest pas prt dtre install. . . Chez TVO, la rponse arrive dans la demi-journe. Autre entreprise, autres moeurs. . . 15h : Dubras est reparti, ravi des merveilles promises par sa future acquisition. Plongeon dans la bote aux lettres. Cinq nouveaux messages. . . pas le temps. re-telephone : cette fois ca y est, ca devait arriver. . . tout rseau qui se respecte a au moins une fois dans son existence, subi linnarrable coup de pelleteuse, mais cette fois cen est trop, on a fait original, un coup de perceuse a trou net le cable reliant nos chers connects. . . Je ne vous raconte pas la suite ! De l en aiguille, de coup de l en message, de consultation en interruption. . . Excuse-moi, mais tu pourrais pas venir voir, je suis bloque dans Applox ?. . . Excuse-moi, mais javais dbranch le clavier de ma station, elle ne repart plus. . . Excuse-moi, tu pourrais pas regarder mon terminal, cest tout bizarre quand je clique sur le bouton de gauche. . . ? 17h30 : La n de la journe est proche, et notre Ic se trouve au niveau 9 dinterruption ! Alors plein de courage, il va fermer les niveaux qui peuvent ltre, noter ceux rests ouverts, faire le point sur sa folle journe, rdiger trois transparents de sa prsentation Magic (la date se rapproche implacablement), complter son pense-bte, prparer les demandes dextension rseau, rpondre aux derniers messages arrivs. et passer en revue ltat des machines avant de les laisser leur labeur nocturne et aux utilisateurs insomniaques. . . Vous lavez compris. ce rcit est une pure ction sortie de limagination romanesque dun informaticien surmen. Il est bien vident que toute ressemblance avec des situations ou des personnes existantes ou ayant exist, ne peut relever que dune concidence fortuite et nengage que son auteur.
Simone Desjeunes. UIC Nancy. (paru dans le numro 92 de mars-mai 1997 du magazine de lINRA)
2.5 Annexe 2
2.5 Annexe 2
Ci joint dans la version imprime de ce cours, un document amricain de lassociation SAGE sur les niveaux du mtier dadministrateur systmes.
c T.Besanon (v14.0.1025)
Administration UNIX
34 / 918
Organizations that rely on computing resources to carry out their mission have always depended on systems administration and systems administrators. The dramatic increase in the number and size of distributed networks of workstations in recent years has created a tremendous demand for more, and better trained, systems administrators. Understanding of the profession of systems administration on the part of employers, however, has not kept pace with the growth in the number of systems administrators or with the growth in complexity of system administration tasks. Both at sites with a long history of using computing resources and at sites into which computers have only recently been introduced, systems administrators face perception problems that present serious obstacles to their successfully carrying out their duties. Systems administration is a widely varied task. The best systems administrators are generalists : they can wire and repair cables, install new software, repair bugs, train users, offer tips for increased productivity across areas from word processing to CAD tools, evaluate new hardware and software, automate a myriad of mundane tasks, and increase work ow at their site. In general, systems administrators enable people to exploit computers at a level which gains leverage for the entire organization. Employers frequently fail to understand the background that systems administrators bring to their task. Because systems administration draws on knowledge from many elds, and because it has only recently begun to be taught at a few institutions of higher learning, systems administrators may come from a wide range of academic backgrounds. Most get their skills through on-the-job training by apprenticing themselves to a more experienced mentor. Although the system of informal education by apprenticeship has been extremely effective in producing skilled systems administrators, it is poorly understood by employers and hiring managers, who tend to focus on credentials to the exclusion of other factors when making personnel decisions. Understanding system administrators background, training, and the kind of job performance to be expected is challenging ; too often, employers fall back into (mis)using the job classications with which they are familiar. These job classication problems are exacerbated by the scarcity of job descriptions for systems administrators. One frequently used misclassication is that of programmer or software engineer. Although the primary responsibility of the systems administrator is not to produce code, that is the metric by which programmers are evaluated, and systems administrators thus classied often receive poor evaluations for not being "productive" enough. Another common misclassication is the confusion of systems administrators with operators. Especially at smaller sites, where systems administrators themselves have to perform many of the functions normally assigned (at larger sites) to operators, systems administrators are forced to contend with the false assumption they are non-professional technicians. This, in turn, makes it very difcult for systems administrators to be compensated commensurate with their skill and experience. SAGE, as the professional organization for systems administrators, formed the sage-jobs working group to address these problems. Its goals include the creation of a set of appropriate job descriptions for systems administrators and promotion of their adoption by organizations that employ systems administrators. Below are the current job description templates that the working group has produced. We have created an additional list of check-off items. The templates are intended to describe the core attributes of systems administrators at various levels of job performance, while the check-off list is intended to augment the core descriptions. In particular the check-off list is intended to address site-specic needs, or special areas of expertise that a systems administrator may have. Job descriptions for more experienced systems administrators or more senior positions will typically include more items from the check-off list. As a SAGE member, wed like to encourage your comments on the work to date. Please send your input to the sage-jobs working group, sage-jobs@usenix.org, or to the Chair, Tina Darmohray, tmd@eticket.llnl.gov. Feel free to join the working group as well by sending email to majordomo@usenix.org, with the body of the 1
message subscribe
sage-jobs.
Denitions
A "small site" has 1-10 computers, all running the same operating system, and 20 or fewer users. (A computer used by only the administrator does not qualify as a site.) A "midsized site" has up to 100 systems, running no more than 3 different operating systems, and up to 100 users. A "large site" has 100 or more computers, potentially running more than one operating system, and 100 or more users. The following are the core templates :
Novice Required skills : Has strong inter-personal and communication skills ; is capable of explaining simple procedures in writing or verbally, has good phone skills. Is familiar with UNIX and its commands/utilities at a user level ; can edit les, use a a shell, nd users home directories, navigate through the le system, and use i/o redirection. Is able to follow instructions well. Required background : 2 years of college or equivalent post-high-school education or experience. Desirable : A degree or certicate in computer science or a related eld. Previous experience in customer support, computer operations, system administration or another related area. Motivated to advance in the profession. Appropriate responsibilities : Performs routine tasks under the direct supervision of a more experienced system administrator. Acts as a front-line interface to users, accepting trouble reports and dispatching them to appropriate system administrators. Junior Required skills : Strong inter-personal and communication skills ; capable of training users in applications and UNIX fundamentals, and writing basic documentation. High skill with of most UNIX commands/utilities. Familiarity with most basic system administration tools and processes ; for example, can boot/shutdown a machine, add and remove user accounts, use backup programs and fsck, maintain system database les (groups, hosts, aliases). Fundamental understanding of a UNIX-based operating system ; for example, understands job control, soft and hard links, distinctions between the kernel and the shell. Required background : One to three years of system administration experience. Desirable : A degree in computer science or a related eld. Familiarity with networked/distributed computing environment concepts ; for example, can use the route command, add a workstation to a network, and mount remote lesystems. Ability to write scripts in some administrative language (Tk, Perl, a shell). Programming experience in any applicable language. 2
Appropriate responsibilities : Administers a small site alone or assists in the administration of a larger system. Works under the general supervision of a system administrator or computer systems manager. Intermediate/Advanced : Required skills : Strong inter-personal and communication skills ; capable of writing purchase justications, training users in complex topics, making presentations to an internal audience, and interacting positively with upper management. Independent problem solving ; self-direction. Is comfortable with most aspects of UNIX systems administration ; for example, conguration of mail systems, system installation and conguration, printing systems, fundamentals of security, installing thirdparty software. A solid understanding of a UNIX-based operating system ; understands paging and swapping, interprocess communication, devices and what device drivers do, le system concepts ("inode", "superblock"). Familiarity with fundamental networking/distributed computing environment concepts ; can congure NFS and NIS, can use nslookup or dig to check information in the DNS, understands basic routing concepts. Ability to write scripts in some administrative language (Tk, Perl, a shell). Ability to do minimal debugging and modication of C programs. Required background : Three to ve years systems administration experience. Desirable : A degree in computer science or a related eld. Signicant programming background in any applicable language. Appropriate responsibilities : Receives general instructions for new responsibilities from supervisor. Administers a mid-sized site alone or assists in the administration of a larger site. Initiates some new responsibilities and helps to plan for the future of the site/network. Manages novice system administrators or operators. Evaluates and/or recommends purchases ; has strong inuence on purchasing process. Senior : Required skills : Strong inter-personal and communication skills ; capable of writing proposals or papers, acting as a vendor liaison, making presentations to customer or client audiences or professional peers, and working closely with upper management. Ability to solve problems quickly and completely. Ability to identify tasks which require automation and automate them. A solid understanding of a UNIX-based operating system ; understands paging and swapping, interprocess communication, devices and what device drivers do, le system concepts ("inode", "superblock"), can use perfomance analysis to tune systems. A solid understanding of networking/distributed computing environment concepts ; understands principles of routing, client/server programming, the design of consistent network-wide lesystem layouts. Ability to program in an administrative language (Tk, Perl, a shell), to port C programs from one platform to another, and to write small C programs. Required background : More than ve years previous systems administration experience. Desirable : A degree in computer science or a related eld. Extensive programming background in any applicable language. Publications within the eld of system administration. 3
Appropriate responsibilities : Designs/implements complex local and wide-area networks of machines. Manages a large site or network. Works under general direction from senior management. Establishes/recommends policies on system use and services. Provides technical lead and/or supervises system administrators, system programmers, or others of equivalent seniority. Has purchasing authority and responsibility for purchase justication. These are things you might want to add to the base job descriptions as either required or desirable. Local Environment Experience Experience with the specic operating systems, applications, or programming languages in use at the site (for example SunOS, AIX, CAE/CAD software, FrameMaker, Mathematica, Fortran, Ada). Experience with the work done by the users at the site. Heterogeneity Experience Experience with more than one UNIX-based operating system. Experience with sites running more than one UNIX-based operating system. Familiarity with both System V and BSD-based UNIX operating systems. Experience with non-UNIX operating systems (for example, MS-DOS, Macintosh OS, or VMS). Experience with internetworking UNIX and other operating systems (MS-DOS, Macintosh OS, VMS). Programming Skills Extensive programming experience in an administrative language (Tk, Perl, a shell). Extensive programming experience in any applicable language. Networking Skills Experience conguring network le systems (for example, NFS, RFS, or AFS). Experience with network le synchronization schemes (for example, rdist and track). Experience conguring automounters. Experience conguring license managers. Experience conguring NIS/NIS+. Experience with TCP/IP networking protocols (ability to debug and program at the network level). Experience with non-TCP/IP networking protocols (for example, OSI, Chaosnet, DECnet, Appletalk, Novell Netware, Banyan Vines). Experience with high-speed networking (for example, FDDI, ATM, or SONET). Experience with complex TCP/IP networks (networks that contain routers). Experience with highly complex TCP/IP networks (networks that contain multiple routers and multiple media). Experience conguring and maintaining routers. Experience maintaining a site-wide modem pool/terminal servers. Experience with X/X terminals. Experience with dial-up networking (for example, SLIP, PPP, or UUCP). Experience at a site that is connected to the Internet. Experience installing/conguring DNS/BIND. Experience installing/administering Usenet news. Experience as postmaster of a site with external connections. Security Experience with network security (for example, building rewalls, deploying authentication systems, or applying cryptography to network applications). Experience with classied computing. Experience with multi-level classied environments. Experience with host security (for example, passwords, uids/gids, le permissions, le system integrity, use of security packages). Site Specialities Experience at sites with over 1,000 computers, over 1,000 users, or over a terabyte of disk space. Experience with supercomputers. Experience coordinating multiple independent computer facilities (for example, working for the central group at a large company or university). Experience with a site with 100@developing/implementing a site disaster recovery plan. Experience with a site requiring charge-back accounting. Documentation Background in technical publications, documentation, or desktop publishing. Databases Experience using relational databases. Experience using a database query language. Experience programming in a database query language. Previous experience as a database administrator. Hardware Experience installing and maintaining the network cabling in use at the site. Experience installing boards and 4
memory into systems. Experience with SCSI device setup and installation. Experience installing/conguring peripherals (for example, disks, modems, printers, or data acquisition devices). Experience with board-level diagnosis and repair of computer systems. Experience with component-level diagnosis and repair of computer system. Management Budget responsibility. Experience in writing personnel reviews, and ranking processes. Experience in interviewing/hiring.
Chapitre 3
c T.Besanon (v14.0.1025)
Administration UNIX
35 / 918
Avant de commencer : nayez pas peur dexprimenter. Le sytme ne vous fera pas de mal.
En mode utilisateur, vous ne pouvez rien abmer en utilisant le systme. UNIX, par conception, possde des notions de scurit, an dviter aux utilisateurs normaux de le dcongurer. En mode administrateur, bien sr, faites attention. On limitera tout travail en mode administrateur au minimum.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 36 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
38 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
39 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
40 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
41 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
42 / 918
Equivalent : Ctrl + [
c T.Besanon (v14.0.1025)
Administration UNIX
43 / 918
Appuyer sur la touche donne + + Appuyer sur ces 2 touches donne 0 Appuyer sur ces 2 touches donne @
c T.Besanon (v14.0.1025)
Administration UNIX
44 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
45 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
46 / 918
Un utilisateur UNIX est equivalent : un identicateur (sur 8 lettres en gnral), son nom au sens informatique ; appel login ; un mot de passe condentiel ;
Gare aux sanctions en cas damusement avec le compte dun autre utilisateur ! Il existe des chartes informatiques rglements informatiques.
c T.Besanon (v14.0.1025)
Administration UNIX
47 / 918
un mot de passe ne se prte pas ! un mot de passe ne soublie pas ! un mot de passe nest pas facile trouver ! :
vitez quil ne se rapporte pas vous (nom, voiture, chien) vitez les mots dans des dictionnaires vitez les prnoms il doit comporter au moins 6 caractres, en gnral 8 les majuscules et les minuscules sont direncies utiliser des chires et des caractres spciaux par exemple Kpiten[ , &7oubon , etc. 1
c T.Besanon (v14.0.1025)
3.4 Changer son mot de passe UNIX : passwd, yppasswd Chapitre 3 Premiers contacts avec UNIX
La commande standard pour changer son mot de passe sur une machine UNIX est passwd .
Sur les systmes UNIX qui utilisent un mcanisme de centralisation des mots de passe (appel NIS), la commande pour changer son mot de passe est yppasswd .
c T.Besanon (v14.0.1025)
Administration UNIX
49 / 918
Login: Password:
Login: Password:
c T.Besanon (v14.0.1025)
Administration UNIX
51 / 918
machine.example.com
login: Password:
Login: Password:
c T.Besanon (v14.0.1025)
Administration UNIX
53 / 918
Par exemple :
c T.Besanon (v14.0.1025)
Administration UNIX
54 / 918
Par exemple :
c T.Besanon (v14.0.1025)
Administration UNIX
55 / 918
Une fois connect via linterface graphique, on utilisera principalement un programme dmulation de terminal de type texte qui fournit dans une fentre une connexion comme sur un terminal texte :
c T.Besanon (v14.0.1025)
Administration UNIX
56 / 918
A lorigine, des teletypes puis des consoles texte. linteraction de base se fait au moyen de phrases taper sur un clavier (par opposition aux interfaces graphiques la Windows ou de Macintosh).
c T.Besanon (v14.0.1025)
Administration UNIX
57 / 918
Le shell est un programme qui permet la saisie et linterprtation de ce qui est tap. Le shell est juste une interface avec le systme. MS-DOS comporte un shell aux possibilits restreintes par rapport aux shells UNIX. Le shell est aussi un vrai langage de programmation, interprt (non compil) orant les structures de base de programmation de tout autre langage. Sous UNIX, le shell est un programme au mme titre quun autre. Le shell de travail est interchangeable par un autre shell ( la syntaxe prs comme de bien entendu).
c T.Besanon (v14.0.1025)
Administration UNIX
58 / 918
Les shells les plus rpandus : Shell Bourne shell C shell Korn shell Bourne again shell Nom du gramme sh csh ksh bash proDescription disponible sur toute plateforme UNIX shell dvelopp pour BSD Bourne shell amlior par AT&T Shell distribu avec linux ; version amliore de sh et csh
Dans ce cours, on distinguera le shell de programmation (car on peut programmer grce un interprteur de commandes sil est bien pens) du shell de travail lors dune session interactive. Les 2 shells nont pas de raison dtre identiques (cf plus loin sur ce que cela implique).
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 59 / 918
Tous les shells se prsentent sous la mme forme lcran lorsquils fonctionnent : une chane de caractres ache que le shell attend que lutilisateur tape quelque chose au clavier ; cest le prompt. un curseur qui va se dplacer au fur et mesure de la saisie des commandes
c T.Besanon (v14.0.1025)
Administration UNIX
60 / 918
Pour ce cours, on utilisera le caractre % pour dsigner le prompt dun utilisateur normal :
% commande-utilisateur
Il ne faudra jamais taper la chane de prompt lorsque vous testerez par vous mmes les commandes indiques.
c T.Besanon (v14.0.1025)
Administration UNIX
61 / 918
Pour terminer une session shell, on tape la commande commune tous les shells :
% exit
c T.Besanon (v14.0.1025)
Administration UNIX
62 / 918
Une commande UNIX un ensemble de mots spars par des caractres blancs (caractre espace, tabulation) Le premier mot : le nom de la commande Le reste des mots : les paramtres de la commande Particularits de certains mots : des options qui changent le comportement de la commande En pratique on trouvera donc crit :
commande [options] parametres
Les 2 crochets [ et ] indiquent que les options ne sont pas obligatoires. Il ne faut pas taper ces crochets sur la ligne de commande. Dans ce cours, on met les 2 crochets [ et ] en couleur rouge et les options en vert (sauf oubli).
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 63 / 918
Comment spcie-t-on une option ? Une option est quelque chose de prvu par le programme cest le programmeur qui aura toujours le dernier mot. Il reste une tendance gnrale : Une option est introduite par le signe - et est souvent constitue dune seule lettre comme par exemple -a . (mais attention aux exceptions nombreuses) Souvent on pourra cumuler et condenser des options : ls -a -l ls -al Souvent (mais pas tout le temps), lordre des options na pas dimportance. (cf getopt(1) ou getopt(3)) ls -a -l ls -al ls -la ls -l -a
c T.Besanon (v14.0.1025)
Administration UNIX
64 / 918
3.9 Annexe 1
3.9 Annexe 1
Ci joint dans la version imprime de ce cours, une news USENET sur les dirences entre les dirents shells existants.
c T.Besanon (v14.0.1025)
Administration UNIX
65 / 918
Path: senatorbedfellow.mit.edu!bloombeacon.mit.edu!newsfeed.internetmci.com!newsxfer3.itd.umich.edu!newspeer.sprintlink.net!news. sprintlink.net!Sprint!cpknewshub1.bbnplanet.com!news.bbnplanet.com!europa.clark.net!dispatch.news.demon.net!demon!gryphon.de mon.co.uk!news.lookingglass.org!news.lookingglass.org!notformail From: Brian Blackmore <bnb@gryphon.demon.co.uk> Newsgroups: comp.unix.shell,comp.unix.questions,news.answers,comp.answers Subject: UNIX shell differences and how to change your shell (Monthly Posting) Supersedes: <shell_866063613@news.lookingglass.org> FollowupTo: comp.unix.shell Date: 13 Jul 1997 17:41:35 +0100 Organization: None Sender: bnb@lookingglass.org Approved: newsanswersrequest@MIT.Edu Expires: 24 Aug 1997 16:41:27 GMT MessageID: <shell_868812087@news.lookingglass.org> ReplyTo: shelldiff@lookingglass.org NNTPPostingHost: gryphon.lookingglass.org XNNTPPostingHost: gryphon.demon.co.uk [158.152.42.76] Lines: 369 Xref: senatorbedfellow.mit.edu comp.unix.shell:51716 comp.unix.questions:130975 news.answers:107262 comp.answers:27074 Archivename: unixfaq/shell/shelldifferences Version: 1.17 The following article answers the frequently asked questions, what UNIX shells are available, what are the differences between them and how do you change your interactive shell. It is posted monthly to the USENET newsgroups comp.unix.shell, comp.unix.questions, news.answers and comp.answers and is additionally available on the world wide web as http://www.wonderland.org/~eternal/shell.html Contents * * * * * * * * * Modifications since last issue Why change your shell The history of unix shells Deciding on a shell Shell features (table) How to change your shell A warning about changing your shell Further information Copyright and Disclaimer
Modifications since last issue * Change of authors contact addresses Why change your shell The UNIX shell is most peoples main access to the UNIX operating system and as such any improvement to it can result in considerably more effective use of the system, and may even allow you to do things you couldnt do before. The primary improvement most of the new generation shells give you is increased speed. They require fewer key strokes to get the same results due to their completion features, they give you more information (e.g. showing your directory in your prompt, showing which files it would complete) and they cover some of the more annoying features of UNIX, such as not going back up symbolic links to directories. A brief history of UNIX shells Note, this history is just known to be slightly out of historical order, it is in the process of being corrected, but for the moment should be taken with a pinch of salt In the near beginning there was the Bourne shell /bin/sh (written by S. R. Bourne). It had (and still does) a very strong powerful syntactical language built into it, with all the features that are commonly considered to produce structured programs; it has particularly strong provisions for controlling input and output and in its expression matching facilities. But no matter how strong its input language is, it had one major drawback; it made nearly no concessions to the interactive user (the only real concession being the use of shell functions and these were only added later) and so there was a gap for something better. Along came the people from UCB and the Cshell /bin/csh was born. Into this shell they put several concepts which were new, (the majority of these being job control and aliasing) and managed to produce a shell that was much better for interactive use. But as well as improving the shell for interactive use they also threw out the baby with the bath water and went for a different input language. The theory behind the change was fairly good, the new input language was to resemble C, the language in which UNIX itself was written, but they made a complete mess of implementing it. Out went the good control of input and output and in came the bugs. The new shell was simply too buggy to produce robust shell scripts and so everybody stayed with the Bourne shell for that, but it was considerably better for interactive use so changed to the C shell, this resulted in the stupid situation where people use a different shell for interactive work than for noninteractive, a situation which a large number of people still find themselves in today. After csh was let loose on an unsuspecting world various people decided that the bugs really should get fixed, and while they where at it they might as well add some extra features. In came command line editing, TENEXstyle completion and several other features. Out went most of the bugs, but did the various UNIX operating system manufacturers start shipping tcsh instead of csh? No, most of them stuck with the standard CShell, adding nonstandard features as they went along. Eventually David Korn from AT&T had the bright idea to sort out this mess and the Korn shell /bin/ksh made its appearance. This quite sensibly junked the C shells language and reverted back to the bourne shell language, but it also added in the many features that made the C shell good for interactive work (you could say it was the best of both
worlds), on top of this, it also added a some features from other operating. The Korn shell became part of System V but had one major problem; unlike the rest of the UNIX shells it wasnt free, you had to pay AT&T for it. It was at about this time that the first attempts to standardize UNIX started in the form of the POSIX standard. POSIX specified more or less the System V Bourne Shell (by this time the BSD and System V versions had got slightly different). Later the standard is upgraded, and somehow the new standard managed to look very much like ksh. Also at about this time the GNU project was underway and they decided that they needed a free shell, they also decided that they wanted to make this new shell POSIX compatible, thus bash (the Bourne again shell) was born. Like the Korn shell bash was based upon the Bourne shells language and like the Korn shell, it also pinched features from the C shell and other operating systems (in my opinion it put them together better; guess which shell I use), but unlike the Korn shell it is free. Bash was quickly adopted for LINUX (where it can be configured to perform just like the Bourne shell), and is the most popular of the free new generation shells. Meanwhile Tom Duff faced with the problem of porting the Bourne shell to Plan 9, revolts and writes rc instead, he publishes a paper on it, and Byron Rakitzis reimplements it under UNIX. With the benefit of a clean start Rc ended up smalled, simpler, more regular and in most peoples opinion a much cleaner shell. The search for the perfect shell still goes on and the latest entry into this arena is zsh. Zsh was written by Paul Falstad while he was a student a Princeton and suffers from slight case of feeping creaturism. It is based roughly on the bourne shell (although there are some minor but important differences) and has so many additional features that I dont even think the author even knows all of them. Additionally rc has been enhanced to produced es, this shell adds the ability for the user to redefine low level functions. Deciding on a shell Which of the many shells you choose depends on many different things, here is what I consider to be the most important, you may think differently. How much time do I have to learn a new shell? There is no point in using a shell with a different syntax, or a completly different alias system if you havnt the time to learn it. If you have the time and are presently using csh or tcsh it is worth considering a switch to a Bourne shell variant. What do I wish to be able to do with my new shell? The main reason for switching shells is to gain extra functionality; its vital you know what you are gaining from the switch. Do I have to be able to switch back to a different shell? If you may have to switch back to a standard shell, it is fairly important you dont become too dependent on extra features and so cant use an older shell. How much extra load can the system cope with? The more advanced shells tend to take up extra CPU, since they work in cbreak mode; if you are on an overloaded machine they should probably be avoided; this can also cause problems with an overloaded network. This only really applies to very old systems nowadays. What support is given for my new shell? If your new shell is not supported make sure you have someone you can ask if you encounter problems or that you have the time to sort them out yourself. What shell am I using already? Switching between certain shells of the same syntax is alot easier than switching between shells of a different syntax. So if you havnt much time a simple upgrade (eg csh to tcsh) may be a good idea. Can I afford any minor bugs? Like most software all shells have some bugs in them (especially csh), can you afford the problems that may occur because of them. Do you need to be able to use more than one shell? If you use more than one machine you may discover that you need to use more than one shell regularly. How different are these shells and can you cope with having to switch between these shells on a regular basis. It may be to your advantage to choose shells that are similar to each other. Shell features This table below lists most features that I think would make you choose one shell over another. It is not intended to be a definitive list and does not include every single possible feature for every single possible shell. A feature is only considered to be in a shell if in the version that comes with the operating system, or if it is available as compiled directly from the standard distribution. In particular the C shell specified below is that available on SUNOS 4.*, a considerable number of vendors now ship either tcsh or their own enhanced C shell instead (they dont always make it obvious that they are shipping tcsh. Job control Aliases Shell functions "Sensible" Input/Output redirection sh N N Y(1) Y csh Y Y N N ksh Y Y Y Y bash Y Y Y Y tcsh Y Y N N zsh Y Y Y Y rc N N Y Y es N N Y Y
Directory stack Command history Command line editing Vi Command line editing Emacs Command line editing Rebindable Command line editing User name look up Login/Logout watching Filename completion Username completion Hostname completion History completion Fully programmable Completion Mh Mailbox completion Co Processes Builtin artithmetic evaluation Can follow symbolic links invisibly Periodic command execution Custom Prompt (easily) Sun Keyboard Hack Spelling Correction Process Substitution Underlying Syntax Freely Available Checks Mailbox Tty Sanity Checking Can cope with large argument lists Has noninteractive startup file Has nonlogin startup file Can avoid user startup files Can specify startup file Low level command redefinition Has anonymous functions List Variables Full signal trap handling File no clobber ability Local variables Lexically scoped variables Exceptions Key to the table above. Y N F L
N N N N N N N N N N N N N N N N N N N N N N sh N N N Y N N N N N N N Y N N N N
Y Y Y Y Y Y Y Y Y Y Y Y Y N(6) Y Y Y Y Y Y Y Y sh Y Y Y Y Y Y Y N N N Y Y Y Y N N
F L L L L L L F L L L L N N N N N N Y N N Y rc Y F N Y N N Y N N Y Y Y N Y N N
F L L L L L L F L L L L N N N N N N Y N N Y rc Y F N Y N N Y N Y Y Y Y F Y Y Y
Feature can be done using this shell. Feature is not present in the shell. Feature can only be done by using the shells function mechanism. The readline library must be linked into the shell to enable this Feature.
Notes to the table above 1. This feature was not in the orginal version, but has since become almost standard. 2. This feature is fairly new and so is often not found on many versions of the shell, it is gradually making its way into standard distribution. 3. The Vi emulation of this shell is thought by many to be incomplete. 4. This feature is not standard but unoffical patches exist to perform this. 5. A version called pdksh is freely available, but does not have the full functionality of the AT&T version. 6. This can be done via the shells programmable completion mechanism. 7. Only by specifing a file via the ENV environment variable. How to change your shell If you ever look at a UNIX manual page it will say that to change your shell use chsh or passwd s; unfortunately it often isnt as simple as this, since it requires that your new shell is recognized as a valid shell by the system and at present many systems do not recognize the newer shells (the normal selection is, /bin/sh, /bin/csh and possibly /bin/ksh). You are thus left with having to do some sort of fudge, changing your effective login shell without changing your official entry in /etc/passwd. You may also be left with the problem that there isnt a compiled binary on your system , so you will have to get hold of the shells source and compile it yourself (Its generally best to ask around to see if anyones done this already, since it isnt that easy). Once done you should add in code to your old shells login file so that it overlays your official login shell with your new shell (remember to add the login flags to the command line, and with csh/tcsh ensure that the overlay doesnt happen recursively since they both read the same .login file). The shell can be recognized as a valid shell if the system administrator puts it in the file /etc/shells. If this file does not exist, it must be created and should contain all valid shells (i.e.dont forget the traditional ones in all their forms). WARNING If you do decide to change your shell you must be very careful if handled wrongly it can be almost impossible to correct, and will almost certainly cause you a lot of hassle. Never make a new shell a login shell until you have tested its new configuration files thoroughly and then tested them once again. It is also important that you make a full backup of your previous config files onto a floppy disk (or a different host if you have a second account) if you have to change any of them (which you will probably have to do if you cant change your shell entry in /etc/passwd). You should also note that your new shell is probably not supported by your system admin, so if you have any problems you will probably have to look elsewhere. Further information The Bourne shell, the CShell and the Korn Shell (if you have it) are
all distributed as standard with your UNIX operating system, information on these should come with your operating system, bug reports etc should be sent to your operating system vendor. The free version of ksh, pdksh is available as ftp://ftp.cs.mun.ca/pub/pdksh/ A commercial "compiler" (CCsh) is available for the Bourne shell, this can provide extra speed on some applications. For more information contact Comeau Computing 9134 120th Street, Richmond Hill, NY, USA 114183214. Email comeau@csanta.attmail.com. Bash was written and is maintained by the Free Software Foundation, the primary source of information for this shell is its manual page. Bug reports should be sent to bashmaintainers@ai.MIT.Edu, while suggestions and philosophical bug reports may be mailed to bugbash@ai.MIT.Edu or posted to the Usenet newsgroup gnu.bash.bug, the source is widely available on many ftp sites, and is subject to the GNU copyleft licence. Tcsh is available by ftp from ftp://ftp.deshaw.com and several other places. Rc is available by ftp from ftp://viz.tamu.edu/pub/rc, ftp://ftp.sys.utotonoto.cs/pub/rc and several other places. An FAQ exists and is posted frequently to comp.unix.shell and other places. The Rc mailing list may be subscribed to by sending mail to rcrequest@hawkwind.utcs.toronto.edu, this, the manual page and the Rc FAQ are the main sources of information for this shell. The original paper on rc is available as http://plan9.att.com/plan9/plan9doc/7.ps.Z. Zsh is available by ftp from ftp://ftp.math.gatech.edu/pub/zsh and at several mirror sites. Zsh is now maintained by the members of the zsh mailing lists, which can be subscribed to by sending email to zshannouncerequest@math.gatech.edu (announcements), zshusersrequest@math.gatech.edu (users discussions) or zshworkersrequest@math.gatech.edu (zsh hacking and development) with a subject of "subscribe emailaddress", there is also an FAQ which is posted frequently to comp.unix.shell. The manual page, the Zshell FAQ and the zshlist are the main sources of information for this shell. ES is available by ftp from ftp://ftp.cs.utoronto/pub/es and at several other places, a mailing list can be subscribed to by sending mail to esrequest@hawkwind.utcs.toronto.edu and a paper about es is at http://www.webcom.com/~haahr/es/esusenixwinter93.html. Questions on any of the UNIX shells and on shell script programming, may be posted to the Usenet newsgroup comp.unix.shell a quick response can normally be expected, especially on subjects relating to the more common shells. Copyright and Disclaimer Copyright to this document is kept by the author, but freedom is given to distribute it as long as no money is made from its distribution, without the prior concent of the author. The author also does not guarantee that the information it contains is correct, although every effort is done to ensure that it is. Email relating to the content of this document should be sent to shelldiff@lookingglass.org Brian Blackmore, bnb@lookingglass.org
Chapitre 4
Sources de documentation
c T.Besanon (v14.0.1025)
Administration UNIX
66 / 918
4 Sources de documentation
4.1 Introduction
4.1 Introduction
Extrait dun rapport dun ancien lve de ARS : Logiciel XXXXX : Documentation claire et exhaustive (javais le choix entre la version Anglaise ou Japonaise, la version Anglaise est trs bien ! ! ! ! ! ! !)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 67 / 918
4 Sources de documentation
Il existe une documentation lectronique accessible pendant le fonctionnement du systme : cest laide en ligne. La commande donnant laide est man . On peut faire man man !
c T.Besanon (v14.0.1025)
Administration UNIX
68 / 918
4 Sources de documentation
On remarque : achage page dcran par page dcran pour mieux lire la doc plusieurs rubriques (NAME, SYNOPSIS, DESCRIPTION, . . .)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 69 / 918
4 Sources de documentation
Lecture de la documentation ache On navigue entre les pages dcran de la documentation par : la touche SPC pour avancer (ou f forward ) la touche b pour reculer (b backward )
c T.Besanon (v14.0.1025)
Administration UNIX
70 / 918
4 Sources de documentation
c T.Besanon (v14.0.1025)
Administration UNIX
71 / 918
4 Sources de documentation
Sections de la documentation Les pages de manuel des commandes UNIX sont rparties en chapitres appels des sections. Liste classique des sections : section 1 = commandes normales section 2 = appels systmes section 3 = fonctions de programmation C section 4 = priphriques et pilotes de priphriques section 5 = format de chiers systme section 6 = jeux section 7 = divers section 8 = commandes de gestion du systme
c T.Besanon (v14.0.1025)
Administration UNIX
72 / 918
4 Sources de documentation
Convention sur les sections Dans les livres/magazines sur UNIX/LINUX, on rencontre souvent lcriture suivante : getopt(3) Signication : cela fait rfrence la commande getopt de la section 3 du manuel. ATTENTION : ne pas confondre getopt(3) ayant le sens se reporter la documentation sur getopt dans la section 3 avec appel de la fonction C getopt avec le paramtre 3 . Seul le contexte vous permettra de comprendre la bonne signication.
c T.Besanon (v14.0.1025)
Administration UNIX
73 / 918
4 Sources de documentation
Ordre de la recherche dans les sections Le principe est : on ache la documentation de la premire section trouve. Cela pose problme quand il existe une commande de mme nom dans plusieurs sections. Par exemple : commande UNIX printf : section 1 fonction de programmation C printf : section 3 Si vous faites man printf , vous obtiendrez la documentation sur la commande UNIX printf (section 1 ache avant section 3).
c T.Besanon (v14.0.1025)
Administration UNIX
74 / 918
4 Sources de documentation
Chercher dans une section prcise sur LINUX Sur LINUX, pour chercher dans une section prcise, la syntaxe est :
man [numero-de-section] commande
Par exemple :
% man 1 printf ... % man 3 printf ...
c T.Besanon (v14.0.1025)
Administration UNIX
75 / 918
4 Sources de documentation
Chercher dans une section prcise sur SOLARIS Sur SOLARIS, pour chercher dans une section prcise, la syntaxe est :
man [-s numero-de-section] commande
Par exemple :
% man -s 1 printf ... % man -s 3 printf ...
c T.Besanon (v14.0.1025)
Administration UNIX
76 / 918
4 Sources de documentation
Chapitres dintroduction En gnral, chaque chapitre de la documentation a une introduction. Lintroduction porte le nom intro et est plus ou moins dveloppe selon les UNIX. Pour avoir lintroduction sur la section 1, faire : LINUX : man 1 intro SOLARIS : man -s 1 intro Pour avoir lintroduction sur la section 2, faire : LINUX : man 2 intro SOLARIS : man -s 2 intro Pour avoir lintroduction sur la section 3, faire : LINUX : man 3 intro SOLARIS : man -s 3 intro etc. (il sut dappliquer les informations du chapitre prcdent)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 77 / 918
4 Sources de documentation
Dfaut de la commande MAN Inconvnient majeur : il faut connaitre le nom de la commande (nom anglais trs souvent) Laide est plus l pour se rappeler les nombreuses options des commandes et leurs syntaxes particulires. Ce nest pas un moteur de recherche la GOOGLE. Cependant il existe une possibili de rechercher un mot clef apparaissant dans les pages de la documentation : syntaxe man -k mot-clef .
c T.Besanon (v14.0.1025)
Administration UNIX
78 / 918
4 Sources de documentation
Par exemple :
% man -k more ... bzless bzmore (1) of bzip2 compressed text bzmore bzmore (1) of bzip2 compressed text gzmore gzmore (1) of compressed text less less (1) more more (1) page more (1) ...
file perusal filter for crt viewing file perusal filter for crt viewing file perusal filter for crt viewing opposite of more browse or page through a text file browse or page through a text file
c T.Besanon (v14.0.1025)
Administration UNIX
79 / 918
4 Sources de documentation
Pour aller plus loin : la navigation dans la documentation MAN se fait par les mmes raccourcis clavier que dans la commande more (voir page 242). En fait, la commande man met en page la documentation et en cone lachage la commande more . A lusage, on peut donc utiliser les mmes raccourcis que ceux de more . Par exemple, pour chercher le mot ananas dans la documentation, on fera /ananas pour chercher vers lavant, on fera ?ananas pour chercher vers larrire, on fera n pour lapparition suivante du mot.
c T.Besanon (v14.0.1025)
Administration UNIX
80 / 918
4 Sources de documentation
RFC = Request For Comments Documents de rfrence en anglais rcuprables aux adresses :
ftp://ftp.lip6.fr/pub/rfc/rfc/ ftp://ftp.lip6.fr/pub/rfc/internet-drafts/ http://abcdrfc.free.fr/
c T.Besanon (v14.0.1025)
Administration UNIX
81 / 918
4 Sources de documentation
4.4 FAQ
4.4 FAQ
(en anglais Frequently Asked Questions, en franais Foire Aux Questions ) Documents en anglais rcuprables aux adresses :
ftp://ftp.lip6.fr/pub/doc/faqs/
c T.Besanon (v14.0.1025)
Administration UNIX
82 / 918
4 Sources de documentation
c T.Besanon (v14.0.1025)
Administration UNIX
83 / 918
4 Sources de documentation
4.6 TLDP
4.6 TLDP
c T.Besanon (v14.0.1025)
Administration UNIX
84 / 918
4 Sources de documentation
Plusieurs guides de transition dun systme un autre systme UNIX sont disponibles :
http://www.unixporting.com/porting-guides.html http://www.unixguide.net/
etc.
c T.Besanon (v14.0.1025)
Administration UNIX
85 / 918
4 Sources de documentation
4.8 Newsgroups
4.8 Newsgroups
Les newsgroups sont des forums de discussion sur internet. Les thmes en sont varis. Certains forums sont dans une langue autre que langlais. Sur jussieu, le serveur de news est news.jussieu.fr Le protocole rseau des news sappelle NNTP
c T.Besanon (v14.0.1025)
Administration UNIX
86 / 918
4 Sources de documentation
4 Sources de documentation
Humour :
c T.Besanon (v14.0.1025)
Administration UNIX
88 / 918
4 Sources de documentation
Certains constructeurs UNIX mettent des documentations et documents online. Se reporter par exemple :
http://docs.sun.com/ http://technet.microsoft.com/ http://www.cisco.com/
c T.Besanon (v14.0.1025)
Administration UNIX
89 / 918
4 Sources de documentation
c T.Besanon (v14.0.1025)
Administration UNIX
90 / 918
4 Sources de documentation
Certaines librairies ont un rayon informatique bien fourni : Le Monde en Tique 6 rue Matre Albert, 75005 Paris
http://www.lmet.fr/
c T.Besanon (v14.0.1025)
Administration UNIX
91 / 918
4 Sources de documentation
4.13 Magazines
4.13 Magazines
De nombreux magazines parlent de LINUX. vulgarisation de domaines anciennement rservs un cercle dinitis CDROM vendus avec ces magazines. prix abordables Quelques magazines que japprcie : LINUX magazine france LINUX journal MISC A vous de vous faire votre opinion. . .
c T.Besanon (v14.0.1025)
Administration UNIX
92 / 918
4 Sources de documentation
Liste de quelques formats les plus rpandus (en vrac) format PDF : extension .pdf lire avec : Acrobat Reader ; http://www.adobe.com/products/acrobat/ plateforme : UNIX, WINDOWS, MacOS Ghostscript ; http://www.ghostscript.com/ plateforme : UNIX, WINDOWS, MacOS xpdf ; http://www.foolabs.com/xpdf/ plateforme : UNIX De nombreux outils drivs de Ghostscript existent.
c T.Besanon (v14.0.1025)
Administration UNIX
93 / 918
4 Sources de documentation
format Postscript : extension .ps lire avec : Ghostscript ; http://www.ghostscript.com/ plateforme : UNIX, WINDOWS, MacOS ghostview ; ftp://ftp.lip6.fr/pub/gnu/ghostview/ plateforme : UNIX, WINDOWS gv ; http://wwwthep.physik.uni-mainz.de/~plass/gv/ plateforme : UNIX, WINDOWS De nombreux outils drivs de Ghostscript existent.
c T.Besanon (v14.0.1025)
Administration UNIX
94 / 918
4 Sources de documentation
format Microsoft Word : extensions .doc , .docx lire avec : Microsoft Word ; http://www.microsoft.com/office/word/ plateforme : WINDOWS, MacOS Microsoft Word viewer ; http://www.microsoft.com/???/ plateforme : WINDOWS Open Oce ; http://www.openoffice.org/ plateforme : UNIX, WINDOWS, MacOS Google docs ; http://docs.google.org/ antiword ; http://www.antiword.org/ plateforme : UNIX Peu doutils sous UNIX en dehors de ceux-ci.
c T.Besanon (v14.0.1025)
Administration UNIX
95 / 918
4 Sources de documentation
format Microsoft Excel : extension .xls lire avec : Microsoft Excel ; http://www.microsoft.com/office/word/ plateforme : WINDOWS, MacOS Microsoft Excel viewer ; http://www.microsoft.com/???/ plateforme : WINDOWS Open Oce ; http://www.openoffice.org/ plateforme : UNIX, WINDOWS, MacOS Google docs ; http://docs.google.org/ GNUmeric ; http://www.gnome.org/projects/gnumeric/ plateforme : UNIX Peu doutils sous UNIX en dehors de ceux-ci.
c T.Besanon (v14.0.1025)
Administration UNIX
96 / 918
4 Sources de documentation
format texte : pas dextension particulire lire avec nimporte quel diteur de texte : vi ; standard plateforme : UNIX, WINDOWS, MacOS ? emacs ; http://www.gnu.org/software/emacs/ plateforme : UNIX, WINDOWS, MacOS ? Nombreux autres outils sous UNIX en dehors de ceux-ci. Mais vi et emacs restent les meilleurs. Le reste est une plaisanterie ou une rinvention de vi ou emacs .
c T.Besanon (v14.0.1025)
Administration UNIX
97 / 918
4 Sources de documentation
format HTML : extension .html ou .htm A lire avec nimporte quel navigateur web : Mozilla ; http://www.mozilla.org/ ; Obsolte : voir Firefox plateforme : UNIX, WINDOWS, MacOS Firefox ; http://www.mozilla.com/ plateforme : UNIX, WINDOWS, MacOS Opera ; http://www.opera.com/ plateforme : UNIX, WINDOWS, MacOS Galeon ; intgr au bureau GNOME ;
http://galeon.sourceforge.net/
plateforme : UNIX Konqueror ; intgr au bureau KDE ; http://www.konqueror.org/ plateforme : UNIX Dautres navigateurs web existent. A noter Nvu ; Editeur de pages HTML driv de Mozilla ;
http://www.nvu.com/ Rempl par KompoZer ; http://kompozer.net/
4 Sources de documentation
format graphique : extension .jpg ou .gif ou .png ou autre lire avec : GIMP ; http://www.gimp.org/ dessins bitmap la Adobe Photoshop plateforme : UNIX, WINDOWS, MacOS XnView ;
http://perso.orange.fr/pierre.g/xnview/frhome.html
plateforme : UNIX, WINDOWS, MacOS Inkscape ; http://www.inkscape.org/ dessins vectoriels la Adobe Illustrator plateforme : UNIX, WINDOWS, MacOS Dia ; http://www.gnome.org/projects/dia/ dessins la Microsoft Visio plateforme : UNIX, WINDOWS De nombreux outils graphiques existent.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 99 / 918
Chapitre 5
c T.Besanon (v14.0.1025)
Administration UNIX
100 / 918
Il existe beaucoup dditeurs de texte sous UNIX mais seuls quelques uns sont susamment robustes pour tre utiliss ecacement et avec conance : vi : seul diteur de texte standard sous UNIX emacs : trs puissant, complexe matriser, simple une fois quon sait sen servir. Cf http://www.emacs.org.
c T.Besanon (v14.0.1025)
Administration UNIX
101 / 918
(en anglais visual interface ) Cest lditeur de texte standard sur UNIX. Il fonctionne sur tout type de terminal texte, sur tout UNIX. Inconvnient : il demande de la pratique Il possde deux modes de fonctionnement : un mode de saisie de commandes appliquer au texte un mode de saisie du texte Cf http://www.math.fu-berlin.de/~guckes/vi/ pour de la doc.
c T.Besanon (v14.0.1025)
Administration UNIX
102 / 918
Syntaxe : vi [options] fichiers Options intressantes : -r : recover -R : readonly +/ananas : ouverture du chier et positionnement sur le mot ananas Si le chier indiqu nexiste pas, le chier est cr.
c T.Besanon (v14.0.1025)
Administration UNIX
103 / 918
Squence
i a I A o O cw c$
Action Insrer la position courante du curseur (en anglais insert ) Insrer la position suivante du curseur (en anglais append ) Insrer en dbut de ligne Insrer en n de ligne Ouvrir une nouvelle ligne en dessous du curseur (en anglais open) Ouvrir une nouvelle ligne au dessus du curseur Changer un mot (en anglais change word ) Changer jusqu la n de ligne
Sortie du mode saisie du texte et passage en mode commandes On passe du mode saisie de texte au mode commandes par la touche ESC.
c T.Besanon (v14.0.1025)
Administration UNIX
104 / 918
Commandes de dplacement Squence h ou l ou j ou k ou Action Dplacer Dplacer Dplacer Dplacer le le le le curseur curseur curseur curseur dun caractre gauche dun caractre droite dune ligne vers le bas dune ligne vers le haut
c T.Besanon (v14.0.1025)
Administration UNIX
105 / 918
Action Aller la ligne nombre (en anglais goto ) Aller la dernire ligne Avance dune page dcran (en anglais forward ) Recule dune page dcran (en anglais backward ) Ache le numro de la ligne courante
c T.Besanon (v14.0.1025)
Administration UNIX
106 / 918
Commandes principales
Squence
x 8x r suivi dun caractre X dd d8d :3,7d :1,$d :.,21d dw d8w J
Action Dtruire le caractre sous le curseur Dtruire 8 caractres Remplacer le caractre sous le curseur par le caractre X (en anglais replace ) Eacer la ligne courante Eacer 8 lignes en comptant la ligne courante Eacer de la ligne 3 la ligne 7 Eacer de la ligne 1 la dernire ligne Eacer de la ligne courante la ligne 21 Eacer le mot sous le curseur (en anglais delete word ) Eacer 8 mots Joindre la ligne suivante avec la ligne courante (en anglais join)
Remplacer 8 dans les exemples ci-dessus par le nombre que vous voulez.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 107 / 918
Action Annuler la dernire commande (en anglais undo ) Rafraichir lcran Rpter la dernire commande Rechercher cerise dans le texte vers le bas Rechercher cerise dans le texte vers le haut Rechercher la regexp indique dans le texte vers le bas (voir page 394) Rechercher la regexp indique dans le texte vers le haut (voir page 394) Rpter la dernire recherche (en anglais next ) Rpter la dernire recherche dans lautre sens (en anglais next )
c T.Besanon (v14.0.1025)
Administration UNIX
108 / 918
Exemple dutilisation du Ctrl-L : Supprimer les achages parasites par exemple de programmes en tche de fond (voir page 571).
c T.Besanon (v14.0.1025)
Administration UNIX
109 / 918
Sauvegarde / Sortie de vi
Squence
:w :w ananas :w! ananas :q :q! :wq :e ananas :e! ananas :r ananas
Action Sauver le chier dit (en anglais write ) Sauver dans le chier ananas Sauver dans le chier ananas en crasant le contenu actuel de ananas Quitter vi (en anglais quit ) Quitter vi sans sauvegarder la moindre chose Sauver puis quitter vi (en anglais write + quit ) Editer maintenant le chier ananas (en anglais edit ) Editer maintenant le chier ananas en oubliant les modications du chier actuel Importer le contenu du chier ananas (en anglais read )
c T.Besanon (v14.0.1025)
Administration UNIX
110 / 918
Commandes de copier/coller
Squence
yy y8y p (lettre minuscule) P (lettre majuscule)
Action Copier la ligne courante dans la mmoire copier/coller (en anglais yank ) Copier 8 lignes en comptant la ligne courante dans la mmoire copier/coller Coller en dessous de la ligne du curseur le contenu de la mmoire prcdente (en anglais paste ) Coller au dessus de la ligne du curseur le contenu de la mmoire prcdente (en anglais paste )
c T.Besanon (v14.0.1025)
Administration UNIX
111 / 918
Commandes de substitution
Squence
:s/ananas/cerise/
Action Sur la ligne du curseur, remplacer le premier mot ananas par cerise (en anglais substitute ) Sur la ligne du curseur, remplacer tous les mots ananas par cerise De la ligne 1 la dernire ligne ($), remplacer le premier mot ananas par cerise De la ligne 1 la dernire ligne ($), remplacer tous les mots ananas par cerise
c T.Besanon (v14.0.1025)
Administration UNIX
112 / 918
Autres exemples de squences de substitution : La squence :1,$s/ananas/cerise/g remplace de la premire ligne la dernire ligne chaque mot ananas par cerise . La squence :%s/ananas/cerise/g remplace de la premire ligne la dernire ligne chaque mot ananas par cerise . On peut employer % la place de 1,$. La squence :1,$s/ananas//g remplace de la premire ligne la dernire ligne chaque mot ananas par rien du tout, cest--dire que lon supprime de la premire ligne la dernire ligne chaque mot ananas La squence :1,$s/\/ananas/cerise/g remplace de la premire ligne la dernire ligne chaque mot /ananas par cerise . La squence :1,$s;/ananas;cerise;g remplace de la premire ligne la dernire ligne chaque mot /ananas par cerise . On peut employer dautres caractres de sparation que le caractre / .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 113 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
114 / 918
squence :1,.s/ananas/cerise/g remplace de la premire ligne la ligne courante (dsigne par . ) chaque mot ananas par cerise . La squence :.,$s/ananas/cerise/g remplace de la ligne courante (dsigne par . ) jusqu la dernire ligne (dsigne par $ ) chaque mot ananas par cerise . La squence :.,.+3s/ananas/cerise/g remplace de la ligne courante (dsigne par . ) 3 lignes plus bas (dsigne par .+3) chaque mot ananas par cerise . La squence :.-3,.s/ananas/cerise/g remplace de 3 lignes plus haut que la ligne courante ( .-3 ) la ligne courante chaque mot ananas par cerise .
c T.Besanon (v14.0.1025)
Administration UNIX
115 / 918
Principales options
Squence
:set all :set option :set nooption
Action Acher toutes les options possibles Positionner loption option vrai Positionner loption option faux
ATTENTION : si vous positionnez une option ainsi, le rglage disparait la n de la session VI. Voir page 119 pour savoir comment enregistrer le rglage de faon permanente.
c T.Besanon (v14.0.1025)
Administration UNIX
116 / 918
nomodelines noshowmode nonumber noslowopen nonovice tabstop=8 nooptimize taglength= paragraphs=IPLPPPQPP LIpplpipnpptags=tags prompt tagstack noreadonly term=vt100 redraw noterse remap timeout report=2 ttytype=vt scroll=37 warn sections=NHSHH HUuhsh+c window=74 shell=/bin/csh wrapscan shiftwidth=8 wrapmargin showmatch nowriteany
Administration UNIX ARS 2011 2012 Partie 1 117 / 918
Options intressantes : option nu : achage des numros de ligne option showmatch : achage de la parenthse, accolade ou crochet ouvrant option list : achage des caractres non ASCII option autoindent : indentation automatique des lignes (voir programmation en langage C)
c T.Besanon (v14.0.1025)
Administration UNIX
118 / 918
Les options peuvent tre enregistres de faon permanente. Il faut les copier dans le chier $HOME/.exrc . Par exemple :
% cat $HOME/.exrc set nu
c T.Besanon (v14.0.1025)
Administration UNIX
119 / 918
A propos des commandes qui commencent par : Les commandes commenant par le caractre : apparaissent en bas de lcran pour pouvoir lire ce que lon tape (par exemple un nom de chier pour sauvegarder).
c T.Besanon (v14.0.1025)
Administration UNIX
120 / 918
Divers En cas de plantage de vi, utiliser la commande vi -r exemple.txt pour essayer de rcuprer ce qui est rcuprable (en anglais recover ). Pour consulter un chier sans le modier, faire vi -R exemple.txt (en anglais readonly ). Ne pas confondre les deux.
c T.Besanon (v14.0.1025)
Administration UNIX
121 / 918
ATTENTION :
La version de vi dans les salles de TP de la Formation Permanente fait automatiquement une sauvegarde du chier texte que lon veut diter. La sauvegarde automatique du chier exemple.txt a pour nom exemple.txt~ .
c T.Besanon (v14.0.1025)
Administration UNIX
122 / 918
(en anglais vi improved ) Cest une version amliore de VI. Cf http://www.vim.org Intrt : disponible sur LINUX, WINDOWS, MACOS Attention ne pas vous habituer des fonctionnalits propres VIM et non standard dans les autres VI.
c T.Besanon (v14.0.1025)
Administration UNIX
123 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
124 / 918
Comment est code une n de ligne dans un chier texte ? Pas de standard ! En pratique : Sur UNIX : une n de ligne est code par le code ASCII 10 (Ctrl-J ; notation du langage C \n ) Sur WINDOWS : une n de ligne est code par le code ASCII 13 suivi du code ASCII 10 (Ctrl-M Ctrl-J ; notation du langage C \r\n ) Sur MACINTOSH : une n de ligne est code par le code ASCII 13 (Ctrl-M ; notation du langage C \r ) Ncessit de savoir convertir.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 125 / 918
Rappel sur la base 8 (base octale) Voir cours de programmation en langage C. Rappel : un nombre en base 8 (base octale) scrit avec un 0 initial.
Nombre en base 10 1 2 3 4 5 6 7 8 9 10 11 12 13 Nombre en base 8 01 02 03 04 05 06 07 010 011 012 013 014 015 Code ASCII quivalent CTRL-A CTRL-B CTRL-C CTRL-D CTRL-E CTRL-F CTRL-G CTRL-H CTRL-I CTRL-J CTRL-K CTRL-L CTRL-M Nombre en base 10 14 15 16 17 18 19 20 21 22 23 24 25 26 Nombre en base 8 016 017 020 021 022 023 024 025 026 027 030 031 032 Code ASCII quivalent CTRL-N CTRL-O CTRL-P CTRL-Q CTRL-R CTRL-S CTRL-T CTRL-U CTRL-V CTRL-W CTRL-X CTRL-Y CTRL-Z
c T.Besanon (v14.0.1025)
Administration UNIX
126 / 918
Echanges entre UNIX et WINDOWS Rappel : Sur UNIX : une n de ligne est code par le code ASCII 10 (Ctrl-J ; notation du langage C \n ) Sur WINDOWS : une n de ligne est code par le code ASCII 13 suivi du code ASCII 10 (Ctrl-M Ctrl-J ; notation du langage C \r\n ) Passage de WINDOWS UNIX facile car on passe de deux caractres de n de ligne un seul (supprimer est toujours plus facile quajouter). Passage de UNIX WINDOWS dicile car on passe dun caractre de n de ligne deux caractres de n de ligne. WINDOWS vers UNIX (voir tr page 283) : tr -d \015 < windows.txt > unix.txt UNIX vers WINDOWS (voir sed page 429) : sed -e s/$/^M/ < unix.txt > windows.txt
c T.Besanon (v14.0.1025)
Administration UNIX
127 / 918
Echanges entre UNIX et MACINTOSH Rappel : Sur UNIX : une n de ligne est code par le code ASCII 10 (Ctrl-J ; notation du langage C \n ) Sur MACINTOSH : une n de ligne est code par le code ASCII 13 (Ctrl-M ; notation du langage C \r ) Passage de UNIX MACINTOSH facile car dans les deux cas un seul caractre de n de ligne ! UNIX vers MACINTOSH (voir tr page 283) : tr \012 \015 < unix.txt > mac.txt MACINTOSH vers UNIX (voir tr page 283) : tr \015 \012 < mac.txt > unix.txt
c T.Besanon (v14.0.1025)
Administration UNIX
128 / 918
Chapitre 6
c T.Besanon (v14.0.1025)
Administration UNIX
129 / 918
6.1 Notions dobjets sous UNIX Chapitre 6 Commandes de manipulation de base dobjets UNIX
Sur UNIX, plusieurs types dobjets : chiers rpertoires objets associs aux disques durs, CDROMs, bandes magntiques, etc. objets systme de communication inter applications autres objets systmes (doors Solaris, etc.) Ceux que lon manipule le plus souvent en tant quutilisateur : chiers rpertoires
c T.Besanon (v14.0.1025)
Administration UNIX
130 / 918
Sur UNIX, on fait la dirence entre lettres minuscules et lettres majuscules en ce qui concerne les noms dobjets !
% ls -l -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--
1 1 1 1 1 1
0 0 0 0 0 0
16 16 16 16 16 16
6 chiers dirents !
c T.Besanon (v14.0.1025)
Administration UNIX
131 / 918
Sur UNIX, on vitera autant que possible les caractres espace, apostrophe, guillemets et les lettres accentues dans les noms dobjets ! Sur UNIX, on prfrera nommer les objets avec les lettres minuscules a-z, lettres majuscules A-Z, les chires 0-9, le tiret - , le underscore _ , le point . . NE PAS UTILISER LE RESTE !
c T.Besanon (v14.0.1025)
Administration UNIX
132 / 918
Sur UNIX, il y a certaines conventions pour les extensions dans les noms des objets.
Extensions pour les langages de programmation : programme.c , include.h , Extensions pour les archives ou les chiers compresss : archive.tar , rapport.gz pas dextension pour les chiers texte Dans ce cours, on clariera les choses en utilisant lextension .txt du monde Windows quand cela sera plus parlant. pas dextension pour les chiers excutables Dans ce cours, on clariera les choses en utilisant lextension .exe du monde Windows quand cela sera plus parlant. etc.
c T.Besanon (v14.0.1025)
Administration UNIX
133 / 918
6.2 Inode
6.2 Inode
Les objets sont manipulables sur le disque dur via lintermdiaire dune structure de donnes appele inode . Cela sera revu en dtails dans le tme 2. En gros :
1 2 3 4
un inode a un numro unique un inode indique le type de lobjet un inode possde la liste des blocs de donnes de lobjet le systme UNIX passe son temps manipuler les inodes
6.3 Notions de chier sous UNIX Chapitre 6 Commandes de manipulation de base dobjets UNIX
Inode : 927
Contenu :
Type : fichier
Aujourdhu
Liste des blocs de donnees : 23, 47, 198, 2418 autres infos
Blocs de donnees
c T.Besanon (v14.0.1025)
Administration UNIX
135 / 918
Notions de rpertoire sous UNIX Chapitre 6 Commandes de manipulation de base 6.4 dobjets UNIX
Terminologie : rpertoire, dossier, directory en anglais Un rpertoire est un chier dont les donnes sont une liste de noms + numros dinode.
Bloc : 16 Bloc : 23 Contenu : (cerise, 0x0123)
Inode : 4815 Type : directory Liste des blocs de donnees : 16, 23, 42 autres infos
Contenu : (fraise, 0x3617)
0x4815
0x3617
0x4831
0x0123
c T.Besanon (v14.0.1025)
Administration UNIX
136 / 918
0x3617
0x4831
0x0123
c T.Besanon (v14.0.1025)
Administration UNIX
137 / 918
Un rpertoire peut renvoyer sur un autre rpertoire et ainsi de suite. Cela permet de construire une arborescence reprsentable par un arbre :
Les objets seront rpartis dans larborescence. La racine sappelle / , prononc slash.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 138 / 918
Plus exactement les directories sont organiss entre eux de la faon suivante :
pere
.
nom du fils
..
fils
.
UNIX garantit quil ny a pas de boucle dans larborescence.
c T.Besanon (v14.0.1025)
Administration UNIX
139 / 918
Exemple :
0x4815
jardin
0x4815
zoo 0x162342
0x162342
. .. tigre lion
c T.Besanon (v14.0.1025)
Administration UNIX
140 / 918
ATTENTION : un dossier ne peut pas contenir deux fois le mme nom dobjet !
4815
IMPOSSIBLE
c T.Besanon (v14.0.1025)
Administration UNIX
141 / 918
Par contre, on peut avoir plusieurs objets dirents ayant le mme nom dans larborescence :
ananas
ananas
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 142 / 918
6.5 Notions de chemins absolus et relatifs Chapitre 6 Commandes de manipulation de base dobjets UNIX
Sur UNIX, un objet est manipulable par son chemin dans larborescence depuis le point de dpart de larborescence. Le chemin est constitu de la liste des noms des rpertoires traverss et est termin par le nom de lobjet en soi. / rpertoire1 / rpertoire 2/ ... / nom
Point fondamental : utilisation du caractre / comme sparateur dans lnumration des rpertoires traverss. Attention : par abus de langage, on confondra lobjet avec le nom de lobjet et avec le chemin daccs lobjet.
c T.Besanon (v14.0.1025)
Administration UNIX
143 / 918
chemin daccs absolu : Si le chemin daccs commence par / , il sagit dun chemin absolu : chemin daccs absolu = / rpertoire1 / rpertoire2 / ... / nom
c T.Besanon (v14.0.1025)
Administration UNIX
144 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
145 / 918
chemin daccs relatif : Si le chemin daccs ne commence pas par / , il sagit dun chemin relatif : chemin daccs relatif = rpertoire1 / rpertoire2 / ... / nom
c T.Besanon (v14.0.1025)
Administration UNIX
146 / 918
/ bin ls dev usr include sys stat.h tmp on regarde depuis ce point de reference
c T.Besanon (v14.0.1025)
Administration UNIX
147 / 918
/ bin ls dev usr include sys stat.h tmp on regarde depuis ce point de reference
c T.Besanon (v14.0.1025)
Administration UNIX
148 / 918
Exemples dutilisation du rpertoire courant not . (revus ultrieurement) : commande find pour lancer une recherche partir de lendroit courant (voir page 465) :
find . -name exemple.txt -print
lancer une commande commande.exe qui se trouve dans le rpertoire courant (voir page 665) :
./commande.exe
c T.Besanon (v14.0.1025)
Administration UNIX
149 / 918
6.6 Positionnement dans larborescence : cd Chapitre 6 Commandes de manipulation de base dobjets UNIX
c T.Besanon (v14.0.1025)
Administration UNIX
150 / 918
Position dans larborescence : pwd Chapitre 6 Commandes de manipulation de base6.7 dobjets UNIX
c T.Besanon (v14.0.1025)
Administration UNIX
151 / 918
6.8 Liste des objets : ls Chapitre 6 Commandes de manipulation de base dobjets UNIX
c T.Besanon (v14.0.1025)
Administration UNIX
152 / 918
(en anglais list ) Syntaxe : ls [options] objets Principales options (cumulables) : option -l : achage au format long des informations relatives aux objets option -g : achage des groupes propritaires des objets option -R : liste rcursive des objets indiqus option -d : achage des noms des objets et non de leurs contenus option -F : achage des objets avec un suxe dsignant le type de lobjet option -a : achage des objets dont les noms commencent par .
c T.Besanon (v14.0.1025)
Administration UNIX
153 / 918
carottes.avi
petitspois.txt
boite
c T.Besanon (v14.0.1025)
Administration UNIX
154 / 918
Exemple 2 : option -l
on regarde depuis ce point de reference ananas.jpg boite
carottes.avi
petitspois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
155 / 918
Solaris : options -e ou -E
% ls -e poire.txt -rw-r--r-1 besancon ars % ls -E poire.txt -rw-r--r-1 besancon ars 00 poire.txt
c T.Besanon (v14.0.1025)
Administration UNIX
157 / 918
Exemple 3 : option -R
on regarde depuis ce point de reference ananas.jpg boite
carottes.avi
petitspois.txt
boite
petits-pois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
158 / 918
carottes.avi
petitspois.txt
ls -Rl renvoie la liste des objets de la sous-arborescence et de leurs informations : suite sur transparent suivant
c T.Besanon (v14.0.1025)
Administration UNIX
159 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
160 / 918
Exemple 5 : option -F
on regarde depuis ce point de reference ananas.jpg boite
carottes.avi
petitspois.txt
ls -F colle au nom de lobjet une indication sur sa nature : / pour un rpertoire * pour un excutable @ pour un lien symbolique (voir page 211) etc.
% ls -F ananas.jpg
boite/
c T.Besanon (v14.0.1025)
Administration UNIX
161 / 918
carottes.avi
petitspois.txt
ls -lF colle au nom de lobjet une indication sur sa nature : / pour un rpertoire * pour un excutable @ pour un lien symbolique (voir page 211) etc.
% ls -lF -rw-r--r-drwxr-xr-x
c T.Besanon (v14.0.1025)
Administration UNIX
Exemple 7 : option -a
on regarde depuis ce point de reference ananas.jpg boite
carottes.avi
petitspois.txt
% ls -a . ..
ananas.jpg
boite
c T.Besanon (v14.0.1025)
Administration UNIX
163 / 918
% cd $HOME % ls -aF ./ ../ .ICAClient/ .TTauthority .Xauthority .Xdefaults .Xresources .acrobat/ .adobe/ .antiword/ .bash_history .bash_login .bash_logout .bashrc .dbxinit
.dia/ .dt/ .dtprofile* .exrc .fetchmail.pid .fetchmailrc .fonts.cache-1 .foprc .gimp-2.0/ .gnome/ .gnome2/ .gphoto/ .hushlogin/ .ispell .java/
.kshrc* .less .lessrc .mailcap .mailrc .mime.types .mozilla/ .mpdefaults .mushuser .mysql_history .netscape/ .plan .profile* .project .psql_history
.qt/ .rhosts .shosts .signature .ssh/ .sunw/ .sversionrc* .tcshrc@ .xine/ .xinitrc@ .xnviewrc .xserverrc* .xsession@ ananas.txt cerise.txt
Par dfaut, la commande ls nache pas les noms de objets commenant par . qui par convention sont des chiers de conguration dutilitaires.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 164 / 918
carottes.avi
petitspois.txt
Achage du contenu :
% ls boite carottes.avi
petits-pois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
165 / 918
carottes.avi
petitspois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
166 / 918
carottes.avi
petitspois.txt
Achage du contenant (suite) : ls (sans option) renvoie la liste des objets contenus dans le rpertoire courant :
% ls ananas.jpg
boite
quivalent ls . :
% ls . ananas.jpg
boite
c T.Besanon (v14.0.1025)
Administration UNIX
167 / 918
6.9 (Windows : : Liste des objets : dir.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande Windows
dir.exe dir.exe dir.exe dir.exe dir.exe /d /s /x /q /p
c T.Besanon (v14.0.1025)
Administration UNIX
168 / 918
6.10 Cration de rpertoires : mkdir Chapitre 6 Commandes de manipulation de base dobjets UNIX
Taille minimale dun rpertoire (mme vide) : 512 octets Raison : 512 octets allocation minimale par le systme pour cette catgorie dobjets (la taille sera toujours un multiple de 512) (hmmm... certains LINUX ne respectent plus cela)
c T.Besanon (v14.0.1025)
Administration UNIX
169 / 918
Pas pratique !
c T.Besanon (v14.0.1025)
Administration UNIX
170 / 918
Plus pratique : cration directe de sous rpertoires en cascade possible via option -p :
% mkdir -p repertoire1/repertoire2/repertoire3 % ls -R .: repertoire1 ./repertoire1: repertoire2 ./repertoire1/repertoire2: repertoire3 ./repertoire1/repertoire2/repertoire3:
c T.Besanon (v14.0.1025)
Administration UNIX
171 / 918
6.11 (Windows : : cration de rpertoires : md.exe, mkdir.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande Windows
md.exe dossier mkdir.exe dossier
c T.Besanon (v14.0.1025)
Administration UNIX
172 / 918
6.12 Dplacer et renommer des objets : mv Chapitre 6 Commandes de manipulation de base dobjets UNIX
0x1122
0x1122
0x3617
0x3617
0x9483
0x9483
c T.Besanon (v14.0.1025)
Administration UNIX
173 / 918
0x1122
0x1122
0x3617
0x3617
c T.Besanon (v14.0.1025)
Administration UNIX
174 / 918
La commande permet la fois : de changer le rattachement dun objet de changer le nom du rattachement
c T.Besanon (v14.0.1025)
Administration UNIX
175 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
176 / 918
On fait :
% mv ananas.avi film.avi
c T.Besanon (v14.0.1025)
Administration UNIX
177 / 918
Dplacement dobjets :
% ls -l -rw-r--r-1 besancon ars drwxr-xr-x 2 besancon ars -rw-r--r-1 besancon ars % mv film.avi cinematheque % ls -l -rw-r--r-1 besancon ars drwxr-xr-x 2 besancon ars % ls -lR .: -rw-r--r-1 besancon ars drwxr-xr-x 2 besancon ars ./cinematheque: -rw-r--r-1 besancon ars
2893 May 25 22:59 banane.txt 512 May 25 23:03 cinematheque 1035 May 25 22:59 film.avi
c T.Besanon (v14.0.1025)
Administration UNIX
178 / 918
1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
179 / 918
6.13 (Windows : : dplacer des objets : move.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande Windows
c T.Besanon (v14.0.1025)
Administration UNIX
180 / 918
6.14 (Windows : : renommer des objets : ren.exe, rename.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande Windows
c T.Besanon (v14.0.1025)
Administration UNIX
181 / 918
6.15 Duplication dun objet : cp Chapitre 6 Commandes de manipulation de base dobjets UNIX
dupliquer les dossiers dans le dossier indiqu Quelques options : -r : copie rcursive -i : conrmation chaque crasement de chier -p : conservation des dates (et des propritaires utilisateur et groupe si commande lance par ladministrateur)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 182 / 918
ananas.jpg
ananas.jpg
banane.jpg
% cp ananas.jpg banane.jpg
c T.Besanon (v14.0.1025)
Administration UNIX
183 / 918
ananas.jpg
boite
ananas.jpg
boite
ananas.jpg
% cp ananas.jpg boite
c T.Besanon (v14.0.1025)
Administration UNIX
184 / 918
boite1
boite2
boite1
boite2
carottes.avi
carottes.avi
boite1
carottes.avi
% cp -r boite1 boite2
c T.Besanon (v14.0.1025)
Administration UNIX
185 / 918
7 7
c T.Besanon (v14.0.1025)
Administration UNIX
186 / 918
6.16 (Windows : : Duplication dun objet : copy.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande copy.exe
C:\>copy.exe /? Copie un ou plusieurs fichiers sur un autre emplacement. COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [cible [/A | /B]]
c T.Besanon (v14.0.1025)
Administration UNIX
187 / 918
6.17 (Windows : : Duplication dun objet : xcopy.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande xcopy.exe
C:\>xcopy.exe /? Copie des fichiers et des arborescences de rpertoires. XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:fich1[+fich2][+fich3]...]
Utilisation pratique : crer la destination : md.exe dest copie par : xcopy *.txt dest /e /c /h /k /o
c T.Besanon (v14.0.1025)
Administration UNIX
188 / 918
6.18 Destruction dun objet : rm Chapitre 6 Commandes de manipulation de base dobjets UNIX
0x1122
0x3617
c T.Besanon (v14.0.1025)
Administration UNIX
189 / 918
Quelques options : option -i : conrmation chaque suppression (garde fou) option -r : suppression rcursive option -f : suppression en force dun objet mme si ses droits ne sy prtent pas
rm -rf rpertoires permet de supprimer rcursivement toute une arborescence sans demande de conrmation. Attention : dangereux.
c T.Besanon (v14.0.1025)
Administration UNIX
190 / 918
ananas.jpg
boite
boite
carottes.avi
petitspois.txt
carottes.avi
petitspois.txt
% ls ananas.jpg
boite
% rm ananas.jpg % ls boite
c T.Besanon (v14.0.1025)
Administration UNIX
191 / 918
ananas.jpg
boite
carottes.avi
petitspois.txt
% rm boite rm: boite is a directory % rmdir boite rmdir: boite: Directory not empty % ls boite carottes.avi petits-pois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
192 / 918
ananas.jpg
boite
ananas.jpg
carottes.avi
petitspois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
193 / 918
ananas.jpg
boite
boite
carottes.avi
petitspois.txt
carottes.avi
petitspois.txt
c T.Besanon (v14.0.1025)
Administration UNIX
194 / 918
(Windows : : Destruction dun objet : del.exe) Chapitre 6 Commandes de manipulation6.19 de base dobjets UNIX
Commande UNIX
rm -i rm -r rm -f
Commande Windows
del.exe /p del.exe /s del.exe /f
c T.Besanon (v14.0.1025)
Administration UNIX
195 / 918
6.20 Suppression de rpertoires : rmdir Chapitre 6 Commandes de manipulation de base dobjets UNIX
(en anglais remove directory ) Syntaxe : rmdir rpertoires On ne peut eacer avec cette commande quun rpertoire vide. pnalisant on prferera souvent la commande rm -rf
c T.Besanon (v14.0.1025)
Administration UNIX
196 / 918
6.21 (Windows : : suppression dun rpertoire : rd.exe) Chapitre 6 Commandes de manipulation de base dobjets UNIX
Commande rd.exe Commande UNIX Pas dquivalent car demande de conrmation inexistante sur UNIX
rmdir rep rm -rf rep
Commande Windows
rd.exe rep rd.exe /q rep rd.exe /s /q rep
c T.Besanon (v14.0.1025)
Administration UNIX
197 / 918
6.22 Liens sur objets Chapitre 6 Commandes de manipulation de base dobjets UNIX
Rappel : les noms sont stocks dans les rpertoires. Un nom est appel un lien sur lobjet. Sur UNIX chaque objet peuvent tre associs plusieurs noms.
tigre fruit lion gupard 0x551512 0x0123 0x551534 0x551528
c T.Besanon (v14.0.1025)
Administration UNIX
198 / 918
Dans linode dun objet, il y a un compteur de liens : compteur incrment lors de la cration dun nouveau lien compteur dcrment lors de la suppression dun lien lobjet est dtruit lorsque le dernier lien sur lobjet est supprim On voit les valeurs des compteurs de liens via la commande ls -l :
% ls -l -rw-r--r--rw-r--r-drwxr-xr-x drwxr-xr-x drwxr-xr-x
1 1 4 2 3
Oct 26 2003 ananas Jul 3 17:38 banane Jul 4 15:48 cerise Nov 20 2003 endive Jul 5 00:36 fraise
Soit larborescence :
pre
dir
et lachage :
% ls -l drwxr-xr-x
5 besancon ars
512 Jul
5 00:29 dir
c T.Besanon (v14.0.1025)
Administration UNIX
200 / 918
"." ".."
"dir"
dir
".." ".."
b c
lien /chemin/vers/dir lien /chemin/vers/dir/. lien /chemin/vers/dir/a/.. lien /chemin/vers/dir/b/.. lien /chemin/vers/dir/c/..
Administration UNIX ARS 2011 2012 Partie 1 201 / 918
c T.Besanon (v14.0.1025)
5 5 5 5 5
c T.Besanon (v14.0.1025)
Administration UNIX
202 / 918
6.23 Lien hard sur objets : ln Chapitre 6 Commandes de manipulation de base dobjets UNIX
(en anglais link ) Le lien hard utilise le numro dinode pour trouver lobjet. Le numro est unique par partition. un lien hard reste interne une partition.
c T.Besanon (v14.0.1025)
Administration UNIX
203 / 918
Les interdits : on ne peut pas faire de hard link vers une autre partition (car impossibilit dadresser linode dune autre partition depuis un rpertoire) on ne peut pas faire de hard link vers un rpertoire (car sinon boucles invisibles impossibles dtecter dans larborescence)
c T.Besanon (v14.0.1025)
Administration UNIX
204 / 918
A quoi sert un lien hard ? Exemple : environnement chroot (sera revu plus tard)
PARTITION
Principe du chroot : il restreint laccs au contenu dune partie darborescence (dite la cage ) et on ne peut pas accder au contenu extrieur de la cage Pourquoi utiliser un lien hard ? : avec un lien hard, un objet peut tre lintrieur et lextrieur de la cage du chroot selon le lien utilis
c T.Besanon (v14.0.1025) Administration UNIX
lien1
lien2
205 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
206 / 918
% ls -li ananas.jpg fruit.jpg 357 -rw-r--r-- 2 besancon ars 357 -rw-r--r-- 2 besancon ars % rm ananas.jpg % ls -li fruit.jpg 357 -rw-r--r-- 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
207 / 918
Place occupe
% ls -li ananas.jpg fruit.jpg 357 -rw-r--r-- 2 besancon ars 357 -rw-r--r-- 2 besancon ars % du -k . 3 . % rm fruit.jpg % du -k . 3 .
c T.Besanon (v14.0.1025)
Administration UNIX
208 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
209 / 918
6.24 Lien symbolique sur objets : ln -s Chapitre 6 Commandes de manipulation de base dobjets UNIX
lien symbolique
fichier normal
(en anglais symbolic link ) Un lien symbolique est un chier spcial contenant le chemin dun autre objet.
% cat synonyme
renvoi sur /chemin/vers/original
fichier normal
Un lien symbolique est non limit une partition dun disque dur parce quutilisant le chemin dun objet et non pas son numro dinode.
Partition 1
Partition 1
jardin
fruits
rouges
Partition 2
Partition 2
cerise
/jardin/fruits/rouges/cerise
DISQUE A
DISQUE B
c T.Besanon (v14.0.1025)
Administration UNIX
212 / 918
A quoi sert un lien symbolique ? Exemple : chier de conguration commun tous les utilisateurs
Partition 1
Partition 2
utilisateur ALAIN
utilisateur CLAUDE
Partition 3
Pourquoi ne peut-on pas employer des liens hard dans cet exemple ?
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 213 / 918
% ls -l ananas.jpg -rw-r--r-- 1 besancon ars 9919 Jul 14 10:15 ananas.jpg % ln -s ananas.jpg fruit.jpg % ls -li ananas.jpg fruit.jpg 357 -rw-r--r-- 1 besancon ars 358 lrwxr-xr-x 1 besancon ars
% ls -lL ananas.jpg fruit.jpg -rw-r--r-- 1 besancon ars 9919 Jul 14 10:15 ananas.jpg -rw-r--r-- 1 besancon ars 9919 Jul 14 10:15 fruit.jpg
c T.Besanon (v14.0.1025)
Administration UNIX
214 / 918
% ls -li ananas.jpg fruit.jpg 357 -rw-r--r-- 1 besancon ars 358 lrwxr-xr-x 1 besancon ars
% rm ananas.jpg % ls -liL fruit.jpg 358 lrwxr-xr-x 1 besancon ars 10 Oct 17 18:26 fruit.jpg -> ananas.jpg % cat fruit.jpg cat: fruit.jpg: No such file or directory
c T.Besanon (v14.0.1025)
Administration UNIX
215 / 918
Les systmes UNIX imposent les droits lrwxr-xr-x sur le lien (selon lUNIX cela pourra tre la place lrwxrwxrwx). Ils ne peuvent pas tre modis. On ne peut que changer les droits dun chier point par un lien symbolique :
% ls -l ananas.jpg fruit.jpg -rw-r--r-- 1 besancon ars 9919 Jul 14 10:15 ananas.jpg lrwxr-xr-x 1 besancon ars 10 Oct 17 18:26 fruit.jpg -> ananas.jpg % chmod 600 fruit.jpg % ls -l -rw------- 1 besancon ars lrwxr-xr-x 1 besancon ars
% ls -lL ananas.jpg fruit.jpg -rw------- 1 besancon ars 9919 Jul 14 10:15 ananas.jpg -rw------- 1 besancon ars 9919 Jul 14 10:15 fruit.jpg
c T.Besanon (v14.0.1025)
Administration UNIX
216 / 918
Sous Windows notion de raccourci, shortcut. Un raccourci Windows nest pas quivalent un lien symbolique UNIX !
pas de commande standard pour gnrer un raccourci ; uniquement via interface graphique ou API (VBS, etc.) a priori impossibilit daccder via des commandes en ligne lobjet via le raccourci comme on le ferait sous UNIX (voir ci-aprs) ; il faut passer par linterface graphique la place
c T.Besanon (v14.0.1025)
Administration UNIX
217 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
218 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
219 / 918
C:\Documents and Settings\besancon\My Documents>type b.txt.lnk L ?q? + Fc ?lc-??sIc-?.lc-?N ? e?k ? PaO- O:i? +00Y? /C:\ \ 1 -0?p? \DOCUME~1 D ? ? n+N0Auu0l q D o c u m e n t s a n d S e t t i n g s ? @ 1 @0,V? besancon ( ? ? n+O0qsu0lq b e s a n c o n ? d 1 S0sk? MYDOCU~1 0 ? ? n+O0qsu0lq M y D o c u m e n t s ? ? ? ? n+b e s a n c o n ? 6 2 N u0?y a.txt " ? ? n+u0-u0?q a . t x t q n ? ? ? 7 m ? ? t\?? Windows XP C:\Documents and Settings\besancon\My Documents\a.txt . \ a . t x t / C : \ D o c u m e n t s a n d S e t t i n g s \ b e s a n c o n \ M y D o c u m e n t s ? X best =+A-?=+N2bb++-,33lYl-+?a PV=+A-?=+Nb b++-,3ElYl-+?a PV+
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 220 / 918
(Windows : : lien symbolique : junction) Chapitre 6 Commandes de manipulation de 6.26 base dobjets UNIX
Le systme NTFS de Windows ore la notion de junction mais il y a peu dutilitaires pour les utiliser. On trouve : linkd.exe , delrp.exe dans le resource kit Windows 2K/XP/2K3 junction.exe dURL
http://www.sysinternal.com/ntw2k/source/misc.shtml\#junction
c T.Besanon (v14.0.1025)
Administration UNIX
221 / 918
. tools tools2
c T.Besanon (v14.0.1025)
Administration UNIX
222 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
223 / 918
Destruction de la junction :
C:\Documents and Settings\besancon\My Documents>junction -d tools2 Junction v1.03 - Win2K junction creator and reparse point viewer Copyright (C) 2000-2002 Mark Russinovich Systems Internals - http://www.sysinternals.com Deleted tools2.
c T.Besanon (v14.0.1025)
Administration UNIX
224 / 918
Chapitre 7
c T.Besanon (v14.0.1025)
Administration UNIX
225 / 918
7.1 Introduction
7.1 Introduction
toto.c
1.y
checkin
toto.c 1.0
toto.c 1.1
toto.c 1.x
toto.c
Seuls les noms du rpertoire de repository et les noms des commandes de check-in et check-out changeront dun package de gestion un autre.
c T.Besanon (v14.0.1025)
1.y
R E P O S I T O R Y
toto.c
1.x
Administration UNIX
226 / 918
7.2 SCCS
7.2 SCCS
SCCS Source Code Control System 1975 Nom du repository Cration dans le repository Check-out en read-write Check-in Check-out en read-only Comparaison avec le repository Historique des versions On a :
sccs deledit == sccs delta + sccs edit sccs delget == sccs delta + sccs get
create programme.c edit programme.c delta programme.c get programme.c diffs programme.c prt programme.c
c T.Besanon (v14.0.1025)
Administration UNIX
227 / 918
7.3 RCS
7.3 RCS
RCS Revision Control System ftp://ftp.lip6.fr/pub/gnu/rcs/ Nom du repository Cration dans le repository Check-out en read-write Check-in Check-out en read-only Comparaison avec le repository Historique des versions On a :
ci -l == ci + co -l
RCS rcs -i programme.c co -l programme.c ci programme.c co programme.c rcsdiff programme.c rlog programme.c
c T.Besanon (v14.0.1025)
Administration UNIX
228 / 918
7.4 CVS
7.4 CVS
CVS Concurrent Version System Construit au dessus de RCS (pour sa gestion interne des chiers mais les commandes RCS ne sont pas utilises) Utilis par de nombreuses quipes de dveloppeurs de programmes sur Internet. CVS utilisera le terme de projet CVS peut fonctionner en rseau, le repository peut tre sur une machine distante Pour utiliser CVS, on doit dnir 2 variables denvironnement : variable CVSROOT : chemin du repository par dfaut variable EDITOR : diteur de texte par dfaut ( vi par dfaut)
c T.Besanon (v14.0.1025)
Administration UNIX
229 / 918
7.4 CVS
La commande cvsinit cre les rpertoires et les chiers dadministration ncessaires. commande cvs checkout filename Une copie du chier indiqu est extraite du repository. commande cvs add filename Ajoute le chier indiqu larborescence du repository. commande cvs remove filename Supprime un chier du repository. commande cvs commit Entrine les actions des cvs add et cvs remove . Incorpore au repository vos modications. commande cvs update Pour rcuprer sur son disque ltat actuel du repository.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 230 / 918
7.4 CVS
commande cvs diff Montre les dirences entre votre copie locale et le repository. commande cvs export ? commande cvs history Ache lhistorique des modications. commande cvs log ou commande cvs status Ache des informations sur le module du rpertoire de travail courant.
c T.Besanon (v14.0.1025)
Administration UNIX
231 / 918
7.4 CVS
Pour travailler avec CVS travers le rseau 2 contextes : on veut suivre un projet en tant que spectateur ; on ne modiera pas les chiers CVS anonyme on veut suivre un projet en tant quacteur actif ; on modiera des chiers CVS authenti
c T.Besanon (v14.0.1025)
Administration UNIX
232 / 918
7.4 CVS
CVS anonyme On veut suivre un projet en tant que spectateur ; on ne modiera pas les chiers. La phase de connexion est du type suivant :
% CVSROOT=:pserver:anonymous@anoncvs.example.com:/cvs/gnome % export CVSROOT % cvs login CVS password: <-- taper retour chariot
c T.Besanon (v14.0.1025)
Administration UNIX
233 / 918
7.4 CVS
CVS authenti On veut suivre un projet en tant quacteur actif ; on modiera des chiers. On utilisera SSH pour scuriser la connexion :
% % % % CVS_RSH=ssh export CVS_RSH CVSROOT=:ext:user@cvs.example.com:/chemin/vers/repository export CVSROOT
c T.Besanon (v14.0.1025)
Administration UNIX
234 / 918
7.5 SUBVERSION
7.5 SUBVERSION
A completer...
c T.Besanon (v14.0.1025)
Administration UNIX
235 / 918
7.6 GIT
7.6 GIT
A completer...
c T.Besanon (v14.0.1025)
Administration UNIX
236 / 918
Chapitre 8
c T.Besanon (v14.0.1025)
Administration UNIX
237 / 918
8.1 Achage du contenu dun chier texte : cat Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
238 / 918
8 Commandes de manipulation de base dobjets UNIX (suite) 8.2 (Windows : : Achage du contenu dun chier texte : type.exe)
Commande type.exe
c T.Besanon (v14.0.1025)
Administration UNIX
239 / 918
8.3 Achage du contenu dun chier texte : tac Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
tac = cat lenvers = achage du chier en partant de la dernire ligne et en remontant vers la premire ligne Syntaxe : tac fichier Par exemple :
% cat exemple.txt AAAAA BBBBB CCCCC % tac exemple.txt CCCCC BBBBB AAAAA
c T.Besanon (v14.0.1025)
Administration UNIX
240 / 918
Achage du contenu dun chier texte : nl Chapitre 8 Commandes de manipulation de8.4 base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
241 / 918
8.5 Achage du contenu dun chier texte : more Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais more ) En cas de texte trs long, la commande cat nest pas pratique. On lui prfrera la commande more pour son achage page dcran par page dcran. Syntaxe : more fichiers Caractre q pour quitter (en anglais quit ) Caractre espace pour avancer dune page dcran Caractre b pour revenir en arrire dune page (en anglais backward ) Caractre f pour avancer dune page dcran (en anglais forward ) La commande man ache en fait les pages du manuel au moyen de la commande more
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 242 / 918
Lorsque le texte est ach, on peut rechercher un mot au sein du texte. Pour chercher ananas vers lavant, faire /ananas . Pour chercher ananas vers larrire, faire ?ananas . Pour chercher lapparition suivante du mot, faire n .
c T.Besanon (v14.0.1025)
Administration UNIX
243 / 918
8 Commandes de manipulation de base dobjets UNIX (suite) 8.6 (Windows : : Achage du contenu dun chier texte : more.exe)
Commande more.exe
c T.Besanon (v14.0.1025)
Administration UNIX
244 / 918
8.7 Achage du contenu dun chier texte : less Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais less ) La commande less possde quelques fonctionnalits agrables de plus que la commande more . Par exemple : remonter dans le chier ( lorigine more ne le faisait pas). Syntaxe : less [options] fichiers Mme mthode dutilisation que pour more . ATTENTION : il existe une variable denvironnement (voir page 650) appele LESSOPEN qui complique le fonctionnement de la commande en fait (sera vu en TP). Dsactiver la variable en pratique (faire unset LESSOPEN , voir page 643).
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 245 / 918
8.8 Comptage de lignes dans un chier : wc Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais word count ) Syntaxe : wc [option] fichiers Quelques options intressantes : -c : nombre de caractres uniquement (en anglais character ) -w : nombre de mots uniquement (en anglais word ) -l : nombre de lignes uniquement (en anglais line ) Par exemple :
% wc exemple.txt 3 16 % wc -l exemple.txt 3 exemple.txt 82 exemple.txt
c T.Besanon (v14.0.1025)
Administration UNIX
246 / 918
8.9 Comparaison de deux chiers : diff Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais dierence ) Syntaxe : diff [options] fichier1 fichier2 Objet : raliser la comparaison ligne ligne du chier texte fichier2 par rapport au chier texte fichier1 . Deux options intressantes : option -c : ache de quelques lignes du contexte (en anglais contextual ) option -u : mode uni (en anglais unied )
c T.Besanon (v14.0.1025)
Administration UNIX
247 / 918
% diff fichier1 fichier2 2c2 < Deux fotes dortographe ici. --> Deux fautes dorthographe ici.
Interprtation de 2c2 : la ligne 2 de fichier2 est change par rapport la ligne 2 de fichier1
c T.Besanon (v14.0.1025)
Administration UNIX
248 / 918
% diff fichier1 fichier2 0a1 > 2c3 < Deux fotes dortographe ici. --> Deux fautes dortographe ici.
Interprtation de 0a1 : la ligne 1 de fichier2 est ajoute par rapport la ligne 0 de fichier1 Interprtation de 2c3 : la ligne 3 de fichier2 est change par rapport la ligne 2 de fichier1
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 249 / 918
Exemple 3 : option -c
% 1 2 3 cat fichier1 Blabla bla bla. Deux fotes dortographe ici. Encore du blabla bla bla. % 1 2 3 cat fichier2 Blabla bla bla. Deux fautes dortographe ici. Encore du blabla bla bla.
% diff -c fichier1 fichier2 *** fichier1 Sun Sep 9 19:06:13 2001 --- fichier2 Sun Sep 9 19:06:24 2001 *************** *** 2 **** ! Deux fotes dortographe ici. --- 2 ---! Deux fautes dorthographe ici.
Interprtation de *** 2 **** et --- 2 ---- : la ligne 2 de fichier2 est change par rapport la ligne 2 de fichier1 .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 250 / 918
Exemple 4 : option -u
% 1 2 3 cat fichier1 Blabla bla bla. Deux fotes dortographe ici. Encore du blabla bla bla. % 1 2 3 cat fichier2 Blabla bla bla. Deux fautes dortographe ici. Encore du blabla bla bla.
% diff -u fichier1 fichier2 --- fichier1 Fri Sep 16 22:05:15 2005 +++ fichier2 Fri Sep 16 22:05:20 2005 @@ -1,3 +1,3 @@ Blabla bla bla. -Deux fotes dortographe ici. +Deux fautes dortographe ici. Encore du blabla bla bla.
c T.Besanon (v14.0.1025)
Administration UNIX
251 / 918
8.10 Comparaison de deux chiers binaires : cmp Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais compare ) Syntaxe : cmp fichier1 fichier2 Objet : raliser la comparaison octet octet du chier binaire fichier2 par rapport au chier binaire fichier1 . Utilit par exemple : comparer des binaires dun systme la recherche de programmes pirats, etc. Exemple :
% cmp programme1.exe programme2.exe programme1.exe programme2.exe differ: char 3174, line 9
8.11 Extraction des premires lignes de chiers : head Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
253 / 918
Extraction des dernires lignes de chiers : tail Chapitre 8 Commandes de manipulation8.12 de base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
254 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
255 / 918
Exemple 4 : Achage des dernires lignes en temps rel Syntaxe : tail -f fichier
8.13 Extraction de colonnes de chiers : cut Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais cut ) Syntaxe : cut [options] fichiers Quelques options : -c : dcoupage selon des positions de caractres (en anglais character ) -f : dcoupage selon des positions de mots (en anglais eld ) -d : indique le dlimiteur de mots (en anglais delimiter )
c T.Besanon (v14.0.1025)
Administration UNIX
257 / 918
extraction sur chaque ligne (constitue de mots spars par un certain dlimiteur) de mots pris isolment :
cut -d: -f 1,5 fichier.txt
extraction sur chaque ligne (constitue de mots spars par un certain dlimiteur) du mot i au mot j :
cut -d: -f 4-7 fichier.txt
c T.Besanon (v14.0.1025)
Administration UNIX
258 / 918
8.14 Tri dun chier : sort Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais sort ) Syntaxe : sort [options] fichiers Quelques options : option -n : tri numrique (en anglais numerical ) option -r : tri par ordre dcroissant (en anglais reverse ) option -t : permet de spcier le sparateur de mots option -k : spcie la clef de tri (en anglais key ) ; on peut indiquer plusieurs clefs de tri
c T.Besanon (v14.0.1025)
Administration UNIX
259 / 918
Exemple 1
% cat exemple.txt arbre 12 ascenceur 2 ordinateur % sort exemple.txt 12 2 arbre ascenceur ordinateur
c T.Besanon (v14.0.1025)
Administration UNIX
260 / 918
Exemple 2
% cat exemple.txt 12 2 3 33 22 % sort exemple.txt 12 2 22 3 33 % sort -n exemple.txt 2 3 12 22 33 % sort -rn exemple.txt 33 22 12 3 2
c T.Besanon (v14.0.1025)
Administration UNIX
261 / 918
Exemple 3
% cat exemple.txt or:100000 argent:40000 bois:15 % sort exemple.txt argent:40000 bois:15 or:100000 % sort -t : -k 2 exemple.txt or:100000 bois:15 argent:40000 % sort -t : -k 2 -n exemple.txt bois:15 argent:40000 or:100000
c T.Besanon (v14.0.1025)
Administration UNIX
262 / 918
On a donc :
% sort -t . -k 1n,1 -k 2n,2 -k 3n,3 -k 4n,4 exemple.txt 127.0.0.1 localhost 134.157.46.129 serveur.formation.jussieu.fr 192.168.1.1 ananas.example.com 192.168.1.2 banane.example.org 192.168.1.3 cerise.example.org 192.168.1.4 poire.example.org 192.168.1.100 kiwi.example.org 192.168.2.1 freebox.example.org
c T.Besanon (v14.0.1025)
Administration UNIX
263 / 918
class
c T.Besanon (v14.0.1025)
Administration UNIX
264 / 918
% sort -t . -k 1n,1 -k 2n,2 -k 3n,3 exemple.txt 2.2.3.0 2.10.3.0 2.10.10.8 2.10.20.0 2.10.100.0 2.10.100.43 <- mal class 2.10.100.5 10.2.2.0
c T.Besanon (v14.0.1025)
Administration UNIX
265 / 918
Importance de bien prciser les clefs de tri (suite) : La solution pour trier ces adresses IP :
% sort -t . -k 1n,1 -k 2n,2 -k 3n,3 -k 4n,4 exemple.txt 2.2.3.0 2.10.3.0 2.10.10.8 2.10.20.0 2.10.100.0 2.10.100.5 2.10.100.43 10.2.2.0
c T.Besanon (v14.0.1025)
Administration UNIX
266 / 918
(Windows : : Tri dun chier : sort.exe) Chapitre 8 Commandes de manipulation de 8.15 base dobjets UNIX (suite)
C:\documents and settings\besancon\mes documents>sort /? SORT [/R] [/+n] [/M kilo-octets] [/L locale] [/RE octets_enregistrement] [[lecteur1:][chemin1]nom_fichier1] [/T [lecteur2:][chemin2]] [/O [lecteur3:][chemin3]nom_fichier3]
Point de vue unixien sur le sort de Windows : considration prhistorique de la place mmoire pas de possibilit de tri sur des champs mais uniquement sur des positions de caractres pas de tri numrique
c T.Besanon (v14.0.1025)
Administration UNIX
267 / 918
8.16 Elimination des lignes identiques dun chier : uniq Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais unique ) Syntaxe : uniq [options] fichier Objet : limine les lignes conscutives identiques Quelques options : option -c : prcde chaque ligne du rsultat du nombre doccurences de cette ligne dans le chier original (en anglais count )
c T.Besanon (v14.0.1025)
Administration UNIX
268 / 918
Exemple 1
% cat exemple.txt Ceci est un test. Ceci est un test. TEST unix TEST TEST % uniq exemple.txt Ceci est un test. TEST unix TEST
Exemple 2
% cat exemple.txt Ceci est un test. Ceci est un test. TEST unix TEST TEST
c T.Besanon (v14.0.1025)
Administration UNIX
269 / 918
Exemple 3
% cat exemple.txt Ceci est un test. Ceci est un test. TEST unix TEST TEST % sort exemple.txt | uniq -c 2 Ceci est un test. 3 TEST 1 unix
c T.Besanon (v14.0.1025)
Administration UNIX
270 / 918
Cration dun chier vide : touch Chapitre 8 Commandes de manipulation de base8.17 dobjets UNIX (suite)
(en anglais touch) Syntaxe : touch fichiers ATTENTION : cette commande ne permet de crer un chier vide que si le chier mentionn nexiste pas dj ! Exemple
% ls -l exemple.txt exemple.txt: No such file or directory % touch exemple.txt % ls -l exemple.txt -rw-r--r-1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
271 / 918
Modication des dates dun objet : touch Chapitre 8 Commandes de manipulation de8.18 base dobjets UNIX (suite)
(en anglais touch) Syntaxe : touch [options] -t time objet Un objet UNIX a trois dates parmi ses attributs (ce sera revu plus loin). Quelques options : option -a : modication de la date daccs du chier (a accesstime) option -m : modication de la date de modication du chier (m mtime) option -t time : indique une date mettre autre que la date de linstant ; format : AAAAMMJJhhmm.ss
c T.Besanon (v14.0.1025)
Administration UNIX
272 / 918
Exemples
% ls -l exemple.txt -rw-r--r-1 besancon ars
% touch -m -t 199901012233 exemple.txt % ls -l exemple.txt -rw-r--r-1 besancon ars 49 Jan % touch -m -t 09012233 exemple.txt % ls -l exemple.txt -rw-r--r-1 besancon ars 49 Sep
1999 exemple.txt
1 22:33 exemple.txt
c T.Besanon (v14.0.1025)
Administration UNIX
273 / 918
8.19 Cration dobjets temporaires : /tmp Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais temporary ) Le rpertoire /tmp sert stocker des objets temporaires.
% ls -ld /tmp drwxrwxrwt 12 root
sys
Les droits daccs de /tmp sont 1777 exprim en octal. Leurs signications : signication de 777 : tout le monde sur la machine peut crer, modier, eacer des objets signication de 1000 : un utilisateur ne peut eacer que les objets qui lui appartiennent Ces droits daccs seront revus et expliqus page 380.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 274 / 918
/tmp
/tmp
reseau srvlnx.formation.jussieu.fr
/net/srvlnx/home
c T.Besanon (v14.0.1025)
Administration UNIX
275 / 918
8.20 (Windows : : variable temp, rpertoire temp) Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Il existe sous Windows : rpertoire public C:\winnt\temp sous Windows 2000 rpertoire public C:\windows\temp sous Windows XP et Windows 2003 pour chaque utilisateur dun Windows 2000 server ou mieux, rpertoire temporaire donn par la variable %temp% , en fait
C:\Documents and settings\utilisateur\local settings\temp\
c T.Besanon (v14.0.1025)
Administration UNIX
276 / 918
8.21 Manipulation des noms dobjets : basename Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais base of name ) Syntaxe : basename fichier [suffixe] Objet : supprimer un suxe (extension) du nom dun objet
% basename document.doc .doc document
c T.Besanon (v14.0.1025)
Administration UNIX
277 / 918
Utilisation archi classique : Changer lextension .txt de tous les chiers du rpertoire courant en lextension .doc :
for i in *.txt do mv $i basename $i .txt.doc done
Exemple connaitre !
c T.Besanon (v14.0.1025)
Administration UNIX
278 / 918
8.22 Nature dun objet : file Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais le ) Syntaxe : file objets Cette commande permet de deviner quelle application est li lobjet. Elle sappuie pour rendre un avis sur la reconnaissance de motifs connus dans le contenu de lobjet. Pour voir les motifs, se reporter au chier /etc/magic Version amliore de la commande (lamlioration porte sur le nombre de types de chiers reconnus) :
ftp://ftp.astron.com/pub/file/file-4.09.tar.gz
c T.Besanon (v14.0.1025)
Administration UNIX
279 / 918
Exemple dutilisation : Soit des chiers pris dans le cache dun navigateur web De quels types sont ces chiers aux noms sans extension ?
% ls -l total 720110 -rw-------rw-------rw-------rw-------rw------% file * C3866435d01: DF0D61DCd01: _CACHE_001_: _CACHE_002_: _CACHE_MAP_:
1 1 1 1 1
18 18 18 18 18
HTML document text Zip archive data, at least v2.0 to extract MP32, Mono data pfm?
c T.Besanon (v14.0.1025)
Administration UNIX
280 / 918
8.23 Achage du contenu dun objet binaire : od Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais octal dump ) Syntaxe : od [options] objet Principales options (cumulables) : option -c : achage en ascii (plus pseudo codes C) option -b : achage en base 8 option -x : achage en base 16
c T.Besanon (v14.0.1025)
Administration UNIX
281 / 918
\n
c T.Besanon (v14.0.1025)
Administration UNIX
282 / 918
8.24 Commande de traduction de caractres : tr Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais translate ) Commande de base sur tous les UNIX. Syntaxe : tr [options] jeu1 [jeu2] < fichier.txt Deux utilisations possibles de la commande : remplacer un par un chaque caractre du jeu 1 par le caractre en mme position dans le jeu 2 eacer les caractres du jeu 1 (pas de jeu2 mentionn) On notera quaucun nom de chiers nest donner sur la ligne de commande.
c T.Besanon (v14.0.1025)
Administration UNIX
283 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
284 / 918
Exemple 3 Meilleure faon de convertir les lettres minuscules en lettres majuscules (ou vice versa) :
% cat exemple.txt aoie % tr [:lower:] [:upper:] < exemple.txt AOIE
c T.Besanon (v14.0.1025)
Administration UNIX
285 / 918
Nouvelles critures : [:lower:] : en anglais lower case : lettres minuscules [:upper:] : en anglais upper case : lettres majuscules [:digit:] : chires de la base 10 [:xdigit:] : chires de la base 16 [:punct:] : signes de ponctuation [:alnum:] : XXX [:alpha:] : XXX [:graph:] : XXX [:print:] : XXX [:blank:] : XXX [:space:] : XXX
c T.Besanon (v14.0.1025)
Administration UNIX
286 / 918
ATTENTION : Cela ncessite la variable denvironnement LC_CTYPE positionne une valeur correcte (voir page 650 pour les variables denvironnement) :
% echo $LC_CTYPE en_US % tr [:lower:] [:upper:] < exemple.txt AOIE % unset LC_CTYPE % tr [:lower:] [:upper:] < exemple.txt AOIE
c T.Besanon (v14.0.1025)
Administration UNIX
287 / 918
sur le remplissage des disques : df Chapitre 8 Commandes de manipulation 8.25 de Information base dobjets UNIX (suite)
(en anglais disk lesystems ) Syntaxe : df [options] rpertoires Quelques options intressantes : -k : achage des capacits en kilo octets -i : achage des capacits en inodes (sur Solaris faire -o i ) -h : achage sous forme plus lisible (en anglais human readable ) ; achage variable peu utilisable en programmation Si lon indique un rpertoire, la commande ache le remplissage du disque dur (local ou rseau) contenant ce rpertoire.
c T.Besanon (v14.0.1025)
Administration UNIX
288 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
289 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
290 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
291 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
292 / 918
8 Commandes de manipulation de base dobjets UNIX (suite)8.26 (Windows : : Information sur le remplissage des disques : df.exe)
Rcuprer le package cmdutils.zip sur le site http://paulsadowski.com/. Il contient un binaire df.exe montrant disques locaux et rseau :
C:\>net use z: \\winserveur\c$ La commande sest termine correctement. C:\>df.exe -b C:\ 8589783 D:\ 9663508 E:\ 2147432 F:\ 16009768 Z:\ 20974428
Disque local 1 (ntfs) Disque local 2 (ntfs) Swap (ntfs) Backup (ntfs) [Volume has no label] (ntfs)
c T.Besanon (v14.0.1025)
Administration UNIX
293 / 918
8 Commandes de manipulation de base dobjets UNIX (suite)8.26 (Windows : : Information sur le remplissage des disques : df.exe)
c T.Besanon (v14.0.1025)
Administration UNIX
294 / 918
8.27 Calcul de la place disque occupe : du Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais disk usage ) Syntaxe : du [options] rpertoires Principales options (cumulables) : option -s : achage uniquement du total (en anglais sum) option -k : achage des totaux exprims en kilo octets (en anglais kilobytes ) option -h : achage sous forme plus lisible (en anglais human readable ) ; achage variable peu utilisable en programmation Attention : ne pas confondre df et du .
c T.Besanon (v14.0.1025)
Administration UNIX
295 / 918
% du -k picqueno 152 picqueno/.kde/share/config du: cannot change to directory picqueno/.kde/share/fonts: Permission denied du: cannot change to directory picqueno/.kde/share/apps: Permission denied du: cannot change to directory picqueno/.kde/share/mimelnk: Permission denied du: cannot change to directory picqueno/.kde/share/services: Permission denied du: cannot change to directory picqueno/.kde/share/icons: Permission denied 176 picqueno/.kde/share 184 picqueno/.kde 588 picqueno/.mcop/trader-cache 592 picqueno/.mcop 20 picqueno/tp/2 32 picqueno/tp/4 4 picqueno/tp/1 4 picqueno/tp/3 68 picqueno/tp/5 776 picqueno/tp 1672 picqueno
c T.Besanon (v14.0.1025)
Administration UNIX
296 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
297 / 918
picqueno/.kde/share/fonts: Permission denied picqueno/.kde/share/apps: Permission denied picqueno/.kde/share/mimelnk: Permission denied picqueno/.kde/share/services: Permission denied picqueno/.kde/share/icons: Permission denied
c T.Besanon (v14.0.1025)
Administration UNIX
298 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
299 / 918
Vous ne devez pas laisser votre compte se remplir de chiers. Les disques durs nont pas une capacit innie et hors de question de stocker toute la documentation disponible sur Internet chez vous !
La commande du -k $HOME vous donnera la taille disque que votre homedirectory occupe. La commande passe en revue tous les rpertoires et en ache la taille.
c T.Besanon (v14.0.1025)
Administration UNIX
300 / 918
8.28 (Windows : : Calcul de la place disque occupe : diruse.exe) Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
La commande diruse.exe (resource kit Windows 2000, support kit Windows XP/2003) calcule la place occupe dans une arborescence :
C:\>diruse.exe /s /k C:\Docume~1 Size (kb) 0.00 0.00 0.00 0.00 ... 0.02 36.14 732377.45 732377.45 1 12 4711 4711 \DOCUME~1\Default User\Start Menu\Programs\Startup \DOCUME~1\Default User\Templates SUB-TOTAL: \DOCUME~1 TOTAL: \DOCUME~1 Files 0 0 0 0 Directory \DOCUME~1 \DOCUME~1\Administrator \DOCUME~1\Administrator\Application Data \DOCUME~1\Administrator\Application Data\Microsoft
c T.Besanon (v14.0.1025)
Administration UNIX
301 / 918
8 Commandes de manipulation de base dobjets UNIX (suite) 8.29 (Windows : : Calcul de la place disque occupe : diskuse.exe)
La commande diskuse.exe (resource kit 2000/XP/2003) calcule la place occupe dans une arborescence mais la calcule par utilisateur :
C:\>diskuse.exe /s /e:nul /t "c:\Documents and settings" DiskUse Version 1.3 Scanning Path .\................................................................ ................................................................................ ................................................................................ ................................................................................ ................................................................................ ......................................... Resolving Names.... Sorting.... WINXP WINXP WINXP BUILTIN Administrator besancon root Administrators 1653 705532503 36876743 6375184
8.30 Compression de chiers : compress, uncompress, zcat Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Le chier compress sappelle aprs compression fichier.Z . Le chier dcompress retrouve son nom fichier .
c T.Besanon (v14.0.1025)
Administration UNIX
303 / 918
Exemples
% ls -l 20091029.log -rw-r--r-- 1 besancon ars % compress 20091029.log % compress -v 20091029.log 20091029.log: Compression: 85.01% -- replaced with 20091029.log.Z % ls -l 20091029.log.Z -rw-r--r-- 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
304 / 918
de chiers : gzip, gunzip, gzcat Chapitre 8 Commandes de manipulation 8.31 de Compression base dobjets UNIX (suite)
Cette srie de commandes compresse mieux les chiers que la famille autour de compress. Syntaxes de quelques commandes de compression ou dcompression :
gzip [options] fichiers gunzip [options] fichiers.gz gzcat fichiers.gz
Le chier compress sappelle aprs compression fichier.gz . Le chier dcompress retrouve son nom fichier . De plus en plus rpandu. Au cas o absent :
ftp://ftp.lip6.fr/pub/gnu/gzip/
Attention : dans les salles de TP, il faut utiliser zcat au lieu de gzcat .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 305 / 918
Exemples
% ls -l 20091029.log -rw-r--r-- 1 besancon ars % gzip 20091029.log % gzip -v 20091029.log 20091029.log: 91.6% -- replaced with 20091029.log.gz % ls -l 20091029.log.gz -rw-r--r-- 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
306 / 918
8.32 Compression de chiers : bzip2, bunzip2, bzcat Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Cette srie de commandes compresse mieux les chiers que la famille autour de compress. Syntaxes de quelques commandes de compression ou dcompression :
bzip2 [options] fichiers bunzip2 [options] fichiers.bz2 bzcat fichiers.bz2
Le chier compress sappelle aprs compression fichier.bz2 . Le chier dcompress retrouve son nom fichier . Pas encore trs rpandu. Cf http://sources.redhat.com/bzip2/
c T.Besanon (v14.0.1025)
Administration UNIX
307 / 918
Exemples
% ls -l 20091029.log -rw-r--r-- 1 besancon ars % bzip2 20091029.log 20091029.log: 17.050:1,
c T.Besanon (v14.0.1025)
Administration UNIX
308 / 918
8.33 Compression de chiers : 7za Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Cette srie de commandes compresse mieux les chiers que la famille autour de compress. Syntaxes de quelques commandes de compression ou dcompression :
7za a -t7z archive.7z objets 7za l archive.7z 7za e archive.7z
Le chier compress sappelle aprs compression fichier.7z . Le chier dcompress retrouve son nom fichier . Pas encore trs rpandu. Cf http://www.7-zip.org/
c T.Besanon (v14.0.1025)
Administration UNIX
309 / 918
Exemples
% ls -l 20091029.log -rw-r--r-- 1 besancon ars
% 7z a -t7z 20091029.log 20091029.log 7-Zip (A) 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30 p7zip Version 9.04 (locale=C,Utf16=off,HugeFiles=on,1 CPU) Scanning Creating archive 20091029.log.7z Compressing 20091029.log
c T.Besanon (v14.0.1025)
Administration UNIX
310 / 918
de chiers : temps de compression Chapitre 8 Commandes de manipulation8.34 deCompression base dobjets UNIX (suite)
% time compress -v 20091029.log 20091029.log: Compression: 85.01% -- replaced with 20091029.log.Z real user sys 0m15.718s 0m13.756s 0m1.024s
% time gzip -v 20091029.log 20091029.log: 91.6% -- replaced with 20091029.log.gz real user sys 0m8.412s 0m7.359s 0m0.471s
c T.Besanon (v14.0.1025)
Administration UNIX
311 / 918
% time bzip2 -v 20091029.log 20091029.log: 17.050:1, 0.469 bits/byte, 94.14% saved, 44532413 in, 2611813 out real user sys 2m54.250s 2m42.890s 0m1.128s 20091029.log
7-Zip (A) 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30 p7zip Version 9.04 (locale=C,Utf16=off,HugeFiles=on,1 CPU) Scanning Creating archive 20091029.log.7z Compressing 20091029.log
c T.Besanon (v14.0.1025)
c T.Besanon (v14.0.1025)
Administration UNIX
313 / 918
8.35 Compression de chiers : place occupe Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
314 / 918
En apparence :
% ls -l -rw-r--r--
1 besancon ars
1 besancon ars
En ralit : la compression consomme de la place disque durant la compression car les deux chiers (chier de dpart non compress, chier compress en cours de gnration) existent simultanment pendant quelques instants.
c T.Besanon (v14.0.1025)
Administration UNIX
315 / 918
Si lon observe le rpertoire pendant la compression, on voit bien les deux chiers exister (ici achage chaque seconde) :
-rw-r--r--rw-------rw-r--r--rw-------rw-r--r--rw-------rw-r--r--rw-------rw-r--r--rw-------rw-r--r--rw------... 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 44532413 Oct 30 00:35 20091029.log 294912 Oct 30 00:42 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 786432 Oct 30 00:42 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 1212416 Oct 30 00:42 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 1720320 Oct 30 00:43 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 2113536 Oct 30 00:43 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 2572288 Oct 30 00:43 20091029.log.gz
c T.Besanon (v14.0.1025)
Administration UNIX
316 / 918
Suite...
... -rw-r--r--rw-------rw-r--r--rw-------rw-r--r--
1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars 1 besancon ars
44532413 Oct 30 00:35 20091029.log 3080192 Oct 30 00:43 20091029.log.gz 44532413 Oct 30 00:35 20091029.log 3588096 Oct 30 00:43 20091029.log.gz 3718570 Oct 30 00:35 20091029.log.gz
c T.Besanon (v14.0.1025)
Administration UNIX
317 / 918
8.36 Archivage dobjets : tar Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais tape archive ) La commande tar permet darchiver dans un seul chier une arborescence. 3 syntaxes selon lopration : Cration dune archive Achage du contenu dune archive Extraction dobjets prsents dans larchive Extension traditionnelle : .tar
c T.Besanon (v14.0.1025)
Administration UNIX
318 / 918
objets archive.tar
Attention : la commande autorise dcrire les options sans le signe - . Par exemple on peut rencontrer : tar cvf archive.tar objets .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 319 / 918
Attention : la commande autorise dcrire les options sans le signe - . Par exemple on peut rencontrer : tar tvf archive.tar .
c T.Besanon (v14.0.1025)
Administration UNIX
320 / 918
Extraction de larchive complte : tar -xvf archive.tar Extraction dun ou plusieurs objets de larchive : tar -xvf archive.tar objets
objets archive.tar
Attention : la commande autorise dcrire les options sans le signe - . Par exemple on peut rencontrer : tar xvf archive.tar objets .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 321 / 918
Compression la vole lors de larchivage Vous pouvez selon les systmes UNIX compresser larchive au fur et mesure de sa construction :
objets
archive.tar.gz
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 322 / 918
Archivage + Compression par compress Option Z : Cration dune archive : tar -cvZf archive.tar.Z objets Achage du contenu dune archive : tar -tvZf archive.tar.Z Extraction de larchive complte : tar -xvZf archive.tar.Z Extraction dun ou plusieurs objets de larchive : tar -xvZf archive.tar.Z objets Extension traditionnelle : .tar.Z
c T.Besanon (v14.0.1025)
Administration UNIX
323 / 918
Archivage + Compression par gzip Option z : Cration dune archive : tar -cvzf archive.tar.gz objets Achage du contenu dune archive : tar -tvzf archive.tar.gz Extraction de larchive complte : tar -xvzf archive.tar.gz Extraction dun ou plusieurs objets de larchive : tar -xvzf archive.tar.gz objets Extension traditionnelle : .tar.gz Un chier .tar.gz sappelle un tarball . Extension .tgz courante : quivalent .tar.gz
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 324 / 918
Archivage + Compression par bzip2 Option j : Cration dune archive : tar -cvjf archive.tar.bz2 objets Achage du contenu dune archive : tar -tvjf archive.tar.bz2 Extraction de larchive complte : tar -xvjf archive.tar.bz2 Extraction dun ou plusieurs objets de larchive : tar -xvjf archive.tar.bz2 objets Extension traditionnelle : .tar.bz2
c T.Besanon (v14.0.1025)
Administration UNIX
325 / 918
8.37 Commandes issues du monde Windows : zip, unzip Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
URL : http://www.info-zip.org/
c T.Besanon (v14.0.1025)
Administration UNIX
326 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
327 / 918
Attention : utiliser loption -a pour extraire des chiers texte avec conversion des ns de ligne de MSDOS vers UNIX
c T.Besanon (v14.0.1025)
Administration UNIX
328 / 918
8.38 (Windows : : PowerArchiver Command Line) Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Version 4 payante PAComp.exe compresse sous les formats : ZIP, CAB, LHA, BH (BlakHole), JAR (JavaARchiver), TAR, TAR.GZ (GZIPed TAR), TAR.BZ2 (BZIPed TAR) PAExt.exe extrait les formats : ZIP, RAR, ARJ, CAB, LHA(LZH), ARC, ACE, GZIP, BZIP2, TAR (TAR.GZ, TAR.BZ2), UUE, XXE, ZOO, JAR (JavaARchiver) et autres formats auto-extractibles.
c T.Besanon (v14.0.1025)
Administration UNIX
329 / 918
8.39 (Windows : : 7-ZIP) Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
c T.Besanon (v14.0.1025)
Administration UNIX
330 / 918
8.40 Impression : lpr, lpq, lprm Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais line printer, line printer queue, line printer remove ) Une impression ncessite de connaitre le nom de limprimante et davoir un chier au bon format imprimer. Pour imprimer, utiliser la commande lpr -Pimprimante fichiers Pour consulter la queue dimpression, utiliser la commande lpq -Pimprimante Pour retirer un chier de la queue dimpression, utiliser la commande lprm -Pimprimante numro-dans-la-queue-renvoy-par-lpq
c T.Besanon (v14.0.1025)
Administration UNIX
331 / 918
A la formation permanente, les noms des imprimantes sont : pice 213 : hp4250-213 pice 214 : hp4100-214 pice 216 : hp4250-216 pice 217 : hp4250-217
c T.Besanon (v14.0.1025)
Administration UNIX
332 / 918
8.41 Impression de chiers texte : a2ps Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(en anglais ascii to postscript ) Pour convertir du texte vers le format PostScript compris par limprimante. Nombreuses options de la commande a2ps . Pour imprimer du texte dans la salle de TP de la Formation Permanente :
% a2ps -P hp4250-216 fichier.txt [a2ps (plain): 1 page on 1 sheet] [Total: 1 page on 1 sheet] sent to the standard output
c T.Besanon (v14.0.1025)
Administration UNIX
333 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
334 / 918
8.42 Impression de chiers texte : enscript Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
(le nom provient dun logiciel de la marque Adobe aux fonctionnalits reprises par le logiciel GNU qui a repris le nom pour marquer sa compatibilit avec le logiciel original) Pour convertir du texte vers le format PostScript compris par limprimante. Nombreuses options de la commande enscript.
c T.Besanon (v14.0.1025)
Administration UNIX
335 / 918
fichier.txt
c T.Besanon (v14.0.1025)
Administration UNIX
336 / 918
pour disquettes PC : mtools, mcopy Chapitre 8 Commandes de manipulation 8.43 de Utilitaires base dobjets UNIX (suite)
Sur des machines quipes de lecteur de disquettes, on peut transfrer des chiers depuis et vers leur lecteur de disquette. Un logiciel appel mtools permet dutiliser les disquettes en orant des commandes UNIX avec la logique des commandes connues du DOS. Rcuprer le logiciel sur http://mtools.linux.lu La commande de base utiliser est mcopy. Transfert dUNIX vers la disquette Transfert de la disquette vers UNIX Achage du contenu de la disquette
mcopy fichier a: mcopy a:fichier . mdir a:
Se reporter lURL http://www.loria.fr/~giese/doc/mtools.html pour plus de dtails sur les commandes disponibles.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 337 / 918
8.44 Utilisation de clefs USB Chapitre 8 Commandes de manipulation de base dobjets UNIX (suite)
Les clefs USB sont directement reconnues par le bureau de lenvironnement de multifentrage KDE de la salle de TP de la Formation Permanente :
c T.Besanon (v14.0.1025)
Administration UNIX
338 / 918
La clef apparait en tant quicone sur le bureau et en tant que /mnt/removable dans larborescence des chiers.
c T.Besanon (v14.0.1025)
Administration UNIX
339 / 918
La clef USB doit tre formate en mode disque dur et doit comporter par consquent une table de partition.
Une clef USB formate en mode disquette (cest--dire sans table de partition) ne sera pas reconnue par le systme LINUX de la salle de TP de la Formation Permanente.
c T.Besanon (v14.0.1025)
Administration UNIX
340 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
341 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
342 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
344 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
345 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
346 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
347 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
348 / 918
Chapitre 9
c T.Besanon (v14.0.1025)
Administration UNIX
349 / 918
Les droits daccs un objet sont stocks dans une structure dite inode. Cette structure nest pas manipulable directement. Les droits daccs des objets sont indiqus dans les 10 premiers caractres de chaque ligne ache par ls -l :
% ls -l total 16 -rw-r--r--
1 besancon ars
r
type de lobjet
user
group
others
c T.Besanon (v14.0.1025)
Administration UNIX
350 / 918
r
type de lobjet
user
group
others
c T.Besanon (v14.0.1025)
Administration UNIX
351 / 918
r
type de lobjet
user
group
others
c T.Besanon (v14.0.1025)
Administration UNIX
352 / 918
Le principe : Un utilisateur appartient un groupe primaire Un utilisateur peut appartenir des groupes secondaires Un objet a un propritaire utilisateur et un propritaire groupe
c T.Besanon (v14.0.1025)
Administration UNIX
353 / 918
r
type de lobjet
user
group
others
Il existe trois paquets de droits daccs associs chaque objet : droits du propritaire (u user) droits des membres du groupe (g group) droits des autres utilisateurs (o others)
% ls -l total 16 -rw-r--r--
1 besancon ars
Ici : user = utilisateur besancon group = utilisateurs du groupe ars others = les utilisateurs autres que besancon et autres que les membres du groupe ars
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 354 / 918
r
type de lobjet
user
Il existe trois types de permissions : droit en lecture (r read) droit en criture (w write )
group
others
c T.Besanon (v14.0.1025)
Administration UNIX
355 / 918
Permission Components Traverse Folder / Execute File List Folder / Read Data Read Attributes Read Extended Attributes Create Files / Write Data Create Folders / Append Data
Read (R)
Write (W)
c T.Besanon (v14.0.1025)
Administration UNIX
356 / 918
Permission Components Write Attributes Write Extended Attributes Delete Subfolders and Files Delete Read Permissions Change Permissions Take Ownership
Read (R)
Write (W)
Permission Types (Windows NT) Execute Delete Change Permissions (X) (D) Permissions (P)
c T.Besanon (v14.0.1025)
Administration UNIX
357 / 918
(en anglais change modes ) Syntaxe : chmod [options] modes objets Option -R pour changer rcursivement les droits des objets dune arborescence. La prcision des modes dans la commande peut prendre deux formes : forme symbolique : u (user ), g (group ), o (others ) ou a (all ) + ou - ou = permissions ( r , w ou x ) forme numrique : Les permissions sont exprimes en base huit ou octale. Par exemple : rwx r-x r-x 755
c T.Besanon (v14.0.1025)
Administration UNIX
358 / 918
Droits
----x -w-wx r-r-x rwrwx
Valeur base 2 000 001 010 011 100 101 110 111
Valeur base 8 0 1 2 3 4 5 6 7
Cest pourquoi on a par exemple : rwx r-x r-x 755 rw- r-- r-- 644 rw- --- --- 600
c T.Besanon (v14.0.1025)
Administration UNIX
359 / 918
% ls -l exemple.txt -rw-r--r-- 1 besancon ars % chmod g+w exemple.txt % ls -l exemple.txt -rw-rw-r-- 1 besancon ars % chmod o=wx exemple.txt % ls -l exemple.txt -rw-rw--wx 1 besancon ars % chmod 640 exemple.txt % ls -l exemple.txt -rw-r----- 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
Le propritaire de lobjet peut toujours corriger des droits daccs (incorrects ou non).
c T.Besanon (v14.0.1025)
Administration UNIX
361 / 918
9.4 Droits interdits par dfaut lors de cration dobjets : umask Chapitre 9 Attributs des objets UNIX
(en anglais user mask ) Utilisation 1 Utilisation 1 : pour connatre les droits interdits par dfaut lors de la cration dobjets Syntaxe : umask
% umask 022
c T.Besanon (v14.0.1025)
Administration UNIX
362 / 918
On utilise une notation octale : on indique les bits interdits lors de la cration des objets. Voir page suivante pour le dtail de la notation.
ATTENTION : le rglage du umask indique les bits interdits et en prenant le contraire, les bits qui seront peut-tre obtenus.
c T.Besanon (v14.0.1025)
Administration UNIX
363 / 918
Valeur base 2 111 110 101 100 011 010 001 000
Valeur base 8 7 6 5 4 3 2 1 0
au au au au
rwx rwrwrwx
r-x r------
r-x r------
Administration UNIX
364 / 918
ATTENTION BIS :
le rglage du umask indique les bits interdits par dfaut le rglage du umask nindique pas les bits qui seront obtenus le rglage du umask indique les bits qui seront obtenus dans le meilleur des cas
Les droits obtenus = les droits demands par lapplication moins les droits interdits (ou ltrs) par le umask
Voir les exemples ci aprs.
c T.Besanon (v14.0.1025)
Administration UNIX
365 / 918
Exemple 1
% umask 022 % vi prog.c % ls -l prog.c -rw-r--r-1 besancon ars % gcc prog.c -o prog.exe % ls -l prog.exe -rwxr-xr-x 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
366 / 918
Exemple 2
% umask 027 % vi prog.c % ls -l prog.c -rw-r----1 besancon ars % gcc prog.c -o prog.exe % ls -l prog.exe -rwxr-x--1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
367 / 918
Exemple 3
% umask 000 % vi prog.c % ls -l prog.c -rw-rw-rw1 besancon ars % gcc prog.c -o prog.exe % ls -l prog.exe -rwxrwxrwx 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
368 / 918
Conclusion des 3 exemples : vi demande les droits 666 par dfaut qui sont ltrs par le umask ensuite gcc demande les droits 777 par dfaut qui sont ltrs par le umask ensuite Conclusion gnralise : une application gnrant un chier texte demande les droits 666 par dfaut qui sont ltrs par le umask ensuite droits-rsultats = 666 - umask une application gnrant un chier excutable demande les droits 777 par dfaut qui sont ltrs par le umask ensuite droits-rsultats = 777 - umask
c T.Besanon (v14.0.1025)
Administration UNIX
369 / 918
ATTENTION : un rglage de umask dure le temps dune session shell ! (voir plus loin comment rendre le rglage
permanent)
c T.Besanon (v14.0.1025)
Administration UNIX
370 / 918
Hypothse : on est sous Bourne Shell ou sous BASH. Objectif : on veut rgler son umask de faon permanente. Solution : On utilise le chier $HOME/.profile avec un lien symbolique $HOME/.bashrc dessus. On rgle ainsi (sh ou bash) :
cas du shell interactif de login cas du shell interactif non de login cas du shell non interactif
c T.Besanon (v14.0.1025)
Administration UNIX
371 / 918
Il existe un attribut spcial de chier rserv la gestion du systme : le bit setuid (4000 en octal). Avec ce bit positionn, le programme est excut avec les droits de lutilisateur propritaire.
% ls -lg prog1.exe prog2.exe -rwxr-xr-x 1 besancon ars -rwxr-xr-x 1 besancon ars % chmod u+s prog1.exe % chmod 4711 prog2.exe % ls -lg prog1.exe prog2.exe -rwsr-xr-x 1 besancon ars -rws--x--x 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
372 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
373 / 918
Moins classiquement :
% touch exemple.txt % ls -l exemple.txt -rw-r--r-1 besancon ars 127 Jan 24 20:21 % chmod u+s exemple.txt chmod: WARNING: exemple.txt: Execute permission for set-ID on execution % ls -l exemple.txt -rw-r--r-1 besancon ars 127 Jan 24 20:21 % chmod 4644 exemple.txt % ls -l exemple.txt -rwSr--r-1 besancon ars 127 Jan 24 20:21
exemple.txt required
exemple.txt
exemple.txt
ATTENTION : le bit setuid ne fonctionne pas avec un shell script. (voir page 696 pour ce quest un shell script)
Il ne fonctionne quavec un excutable binaire.
c T.Besanon (v14.0.1025)
Administration UNIX
375 / 918
Il existe un attribut spcial de chier rserv la gestion du systme : le bit setgid (2000 en octal). Avec ce bit positionn, le programme est excut avec les droits du groupe propritaire
% ls -lgF prog1.exe prog2.exe -rwxr-xr-x 1 besancon ars -rwxr-xr-x 1 besancon ars % chmod g+s prog1.exe % chmod 2711 prog2.exe % ls -lgF prog1.exe prog2.exe -rwxr-sr-x 1 besancon ars -rwx--s--x 1 besancon ars
c T.Besanon (v14.0.1025)
Administration UNIX
376 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
377 / 918
Moins classiquement :
% touch exemple.txt % ls -l exemple.txt -rw-r--r-1 besancon ars 127 Jan 24 20:21 % chmod g+s exemple.txt chmod: WARNING: exemple.txt: Execute permission for set-ID on execution % ls -l exemple.txt -rw-r--r-1 besancon ars 127 Jan 24 20:21 % chmod 2644 exemple.txt % ls -l exemple.txt -rw-r-lr-1 besancon ars 127 Jan 24 20:21
exemple.txt required
exemple.txt
exemple.txt
ATTENTION : le bit setgid ne fonctionne pas avec un shell script. (voir page 696 pour ce quest un shell script)
Il ne fonctionne quavec un excutable binaire.
c T.Besanon (v14.0.1025)
Administration UNIX
379 / 918
Il existe un attribut spcial de rpertoire rserv la gestion du systme : le sticky bit (1000 en octal).
Avec ce bit positionn, on ne peut eacer dun rpertoire que ses propres chiers et pas ceux des autres.
c T.Besanon (v14.0.1025)
Administration UNIX
380 / 918
% ls -ld /tmp drwxrwxrwt 11 root root 2580 Aug 2 15:40 /tmp % cd /tmp % ls -l -rw-r--r-- 1 besancon adm 90252 Jul 29 16:21 ananas.jpg -rw-r--r-- 1 besancon adm 255596 Jul 29 16:21 banane.jpg -rw-r--r-- 1 root root 639 Sep 1 23:44 pear.con -rw-r--r-- 1 root root 614 Sep 1 23:09 php.errors -rw-r--r-- 1 apache apache 35383 Aug 8 01:49 ps % rm ps rm: ps: override protection 644 (yes/no)? y rm: ps not removed: Permission denied % rm php.errors rm: php.errors: override protection 644 (yes/no)? y rm: php.errors not removed: Permission denied
c T.Besanon (v14.0.1025)
Administration UNIX
381 / 918
Historiquement : le sticky bit positionn sur un excutable le chargeait en mmoire virtuelle et ne leacait pas de la zone de swap si bien que le recharger se faisait rapidement.
c T.Besanon (v14.0.1025)
Administration UNIX
382 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
383 / 918
Moins classiquement :
% mkdir -p exemple.dir % ls -ld exemple.dir drwxr-xr-x 2 besancon ars 117 Jan 25 11:09 exemple.dir % chmod 1700 /tmp/exemple.dir % ls -lgd /tmp/exemple.dir drwx-----T 2 besancon ars 117 Jan 25 11:12 exemple.dir
c T.Besanon (v14.0.1025)
Administration UNIX
384 / 918
Sur UNIX, chaque objet sont associes 3 dates stockes dans une structure dite inode. Cette structure nest pas manipulable directement.
Ces 3 dates sont : date de dernire modication dite mtime ( modication time) date de dernier accs dite atime ( access time) date de dernire modication des attributs dite ctime ( change time)
c T.Besanon (v14.0.1025)
Administration UNIX
385 / 918
Attention : par dfaut, ls -l ache une date de moins de 6 mois sous la forme : Mois Jour Heure :Minute une date de plus de 6 mois sous la forme : Mois Jour Anne
% ls -l drwxr-xr-x 3 besancon ars -rw-r--r-- 1 besancon ars
1024 Oct 23 19:35:51 2005 jardin 29749 Apr 5 20:50:28 2006 ananas.avi
c T.Besanon (v14.0.1025)
Administration UNIX
386 / 918
Au niveau de la commande ls : option -l : format long (achage du mtime par dfaut) option -t : tri dcroissant par date (mtime par dfaut) option -r : tri par ordre inverse ls -lt : classement par ordre chronologique dcroissant des mtimes ls -ltu : classement par ordre chronologique dcroissant des atimes ls -ltc : classement par ordre chronologique dcroissant des ctimes
c T.Besanon (v14.0.1025)
Administration UNIX
387 / 918
Quelques cas utiles : date : la date de linstant courant date -u : la date GMT de linstant courant date +%Y%m%d : date du jour sous la forme AAAAMMJJ . Voir page de manuel de la fonction C strftime .
c T.Besanon (v14.0.1025)
Administration UNIX
388 / 918
(en anglais touch) Syntaxe : touch [options] -t time objet Quelques options : option -a : modication de la date daccs de lobjet (a atime) option -m : modication de la date de modication de lobjet (m mtime) option -t time : indique une date autre que la date du moment mettre ; format : AAAAMMJJhhmm.ss
c T.Besanon (v14.0.1025)
Administration UNIX
389 / 918
Exemple
% ls -l exemple.txt -rw-r--r-- 1 besancon ars
% touch -m -t 199901012233 exemple.txt % ls -l exemple.txt -rw-r--r-- 1 besancon ars 49 Jan 1 % touch -m -t 09012233 exemple.txt % ls -l exemple.txt -rw-r--r-- 1 besancon ars 49 Sep
1999 exemple.txt
1 22:33 exemple.txt
c T.Besanon (v14.0.1025)
Administration UNIX
390 / 918
Chapitre 10
c T.Besanon (v14.0.1025)
Administration UNIX
391 / 918
Besoin pratique : faire des recherches dans des chiers denregistrements de base de donnes, dinventaires, de comptabilit . . . Bref, des chiers ayant souvent une structure forte. Pour cela, plusieurs programmes UNIX utilisent des motifs de reconnaissance de chaines de caractres, appels expressions rgulires = regular expressions = regexps Un exemple de motif : les lignes commencant par la lettre a Une expression rgulire est la traduction en langage UNIX du motif de recherche, ce qui permettra de le reconnaitre au sein dun texte dans un chier. Ainsi le motif prcdent donne la regexp :
a
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 392 / 918
Bernard Desgraupes, auteur de Expressions rgulires chez Pearson : Si lon est soi-mme lauteur dun document, on a une connaissance de son contenu qui se rpercute sur les expressions crire. Mais cela fonctionne aussi dans lautre sens : la connaissance des expressions rgulires fait prendre conscience de limportance que revtent certains choix structurels faits au cours de la rdaction dun document. En sastreignant une certaine discipline pour la rdaction dun texte, sa conversion ultrieure dautres formats se trouvera grandement facilite.
c T.Besanon (v14.0.1025)
Administration UNIX
393 / 918
La regexp traduit le motif de caractres rechercher sous la forme dune suite de contraintes satisfaire toutes. Pour construire les contraintes, on dispose de dirents types dcritures : critures dcrivant des valeurs de caractres critures dcrivant des positions de caractres critures dcrivant des rptitions de caractres
c T.Besanon (v14.0.1025)
Administration UNIX
394 / 918
Evolutions des regexps au cours du temps : initialement Basic Regular Expressions (BRE) puis Extended Regular Expressions (ERE) puis PERL Regular Expressions (PRE) puis PERL Compatible Regular Expressions (PCRE) ; voir http://www.pcre.org/
c T.Besanon (v14.0.1025)
Administration UNIX
395 / 918
10.2 Contraintes sur des valeurs de caractres Chapitre 10 Expressions rgulires et commandes UNIX associes
dsigne la contrainte pour un caractre dtre ce caractre dsigne la contrainte pour un caractre dtre parmi la liste indique dsigne la contrainte pour un caractre de ne pas gurer dans la liste indique dsigne la contrainte pour un caractre dtre quelconque (sauf n de ligne)
ATTENTION : les caractres [ et ] ne dsignent pas une option ici. Ne confondez pas avec lcriture dune option pour une commande UNIX (voir page 63).
c T.Besanon (v14.0.1025)
Administration UNIX
396 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
397 / 918
Rappel sur les codes ASCII et lordre des caractres ASCII (faire man ascii ) :
0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120
NUL BS DLE CAN SP ( 0 8 @ H P X h p x
SOH HT DC1 EM ! ) 1 9 A I Q Y a i q y
ENQ CR NAK GS % 5 = E M U ] e m u }
BE S ET U / 7 ? G O W _ g o w DE
c T.Besanon (v14.0.1025)
Administration UNIX
398 / 918
La table ASCII la page prcdente indique : tous les chires sont conscutifs toutes les majuscules sont conscutives toutes les minuscules sont conscutives Do la notion dintervalles nots selon la syntaxe ci-dessous :
[ [
c T.Besanon (v14.0.1025)
caractre de dpart
caractre darrive
] ]
399 / 918
^ caractre
de dpart
caractre darrive
Administration UNIX
Exemples : [a-z] : le caractre peut prendre une valeur entre a et z [A-Z] : le caractre peut prendre une valeur entre A et Z [0-9] : le caractre peut prendre une valeur entre 0 et 9 [^a-z] : les valeurs entre a et z sont interdites pour le caractre ; le caractre vaudra tout sauf une lettre minuscule [^A-Z] : idem avec des lettres majuscules [^0-9] : idem avec des chires Bien sr, on peut prendre autre chose que A , Z , a , z , 0 ou 9 : [a-e] , [F-L] , [1-7] , etc. [^a-e] , [^F-L] , [^1-7] , etc.
c T.Besanon (v14.0.1025)
Administration UNIX
400 / 918
ATTENTION : DIFFICILE Entre [ ] , on crit le caractre . sous la forme . Entre [ ] , on crit le caractre * sous la forme * Entre [ ] , on crit le caractre [ sous la forme [ Entre [ ] , on crit le caractre \ sous la forme \
c T.Besanon (v14.0.1025)
Administration UNIX
401 / 918
10.3 Contraintes sur les positions de caractres Chapitre 10 Expressions rgulires et commandes UNIX associes
Rappel sur un clavier AZERTY : La touche ^ sert entrer un accent circonexe. Vous obtenez donc le caractre ^ en faisant ^ + ESPACE .
c T.Besanon (v14.0.1025)
Administration UNIX
402 / 918
10.4 Rptitions dune contrainte Chapitre 10 Expressions rgulires et commandes UNIX associes
contrainte*
contrainte+
contrainte ?
c T.Besanon (v14.0.1025)
Administration UNIX
403 / 918
Exemples : {3,7} : contrainte prcdente rpte entre 3 et 7 fois {3,} : contrainte prcdente rpte au moins 3 fois {5} : contrainte prcdente rpte 5 fois {1} : contrainte prcdente rpte 1 fois ; cette criture na pas dintrt : autant crire la contrainte prcdente simplement toute seule
c T.Besanon (v14.0.1025)
Administration UNIX
404 / 918
{2,5} ...
...
+ ... ? ...
ARS 2011 2012 Partie 1 405 / 918
c T.Besanon (v14.0.1025)
Choix entre regexps Chapitre 10 Expressions rgulires et commandes UNIX 10.5 associes
On veut indiquer que lon a le choix entre une regexp1 ou une regexp2 ou plus. Syntaxe : (regexp1|regexp2|...|regexpN) Cest impossible de traduire ce concept de choix par dautres critures au moyen des autres regexps : il faut utiliser cette syntaxe.
Par exemple :
(cerise|ananas|pamplemousse)
Cette regexp permet de chercher les lignes contenant le mot ananas ou cerise ou pamplemousse .
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 406 / 918
10.6 Manipuler les caractres spciaux Chapitre 10 Expressions rgulires et commandes UNIX associes
Caractre - Le problme : - sert indiquer un intervalle quand il est compris entre [ ] . - : le caractre - a-z : le caractre a suivi du caractre - suivi du caractre z [a-z] : le caractre peut prendre une valeur entre a et z [a-] : le caractre peut valoir a ou - [-a] : le caractre peut valoir a ou - [a-z-] : le caractre peut prendre une valeur entre a et z ou la valeur - en plus [-a-z] : le caractre peut prendre une valeur entre a et z ou la valeur - en plus
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 407 / 918
Caractres [ et ] Le problme : [ et ] servent indiquer un intervalle. \[ : le caractre [ ] : le caractre ] [a-z] : le caractre peut prendre une valeur entre a et z \[a-z] : le caractre [ suivi du caractre a suivi du caractre - suivi du caractre z suivi du caractre ] ]\[a-z : le caractre ] suivi du caractre [ suivi du caractre a suivi du caractre - suivi du caractre z ][a-z : erreur de syntaxe. . . [][a-z] : DIFFICILE : le caractre peut prendre une valeur entre a et z ou les valeurs [ ou ] en plus :
] ne termine pas une liste quand il est le premier lment de liste (liste avec ou sans ^ ) [ scrit [ entre [ ]
c T.Besanon (v14.0.1025)
Administration UNIX
408 / 918
Caractre ^a : le caractre a en dbut de ligne a^ : le caractre a suivi du caractre ^ \^a : le caractre ^ suivi du caractre a (quelle que soit leur position sur la ligne) [^a-z] : les valeurs entre a et z sont interdites pour le caractre ; le caractre vaudra tout sauf une minuscule [\^a-z] : le caractre peut prendre une valeur entre a et z ou la valeur ^ en plus [a-z^] : le caractre peut prendre une valeur entre a et z ou la valeur ^ en plus (la position de ^ est non ambigue et signie simplement ^ )
c T.Besanon (v14.0.1025)
Administration UNIX
409 / 918
Caractre \ Le problme : \ suivi par un caractre annule le sens spcial des caractres suivants : caractre . (sauf entre [ ] ) caractre * (sauf entre [ ] ) caractre [ (sauf entre [ ] ) caractre \ (sauf entre [ ] ) caractre ^ caractre $ \\ : le caractre \ [a-z\] : le caractre peut prendre une valeur entre a et z ou la valeur \ en plus
c T.Besanon (v14.0.1025)
Administration UNIX
410 / 918
10.7 Principes fondamentaux des regexps Chapitre 10 Expressions rgulires et commandes UNIX associes
on analyse chaque ligne indpendemment de la prcdente et de la suivante on analyse la ligne de gauche droite, en cherchant si lon vrie partir de la position courante sur la ligne toutes les contraintes de la regexp ; on passe la position suivante droite si lon ne vrie pas la regexp sur la position courante une contrainte peut tre rendue muette selon le contexte pour satisfaire la regexp au total via la regexp, on essaye de vrier (matcher) la chaine de caractres la plus longue possible
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 411 / 918
Analyse de la gauche vers la droite Exemple : rechercher le mot ananas dans le texte suivant :
c T.Besanon (v14.0.1025)
Administration UNIX
412 / 918
Application des regexps : slectionner des lignes de chiers texte qui satisfont la regexp cest lobjet de la commande UNIX grep (voir page 423) faire des remplacements du texte satisfaisant la regexp par un autre texte qui peut-tre dduit du texte initial cest lobjet de la commande UNIX sed (voir page 429)
c T.Besanon (v14.0.1025)
Administration UNIX
413 / 918
10.8 Exemples
c T.Besanon (v14.0.1025)
Administration UNIX
414 / 918
10.8 Exemples
Traduction en regexp :
elephant
En eet, cest une suite de 8 contraintes satisfaire toutes : contrainte 1 : un caractre doit valoir e contrainte 2 : un caractre doit valoir l contrainte 3 : un caractre doit valoir e contrainte 4 : un caractre doit valoir p contrainte 5 : un caractre doit valoir h contrainte 6 : un caractre doit valoir a contrainte 7 : un caractre doit valoir n contrainte 8 : un caractre doit valoir t
c T.Besanon (v14.0.1025)
Administration UNIX
415 / 918
10.8 Exemples
Exemple 2 Le motif satisfaire : la ligne se termine par 2 caractres en minuscules suivis dun chire
c T.Besanon (v14.0.1025)
Administration UNIX
416 / 918
10.8 Exemples
Dmarche de la traduction :
1 2 3 4 5
se termine : on va procder de droite gauche se termine : $ un chire : [0-9] une minuscule : [a-z] une minuscule : [a-z]
ou
[a-z]{2}[0-9]$
c T.Besanon (v14.0.1025)
Administration UNIX
417 / 918
10.8 Exemples
Exemple 3 Le motif satisfaire : mot1:mot2:mot3: en dbut de ligne o mot1 commence par une lettre majuscule mot2 se termine par un chire mot3 est quelconque
c T.Besanon (v14.0.1025)
Administration UNIX
418 / 918
10.8 Exemples
Processus de traduction :
1
en dbut de ligne la regexp est de la forme ^ mot1 commence par une lettre majuscule mot1 commence par une lettre majuscule et le reste des lettres est quelconque mot1 commence par une lettre majuscule et le reste des lettres est quelconque sans pour autant valoir le caractre : qui spare les mots la regexp est de la forme [A-Z][^:]* mot1 :mot2 la regexp est de la forme : mot2 se termine par un chire mot2 commence par des caractres quelconques et se termine par un chire mot2 commence par des caractres quelconques sans pour autant valoir : qui spare les mots et se termine par un chire la regexp est de la forme [^:]*[0-9]
Administration UNIX ARS 2011 2012 Partie 1 419 / 918
c T.Besanon (v14.0.1025)
10.8 Exemples
mot2 :mot3 : la regexp est de la forme : mot3 est quelconque mot3 est compos de caractres quelconques mot3 est compos de caractres quelconques sans pour autant valoir le caractre : qui spare les mots la regexp est de la forme [^:]* mot3 : la regexp est de la forme :
c T.Besanon (v14.0.1025)
Administration UNIX
420 / 918
10.8 Exemples
Pourquoi ? Principe de rendre muette une contrainte pour satisfaire la regexp globalement
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 421 / 918
10.8 Exemples
CONCLUSION : LES REGEXPS NE PARDONNENT AUCUNE ERREUR DE FRANCAIS LORS DE LEUR TRADUCTION : FRANCAIS vers REGEXP REGEXP vers FRANCAIS
c T.Besanon (v14.0.1025)
Administration UNIX
422 / 918
10.9 Recherche de regexp dans un chier : grep Chapitre 10 Expressions rgulires et commandes UNIX associes
Besoin concret : acher les lignes dun texte contenant des suites de caractres dcrits par une regexp
grep
Commande pour cela : grep (le mot grep vient de g/re/p dans vi)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 423 / 918
Syntaxe LINUX : grep -E [options] regexp fichiers Syntaxe SOLARIS : egrep [options] regexp fichiers Quelques options intressantes : option -i : pas de direnciation entre lettres minuscules et majuscules option -n : achage des numros de ligne option -l : nache que les noms de chiers option -v : achage des lignes ne contenant pas la chane prcise
En pratique, avec grep , crire la regexp entre deux apostrophes. Lexplication des apostrophes sera vue au niveau du cours sur la pratique du shell. Voir page 591.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 424 / 918
Prcision LINUX Avec loption -E , la commande grep peut manipuler des Extended Regular Expressions. Sans loption -E , la commande grep ne manipule pas les Extended Regular Expressions.
Prcision SOLARIS La commande SOLARIS egrep manipule les Extended Regular Expressions. La commande SOLARIS grep ne manipule pas les Extended Regular Expressions.
c T.Besanon (v14.0.1025)
Administration UNIX
425 / 918
On voit :
% grep -E toto exemple.txt Ecrivons toto en minuscules ici.
c T.Besanon (v14.0.1025)
Administration UNIX
426 / 918
On voit :
% grep -E -i -n toto exemple.txt 1:Ecrivons toto en minuscules ici. 2:Et ici ToTo en minuscules et majuscules.
c T.Besanon (v14.0.1025)
Administration UNIX
427 / 918
On voit :
% grep -E -i -n -v toto exemple.txt 3:Mais l on ne met pas la chane de lexemple.
c T.Besanon (v14.0.1025)
Administration UNIX
428 / 918
10.10 Remplacement de regexp dans un chier : sed Chapitre 10 Expressions rgulires et commandes UNIX associes
Besoin concret : acher le contenu dun texte aprs avoir remplac des suites de caractres dcrits par une regexp
sed
ATTENTION : certaines syntaxes vues dans les regexps ne sont en principe pas reconnues par la commande sed classique : la syntaxe regexp+ nest pas reconnue la syntaxe regexp? nest pas reconnue la syntaxe (regexp1|regexp2) nest pas reconnue la syntaxe regexp{m,n} nest pas reconnue Sous LINUX, il faudra utiliser loption -r pour pouvoir utiliser ces syntaxes. Sous SOLARIS, on ne peut pas utiliser du tout ces syntaxes spciales.
c T.Besanon (v14.0.1025)
Administration UNIX
430 / 918
Syntaxe LINUX : sed -r [options] fichiers Quelques options intressantes : option -e commande : cette option sert indiquer un lot de lignes sur lesquelles on fera une transformation des lignes ; on peut indiquer cette option plusieurs fois option -f script : au lieu dutiliser loption -e commande , on peut regrouper dans un chier texte les commandes de transformation des lignes de texte ; on peut indiquer cette option plusieurs fois option -n : pas dachage par dfaut ; par dfaut, sed ache une ligne non traite ou traite En pratique, avec sed , crire la commande suivant -e entre deux apostrophes. Lexplication des apostrophes sera vue au niveau du cours sur la pratique du shell. Voir page 591.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 431 / 918
ATTENTION : A loccasion de la commande vi , vous avez vu que lon peut raliser tout un tas de modications sur un texte. Lditeur vi ralisait ses modications via ses propres commandes internes (cf r , x , s , etc.)
La commande sed est capable, elle aussi, de faire des modications (bien plus) sophistiques. La commande sed utilise son propre langage pour raliser ces transformations : notion de commandes internes la commande UNIX sed
c T.Besanon (v14.0.1025)
Administration UNIX
432 / 918
Transformations ralisables via loption -e commande sed propose certaines transformations2 : commande de substitution au sein des lignes (en anglais substitute ) : s/regexp/remplacement/ (idem que dans vi ) s/regexp/remplacement/g (remplacement global, idem que dans vi )) Cest la commande la plus intressante. commande de suppression de ligne (en anglais delete ) : d commande dachage de ligne (en anglais print ) : p (la fonction p nest intressante que couple loption -n car cette option supprime lachage par dfaut des lignes)
Reste indiquer sur quelles lignes appliquer ces commandes. . .
On indique ici les plus intressantes ; voir la documentation pour la totalit des transformations.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 433 / 918 2
Indication dun lot de lignes via loption -e commande : syntaxe 1 Syntaxe 1 : on traite dune ligne numro N une ligne de numro M.
Par exemple : sed -e 12,34s/ananas/cerise/ fichier.txt : remplacer le mot ananas par cerise de la ligne 12 la ligne 34 sed -e 4,15d fichier.txt : eacer les lignes de 4 15 etc.
Syntaxe : [adresse1[,adresse2]]fonction[argument]
c T.Besanon (v14.0.1025)
Administration UNIX
434 / 918
Indication dun lot de lignes via loption -e commande : syntaxe 2 Syntaxe 2 : on traite de la ligne satisfaisant une regexp 1 la ligne satisfaisant une regexp 2. Par exemple : sed -e /ananas/,/cerise/s/13/24/ fichier.txt : remplacer le mot 13 par 24 de la ligne contenant ananas la ligne indiquant cerise sed -e /renault/d fichier.txt : eacer les lignes indiquant renault etc. Syntaxe : [/regexp1/[,/regexp2/]]fonction[argument]
c T.Besanon (v14.0.1025)
Administration UNIX
435 / 918
Indication dun lot de lignes via loption -e commande : syntaxe 3 Syntaxe 3 : on traite tout le chier (cas le plus frquent) Par exemple : sed -e s/ananas/cerise/ fichier.txt : remplacer le mot ananas par cerise de la premire ligne la dernire ligne sed -e 1,$s/ananas/cerise/ fichier.txt : remplacer le mot ananas par cerise de la premire ligne la dernire ligne etc. Syntaxes quivalentes : 1,$fonction[argument] fonction[argument] (on utilisera cette syntaxe, plus courte)
c T.Besanon (v14.0.1025)
Administration UNIX
436 / 918
Capture de sous-parties de regexps Besoin : remplacer autre chose quun mot xe (comme ananas ) par un autre mot xe (comme cerise ) Objectif : pouvoir remplacer une chaine numro 1 de caractres par une chaine numro 2 construite partir de la premire chaine Consquence : le remplacement sera donc dirent sur chaque ligne
c T.Besanon (v14.0.1025)
Administration UNIX
437 / 918
Principe de la capture : on capture une regexp dans une mmoire que lon rutilise lors du remplacement
Syntaxe de mise en mmoire : \(regexp\) , utilisable autant de fois que ncessaire (tout abus nuit la sant)
Syntaxe de rappel de la mmoire : \1 pour la regexp mmorise en premier, \2 pour la regexp mmorise en deuxime, \3 pour la regexp mmorise en troisime, etc.
c T.Besanon (v14.0.1025)
Administration UNIX
438 / 918
Principe important pour lemploi de sed et la construction des motifs de remplacement : La dnition dune position dpend de la position prcdente.
Par exemple : une troisime lettre se dnit comme la lettre suivant la deuxime lettre qui suit la premire lettre ainsi de suite pour les lettres. . . un troisime mot se dnit comme le mot suivant le deuxime mot qui suit le premier mot ainsi de suite pour les mots. . .
c T.Besanon (v14.0.1025)
Administration UNIX
439 / 918
...
Solution :
...
c T.Besanon (v14.0.1025)
Administration UNIX
440 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
441 / 918
On ne veut garder que les 2 premieres lignes du chier lors de son achage :
% sed -e 3,$d exemple.txt Ceci est la premiere ligne. Ceci est la deuxieme ligne.
c T.Besanon (v14.0.1025)
Administration UNIX
443 / 918
On ne veut garder que les 2 premieres lignes du chier lors de son achage :
% sed -n -e 1,2p exemple.txt Ceci est la premiere ligne. Ceci est la deuxieme ligne.
(autre faon de dire : nacher que de la ligne 1 la ligne 2 et sinon ne rien faire (option -n ))
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 444 / 918
On veut remplacer le mot epuise du chier par 0 pour les lignes parlant de moteur lors de son achage :
% sed -e /moteur/s/epuise/0/ exemple.txt moteur;ferrari;30 moteur;porsche;0 carrosserie;porsche;epuise moteur;ford;40 moteur;skoda;0
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 446 / 918
ATTENTION : dans les deux pages prcdentes, la solution est APPROXIMATIVE mais sut ! Que se passerait-il si le mot epuise apparaissait ailleurs ? ? ? Exemple : inventaire dun marchand darticles de pche :
flotteur;30 epuisette;10 hameon;epuise canne pche;10
c T.Besanon (v14.0.1025)
Administration UNIX
447 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
448 / 918
On veut remplacer le mot chevals du chier par chevaux lors de son achage :
% sed -e s/chevals/chevaux/ exemple.txt Les courses de chevaux se font a Vincennes. Les chevaux ont 4 jambes. Les chevals sont des equides.
Le remplacement na pas lieu sur tous les mots chevals au sein dune ligne !
c T.Besanon (v14.0.1025)
Administration UNIX
449 / 918
On veut remplacer le mot chevals du chier par chevaux lors de son achage :
% sed -e s/chevals/chevaux/g exemple.txt Les courses de chevaux se font a Vincennes. Les chevaux ont 4 jambes. Les chevaux sont des equides.
Le remplacement a lieu sur tous les mots chevals au sein dune ligne.
c T.Besanon (v14.0.1025)
Administration UNIX
450 / 918
10.11 Commande GNU grep Chapitre 10 Expressions rgulires et commandes UNIX associes
Option intressante --color (surtout pour les dbutants). Soit le chier exemple.txt :
% cat exemple.txt nanananas % grep --color -E ananas exemple.txt nanananas
c T.Besanon (v14.0.1025)
Administration UNIX
451 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
452 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
453 / 918
10.12 Remplacement de tabulations par des espaces : expand Chapitre 10 Expressions rgulires et commandes UNIX associes
Objectif de la tabulation : aligner le texte sur certaines positions de colonnes (en gnral des multiples de 8)
000000000011111111112 012345678901234567890 xxxxx zzz
Comment remplacer le caractre tabulation par le nombre despaces permettant de garder les mmes positions de texte ? Rponse impossible base de REGEXP et de SED (tabulation = \t = 1 caractre et SED na pas la notion de numroter les colonnes) Rponse : commande expand Syntaxe : expand fichier
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 454 / 918
Par exemple :
% cat exemple.txt 000000000011111111112 012345678901234567890 xxxxx zzz % od -c exemple.txt 0 0 \t z 0 1 x z 0 2 x \n 0 3 x 0 4 x 0 5 x 0 6 \t 0 7 z
c T.Besanon (v14.0.1025)
Administration UNIX
455 / 918
% expand exemple.txt 000000000011111111112 012345678901234567890 xxxxx zzz % expand exemple.txt | od -c 0 0 0000000 0000010 0000020 0000024 x z 0 1 x z 0 2 x z 0 3 x \n 0 4 x 0 5 0 6 0 7
% expand exemple.txt > sortie.txt % ls -l exemple.txt sortie.txt -rw-r--r-1 besancon adm 11 Oct 10 18:20 exemple.txt -rw-r--r-1 besancon adm 20 Oct 10 18:21 sortie.txt
(voir page 619 pour les explications sur les critures | et > )
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 456 / 918
Remplacement despaces par des tabulations : unexpand Chapitre 10 Expressions rgulires 10.13 et commandes UNIX associes
Comment remplacer des espaces conscutifs en caractres tabulation pour garder mmes positions de texte ? Rponse : commande unexpand Syntaxe : unexpand [-a] fichier
% expand exemple.txt 000000000011111111112 012345678901234567890 xxxxx zzz % expand exemple.txt | od -c 0 0 0000000 0000010 0000020 0000024 x z 0 1 x z 0 2 x z 0 3 x \n 0 4 x 0 5 0 6 0 7
c T.Besanon (v14.0.1025)
Administration UNIX
457 / 918
% unexpand -a exemple.txt | od -c 0 0 \t z 0 1 x z 0 2 x \n 0 3 x 0 4 x 0 5 x 0 6 \t 0 7 z
c T.Besanon (v14.0.1025)
Administration UNIX
458 / 918
10.14 Bibliographie
Quelques informations : http://www.regular-expressions.info/ Expressions rgulires de Bernard Desgraupes, aux ditions Pearson (16 EUR)
c T.Besanon (v14.0.1025)
Administration UNIX
459 / 918
Chapitre 11
c T.Besanon (v14.0.1025)
Administration UNIX
460 / 918
(en anglais nd ) On recherche partir des rpertoires indiqus les objets rpondant aux critres exprims par des expressions.
point de depart de la recherche
ananas
arborescence de la recherche
ananas
c T.Besanon (v14.0.1025)
Administration UNIX
461 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
462 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
463 / 918
Syntaxe : find rpertoires [expressions] On indique les zones de recherche via des chemins de dossiers. Il est obligatoire dindiquer au minimum un dossier dans lequel rechercher.
c T.Besanon (v14.0.1025)
Administration UNIX
464 / 918
Retour sur larborescence UNIX : Le rpertoire courant est not . . Lancer une recherche partir de lendroit o lon est :
% find . -name ananas.txt -print ./ananas.txt ./jardin/ananas.txt ./cuisine/frigo/ananas.txt
c T.Besanon (v14.0.1025)
Administration UNIX
465 / 918
Syntaxe : -name nom Le nom sera spci avec des mtacaractres du shell (voir page 627) ATTENTION : ncessiter de protger du shell les mtacaractres ! Exemple le plus courant : rechercher des objets ayant une certaine extension. Par exemple pour lextension .c :
% find . -name \*.c -print ./C/exercice1.c ./C/exercice2.c ./C/TP/1/exercice6.c ./C/TP/1/exercice7.c ./C/TP/2/exercice8.c % find . -name *.c -print ./C/exercice1.c ./C/exercice2.c ./C/TP/1/exercice6.c ./C/TP/1/exercice7.c ./C/TP/2/exercice8.c
Syntaxe : -iname nom Recherche avec lettres minuscules ou majuscules indirencies. Seulement LINUX ! Le nom sera spci avec des mtacaractres du shell (voir page 627)
c T.Besanon (v14.0.1025)
Administration UNIX
467 / 918
11.5 Option pour rechercher sur des droits daccs : -perm Chapitre 11 Recherche dobjets : find
Plusieurs syntaxes possibles : Syntaxe : -perm permissions Les permissions doivent tre strictement celles indiques. Syntaxe : -perm -permissions Les bits indiqus doivent tous exister parmi les permissions des objets recherchs. Syntaxe (seulement LINUX) : -perm +permissions Au moins lun des bits indiqus doit exister parmi les permissions des objets recherchs.
c T.Besanon (v14.0.1025)
Administration UNIX
468 / 918
-perm 123 : Les droits doivent tre exclusivement 123 = -x -w- -wx .
-perm -123 : Les droits doivent tre au moins 123 = -x -w- -wx . Les droits 763 = 123 + 640 sont OK par exemple : rwx rw- -wx
-perm +123 : Au moins lun des bits 123 = -x -r- -rx doit exister parmi les permissions des objets. Les droits 700 sont OK par exemple : rwx --- ---
c T.Besanon (v14.0.1025)
Administration UNIX
469 / 918
11.6 Option pour rechercher sur le propritaire dobjets : -user Chapitre 11 Recherche dobjets : find
Syntaxe : -user login Le propritaire de lobjet doit tre le login ou le UID (matricule) indiqu. Exemple : rechercher les objets de lutilisateur besancon :
% ls -l /tmp -rw-r--r-1 besancon adm 924 -rw-r--r-1 besancon adm 10799 drwxr-xr-x 2 besancon adm 117 -rw-rw---1 root root 849 -rw-rw---1 root root 849 drwx-----2 besancon adm 183 % find /tmp -user besancon -print /tmp/ssh-jLceo854 /tmp/ssh-jLceo854/agent.854 /tmp/fvwmrcmQOTb /tmp/hsperfdata /tmp/bug
c T.Besanon (v14.0.1025) Administration UNIX
Nov 9 23:16 bug Nov 8 19:00 fvwmrcmQOTb Nov 11 21:18 hsperfdata Nov 8 18:51 sh6060 Nov 8 18:52 sh6900 Nov 8 18:59 ssh-jLceo854
470 / 918
Option pour rechercher sur un objet sans propritaire : -nouser Chapitre 11 Recherche dobjets11.7 : find
Syntaxe : -nouser Le chier doit appartenir un utilisateur non dni sur le systme, cest--dire lUID na pas de login associ dans /etc/passwd Exemple : rechercher les objets sans utilisateur :
% ls -l /tmp -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-rw---1 1 1 1 1 1234 root besancon besancon root adm 1234 adm adm root 0 0 924 10799 849 Nov 12 19:52 ananas.txt Nov 12 19:53 banane.txt Nov 9 23:16 bug Nov 8 19:00 fvwmrcmQOTb Nov 8 18:52 sh6900
c T.Besanon (v14.0.1025)
Administration UNIX
471 / 918
11.8 Option pour rechercher sur le groupe dobjets : -group Chapitre 11 Recherche dobjets : find
Syntaxe : -group groupe Le groupe de lobjet doit tre le nom dun groupe ou le GID (matricule) indiqu. Exemple : rechercher les objets du groupe adm :
% ls -l /tmp -rw-r--r-1 besancon -rw-r--r-1 besancon drwxr-xr-x 2 besancon -rw-rw---1 root -rw-rw---1 root drwx-----2 besancon % find /tmp -group root /tmp/sh6060 /tmp/sh6900 adm adm adm root root adm -print 924 10799 117 849 849 183 Nov 9 23:16 bug Nov 8 19:00 fvwmrcmQOTb Nov 11 21:18 hsperfdata Nov 8 18:51 sh6060 Nov 8 18:52 sh6900 Nov 8 18:59 ssh-jLceo854
c T.Besanon (v14.0.1025)
Administration UNIX
472 / 918
Option pour rechercher sur un objet sans groupe : -nogroup Chapitre 11 Recherche dobjets : 11.9 find
Syntaxe : -nogroup Le chier doit appartenir un groupe non dni sur le systme, cest--dire le GID na pas de login associ dans /etc/group Exemple : rechercher les objets sans groupe :
% ls -l /tmp -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-rw---1 1 1 1 1 1234 root besancon besancon root adm 1234 adm adm root 0 0 924 10799 849 Nov 12 19:52 ananas.txt Nov 12 19:53 banane.txt Nov 9 23:16 bug Nov 8 19:00 fvwmrcmQOTb Nov 8 18:52 sh6900
c T.Besanon (v14.0.1025)
Administration UNIX
473 / 918
11.10 Option pour rechercher sur types dobjets : -type Chapitre 11 Recherche dobjets : find
Syntaxe : -type X avec X une lettre indiquant la nature de lobjet : d pour dossier (en anglais directory ) f pour chier (en anglais le ) l pour lien symbolique (en anglais link ) c pour chier character (voir tme 2) b pour chier bloc (voir tme 2) s pour socket (voir tme 3) (dautres lettres existent pour des objets plus sophistiqus qui ne seront pas abords en cours)
c T.Besanon (v14.0.1025)
Administration UNIX
474 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
475 / 918
11.11 Option pour rechercher sur des tailles dobjets : -size Chapitre 11 Recherche dobjets : find
Syntaxe : -size -nombre Syntaxe : -size +nombre Si le nombre indique c , alors il exprime des octets sinon ce sont des blocs de 512 octets (choix historique fait en 1970).
c T.Besanon (v14.0.1025)
Administration UNIX
476 / 918
Exemples :
% ls -l /tmp -rw-r--r-- 1 -rw-r--r-- 1 -rw-rw---- 1 -rw-rw---- 1 drwx------ 2
9 8 8 8 8
% find /tmp -type f -size +2 -print /tmp/fvwmrcmQOTb % find /tmp -type f -size -1000c -print /tmp/sh6060 /tmp/sh6900 /tmp/bug % find /tmp -type f -size +900c -a -size -1000c -print /tmp/bug
c T.Besanon (v14.0.1025)
Administration UNIX
477 / 918
11.12 Options pour rechercher sur des dates : -atime, -mtime, -ctime, -newer Chapitre 11 Recherche dobjets : find
11.12 Options pour rechercher sur des dates : -atime, -mtime, -ctime, -newer
Plusieurs syntaxes : Syntaxe : -newer fichier Syntaxe : -atime nombre Syntaxe : -mtime nombre Syntaxe : -ctime nombre Sur SOLARIS, lunit du nombre est en jours. Sur LINUX, plusieurs units sont possibles : d pour jour, h pour heure, m pour minute, s pour seconde
c T.Besanon (v14.0.1025)
Administration UNIX
478 / 918
11.12 Options pour rechercher sur des dates : -atime, -mtime, -ctime, -newer
Exemples :
% date Fri Nov 12 20:27:09 MET 2010 % ls -l /tmp -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 -rw-rw---- 1 -rw-rw---- 1 drwx------ 2
Nov 12 19:52 ananas.txt Nov 12 19:53 banane.txt Nov 9 23:16 bug Nov 8 19:00 fvwmrcmQOTb Nov 8 18:51 sh6060 Nov 8 18:52 sh6900 Nov 8 18:59 ssh-jLceo854/
% find /tmp -type f -mtime -1h -print /tmp/ananas.txt /tmp/banane.txt % find /tmp -type f -mtime +3d -print /tmp/sh6060 /tmp/sh6900 /tmp/fvwmrcmQOTb
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 479 / 918
Chapitre 11 Recherche dobjets : find11.13 Option de recherche des liens dun inode : -inum
11.13 Option de recherche des liens dun inode : -inum
On utilise cette option pour rechercher des chiers qui sont hard links entre eux.
MAIS ATTENTION : il faut rester sur la mme partition (voir page ??).
Loption -xdev contraint la recherche rester sur la mme partition. Il faut utiliser cette option -xdev sinon le rsultat sera peut-tre faux.
c T.Besanon (v14.0.1025)
Administration UNIX
480 / 918
Exemples :
% % % % mkdir jardin touch jardin/ananas mkdir zoo ln jardin/ananas zoo/lion
% ls -i jardin/ananas 11854169 jardin/ananas % find . -inum 11854169 -print ./jardin/ananas ./zoo/lion % find . -inum 11854169 -ls 11854169 0 -rw-r--r-- 2 besancon ars 0 Oct 22 00:21 ./jardin/ananas 11854169 0 -rw-r--r-- 2 besancon ars 0 Oct 22 00:21 ./zoo/lion
c T.Besanon (v14.0.1025)
Administration UNIX
481 / 918
Un numro dinode est unique sur une partition. Un numro dinode nest unique sur un systme. On peut retrouver le mme numro dinode sur plusieurs partitions, comme le montre lexemple suivant :
512 May 16 2005 /lost+found 8192 Dec 3 2005 /mnt1/lost+found 8192 Aug 8 2001 /mnt2/lost+found
c T.Besanon (v14.0.1025)
Administration UNIX
482 / 918
Plusieurs syntaxes possibles : Syntaxe : OU logique entre expressions : condition1 -o condition2 (attention : OU entre expressions ci-dessus) Syntaxe : ET logique entre expressions : condition1 -a condition2 (attention : ET entre expressions ci-dessus) ; le -a est facultatif Syntaxe : groupement dexpressions : ( expression1 -[ao] expression2 ) ATTENTION : ncessiter de protger du shell les parenthses ! (voir page 567) En pratique : crire \( expression1 -[ao] expression2 \)
c T.Besanon (v14.0.1025)
Administration UNIX
483 / 918
Exemples :
% find . -name fruits -type d -print % find . -name ananas -o -name cerise -print
A completer...
c T.Besanon (v14.0.1025)
Administration UNIX
484 / 918
11.15 Options pour achage du nom des objets trouvs : -print, -ls Chapitre 11 Recherche dobjets : find
11.15 Options pour achage du nom des objets trouvs : -print, -ls
En principe, on fait quelque chose du rsultat de la recherche. Plusieurs options possibles : Syntaxe : -print Syntaxe : -ls
ATTENTION : historiquement sans -print , on nachait rien. CONSEIL : toujours mettre -print par prcaution
c T.Besanon (v14.0.1025)
Administration UNIX
485 / 918
11.15 Options pour achage du nom des objets trouvs : -print, -ls
Exemples :
% find . -type d -print % find . -type f -ls
A completer...
c T.Besanon (v14.0.1025)
Administration UNIX
486 / 918
Syntaxe : -exec commande {} ; ATTENTION : ncessiter de protger du shell le point-virgule ! (voir page 565) criture en pratique : -exec commande {} \; Exemple : rechercher tous les objets sappelant a.out ou sappelant avec une extension .o, non utiliss depuis plus de 7 jours et on appliquera la commande deacement aux objets trouvs :
% find . \( -name a.out -o -name *.o \) -atime +7 -exec rm {} \;
c T.Besanon (v14.0.1025)
Administration UNIX
487 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
488 / 918
pwd
% ls
c T.Besanon (v14.0.1025)
Administration UNIX
489 / 918
pwd
% find
c T.Besanon (v14.0.1025)
Administration UNIX
490 / 918
Rechercher un chier nomm ananas.txt dans une arborescence : OUI : find . -name ananas.txt -print NON : ls -Rl | grep ananas.txt
c T.Besanon (v14.0.1025)
Administration UNIX
491 / 918
Dans le rpertoire courant, chercher les chier commencant par banane : NON : find . -name banane* -print OUI : ls banane*
Pourquoi ? La commande find va faire une recherche rcursive et dpasser le niveau du rpertoire courant en descendant plus bas.
c T.Besanon (v14.0.1025)
Administration UNIX
492 / 918
Exemple :
% touch cerise % touch banane % mkdir zoo % touch zoo/lion % find . -print . ./cerise ./banase ./zoo ./zoo/lion
banane 2
cerise 1
zoo 3
lion 4
Attention : la recherche est rcursive mais suit lordre de cration des objets. La recherche se fait en lisant la structure internes des rpertoires. Conseil : find ... | sort (voir page 607 pour la notation | )
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 493 / 918
Chapitre 12
c T.Besanon (v14.0.1025)
Administration UNIX
494 / 918
% hostname serveur.formation.jussieu.fr
(la commande sert aussi baptiser une machine. Syntaxe : hostname nom-de-machine)
c T.Besanon (v14.0.1025)
Administration UNIX
495 / 918
12.2 Nom de systme, de machine : uname Chapitre 12 Commandes UNIX rseau de base
Autre exemple :
% uname -n solaris.example.com % uname -a SunOS solaris.example.com 5.10 Generic_118822-20 sun4u sparc SUNW,Sun-Blade-100 % uname -s SunOS % uname -m sun4u % uname -r 5.10
c T.Besanon (v14.0.1025)
Administration UNIX
497 / 918
(en anglais ? ? ? ping ) La commande ping permet de tester si une machine est joignable. Principe : envoi dun paquet rseau spcial une machine (eet ping ) qui rpond par un autre paquet rseau spcial (eet pong ) Syntaxe : ping [options] nom-de-machine
% ping host1.example.com sendto: Network is unreachable % ping host2.example.com host2.example.com is alive
Humour :
% ping elvis elvis is alive
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 498 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
499 / 918
12.4 (Windows : : Test de connectivit : ping.exe) Chapitre 12 Commandes UNIX rseau de base
Commande ping.exe
c T.Besanon (v14.0.1025)
Administration UNIX
500 / 918
(en anglais trace route ) La commande traceroute permet de tester si une machine est joignable. Elle renvoie les intermdiaires rseau qui route notre acheminement vers la machine distante. Syntaxe : traceroute machine
% traceroute ftp.lip6.fr traceroute to nephtys.lip6.fr (195.83.118.1), 30 hops max, 40 byte packets 1 yacht (129.199.96.254) 0 ms 0 ms 0 ms 2 renater (129.199.1.10) 2 ms 1 ms 1 ms 3 195.221.127.61 (195.221.127.61) 3 ms 1 ms 1 ms 4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms 5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 1 ms 6 jussieu.rap.prd.fr (195.221.126.33) 2 ms 2 ms 2 ms 7 nephtys.lip6.fr (195.83.118.1) 2 ms 2 ms 2 ms
En cas de soucis :
% traceroute serveur.formation.jussieu.fr traceroute to serveur.formation.jussieu.fr (134.157.46.129), 30 hops max, 40 byte packets 1 yacht (129.199.96.254) 0 ms 0 ms 0 ms 2 renater (129.199.1.10) 2 ms 1 ms 1 ms 3 195.221.127.61 (195.221.127.61) 2 ms 2 ms 1 ms 4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms 5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 2 ms 6 jussieu.rap.prd.fr (195.221.126.33) 3 ms 2 ms 2 ms 7 134.157.254.123 (134.157.254.123) 3 ms 2 ms 2 ms <- symptme de problme 8 * * * ^C
Attention : ne pas oublier les ltrages rseau des rewalls qui peuvent se traduire au niveau de ping comme un problme (toiles).
c T.Besanon (v14.0.1025)
Administration UNIX
502 / 918
Utile de connaitre les FAI (Fournisseur dAccs Internet ) que vous utilisez :
c T.Besanon (v14.0.1025)
Administration UNIX
503 / 918
12.6 (Windows : : Test de connectivit : tracert.exe Chapitre 12 Commandes UNIX rseau de base
Commande tracert.exe
c T.Besanon (v14.0.1025)
Administration UNIX
504 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
505 / 918
La commande ftp vous place dans une espce de shell dans lequel vous disposez des commandes suivantes (ce sont les plus importantes votre niveau) : commande binary : utiliser si le chier transmettre contient des caractres non texte commande dir : pour lister les chiers sur la machine distante commande !ls : pour lister les chiers sur la machine locale commande cd directory : pour changer de rpertoire sur la machine distante commande lcd directory : pour changer de rpertoire sur la machine locale commande get fichier : pour rcuprer sur la machine distante un chier commande put fichier : pour dposer sur la machine distante un chier commande quit : pour se dconnecter
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 506 / 918
% ftp unix.example.com Connected to unix.example.com. 220 unix.example.com FTP server (SunOS 4.1) ready. Name (unix:besancon): 331 Password required for besancon. Password: 230 User besancon logged in. ftp> dir 200 PORT command successful. 150 ASCII data connection for /bin/ls (192.168.0.1,3945) (0 bytes). total 307 -rw-r--r-- 1 besancon software 69 Mar 20 1995 .Xdefaults ... ftp> get fichier [nouveau nom] ... ftp> put fichier [nouveau nom] 200 PORT command successful. 150 ASCII data connection for fichier (192.168.0.1,3947). 226 ASCII Transfer complete. local: fichier remote: fichier 802 bytes sent in 0.0042 seconds (1.9e+02 Kbytes/s) ftp> quit 221 Goodbye.
c T.Besanon (v14.0.1025)
Administration UNIX
507 / 918
(Windows : : Transfert de chiers : ftp.exe) Chapitre 12 Commandes UNIX rseau de 12.8 base
Multiples utilitaires pour faire du FTP sous WINDOWS. Utilitaire ftp.exe fourni par WINDOWS :
c T.Besanon (v14.0.1025)
Administration UNIX
508 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
509 / 918
Exemple dutilitaire graphique : filezilla (site http://filezilla.sourceforge.net, disponible UNIX, WINDOWS, MacOS)
c T.Besanon (v14.0.1025)
Administration UNIX
510 / 918
12.9 Lancement de commande distance : protocole SSH, ssh Chapitre 12 Commandes UNIX rseau de base
(en anglais secure shell ) Le protocole SSH chire la communication avec la machine distante. protection contre les piratages du type mouchard rseau qui rcupre les mots de passe Plusieurs syntaxes de la commande ssh :
ssh [-l utilisateur] nom-de-machine commande ssh utilisateur@nom-de-machine [commande]
Si lon ne prcise pas de commande, on lancera un shell en interactif. Site pour rcuprer un logiciel UNIX connaissant le protocole SSH :
http://www.openssh.org
c T.Besanon (v14.0.1025)
Administration UNIX
511 / 918
Exemple 1 :
% ssh server.example.com besancon@server.example.coms password: XXXXXXXX Last login: Sun Oct 12 15:20:16 2003 from ppp-3 Sun Microsystems Inc. SunOS 5.5 Generic November 1995 No mail. server%
Exemple 2 :
% ssh server.example.com date Password: XXXXXXXX Fri Jun 9 21:27:34 MEST 2006
c T.Besanon (v14.0.1025)
Administration UNIX
512 / 918
12.10 (Windows : : Connexion distance interactive SSH : putty.exe) Chapitre 12 Commandes UNIX rseau de base
Lutilitaire PUTTY fournit les fonctionnalits du protocole SSH pour Windows. Site : http://www.chiark.greenend.org.uk/~sgtatham/putty/
c T.Besanon (v14.0.1025)
Administration UNIX
513 / 918
12.11 Recopie de chiers distance : protocole SSH, scp Chapitre 12 Commandes UNIX rseau de base
(en anglais secure copy ) Plusieurs syntaxes : machine distante machine locale :
scp user@machine :chemin-fichier1 chemin-fichier2
00:00
Les logiciels implmentant SCP sont livrs avec ceux implmentant SSH sur UNIX se reporter http://www.openssh.org
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 514 / 918
12.12 (Windows : : Recopie de chiers distance : winscp.exe) Chapitre 12 Commandes UNIX rseau de base
Lutilitaire WINSCP fournit les fonctionnalits du protocole SSH pour Windows. Site : http://winscp.sourceforge.net/eng/
c T.Besanon (v14.0.1025)
Administration UNIX
515 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
516 / 918
dentre rseau de la Formation Permanente Chapitre 12 Commandes UNIX rseau12.13 de Point base
Machine ssh.formation.jussieu.fr accessible via SSH/SCP exclusivement Point de passage obligatoire depuis internet vers les machines des salles
INTERNET
ssh.formation.jussieu.fr
SALLE 216
SALLE 217
etc.
c T.Besanon (v14.0.1025)
Administration UNIX
517 / 918
12.14 Liste des utilisateurs connects : users Chapitre 12 Commandes UNIX rseau de base
Syntaxe : users
c T.Besanon (v14.0.1025)
Administration UNIX
518 / 918
12.15 Liste des utilisateurs connects : who Chapitre 12 Commandes UNIX rseau de base
11 10 12 12 10
c T.Besanon (v14.0.1025)
Administration UNIX
519 / 918
Chapitre 12 Commandes UNIX rseau de base 12.16 Liste des utilisateurs connects : w
12.16 Liste des utilisateurs connects : w
Syntaxe : w [options]
TTY p0 p1 p2 p3 p7
c T.Besanon (v14.0.1025)
Administration UNIX
520 / 918
URL = Universal Resource Locator URL : Dnomination unique caractre universel qui permet de localiser une ressource, un document, sur lInternet, et qui indique la mthode pour y accder, le nom du serveur et le chemin lintrieur du serveur.
c T.Besanon (v14.0.1025)
Administration UNIX
521 / 918
Typiquement :
protocole://serveur/chemin
Les types les plus rpandus : URL de page web : http://www.lemonde.fr/ ouvrable par Mozilla, Firefox, Opera URL de page ftp : ftp://ftp.jussieu.fr/ ouvrable par Mozilla, Firefox, Opera URL dadresse email : mailto:Thierry.Besancon@formation.jussieu.fr ouvrable par Mozilla, Thunderbird
c T.Besanon (v14.0.1025)
Administration UNIX
522 / 918
http://www.lynx.org/
c T.Besanon (v14.0.1025)
Administration UNIX
523 / 918
http://www.netscape.com/
netscape (mail + navigateur)
thunderbird (mail)
firefox (navigateur)
Obsolte
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 524 / 918
http://www.mozilla.org/
thunderbird (mail)
firefox (navigateur)
Obsolte
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 525 / 918
http://www.getfirefox.org/
thunderbird (mail)
firefox (navigateur)
c T.Besanon (v14.0.1025)
Administration UNIX
526 / 918
Solution :
% rm -f $HOME/.mozilla/firefox/*/lock % rm -f $HOME/.mozilla/firefox/*/.parentlock
c T.Besanon (v14.0.1025)
Administration UNIX
527 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
528 / 918
http://www.opera.com/
c T.Besanon (v14.0.1025)
Administration UNIX
529 / 918
Utilitaire de rcupration de page web via ligne de commande. Intrt : permet dautomatiser des oprations de rcupration de chiers mis disposition sur des serveurs web. Syntaxe : wget [options] URL Site http://www.gnu.org/software/wget
c T.Besanon (v14.0.1025)
Administration UNIX
530 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
531 / 918
Utilitaire de rcupration de page web via ligne de commande. Intrt : permet dautomatiser des oprations de rcupration de chiers mis disposition sur des serveurs web. Plus puissant que wget (supporte les connexions HTTPS en particulier, les formulaires, etc.) Syntaxe : curl [options] URL Site http://curl.haxx.se
c T.Besanon (v14.0.1025)
Administration UNIX
532 / 918
Exemple : rcupration dun chier de backup sur un site scuris avec prsentation dun certicat dauthentication :
% curl \ --show-error \ --cacert ${HOME}/certificats/ca.crt \ --key-type PEM \ --key ${HOME}/certificats/thierry.besancon@example.com.key \ --cert-type PEM \ --cert ${HOME}/certificats/thierry.besancon@example.com.crt \ --url https://www.example.com/backup/20060804.sql.gz \ --output backup-20060804.sql.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 296 100 296 0 0 361 0 --:--:-- --:--:-- --:--:-- 12869 2 backup-20060804.sql.gz
c T.Besanon (v14.0.1025)
Administration UNIX
533 / 918
Courrier lectronique la Formation Permanente Chapitre 12 Commandes UNIX rseau 12.25 de base
Mme mot de passe que le login UNIX ! Attention : votre compte lectronique expirera le 1er octobre de lan prochain.
c T.Besanon (v14.0.1025)
Administration UNIX
534 / 918
Informations pour utiliser la messagerie de la Formation Permanente : protocole IMAP + scurisation par SSL serveur depuis lequel lire le courier : mailhost.formation.jussieu.fr ATTENTION : valable depuis tout internet serveur vers lequel envoyer le courier : mailhost.formation.jussieu.fr ATTENTION : uniquement valable depuis les salles de TP de la Formation Permanente Utiliser le serveur SMTP de votre FAI. nom de connexion : login UNIX mot de passe : celui du login UNIX
c T.Besanon (v14.0.1025)
Administration UNIX
535 / 918
Le chier $HOME/.forward sert au renvoi du courrier lectronique vers une autre adresse. On y prcise les adresses vers lesquelles renvoyer. Exemple 1 : Pour rediriger par exemple vers besancon@example.com :
besancon@example.com
Exemple 2 : Pour garder une copie locale (par exemple je suis besancon@formation.jussieu.fr) et quand mme renvoyer vers une autre adresse (par exemple besancon@example.com) :
\besancon besancon@example.com
c T.Besanon (v14.0.1025)
Administration UNIX
536 / 918
12.27 Courrier lectronique : mail, mailx, Mail Chapitre 12 Commandes UNIX rseau de base
c T.Besanon (v14.0.1025)
Administration UNIX
537 / 918
http://www.netscape.com/
netscape (mail + navigateur)
thunderbird (mail)
firefox (navigateur)
Obsolte
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 538 / 918
http://www.mozilla.org/
netscape (mail + navigateur)
thunderbird (mail)
firefox (navigateur)
Obsolte
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 539 / 918
http://www.getthunderbid.org/
netscape (mail + navigateur)
thunderbird (mail)
firefox (navigateur)
Achage graphique de vos mails. Consommateur de ressources. Prfrer thunderbird mozilla netscape .
c T.Besanon (v14.0.1025)
Administration UNIX
540 / 918
Conguration de thunderbird
c T.Besanon (v14.0.1025)
Administration UNIX
541 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
542 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
543 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
544 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
545 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
546 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
547 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
548 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
549 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
550 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
551 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
552 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
553 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
554 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
555 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
556 / 918
12.31 Courrier lectronique : webmail de la Formation Permanente Chapitre 12 Commandes UNIX rseau de base
c T.Besanon (v14.0.1025)
Administration UNIX
557 / 918
Chapitre 13
c T.Besanon (v14.0.1025)
Administration UNIX
558 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
559 / 918
Exemples 2
% echo "" <- ligne vide % echo <- ligne vide
c T.Besanon (v14.0.1025)
Administration UNIX
560 / 918
13.2 Principe dexcution par le shell dune commande UNIX Chapitre 13 Pratique du Bourne shell
1 2 3
attente dune entre de commande ; traitement des caractres spciaux de la commande ; recherche de lexcutable ; sil nest pas trouv, on ache un message derreur et le shell reprend ltape 1 ;
fork() + exec() de la commande lancer ;
4 5 6
le shell fait un wait() de la commande ; une fois la commande termine, le shell reprend ltape 1.
c T.Besanon (v14.0.1025)
Administration UNIX
561 / 918
Signication appels white characters ; dlimiteurs des mots ; un tel caractre au minimum n de la commande excuter sparateur de commandes sur une seule ligne excution des commandes dans un sous shell excution des commandes en srie lance une commande en tche de fond appels quote characters ; changent la faon dont le shell interprte les caractres spciaux caractres de redirection dentres/sorties caractres de substitution de noms de chiers valeur dune variable
La dicult lie aux mtacaractres : tape 2 de la page 561 : Que garde le shell pour lui ? Que donner lapplication ?
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 562 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
563 / 918
Le retour charriot valide la ligne entre. La prsence du \ neutralise (voir page 591) le sens spcial du mtacaractre retour charriot. Exemple :
% echo ananas \ >>banane \ >>cerise ananas banane cerise
c T.Besanon (v14.0.1025)
Administration UNIX
564 / 918
Le point-virgule sert lancer plusieurs commandes UNIX sur la mme ligne de commande.
Exemple :
% date ; ls -l exemple.txt Thu Jul 8 19:49:19 MEST 2004 -rw-r--r-1 besancon ars
87 Jul
6 19:25 exemple.txt
c T.Besanon (v14.0.1025)
Administration UNIX
565 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
566 / 918
Les parenthses dlimitent un bloc de commandes excutes dans un second shell. Exemple 1 :
% pwd ; ( cd /tmp ; ls /home/besancon total 2560 -rw-r--r-- 1 besancon -rw------- 1 besancon -rw-r--r-- 1 besancon drwxr-xr-x 2 besancon -rw------- 1 root -rw-r--r-- 1 root -rw------- 1 root drwx------ 2 besancon /tmp /home/besancon -l ; pwd ) ; pwd
9 12 5 12 11 14 11 27
Exemple 2 :
% a=3 ; echo $a ; ( a=5 ; echo $a ) ; echo $a 3 5 3
La valeur 5 est aecte la variable a du second shell et disparait avec lui. Voir les explications sur les variables page 638.
c T.Besanon (v14.0.1025)
Administration UNIX
568 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
569 / 918
13.8 Contrle des commandes lances : &, fg, bg, kill, C, Z Chapitre 13 Pratique du Bourne shell
Avant plan Lorsquune commande est en train de sexcuter, le shell ne rend pas la main et attend que la commande se termine (correctement ou incorrectement). On parle ainsi davant plan (en anglais foreground ). Pour interrompre prmaturment une commande : taper sur la touche Ctrl et aussi sur la touche C du clavier. Cela tue la commande qui tournait. On notera lappui sur ces 2 touches par Ctrl-C ou par ^C .
c T.Besanon (v14.0.1025)
Administration UNIX
570 / 918
Arrire plan Si lon veut une lancer une commande et rcuprer la main tout de suite, avant mme que la commande ait ni de sexcuter, il faut lancer la commande par :
% commande &
On parle ainsi darrire plan (en anglais background ). Le signe & signie de lancer en tche de fond, en background la commande. Sans ce signe, la commande est lance en premier plan, en foreground.
c T.Besanon (v14.0.1025)
Administration UNIX
571 / 918
Passage davant plan en arrire plan Pour passer en background une commande lance en foreground :
1
Figer la commande en cours. Taper sur la touche Control et aussi sur la touche Z , soit Ctrl-Z ou ^Z :
% commande ... ^Z [1]+ Stopped
commande
c T.Besanon (v14.0.1025)
Administration UNIX
572 / 918
Dans 9 cas sur 10, cest Ctrl-C quil doit employer. On vitera ainsi une saturation de la machine avec des commandes suspendues et en attente dtre tues ou relances.
c T.Besanon (v14.0.1025)
Administration UNIX
573 / 918
Passage darrire plan en avant plan Pour passer en foreground une commande lance en background :
c T.Besanon (v14.0.1025)
Administration UNIX
574 / 918
commande &
c T.Besanon (v14.0.1025)
Administration UNIX
575 / 918
En rsum
Programme fig
Arrire plan
bg
Programme en cours
Arrire plan
Ctr-Z fg
fg &
Programme en cours
Avant plan
Ctrl-C
Pour arrter le programme
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 576 / 918
Liste des processus en arrire plan Pour connaitre la liste des commandes en background :
% jobs [1] Running [2] Running [3] Running [4]- Running [5]+ Running
On peut avoir plusieurs commandes en background. Do une numrotation des commandes qui sont aches. Ce numro peut tre repris dans les commandes fg et bg ainsi que dans la commande suivante, kill .
c T.Besanon (v14.0.1025)
Administration UNIX
577 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
578 / 918
Syntaxes gnrales : Syntaxe fg %n Syntaxe bg %n Syntaxe kill %n avec n un des numros trouvs grce jobs .
c T.Besanon (v14.0.1025)
Administration UNIX
579 / 918
commande3 & commande1 commande2 commande4 commande5 & & & &
c T.Besanon (v14.0.1025)
Administration UNIX
580 / 918
(en anglais processus ) Les commandes fg , bg , jobs ne fonctionnent que sur les processus lancs par le shell courant. Les commandes vues prcdemment peuvent donc tre inutilisables si vous avez quitt votre shell. La commande ps plus gnrale permet davoir des informations sur tous les processus de la machine. 2 syntaxes selon lUNIX de la machine : syntaxe de la famille BSD ; FreeBSD, OpenBSD, NetBSD, etc. syntaxe de la famille System-V ; SUN, HP, IBM, LINUX, etc.
c T.Besanon (v14.0.1025)
Administration UNIX
581 / 918
Syntaxe de la famille dUNIX BSD les processus associs son terminal : ps tous ses processus : ps -x tous les processus de la machine : ps -ax tous les processus de la machine avec les noms de login associs : ps -aux Exemple (partiel) de ps -aux :
% ps -aux USER PID %CPU %MEM root 1 0.0 0.1 root 2 0.0 0.0 root 3 0.0 0.0 ... nobody 476 0.0 0.1 daemon 490 0.0 0.0 xfs 636 0.0 0.3 root 14703 0.0 0.0 root 9813 0.0 0.0 idiri 20810 0.0 0.0 idiri 20863 0.0 0.0 besancon 21785 0.0 1.3 idiri 23660 0.2 1.5 ...
c T.Besanon (v14.0.1025)
VSZ 1130 0 0 1300 1144 2820 2256 6912 6552 1996 1732 1860
STAT S SW SW S SW S SW SW SW SW S S
START Oct23 Oct23 Oct23 Oct23 Oct23 Oct23 Oct25 Oct31 15:13 15:13 15:25 16:39
TIME 0:06 0:00 0:01 0:01 0:00 0:18 0:00 0:09 0:01 0:00 0:00 0:01
COMMAND init [kflushd] [kupdate] [identd] [atd] xfs -droppriv -da [login] [kdm] [kwm] [tcsh] -bash vi probleme6.c
Administration UNIX
582 / 918
Syntaxe de la famille dUNIX System-V les processus associs son terminal : ps tous les processus de la machine avec les noms de login associs : ps -edf Exemple (partiel) de ps -edf :
% ps -edf UID PID PPID root 0 0 root 1 0 root 2 0 root 3 0 root 181 1 ... daemon 283 1 root 291 1 root 296 1 nobody 15130 291 besancon 16463 16461 ... C 0 0 0 0 0 0 0 0 0 0 STIME 09:09:47 09:09:47 09:09:47 09:09:47 09:12:07 09:12:12 09:12:13 09:12:14 23:30:56 00:12:26 TTY ? ? ? ? ? ? ? ? ? pts/0 TIME 0:01 0:02 0:00 0:52 0:06 0:11 0:00 0:00 0:00 0:00 CMD sched /etc/init pageout fsflush /usr/lib/autofs/automountd /usr/sbin/lpd /usr/local/apache/bin/httpd /usr/local/admin/lib/idled /usr/local/apache/bin/httpd -csh
c T.Besanon (v14.0.1025)
Administration UNIX
583 / 918
(en anglais kill ) La commande kill sert communiquer avec des processus : arrt de processus demande au processus de se recongurer passage en mode verbeux du processus etc. La commande kill existe sur tous les UNIX et il ny a pas de dirence de fonctionnement selon les UNIX. 2 syntaxes possibles : syntaxe numrique : kill -9 2878 syntaxe symbolique : kill -KILL 2878 (voir pages suivantes 585 et 586 pour les noms symboliques utilisables)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 584 / 918
Nom en langage C
Valeur
Compor- Sens tement Exit Exit Core Core Core Core Core Core Exit Core Core Core Exit Exit Exit Exit Hangup Interrupt Quit Illegal Instruction Trace or Breakpoint Trap Abort Emulation Trap Arithmetic Exception Killed Bus Error Segmentation Fault Bad System Call Broken Pipe Alarm Clock Terminated User Signal 1
SIGHUP SIGINT SIGQUIT SIGILL SIGTRAP SIGABRT SIGEMT SIGFPE SIGKILL SIGBUS SIGSEGV SIGSYS SIGPIPE SIGALRM SIGTERM SIGUSR1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
c T.Besanon (v14.0.1025)
Administration UNIX
585 / 918
Nom en langage C
Valeur
Compor- Sens tement Exit Ignore Ignore Ignore Ignore Exit Stop Stop Ignore Stop Stop Exit Exit Core Core Ignore User Signal 2 Child Status Changed Power Fail or Restart Window Size Change Urgent Socket Condition Pollable Event Stopped (signal) Stopped (user) Continued Stopped (tty input) Stopped (tty output) Virtual Timer Expired Proling Timer Expired CPU time limit exceeded File size limit exceeded Concurrency signal reserved by threads library
ARS 2011 2012 Partie 1 586 / 918
SIGUSR2 SIGCHLD SIGPWR SIGWINCH SIGURG SIGPOLL SIGSTOP SIGTSTP SIGCONT SIGTTIN SIGTTOU SIGVTALRM SIGPROF SIGXCPU SIGXFSZ SIGWAITING
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
c T.Besanon (v14.0.1025)
Administration UNIX
Les signaux les plus utiles sont : SIGHUP Cela envoie lquivalent du Ctrl-C du clavier.
bash kill -HUP nnn
SIGKILL Cela envoie un signal que le processus est oblig de suivre et qui se traduira inluctablement par la mort du processus.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 587 / 918
Inconvnient de ps : cest la liste des processus un instant t. On ne pourra jamais sous UNIX avoir la liste des processus en cours : le temps de chercher les processus et de faire le rapport, certains processus peuvent avoir disparu. Amlioration de ps : la commande top (nest cependant pas standard sur tous les UNIX) Son intrt : elle ache une liste des processus toutes les n secondes URL : ftp://ftp.groupsys.com/pub/top/
c T.Besanon (v14.0.1025)
Administration UNIX
588 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
589 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
590 / 918
Description le shell ninterprte aucun caractre spcial entre deux le shell ninterprte aucun caractre spcial lexception de $ , et \ caractre dchappement dont le sens dpend du contexte (voir page 597)
c T.Besanon (v14.0.1025)
Administration UNIX
591 / 918
Exemples dutilisation pour conserver les espaces dans les chaines de caractres :
1
c T.Besanon (v14.0.1025)
Administration UNIX
592 / 918
% echo cest aujourdhui cest aujourdhui <- pas dapostrophe % echo c\est aujourd\hui cest aujourdhui % echo "cest aujourdhui" cest aujourdhui
c T.Besanon (v14.0.1025)
Administration UNIX
593 / 918
% echo \"ananas\" "ananas" % echo "ananas" "ananas" % echo ""ananas"" <- attention aux paires de guillemets ananas
c T.Besanon (v14.0.1025)
Administration UNIX
594 / 918
En rsum :
1
c T.Besanon (v14.0.1025)
Administration UNIX
595 / 918
Exemples de ce qui est interprt ou pas selon que lon a des guillemets ou des apostrophes ou des backslashes :
1
% echo "$HOME" /net/serveur/home/ars/enseignants/besancon % echo $HOME $HOME % echo "\$HOME" $HOME % echo \$HOME \$HOME
c T.Besanon (v14.0.1025)
Administration UNIX
596 / 918
Caractre \ Le caractre \ sert neutraliser le caractre suivant. Les caractres neutraliss dpendront du contexte : hors guillemets entre guillemets
c T.Besanon (v14.0.1025)
Administration UNIX
597 / 918
Administration UNIX
598 / 918
Retour sur grep : Pour neutraliser tout caractre dans une regexp que le shell pourrait vouloir interprter, on crit :
% grep -E ^[a-e] exemple.txt
Retour sur sed : Pour neutraliser tout caractre dans une regexp que le shell pourrait vouloir interprter, on crit :
% sed -e s/^[a-e]// exemple.txt
c T.Besanon (v14.0.1025)
Administration UNIX
600 / 918
Toutes les entres/sorties dUNIX sont ralises au moyen de chiers. Chaque processus ouvre donc un certain nombre de chiers. Ces chiers sont rfrencs en interne par une table dentiers dits le descriptors. Nom standard input (stdin) standard output (stdout) standard error (stderr) File descriptor 0 1 2 Destination par dfaut clavier cran cran
Les le descriptors existent en langage C et sont profondment ancrs dans le fonctionnement interne dUNIX.
c T.Besanon (v14.0.1025)
Administration UNIX
601 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
602 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
603 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
604 / 918
La ligne de commande en langage C Tout programme sous UNIX comprend la partie suivante en langage C :
#include <stdio.h> int main(int argc, char*argv[]) { ... }
c T.Besanon (v14.0.1025)
Le le descriptor 0 en langage C On utilise certaines fonctions C spciales : scanf() gets() etc. Par exemple :
#include <stdio.h>
Ce qui donne :
% ./prog.exe 12 ananas int main(int argc, char *argv[]) nombre -> 12 { chaine -> ananas int d ; char buf[128] ; scanf("%d %s", &d, buf) ; printf("nombre -> %d\n", d) ; printf("chaine -> %s\n", buf) ; }
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 606 / 918
13.15 Mtacaractres de redirection : <, >, >>, <<, , |, 2>, >& Chapitre 13 Pratique du Bourne shell
Canal 0 1
Format
commande < fichier.txt commande > fichier.txt
1 1 1+0 2 2
commande >> fichier.txt variable=commande commande1 | commande2 commande 2> fichier.txt commande 2>> fichier.txt
c T.Besanon (v14.0.1025)
Administration UNIX
607 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
608 / 918
Exemples :
% application.exe < reponses.txt
c T.Besanon (v14.0.1025)
Administration UNIX
609 / 918
Exemple : extrait dun script qui partitionne un disque dur en 2 partitions de 128 MB et 128 MB respectivement.
% cat partitions.txt n p 1 +127 n p 2 +127 w % fdisk /dev/sdb < partitions.txt
La commande fdisk est en principe interactive. Ici le script proposera les rponses lui mme sans passer par un chier de rponse annexe.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 610 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
611 / 918
Exemples :
1
c T.Besanon (v14.0.1025)
Administration UNIX
612 / 918
% n=commande [parametres]
commande table des file descriptors
variable "n"
c T.Besanon (v14.0.1025)
Administration UNIX
613 / 918
Exemples :
1
c T.Besanon (v14.0.1025)
Administration UNIX
614 / 918
% commande1 | commande2
commande1 table des file descriptors commande2 table des file descriptors
c T.Besanon (v14.0.1025)
Administration UNIX
615 / 918
Pour que commande1 | commande2 fonctionne, il faut que la commande2 lise sur stdin (ledescriptor 0) !
commande1 table des file descriptors commande2 table des file descriptors
Ce nest pas le cas de toutes les commandes ! Certaines commandes UNIX ne pourront jamais tre utilises dans un pipe ! Pour savoir si une commande fonctionne ou ne fonctionne pas dans un pipe : lire la documentation !
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 616 / 918
NAME cat - concatenate and display files SYNOPSIS cat [-nbsuvet] [file...] DESCRIPTION The cat utility reads each file in sequence and writes it on the standard output. Thus: ... If no input file is given, cat reads from the standard input file. ...
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 617 / 918
qui quivaut
more /etc/group
% echo exemple.txt | ls ananas cerise % echo exemple.txt | rm usage: rm [-fiRr] file ...
c T.Besanon (v14.0.1025)
Administration UNIX
618 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
619 / 918
Exemple :
% ls fichier-inexistant.txt ls: fichier-inexistant.txt: No such file or directory % ls fichier-inexistant.txt > erreurs.txt ls: fichier-inexistant.txt: No such file or directory % ls fichier-inexistant.txt 2> erreurs.txt % cat erreurs.txt ls: fichier-inexistant.txt: No such file or directory
c T.Besanon (v14.0.1025)
Administration UNIX
620 / 918
Explications : Le shell value la ligne de commande de gauche droite. Dans la commande ls exemple.txt inexistant.txt >&2 2> erreurs.txt , stdout est redirig sur lcran puisque stderr quivaut lcran cet instant, puis stderr est redirig sur erreurs.txt. Do le rsultat.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 621 / 918
Suivi de lavance du calcul : le processus tourne-t-il encore ? si lon na pas termin le shell dans lequel on a lanc le calcul utiliser jobs on a termin le shell dans lequel on a lanc le calcul utiliser ps :
% ps -edf | grep commande
c T.Besanon (v14.0.1025)
Administration UNIX
622 / 918
Suivi de lavance du calcul via linspection des chiers resultats.txt et erreurs.txt : consultation des chiers par cat ou more ou autre commande de ce type :
% more resultats.txt % more erreurs.txt
c T.Besanon (v14.0.1025)
Administration UNIX
623 / 918
Protection contre lcrasement de chiers lors de redirection Chapitre 13 Pratique du Bourne 13.23 shell
Sous le shell BASH de LINUX on peut se protger contre lcrasement intempestif de chier lors dune redirection. Pour cela, il faut crer une variable denvironnement BASH spciale (se reporter page 650 pour les explications sur les variables denvironnement) :
% ls -l -rw-r--r-1 besancon ars 0 Aug 7 20:39 ananas.txt -rw-r--r-1 besancon ars 0 Aug 7 20:40 banane.txt -rw-r--r-1 besancon ars 0 Aug 7 20:40 cerise.txt % set -o noclobber % ls > cerise.txt bash: cerise.txt: cannot overwrite existing file
c T.Besanon (v14.0.1025)
Administration UNIX
624 / 918
Forme gnrale de lancement dune commande en background : On garde tous les messages mis par le calcul :
% calcul < reponses.txt > resultats.txt 2> erreurs.txt &
On garde les messages normaux mis par le calcul mais pas les messages derreur :
% calcul < reponses.txt > resultats.txt 2> /dev/null &
On garde les messages derreur mis par le calcul mais pas les messages normaux :
% calcul < reponses.txt > /dev/null 2> erreurs.txt &
(le reste des remarques prcdentes sur jobs , ps , more , cat , tail -f reste vrai)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 626 / 918
Description 0 ou plus caractres quelconques un et un seul caractre quelconque exactement un caractre parmi ceux autoriss par la liste entre crochets un caractre dirent de ceux interdits par la liste entre crochets
Exemples :
1
% ls *.txt fichier1.txt
fichier2.txt
fichier3.txt
fichier4.txt
/etc/pwd.db /etc/sendmail.cf
/etc/spwd.db
% ls /tmp/[a-f]* /tmp/ananas.txt
/tmp/cerise.txt
/tmp/fraise.txt
% ls /tmp/[^ac]* /tmp/fraise.txt
c T.Besanon (v14.0.1025)
Administration UNIX
628 / 918
13.26 Interprtation de la ligne de commande et lancement dune commande par le shell Chapitre 13 Pratique du Bourne shell
En interne, le shell lance une commande par la fonction execl() du langage C (aprs un fork() ) :
% ls -l -----> execl("/bin/ls", "ls", "-l", NULL ) ;
c T.Besanon (v14.0.1025)
Administration UNIX
629 / 918
La dicult : certains caractres sont pour le shell certains caractres sont pour la commande invoque le shell se sert toujours en premier Consquence : Si un caractre spcial a un sens pour le shell et pour la commande, il faut lcrire de faon non ambigue. Le shell doit comprendre si le caractre spcial est pour lui ou pour la commande.
MAIS ATTENTION : le shell remplace le caractre spcial sil le peut et uniquement sil le peut. Sinon il renonce au sens spcial du caractre et le transforme en caractre ordinaire laiss au milieu des autres caractres.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 630 / 918
Exemple 1
% rm exemple.txt % ... --> execl("/bin/rm", "rm", "exemple.txt", NULL );
c T.Besanon (v14.0.1025)
Administration UNIX
631 / 918
Exemple 2
% ls fichier1.doc % rm *.doc % ...
c T.Besanon (v14.0.1025)
Administration UNIX
632 / 918
Exemple 3
% ls ananas cerise % expr 2 * 3 -------> execl("/usr/bin/expr", expr: syntax error "expr", % ... "2", "ananas", "cerise", "3", NULL );
c T.Besanon (v14.0.1025)
Administration UNIX
633 / 918
Exemple 4
% ls ananas cerise % expr 2 \* 3 -------> execl("/usr/bin/expr", 6 "expr", % ... "2", "*", "3", NULL );
c T.Besanon (v14.0.1025)
Administration UNIX
634 / 918
Exemples 5
% ls banane.txt % echo b* banane.txt % echo a* a* <- le shell laisse *
cerise.txt
c T.Besanon (v14.0.1025)
Administration UNIX
635 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
636 / 918
% rmdir [a-z]* rmdir: directory "[a-z]*": Directory does not exist dobjet [a-z]*
<- pas
c T.Besanon (v14.0.1025)
Administration UNIX
637 / 918
Noms de variables Les noms des variables suivent les mmes rgles que celles du langage C.
c T.Besanon (v14.0.1025)
Administration UNIX
638 / 918
Attention : les variables ne sont pas classes par ordre alphabtique. Conseil : faire set | sort
c T.Besanon (v14.0.1025)
Administration UNIX
639 / 918
Assignation de variable
% variable=valeur
Rappel : lespace est un caractre spcial donc pas despace de part et dautre du signe = .
Sinon grosses erreurs :
% a =3 a: not found % a= 3 3: not found % a = 3 a: not found
c T.Besanon (v14.0.1025)
Administration UNIX
640 / 918
Consultation de variable Au choix : criture $variable criture ${variable} Prfrer la seconde criture. Pour la raison suivante :
% a=ananas % echo $a33 % echo ${a}33 ananas33
c T.Besanon (v14.0.1025)
Administration UNIX
641 / 918
Rappel :
% echo "jai 5 \$" jai 5 $
Mais aussi :
% echo "jai 5 $" jai 5 $
c T.Besanon (v14.0.1025)
Administration UNIX
642 / 918
Suppression de variable
% unset variable
c T.Besanon (v14.0.1025)
Administration UNIX
643 / 918
LES VARIABLES SONT DE TYPE CARACTRES. Il ny a pas dautre type. Il ny a pas de type numrique.
Il est donc impossible de faire :
% compteur=1 % compteur=$compteur + 1
c T.Besanon (v14.0.1025)
Administration UNIX
644 / 918
Pour faire des oprations numriques sur les variables, on fait ainsi :
% compteur=1 % compteur=expr $compteur + 1
Se reporter la page de manuel de expr pour les autres oprations mathmatiques ralisables.
c T.Besanon (v14.0.1025)
Administration UNIX
645 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
646 / 918
A un shell sont associes des variables uniquement dnies dans ce shell et uniquement accessibles dans ce shell. Les variables disparaissent lorsque le shell meurt.
c T.Besanon (v14.0.1025)
Administration UNIX
647 / 918
Compilation :
% gcc prog.c -o prog.exe % ./prog.exe 6
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 648 / 918
#include<stdio.h> int multiplication(int n) { return(f * n); } int f = 2 ; int main(int argc, char *argv[]) { printf("%d\n", multiplication(3)); }
Compilation :
% gcc prog.c -o prog.exe prog.c: In function multiplication: prog.c:5: error: f undeclared (first use in this function) prog.c:5: error: (Each undeclared identifier is reported only once prog.c:5: error: for each function it appears in.)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 649 / 918
13.29 Visibilit des variables du shell : variables denvironnement Chapitre 13 Pratique du Bourne shell
Les variables ne sont pas hrites par dfaut par les commandes lances par le shell.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 650 / 918
Vrication en lanant une application spciale, un shell (intrt du shell : le shell permet de faire des vrications en mode interactif).
Les variables ne sont pas hrites par dfaut par les commandes lances par le shell.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 651 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
653 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
654 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
655 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
656 / 918
Retour sur le mcanisme du fork() utilis lorsque le shell lance une commande (voir page 561) :
0xFFF00000 (high address) perprocess kernel stack perprocess kernel stack perprocess kernel stack red zone red zone red zone
user area
user area
user area
ps string structure
ps string structure
ps string structure
signal code
signal code
signal code
environnment strings
environnment strings
environnment strings
argv strings
argv strings
argv strings
env pointers
fork()
env pointers
argv pointers
argv pointers
env pointers
argv pointers
argc
argc
argc
user stack
user stack
user stack
heap
heap
heap
bss
bss
bss
initialized data
initialized data
initialized data
text
text
text
c T.Besanon (v14.0.1025)
Administration UNIX
657 / 918
Dans la structure dun processus UNIX, il y a une zone pour stocker des variables denvironnementi (en rouge sur le dessin) :
0xFFF00000 (high address) perprocess kernel stack
red zone
user area
ps string structure
signal code
environnment strings
argv strings
env pointers
argv pointers
c T.Besanon (v14.0.1025)
658 / 918
Pour acher la liste des variables denvironnement : env printenv (peut-tre non standard ?)
bss heap
Attention : les variables denvironnement ne sont data pas classes par ordre initialized alphabtique (cas identique page 639).
0x00000000 (low address) text
c T.Besanon (v14.0.1025)
Administration UNIX
659 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
660 / 918
Description rpertoire daccueil personnel o lutilisateur stocke ses chiers (en anglais home directory ) nom dutilisateur (en anglais username ) chemin du shell en cours dutilisation liste des dossiers systme dans lesquels chercher les commandes type du terminal texte utilis
c T.Besanon (v14.0.1025)
Administration UNIX
661 / 918
En Bourne Shell, la variable PATH stocke le chemin de commandes. Chemin de commandes liste de rpertoires spars par des : Parcours de tous les rpertoires jusqu trouver la commande en question Hypothse : le PATH vaut /bin:/usr/bin:/usr/local/bin Hypothse 2 : lutilisateur tape ls
1
Le shell cherche si lexcutable /bin/ls existe. Si non tape suivante. Le shell cherche si lexcutable /usr/bin/ls existe. Si non tape suivante. Le shell cherche si lexcutable /usr/local/bin/ls existe. Si non tape suivante. Si plus de rpertoires de PATH analyser, acher lerreur command not found
Administration UNIX ARS 2011 2012 Partie 1 662 / 918
c T.Besanon (v14.0.1025)
En mode interactif, pour ajouter le rpertoire /chemin/vers/application/bin son PATH : en dbut de PATH , faire :
% PATH=/chemin/vers/application/bin:$PATH % export PATH
en n de PATH , faire :
% PATH=$PATH:/chemin/vers/application/bin % export PATH
Pour retirer un rpertoire de son PATH : pas de mthode part retaper tout :
c T.Besanon (v14.0.1025)
Administration UNIX
663 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
664 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
665 / 918
Hypothse : on est sous Bourne Shell ou sous BASH. Hypothse 2 : on se rappelle le passage Variable denvironnement PATH vu dans le chapitre Pratique du Bourne Shell . Objectif : on veut modier son PATH de faon permanente. Solution : On utilise le chier $HOME/.profile avec un lien symbolique $HOME/.bashrc dessus. On rgle ainsi (sh ou bash) : cas du shell interactif de login cas du shell interactif non de login cas du shell non interactif
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 666 / 918
ou
PATH=$PATH:/chemin/vers/application/bin export PATH
c T.Besanon (v14.0.1025)
Administration UNIX
667 / 918
Rappel :
Tous les programmes texte utilisent des escape sequences pour dplacer le curseur lcran. ncessit de savoir comment faire base de donnes des escape sequences ; lentre dans la base de donnes est donne par la variable TERM
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 668 / 918
La variable denvironnement TERM dnit le modle de terminal texte utilis. Dans le pass, il y avait plthore de console de terminaux texte. base de donnes des modles de terminaux : Implmentation systme BSD : base de donnes au format TERMCAP stocke dans le chier /etc/termcap Implmentation systme System-V : base de donnes au format TERMINFO stocke dans larborescence /usr/share/lib/terminfo/ Par exemple pour le minitel : /usr/share/lib/terminfo/m/minitel Base jour disponible http://www.tuxedo.org/~esr/terminfo Utilitaires tic (terminfo compiler), captoinfo pour convertir les chiers de description de terminaux de termcap terminfo
c T.Besanon (v14.0.1025)
Administration UNIX
669 / 918
Ne jamais changer la valeur de TERM mise automatiquement par le systme sinon problmes dans diteurs, etc.
c T.Besanon (v14.0.1025)
Administration UNIX
670 / 918
Jouons avec le feu en changeant la valeur mise par le systme pour votre fentre :
c T.Besanon (v14.0.1025)
Administration UNIX
671 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
672 / 918
Solution : commande reset ; retour aux rglages par dfaut du terminal si des escape squences ont chu la pagaille
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 673 / 918
La commande stty donne les caractristiques bas niveau du terminal. Dans les rsultats renvoys on trouve les congurations de certaines squences de touches utilises interactivement. Par exemple leacement du caractre prcdent de la ligne via la touche Del ou Backspace . Il y a 2 versions de la commande selon la famille dUNIX. Lachage des donnes est dirent mais on manipule la mme chose au nal. Attention ne pas confondre ce que permet la gestion du terminal texte et ce que permet le shell (par exemple bash ore des possibilits de dplacement du curseur au sein de la ligne de commande).
c T.Besanon (v14.0.1025)
Administration UNIX
674 / 918
Principales noms de squences utiles : squence erase : eacement du caractre prcdent squence werase : eacement du mot prcdent squence kill : eacement de la ligne complte squence intr : envoi du signal SIGINT squence quit : envoi du signal SIGABRT squence susp : envoi du signal SIGTSTP squence eof : End Of File squence start : relance le ux de lachage texte squence stop : arrte le ux de lachage texte squence lnext : permet la saisie de la squence suivante sans linterprter
c T.Besanon (v14.0.1025)
Administration UNIX
675 / 918
% /usr/bin/stty -a speed 9600 baud; rows = 55; columns = 80; ypixels = 719; xpixels = 579; csdata ? eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; -parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crtscts -crtsxoff -parex -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc ixon -ixany -ixoff imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel
c T.Besanon (v14.0.1025)
Administration UNIX
676 / 918
Le shell standard sous Linux est bash qui permet de revenir en dbut de ligne tape par ^e . Pour changer intr de ^c en ^e , on tapera donc en pratique :
% stty intr ^v^e
Le ^v neutralise leet de ^e (sous bash retour en dbut de ligne) lorsquon le tape. Le ^v est indiqu par la squence lnext de stty .
c T.Besanon (v14.0.1025)
Administration UNIX
677 / 918
Ctrl-D est appel EOF (End Of File ) Possibilit de dsactiver la squence Ctrl-D sous BASH via une variable spciale interne de BASH :
% set -o ignoreeof % ^DUse "exit" to leave the shell.
c T.Besanon (v14.0.1025)
Administration UNIX
679 / 918
La commande login lance un shell de login. Le nom du shell est alors prcd dun signe moins :
% ps -edf besancon besancon besancon | grep bash 1773 1 0 1959 1949 0 8300 8299 0 Aug 24 console Aug 24 pts/3 Aug 26 pts/5 0:00 -bash 0:09 bash 0:00 bash
Le shell sait alors quil est un shell de login (via argv[0] ) le shell excute les chiers de conguration de login Un shell non de login nexcutera pas les chiers de conguration de login et sera initialis plus simplement. On peut forcer le mode shell de login : avec bash : bash --login avec tcsh : tcsh -l avec xterm : xterm -ls ou xterm -xrm *loginShell: true
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 680 / 918
Un shell est interactif si les commandes sont saisies sur un terminal. Un shell est non interactif si les commandes sont lues dans un chier. Si le shell est non interactif, on nexcutera pas les chiers de commandes interactives et le shell sera initialis plus simplement. La commande tty -s permet de tester si lon est en mode interactif ou pas : code de retour 0 : mode interactif code de retour 1 : mode non interactif On peut forcer le mode shell interactif : avec bash : bash -i avec sh : sh -i avec tcsh : tcsh -i avec csh : csh -i
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 681 / 918
on excute /etc/profile on excute le premier et seulement le premier chier existant parmi $HOME/.bash_profile , $HOME/.bash_login , $HOME/.profile
c T.Besanon (v14.0.1025)
Administration UNIX
682 / 918
Mode shell non interactif mais avec loption -login (sauf option contraire --noprofile ) :
1 2
on excute /etc/profile on excute le premier et seulement le premier chier existant parmi $HOME/.bash_profile , $HOME/.bash_login , $HOME/.profile
c T.Besanon (v14.0.1025)
Administration UNIX
683 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
684 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
685 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
686 / 918
on excute $HOME/.bash_logout
c T.Besanon (v14.0.1025)
Administration UNIX
687 / 918
Travailler sous bash avec des caractres accentus (. . .) : ajouter au chier $HOME/.inputrc les lignes suivantes :
set meta-flag on set convert-meta off set output-meta on
c T.Besanon (v14.0.1025)
Administration UNIX
688 / 918
En mode autre : on nexcute aucun chier ! Compatibilit avec le conseil pour bash :
c T.Besanon (v14.0.1025)
Administration UNIX
689 / 918
on excute /etc/csh.cshrc on excute /etc/csh.login on excute $HOME/.tcshrc (ou $HOME/.cshrc la place si non existant) on excute $HOME/.history on excute $HOME/.login on excute $HOME/.cshdirs
4 5 6
c T.Besanon (v14.0.1025)
c T.Besanon (v14.0.1025)
Administration UNIX
691 / 918
on excute $HOME/.logout
c T.Besanon (v14.0.1025)
Administration UNIX
692 / 918
Sur LINUX, le shell sappelle BASH = version amliore du Bourne Shell Une des fonctionnalits interactives les plus intressantes : lexpansion des noms de chier via la touche TAB : on parle de compltion :
% ls abricot.txt asperge.txt choux.txt poire.txt ananas.txt banane.txt fraise.txt poireau.txt artichaut.txt cerise.txt patate.txt pomme.txt % ls pTAB patate.txt poire.txt poireau.txt pomme.txt % ls poTAB poire.txt poireau.txt pomme.txt % ls pomTAB % ls pomme.txt
c T.Besanon (v14.0.1025)
Administration UNIX
693 / 918
La compltion est aussi disponible sous WINDOWS dans un cmd.exe . Pour Windows NT et Windows 2000 : rglage dans la base de registres : aecter la valeur 9 la clef
HKEY_CURRENT_USER/Software/Microsoft/Command Processor/ CompletionChar
c T.Besanon (v14.0.1025)
Administration UNIX
694 / 918
Chapitre 14
c T.Besanon (v14.0.1025)
Administration UNIX
695 / 918
14.1 Introduction
14.1 Introduction
Le shell propose un langage de programmation. Son utilit : un script nest pas compil, un script est interprt : mise au point rapide un script permet dautomatiser des actions : scripts dadministration, scripts dinstallation, etc. un script peut utiliser quelques structures de programmation avance :
boucles tests ...
c T.Besanon (v14.0.1025)
Administration UNIX
696 / 918
Ce cours essayera de suivre la convention dutiliser lextension .sh pour nommer un shell script.
Par exemple :
% ./exemple.sh ...
c T.Besanon (v14.0.1025)
Administration UNIX
697 / 918
Un script est excutable. Il doit avoir les droits dexcution. Avant de sen servir pour la premire fois :
% vi exemple.sh ... % chmod a+x exemple.sh
c T.Besanon (v14.0.1025)
Administration UNIX
698 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
699 / 918
14.4 Structure dun shell script : dsignation de la syntaxe Chapitre 14 Programmation en Bourne shell
Un script est crit pour un programme particulier, la syntaxe bien particulire. Par exemple : shell script si le programme est un shell (Bourne Shell, BASH, CSH, etc.) script PERL si le programme est le langage PERL etc. La premire ligne du shell script commence par #! suivi du path du shell utilis et de ses arguments ventuels. Exemple de script Bourne Shell :
#!/bin/sh date ls -l
Un script ne peut pas tre excut par un autre shell en gnral. Par exemple voir ci-dessus.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 700 / 918
14.5 Structure dun shell script : commentaires Chapitre 14 Programmation en Bourne shell
Un commentaire est introduit par le caractre # et se poursuit jusqu la n de la ligne. Un commentaire peut tre plac nimporte o.
c T.Besanon (v14.0.1025)
Administration UNIX
701 / 918
# ! /bin/sh
Sens de cette ligne : # : commentaire ! : lancer le programme qui suit /bin/sh : le chemin du programme qui comprend la syntaxe
En surface :
% ./exemple.sh ...
En profondeur :
% pgrep -fl exemple 10397 /bin/sh ./exemple.sh
Excuter un script, cest en fait lancer le programme de linterprteur et lui dire de lire le chier.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 702 / 918
En labsence dindication de linterprteur de commandes en premire ligne du script, le script est excut par le shell courant de la session de lutilisateur.
Attention aux systmes comme Linux o le shell par dfaut est compatible avec le Bourne shell, masquant ainsi lerreur ! ! ! Preuve : Soit le script erreur.sh suivant :
# Je suis un commentaire qui na rien a faire ici #!/bin/sh for i in * do echo $i done
c T.Besanon (v14.0.1025)
Administration UNIX
704 / 918
Moralit :
c T.Besanon (v14.0.1025)
Administration UNIX
705 / 918
14.7 Debugging dun shell script : mthode intuitive Chapitre 14 Programmation en Bourne shell
Mthode intuitive : The most eective debugging tool is still careful thought, coupled with judiciously placed print statements. (Brian Kernighan [1978]) Par exemple :
#!/bin/sh n="quelque chose" echo "tape 1 = $n" n="quelque chose dautre" echo "tape 2 = $n"
c T.Besanon (v14.0.1025)
Administration UNIX
706 / 918
Mthode plus sophistique pour debugger un script : placer la ligne set -x lorsque lon veut que le debug commence :
#!/bin/sh set -x echo $USER
c T.Besanon (v14.0.1025)
Administration UNIX
707 / 918
Loption -x du shell convertit les metacharacters du shell dans la ligne en cours et lache avant de lexcuter. On obtient ici :
#!/bin/sh set -x echo $USER % ./exemple.sh + echo besancon besancon
(les explications sur les metacharacters seront vues dans les pages venir)
c T.Besanon (v14.0.1025)
Administration UNIX
708 / 918
La commande exit renvoie une valeur de retour pour le shell script et provoque larrt de lexcution du script. La valeur de retour est un entier compris entre 0 et 255. Exemple de script :
#!/bin/sh date cp /etc/passwd /tmp exit 0
c T.Besanon (v14.0.1025)
Administration UNIX
709 / 918
Le code de retour dun shell script suit la mme convention que pour les commandes UNIX : code de retour gal zro : le script sest excut correctement code de retour non gal zro : le script a rencontr une condition derreur Cest le programmeur qui dcide des codes de retour dans son programme. Les codes de retour sont documents (si le programmeur a fait son travail correctement). Les codes de retour peuvent tre dirents pour la mme commande sur deux versions direntes dUNIX (voir exemples ci aprs sur fsck ).
c T.Besanon (v14.0.1025)
Administration UNIX
710 / 918
DESCRIPTION ... EXIT STATUS 0 file system is okay and does not need checking 1 erroneous parameters are specified 32 file system is unmounted and needs checking (fsck -m only) 33 file system is already mounted 34 cannot stat device 36 uncorrectable errors detected - terminate normally 37 a signal was caught during processing 39 uncorrectable errors detected - terminate immediately c40 T.Besanon ARS 2011 2012 Partie 1 711 / 918 for (v14.0.1025) root, same as 0. Administration UNIX ...
14 Programmation en Bourne shell 14.9 Code de retour dun shell script : exit
SYNOPSIS fsck [ -sAVRTNP ] [ -C [ fd ] ] [ -t fstype ] [filesys ... ] [--] [ fsspecific-options ] DESCRIPTION ... The exit code returned by fsck is the sum of the following conditions: 0 - No errors 1 - File system errors corrected 2 - System should be rebooted 4 - File system errors left uncorrected 8 - Operational error 16 - Usage or syntax error 32 - Fsck canceled by user request 128 - Shared library error The exit code returned when multiple file systems are checked is the bit-wise OR of the exit codes for each file system that is checked. ...
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 712 / 918
GREP(1) NAME grep, egrep, fgrep, rgrep - print lines matching a pattern SYNOPSIS grep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...] DESCRIPTION ... Normally, exit status is 0 if selected lines are found and 1 otherwise. But the exit status is 2 if an error occurred, unless the -q or --quiet or --silent option is used and a selected line is found. ...
GREP(1)
c T.Besanon (v14.0.1025)
Administration UNIX
713 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
714 / 918
Variables de passage de paramtres un shell script : $1 $9 Chapitre 14 Programmation en 14.11 Bourne shell
Comme tout programme UNIX, on doit pouvoir utiliser le shell script avec des paramtres :
% ./exemple.sh -l ananas.txt banane.txt ...
Variable spciale
$0 $1 $9 $# $* $@
Description Nom du shell script Les 9 premiers paramtres Le nombre de paramtres Tous les paramtres passs au shell script sous la forme de mots individuels spars Tous les paramtres passs au shell script
c T.Besanon (v14.0.1025)
Administration UNIX
715 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
716 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
717 / 918
Comment accder tous les paramtres de la ligne de commande ? Soit le script erreur.sh suivant :
#!/bin/sh echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12
$2
banane
$3
cerise
$4
endive ...
...
...
$8
laitue
$9
poire pomme ...
banane
cerise
endive
...
...
laitue
poire
pomme
...
...
$1
$2
$3
$4
...
$8
$9
Administration UNIX
719 / 918
Attention ! A chaque emploi de shift, le paramtre $1 prcdent est perdu. Du mme coup, ce paramtre est supprim de $* et $@, $# est dcrment de 1.
#!/bin/sh echo "$# ; shift echo "$# ; shift echo "$# ; shift echo "$# ; shift echo "$# ;
% 4 3 2 1 0
./exemple.sh a b c d ; a b c ; a b c d ; b c d ; b c d ; c d ; c d ; d ; d ; ;
c T.Besanon (v14.0.1025)
Administration UNIX
720 / 918
Attention ! Lemploi de shift ncessite que le shell script ait au moins un paramtre :
#!/bin/sh echo $1 $2 $3 shift echo $1 $2 $3 % ./exemple.sh <-- pas de paramtres <-- ligne vide du premier echo shift: cant shift that many
c T.Besanon (v14.0.1025)
Administration UNIX
721 / 918
Attention : avec BASH on peut accder plus que les 9 premiers paramtres ! Pour cela utiliser lcriture des variables entre accolades (voir page 641) :
#!/bin/bash echo $1 $11 $21 echo $1 ${11} ${21}
Cela donne :
% ./exemple.sh a b c d e f g h i j k l m n o p q r s t u v w x y z a a1 b1 a k u
c T.Besanon (v14.0.1025)
Administration UNIX
722 / 918
14.12 Liste des paramtres dun shell script : $*, $@ Chapitre 14 Programmation en Bourne shell
Deux syntaxes pour la liste des paramtres : $* : Tous les paramtres passs au shell script sous la forme de mots individuels spars $@ : Tous les paramtres passs au shell script Soit un shell script que lon appelle ainsi :
% ./exemple.sh "ananas" "banane cerise" "fraise"
c T.Besanon (v14.0.1025)
Administration UNIX
723 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
724 / 918
La variable $? contient le code de retour de la dernire commande excute. On ne peut que consulter cette variable.
c T.Besanon (v14.0.1025)
Administration UNIX
725 / 918
0 Jul
9 00:27 fichier1
Alors :
% gcc exemple.c -o exemple.exe % ./exemple.exe % echo $? 23
c T.Besanon (v14.0.1025)
Administration UNIX
727 / 918
Lien avec le langage C (2) Rappel : la fonction main() renvoie un entier. Soit le programme C :
#include<stdio.h> int main() { return(23); }
Alors :
% gcc exemple.c -o exemple.exe % ./exemple.exe % echo $? 23
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 728 / 918
La variable $$ contient le PID du shell script qui est en train de sexcuter. On ne peut que consulter cette variable.
c T.Besanon (v14.0.1025)
Administration UNIX
729 / 918
On peut en parallle (grce aux 30 secondes du sleep) chercher par la commande ps le numro de processus :
% ps -edf | grep exemple.sh besancon 1406 28602 0 00:31:02 pts/1
c T.Besanon (v14.0.1025)
Administration UNIX
730 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
731 / 918
(en anglais built in) Le shell dispose de commandes internes (builtins ) : cd , set , etc. Si une commande est builtin, elle est programme dans le code C du shell. Si une commande nest pas builtin, elle correspond un excutable dans larborescence du systme. La commande est alors lance de faon indpendante du shell (simple lien pre ls). Plus intuitivement : une commande builtin est faite pour manipuler les aspects internes du shell. En eet, qui mieux que le shell lui-mme peut-il modier son propre fonctionnement ?
c T.Besanon (v14.0.1025)
Administration UNIX
732 / 918
Attention, passage dicile : La commande cd est un builtin dans tous les shells. Soit le script exemple.sh suivant :
#!/bin/sh cd /
c T.Besanon (v14.0.1025)
Administration UNIX
733 / 918
Une mthode pour identier les builtins est dutiliser la commande du Bourne Shell type :
% type cd cd is a shell builtin % type echo echo is a shell builtin % type ls ls is /bin/ls
Bien sr :
% type type type is a shell builtin
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 734 / 918
14.17 Commande dachage de chaines de caractres : builtin echo, /bin/echo Chapitre 14 Programmation en Bourne shell
MAIS la commande echo peut ne pas tre un builtin du shell. Il existe une commande UNIX /bin/echo :
% ls -l /bin/echo -r-xr-xr-x 1 bin bin 32768 May 20 12:30 /bin/echo
Raison historique : certains shells ne fournissaient pas ce builtin echo ! Do besoin dune commande externe. ATTENTION : La syntaxe du builtin peut tre dirente de celle de la commande externe !
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 735 / 918
Premire syntaxe possible pour echo La commande echo comprend des squences semblables celles de printf() du langage C (commande echo dinspiration System-V) : Squence
\b \c \n \r \t \v \\ \nnn
Description Backspace Pas de newline envoy Newline Carriage return Tabulation horizontale Tabulation verticale Backslash Caractre dont le code octal ASCII est donn
Les squences spciales de echo fonctionnent entre apostrophes ou guillemets. Cf page 591 pour le sens des apostrophes et des guillements. Cf page 597 pour le sens de antislash entre guillemets. Cest cohrent...
c T.Besanon (v14.0.1025)
Administration UNIX
737 / 918
Seconde syntaxe possible pour echo La commande echo comprend des options (commande echo dinspiration BSD) : option -n : Pas de newline envoy
c T.Besanon (v14.0.1025)
Administration UNIX
739 / 918
Exemple : quarrive-t-il si lon se trompe de syntaxe ? (ici syntaxe BSD avec un echo de syntaxe System-V)
#!/bin/sh a=2 b=3 # Mauvais affichage /bin/echo "a*b=" expr $a \* $b # Affichage correct /bin/echo -n "a*b=" expr $a \* $b
(en anglais read ) La commande read permet de lire au clavier et de placer les mots lus dans une liste de variables. Cest lquivalent de scanf() . Syntaxe :
read variable-list
Le premier mot va dans la premire variable, le deuxime mot va dans la deuxime variable. . .Tous les mots en trop sont stocks dans la dernire variable mentionne.
c T.Besanon (v14.0.1025)
Administration UNIX
742 / 918
On notera au passage lutilisation de \c dans la premire ligne echo pour coller la rponse entre au texte de la question.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 743 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
744 / 918
Syntaxes :
1
La condition (boolenne) est en gnral le code de retour dune commande UNIX. Le code de retour de la commande dtermine le test if : Code de retour valant zro : Le test if est vrai. Code de retour non nul : Le test if est faux.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 745 / 918
car rapidement illisible mon got Indenter les blocs pour tre lisible
c T.Besanon (v14.0.1025)
Administration UNIX
746 / 918
Exemple :
#!/bin/sh if ls > /dev/null then echo Il y a des fichiers fi
c T.Besanon (v14.0.1025)
Administration UNIX
747 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
748 / 918
La commande case permet de tester une chane de caractres par rapport un certain nombre dautres chanes prdnies :
case chaine-a-tester in possibilite1) bloc-1-de-commandes-unix ;; possibilite2) bloc-2-de-commandes-unix ;; ... possibiliteN) bloc-N-de-commandes-unix ;; esac
c T.Besanon (v14.0.1025)
Administration UNIX
749 / 918
Exemple 1 : forme simple Les possibilits sont de simples chaines de caractres statiques :
#!/bin/sh echo -n "Donnez un chiffre entre 1 et 3 read reponse case "$reponse" in "1") echo "Vous avez entr le chiffre ;; "2") echo "Vous avez entr le chiffre ;; "3") echo "Vous avez entr le chiffre ;; * ) echo "Erreur" exit 1 ;; esac exit 0
c T.Besanon (v14.0.1025) Administration UNIX
-->"
750 / 918
Exemple 2 : forme sophistique Les possibilits peuvent tre construites partir de mta-caractres :
#!/bin/sh echo -n "Donnez un chiffre entre 1 et 5 -->" read reponse case "$reponse" in [1-5]) echo "Le chiffre est bien entre 1 et 5. Merci." ;; *) echo "Erreur" exit 1 ;; esac exit 0
c T.Besanon (v14.0.1025)
Administration UNIX
751 / 918
Exemple 3 : forme sophistique Les possibilits peuvent tre construites partir de mta-caractres :
#!/bin/sh echo -n "Entrer le mot read reponse case "$reponse" in unix | windows) echo ;; macintosh) echo ;; *) echo exit ;; esac exit 0
c T.Besanon (v14.0.1025)
Administration UNIX
752 / 918
Exemple 4 : forme sophistique Les possibilits peuvent tre construites partir de mta-caractres :
#!/bin/sh echo -n "Entrer un mot franais -->" read reponse case "$reponse" in [aeiouy]*) echo "Le mot commence par une voyelle." ;; [0-9]*) echo "Le mot commence par un chiffre" ;; *) echo "Le mot commence par autre chose." ;; esac exit 0
c T.Besanon (v14.0.1025)
Administration UNIX
753 / 918
Dans de nombreuses structures shell, on teste une condition. Lexemple le plus classique :
#!/bin/sh if commande [options] parametres > resultats.txt 2> erreurs.txt then # code de retour (exit) valant 0 bloc-1-de-commandes-unix else # code de retour (exit) diffrent de 0 bloc-2-de-commandes-unix fi
Un test if ncessite donc une commande pour faire des tests. En pratique, la commande test permet de raliser tous les tests classiques : un chier existe-t-il ? telle variable vaut-elle 3 ? etc.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 754 / 918
Liste partielle (lisez la page de manuel de test pour complter) : Syntaxe test -d objet test -f objet test -s objet test -w objet test -x objet Description Vrai si lobjet existe et est un rpertoire (en anglais directory ) Vrai si lobjet existe et est un chier (en anglais le ) Vrai si lobjet existe, est un chier et a une taille suprieure zro (en anglais size ) Vrai si lobjet existe et que lon peut crire dans lobjet (en anglais writable ) Vrai si lobjet existe et que lon peut lexcuter (en anglais executable )
c T.Besanon (v14.0.1025)
Administration UNIX
755 / 918
Exemple :
#!/bin/sh if test -d "$1" then echo "$1 est un dossier" else echo "$1 nest pas un dossier" fi % ./exemple.sh /tmp /tmp est un dossier % ./exemple.sh /etc/passwd /etc/passwd nest pas un dossier % ./exemple.sh $HOME/.exrc /home/besancon/.exrc nest pas un dossier
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 756 / 918
Exemple :
#!/bin/sh if test -s "$1" then echo "$1 : test OK" else echo "$1 : test faux" fi
c T.Besanon (v14.0.1025)
Administration UNIX
757 / 918
Exemple :
#!/bin/sh if test -w "$1" then echo "$1 : ecriture possible" else echo "$1 : ecriture impossible" fi % ls -l /tmp/ananas -rw-r--r-- 1 besancon ars 0 Nov 27 20:42 /tmp/ananas % ./exemple.sh /tmp/ananas /tmp/ananas : ecriture possible % ls -l /etc/passwd -rw-r--r-- 1 root root 1362 Jan 28 % ./exemple.sh /etc/passwd /etc/passwd : ecriture impossible
c T.Besanon (v14.0.1025) Administration UNIX
2009 /etc/passwd
758 / 918
Attention : test -w objet teste si on a le droit dcrire dans lobjet indiqu test -w objet ne teste pas si le droit w est positionn sur le propritaire
% ls -l /etc/passwd -rw-r--r-- 1 root root % test -w /etc/passwd % echo $? 1 # ls -l /tmp/cerise -r--r--r-- 1 besancon ars # test -w /tmp/cerise # echo $? 0
1362 Jan 28
2009 /etc/passwd
c T.Besanon (v14.0.1025)
Administration UNIX
759 / 918
string = s2 != s2 -eq n2
test n1 -ne n2 test n1 -gt n2 test n1 -ge n2 test n1 -lt n2 test n1 -le n2
Description Vrai si la chaine est non vide. Vrai si les chaines s1 et s2 sont identiques. Vrai si les chaines s1 et s2 ne sont pas identiques. Vrai si les chaines n1 et n2 sont mathmatiquement gales (en anglais equal ). Vrais si les chaines n1 et n2 ne sont pas mathmatiquement gales (en anglais not equal ). Vrai si la chaine n1 est mathmatiquement strictement suprieure n2 (en anglais greater than). Vrai si la chaine n1 est mathmatiquement suprieure ou gale n2 (en anglais greater or equal ). Vrai si la chaine n1 est mathmatiquement strictement infrieure n2 (en anglais less than). Vrai si la chaine n1 est mathmatiquement infrieure ou gale n2 (en anglais less or equal ).
Administration UNIX ARS 2011 2012 Partie 1 760 / 918
c T.Besanon (v14.0.1025)
Exemple :
#!/bin/sh # Test par le script de la variable denvironnement ARS if test -n "$ARS" then echo "variable ARS dfinie" else echo "variable ARS non dfinie" fi
c T.Besanon (v14.0.1025)
Administration UNIX
761 / 918
Exemple :
#!/bin/sh if test "$ARS" = "2010" then echo "variable ARS valide" else echo "variable ARS non valide" fi
c T.Besanon (v14.0.1025)
Administration UNIX
762 / 918
Exemple :
#!/bin/sh if test "$PRIX" -eq 3 then echo "prix valide" else echo "prix non valide" fi
Attention : La commande ne tient simplement pas compte des chires 0 au dbut. La commande ne reconnait pas les critures en base 8 (010 pour 8) ou 16 (0x10 pour 16).
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 763 / 918
Exemple :
#!/bin/sh if test "$PRIX" = 3 then echo "prix valide" else echo "prix non valide" fi
c T.Besanon (v14.0.1025)
Administration UNIX
764 / 918
( ... )
Description Vrai si lexpression est fausse. Vrai si expression1 et expression2 sont vraies (en anglais and ) Vrai si expression1 ou expression2 est vraie (en anglais or ) groupement dexpressions
c T.Besanon (v14.0.1025)
Administration UNIX
765 / 918
Exemple :
#!/bin/sh if test ! "$ARS" = "2010" then echo "test vrai (!= 2010)" else echo "test faux (= 2010)" fi
c T.Besanon (v14.0.1025)
Administration UNIX
766 / 918
Exemple :
#!/bin/sh if test ! "$PRIX" -eq 3 then echo "test vrai (!= 3)" else echo "test faux (= 3)" fi
c T.Besanon (v14.0.1025)
Administration UNIX
767 / 918
Exemple :
#!/bin/sh if test "$FORMATION" = "ARS" -a "$PROMO" = "2010" then echo "test vrai" else echo "test faux" fi
c T.Besanon (v14.0.1025)
Administration UNIX
768 / 918
Exemple :
#!/bin/sh if test "$FORMATION" = "ARS" -a \( "$PROMO" = "2010" -o \ "$PROMO" = "2009" \) then echo "test vrai" else echo "test faux" fi
14.22 Commande [
14.22 Commande [
forme normale :
#!/bin/sh if test "$1" = hello then echo hello world fi
forme crochet :
#!/bin/sh if [ "$1" = hello ] then echo hello world fi
La forme crochets se rapproche de la syntaxe traditionnelle des autres langages de programmation : En langage C :
if ( i == 3 { ... }
En langage PERL :
if ( $i == 3 { ... }
Administration UNIX
c T.Besanon (v14.0.1025)
770 / 918
14.22 Commande [
c T.Besanon (v14.0.1025)
Administration UNIX
771 / 918
14.22 Commande [
Bah oui. . . [ est une commande UNIX (il le faut pour assurer la cohrence de tout ce qui a t vu jusqu prsent). Vrication sur une machine FREEBSD :
% ls -li /bin/[ /bin/test 15422 -r-xr-xr-x 2 bin bin 15422 -r-xr-xr-x 2 bin bin
c T.Besanon (v14.0.1025)
Administration UNIX
772 / 918
14.22 Commande [
<-- manque le ]
c T.Besanon (v14.0.1025)
Administration UNIX
773 / 918
14.22 Commande [
Attention au mlange des syntaxes de la commande test et [ . Syntaxe correcte mais bizarre :
#!/bin/sh if test $ARS = 2010 ] then echo "OK" fi % ARS=2010 % export ARS % /tmp/exemple.sh OK
c T.Besanon (v14.0.1025)
Administration UNIX
774 / 918
14.23 Erreur de dbutant au sujet de la commande test Chapitre 14 Programmation en Bourne shell
Attention ne pas baptiser du nom test un de vos scripts vous. La commande test du systme pourrait avoir priorit sur votre script selon le PATH si bien que votre script ne tournerait jamais.
Baptisez vos scripts de test (et aussi excutables) de noms comme essai , etc.
c T.Besanon (v14.0.1025)
Administration UNIX
775 / 918
ATTENTION : si vous avez bien lu les pages prcdentes, vous aurez remarqu lemploi de guillemets :
#!/bin/sh if test "$1" = hello then echo hello world fi #!/bin/sh echo "Chiffre entre 1 et 5 -->" read reponse case "$reponse" in [1-5]) echo "OK" ;; *) echo "Erreur" exit 1 ;; esac exit 0
Pourquoi ?
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 776 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
777 / 918
Syntaxe fausse !
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 778 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
779 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
781 / 918
Explications : Utiliser loption -x de SH pour dmontrer le bon fonctionnement (voir page 707) :
#!/bin/sh -x if test "$1" = "cerise" then echo OK fi
c T.Besanon (v14.0.1025)
Administration UNIX
782 / 918
14.25 Structure de boucles : while, for, until Chapitre 14 Programmation en Bourne shell
Syntaxes :
while condition do bloc-cmdes-unix done for variable in list do bloc-cmdes-unix done until condition do bloc-cmdes-unix done
Ces 3 formes sont quivalentes. En pratique, on choisira la forme pour laquelle la condition sexprime le plus facilement ou le plus naturellement.
c T.Besanon (v14.0.1025)
Administration UNIX
783 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
785 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
786 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
788 / 918
Exemple 1 Changer lextension .txt en lextension .doc de tous les chiers du rpertoire courant :
#!/bin/sh for i in *.txt do mv $i basename $i .txt.doc done
c T.Besanon (v14.0.1025)
Administration UNIX
790 / 918
Exemple 2 Changer lextension .txt en lextension .doc de tous les chiers indiqus dans le chier liste.txt :
#!/bin/sh for i in cat liste.txt do mv $i basename $i .txt.doc done
A utiliser lorsque tous les chiers traiter ne sont pas dans le mme dossier.
c T.Besanon (v14.0.1025)
Administration UNIX
791 / 918
Exemple 3 Changer lextension .txt en lextension .doc de tous les chiers indiqus en paramtres sur la ligne de commande :
#!/bin/sh for i in "$@" do mv $i basename $i .txt.doc done
c T.Besanon (v14.0.1025)
Administration UNIX
792 / 918
Deux commandes du shell permettent de contrler le ux dexcution du code : break fait sortir prmaturment de la boucle courante break n fait sortir prmaturment de n niveaux de boucles imbriques continue fait nir prmaturment la boucle courante continue n fait nir prmaturment n niveaux de boucles imbriques
c T.Besanon (v14.0.1025)
Administration UNIX
793 / 918
#!/bin/sh for i in * do if [ ! -d "$i" ] then # Inutile de continuer si on na pas un rpertoire. continue fi cd $i blabla... cd .. done
c T.Besanon (v14.0.1025)
Administration UNIX
794 / 918
14.28 Enregistrement de session texte : commande script Chapitre 14 Programmation en Bourne shell
La commande script sert enregistrer le texte dune session shell. Syntaxe : script [fichier] A noter : Sil ny a pas de paramtre, alors le texte est enregistr dans le chier appel typescript . On trouve le caractre \r (cest--dire Ctrl-M) en n de chaque ligne de la session. En premire ligne se trouve la date du dbut denregistrement du texte. En dernire ligne se trouve la date de la n denregistrement du texte. (le nom de la commande est un faux ami et na aucun rapport avec la programmation de script ; do le lien avec ce chapitre malgr tout)
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 795 / 918
Exemple dutilisation :
% script Script started, file is typescript sh-2.05$ ls exemple.txt typescript sh-2.05$ Script done, file is typescript
% cat typescript Script started on Sun Oct 03 22:42:59 2004 sh-2.05$ ls exemple.txt typescript sh-2.05$ script done on Sun Oct 03 22:43:03 2004
c T.Besanon (v14.0.1025)
Administration UNIX
796 / 918
i u 5 3 2 s u 0
p n 3 d 0 c n 0
t O 2 t 2 4 i O 2
a 2 0 r
s c 0 e : \r p c 0
t t 0 \r 5 \n t t 0
a 4 \n 0 s
r 0 \n S : h d 0 \n
t 3 s u 5 o 3
e h n 7 2 n
d 2 -
. e 2
2 2 O M 0 2
o : . c E 5 o :
c T.Besanon (v14.0.1025)
Administration UNIX
797 / 918
Chapitre 15
c T.Besanon (v14.0.1025)
Administration UNIX
798 / 918
15.1 Problmes avec le Bourne SHELL Chapitre 15 Pratique de BASH (Bourne Again SHell)
BASH rpare certaines de ces maladresses. Mais BASH peut ne pas tre install sur votre machine par dfaut.
Ce chapitre abordera certaines spcicits de BASH. Se reporter au manuel de BASH pour la totalit des fonctionnalits que ce shell apporte.
c T.Besanon (v14.0.1025)
Administration UNIX
799 / 918
Sur LINUX, ce qui est le plus prs du Bourne SHELL est le shell qui sappelle ash .
c T.Besanon (v14.0.1025)
Administration UNIX
800 / 918
Au sein de BASH, on peut utiliser des raccourcis clavier. Les plus utiles : Ctrl-A : envoi en dbut de ligne Ctrl-E : envoi en n de ligne Ctrl-P : envoi sur la ligne prcdente Ctrl-N : envoi sur la ligne suivante Ctrl-B : envoi sur le caractre prcdent Ctrl-F : envoi sur le caractre suivant ches du clavier :
c T.Besanon (v14.0.1025)
Administration UNIX
801 / 918
15.3 Caractre
15.3 Caractre
Dans BASH, un caractre ~ suivi dun nom de login dutilisateur, dsigne le homedir de lutilisateur. Utilisable avec la commande cd le plus souvent. Mais dautres commandes peuvent lutiliser.
c T.Besanon (v14.0.1025)
Administration UNIX
802 / 918
15.3 Caractre
Dans un pur Bourne SHELL, il ny a pas dquivalent du mcanisme ~ : Par exemple sur SOLARIS :
% uname -rs SunOS 5.10 % echo $SHELL /bin/sh % cd ~besancon ~besancon: does not exist <-- Le shell veut manipuler ~besancon au lieu de /home/besancon
c T.Besanon (v14.0.1025)
Administration UNIX
803 / 918
Lemboitement des appels est possible dans BASH du fait de la distinction dcriture entre $( et ) .
c T.Besanon (v14.0.1025)
Administration UNIX
804 / 918
a= basename
pwd
FAUX
a= basename
pwd
a= basename
pwd
c T.Besanon (v14.0.1025)
Administration UNIX
805 / 918
a =$ ( b a s e n a m e
$(
pwd
))
CORRECT et lisible
c T.Besanon (v14.0.1025)
Administration UNIX
806 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
807 / 918
15.6 Caractres { }
15.6 Caractres { }
c T.Besanon (v14.0.1025)
Administration UNIX
809 / 918
15.8 Variable denvironnement PS1 Chapitre 15 Pratique de BASH (Bourne Again SHell)
En Bourne SHELL, le prompt est une chaine de caractres dnie par la variable PS1 et cette chaine est xe :
En BASH la variable denvironnement PS1 dnit le prompt du shell aussi mais la dnition est entirement paramtrable et permet davoir un prompt dynamique (variable).
c T.Besanon (v14.0.1025)
Administration UNIX
810 / 918
Extrait de la syntaxe : \e : partie du hostname jusquau premier . \H : hostname complet \u : nom de login \w : rpertoire courant avec $HOME abbrg en ~ \W : basename du rpertoire courant avec $HOME abbrg en ~ \$ : # si root, $ sinon
c T.Besanon (v14.0.1025)
Administration UNIX
811 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
812 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
813 / 918
15.9 Autres variables spciales Chapitre 15 Pratique de BASH (Bourne Again SHell)
Par exemple la variable denvironnement RANDOM renvoie un nombre alatoire entre 0 et 32767 :
% echo $RANDOM 29697 % echo $RANDOM 24299 % echo $RANDOM 15645
c T.Besanon (v14.0.1025)
Administration UNIX
814 / 918
En Bourne SHELL, on utilise $1 jusqu $9 . En BASH, on peut aller plus loin avec les critures ${1} , ${2} , . . ., ${9} , ${10} , ${11} , ${12} , . . . Par exemple :
#!/bin/bash echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 echo ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12}
ce qui donne :
% ./essai.sh a b c d e f g h i j k a b c d e f g h i a0 a1 a2 <-- incorrect a b c d e f g h i j k <-- correct
c T.Besanon (v14.0.1025)
Administration UNIX
815 / 918
Il faut indiquer que le script doit sexcuter avec BASH si vous utilisez certaines spcicits de BASH qui nexistent pas en Bourne SHELL.
Script en BASH :
#!/bin/bash # blabla ...
c T.Besanon (v14.0.1025)
Administration UNIX
816 / 918
Chapitre 16
c T.Besanon (v14.0.1025)
Administration UNIX
817 / 918
16.1 Introduction
16.1 Introduction
Nom awk dduit des noms des auteurs (Aho, Weinberger, Kernighan) Cest un utilitaire recherchant des motifs dans un chier et ralisant des oprations sur les lignes rpondant aux critres. Cest plus gnralement un mini langage de programmation la syntaxe proche du langage C. Il est trs souvent utilis pour raliser des ltres sur des chiers. Se reporter un manuel disponible en franais :
ftp://ftp.imag.fr/pub/DOC.UNIX/AWK/awk.pdf ftp://ftp.imag.fr/pub/DOC.UNIX/AWK/awk.ps.gz
c T.Besanon (v14.0.1025)
Administration UNIX
818 / 918
Syntaxe : awk [options] fichiers Options intressantes : option -FC o C est le caractre sparateur de champs option -f exemple.awk pour indiquer le chier exemple.awk contenant le programme awk excuter
c T.Besanon (v14.0.1025)
Administration UNIX
819 / 918
Un programme AWK peut tre compos de : dnition de fonctions instructions Dnition dune fonction
function nom(paramtres) { instructions }
caractre sparateur de champs nombre de champs sur la ligne courante numro dordre de la ligne courante caractre sparateur de lignes caractre sparateur de champs, en sortie caractre sparateur de lignes, en sortie nom du chier en cours de traitement variables denvironnement
c T.Besanon (v14.0.1025)
Administration UNIX
821 / 918
Les masques conditionnent les instructions excuter sur chaque ligne. Les masques sont valus lors de la lecture de chaque ligne. Seuls les instructions associes aux masques actifs sont excutes pour chaque ligne. Principaux masques : BEGIN END /expression rationnelle/
c T.Besanon (v14.0.1025)
Administration UNIX
822 / 918
incrmentation dcrmentation ngation logique multiplication, division, reste, addition, soustraction infriorit, supriorit galit, dirence ET logique OU logique
c T.Besanon (v14.0.1025)
Administration UNIX
823 / 918
Test
if (condition) instruction [ else instruction]
Boucles
while (condition) instruction do instruction while(condition) for (expr1; expr2; expr3) instruction
Contrle de boucles
break continue
c T.Besanon (v14.0.1025)
Administration UNIX
824 / 918
Terminaison
exit [code_de_retour]
Achage de donnes
print [expressions] [>fichier] printf format, expressions [>fichier]
c T.Besanon (v14.0.1025)
Administration UNIX
825 / 918
c T.Besanon (v14.0.1025)
Administration UNIX
826 / 918
16.9 Exemples
16.9 Exemples
Suppression de toutes les lignes dont le premier champ est gal celui de la ligne prcdente
awk {if ( $1 != prev ) { print; prev = $1; } }
c T.Besanon (v14.0.1025)
Administration UNIX
827 / 918
16.9 Exemples
Vrication que toutes les lignes ont le mme nombre de champs que la premire
BEGIN { nberr = 0} { if (NR == 1) nb = NF; else if ( nb != NF ) nberr++; } END { if ( nberr != 0 ) print nberr , " enregistrements incorrects "; }
c T.Besanon (v14.0.1025)
Administration UNIX
828 / 918
16.10 Annexe 1
16.10 Annexe 1
Ci joint dans la version imprime de ce cours, une news USENET expliquant en quoi CSH est un mauvais shell.
c T.Besanon (v14.0.1025)
Administration UNIX
829 / 918
Path: senatorbedfellow.mit.edu!bloombeacon.mit.edu!news.mathworks.com!uunet!in1.uu.net!csnews!mox.perl.com!tchrist From: Tom Christiansen <tchrist@mox.perl.com> Newsgroups: comp.unix.shell,comp.unix.questions,comp.unix.programmer,comp.answers,news.answers,comp.infosystems.www.authoring.cgi Subject: Csh Programming Considered Harmful FollowupTo: comp.unix.shell Date: 6 Oct 1996 14:03:18 GMT Organization: Perl Training and Consulting Lines: 558 Approved: newsanswersrequest@MIT.Edu Expires: Sun, 1 Dec 1996 12:00:00 GMT MessageID: <538e76$8uq$1@csnews.cs.colorado.edu> NNTPPostingHost: perl.com Originator: tchrist@mox.perl.com Xref: senatorbedfellow.mit.edu comp.unix.shell:42768 comp.unix.questions:118257 comp.unix.programmer:50081 comp.answers: 21606 news.answers:83685 comp.infosystems.www.authoring.cgi:44411 Archivename: unixfaq/shell/cshwhynot Version: $Id: cshfaq,v 1.7 95/09/28 12:52:17 tchrist Exp Locker: tchrist $ The following periodic article answers in excruciating detail the frequently asked question "Why shouldnt I program in csh?". It is available for anon FTP from perl.com in /pub/perl/versus/csh.whynot.gz *** CSH PROGRAMMING CONSIDERED HARMFUL *** Resolved: The csh is a tool utterly inadequate for programming, and its use for such purposes should be strictly banned! I am continually shocked and dismayed to see people write test cases, install scripts, and other random hackery using the csh. Lack of proficiency in the Bourne shell has been known to cause errors in /etc/rc and .cronrc files, which is a problem, because you *must* write these files in that language. The csh is seductive because the conditionals are more Clike, so the path of least resistance is chosen and a csh script is written. Sadly, this is a lost cause, and the programmer seldom even realizes it, even when they find that many simple things they wish to do range from cumbersome to impossible in the csh. 1. FILE DESCRIPTORS The most common problem encountered in csh programming is that you cant do filedescriptor manipulation. All you are able to do is redirect stdin, or stdout, or dup stderr into stdout. Bournecompatible shells offer you an abundance of more exotic possibilities. 1a. Writing Files In the Bourne shell, you can open or dup arbitrary file descriptors. For example, exec 2>errs.out means that from then on, stderr goes into errs file. Or what if you just want to throw away stderr and leave stdout alone? Pretty simple operation, eh? cmd 2>/dev/null Works in the Bourne shell. attempt like this: In the csh, you can only make a pitiful
(cmd > /dev/tty) >& /dev/null But who said that stdout was my tty? So its wrong. operation *CANNOT BE DONE* in the csh. This simple
Along these same lines, you cant direct error messages in csh scripts out stderr as is considered proper. In the Bourne shell, you might say: echo "$0: cannot find $file" 1>&2 but in the csh, you cant redirect stdout out stderr, so you end up doing something silly like this: sh c echo "$0: cannot find $file" 1>&2 1b. Reading Files In the csh, all youve got is $<, which reads a line from your tty. What if youve redirected stdin? Tough noogies, you still get your tty, which you really cant redirect. Now, the read statement in the Bourne shell allows you to read from stdin, which catches redirection. It also means that you can do things like this: exec 3<file1 exec 4<file2 Now you can read from fd 3 and get lines from file1, or from file2 through fd 4. In modern, Bournelike shells, this suffices: read some_var 0<&3 read another_var 0<&4 Although in older ones where read only goes from 0, you trick it: exec exec exec exec 5<&0 0<&3; 0<&4; 0<&5 # save old stdin read some_var read another_var # restore it
In the Bourne shell, you can close file descriptors you dont want open, like 2>&, which isnt the same as redirecting it to /dev/null. 1d. More Elaborate Combinations Maybe you want to pipe stderr to a command and leave stdout alone. Not too hard an idea, right? You cant do this in the csh as I mentioned in 1a. In a Bourne shell, you can do things like this: exec 3>&1; grep yyy xxx 2>&1 1>&3 3>& | sed s/file/foobar/ 1>&2 3>& grep: xxx: No such foobar or directory Normal output would be unaffected. The closes there were in case something really cared about all its FDs. We send stderr to sed, and then put it back out 2. Consider the pipeline: A | B | C You want to know the status of C, well, thats easy: its in $?, or $status in csh. But if you want it from A, youre out of luck if youre in the csh, that is. In the Bourne shell, you can get it, although doing so is a bit tricky. Heres something I had to do where I ran dds stderr into a grep v pipe to get rid of the records in/out noise, but had to return the dds exit status, not the greps: device=/dev/rmt8 dd_noise=^[09]+\+[09]+ records (in|out)$ exec 3>&1 status=((dd if=$device ibs=64k 2>&1 1>&3 3>& 4>&; echo $? >&4) | egrep v "$dd_noise" 1>&2 3>& 4>&) 4>&1 exit $status; The csh has also been known to close all open file descriptors besides the ones it knows about, making it unsuitable for applications that intend to inherit open file descriptors. 2. COMMAND ORTHOGONALITY 2a. Builtins The csh is a horrid botch with its builtins. You cant put them together in many reasonable ways. Even simple little things like this: % time | echo which while nonsensical, shouldnt give me this message: Reset tty pgrp from 9341 to 26678 Others are more fun: % sleep 1 | while while: Too few arguments. [5] 9402 % jobs [5] 9402 Done
sleep |
Some can even hang your shell. Try typing ^Z while youre sourcing something, or redirecting a source command. Just make sure you have another window handy. Or try % history | more on some systems. Aliases are not evaluated everywhere you would like them do be: % alias lu ls u % lu HISTORY News bin Mail TEX dehnung % repeat 3 lu lu: Command not found. lu: Command not found. lu: Command not found. % time lu lu: Command not found. 2b. Flow control You cant mix flowcontrol and commands, like this: who | while read line; do echo "gotta $line" done You cant combine multiline constructs in a csh using semicolons. Theres no easy way to do this alias cmd if (foo) then bar; else snark; endif You cant perform redirections with if statements that are evaluated solely for their exit status: if ( { grep vt100 /etc/termcap > /dev/null } ) echo ok And even pipes dont work:
fortran hpview
lib logs
lyrics mbox
misc netlib
tex
if ( { grep vt100 /etc/termcap | sed s/$/### } ) echo ok But these work just fine in the Bourne shell: if grep vt100 /etc/termcap > /dev/null ; then echo ok; fi if grep vt100 /etc/termcap | sed s/$/###/ ; then echo ok; fi Consider the following reasonable construct: if ( { command1 | command2 } ) then ... endif The output of command1 wont go into the input of command2. You will get the output of both commands on standard output. No error is raised. In the Bourne shell or its clones, you would say if command1 | command2 ; then ... fi 2c. Stupid parsing bugs Certain reasonable things just dont work, like this: % kill 1 cat foo cat foo: Ambiguous. But this is ok: % /bin/kill 1 cat foo If you have a stopped job: [2] Stopped rlogin globhost
You should be able to kill it with % kill %?glob kill: No match but % fg %?glob works. White space can matter: if(expr) may fail on some versions of csh, while if (expr) works! Your vendor may have attempted to fix this bug, but odds are good that their csh still wont be able to handle if(0) then if(1) then echo A: got here else echo B: got here endif echo We should never execute this statement endif
3. SIGNALS In the csh, all you can do with signals is trap SIGINT. In the Bourne shell, you can trap any signal, or the endofprogram exit. For example, to blow away a tempfile on any of a variety of signals: $ trap rm f /usr/adm/tmp/i$$ ; echo "ERROR: abnormal exit"; exit 1 2 3 15 $ trap rm tmp.$$ 0 # on program exit
4. QUOTING You cant quote things reasonably in the csh: set foo = "Bill asked, \"Hows tricks?\"" doesnt work. This makes it really hard to construct strings with mixed quotes in them. In the Bourne shell, this works just fine. In fact, so does this: cd /mnt; /usr/ucb/finger m s ls \u\ Dollar signs cannot be escaped in double quotes in the csh. Ug.
set foo = "this is a \$dollar quoted and this is $HOME not quoted" dollar: Undefined variable. You have to use backslashes for newlines, and its just darn hard to get them into strings sometimes. set foo = "this \ and that"; echo $foo
this and that echo "$foo" Unmatched ". Say what? You dont have these problems in the Bourne shell, where its just fine to write things like this: echo This is some text that contains several newlines. Consider:
As distributed, quoting history references is a challenge. % mail adec23!alberta!pixel.Convex.COM!tchrist alberta!pixel.Convex.COM!tchri: Event not found. 5. VARIABLE SYNTAX
Theres this big difference between global (environment) and local (shell) variables. In csh, you use a totally different syntax to set one from the other. In the Bourne shell, this VAR=foo cmds args is the same as (export VAR; VAR=foo; cmd args) or cshs (setenv VAR; cmd args) You cant use :t, :h, etc on envariables. echo Try testing with $SHELL:t Its really nice to be able to say ${PAGERmore} or FOO=${BAR:${BAZ}} to be able to run the users PAGER if set, and more otherwise. You cant do this in the csh. It takes more verbiage. You cant get the process number of the last background command from the csh, something you might like to do if youre starting up several jobs in the background. In the Bourne shell, the pid of the last command put in the background is available in $!. The csh is also flaky about what it does when it imports an environment variable into a local shell variable, as it does with HOME, USER, PATH, and TERM. Consider this: % setenv TERM /bin/ls l / > /dev/tty % csh f And watch the fun! 6. EXPRESSION EVALUATION Consider this statement in the csh: if ($?MANPAGER) setenv PAGER $MANPAGER Despite your attempts to only set PAGER when you want to, the csh aborts: MANPAGER: Undefined variable. Thats because it parses the whole line anyway AND EVALUATES IT! You have to write this: if ($?MANPAGER) then setenv PAGER $MANPAGER endif Thats the same problem you have here: if ($?X && $X == foo) echo ok X: Undefined variable This forces you to write a couple nested if statements. This is highly undesirable because it renders shortcircuit booleans useless in situations like these. If the csh were the really Clike, you would expect to be able to safely employ this kind of logic. Consider the common C construct: if (p && p>member) Undefined variables are not fatal errors in the Bourne shell, so this issue does not arise there. While the csh does have builtin expression handling, its not what you might think. In fact, its space sensitive. This is an error @ a = 4/2 but this is ok @ a = 4 / 2 The ad hoc parsing csh employs fouls you up in other places as well. Consider: % alias foo echo hi ; foo Watch:
7. ERROR HANDLING Wouldnt it be nice to know you had an error in your script before you ran it? Thats what the n flag is for: just check the syntax. This is especially good to make sure seldom taken segments of code code are correct. Alas, the csh implementation of this doesnt work. Consider this statement: exit (i) Of course, they really meant exit (1) or just exit 1 Either shell will complain about this. clause, like so: #!/bin/csh fn if (1) then exit (i) endif The csh tells you theres nothing wrong with this script. The equivalent construct in the Bourne shell, on the other hand, tells you this: #!/bin/sh n if (1) then exit (i) endif /tmp/x: syntax error at line 3: ( unexpected But if you hide this in an if
RANDOM BUGS Heres one: fg %?string ^Z kill %?string No match. Huh? Heres another !%s%x%s Coredump, or garbage. If you have an alias with backquotes, and use that in backquotes in another one, you get a coredump. Try this: % repeat 3 echo "/vmu*" /vmu* /vmunix /vmunix What??? Heres another one: % mkdir tst % cd tst % touch [foo]bar % foreach var ( * ) > echo "File named $var" > end foreach: No match. 8. SUMMARY While some vendors have fixed some of the cshs bugs (the tcsh also does much better here), many have added new ones. Most of its problems can never be solved because theyre not actually bugs per se, but rather the direct consequences of braindead design decisions. Its inherently flawed. Do yourself a favor, and if you *have* to write a shell script, do it in the Bourne shell. Its on every UNIX system out there. However, behavior can vary. There are other possibilities. The Korn shell is the preferred programming shell by many sh addicts, but it still suffers from inherent problems in the Bourne shells design, such as parsing and evaluation horrors. The Korn shell or its publicdomain clones and supersets (like bash) arent quite so ubiquitous as sh, so it probably wouldnt be wise to write a sharchive in them that you post to the net. When 1003.2 becomes a real standard that companies are forced to adhere to, then well be in much better shape. Until then, well be stuck with bugincompatible versions of the sh lying about. The Plan 9 shell, rc, is much cleaner in its parsing and evaluation; it is not widely available, so youd be significantly sacrificing portability. No vendor is shipping it yet.
If you dont have to use a shell, but just want an interpreted language, many other free possibilities present themselves, like Perl, REXX, TCL, Scheme, or Python. Of these, Perl is probably the most widely available on UNIX (and many other) systems and certainly comes with the most extensive UNIX interface. Increasing numbers vendors ship Perl with their standard systems. (See the comp.lang.perl FAQ for a list.) If you have a problem that would ordinarily use sed or awk or sh, but it exceeds their capabilities or must run a little faster, and you dont want to write the silly thing in C, then Perl may be for you. You can get at networking functions, binary data, and most of the C library. There are also translators to turn your sed and awk scripts into Perl scripts, as well as a symbolic debugger. Tchrists personal rule of thumb is that if its the size that fits in a Makefile, it gets written in the Bourne shell, but anything bigger gets written in Perl. See the comp.lang.{perl,rexx,tcl} newsgroups for details about these languages (including FAQs), or David Muir Sharnoffs comparison of freely available languages and tools in comp.lang.misc and news.answers. NOTE: Doug Hamilton <hamilton@bix.com> has a program that he sells for profit for little toy nonUNIX systems. He calls it csh or the hamilton csh, but its not a csh as its neither bug nor feature compatible with the real csh. Actually, hes fixed a great deal, but in doing so, has created a totally different shell. Tom Christiansen Perl Consultant, Gamer, Hiker tchrist@mox.perl.com "Espousing the eponymous /cgibin/perl.exe?FMH.pl execution model is like reading a suicide note three days too late." Tom Christiansen <tchrist@mox.perl.com>
Chapitre 17
Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
830 / 918
17 Langage PERL
17.1 Avant-propos
17.1 Avant-propos
Ce cours fait lhypothse que lon sait programmer. Ce cours fait lhypothse que lon connait les bases du langage C. Ce cours fait lhypothse que lon connait certaines commandes UNIX dont principalement grep et ses expressions rgulires. Ce cours dure 4 demi journes en 2010-2011 : pour gagner du temps, ce cours va donc lessentiel et ne couvre pas lintgralit des syntaxes autorises par PERL. On se cantonnera aux critures les plus simples, les plus propres, les plus proches de celles du langage C et les plus utiles. Ce cours naborde pas les variables de type references (genre de pointeurs de structure la C).
c T.Besanon (v14.0.1025)
Administration UNIX
831 / 918
17 Langage PERL
17.2 Prsentation
17.2 Prsentation
Version pour WINDOWS tlchargeable sur http://www.activestate.com (comporte des extensions adaptes WINDOWS ; par exemple : manipulation de la base de registres)
c T.Besanon (v14.0.1025)
Administration UNIX
832 / 918
17 Langage PERL
17.2 Prsentation
Langage de script (donc = format texte) dont la forme sera identique sur UNIX, sur MACOS et sur WINDOWS :
#!/usr/bin/perl # Ceci est un commentaire. printf("Bonjour, il fait froid !\n") ;
Extension .pl par convention. Pas de compilation. Le chier doit tre excutable ( chmod a+x exemple.pl ). Un commentaire dbute par # .
c T.Besanon (v14.0.1025)
Administration UNIX
833 / 918
17 Langage PERL
17.2 Prsentation
Les principales ressemblances avec le langage C : une instruction se termine toujours par un point-virgule ; bloc dinstructions dlimites par des accolades { et } nommage des variables possibilit davoir des fonctions, mme notation pour appeler les fonctions il reste une notion trs puissante de pointeur Les principales dirences par rapport au langage C : langage de plus haut niveau utilisation plus puissante des tableaux pas de gestion par lutilisateur de la mmoire pas de typage des variables
c T.Besanon (v14.0.1025)
Administration UNIX
834 / 918
17 Langage PERL
17.2 Prsentation
CONCLUSION : on peut programmer en langage PERL quasiment comme en langage C. Pour tre propre et lisible, on adoptera une approche langage C.
c T.Besanon (v14.0.1025)
Administration UNIX
835 / 918
17 Langage PERL
17.3 Documentations
17.3 Documentations
De nombreuses pages de manuel fournies : man perl : point de renvoi vers dautres pages de manuel (102 sur ma machine !) man perlfunc : fonctions proposes de base dans PERL man perldsc : documentation des structures compliques comme les tableaux de tableaux, les tableaux de listes associatifs, les tableaux associatifs de tableaux, etc. man perlref : descriptif de ce que sont les rfrences PERL (pointeurs du langage C en gros) etc.
c T.Besanon (v14.0.1025)
Administration UNIX
836 / 918
17 Langage PERL
17.3 Documentations
c T.Besanon (v14.0.1025)
Administration UNIX
837 / 918
17 Langage PERL
17.3 Documentations
c T.Besanon (v14.0.1025)
Administration UNIX
838 / 918
17 Langage PERL
RICHESSE DE PERL = la multitude de modules dextension tlchargeables sur http ://www.cpan.org Site : CPAN = Comprehensive PERL Archive Network ; voir http://www.cpan.org Recherche de modules sur http://search.cpan.org
c T.Besanon (v14.0.1025)
Administration UNIX
839 / 918
17 Langage PERL
Exemple : appel au module permettant dcrire des chiers EXCEL au format natif XLS :
#!/usr/bin/perl use strict ; use Spreadsheet::WriteExcel ; ...
c T.Besanon (v14.0.1025)
Administration UNIX
840 / 918
17 Langage PERL
Lcriture use :
#!/usr/bin/perl use module1 ; use module2 ; ...
c T.Besanon (v14.0.1025)
Administration UNIX
841 / 918
17 Langage PERL
En PERL, par dfaut, on peut faire appel une variable sans lavoir dnie34 : cest source derreurs ! :
#!/usr/bin/perl $aaa = 3 ; $bbb = 4 ; $r = $aa + $bbb ;
Comme en shell. Par dfaut, une variable PERL a la valeur undef cest--dire 0 ou chaine vide selon le contexte.
4 c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 842 / 918
17 Langage PERL
Pour cela : employer le module strict qui rend lcriture du script plus stricte :
#!/usr/bin/perl use strict ; use module1 ; use module2 ; ...
Les variables doivent alors tre dclares avant dtre utilises. La syntaxe pour les dclarer est :
my $variable ; my @tableau ; my %hash ; # voir page 846 # voir page 854 # voir page 861
c T.Besanon (v14.0.1025)
Administration UNIX
843 / 918
17 Langage PERL
Par exemple :
#!/usr/bin/perl use strict ; my $aaa ; my $bbb ; my $r ; $aaa = 3 ; $bbb = 4 ; $r = $aa + $bbb ;
Par exemple :
#!/usr/bin/perl use strict ; my $aaa = 3 ; my $bbb = 4 ; my $r ; $r = $aa + $bbb ;
17 Langage PERL
#!/usr/bin/perl use strict ; use module1 ; use module2 ; sub mafonction1 { ... } sub main { ... } main() ;
c T.Besanon (v14.0.1025)
dnitions des fonctions de lutilisateur dnition de la fonction main appel main pour lancer le programme
Administration UNIX
845 / 918
17 Langage PERL
Le caractre $ spcie une variable contenant une valeur numrique ou une chaine de caractres. Mmes rgles quen langage C pour nommer la variable : Caractres autoriss dans le nom : lettres, chires, underscore _ . Le premier caractre du nom ne peut pas tre un chire. Exemples :
$a = 10; $_b = 20; $s1 = "Bonjour tout le monde !";
c T.Besanon (v14.0.1025)
Administration UNIX
846 / 918
17 Langage PERL
Pas de distinction entre nombres entiers et nombres ottants. Tous les calculs internes sont faits en nombres ottants.
$a $a $a $a $a $a
= = = = = =
c T.Besanon (v14.0.1025)
Administration UNIX
847 / 918
17 Langage PERL
Incrment automatique :
$a++ ; $a = $b++ ; $b-- ;
c T.Besanon (v14.0.1025)
Administration UNIX
848 / 918
17 Langage PERL
Une chaine de caractres peut tre aussi longue que lon veut. Chaines de caractres entre apostrophes : aucun traitement sur le contenu ( part pour backslash).
$s1 = jean ; $s2 = ; $s3 = Aujourd\hui ; $s4 = Bonjour\n ; $s5 = Bonjour. Il pleut. ; $s6 = \\ ;
c T.Besanon (v14.0.1025)
Administration UNIX
849 / 918
17 Langage PERL
Une chaine de caractres peut tre aussi longue que lon veut. Chaines de caractres entre guillemets " : remplacement des caractres de formatage ainsi que des variables (terme technique = interpolation).
= = = =
c T.Besanon (v14.0.1025)
Administration UNIX
850 / 918
17 Langage PERL
Action Nouvelle ligne Retour Tabulation Backspace Tabulation verticale Escape Backslash Guillemets Bruit dune cloche
c T.Besanon (v14.0.1025)
Administration UNIX
851 / 918
17 Langage PERL
Concatnation de 2 chaines :
$s = "${s1}${s2}" ; $s = $s1 . $s2 ;
Rptition :
$s = "abc" x 3 ; # --> "abcabcabc"
c T.Besanon (v14.0.1025)
Administration UNIX
852 / 918
17 Langage PERL
Mmes squences de formatage quen langage C. Il existe une fonction print() mais autant utiliser printf() .
c T.Besanon (v14.0.1025)
Administration UNIX
853 / 918
17 Langage PERL
Le caractre @ spcie une variable liste (ou tableau). Mmes rgles quen langage C pour nommer la variable : Caractres autoriss dans le nom : lettres, chires, underscore _ . Le premier caractre du nom ne peut pas tre un chire. Exemples :
@a = ("un", "deux", "trois", "quatre") ; $elt = $a[0] ; $elt = $a[3] ; # un # quatre
c T.Besanon (v14.0.1025)
Administration UNIX
854 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
855 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
856 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
857 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
858 / 918
17 Langage PERL
En langage C :
int main(int argc, char* argv[]) { ... }
c T.Besanon (v14.0.1025)
Administration UNIX
859 / 918
17 Langage PERL
ATTENTION : dcalage dun cran par rapport au langage C (ou au shell) ! : $ARGV[0] est le premier argument ( $1 en shell) $ARGV[1] est le deuxime argument ( $2 en shell) etc.
c T.Besanon (v14.0.1025)
Administration UNIX
860 / 918
17 Langage PERL
Les tableaux/listes utilisent des valeurs numriques pour rfrencer les donnes : par exemple $a[0] par exemple $a[4] par exemple $a[-1] par exemple $a[-2]
PERL ore la notion de listes associatives en plus des tableaux classiques. Les listes associatives utilisent des chaines de caractres pour rfrencer les donnes. ULTRA PUISSANT !
Pas dquivalent dans le langage C, do lintrt.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 861 / 918
17 Langage PERL
Par exemple :
$nom{192.168.216.1} = "216-pc01" ; $mails{besancon} = 34 ; $mails{"besancon"} = 34 ; $mails{besancon} = 34 ; $n = $mails{besancon} ;
c T.Besanon (v14.0.1025)
Administration UNIX
862 / 918
17 Langage PERL
Cest le caractre % qui va dsigner une liste associative. Mmes rgles quen langage C pour nommer la variable : Caractres autoriss dans le nom : lettres, chires, underscore _ . Le premier caractre du nom ne peut pas tre un chire. Exemples :
%a = { "nom" => "Besanon", "prenom" => "Thierry", "cours" => uc("ars"), "annee" => 2009, } ;
c T.Besanon (v14.0.1025)
Administration UNIX
863 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
864 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
865 / 918
17 Langage PERL
printf("%s\n", $ENV{HOME}) ;
c T.Besanon (v14.0.1025)
Administration UNIX
866 / 918
17 Langage PERL
Il ny a pas de type BOOLEEN en PERL. Par contre, sont lquivalent de FAUX (FALSE) les valeurs : undef "" 0 "0" 0 Le reste est donc VRAI (TRUE).
c T.Besanon (v14.0.1025)
Administration UNIX
867 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
868 / 918
17 Langage PERL
Attention : les accolades sont obligatoires mme pour une seule ligne ! Langage C :
if ( expression-boolenne ) ligne ;
Langage PERL :
if ( expression-boolenne ) { ligne ; }
c T.Besanon (v14.0.1025)
Administration UNIX
869 / 918
17 Langage PERL
Par exemple :
printf("%s\n", $nom) if ( $nom ne "" ) ;
quivalent :
if ( $nom ne "" ) { printf("%s\n", $nom) ; }
c T.Besanon (v14.0.1025)
Administration UNIX
870 / 918
17 Langage PERL
Comme en langage C. Tant que lexpression est vraie alors on excute le code :
while ( expression-boolenne ) { lignes; }
Par exemple :
$i = 0 ; while ( $i < 10 ) { $i++ ; }
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 871 / 918
17 Langage PERL
Par exemple :
$i = 0 ; until ( $i == 10 ) { $i++ ; }
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 872 / 918
17 Langage PERL
Trs proche du langage C. On initialise une variable, on lincrmente et on teste la valeur de la variable chaque itration :
for ( initialisation ; test ; increment ) { lignes; }
Par exemple :
for( $i = 0 ; $i < 10 ; $i++ ) { printf("%d\n", $i) ; }
c T.Besanon (v14.0.1025)
Administration UNIX
873 / 918
17 Langage PERL
Prends une liste de donnes en entre et en assigne une dans une variable chaque itration jusqu ce que la liste soit vide :
foreach $var (@liste) { lignes; }
Par exemple :
@liste = ("un", "deux", "trois") ; foreach $i (@liste) { printf("%s\n", $i) ; }
c T.Besanon (v14.0.1025)
Administration UNIX
874 / 918
17 Langage PERL
next : fait passer au tour suivant de la boucle courante last : fait sortir de la boucle courante
c T.Besanon (v14.0.1025)
Administration UNIX
875 / 918
17 Langage PERL
Oprateur Egalit Pas dgalit Plus petit que plus grand que Plus petit ou gal Plus grand ou gal
Pour chaines eq ne lt gt le ge
c T.Besanon (v14.0.1025)
Administration UNIX
876 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
877 / 918
17 Langage PERL
-r : teste si lobjet est readable -w : teste si lobjet est writable -x : teste si lobjet est executable -z : teste si le chier existe -s : teste si le chier existe et a une taille > 0 -f : teste si lobjet est un chier -d : teste si lobjet est un rpertoire -l : teste si lobjet est un lien symbolique
if ( -f $objet ) { ... }
c T.Besanon (v14.0.1025)
Administration UNIX
878 / 918
17 Langage PERL
PERL utilise des le descriptors comme en langage C. Un le descriptor PERL scrit sous la forme dune variable spciale car elle nest pas prcde du signe $ . File descriptors PERL prdnis : STDIN STDOUT STDERR
c T.Besanon (v14.0.1025)
Administration UNIX
879 / 918
17 Langage PERL
File descriptor nomm STDIN . Pour rcuprer une seule ligne dans une variable :
$ligne = <STDIN> ;
c T.Besanon (v14.0.1025)
Administration UNIX
880 / 918
17 Langage PERL
$ligne contiendra ananas\n (en reprenant lcriture la C de la n de ligne) Utiliser chomp() pour retirer le dernier \n :
$ligne = <STDIN> ; chomp($ligne) ;
ou
chomp(@lignes = <STDIN>) ;
c T.Besanon (v14.0.1025)
Administration UNIX
881 / 918
17 Langage PERL
Pour traiter une par une les lignes lues sur STDIN :
while ( $ligne = <STDIN> ) { # traitement de la ligne mafonction($ligne) ; }
c T.Besanon (v14.0.1025)
Administration UNIX
882 / 918
17 Langage PERL
File descriptor nomm STDOUT . Utilis par dfaut par la commande printf() comme en langage C.
c T.Besanon (v14.0.1025)
Administration UNIX
883 / 918
17 Langage PERL
PERL
printf STDERR ("%s\n", $erreur) ;
c T.Besanon (v14.0.1025)
Administration UNIX
884 / 918
17 Langage PERL
Syntaxe ressemblant celle du shell : Pour ouvrir en lecture le chier exemple.txt en utilisant un le descriptor qui sappellera DATA :
open( DATA, "< exemple.txt" ) ;
c T.Besanon (v14.0.1025)
Administration UNIX
885 / 918
17 Langage PERL
Syntaxes ressemblant celles du shell : Pour ouvrir en criture cest--dire crer ou craser le chier exemple.txt en utilisant un le descriptor qui sappellera DATA :
open( DATA, "> exemple.txt" ) ;
Pour ouvrir en criture et crire la n du chier exemple.txt en utilisant un le descriptor qui sappellera DATA :
open( DATA, ">> exemple.txt" ) ;
c T.Besanon (v14.0.1025)
Administration UNIX
886 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
887 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
888 / 918
17 Langage PERL
ATTENTION : la lecture de DATA ramne aussi le caractre n de ligne avec la ligne. $ligne contiendra ananas\n (en reprenant lcriture la C de la n de ligne)
c T.Besanon (v14.0.1025)
Administration UNIX
889 / 918
17 Langage PERL
Pour crire dans un chier que lon a ouvert via le le descriptor DATA :
c T.Besanon (v14.0.1025)
Administration UNIX
890 / 918
17 Langage PERL
#include <stdio.h> main() { FILE *fd; char s[128] = "bonjour" ; if ( (fd = fopen("data.txt", "w")) == NULL ) { fprintf(stderr, "fopen(): failed\n"); exit(1); } fprintf(fd, "%s\n", s) ; fclose(fd); }
c T.Besanon (v14.0.1025)
Administration UNIX
891 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
892 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
893 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
894 / 918
17 Langage PERL
Dans lexemple suivant, on met en place le lien symbolique data sur le chier data.log :
symlink( "data.log", "data" ) ;
Nota : Il est possible dobtenir le lien point par un lien symbolique en utilisant la fonction readlink() .
c T.Besanon (v14.0.1025)
Administration UNIX
895 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
896 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
897 / 918
17 Langage PERL
PRE = PERL Regular Expressions : Trs compltes Trs puissantes Trs complexes si besoin Grande rputation Documentations : man perlre man perlrequick man perlretut Il existe des librairies de programmation C fournissant ces expressions rgulires de PERL : PCRE (PERL Compatible Regular Expressions). Cf http ://www.pcre.org
c T.Besanon (v14.0.1025)
Administration UNIX
898 / 918
17 Langage PERL
Caractres a : le caractre indiqu a ; etc. . : un caractre quelconque sauf retour charriot Classes de caractres [...] : liste des possibilits pour une position [^...] : liste des caractres interdits pour une position Classes prdnies \d : chire = [0-9] ( \D : oppos) \w : caractre alphanumrique = [A-Za-z0-9_] ( \W : oppos) \s : espace = [\f\t\n\r ] ( \S : oppos)
c T.Besanon (v14.0.1025)
Administration UNIX
899 / 918
17 Langage PERL
Quanticateurs * : 0 ou plus fois le motif prcdent + : 1 ou plus fois le motif prcdent ? : le motif prcdent est facultatif {m,n} : rptition du motif prcdent entre m fois au minimum et n fois au maximum Positions ^ : en dbut de ligne $ : en n de ligne \b : word boundary : en extrmit de mot \B : non word boundary : en milieu de mot \A : en dbut de mot \Z : en n de mot
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 900 / 918
17 Langage PERL
Groupes / Backreferences (...) : regroupement du motif \1 : rappel du motif mmoris numro 1 \17 : rappel du motif mmoris numro 17 (nen abusez pas) Utilisation de backreference possible au niveau de la regexp. Par exemple :
<img src=(["]).*\1>
Une fois une regexp avec des groupes utiliss, on peut rappeler les groupes mmoriss via $1 , $2 , etc.
c T.Besanon (v14.0.1025) Administration UNIX ARS 2011 2012 Partie 1 901 / 918
17 Langage PERL
Prcdence
1 2 3 4
ananas|cerise
c T.Besanon (v14.0.1025)
Administration UNIX
902 / 918
17 Langage PERL
Oprateurs PERL sur les RE m/RE/modifiers : match oprateur ( m facultatif) s/RE/PATTERN/modifiers : substitute oprateur On peut changer les sparateurs :
m/RE/ m(RE) m<RE> m{RE} s/RE/PATTERN/ s(RE)(PATTERN) s<RE><PATTERN> s{RE}{PATTERN}
c T.Besanon (v14.0.1025)
Administration UNIX
903 / 918
17 Langage PERL
Variables spciales $ : partie gauche de ce qui matche $& : ce qui matche $ : partie droite de ce qui matche
Interpolation /RE/ : les substitutions y sont possibles comme pour une chaine entre guillemets
$a = "toto" ; if ( /^($a)/ ) { ...}
c T.Besanon (v14.0.1025)
Administration UNIX
904 / 918
17 Langage PERL
Pour dcouper vos chaines de caractres suivant une expression rgulire : Syntaxe : @liste = split(/RE/, $chaine) ; Par exemple pour lire /etc/passwd :
open(PWD, "< /etc/passwd") ; while( <PWD> ) { chomp() ; @champs = split(/:/, $_) ; printf("LOGIN = %s\n", $champs[0]) ; } close(PWD) ;
c T.Besanon (v14.0.1025)
Administration UNIX
905 / 918
17 Langage PERL
Pour joindre vos chaines de caractres suivant une expression rgulire : Syntaxe : $chaine = join($delimiteur, @liste) ;
c T.Besanon (v14.0.1025)
Administration UNIX
906 / 918
17 Langage PERL
Contrairement au langage C, on nindique pas dans la dclaration de la fonction la dnition de ses paramtres :
sub nom_fonction { ligne1 ; ligne2 ; ... }
c T.Besanon (v14.0.1025)
Administration UNIX
907 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
908 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
909 / 918
17 Langage PERL
Pour dclarer une variable locale dans une fonction Perl, vous devez utiliser la fonction my .
sub mafonction { my $a ; ... }
c T.Besanon (v14.0.1025)
Administration UNIX
910 / 918
17 Langage PERL
c T.Besanon (v14.0.1025)
Administration UNIX
911 / 918
17 Langage PERL
Le module Spreadsheet::WriteExcel permet de crer des chiers MICROSOFT EXCEL directement au format natif XLS Les cellules peuvent contenir des donnes comme des formules. Les graphiques sont supports en partie.
c T.Besanon (v14.0.1025)
Administration UNIX
912 / 918
17 Langage PERL
Les modules Text::CSV et Text::CSV::Simple permettent de manipuler des chiers de type CSV gnrs par MICROSOFT EXCEL, OPEN OFFICE ou toute autre application.
c T.Besanon (v14.0.1025)
Administration UNIX
913 / 918
17 Langage PERL
Le module Config::IniFiles permet de manipuler des chiers au format INI du monde MICROSOFT WINDOWS 95/98 (mais trs pratique).
[section1] variable1 = valeur variable2 = valeur variable3 = valeur ... [section2] variable1 = valeur ...
c T.Besanon (v14.0.1025)
Administration UNIX
914 / 918
17 Langage PERL
Le module DBI permet dinteragir avec des bases de donnes via des fonctions indpendantes du type de la base de donnes. Les modules DBD::Mysql , DBD ::Pg , etc. implmentent les dtails particuliers pour les bases de donnes MYSQL, POSTGRESQL, etc.
c T.Besanon (v14.0.1025)
Administration UNIX
915 / 918
17 Langage PERL
Le module Template permet de gnrer des chiers remplis par des lots de donnes partir de chiers squelettes.
c T.Besanon (v14.0.1025)
Administration UNIX
916 / 918
17 Langage PERL
Le module Data::Dumper permet dacher des structures de donnes complexes de faon simple.
c T.Besanon (v14.0.1025)
Administration UNIX
917 / 918
17 Langage PERL
On fait lhypothse que le module na pas de dpendance. Sinon il faudra installer les dpendances au pralable. Ensuite :
1 2 3 4 5 6
Rcuprer le module sur CPAN Dsarchiver le module par tar xvzf module.tar.gz cd module perl Makefile.PL make make install
c T.Besanon (v14.0.1025)
Administration UNIX
918 / 918