Memento UNIX
Transcription
Memento UNIX
UNIX-MEMENTO ([email protected]) Légende • • • En gras : ce qui est affiché à l’écran par le système UNIX. En italique : ce qui doit être tapé. En contour : les symboles, les touches, les signes, les mots-clefs, etc. Note : dans les commandes UNIX, il est nécessaire de distinguer méthodiquement majuscules et minuscules. Il est préférable d’utiliser les minuscules. I. Le « login »/« logout » Une session UNIX débute par un « login » : Login: Il est nécessaire de préciser son compte ou encore nom d’utilisateur : Login: FranckBarbier Passwd: Pour terminer, il faut taper un mot de passe reconnu par UNIX. Ce mot de passe n’apparaît pas à l’écran. Le prompt apparaît à l’écran et signifie que le travail peut commencer. Ce prompt est en général le caractère $ pour un utilisateur quelconque, le caractère # pour le super utilisateur (celui-ci rentre dans le système avec le nom d’utilisateur prédéfini root). Le prompt peut être par la suite modifié. Une session UNIX se termine par un « logout » : CTRL + D (taper simultanément sur les touches CTRL et D). Le signe ^D apparaît en général à l’écran. Note : CTRL + D désigne plus généralement le caractère de fin de fichier. Il existe aussi la commande logout. II. Les touches particulières • CTRL + S : arrêt du défilement à l’écran alors que CTRL + Q correspond à la reprise du défilement à l’écran Page 1 UNIX-MEMENTO ([email protected]) • • • • CTRL CTRL CTRL CTRL + + + + O : dérivation des sorties à l’écran vers le néant (/dev/null) C : interruption de processus Z : suspension de processus H, CTRL + U, CTRL + W : effacement de caractères, lignes, mots... III. Premières commandes $echo ^G On entend alors « bip ». La commande echo comme son nom l’indique renvoie à l’écran le paramètre qui l’accompagne. Exemples • • $echo $LOGNAME $echo "Salut..." Pour changer son mot de passe : passwd. $passwd Old passwd: il faut ici taper l’ancien mot de passe qui n’apparaît pas l’écran. New passwd: il faut taper le nouveau mot de passe puis Return et recommencer autant de fois qu’UNIX le demande, en particulier si le nouveau mot de passe ne comporte pas beaucoup de caractères ! Pour changer le compte sur lequel on travaille : login. $login AlfredDubois AlfredDubois est un compte ou nom d’utilisateur. On quitte UNIX et on entre à nouveau avec une nouvelle identification. UNIX demandera alors le mot de passe du compte avec lequel on entre. Pour un « login » sur une machine reliée par un réseau local, il faut utiliser la commande rlogin. Pour effacer l’écran : clear (substitut : $pg -c</dev/null). Page 2 UNIX-MEMENTO ([email protected]) IV. Le système de fichiers Avec UNIX tout est fichier, c’est-à-dire traité en tant que tel. Par exemple, un périphérique (« device ») est un fichier : un écran est donc un fichier (c’est pour cette raison que l’on utilise le caractère de fin de fichier CTRL + D pour terminer une session depuis l’écran où l’on travaille). /dev/null est un fichier particulier désignant le néant (toute opération d’écriture sur ce fichier revient à jeter à la poubelle les données). Le système de fichiers est organisé suivant une hiérarchie. Le répertoire (« directory ») principal de cette hiérarchie est /. Par nature, un répertoire contient des fichiers ainsi que des sous-répertoires. Les sous-répertoires du répertoire / sont en particulier : • /dev : les périphériques • /bin : les commandes sous forme de fichiers exécutables • /etc : les fichiers principaux manipulés par UNIX, par exemple /etc/passwd est le • fichier des utilisateurs et de leurs mots de passe /usr : les utilisateurs ainsi que les répertoires, sous-répertoires, fichiers... qui leur sont • propres Etc. La façon la plus simple pour désigner un fichier ou un répertoire est de préciser le chemin pour l’atteindre depuis /. Exemple : /usr/glandeurs/jeux/chess est le fichier ou répertoire chess dans le répertoire jeux lui-même dans le répertoire glandeurs lui-même dans le répertoire usr lui-même dans /. Avant d’en venir à la gestion du système de fichiers, considérons la commande man (manuel d’utilisation d’UNIX) $man hier Cette commande donne des informations sur la hiérarchie d’UNIX, et plus généralement $man commande_UNIX donne des informations sur commande_UNIX. Exemple : $man login, c’est-à-dire comment fonctionne la commande login. V. Exécution d’une commande $/bin/cat /etc/passwd Page 3 UNIX-MEMENTO ([email protected]) J’effectue la commande cat (visualisation du contenu d’un fichier) dont le fichier exécutable est dans le répertoire bin sous-répertoire de /. Je visualise le contenu du fichier passwd (fichier des utilisateurs et de leurs mots de passe) qui est dans le répertoire etc sous-répertoire de /. Plus simplement : $cat /etc/passwd (UNIX est configuré de manière à connaître les répertoires où se trouvent les fichiers exécutables de la majorité des commandes - $echo $PATH fournit la liste de ces répertoires). Encore dans un souci de simplification, on utilise les chemins relatifs (relativement à l’endroit où l’on se trouve) au lieu des chemins absolus. $pwd : où suis-je dans la hiérarchie ? $cd /etc : je me déplace dans le répertoire etc de /. $cat passwd : j’exécute plus simplement la commande $cat /etc/passwd. J’utilise le fait que je me trouve dans le répertoire etc de /. Pour désigner des répertoires à l’aide de chemins relatifs, on utilise les symboles suivants : • . le répertoire courant (où je me trouve à un instant t) • .. le répertoire immédiatement supérieur au répertoire courant • $HOME le répertoire utilisateur (celui où je me trouve après le « login », celui où je travaille en général). $echo $HOME fournit le nom de ce répertoire utilisateur Note : au même titre que $LOGNAME ou $PATH, $HOME définit une variable de l’utilisateur gérée par UNIX. Exemples • • • • $cd .. $cd / $cd $HOME $cd $HOME/x où x est un sous-répertoire de $HOME (le répertoire utilisateur) VI. Généralisation de la manipulation des fichiers et répertoires Création de répertoire : $mkdir nom_repertoire (en absolu ou en relatif) Page 4 UNIX-MEMENTO ([email protected]) L’option -p est intéressante dans la mesure où elle permet de créer des répertoires intermédiaires. Exemple : $mkdir -p $HOME/a/b/c qui permet de créer depuis $HOME les répertoires a, b et c suivant l’arborescence spécifiée. Destruction de répertoire : $rmdir nom_repertoire (en absolu ou en relatif) Création de fichier (1ère approche) : $cat>$HOME/nom_fichier (le fichier nom_fichier est créé dans le répertoire $HOME). Il faut terminer la saisie par CTRL + D. Note : la commande cat permet de visualiser le contenu d’un fichier si elle est utilisée sans le caractère >. On peut aussi visualiser le contenu d’un fichier avec la commande more ou pg. Exemple : $more /etc/ttys (tester les possibilités de more ou pg en fonctionnement : ?, q ou Q, !, Space, Return, /, etc.). Destruction de fichier(s) et répertoire(s) : $rm $HOME/nom_fichier ou encore $rm -r $HOME/nom_repertoire L’option -r fait que l’on indique un nom de répertoire alors que si on ne l’utilise pas, on indique un nom de fichier. Tout ce qui y est contenu est détruit, le répertoire lui-même et récursivement les différents sous-niveaux s’il y a lieu. L’option -i permet une destruction interactive (confirmation y or n pour chaque entité détruite). Il est d’ailleurs souvent plus sûr de faire $rm -ri nom_fichier(s). Contraintes : • la création et la destruction de répertoires sont subordonnées aux propriétés de ces répertoires et de leurs fichiers. Cela résulte des prérogatives qui sont attribuées par UNIX à chaque utilisateur. Compte tenu de cela, on peut manipuler les répertoires et les fichiers des autres utilisateurs que si nos prérogatives nous le permettent. Bien entendu, le super utilisateur (root) peut lui tout faire. • la destruction de répertoires par la commande rmdir implique que ces répertoires sont vides. Exercice : la société APIIC vous demande de construire la hiérarchie suivante : Page 5 UNIX-MEMENTO ([email protected]) $HOME Methodes Etudes CAO Usr FAO GestionDeProduction Usr GPAO Usr Maintenance MAO Usr Cette société vous demande aussi de construire dans le répertoire $HOME les fichiers suivants : • CAO.inf : logiciel de CAO qui est le logiciel CATIA version 4.3 • FAO.inf : il n’y a pas de logiciel de FAO implanté actuellement • GPAO.inf : logiciel de GPAO est le logiciel PRODSTAR version 6.0 • MAO.inf : il n’y a pas de logiciel de MAO implanté actuellement • InfoGenerales : la hiérarchie dans laquelle vous vous trouvez concerne les systèmes d’information de la société APIIC pour le conception/fabrication/gestion/maintenance de son système productif cycle de Les cinq fichiers préalablement énoncés sont créés comme suit : $cat>CAO.inf texte... CTRL + D VII. Visualisation du contenu d’un répertoire La commande ls permet de visualiser le contenu d’un répertoire. Elle est utilisable avec de nombreuses options. Les plus intéressantes sont : • -a : pour faire apparaître tous les fichiers, en particulier les fichiers cachés préfixés dans UNIX par un point (« dot » en anglais). Par exemple .profile est un fichier que l’on rencontre souvent dans le répertoire $HOME. • -F : pour faire apparaître les différents types de fichiers : * exécutable, / répertoire, @ • lien... -l : cette option est toujours utilisée car elle donne tous les attributs des fichiers. Page 6 UNIX-MEMENTO ([email protected]) • -R : récursivement, c’est-à-dire que tout ce qui est contenu dans les sous-niveaux est • visualisé. -i : pour faire apparaître le numéro physique par nature unique (« inode ») des fichiers. Cette option est intéressante pour voir si des fichiers sont liés. Usage le plus courant : $ls -alF Autre usage intéressant : $ls -d donne des informations sur le répertoire lui-même plutôt que sur son contenu. Exercice : vérifier à l’aide de la commande ls que ce qui a été précédemment construit est bien ce qui avait été demandé. Note : les caractères * et ? peuvent être utilisés dans les commandes (* remplace une suite de caractères alors que ? remplace un seul caractère). Les commandes telles que rm, ls... acceptent donc les caractères * et ?. Exemple : $rm -i /usr/GillesDupont/.p* c’est-à-dire tous les fichiers cachés (.) dont le nom commence par p doivent être détruits interactivement dans le répertoire GillesDupont du répertoire usr du répertoire /. VIII. Duplication, déplacement et liaison de fichiers La duplication de fichiers est réalisée avec la commande cp (voir aussi cpio pour des copies de « device » à « device »). Le déplacement de fichiers est réalisé avec la commande mv. La liaison de fichiers est réalisée avec la commande ln. Exemples • $cp $HOME/aout/aout.act ./septembre/septembre.act : le fichier aout.act du répertoire aout est dupliqué. Il prend pour nom septembre.act dans le répertoire septembre où il est copié. • $cp $HOME/aout/* . : tous les fichiers non cachés (*) du répertoire aout sont dupliqués sous le même nom dans le répertoire courant (.). $mkdir $HOME/moi ; cp p* $HOME/moi (; désigne la séquence de commandes) : tous les fichiers non cachés du répertoire courant commençant par p sont dupliqués dans le répertoire moi. Pour dupliquer d’une machine à une autre par un réseau local, il faut utiliser la commande rcp. Page 7 UNIX-MEMENTO ([email protected]) La commande mv fonctionne comme la commande cp à ceci près que les fichiers sont seulement déplacés et éventuellement renommés. Exemple : $mv x y : ici, il n’y a pas de déplacement, x change de nom pour s’appeler y. La commande ln a pour but pour un même fichier physique de lui attribuer plusieurs noms. Un fichier peut donc être référencé à différents endroits de la hiérarchie du système de fichiers. Exemple : $ln $HOME/aout/aout.act /usr/commun_a_tous c’est-à-dire que le fichier aout.act prend le nom de commun_a_tous dans le répertoire usr de /. Exercice : la société APIIC vous demande de construire un fichier USR.liste contenant Dupont G., Lambert M., Dublanc A., Maire J.P., Dersec G., Zoe Y., Joutat M. et Fradet S. Il faut ensuite placer ce fichier dans le répertoire CAO et le lier pour qu’il apparaisse dans le répertoire FAO. Le fichier USR.liste à créer dans le répertoire GPAO doit lui contenir Rouget P. et Martin D. ; il doit être lié pour apparaître dans le répertoire MAO. De plus, la société APIIC vous demande de lier le fichier InfoGenerales sous le nom Info de manière à ce qu’il apparaisse dans tous les répertoires de la hiérarchie précédemment créée, puis de déplacer le fichier CAO.inf dans le répertoire CAO ; faire de même pour tous les fichiers de suffixe .inf actuellement dans le répertoire $HOME. IX. Les propriétés des fichiers Les propriétés des fichiers apparaissent au moment de l’exécution de la commande ls : $ls -l aout.act Résultat à l’écran : -rwxr--r-1 prérogatives liens FranckBarbier propriétaire staff 512 groupe taille May 31 date 14:30 aout.act heure nom fichier • 1ère position : type du fichier (d : répertoire, - : fichier standard, l : lien, p : pipe, b et c : device) • • • 2, 3 et 4ème : prérogatives du propriétaire du fichier 5, 6 et 7ème : prérogatives du groupe du propriétaire 8, 9 et 10ème : prérogatives des autres utilisateurs La commande chmod permet de changer les propriétés d’un fichier : $chmod xyz nom_fichier : Page 8 UNIX-MEMENTO ([email protected]) • • • où x est égale à u : « moi », g : mon groupe (essayer la commande $groups ou $cat /etc/group pour connaître son groupe d’appartenance), o : les autres, a : tout le monde. où y est égale à + ou -. où z est égale à r : readable, w : writable, x : exécutable (pour un répertoire, cela signifie que l’on peut y effectuer des recherches), - : non actif. $chmod g+w $HOME/moi : je donne l’autorisation (+) aux utilisateurs de mon groupe (g) d’écrire (w) dans le répertoire moi de $HOME. $chmod a-r aout/aout.loi : je supprime l’autorisation (-) à tout le monde (a) de lire (r) le fichier aout.loi du répertoire aout du répertoire courant. La commande umask permet quant à elle de définir par défaut la configuration des propriétés attribuées à un fichier à l’instant de sa création. Exemples • • $umask : fournit la configuration en cours $umask ogp : modifie la configuration en cours pour la configuration ogp (o : « owner », g : « group » et p : « public ») Pour un fichier : 0 = rw-, 1 = rw-, 2 = r--, 3 = r--, 4 = -w-, 5 = -w-, 6 = ---, 7 = --Pour un répertoire : 0 = rwx, 1 = rw-, 2 = r-x, 3 = r--, 4 = -wx, 5 = -w-, 6 = --x, 7 = --Analyser les commandes $umask 2 et $umask 077 Exercice : placer dans la configuration drwxr-xr-x tous les répertoires depuis $HOME. Placer dans la configuration -rwxrw-rw- tous les fichiers depuis $HOME sauf le fichier InfoGenerales à placer dans la configuration -rwxrwxrwx après avoir ajouté le mot echo devant la phrase contenue dans le fichier InfoGenerales. Exécuter ensuite InfoGenerales. X. Création et modification de fichier (autres approches) $cat>>$HOME/aout/aout.loi planche à voiles et éventuellement natation CTRL + D Si le fichier aout.loi contenait : Escalade la première quinzaine d’août, avant la mer, certainement la seconde quinzaine Page 9 UNIX-MEMENTO ([email protected]) Le fichier aout.loi contient alors : Escalade la première quinzaine d’août, avant la mer, certainement la seconde quinzaine planche à voiles et éventuellement natation $touch -c nom_fichier : cette commande actualise les attributs d’un fichier c’est-à-dire l’heure, la date. L’option -c provoque le retour d’une erreur si le fichier n’existe pas. Si cette option n’est pas utilisée et que le fichier n’existe pas, il est créé avec une taille égale à 0. Exercice : à la suite de l’acquisition d’un logiciel intégré de GPAO-MAO appelé GPMAO, la société APIIC vous demande de : • couper la branche Maintenance de la hiérarchie • créer un nouveau fichier GPAO.inf où l’expression "PRODSTAR version 6.0" est • remplacée par "GPMAO version 1.0" ajouter au fichier USR.liste se trouvant dans le répertoire GPAO : Bidochon G. puis actualiser les attributs de tous les répertoires et fichiers inclus dans $HOME. XI. L’environnement Certaines commandes permettent de prendre connaissance de l’environnement de travail : les caractéristiques de la machine, le terminal de connexion... La commande tty permet de déterminer le terminal de connexion. La commande uname permet de déterminer les caractéristiques de la machine et du système UNIX utilisés. Tester cette commande avec l’option -a pour afficher toutes les caractéristiques. Les commandes who et whoami permettent de connaître les utilisateurs du système. Différentes utilisations sont possibles : • $who • $whoami • $who am i Les options intéressantes de la commande who sont : • -b : pour afficher la date et l’heure de la dernière activation du système • -T ou -u : pour afficher des informations plus complètes telles que l’activité de l’utilisateur, les processus en cours... Page 10 UNIX-MEMENTO ([email protected]) La commande w est une commande du même type que who. Elle informe de manière systématique sur les utilisateurs du système et leurs activités. Note : on peut trouver dans le fichier /etc/utmp les utilisateurs du système. Essayer $cat /etc/utmp Comme nous l’avons vu, UNIX gère pour chaque utilisateur des variables. La spécificité de celles-ci est d’être préfixé par un $ : $HOME, $LOGNAME ou encore $PATH. Il est bien entendu intéressant de travailler de manière plus générale avec ces variables : connaître leur valeur, en définir de nouvelles, etc. Les commandes set et env permettent de connaître ces variables. Quelques usages de e nv • • • • $env $env VAR="Societe APIIC" $echo $VAR $env Autres méthodes avec s et • • • • • • • • • $set $set VAR="Societe APIIC" $echo $VAR $VAR= "Societe APIIC" $echo $VAR $ll="ls -alF" $$ll $AutreVar= $echo $AutreVar L’environnement peut se voir doter en plus des variables, des fonctions. La définition d’une fonction s’opère comme suit : $nom_de_fonction() { commande1 ; commande2 ; ... } Page 11 UNIX-MEMENTO ([email protected]) Exemple $ll() >{ >ls -alF ; >} $set $ll $unset ll $ll $set Conclusion ? Autre exemple $cwd() >{ >cd $1 >b=`pwd` >PS1="$b>" >} $cwd $HOME Exercice : construire une fonction hcd qui permet de mémoriser dans un fichier historique les répertoires où l’on se déplace durant une session. Exemple : $hcd $1 $2 où $1 (1er paramètre de la procédure hcd) est le répertoire où l’on se déplace et $2 (2ème paramètre de la procédure hcd) est le fichier historique. Il existe des caractères spéciaux définissant des variables spéciales, en particulier : • • • • • $ : numéro de processus du shell actif ? : statut final de la commande exécutée en dernier lieu (0 : OK) ! : numéro du dernier processus en tâche de fond # : nombre d’arguments et @ : tous les arguments - : options du shell Afficher les variables suivantes : $$ $? $! $# $* $@ $- et $0. Que représente $0 ? Page 12 UNIX-MEMENTO ([email protected]) Essayer $set X Y Z et $echo $# et $echo $1 $2 $3 Utilisation des variables de position (donner une interprétation de ce qui suit) : $cat>1erProg echo Mon nom est $1 CTRL + D $chmod a+x 1erProg $1erProg $1erProg FranckBarbier ou $sh 1erProg ou $sh 1erProg FranckBarbier Comment sont utilisées les `(backquote), '(quote) et "(double quote) ? Pour cela, essayer : $v1=acces interdit ; echo $v1 $v1="acces interdit" $Message="Probleme : $v1" ; echo $Message $Message='Probleme : $v1' ; echo $Message $Message='"Probleme : $v1"' ; echo $Message Conclusion ? XII. La redirection des E/S Exercice : créer un fichier formation contenant les personnes assistant à cette formation UNIX. La commande wc permet de compter les éléments d’un fichier et permet d’illustrer la redirection des E/S. Exemples • • • $wc -c formation : compter les caractères $wc -w formation : compter les mots $wc -l formation : compter les lignes La commande wc est souvent utilisée dans le cadre de la redirection des E/S : • < redirection de l’entrée standard (stdin) • > redirection de la sortie standard (stdout) • • • >> redirection de la sortie standard en ajout << voir exemple 2> redirection des erreurs (stderr) Page 13 UNIX-MEMENTO ([email protected]) • • 2>> redirection des erreurs en ajout | prolongation des flux de données Tester $ls -alF | wc $cat /etc/passwd>motsDEpasse $cat /etc/passwd>>formation $cat>message>/dev/console : essayer tty? à la place de console $wc -l formation $wc -l<formation $cp formation /etc/formation>y $cp formation /etc/formation 2>y $cp formation /formation 2>>y $cat<<FIN>fichier >je tape un texte, le symbole > signifie que le shell >est en attente avant de revenir au prompt classique $. >je tape FIN >FIN Exercices • • compter le nombre de personnes des services CAO/FAO et GPAO/MAO. ajouter formation à USR.liste dans le répertoire GPAO. • compter le nombre d’utilisateurs actuellement connectés sur le système (utiliser la commande who) tout en créant un fichier users contenant la liste des utilisateurs • connectés. compter le nombre de variables de l’environnement (utiliser la commande env) et compter le nombre de variables et fonctions de l’environnement (utiliser la commande set). • compter le nombre de caractères de votre numéro de compte (utiliser la commande whoami). XIII. La commande g rep La commande grep est une des commandes les plus intéressantes du système UNIX. Notons qu’il existe deux variantes : egrep et fgrep. Cette commande assure la recherche d’un littéral dans un flux de données quelconque. Quelques commandes à tester • • $grep "root" /etc/passwd $grep -v "philippe" formation Page 14 UNIX-MEMENTO ([email protected]) Les options intéressantes de la commande grep sont en particulier : • • • • • -v pour rechercher les lignes où n’apparaît pas le littéral -n pour afficher les lignes avec leur numéro -c pour afficher le nombre de lignes plutôt que ces dernières -l pour afficher les noms de fichiers où l’on trouve le littéral plutôt que les lignes -i pour ne pas distinguer minuscules/majuscules Exemples • • • $grep -l "APIIC" * $grep -i "APIIC" Info $grep -n "productif" Info Exercices • • rechercher dans le service CAO/FAO, les personnes dont le nom n’inclut pas le littéral du sans distinguer minuscules/majuscules. rechercher depuis $HOME les fichiers contenant le littéral AO. Quelques utilisations plus compliquées de la commande grep : $ls -lR [EI]* | grep "r--r-- " : rechercher tous les fichiers récursivement (-R) commençant par E ou I et ayant pour configuration r--r--Space (« only readable for group and other users »). $ls -lR [E-I]* | grep -c "drw" : compter (-c) tous les fichiers récursivement (-R) commençant par E, F, G, …, I et ayant pour configuration drw (ces fichiers sont en particulier des répertoires). Quels sont les problèmes dans ces deux commandes ? La recherche des premières et dernières positions. Tester $cat>>Etudes/Usr/USR.liste $FranckBarbier F^ranckBarbier jeff CTRL + D $grep -i "f" Etudes/Usr/USR.liste $ "^f" $ "f^" Page 15 UNIX-MEMENTO ([email protected]) $ $ $ "f$" "$f" ’$f’ Conclusion : quel est le sens des caractères ^ et $ dans les littéraux ? Tester et conclure $grep "$" Etudes/Usr/USR.liste $ ’$’ $ "\$" $ ’\$’ Plus généralement les caractères spéciaux suivants peuvent être utilisés dans les recherches : • . : un unique caractère • [...] : un caractère entre crochets (Ex. : [aeiou]) ou un caractère dans un intervalle de • • • caractères (Ex. : [a-z]) * : zéro ou plus d’une occurrence du caractère qui précède (Ex. : A*) ou de l’expression régulière qui précède (Ex. : AO*) .* : zéro ou plusieurs occurrences d’un unique caractère [!...] : tout caractère qui n’est pas entre crochets ou dans un intervalle de caractères Exercices • rechercher tous les répertoires depuis / dont le nom est composé de 4 lettres (utiliser .) • compter dans le fichier /etc/ttys les noms de terminaux commençant par t ou T et se terminant par 1 ou 2 ou 3 ou 4 lettres (utiliser ^ et $ et [] et .) • • rechercher les utilisateurs connectés sur un terminal du type précédent rechercher depuis le répertoire / les fichiers qui ne sont pas exécutables quel que soit • l’utilisateur rechercher dans le service CAO/FAO de la société APIIC les noms de personnes comportant au moins 2 f • vérifier que le nom avec lequel vous êtes entrés dans le système est bien une seule fois dans le fichier /etc/passwd (utiliser "$LOGNAME") XIV. Les commandes f ind et s ort La commande find permet de rechercher un fichier. Les deux utilisations les plus intéressantes de cette commande sont : • $find / -name *.c -print : je recherche à partir de / les fichiers se terminant par .c dont je veux que leur nom soit affiché à l’écran (-print) Page 16 UNIX-MEMENTO ([email protected]) • $find $HOME -user $LOGNAME -exec cat {} \; : je recherche à partir de $HOME les fichiers dont le propriétaire est $LOGNAME ; lorsque qu’il est trouvé, l’afficher (exec cat). {} désigne le pathname du fichier trouvé et ; préfixé par \ doit terminer l’option -exec Les autres options intéressantes de la commande find sont : -size n, -ls, -type (b, c, d, f, p, l et s). Exercices • rechercher depuis / les fichiers suffixés par .c qui sont des liens (utiliser -type l) • rechercher depuis / les fichiers de taille 0 (utiliser -size 0) et les détruire interactivement La commande sort permet de trier (ordre ASCII) un flux de données. Exemple : $sort -b Etudes/Usr/USR.liste (l’option -b permet d’ignorer les caractères tels que Space ou Tab lors du tri). Exercices • ranger par ordre dans un fichier X tous les fichiers depuis $HOME • ranger par ordre inverse (option -r) dans un fichier for2 le contenu du fichier formation XV. La communication sous UNIX Les commandes pour communiquer sous UNIX dépendent du type de communication. Soit la communication a lieu sur une même machine, soit sur une machine connectée via un réseau local, soit sur une machine hors-site (système uucp). La commande write permet d’envoyer un message à un utilisateur donné. Exemple $write FranckBarbier C’est quand la pause, y’en a marre d’UNIX... CTRL + D Exercice : à l’aide des commandes who, sort et des ``, envoyer un message à l’utilisateur le dernier dans l’ordre ASCII des utilisateurs connectés. La commande talk demande à l’émetteur et au récepteur de se synchroniser. Page 17 UNIX-MEMENTO ([email protected]) Exemples • • • $talk FranckBarbier ou $talk machineDistante!FranckBarbier ou encore $talk FranckBarbier@machineDistante Tester : $hostname pour connaître le nom de machine ou $cat /etc/hosts ou $who am i Exercice : d’après l’exercice précédent, émettre un message à l’utilisateur le premier dans l’ordre ASCII des utilisateurs connectés. La commande mesg permet d’autoriser ou non les messages (Tester $mesg -n et $mesg -y) La commande mail concerne la messagerie électronique d’UNIX. Les utilisations les plus courantes de cette commande sont (pour envoyer du courrier de GillesDupont à FranckBarbier) : $who am i GillesDupont $mail FranckBarbier Rendez-vous pizzeria ce soir 20 heures, si impossible me téléphoner. CTRL + D $mail : pour lire son courrier (la commande from permet de savoir s’il y a du courrier à lire). Codes pour la commande mail -> Return : lettre suivante, d : détruire lettre, s : sauvegarder lettre dans fichier, q : sortir de mail, ? : aide, etc. Page 18