Fiche n° 25 : Je sais utiliser les commandes UNIX(Linux) Fenêtre de commande Les commandes Unix permettent de lancer des tâches (dont des applications), de les contrôler mais aussi de gérer les fichiers, les files d’attentes des impressions, envoyer des mails etc… même si des utilitaires plus transparents sont disponibles. Pour lancer une commande, il faut disposer d’une fenêtre de commande (bash ou shell) comme le montre la figure 3.2 (le répertoire courant est ici : /home ; commande pwd) Généralité sur les commandes Les commandes sont exécutées grâce à un interprète de commande (shell). Pour connaître les commandes disponibles et leur mode d’utilisation : man <commande recherchée> puis validez (return/enter) man command à De manière générale, une commande est tapée après le prompt sous la forme (NB il peut également s’agir d’un fichier exécutable contenant des commandes, voir des variables): <nom commande> [option] [arguments] les options sont en général précédées d’un tiret ‘-‘ A chaque processus (donc à chaque commande) sont associés trois fichiers : fichier d’entrée, sortie et de messages d’erreur. De manière implicite il s’agit des entré/sortie standard (clavier/écran) qui peuvent être redirigées de manière explicite (vers un fichier par exemple). Cette banalisation des entrées-sorties permet une grande facilité d’utilisation d’où l’intérêt pour les « programmeurs » pour les re-directions et l’enchaînement de processus à l’aide de tubes ‘|’ et de caractères. Entrée standard Sortie standard Commande 1 Tube Entrée standard Commande 2 Sortie standard tee fichiers Figure 25.1: les tubes : ex. : commande1 | commande2 & [Simonot et al., 1991] Les caractères possibles sont : & processus exécuté en arrière plan, on récupère son ID && la commande 2 sera exécutée que si la commande 1 réussie || la commande 2 sera exécutée que si la commande 1 échoue ; chaque commande est exécutée | ou(|&)redirection de la sortie (et message d’erreur) vers commande 2 > ou (>$) redirection de la sortie (et message d’erreur) vers un fichier < redirection de l’entrée à partir d’un fichier Gérer les fichiers et les répertoires Comme sous Windows, les fichiers sont stockés dans des répertoires (dossiers). Vous disposez d’un répertoire personnel (dont il faudra protéger l’accès en lecture/écriture) sur lequel vous pouvez stocker vos données. Vous possédez donc des droits d’accès sur les fichiers dont vous êtes propriétaire et ceux sur lesquels on vous donne des autorisations. Ce répertoire porte le nom de votre <login> et est situé sur la machine Hainaut. Le chemin d’accès est le suivant (à partir de la racine) : /home/<groupe>/<login> [email protected] page 18 Les droits d’accès sont de 3 types lecture (r), écriture (w) et exécution (x). Il s’appliquent aux dossiers (d) ou aux fichiers (-) voirs au fichiers liés (l). Ces droits concernent le propriétaire, le groupe auquel il appartient et tous les autres utilisateurs selon le format suivant (voir figure 3.5) : <fichier/dossier>< droit propriétaires rwx>< groupe rwx>< utilisateurs rwx> Ex. : droits proprietaire groupe taille date nom Le fichier exemple1.doc est autorisé en rwx pour le groupe et le propriétaire mais pas pour les autres utilisateurs. Ce fichier appartient à wnuninge du groupe iaalEns. Pour changer les droits d'accès on utilise la commande chmod [a=] [u=] [g=] [code] <nomfichier> Commandes utiles ls –la donne le contenu du répertoire courant (dir sous DOS) pwd donne le chemin du répertoire courant cd <dossier>, cd .. pour aller dans le répertoire dossier depuis où l’on est cd ~<login> vous ramène à votre répertoire personnel cp, mv, ln copier, renommer, faire un lien entre fichiers rm, rmdir effacer un fichier, effacer un dossier chmod, umask permet de modifier les droits (ex. chmod 700 * è –rwx------) Figure 25.2 : fenêtre de commande Unix – résultat des commande pwd, cd, ls -la Exemples : pwd ls –la cd è dossier courant : exemple ; chemin : /home/iaalEns/wnuninge/exemple è Dans le dossier exemple : 3 répertoires : dossier1 (protégé en rwx pour tous les utilisateurs sauf le propriétaire), dossier2 (ouvert en écriture pour tous) et pdf (protégé); un fichier : exemple1.doc. è permet de se déplacer dans dossier2. Le fichier exemple5.ppt n’est autorisé quand lecture pour tous. Gérer les applications et les tâches (processus) Comme pour tout système d’exploitation, les tâches (« applications » ou commandes) sont lancées (exécutées) au travers de processus repérés par un ID (numéro). Ainsi, lorsque vous ouvrez une session vous lancer un processus. Les fenêtres de commandes sont des processus. Les processus, qui se partagent le processeur (1 à la fois) et la mémoire suivant des niveaux de priorité, peuvent avoir différents états R (en exécution), S (en arrêt), SW (en arrêt pendant une écriture sur disque) pour les principaux. [email protected] page 19 A tout moment on peut connaître les processus tournant sur la machine (ils consomment de la mémoire de l’unité centrale) grâce à la ligne de commande UNIX : ps aux ps aux | grep <login> kill –9 <ID> rlogin <machine> su <login> donnera les ID de tous les processus ainsi que leur état etc. ne retiendra de la liste que ceux contenant <login> tuera (arrêtera) le processus <ID> qui ne répond plus (cas d’un logiciel bloqué…). Attention à ne pas vous tromper de processus pour vous connecter à distance sur une autre <machine> pour suspendre un utilisateur et prendre la main avec vos droits. Le processus 15829 appartient à wnuninge, il exécute la tâche /usr/local/bin/netscape (ie. Le navigateur tourne), il utilise 4.3% du processeur et 8.8% de la mémoire, son état de fonctionnement est S (arrêté), en attente W, ou… fantôme ! Figure 25.3 : résultats de la command ps aux Différents utilisateurs dont « root » (super utilisateur), « daemon » (impression) Autres commandes utiles alias more fichier xedit man cat ps2pdf pdf2ps pour connaître les alias définis ou en créer pour éditer un fichier sans editeur de texte éditeur de texte si disponible (fonction machines) en général le manuel (aide) pas toujours disponible pour ajouter des données à un fichier convertir un fichier pdf en fichier postscript convertir un fichier postscript en fichier pdf Pour en savoir plus, consultez les Annexes et un ouvrage traitant des commandes UNIX. [email protected] page 20 Fiche n° 26 : Les principales commandes UNIX / Linux Pour les options, faire : man <commande> Syntaxe commande [- option] [argument] [ Commandes pwd indique le chemin et le nom du répertoire courant ls indique le contenu du répertoire (voir les options avec man ls) mkdir creation répertoire rmdir <dossier> efface le répertoire "dossier" rm <fichier> efface le fichier "fichier" mv <fichier> renomme le fichier su <login> "login" prend la main sur un bash d'un utilisateur (suspend) whoami donne le login du propriétaire d'un bash/shell rlogin <machine> login à distance sur une "machine" du réseau logout fin de session exit fin de session, arrêt d'un su ou rlogin alias liste des alias, faire un alias (si option) unalias ex annule l'alias "ex" ps donne les processus tournant sur une machine (option aux) kill ID tue le processus "ID" lpr –P<printe><file> lance une impression sur <Printer> du <file> au format TXT man le manuel more edition fichier cat concaténation fixhier cp <f1> <f2> copie du fichier "f1" vers le fichier "f2" cd se déplacer dans l'arborescence (cd .. revient d'un niveau) vi editeur de texte mdir donne la liste des fichiers sur la disquette mcopy xxxxx a: copie le fichier xxxxx sur la disquette a : si c’est a : mdelete xxx a: efface le fichier xxxxx de la disquette a : si c’est a : mcopy a:xxxxx copie le fichier xxx de la disquette a : vers le disque dur. chmod modifie les droits (r :lecture ; w :écriture ; x : exécution) umask cf. chmod cd ~<login> chemin absolu vers votre répertoire (/home/<groupe>/<login>) uname -a affichage du nom systeme tty et pts lecture du nom d un terminal mount Affichage des partitions montées passwd Changement motdepasse date Changement d’heure cal Calendrier finger <login> pour avoir le profil de quelqu’un who Liste des utilisateurs df Occupation des disques lpstat liste des impressions enable <printer> Débloquer une imprimante <printer> cancel num_impression Détruire une édition clear efface l'écran grep <chaine> <f1> recherche de caracteres <chaine> dans un fichier <f1> find / -name <F1> -print recherche d un fichier du taille et contenu d’un répertoire vi éditeur de texte (attention aux codes pour insérer, sauvegarder) i pour insérer du texte ; CRTL C puis Q pour les commandes ( :) enfin, viusage pour la liste des commade, w <fichier> pour sauvegarder et q! pour sortir. * ajout d'un tube: | quand on redirige les sorties (écran/fichier/nouvelle commande) * séparation des commandes avec ou sans condition : || ou && [email protected] page 21