Guide d’initiation unix

Guide d’initiation unix

Guide d’initiation UNIX INITIATION UNIX David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 Guide d’initiation UNIX Table des matieres INTRODUCTION…………………………………………………………………………………………………………….. 2 COPYRIGHT :………………………………………………………………………………………………………………… 2 PRE-REQUIS : ……………………………………………………………………………………………………………….. OBJECTIFS :………………………………………………………………………………………………………………….. 2 CONVENTIONS D’ECRITURE : ………………………………………………………………………………………….. 2 PRESENTATION DU SYSTEME UNIX. …………………………………………………………………………… 3 CARACTERISTIQUES D’UNIX :………………………………………………………………………………………… LE SHELL……………………………………………………………………………………………………………………… 3 LES COMMANDES ………………………………………………………………………………………………………….. 4 LES PIPES (TUBES) ………………………………………………………………………………………………………… 7 LES GROUPES DE COMMANDES………………………………………………………………………………………… LES SUBSTITUTIONS DE TYPE FICHIERS ……………………………………………………………………………… 8 LES CARACTERES SPECIAUX……………………………………………………………………………………………. 8 LES VARIABLES D’ENVIRONNEMENT ………………………………………………………………………………… 9 PROCEDURE DE CONNEXION …………………………………………………………………………………………. 0 LA GESTION DES FICHIERS ET DES SYSTEMES DE FICHIERS ………………………………………………….. 10 LES COMMANDES ……………………………………………………………………………………………………….. 12 GESTION ET DEPLACEMENT DES ARBORESCENCE ……………………………………………………………… 14 GESTION ET MANIPULATION DE FICHIERS ………………………………………………………………………… 20 ARCHIVAGE ET RESTAURATION DE DONNEES …………………………………………………………………… 5 UTILITAIRES RESEAU ……………………………………………………………………………………………………. 38 COMMANDES D’ADMINISTRATION ………………………………………………………………………………….. 41 COMMANDES ORIENTEES SHELL …………………………………………………………………………………….. 50 ANNEXE 1 : PRESENTATION COMPLEMENTAIRE DU SYSTEME UNIX. …………………… 55 ARCHITECTURE D’UNIX : ……………………………………………………………………………………………. 5 NOTIONS DE PROCESSUS : …………………………………………………………………………………………….. 55 COMMUNICATION ET SYNCHRONISATION ENTRE PROCESSUS : ……………………………………………. 56 LE NOYAU :………………………………………………………………………………………………………………… 57 LA GESTION DES FICHIERS : …………………………………………………………………………………………… 7 LES CONTROLEURS DE PERIPHERIQUES …………………………………………………………………………… 60 LES DROITS D’ACCES AUX FICHIERS ET REPERTOIRES ………………………………………………………… 61 ANNEXE 2 : TRAVAUX PRATIQUES …………………………………………………………………………….. 62 ANNEXE 3 : INDEX ………………………………………………………………………………………………………. 68 David ROSSIGNOL (email

Désolé, mais les essais complets ne sont disponibles que pour les utilisateurs enregistrés

Choisissez un plan d'adhésion
: rossignol. [email protected] org) 28/04/99 Guide d’initiation UNIX Introduction Copyright : Ce document est public. Il peut etre diffuse librement et tres largement sur n’importe quel support (papier, electronique, …). Toutefois, il doit etre diffuse dans son integralite, sans modification, et gratuitement. Enfin, l’auteur ne pourra en aucun cas etre tenu pour responsable des informations contenues dans ce document. Ce document est soutenu par David ROSSIGNOL ( e-mail : rossignol. [email protected] org). Toutes les marques citees dans ce guide sont la propriete de leur proprietaire respectif. Pre-requis :

Connaissances de base du systeme d’exploitation DOS ; connaitre l’organisation des donnees informatiques (notions de fichiers et repertoires). Objectifs : A la fin de ce cours, vous serez en mesure : d’utiliser les commandes UNIX les plus usuelles ; d’effectuer l’administration quotidienne de vos machines ; d’expliquer les dysfonctionnements de vos machines dans les Usenet. Ne font pas partie de ces objectifs les points suivants : la comprehension des mecanismes internes ; les commandes d’administration impliquant ces mecanismes ; les options dont l’utilite est limitee.

Conventions d’ecriture : Dans tout ce cours : les parametres precises entre crochets [] sont optionnels ; les | separant les options, precisent qu’il faut choisir parmi l’une d’entre elles. Partie cours ‘theorique’ (Presentation et annexes) : Texte normal. Commandes telles qu’elles doivent etre tapees au clavier. Resultat obtenu a l’ecran. Partie cours ‘pratique’ (Les commandes) : Texte normal. Nom des commandes. Resultat obtenu a l’ecran et parametres eventuels. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 2 Guide d’initiation UNIX

Presentation du systeme UNIX. Caracteristiques d’UNIX : Un systeme d’exploitation est un ensemble de programmes qui coordonnent le fonctionnement des differents composants materiels et logiciels d’un systeme informatique. UNIX est un systeme d’exploitation ayant les caracteristiques suivantes : • Multi-utilisateurs et Multitaches : cela signifie que plusieurs utilisateurs peuvent acceder simultanement au systeme et executer un ou plusieurs programmes. • Temps partage : c’est-a-dire que les ressources du processeur et du systeme sont reparties entre les utilisateurs. Systeme de fichiers hierarchique : plusieurs systemes de fichiers peuvent etre rattaches au systeme de fichiers principal ; chaque systeme de fichiers possede ses propres repertoires. • Entrees-Sorties integrees au systeme de fichiers : les peripheriques sont representes par des fichiers, ce qui rend le systeme independant du materiel et en assure la portabilite ; l’acces aux peripheriques est donc identique a l’acces aux fichiers ordinaires. • Gestion de la memoire virtuelle : un mecanisme d’echange entre la RAM et le isque dur permet de pallier un manque de RAM et optimise le systeme. • Processus reentrants : les processus executant le meme programme utilisent une seule copie de celui-ci en RAM. • Interface utilisateur interactive (shell) : elle est constituee d’un programme separe du noyau permettant a l’utilisateur de choisir son environnement de travail. Elle integre un langage de commandes tres sophistique (scripts). Le shell Sous le nom shell (coquille), on designe l’interface utilisateur qui, dans l’architecture d’UNIX, entoure le noyau (kernel, voir annexe 2).

Plus simplement, le shell est un programme qui permet a l’utilisateur de dialoguer avec le coeur du systeme (le noyau). Il permet de realiser plusieur taches : • il interprete les ordres tapes au clavier par l’utilisateur et permet ainsi l’execution des programmes; • il fournit a l’utilisateur un langage de programmation interprete; • il permet de modifier l’environnement; • il se charge de realiser les redirections des entrees-sorties, les pipes et la substitution de type fichier (detailles plus loin dans ce cours). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 3 Guide d’initiation UNIX Les commandes

Le shell interprete la serie de caracteres tapes a chaque fois qu’un retour chariot (entree) est recu; en meme temps, les caracteres tapes sont affiches a l’ecran. Les premiers caracteres tapes jusqu’au premier separateur (espace ou tabulation) sont interpretes par le shell comme le nom de la commande a executer, les chaines de caracteres suivantes etant considerees comme les arguments. La syntaxe d’une commande UNIX est donc : commande [argument(s)] ou : commande est le nom d’une commande interne ou un programme executable, et arguments sont des options reconnues par cette commande. Les entrees-sorties et leur redirection.

Une commande lit normalement ses donnees d’entree dans l’ entree standard et ecrit sa sortie dans la sortie standard qui, par defaut, correspondent respectivement au clavier et a l’ecran du terminal. Les processus accedent a ces peripheriques comme s’ils accedaient a des fichiers normaux, par le biais de handle (descripteurs de fichiers). Voici donc un recapitulatif des peripheriques, de leur association par defaut, ainsi que des descripteurs de fichiers : Peripherique Standard input buffer Standard output Standard output error Association par defaut Clavier Ecran Ecran Descripteur de fichier 0 1 2 Ils peuvent etre materialises de la sorte :

Standard output handle : 1 Standard input handle : 0 COMMANDE Standard output error handle : 2 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 4 Guide d’initiation UNIX Voici un exemple avec la commande sort (commande qui trie les donnees d’entree par ordre alphabetique) : Std output Metz Sarrebourg Laon Douai Compiegne sort Compiegne Douai Laon Metz Sarrebourg Standard output error handle : 2 A l’ecran, on observe : Apres le retour chariot, la commande sort attends que des donnees soient entrees au clavier. Termine la saisie $ sort Metz Sarrebourg Laon Douai Compiegne Ctrl-d Compiegne Douai Laon Metz Sarrebourg $

S’il y avait eu une erreur a l’execution de la commande, le message aurait ete envoye vers le standard error output qui par defaut, coincide avec la sortie standard (l’ecran). En plus du resultat ‘visible’ des commandes, chacune d’entre elles renvoie au shell un code de sortie (exit status), qui est egal a zero si la commande s’est terminee normalement, et prend une valeur differente si le processus a ete interrompu. Standard output handle : 1 Standard input handle : 0 COMMANDE Standard output error handle : 2 Exit status. Non affiche a l’ecran, cette information permet de savoir si le traitement de la commande s’est bien deroule.

Le mecanisme de redirection des entrees-sorties, gere par le shell, permet de changer l’association par defaut de l’entree standard et des standards outputs; David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 5 Guide d’initiation UNIX dans ce cas, on utilise des fichiers normaux en entree ou en sortie. Ces redirections sont effectuees grace aux signes suivants : ; nom_fic fichier ;; fichier prend comme entree le fichier nom_fic ; prend comme entree toutes les lignes tapees au clavier jusqu’a celle qui contient mot. envoie la sortie dans fichier ( si fichier existe, il est ecrase). ajoute la sortie a la fin du fichier ; on dit aussi concatenation de la sortie et de fichier (si fichier n’existe pas, il est cree). Plus generalement, on peut rediriger n’importe quel fichier en entree ou en sortie en utilisant le numero descripteur de fichier (numero unique attribue par le noyau chaque fois qu’un fichier est ouvert). Il est rappele que le descripteur vaut 0 pour l’entree standard, 1 pour la sortie standard, et 2 pour le standard error output. Pour rediriger un fichier de cette maniere, il suffit de faire preceder le symbole de redirection par le numero de descripteur (SANS espace de separation).

Exemple : $ find / -name « villes » -print 1; resultat 2; erreurs $ Dans ce cas, a l’execution, on obtient le resultat suivant : Standard output handle : 1 La commande n’a pas besoin d’information supplementaire. find / -name « villes » -print resultat Standard output error handle : 2 erreurs Exit status. Non affiche a l’ecran, cette information permet de savoir si le traitement de la commande s’est bien deroule. TP N°1 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 6 Guide d’initiation UNIX Les Pipes (tubes) Le tube (ou pipe en anglais) est un mecanisme permettant la communication entre plusieurs commandes.

Dans un pipe, la sortie de la premiere commande devient l’entree de la seconde; le shell prend a sa charge la connexion de la sortie standard de la premiere commande sur l’entree standard de la deuxieme. Std output Std input commande 1 Std input commande 2 Std output Std output error Exit status. Std output error Exit status. Exemple : $ cat villes Metz Sarrebourg Laon Douai Compiegne $ cat villes | sort Compiegne Douai Laon Metz Sarrebourg $ Signe representant le pipe TP N°2 Les groupes de commandes Il existe plusieurs methodes pour enchainer des commandes sur une meme ligne : • Execution sequentielle : cmd1; cmd2;… cmdN • Execution sous condition d’erreur : cmd1 || cmd2 || … || cmdN si cmd1 ne se termine pas correctement, alors cmd2 est execute, et ainsi de suite. • Execution sous conditions de reussite : cmd1 && cmd2 && … && cmdN si cmd1 s’est bien deroulee, alors cmd2 sera executee; et ainsi de suite Les groupes de commandes peuvent remplacer les commandes simples dans les pipes; mais dans ce cas, il faudra entourer le groupe de commande avec des accolades {}; cela permet les combinaisons les plus variees; par exemple : David ROSSIGNOL (email : rossignol. @linux-france. org) 28/04/99 7 Guide d’initiation UNIX { cmd1 && cmd2; cmd3 || cmd4; } | cmd5 ATTENTION: l’espace apres { et le ; avant } sont indispensables. L’utilisation des parentheses ()est possible et a le meme effet a la difference qu’elles invoquent un nouveau shell qui sera charge de l’execution des commandes. TP N°3 Les substitutions de type fichiers Il n’est pas rare que les arguments des commandes UNIX soient des noms de fichiers; a ce titre, les shell offrent la possibilite d’indiquer un groupe de fichiers dont les noms ont des similitudes.

Cette possibilite est materialisee par les metacaracteres : Utilisation indetermination d’un caractere indetermination de 0 a n caracteres indetermination d’un caractere pris dans la liste [b-t] indetermination d’un caractere pris dans l’intervalle [! xyz123… ] indetermination d’un caractere pris a l’exterieur de la liste [! b-t] indetermination d’un caractere pris a l’exterieur de l’intervalle ATTENTION : differenciation des minuscules et MAJUSCULES. Metacaractere ? * [xyz123… ] TP N°3 bis Les caracteres speciaux Ce sont tous les caracteres vus precedemment qui ont une signification particuliere pour le shell.

Il comprennent les metacaracteres ? *[] , les signes de redirection (< et >), ou encore les caracteres « ${}’|`() . Un probleme se pose lorsque l’on veut utiliser ces caracteres sans qu’ils soient interpretes par le shell !!! Dans ce cas, certains caracteres nous permettent de signaler au shell cette intention. Il s’agit : • du caractere qui annule la fonction speciale du caractere le suivant, • des guillemets « , qui annulent tous les caracteres sauf $`, • les simples quotes ‘, qui annulent l’ensemble des caracteres speciaux.

Ce dernier ayant une signification particuliere pour le shell, si vous voulez l’utiliser, il faut le faire preceder d’un . Exemple : $ echo 10000>nombre $ /* Cette commande va contenant 10000 */ David ROSSIGNOL (email : rossignol. [email protected] org) generer un fichier nombre 28/04/99 8 Guide d’initiation UNIX $ echo 10000;nombre 10000;nombre $ $ echo ‘10000>nombre’ 10000;nombre $ $ echo ‘Aujourd »’hui’ Aujourd’hui $ Les variables d’environnement Les variables sont des valeurs associees a des noms explicites; elles constituent l’environnement d’execution des commandes.

On retrouve dans l’environnement standard du shell un certain nombre de variables dont il se sert a l’execution. Les plus utilisees sont : • HOME : variable initialisee au login et contenant le repertoire de connexion de l’utilisateur. • PATH : variable contenant la liste des repertoires ou effectuer une recherche de programmes entres au clavier (a la difference avec le DOS, si vous ne precisez pas le repertoire courant (. ) dans la variable, il n’y sera effectue aucune recherche). • PS1 : contient l’invite (equivalent a la variable PROMPT de DOS). Elle est generalement initialisee a ‘$’. CDPATH : precise les chemins de recherche de repertoire pour la commande cd (Change Directory). Bien sur, l’utilisateur peut definir ses propres variables, en respectant la syntaxe suivante : $ nom_variable=valeur /* Sans espace avant ni apres le signe egal */ Pour recuperer le contenu d’une variable, l’utilisateur utilise le caractere $ suivi du nom de sa variable. Exemple : $ echo $LOGNAME root /* Les noms de variables distinguent aussi les minuscules des MAJUSCULES */ Sous UNIX, on distingue deux types de variables, les variables locales, et les variables globales (ou exportees).

Une variable locale est specifique au niveau du processus en cours et seul ce processus pourra l’exploiter, alors qu’une variable exportee sera disponible pour tous les processus fils crees. ATTENTION : les valeurs modifiees par un processus fils n’affectera pas la valeur de la variable du pere. Par convention, on utilise les MAJUSCULES pour les variables globales et les minuscules pour les variables locales. 28/04/99 9 David ROSSIGNOL (email : rossignol. [email protected] org) Guide d’initiation UNIX Procedure de connexion Pour pouvoir utiliser la machine, il vous faut disposer d’un nom d’utilisateur et du mot de passe qui lui est associe.

Ceci vient du fait que l’un des processus systeme lance au demarrage de la machine, le ttymon , remplit cette fonction de controle. Ce processus suit l’algorithme suivant : ? Demande de nom d’utilisateur : Invite login : Apres que vous ayez entre un nom d’utilisateur, ? Demande de mot de passe. Invite password : Le mot de passe entre, ? Le processus verifie la coherence des informations avec ses fichiers systemes (/etc/passwd et /etc/shadow ) ; si les informations sont correctes, ttymon termine son travail en invoquant le shell qui vous est associe (/bin/sh ou /bin/ksh ou /bin/bash ).

Votre shell charge aussitot ses variables specifiques ( LOGNAME , TTY, HOME , … ). Puis il execute les scripts de demarrage nommes /etc/profile et $HOME/. profile qui initialisent, entre autres, les variables specifiques a l’utilisateur (certains shell executent d’autres fichiers . bashrc pour /bin/bash ). La gestion des fichiers et des systemes de fichiers Sous UNIX, toutes les donnees sont manipulees a l’image d’un fichier ordinaire. De ce fait, il existe plusieurs types de fichiers en fonction de leur utilisation. Les differents types sont : ? es fichiers repertoires dont le contenu fait l’association entre le numero d’inode (numero unique representant un fichier sur le systeme de fichiers) et le nom du fichier ; ? les fichiers ordinaires qui stockent les donnees et les programmes sans format particulier mais comme une suite d’octets ; ? les fichiers speciaux de type blocs ou caracteres qui constituent une porte permettant de communiquer avec les peripheriques de l’ordinateur (Exemple : le lecteur de disquettes = /dev/fd0) ; ? les pipes nommes et les liens symboliques qui ne seront pas abordes dans ce cours.

UNIX en tant que systeme d’exploitation securise gere des droits d’acces sur les fichiers. Il existe trois niveaux de securite qui correspondent respectivement aux droits de l’utilisateur, du groupe, et des autres utilisateurs. A chacun de ces niveaux, il est possible de determiner les droits suivants : • La lecture (R ou 4) ; • L’ecriture (W ou 2) ; • L’execution (X ou 1) David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 10 Guide d’initiation UNIX Leur interaction avec les differents fichiers est decrite ci dessous : Lecture Fichiers Autorise la lecture fichier.

Ecriture Repertoires du Permet de lister le contenu du repertoire. Autorise la creation et la suppression des fichiers du Permet la modification du repertoire. fichier. ATTENTION : cette permission est valable quels que soient les droits des fichiers. Execution Autorise fichier. l’execution du Permet de se positionner dans le repertoire. Le systeme de fichiers est une structure logique qui permet de gerer l’espace disque. En effet, si l’on veut stocker des fichiers (ou repertoires) sur un disque, il faut preparer une ou plusieurs structures d’accueil.

On retrouve ce procede sous DOS lorsque vous creez X partitions sur un disque dur (avec fdisk ) ; il faut les formater (avec format ) avant de pouvoir les utiliser. La difference avec le DOS, se situe dans la hierarchisation de ces systemes de fichiers : Sous DOS, chaque systeme de fichiers porte un nom bien precis (Exemple : A:, C:, D:, …). Sous UNIX, tous les systemes de fichiers utilises viennent se « rattacher » (on dit se monter) sur le systeme de fichiers principal (sur lequel on a boote), il y a hierarchisation. Exemple : Systeme de fichiers principal / Systeme de fichiers d’un CD-ROM / sr bin mnt opt home test bin lib / kde w3mir usr bin mnt Une fois monte, le systeme de fichier du CDROM fait partie integrante de l’arborescence du systeme de fichiers principal. bin lib opt home test kde w3mir 28/04/99 11 David ROSSIGNOL (email : rossignol. [email protected] org) Guide d’initiation UNIX Les commandes David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 12 Guide d’initiation UNIX man Syntaxe : man [section] commande man -k mot_cle Description : man permet de rechercher une aide sur une commande ou un mot-cle. Il utilise la ariable MANPATH pour effectuer la recherche des pages et la variable PAGER pour connaitre le programme charge de l’affichage. Les pages man sont organisees en 8 sections standard comme suit : 1 1M 2 3 4 5 6 7 8 = Commandes utilisateur = Commandes administrateur = Appels systemes C. = Fonctions C. = Format des fichiers systeme. = Divers. = Jeux. = Fichiers speciaux. = Procedures de maintenance systeme. Options courantes: section -k Numero de la section qui contient la page. precise que la recherche s’effectue sur un mot-cle et non une commande. Exemple : man passwd $ man 4 passwd – define or change login password and password attributes default_passwd (4D) – / etc/default/passwd file passwd (4) – password file pwconv (1M) – installs and updates / etc/shadow with information from / etc/passwd in. yppasswdd (1M) – change passwords for network user accounts yppasswd (1) – change global user password yppasswdd (1M) – change passwords for network user accounts $ man -k passwd passwd (1) Remarques : Les pages man sont toujours articulees autour des paragraphes suivants : NOM SYNTAXE DESCRIPTION OPTIONS FICHIERS UTILISES VOIR AUSSI

Sous Linux, la description des fichiers se trouve dans la section 5 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 13 Guide d’initiation UNIX Gestion et deplacement des arborescence ? ls liste le contenu d’un repertoire. ? cd changement repertoire courant. ? pwd affichage repertoire courant. ? mkdir de du creation de repertoire. d’un ? rmdir destruction repertoire. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 14 Guide d’initiation UNIX ls Syntaxe : ls [options] [noms] Description : ls liste les repertoires et les fichiers precises dans noms . Par defaut, la sortie est nvoyee a l’ecran par ordre alphabetique. Les options determinent les informations a afficher et la presentation de l’affichage. Sans options, ls n’envoie que le nom des fichiers. Si noms n’est pas precise, c’est le repertoire courant qui est liste. Options courantes: -R -a -d -l nom Traitement recursif Tous les fichiers (y compris ceux qui commencent par un point) Affiche le nom des repertoires sans leur contenu Format long (avec beaucoup de details) est le nom d’un fichier ou d’un repertoire (avec ou sans metacaracteres) Exemple : $ ls -ld r* lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx -rwxr–r-drwxr-xr-x $ Type du fichier u* 1 1 1 3 5 oot root root root root Groupe other 6 other 6 other 6 other 5423661 root 1024 Nov Nov Nov Apr Nov 21 1997 21 1997 21 1997 1 1997 25 05:38 rep1 -> /usr/rep1 rep2 -> /usr/rep2 rep3 -> /usr/rep3 unix usr Lien symbolique voir commande ln Nombre de liens Proprietaire Taille en Ko Date de modification Nom du fichier Droits du fichier voir Remarques Remarques : Au niveau du proprietaire, du groupe, et des autres, il est possible de determiner un certain nombre de droits : • La lecture (R) : pour un fichier, ce droit permet la lecture du fichier; alors que pour un repertoire, il autorise l’utilisateur a lister son contenu. L’ecriture (W) : pour un fichier, il permet sa modification; alors que pour un repertoire, il permet la creation et la suppression des fichiers du repertoire (ATTENTION : cette permission est valable quels que soient les droits des fichiers). • L’execution (X) : pour un fichier, il autorise son execution; et pour un repertoire, il permet de se positionner dessous David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 15 Guide d’initiation UNIX • cd Syntaxe : cd [repertoire] Description : La commande cd permet de changer le repertoire de travail.

Si repertoire n’est pas precise, alors le nouveau repertoire de travail sera le repertoire de connexion ($HOME). Option : repertoire represente le futur repertoire de travail. Exemple : $ cd /usr/lib/news/bin $ cd $HOME/rep1 Remarque : la commande cd, comme toutes les commandes utilisant des repertoires, permet de specifier deux types de chemins : • les chemins relatifs : ils sont relatifs au repertoire de travail, et utilisent notamment le repertoire ‘.. ‘ (repertoire pere). Exemple : cd .. /rep1 • les chemins absolus : ils faut specifier toute l’arborescence depuis la racine.

Exemple : cd /home/rep1 TP N°4 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 16 Guide d’initiation UNIX pwd Syntaxe : pwd Description : La commande pwd permet d’afficher le repertoire de travail. Option : La commande pwd n’accepte pas d’option Exemple : $ pwd /usr/lib/news/bin $ cd .. ; pwd /usr/lib/news $ cd bin $ pwd /usr/lib/news/bin $ cd /bin $ pwd /bin David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 17 Guide d’initiation UNIX mkdir Syntaxe : mkdir [-p] nouveau_repertoire Description :

La commande mkdir cree le repertoire specifie sur la ligne de commande (nouveau_repertoire ). Si l’un des repertoires intermediaires n’existe pas, la commande retourne un code d’erreur ( exit status) sans creer le repertoire (sauf si l’option -p est specifiee). Options courantes -p repertoire permet de creer tous les repertoires intermediaires qui n’existeraient pas. represente le nom du repertoire a creer. C’est un argument obligatoire Exemple : $ mkdir /tmp/rep1 $ cd /tmp/rep1 $ mkdir rep11/rep111 mkdir: Cannot create directory  » rep11/rep111″: No $ mkdir -p rep11/rep111 $ such file or directory

Remarque : Pour pouvoir creer un repertoire, le repertoire d’origine doit avoir les droits en ecriture positionnes. TP N°5 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 18 Guide d’initiation UNIX rmdir Syntaxe : rmdir [-p] [-s] repertoire Description : La commande rmdir supprime le repertoire specifie sur la ligne de commande (repertoire ). Si il existe des fichiers ou des sous repertoires, la commande retournera un code d’erreur ( exit status). Options courantes -p -s repertoire permet de detruire tous les sous-repertoires vides. ode silencieux (aucun affichage). represente le nom du repertoire a detruire. C’est un argument obligatoire. Exemple : $ rmdir /tmp/rep1/rep11/rep111 $ cd /tmp $ rmdir -p rep1/rep11 rmdir: rep1/rep11: Whole path removed. $ cd rep1 rep1: does not exist $ Remarque : Pour pouvoir supprimer un repertoire, le repertoire pere doit avoir les droits en ecriture positionnes. Voir aussi la commande rm -r pour supprimer des repertoires contenants des fichiers. TP N°6 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 19

Guide d’initiation UNIX Gestion et manipulation de fichiers ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cp copie de fichiers. mv deplacement de fichiers. rm destruction de fichiers. cat visualisation et/ou concatenation de fichiers. Pg | less visualisation d’un fichier texte page par page. chmod change les droits d’un fichier/repertoire. chown change le proprietaire d’un fichier/repertoire. chgrp change le groupe proprietaire du fichier/repertoire. find recherche de fichiers ou repertoires. grep recherche d’une chaine de caracteres dans un fichier. ead/tail affiche le debut/la fin d’un fichier. ln cree un lien avec un fichier existant. sort trie les lignes d’un fichier. umask choix des permissions par defaut. wc compte le nombre de mots/lignes/caracteres d’un fichier. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 20 Guide d’initiation UNIX cp Syntaxe : cp [-i] [-p] fichier1 fichier2 cp [-i] [-p] [-r] source1 [source2… ] repertoire Description : La commande cp copie le contenu de fichier1 dans fichier2 ; ou bien elle copie source1 et source2 (etc… ) dans repertoire . Options courantes i -p -r source X mode interactif, demande la confirmation avant ecrasement. conserve les dates du fichier source. copie recursive de repertoires. represente le nom des fichiers ou repertoires a copier. Exemple : $ cp /tmp/rep1/fic1 . $ cp /tmp $HOME $ cp -r rep1 rep2 $ Remarque : Pour pouvoir copier un fichier/repertoire, vous devez avoir les droits suivants : droits de lecture du fichier a copier ; droits d’execution sur le repertoire contenant le fichier a copier ; droits d’ecriture sur le repertoire de destination. David ROSSIGNOL (email : rossignol. @linux-france. org) 28/04/99 21 Guide d’initiation UNIX mv Syntaxe : mv [-f] [-i] source1 [source2… ] destination Description : La commande mv deplace les fichiers fichier1, fichier2 etc… dans destination . Si destination est un fichier, alors mv a pour action de renommer fichier1 en destination ; si destination est un repertoire, alors mv deplace fichier1 dans ce repertoire. Options courantes -i -f sourceX destination mode interactif, demande la confirmation avant ecrasement. force la commande. represente le nom des fichiers ou repertoires a deplacer. epresente le nom des fichiers ou repertoires de destination. Exemple : $ mv fic1 fic2 $ Remarque : Pour pouvoir copier un fichier/repertoire, le repertoire cible doit avoir les droits en ecriture positionnes, les droits en lecture sur le fichier source, et les droits d’acces dans le repertoire source. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 22 Guide d’initiation UNIX rm Syntaxe : rm [-f] [-i] [-r] fichier1 [fichier2… ] Description : La commande rm supprime les fichiers specifies sur la ligne de commande.

Si vous n’avez pas les droits d’ecriture sur fichier1 , alors rm vous demandera de confirmer votre action ; la reponse oui (y) detruira quand meme le fichier (sous reserve d’avoir les droits d’ecriture sur le repertoire). Options courantes -i -f -r mode interactif, demande la confirmation avant chaque suppression. force la commande (aucune confirmation). recursif (detruit tous les sous repertoires. ATTENTION) Exemple : $ rm fic1 $ $ rm -i fic* rm: File fic1. rm: File fic2. $ Remove ( yes/no)? y Remove ( yes/no)? N Remarque :

Pour pouvoir supprimer un fichier, le repertoire ou se trouve le fichier doit avoir ses droits en ecriture positionnes ; sauf dans le cas ou le repertoire aurait les droit suivants : drwxrwxrwt 1 user user 6 Nov 21 1997 rep1 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 23 Guide d’initiation UNIX cat Syntaxe : cat [fichier… ] Description : La commande cat visualise et/ou concatene les fichiers specifies sur la ligne de commande. Par defaut, cat lit sur l’entree standard et affiche le resultat sur la sortie standard. Option : La commande cat n’admet pas d’option. Exemple : cat villes Sarrebourg Douai Couvron Phalsbourg $ cat villes pays Sarrebourg Douai Couvron Phalsbourg France Belgique Italie $ Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 24 Guide d’initiation UNIX pg Syntaxe : pg [+numlig] [+/chaine/] [fichier… ] Description : La commande pg affiche a l’ecran les fichiers specifies sur la ligne de commande. Par defaut, pg lit sur l’entree standard ce qui permet de l’associer a un pipe. Options courantes +numlig +/chaine/ specifie le numero de ligne ou doit commencer l’affichage commence l’affichage a la premiere ligne du fichier contenant chaine Exemple : pg villes Sarrebourg Douai Couvron Phalsbourg (EOF): $ pg +2 villes Douai Couvron Phalsbourg (EOF): $ cat villes pays| pg +/ Couvron/ pays Couvron Phalsbourg France Belgique Italie (EOF): Remarque : Sous Linux, pg n’existe pas mais l’on pourra utiliser avantageusement less (voir la page man). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 25 Guide d’initiation UNIX chmod Syntaxe : chmod [-R] mode nom [… ] chmod [-R] [ ugoa]{+|-|=}[ rwx] nom [… ] Description : La commande chmod change les droit d’acces aux fichiers specifies sur la ligne de commande. Deux manieres d’attribuer les droits sont possibles.

La premiere stipule les droits de maniere numerique par un calcul des differentes valeurs associees aux droits; la seconde permet de specifier ces memes droits de maniere plus symbolique. Options courantes -R mode ugoa recursif sur tous les fichiers et sous-repertoires contenus si nom est un repertoire c’est la combinaison des droits numeriques (voir Remarques) caractere specifiant le champ d’application des modifications : u represente l’utilisateur, g le groupe, o les autres, a regroupe tous ces derniers. indique l’action a accomplir respectivement l’ajout du droit, son retrait, ou bien son affectation. ndique le droit proprement dit (r lecture, w ecriture, x execution). rappel: r=4,w=2,x=1. 7=4+2+1 (r+w+x). Les droits du fichier villes seront donc rwxrwxrwx +|-|= rwx Exemple : $ chmod 777 villes $ chmod g-rw villes $ chmod -x villes Remarque : Plus personnes n’aura le droit d’execution sur le fichier. rw—- rw- proprietaire rwx 4 2 1 groupe rwx 4 2 1 autres rwx 4 2 1 Le groupe proprietaire du fichier villes n’aura plus l’acces ni en lecture, ni en ecriture. rwx– xrwx TP N°7 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 26 Guide d’initiation UNIX chown chgrp

Syntaxe : chown [-R] [-h] utilisateur nom [… ] chgrp [-R] [-h] groupe nom [… ] Description : La commande chown change le proprietaire des fichiers specifies sur la ligne de commande. La commande chgrp change le groupe des fichiers specifies sur la ligne de commande. Options courantes -R -h recursif sur tous les fichiers et sous-repertoires contenus si nom est un repertoire traitement sur les liens symboliques exprime le nom d’un fichier ou d’un repertoire represente soit le nom de l’utilisateur, soit son UID (User IDentification) represente soit le nom du groupe, soit son GID Group IDentification) nom utilisateur groupe Exemple : $ chown root villes $ chown 102 villes $ chgrp news villes Remarque : Seul le proprietaire des fichiers traites ou root ont le droit d’utiliser chown et chgrp . TP N°8 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 27 Guide d’initiation UNIX find Syntaxe : find repertoire option1 [option2… ] Description : La commande find permet de rechercher un fichier dans l’arborescence a partir du point specifie. Options courantes: name fich -size n -ctime n -exec cmd {} ; -print ! recherche sur le nom fich recherche sur la taille en blocs recherche sur la date de creation execute la commande cmd sur les fichiers trouves affiche le resultat de la recherche negation du critere de recherche Exemple : $ find $HOME – name « vil* » -print $ find . – print| cpio -ocvB / dev/streamer $ find / – name « profile* » – exec pg {} ; Remarque : Metacaractere ? * [xyz123… ] [b-t] [! xyz123… ] [! b-t] Represente le nom des fichiers trouves.

Il est necessaire de faire suivre l’option -exec par {} ; Utilisation indetermination d’un caractere indetermination de 0 a n caracteres indetermination d’un caractere pris dans la liste indetermination d’un caractere pris dans l’intervalle indetermination d’un caractere pris a l’exterieur de la liste indetermination d’un caractere pris a l’exterieur de l’intervalle TP N°9 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 28 Guide d’initiation UNIX grep Syntaxe : grep [-ilsfv] expression [fichier… ] Description : La commande grep permet de rechercher expression dans fichier .

Elle affiche les noms de fichiers ainsi que les lignes contenant expression . Options courantes -i -l -s -f fich -v expression fichier ne tient pas compte des minuscules et des MAJUSCULES n’affiche que le nom des fichiers (pas les lignes) pas de message d’erreur sur les fichiers inaccessibles specifie un fichier contenant les expressions a rechercher affiche toutes les lignes, sauf celles qui contiennent l’expression chaine de caracteres (ou expression reguliere non abordee dans ce cours) nom des fichiers a traiter Exemple : $ grep Sarrebourg * villes : Sarrebourg $ grep -l Sarrebourg * villes Remarque : David ROSSIGNOL (email : rossignol. @linux-france. org) 28/04/99 29 Guide d’initiation UNIX head tail Syntaxe : head [-n] [fichier… ] tail [-n|+n] [-f] [fichier] Description : La commande head affiche les n premieres lignes d’un fichier, alors que tail affiche les dernieres lignes d’un fichier. Si n n’est pas precise, il prend la valeur 10. Options courantes -n +n -f fichier nombre de lignes a afficher depuis le debut/la fin de fichier affichage a partir de la ligne numero n attente de nouvelles lignes (sortie par Ctrl-c ) nom des fichiers a traiter Exemple : $ head -2 villes Sarrebourg Douai $ tail -2 villes Couvron Phalsbourg $ tail +2 villes Douai Couvron Phalsbourg

Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 30 Guide d’initiation UNIX ln Syntaxe : ln [-s] fichier1 fichier2 ln [-s] fichier1 [fichier2… ] repertoire Description : La commande ln permet de creer des entrees multiples dans l’arborescence d’un systeme de fichiers pour un meme fichier physique. Ce qui revient a dire que si l’on modifie un fichier, ses liens le sont aussi. ln permet aussi de faire des liens dans des systemes de fichiers differents par la methode des liens symboliques (un peu comme les raccourcis de chez MS). Si le dernier argument de la ligne de commande est n repertoire, ln cree des liens dans ce repertoire pour tous les fichiers pre-cites (fichier1, fichier2, … ). Option : -s permet de faire un lien symbolique Exemple : $ ln villes villes5 $ ls villes* -rwxr–r– 2 root other -rwxr–r– 2 root other $ ln -s villes villes10 $ ls villes* -rwxr–r– 2 root other -rwxr–r– 2 root other lrwxr–r– 1 root other 5423661 5423661 Apr Apr 1 1 1997 1997 villes villes5 5423661 5423661 5423661 Apr Apr Apr 1 1 1 1997 1997 1997 villes villes5 villes10 -> villes Remarque : Les liens peuvent aussi concerner des repertoires (dans ce cas, ce seront toujours des liens symboliques).

TP N°10 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 31 Guide d’initiation UNIX sort Syntaxe : sort [-ufnr] [-o fic] [fichier… ] Description : La commande sort trie les lignes des fichiers en arguments et affiche le resultat a l’ecran. Le clavier est lu si fichier est omis. Par defaut sort effectue un tri par ordre alphabetique; mais les options suivantes en modifient les criteres. Options courantes -u -f -n -r -o fic permet de n’afficher qu’une seule fois les lignes multiples ne differencie pas les minuscules et MAJUSCULES effectue un tri numerique ordre decroissant enregistre la sortie dans fic

Exemple : $ sort villes Couvron Douai Phalsbourg Sarrebourg $ sort -r villes Sarrebourg Phalsbourg Douai Couvron Remarque : TP N°11 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 32 Guide d’initiation UNIX umask Syntaxe : umask [??? ] Description : La commande umask permet de definir les droits affectes par defaut aux fichiers lors de leur creation. Si le masque ??? est omis, alors umask affiche le masque en cours. Options courantes ??? Chaque ? represente une valeur entre 0 et 7 qui est le complement a 7 des droits a affecter aux fichiers.

Si l’on veut avoir des fichiers avec 751 (rwxr-x–x ) comme droits, il faudra definir comme masque 026 (on remarque que 7+0 = 5+ 2 = 1+ 6 = 7 ). Vos fichiers seront donc crees avec les droits 755 Exemple : $ umask 022 $ umask 022 Remarque : Il faut noter que les droits affectes a la creation d’un fichier dependent aussi de l’utilitaire qui les a crees; si vous avez un masque 000 et que vous creez un fichier avec vi, les droits effectifs de votre fichier sont 666 (rw-rw-rw- ) car vi est un editeur de texte et non de programmes shells.

A l’inverse, quel que soit le masque utilise, le compilateur c cc (programme permettant de creer des fichiers programmes) positionnera toujours les droits d’execution sur les fichiers qu’il cree. TP N°12 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 33 Guide d’initiation UNIX wc Syntaxe : wc [-lwc] [fichier… ] Description : La commande wc compte le nombre de lignes, mots, ou caracteres d’un fichier texte Si aucun fichier n’est passe en parametre, c’est l’entree standard qui sera lue. Si aucune option (-lwc) n’est precisee, alors wc compte le nombre de lignes, mots, et caracteres du fichier.

Options courantes -l -w -c precise que c’est le nombre de lignes qui doit etre compte precise que c’est le nombre de mots qui doit etre compte precise que c’est le nombre de caracteres qui doit etre compte Exemple : $ 4 $ 4 nombre de lignes wc -l villes villes wc villes 4 36 villes nombre de caracteres nombre de mots Remarque : TP N°13 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 34 Guide d’initiation UNIX Archivage et restauration de donnees ? cpio. ? tar. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 35 Guide d’initiation UNIX cpio

Syntaxe : cpio -i[ cvBdmut] [-E fic] < fichier_archive cpio -o[ cvB] > fichier_archive Description : La commande cpio permet d’archiver les fichiers dont les noms sont recus sur l’entree standard et de restaurer les fichiers d’une archive. Les archives peuvent etre soit des fichiers normaux, soit des fichiers speciaux de type blocs, ce qui permet de mettre les archives directement sur un support physique (streamer, DAT, disquette, … ). Par sa maniere de creer une archive, cpio est entierement portable entre differents systemes (UNIXWARE esim2, SINIX esim1, … ).

Il doit par consequent etre votre outil privilegie pour l’archivage. ATTENTION, si une archive a ete creee avec des chemins absolus, il n’est pas possible de les restaurer ailleurs qu’a leur emplacement d’origine. Options courantes -i -o -c -v -B -d -m -u -t -E fic restauration ou listage d’une archive existante creation d’archive cpio ajout d’un en-tete ASCII (portabilite) mode bavard ecrit des blocs de 5 Ko restauration de l’arborescence restauration des dates de modification des fichiers restauration inconditionnelle listage des fichiers de l’archive specifie le fichier fic a restaurer

Exemple : $ find . -print | cpio -ocvBdmu >/ dev/streamer fic1 fic2 rep1 rep1/fic11 rep2/fic12 $ cpio -icvBdmu < /dev/fd0 fic1 rep1 rep1/fic11 $ cpio -itv < / dev/dat -rw-rw-rw- 1 root other 192 Nov 30 10:36 1998, drw-rw-rw- 1 root other 331 Nov 30 10:36 1998, -rwxr-xr-x 1 root other 138 Apr 25 09:29 1997, fic1 rep1 rep1/fic11 TP N°14 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 36 Guide d’initiation UNIX tar Syntaxe : tar c[vf] [ fic_sortie] [fichier… tar x[vf] [ fic_entree] [fichier… ] tar t[vf] [ fic_entree] [fichier… ] Description : La commande tar archive et restaure les fichiers entres sur la ligne de commande. ATTENTION, si une archive a ete creee avec des chemins absolus, il n’est pas possible de la restaurer ailleurs qu’a son emplacement d’origine. Options courantes c x t v f creation d’un fichier d’archive extraction de fichiers d’une archive listage du contenu d’une archive mode bavard precise le fichier d’archive a utiliser Exemple : tar cvf /dev/fd0 * a fic1 1 tape block a rep1 1 tape block a rep1/fic11 1tape block $ tar tvf archive -rw-r–r–102/100 52 Jul 8 11:26 1998 drw-r–r–102/100 34 Jul 8 11:26 1998 -rw-rw-rw-102/100 36 Nov 30 09:07 1998 $ tar xvf / dev/streamer x fic1, 52 bytes, 1 tape block x rep1, 34 bytes, 1 tape block x rep1/fic11, 36 bytes, 1 tape block fic1 rep1 rep1/fic11 Remarque : TP N°15 28/04/99 37 David ROSSIGNOL (email : rossignol. [email protected] org) Guide d’initiation UNIX Utilitaires reseau ? ping reseau. verification d’une connexion ? telnet connexion au travers du reseau. David ROSSIGNOL (email : rossignol. @linux-france. org) 28/04/99 38 Guide d’initiation UNIX ping Syntaxe : ping correspondant [delai] Description : La commande ping envoie sur le reseau des paquets de reflexion. C’est a dire que le destinataire renvoie les paquets a l’emetteur. Cette commande permet donc de verifier une connexion reseau entre deux correspondants. Options courantes correspondant delai nom du correspondant ou adresse IP delai d’attente entre l’emission d’un paquet et sa reponse Exemple : $ ping www. linux-france. com www. linux-france. com is alive $ ping www. zindows-france. com UX:ping: INFO: no answer from www. indows-france. com Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 39 Guide d’initiation UNIX telnet Syntaxe : telnet [correspondant] Description : La commande telnet permet d’ouvrir une session sur une machine distante. Si le correspondant n’est pas precise sur la ligne de commande, telnet fonctionnera en mode interactif (prompt : telnet> ) et le resume des commandes s’obtient avec ? . Options courantes correspondant nom du correspondant ou adresse IP Exemple : $ telnet www. linux-france. com Trying 192. 124. 13. 42… Connected to www. linux-france. com.

Escape character is ‘^]’. Red Hat Linux release 5. 1 (Manhattan) Kernel 2. 0. 35 on an i586 login: Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 40 Guide d’initiation UNIX Commandes d’administration ? id groupe ? ps identification d’utilisateur et de liste et etat des processus ? passwd changement d’un mot de passe ? kill ? who emission de signal aux processus etat des connexions au systeme ? df etat d’occupation des systemes de fichiers ? su changement d’identite ? which localisation d’une commande ou alias . David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 1 Guide d’initiation UNIX id Syntaxe : id [utilisateur] Description : La commande id affiche des informations concernant le numero d’utilisateur (UID) ainsi que sur les groupes d’appartenance (GID). Si utilisateur est omis, id affiche les informations concernant l’utilisateur courant. Options courantes utilisateur nom d’un utilisateur connu du systeme Exemple : $ id uid=102( rsl) gid=100( other) groups=101( ftp) $ id root uid=0( root) gid=3( sys) groups=0( root), 1( other), 2( bin), 3( sys), 4(adm), 5( uucp), 6(mail), 7( tty), 8(audit), 10( nuucp), 12( daemon), 23( cron), 25( dtadmin), 47( priv),9( lp)

Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 42 Guide d’initiation UNIX ps Syntaxe : ps [-ef] [-t liste] [-u liste] Description : La commande ps affiche l’etat des processus; si aucune option n’est donnee, ce sont les processus de la session active qui sont affiches. Options courantes -e -f -t liste -u liste affiche tous les processus du systeme affiche les information au format long affiche les processus lies aux terminaux de la liste affiche les processus lies aux utilisateurs de la liste Exemple : ps PID CLS PRI 6665 TS 70 9280 TS 59 $ ps -ef | head -5 UID PID PPID root 0 0 root 1 0 root 1019 1 root 88 1 $ ps -u rsl PID CLS PRI 964 TS 80 958 TS 80 961 TS 80 6665 TS 70 9323 TS 59 TTY TIME pts/3 0:00 pts/3 0:00 CLS SYS TS TS TS PRI 79 70 85 88 C 0 0 0 0 COMD ksh ps STIME Nov 28 Nov 28 Nov 28 Nov 28 TTY ? ? ? ? TIME 0:14 0:03 0:00 0:00 COMD sysproc /sbin/init /usr/lib/saf/sac -t 300 /usr/lib/mousemgr TTY ? ? ? pts/3 pts /3 TIME 0:00 0:00 0:00 0:00 0:00 COMD srv_tab xlemsup srv_imp ksh ps Remarque : Sous Linux , il faut utiliser l’option x pour voir tout les processus.

David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 43 Guide d’initiation UNIX passwd Syntaxe : passwd [utilisateur] Description : La commande passwd permet a l’utilisateur de modifier son mot de passe. Si vous etes root , il vous est alors possible de modifier le mot de passe des autres utilisateurs. Options courantes utilisateur nom d’un utilisateur du systeme Exemple : $ passwd UX:passwd: INFO: Changing password for Old password: New password: Re-enter new password: $ rsl Remarque : TP N°16 David ROSSIGNOL (email : rossignol. [email protected] rg) 28/04/99 44 Guide d’initiation UNIX kill Syntaxe : kill [-sig] num_process Description : La commande kill envoie au processus portant le numero num_process un signal (sig). Par defaut, c’est le signal 15 (TERM) qui est envoye. Options courantes -sig signal valide a transmettre. Les plus courants sont : 15 (TERM) demande au processus de se terminer (proprement!!! ) 9 (KILL) demande au processus de se terminer (inconditionnel) num_process numero d’un processus (PID) Exemple : $ ps PID CLS PRI 6665 TS 70 9280 TS 59 $ kill -9 6665 SURPRISE !!!

TTY TIME pts/3 0:00 pts/3 0:00 COMD ksh ps Remarque : Le numero du processus (PID) peut etre determine avec la commande ps La commande kill ne vous permettant pas de tuer les taches des autres utilisateurs (seul le compte root peut le faire). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 45 Guide d’initiation UNIX who Syntaxe : who am i who Description : La commande who affiche les utilisateurs connectes au systeme. Elle permet aussi de vous informer sur votre connexion. Options courantes am i ‘qui suis-je’ en francais; information sur votre connexion Exemple : who root tty0 rsl ttyp0 rsl pts/3 $ who am i rsl pts/3 Nov 30 10:41 Nov 30 15:28 (192. 152. 230. 14) Nov 30 09:07 (192. 152. 230. 15) Nov 30 09:07 (192. 152. 230. 15) Remarque : ATTENTION, si vous avez utilise la commande su, who ne vous donnera que les informations de votre connexion initiale. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 46 Guide d’initiation UNIX df Syntaxe : df -k Description : La commande df vous donne des informations sur l’etat d’occupation des systemes de fichiers. Par defaut, df donne ces indications en blocs Options courantes -k donne les indications en Ko

Exemple : $ df -k filesystem /dev/root /proc /dev/dsk/c0b0t0d0sa /dev/fd /dev/dsk/c0b0t1d0s3 /dev/dsk/c0b0t0d0s3 /dev/dsk/c0b0t0d0s4 /dev/dsk/c0b0t0d0sb /dev/dsk/c0b0t1d0s1 /dev/dsk/c0b0t1d0sb kbytes used 500736 344072 0 0 16384 4298 0 0 200704 49800 300032 95896 1210368 251472 1900544 1700720 1935360 745184 1900544 1570816 avail capacity mounted on 156664 69% / 0 0% /proc 12086 26% /stand 0 0% /dev/fd 150904 25% /var 204136 32% /home 958896 21% /home 199824 89% /rsl 1190176 39% /ux 329728 83% /root Nom du fichier special representant la partition Taille de la partition en Ko Utilisation en Ko

Pourcentage d’utilisation Espace restant en Ko Point de montage Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 47 Guide d’initiation UNIX su Syntaxe : su – [utilisateur] Description : La commande su permet de changer en cours de session l’utilisateur courant. Par defaut, si utilisateur n’est pas precise, su essaie de vous connecter root Options courantes utilisateur charge le profil de l’utilisateur (variables, … ) nom d’un utilisateur connu du systeme Exemple : $ su Password: $ su – rsl Password: Remarque : TP N°16 David ROSSIGNOL (email : rossignol. @linux-france. org) 28/04/99 48 Guide d’initiation UNIX which Syntaxe : which [commande] Description : La commande which vous indique la commande qui sera executee si vous tapez commande . which effectue une recherche dans le PATH. Options courantes commande commande telle que vous la tapez au clavier Exemple : $ which ls /usr/bin/ls $ which startx /usr/bin/X11/startx Remarque : David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 49 Guide d’initiation UNIX Commandes orientees shell ? echo standard affichage de texte sur la sortie ? expr evaluation numeriques ? test diverses ? lear evaluation d’expressions d’expressions efface l’ecran David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 50 Guide d’initiation UNIX echo Syntaxe : echo [-n] message Description : La commande echo affiche sur la sortie standard les messages passes en parametres (apres leur interpretation par le shell). Options courantes -n n’affiche pas de saut de ligne final Exemple : $ echo ceci est un petit message ceci est un petit message $ echo $PATH /bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bi n:/home/rossignol_d/bin $ echo $PATH $PATH Remarque : TP N°17

David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 51 Guide d’initiation UNIX expr Syntaxe : expr exp1 { + | – | * | / | % } exp2 Description : La commande expr evalue l’expression de la ligne de commande et retourne le resultat sur la sortie standard. Options courantes expX + | – | * | / | % constante numerique ou variable du meme type operateur logique representant respectivement l’addition, la soustraction, la multiplication (precedees d’un pour que le caractere * ne soit pas interprete par le shell), la division, le modulo (reste d’une division entiere) Exemple : a=a+1 $ echo $a a+1 $ a=0 $ a=`expr a + 1` $ echo $a 1 $ echo `expr 23 % 6` 5 Remarque : Il est indispensable de mettre un espace entre exp1 et l’operateur, et entre l’operateur et exp2. TP N°18 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 52 Guide d’initiation UNIX test Syntaxe : test [expression] [ expression ] Description : La commande test evalue expression et si sa valeur est vraie, retourne un code de sortie zero Options courantes ch1 = ch2 ch1 ! = ch2 nb1 – eq nb2 nb1 -ne nb2 nb1 -gt nb2 nb1 – ge nb2 nb1 – lt nb2 nb1 -le nb2 -r fic -w fic -x fic -f fic -d fic -a -o haines de caracteres ch1 et ch2 identiques chaines de caracteres ch1 et ch2 differentes nombres nb1 et nb2 egaux nombres nb1 et nb2 differents nombre nb1 superieur a nb2 nombre nb1 superieur ou egal a nb2 nombre nb1 inferieur a nb2 nombre nb1 inferieur ou egal a nb2 vrai si fic existe et est lisible vrai si fic existe et est accessible en ecriture vrai si fic existe et est executable vrai si fic existe et est un fichier ordinaire vrai si fic existe et est un fichier repertoire operateur logique ET operateur logique OU Exemple : $ $ 1 $ $ 0 test $USERNAME = echo $? [ -d / tmp ] echo $? rsl Affichage du code de sortie (exit status). = FAUX 0=VRAI Remarque : cette commande est le plus souvent associee a des instructions de controle (if, while, … )dans les scripts shell. TP N°19 David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 53 Guide d’initiation UNIX clear Syntaxe : clear Description : La commande clear efface l’ecran du terminal actif. Options courantes clear n’accepte pas d’option Exemple : $ clear Remarque : Certains systemes permettent d’effacer un autre terminal que le sien ( clear tty12 ). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 54 Guide d’initiation UNIX ANNEXE 1 :

Presentation complementaire du systeme UNIX. Afin d’approfondir plus en detail le fonctionnement interne d’UNIX vous trouverez dans cette partie du cours un complement d’information de la partie theorique. Architecture d’UNIX : Afin d’assurer une certaine stabilite au systeme, UNIX a ete concu autour d’une architecture en couche. Il y a trois couches fondamentales qui forment le systeme : • Le noyau (Kernel) ; • La couche de gestion des peripheriques ; • La couche de processus utilisateurs. Notions de processus : Un processus est n’importe quel traitement, appelant un ou plusieurs programmes et produisant un resultat.

Une seule copie d’un programme en memoire peut etre utilisee par plusieurs processus ( reentrance) ; lorsque des utilisateurs creent des processus qui font appel aux memes programmes, la distinction entre processus est faite par leur image, qui par definition est l’ensemble des elements necessaires a l’execution d’un processus a un instant donne (etat de la memoire, des registres, des fichiers, d’un processus). Un processus peut se dupliquer par le biais de l’appel systeme fork ; le processus cree est alors appele ‘fils’, et son image differe du ‘pere’ uniquement par son numero d’identification (PID).

Les processus dits ‘systeme’ sont enclenches par le noyau. David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 55 Guide d’initiation UNIX Chaque processus utilisateur dialogue avec l’exterieur par le biais de trois fichiers particuliers qui sont ouverts en permanence : • l’entree standard (standard input, handle 0) ; • la sortie standard (standard output, handle 1) ; • la sortie d’erreur standard (standard error output, handle 2) ; par defaut, ces fichiers sont lies au terminal, et representent le clavier (input) et l’ecran (output).

Il est possible de rediriger ces fichiers standards vers des fichiers differents en utilisant les sigles de redirection ‘’ representant la sortie du processus (voir Le shell/Redirection des entrees-sorties pour plus de details) Un processus peut prendre six etats differents : • en cours(d’execution par le processeur) –> O(n the processeur) • actif (pret a l’execution) ->R(unnable); • endormi (en attente) ->S(leeping); • invalide (en attente de memoire) ->X (SXBRK); • cree (etat transitoire, processus en cours de reation) ->I( dle); • zombie (l’execution du processus est terminee, mais ses elements restent visibles) ->Z(ombie); • arret (processus mis en attente par l’utilisateur)->T( raced). La liste de tous les processus avec leur etats peut etre affichee avec la commande ps –el. Lorsqu’un processus est actif, il a le controle du processeur de l’unite centrale ; lorsqu’il change d’etat, le systeme utilise un mecanisme de ‘ swapping’ et ecrit l’image du processus sur le disque dur (dans une zone reservee ! ).

Communication et synchronisation entre processus : Nous venons de voir que les entrees et sorties d’un processus pouvaient etres detournees vers des fichiers ; mais puisque plusieurs processus peuvent s’executer en meme temps, il pourrait etre utile de rediriger ces sorties vers l’entree d’autres processus, ou plus generalement d’echanger des donnees entre processus. Les mecanismes suivants sont mis en place a cet effet : • Les Pipes (tubes) Avec l’etablissement d’un pipe entre deux processus, la sortie du premier devient l’entree du second.

Le symbole ‘|’ sert a etablir ce pipe. Exemple : ls | pg • Les piles FIFO (First In First Out) ou pipes nommes Ils agissent comme les pipes ordinaires, la difference etant qu’ils ont une entree dans un repertoire et peuvent etre utilises par des processus independants. • Les evenements Le systeme annonce au processus actif l’arrivee d’un evenement ; cela peut etre utilise soit pour declencher (arreter) un processus, soit pour synchroniser l’execution de plusieurs processus.

L’utilisateur peut introduire des evenements a l’aide de la commande kill ; certaines touches de controle sont normalement associees a des evenements. (Ex : Ctrl-C interruption) David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 56 Guide d’initiation UNIX Le noyau : Le noyau gere les taches de base du systeme : • l’initialisation; • la gestion des processus systeme; • la gestion des processus utilisateurs; • la gestion du processeur et de la RAM; • la gestion des systemes de fichiers.

Le partage du temps processeur entre les processus actifs est gere par le processus systeme appele ‘scheduler’ et il est base sur l’horloge de l’ordinateur. A des intervalles reguliers (de l’ordre d’un centieme de seconde), le processeur abandonne l’execution du processus courant et passe a l’execution du premier processus de plus haute priorite en attente. Pour accomplir les taches qui lui sont propres, le noyau accede a un groupe de tables, dites systeme, qui concernent les processus actifs, les fichiers ouverts, le super bloc (voir gestion des fichiers), les buffers d’entree-sortie, etc.

A chaque intervalle, un examen de la table des processus permet au noyau de determiner lequel doit etre execute; les donnees propres a chaque processus actifs (environnement de variables, etat des registres, … ) sont presentes dans une zone memoire reservee du noyau. Avant l’execution du processus selectionne, le noyau passe la main au ‘swapper’, le processus systeme qui gere les ressources memoire et procede si necessaire a des echanges entre la RAM et le disque dur. Ensuite, le processus est enclenche ( etat Actif). La gestion des fichiers :

L’exploitation de la memoire de masse est realisee par des structures appelees systemes de fichiers (file systems), qui occupent un espace physique du support exprime en blocs de 1024 octets. Exemple : un disque de 100 Mo, abritant un systeme de fichiers qui l’occupe entierement, est constitue d’a peu pres 100 000 blocs. Les deux premiers blocs sont reserves par le systeme. Le premier bloc est vide sauf s’il s’agit du systeme de fichiers principal ( bootable), qui dans ce cas contient un programme appele ‘bootstrap’ (il est charge en memoire a l’initialisation).

Le second bloc, appele ‘super bloc’, contient les informations significatives concernant le systeme de fichiers; un de ses roles etant a tout moment de repertorier l’occupation des blocs du systeme de fichier, le noyau doit le modifier a chaque modification ou creation de fichier. Pour des raisons d’optimisation, le noyau n’ecrit pas sur le disque mais modifie une image du super bloc chargee en memoire vive qui, a certains moments dans la vie du systeme (et notamment lors de l’arret de la machine), est reecrite sur le disque.

Dans le cas d’un arret brutal du systeme, au demarrage suivant, le super bloc ne correspond plus a l’occupation effective des blocs et l’utilitaire fsck (File System ChecK) s’avere necessaire pour reconstituer le super bloc (ATTENTION : cette procedure ne fonctionne pas toujours !!! ). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 57 Guide d’initiation UNIX Structure d’un file system (1 bloc = 1024 octets) N° DE BLOC 0 1 2aN N+1 a M De M+1 a 95% du FS CONTENU ‘bootstrap’ pour une partition principale, sinon vide. Super bloc Table des inodes (16 inodes par blocs).

Adresses d’indirection. Zone de donnees (Fichiers – espace libre). Zone reservee par le systeme en cas de saturation de la zone de donnees Les 5 % restants Les adresses d’indirection sont utilisees pour la localisation des fichiers de taille superieure a 10 blocs. N et M correspondent a des nombres calcules par la machine lors de la creation du FS en fonction du nombre d’inodes que vous avez reserves. Pour creer un FS, il vous faut utiliser la commande mkfs (MaKe File System). David ROSSIGNOL (email : rossignol. [email protected] org) 28/04/99 58 Guide d’initiation UNIX Structure du super bloc

Champ s_isize s_fsize s_nfree s_free s_ninode s_inode s_flock s_ilock s_fmod s_ronly s_time s_dinfo s_tfree s_tinode s_fname s_fpack s_fill s_state s_magic s_type Contenu taille en blocs de la table des inodes taille en blocs du file system liste des blocs libres adresse du premier bloc libre liste des inodes libres numero du premier inode libre flag de verrouillage pendant la mise a jour des 4 champs ci-dessus flag de verrouillage pendant la mise a jour de la table des inodes flag de modification du super bloc flag de lecture seule date de la derniere modification du super bloc information sur le device (sur lequel se trouve le FS) nombre de blocs libres nombre d’inodes libres nom du file system nom ‘pack’ du file system zone d’ajustement etat du file system nombre magique du file system type du file system

Dans le super bloc, le noyau lit les informations concernan