GNU/Linux : initiation rapide 1. Présentations, généralités 2. Premiers pas 3. Les distributions 4. Les utilisateurs, les groupes et les droits d'accès 5. Les fichiers et l'organisation du disque dur 6. Compléments sur l'interface graphique 7. Compléments sur le mode texte Annexes Cette doc s'adresse à tous les gens qui veulent découvrir GNU/linux (et qui ont déjà utilisé un ordinateur). C'est une sorte de première étape, qui essaye de donner les bases nécessaires pour une utilisation classique (sans installation ni administration), et pour la compréhension d'autres documentations. Elle est volontairement très succinte, pour ne pas perdre les débutants-tes dans des détails pas forcément utiles dès le départ. Pour aller plus loin, il y a une liste de docs conseilées en annexe. 1. Présentations, généralités Ce qu'on appelle souvent linux est un système d'exploitation (comme windows) : c'est un ensemble de programmes qui permet à une personne d'utiliser un ordinateur. Ex : quand on tape un caractère sur le clavier, le système d'exploitation le "lit" et "dit" à l'écran de l'afficher (il fait surtout des trucs beaucoup plus compliqués). Dans la suite de cette doc., quand je parlerai de "système", c'est un raccourci de "système d'exploitation". En fait, il faudrait l'appeler GNU/linux, car linux désigne en fait uniquement le noyau du système d'exploitation. GNU est le nom du projet qui vise à créer un système d'exploitation complet composé uniquement de logiciels libres. L'une des particularités de GNU/linux est d'être un système d'exploitation "libre", par opposition aux systèmes d'exploitation "propriétaires" comme windows ou mac os. Ca veut dire que les utilisateurs-trices peuvent voir comment il est écrit, comprendre son fonctionnement, y apporter des modifications. Ceci permet, grâce à une "communauté linux" (beaucoup d'informaticiens-ciennes bénévoles qui participent au développement du projet GNU/Linux) très active, d'avoir un système fiable, de qualité et en constante amélioration. Linux est un des nombreux dérivés d'UNIX, système d'exploitation apparu dans les années 60 et très répandu dans les milieux professionnels. De même qu'il y a plusieurs versions de windows, linux peut désigner plein de choses très différentes. Il peut être utilisé soit en mode texte, soit en mode graphique, lequel peut être très semblable à windows ou très différent. GNU/Linux peut être configuré très différemment suivant l'utilisation qu'on en fait, donc tout ce qui est dit dans cette doc. est vrai en général, mais pas forcément tout le temps. 2. Premiers pas a) connexion Une notion importante sous linux est la notion d'utilisateur. Quand on utilise GNU/linux, c'est forcémént sous le nom d'un-e utilisateur-trice (plus de précisions au chapitre 4). Conséquence : au démarrage, il faut fournir un nom d'utilisateur et un mot de passe (sauf cas particulier) pour "ouvrir une session". Ceci peut être fait de plusieurs manières : * cas classique : à la fin du démarrage, le système reste en mode texte, une ligne avec le mot "login" apparaît : il 1 faut entrer son nom d'utilisateur-trice, appuyer sur entrée, puis entrer son mot de passe. Attention : linux fait la distinction entre les majuscules et les minuscules, contrairement à windows. Une ligne d'"invite" apparaît alors (éventuellement après quelques lignes de texte, messages, ...) : ça veut dire que le système est prêt et que vous pouvez entrer une commande, vous êtes en mode "ligne de commande" (voir b). Pour reconnaître cette invite (aussi appelée "prompt") : elle est terminée par un caractère spécial (%, $, #, ...) :. * cas de plus en plus répandu : à la fin du démarrage, l'interface graphique démarre automatiquement, et le nom d'utilisateur et le mot de passe sont demandés dans une fenêtre au lieu d'une ligne de texte. L'utilisateur-trice accède directement au mode graphique, sans passer par le mode ligne de commande. * cas particulier : un-e utilisateur-trice est défini-e par défaut : aucun nom n'est demandé au démarrage. b) mode ligne de commande Ce paragraphe vous donnera un bref aperçu de ce qu'est le mode ligne de commande (aussi appelé mode texte ou console), sans entrer dans les détails (plus de détails au chap. 7). Dans ce mode, pour faire quelque chose, il faut entrer au clavier une commande (composée du nom de la commande, et éventuellement d'options et d'arguments), et appuyer sur "entrée". Le système affiche éventuellement quelques lignes (en fonction de la commande et des options), puis réaffiche une ligne d'invite quand il est prêt. remarque : l'invite peut contenir plusieurs renseignements suivant la configuration : le nom de l'utilisateur-trice, le nom de l'ordinateur, le répertoire courant, ... Exemples de commandes, pour que ce soit un peu plus concret : * "ls" demande au système d'afficher la liste des fichiers contenus dans le répertoire où vous êtes actuellement (il est appelé "répertoire courant"). ça, c'est l'invite ça, cest la commande robert % ls fichier1 fichier2 fichier3 robert % ces 3 lignes, c'est la réponse du système, qui s'affiche dès que vous avez appuyé sur entrée après la commande. Dans cet exemple, elle veut dire que dans le répertoire courant, il y a 3 fichiers : fichier1, fichier2, et fichier3. et ça, c'est l'invite qui s'affiche dès que le système a fini de traiter la commande. * l'option "-a" de la commande ls indique au système d'afficher tous les fichiers du répertoire courant, même les fichiers "cachés" (commençant par un point) (sans l'option -a, elle ne les affiche pas). robert % ls -a .config fichier1 fichier2 fichier3 robert % * "startx" est la commande qui lance l'interface graphique (si elle est installée). c) mode graphique Comme dans les interfaces graphiques des autres systèmes d'exploitation, les applications s'exécutent dans des fenêtres. Les différentes actions et ouvertures d'applications s'obtiennent grâce à un ou plusieurs menus qui peuvent soit être visibles sur le bureau, soit apparaître avec un clic droit de la souris (ou autre). Le bureau est souvent très configurable. Il est généralement possible de lancer ce qu'on appelle un terminal : c'est une console qui apparaît dans une fenêtre (autrement dit, un mode ligne de commande à l'intérieur de l'interface graphique). C'est utile lorsqu'on veut lancer une commande qui n'est pas accessible par l'interface graphique, ou plus difficilement. Plus de détails au chapitre 6. d) déconnexion En mode texte, il suffit de taper exit. En mode graphique, il y a certainement "clore la session", "logout" ou quelque chose d'équivalent dans un menu. Ceci ferme la session qui a été ouverte, mais n'éteint pas l'ordinateur. Le système attend seulement qu'un-e nouvel-le utilisateur-trice ouvre une nouvelle session. 3. Les distributions Avant d'aller plus loin, il est utile d'en savoir un peu plus sur la manière dont GNU/linux est distribué et peut être 2 installé. Une distribution est un ensemble composé d'un noyau linux, d'un programme d'installation, et de nombreux programmes, depuis les programmes indispensables au bon fonctionnement du système jusqu'aux programmes très particuliers qui ne serviront qu'à très peu de gens. Ces distributions sont disponibles sous forme d'un jeu de quelques CD d'installation, mais les programmes qui la composent sont souvent disponibles aussi sur internet. Ces distributions sont souvent "préparées" par des sociétés, parfois par des groupes d'informaticiens-ciennes bénévoles. Il existe de nombreuses distributions, et chacune a ses particularités. Les plus connues sont : RedHat : une distribution classique, très répandue, accessible aux débutants-tes. Mandrake : la distribution qui monte, de plus en plus utilisée, accessible aux débutants-tes. Debian : elle est très bien conçue, et elle est développée par toute une communauté d'informaticiens-ciennes, sans but lucratif (contrairement à RedHat et Mandrake qui sont des sociétés côtées en bourse). Son installation et sa "maintenance" nécessitent plus de connaissances (ou seulement plus de motivation...) que pour les deux précédentes. Ces distributions ont des points communs (le même noyau, la même base, celle d'UNIX, ...), mais sur certains points des fonctionnements différents. Un logiciel pour linux peut en général être installé sur n'importe quelle distribution, mais certaines particularités font qu'il vaut parfois mieux utiliser une version prévue spécialement pour la distribution installée. 4. Les utilisateurs, les groupes et les droits d'accès Comme je l'ai dit au chapitre 2, la notion d'utilisateur est très importante sous linux. Quand on utilise l'ordinateur, on est toujours connecté sur un compte utilisateur, même si ça ne se voit pas forcément. De même, chaque fichier ou répertoire appartient à un-e seul-e utilisateur-trice. Chaque utilisateur-trice a un mot de passe. Un compte utilisateur est spécial et existe sur tous les systèmes UNIX : il s'appelle "root" ou "superutilisateur", il a tous les droits sur la machine, et c'est le premier utilisateur créé à l'installation. Il est ensuite possible de créer d'autres utilisateurs-trices. Le cas le plus courant est de créer un compte par personne réelle utilisant l'ordinateur, mais on peut aussi faire autrement : plusieurs personnes qui utilisent le même utilisateur, ou plusieurs utilisateurs pour la même personne. Il est très déconseillé d'utiliser le compte root quand ce n'est pas nécessaire, car une faute de frappe ou une mauvaise manipulation peut endommager ou supprimer des fichiers, voire détruire le système, alors qu'un autre utilisateur ne le pourra pas. Une autre notion importante est celle des droits d'accès (ou permissions). Sous UNIX (donc GNU/linux), chaque fichier a des droits d'accès, en lecture, écriture et exécution, qui sont modifiables par son-sa propriétaire. Celuicelle-ci peut, par exemple, décider que tel fichier pourra être lu et modifié par elle-lui, et seulement lu par les autres. Pour apporter plus de possibilités, UNIX utilise des groupes : ce sont des ensembles d'utilisateurs-trices. Pour chaque utilisateur-trice il existe un groupe qui a le même nom, et on peut créer des groupes, et inclure n'importe quel-le utilisateur-trice dans n'importe quel groupe. Chaque fichier appartient à un-e propriétaire, mais aussi à un groupe (souvent celui du-de la propriétaire, mais ça aussi ça peut être modifié). Tout de suite un petit exemple pour ne pas trop rester dans le flou : fichier1 est un fichier dont le propriétaire est yolande et dont le groupe est yolande, et dont les droits sont définis comme ça : lecture propriétaire X groupe X écriture exécution X autres Ca veut dire que yolande pourra lire et modifier fichier1, que les utilisateurs-trices appartenant au groupe yolande pourront le lire, mais pas le modifier, et que les utilisateurs-trices n'appartenant pas au groupe yolande ne pourront ni le lire, ni le modifier. Les droits en exécution servent uniquement pour les fichiers exécutables et pour les répertoires. Avoir un droit d'accès en exécution sur un répertoire veut dire que celui-ci peut être notre répertoire courant (autrement dit qu'on peut aller dans ce répertoire). 5. Les fichiers et l'organisation du disque dur Les fichiers sont organisés en arborescence : ils sont classés dans des répertoires et des sous-répertoires, qui sont eux-mêmes des fichiers (un peu spéciaux). Le répertoire en haut de l'arborescence, qui contient tous les autres, s'appelle "/", mais on l'appelle souvent le 3 répertoire racine, ou la racine. Pour désigner l'emplacement d'un fichier dans l'arborescence, on utilise un chemin, qui est constitué des répertoires et sous-répertoires qui "amènent" de la racine jusqu'au fichier. Dans le chemin, ces répertoires sont séparés par des barres obliques avant (/), et non des barres obliques arrières (\) comme sous dos-windows. ex. : /home/yolande/images/halte_a_la_repression.jpg veut dire : "le fichier halte_a_la_repression.jpg qui est dans le répertoire images, qui est lui-même dans le répertoire yolande, qui est dans le répertoire home qui est dans le répertoire racine" (car le chemin commence par "/"). Si le chemin commence par "/", il décrit précisément l'emplacement du fichier : on appelle ça un chemin absolu. Si le chemin ne commence pas par "/", il décrit l'emplacement par rapport au répertoire courant : c'est un chemin relatif. Ex. : images/non_a_big_brother.jpg veut dire "le fichier non_a_big_brother.jpg qui est dans le répertoire images, qui est lui-même dans le répertoire courant". Plusieurs informations sont associées à chaque fichier : son-sa propriétaire, ses droits d'accès, etc. L'option -l de la commande ls permet d'afficher ces informations. Ex. : robert % ls -rw-r--r--rw-r----drwxr-xr-x robert % -l 1 1 3 robert robert robert robert robert robert 192 3727 4096 jan 23 09:17 fichier1 mar 7 08:33 fichier2 jan 23 09:16 repertoire1 Les informations affichées sont : * une suite de 10 caractères le 1er indique le type de fichier (- fichier "normal", d répertoire, l lien, ...). les 3 suivants indiquent les droits d'accès pour le-la propriétaire du fichier : le 1er est un "r" (read) si la lecture est autorisée, "-" si lecture interdite, le 2e un "w" (write) si modification autorisée, "-" si modification interdite, le 3e un "x" (execute) si execution autorisée, "-" si execution interdite. les 3 suivants indiquent les droits d'accès pour le groupe du fichier, avec la même syntaxe. les 3 derniers indiquent les droits d'accès pour tous-tes les autres utilisateurs-trices, avec la même syntaxe. * un nombre : c'est le nombre de liens qui pointent vers ce fichier (pas très important pour l'instant). * le-la propriétaire du fichier * le groupe du fichier * la taille du fichier (en octet) * la date de dernière modification * le nom du fichier Une grosse différence avec les systèmes d'exploitations dos, windows, ... est qu'il n'y a pas de lecteurs (A:, C:, ...) sous linux. Il n'y a qu'un seul répertoire principal (la racine), dans lequel sont classés tous les fichiers accessibles par le système. Les fichiers sur des cdroms ou des disquettes, par exemple, peuvent être dans les répertoires /cdrom et /floppy. J'en profite pour aborder (sans rentrer dans les détails) un point assez contraignant pour les nouveaux-elles utilisateurs-trices de linux. Pour avoir accès à une disquette ou à un cdrom, il faut d'abord le monter : ça veut dire le placer dans un répertoire (sinon il n'est pas accessible). Ca peut être fait de différentes façons, suivant la configuration du système. En console, les commandes mount /floppy (disquette) et mount /cdrom (ou mount /mnt/floppy et mount / mnt/cdrom) marcheront très souvent (il faut qu'il y ait la ligne correspondante dans le fichier /etc/fstab). En mode graphique le montage peut être complètement automatique, ou demandé à partir d'un menu. Il ne faut pas oublier de démonter une disquette ou un cdrom avant de l'éjecter, sinon ça peut poser des problèmes (pertes de données pas encore enregistrées sur la disquette, ou problème si on veut utiliser une autre disquette après). En console, umount /floppy (attention ! umount, pas unmount). Quelques indications sur le contenu de certains répertoires présents en général sur tous les systèmes GNU/linux : /home : contient tous les répertoires personnels des utilisateurs-trices (sauf de root). /root : c'est le répertoire personnel de l'utilisateur-trice root. /usr : contient tous les programmes, logiciels, documentations, ... /etc : contient tous les fichiers de configuration : ce sont des fichiers texte qui, s'ils sont modifiés, permettent de modifier le fonctionnement de certains programmes ou du système. 6. Compléments sur l'interface graphique L'interface graphique est un ensemble de programmes qui permet : * de faire la même chose (en partie) que ce qu'on peut faire par des lignes de commande, de manière plus "conviviale" et intuitive, mais parfois moins pratique ou rapide. 4 * d'utiliser des logiciels graphiques (traitement de texte, graphisme, navigateur web affichant les images, ...). Même si elle apparaît comme un tout pour l'utilisateur-trice, elle est composée de plusieurs "couches" : La couche de base est le serveur X : c'est lui qui permet de gérer l'affichage à l'écran, la souris, le clavier (qui n'est pas géré de la même manière qu'en mode console), mais il ne va pas plus loin. S'il est démarré sans les couches qui vont par dessus, le serveur X affichera seulement un écran gris quadrillé et une croix noire comme pointeur de souris. Le serveur X utilisé sous linux s'appelle xfree86. le gestionnaire de fenêtre sert à afficher des fenêtres et les manipuler (déplacement, fermeture, chevauchement, ...). Il en existe beaucoup (fvwm, sawfish, icewm, ...). le bureau n'est pas obligatoire, mais sans lui l'interface graphique est encore très limitée. Il rajoute un peu plus de convivialité : des menus, des icônes sur le bureau, un ou plusieurs tableaux de bord, et autres... Les deux environnements de bureau les plus utilisés sont gnome et KDE. Les gestionnaires de fenêtres, comme les bureaux, peuvent être très différents les uns des autres, et un bureau peut être utilisé avec n'importe quel gestionnaire de fenêtre (même si certains vont mieux ensemble), ce qui fait que les interfaces graphiques peuvent être très différentes. Je ne peux donc pas vous donner d'indications précises sur leur fonctionnement, je vais juste essayer de donner quelques pistes pour que vous puissiez vous débrouiller dans les cas les plus courants. La plupart des bureaux disposent d'un ou plusieurs menus, soit à gauche du panneau de contrôle, en bas de l'écran, "à la windows", soit ailleurs sur l'écran, dans un panneau de contrôle ou une barre de menus, soit invisibles et accessibles d'un clic avec le bouton droit ou celui du milieu (sur les souris à deux boutons, celui du milieu est accessible en appuyant sur les deux boutons en même temps, si ça a été configuré). Ces menus, souvent divisés en sous-menus, permettent l'accès aux actions principales (déconnexion, ...), et aux différents logiciels et programmes. Dans l'un de ces menus, ou par un raccourci du bureau ou d'une barre latérale, vous pouvez souvent accéder à un "centre de contrôle" du bureau (il est souvent appelé comme ça), où plein de préférences sont réglables (apparence, comportement des fenêtres, ...). Il peut y avoir un autre centre de contrôle, mais pas du bureau celui-ci, qui dépend de la distribution, et qui permet des réglages sur le démarrage, les périphériques, ... (ex : mandrake control center sur mandrake). Vous pouvez aussi trouver un gestionnaire de fichiers : celui de gnome s'appelle nautilus et celui de KDE s'appelle konqueror, et ils servent, comme leur nom l'indique, à gérer les fichiers (l'équivalent de l'explorateur windows sous windows). Ils peuvent lister le contenu des réperoires, copier, déplacer, supprimer, renommer des fichiers, les ouvrir, gérer leurs droits d'accès. Ils sont en général eux aussi très configurables. Voici quelques logiciels très répandus : le navigateur internet mozilla, le logiciel de manipulation d'images gimp (équivalent de photoshop), les suites bureautiques koffice et openoffice (traitement de texte, tableur, ...). Pour avoir une liste des logiciels équivalents sous linux et sous les autres systèmes d'exploitation, allez sur http://www.linuxnantes.fr.eu.org/DOC/liste-equivalences-logicielles.html L'une des particularités de linux est qu'il peut y avoir plusieurs bureaux ou espaces de travail. On peut ouvrir des fenêtres sur certains bureaux, se déplacer d'un bureau à un autre, ce qui peut être pratique quand on utilise plusieurs logiciels en même temps. 7. Compléments sur le mode texte Le programme qui permet le dialogue entre le système et l'utilisateur-trice en mode texte s'appelle un shell. C'est lui qui traduit ce que vous entrez au clavier pour que le système le comprenne, et qui affiche à l'écran ce que le système veut vous dire. Il existe plein de shells différents : bash (le plus courant sous linux), csh, zsh, ..., chacun avec ses particularités et configurable (oui, je sais, vous avez déjà entendu ça quelque part...;), mais sous linux c'est toujours comme ça). Quand le shell démarre, il affiche une "invite" : c'est une ligne qui dit à l'utilisateur-trice qu'il-elle peut entrer une commande. Cette invite contient quelques renseignements, et est terminée par un caractère spécial, qui peut être % ou $ pour un-e utilisateur-trice classique, et # pour root. Une ligne de commande est composée du nom de la commande, qui peut être suivie d'options ou d'arguments (un espace les sépare), suivant la commande. Une option modifie le comportement de la commande, un argument dit sur quoi s'applique la commande. Certaines commandes nécessitent un ou plusieurs argument-s (ex : cp, qui permet de copier un ou plusieurs fichier-s), d'autres n'en ont jamais, et d'autres peuvent en avoir ou pas. Les options sont généralement une lettre après un tiret, et on peut combiner plusieurs options, sans espace, après un même tiret. Ex : ls -la est la même chose que ls -l -a. Ex. d'une commande avec un argument : mkdir repertoire1 permet de créer un répertoire appelé repertoire1 dans le répertoire courant. Quelques petits trucs : * Pour avoir des renseignements sur une commande, vous pouvez utiliser la commande man. Ex. : man mkdir affichera 5 la page de manuel de la commande mkdir, qui contient des renseignements complets sur son rôle, sa syntaxe, ses options, * En appuyant sur la "flèche haut" du clavier, vous pouvez faire défiler les dernières commandes que vous avez entrées. * La commande less permet d'afficher un fichier texte (ou la réponse d'une commande en mettant " | less" à la fin de la ligne) page par page, ce qui peut être utile si le fichier ou la réponse de la commande est trop longue pour tenir dans une page. Ex. : ls -l /home/yolande | less (espace pour descendre d'une page, entrée ou flèche bas pour descendre d'une ligne, y ou flèche haut pour remonter d'une ligne, b pour remonter d'une page). * Appuyer sur Ctrl-c pendant l'exécution d'une commande arrête celle-ci. * Appuyer sur Ctrl-d pour se déconnecter. GNU/linux dispose de plusieurs consoles : vous pouvez ouvrir plusieurs sessions en même temps, avec le-la même utilisateur-trice, ou avec des utilisateurs-trices différents-tes. Pour passer à la 2e console, il faut taper Alt+F2, Alt+F3 pour la 3e, etc. jusqu'à Alt+F6. Ceci a pour effet d'effacer l'écran courant pour afficher l'écran de la nouvelle console (mais sans fermer la session en cours, ni même interrompre la commande qui s'exécutait s'il y en avait une !), dans laquelle il faudra à nouveau entrer un nom d'utilisateur. Alt+F7 permet d'afficher l'interface graphique (pas de la démarrer). Si elle n'est pas démarrée, vous obtiendrez juste un écran noir et un curseur clignotant. Quand on est en mode graphique, il faut appuyer sur Ctrl+Alt+F1, par exemple, pour revenir à la 1e console. Attention ! Si vous oubliez une session ouverte sur une console, quelqu'un qui a accès à l'ordinateur pourra se connecter sous votre nom ! Annexes Voici une liste de docs pour aller un peu (voire beaucoup) plus loin : * http://wiki.boum.org/ConnectFr/DocsGnuFr : une liste de docs, autogérée, qui sera plus complète que celle-ci. * http://www.lea-linux.org/intro/ : une documentation assez détaillée pour découvrir GNU/linux, plutôt longue mais vous n'êtes pas obligés-ées de tout lire, il y a une partie pour commencer et une partie pour aller plus loin. * http://people.via.ecp.fr/~alexis/formation-linux/ : une doc très bien faite, pour installer et découvrir la distribution debian. Vivement conseillée ! * http://guide.andesi.org/html/ : une autre doc sur la distribution debian * http://p.karatchentzeff.free.fr/freesoft/debian/debian-guide : encore une doc sur la distribution debian Voici une liste des commandes les plus utilisées avec certaines de leurs options. J'ai mis entre parenthèses les significations des commandes et options, pour les retenir plus facilement. Pour avoir plus de renseignements sur les commandes : man commande, info commande, ou commande --help. Pour tous les arguments, vous pouvez utiliser les caractères génériques (voir en fin de liste) pour que la commande s'applique à plusieurs fichiers. Eteindre et redémarrer halt : éteindre l'ordinateur en toute sécurité (par défaut, permission seulement pour root) reboot : redémarrer l'ordinateur en toute sécurité (par défaut, permission seulement pour root) Commandes de navigation ls : lister les fichiers du répertoire courant (sauf les fichiers cachés) (ls pour list) ls -a : lister tous les fichiers du répertoire courant (même les fichiers cachés) (a pour all) ls -l : lister les fichiers du répertoire courant en affichant tous les attributs des fichiers (l pour long) ls -F : lister les fichiers du répertoire courant en les triant par type (F pour format) ls -X : lister les fichiers du répertoire courant en les triant par type d'extensions (X pour extension) pwd : afficher le répertoire courant (pwd pour print working directory) cd chemin_répertoire : aller dans le répertoire désiré (le chemin peut être absolu ou relatif, voir chapitre 5) (cd pour change directory) cd .. : remonter d'un répertoire dans l'arborescence cd : se placer dans le répertoire personnel de l'utilisateur Commandes de gestion de fichiers touch nom_fichier : créer un ficher texte vide rm nom_fichier : supprimer un ficher (rm pour remove) rm -i nom_ficher : supprimer un fichier avec demande de confirmation (i pour interactive) rm -r nom_répertoire : supprimer un répertoire et tout ce qu'il contient (r pour recursive) mkdir nom_répertoire : créer un répertoire dans le répertoire courant (mkdir pour make directory) mkdir -p chemin_répertoire : créer un répertoire ainsi que ses répertoires parents à partir du répertoire 6 courant (p pour parents) rmdir nom_répertoire : supprimer un répertoire vide (rmdir pour remove directory) mv fichier_source fichier_destination : renommer ou déplacer un fichier (mv pour move) mv -i fichier_source fichier_destination : renommer ou déplacer un fichier avec demande de confirmation si un fichier porte déjà le nom du fichier destination (i pour interactive) cp fichier_source fichier_destination : copier un fichier (cp pour copy) cp -i fichier_source fichier_destination : copier un fichier avec demande de confirmation si un fichier porte déjà le nom du fichier destination (i pour interactive) cp -l fichier_source fichier_destination : copier un fichier et faire un lien dur entre la copie et sa source (l pour link) cp -s fichier_source fichier_destination : copier un fichier et faire un lien symbolique entre la copie et sa source (s pour symbolic link) cp -p fichier_source fichier_destination : copier un fichier en préservant tous les attributs du fichier initial (p pour preserve) cp -r repertoire_source repertoire_destination : copier de manière récursive un répertoire et tout ce qu'il contient, fichiers, sous-répertoires, ... (r pour recursive) cp -v fichier_source fichier_destination : copier un ficher en affichant les informations du processus de copie (v pour verbose) ln fichier_existant lien : créer un lien dur entre les deux fichiers (ln pour link) ln -d répertoire_existant lien : créer un lien dur entre les deux répertoires (d pour directory) ln -s fichier_existant lien : créer un lien symbolique entre deux fichiers (s pour symbolic) df : afficher l'espace libre disponible (en octet) sur toutes les partitions montées (df pour disk free) df -h : afficher l'espace libre disponible sur toutes les partitions montées, en utilisant des Ko, Mo et Go (h pour human-readable) du : afficher la taille du répertoire courant et de tous ses sous-répertoires (ne donne aucune information sur les fichiers) (du pour disk usage) du nom_répertoire : afficher le taille du répertoire et de tous ses sous-répertoires (ne donne aucune information sur les fichiers) du -s nom_répertoire : afficher la taille du répertoire (s pour summarize) du -a : afficher la taille du répertoire courant et de tous ses sous-répertoires et fichiers (a pour all) du -a nom_répertoire : afficher le taille du répertoire et de tous ses sous-répertoires et fichiers (a pour all) Commandes de consultation de fichiers cat nom_fichier : afficher le contenu d'un fichier texte à l'écran (sans pouvoir arrêter le défilement) (cat pour concatenate) more nom_fichier : afficher le contenu d'un fichier texte à l'écran en arrêtant le défilement à chaque page (espace pour descendre d'une page, entrée pour descendre d'une ligne, q pour quitter) less nom_fichier : pareil que more, mais dispose d'un peu plus d'options (entre autre peut revenir en arrière : b pour revenir d'une page, y pour revenir d'une ligne, il est aussi possible de se déplacer vers le haut ou vers le bas avec les flèches de direction) head nom_fichier : afficher uniquement le début du fichier tail nom_fichier : afficher uniquement la fin du fichier Commandes de recherche find nom_repertoire -name nom_fichier : rechercher dans le répertoire et tous ses sous-répertoire le fichier (ou les fichiers) et afficher son emplacement. S'utilise souvent avec des caractères génériques (voir en fin de liste) grep mot nom_fichier : rechercher dans un fichier texte le mot voulu et affiche la ligne où il se trouve grep -l mot nom_fichier : rechercher dans un ou plusieurs fichiers texte le mot voulu et affiche le nom des fichiers qui contiennent le mot (utile pour une recherche sur plusieurs fichiers, voir caractères génériques en fin de liste) Commandes de gestion des utilisateurs et des droits d'accès su : devenir root jusqu'à ce qu'on tape la commande exit (nécessite le mot de passe root, bien sûr !) (su pour substitute user) su nom_d'utilisateur : devenir un autre utilisateur jusqu'à ce qu'on tape la commande exit (nécessite le mot de passe de l'utilisateur, bien sûr !) passwd : changer son mot de passe 7 passwd nom_d'utilisateur : changer le mot de passe de l'utilisateur (il faut être root, bien sûr !) adduser nom_d'utilisateur : ajouter un utilisateur (il faut être root) adduser nom_d'utilisateur nom_du_groupe : ajouter un utilisateur à un groupe (il faut être root) addgroup nom_du_groupe : ajouter un groupe (il faut être root) deluser nom_d'utilisateur : supprime l'utilisateur (il faut être root) deluser --remove-home nom_d'utilisateur : supprime l'utilisateur et son répertoire personnel avec tout ce qu'il contient (il faut être root) deluser --remove-all-files nom_d'utilisateur : supprime l'utilisateur et tous les fichiers qui lui appartiennent (il faut être root) deluser nom_d'utilisateur nom_du_groupe : supprime un utilisateur d'un groupe (il faut être root) delgroup nom_du_groupe : supprime le groupe (il faut être root) chown nom_utilisateur nom_fichier : changer le propriétaire du fichier (il faut être le propriétaire du fichier) chown nom_utilisateur.nom_groupe nom_fichier : changer le propriétaire et le groupe du fichier chown -R nom_utilisateur.nom_groupe nom_répertoire : changer le propriétaire et le groupe du répertoire, de ses fichiers, de ses sous-répertoires,... chgrp nom_groupe nom_fichier : changer le groupe du fichier chmod : changer les droits d'accès d'un fichier (il faut être root ou propriétaire du fichier). Commande un peu complexe à utiliser. Il y a deux variantes : soit on veut modifier seulement une partie des droits d'accès (on utilise alors les caractères r,w et x, avec la syntaxe expliquée plus bas), soit on veut fixer précisément tous les droits d'accès sur le fichier (on utilise alors un code de trois chiffres, comme décrit plus bas) * On utilise le signe + pour ajouter un droit, - pour en enlever un, avec les lettres r, w, x (lecture, écriture, exécution) chmod -w nom_fichier : enlever les droits d'accès en écriture sur le fichier pour tout le monde Pour appliquer les changements seulement à certains "niveaux d'apartenance", il faut utiliser les lettres u pour user (propriétairedu fichier), g pour group (utilisateurs-trices appartenant au groupe du fichier), et o pour other (tous-tes les autres) comme ceci : chmod ug +wx nom_fichier : ajouter, pour le-la propriétaire et les membres du groupe, les droits en écriture et en exécution sur le fichier * On utilise un nombre de 3 chiffres (le 1er pour le-la propriétaire, le 2e pour les membres du groupes, et le 3e pour tous-tes les autres). Les chiffes veulent dire : 0 : aucun droit 1 : droit en exécution 2 : droit en écriture 3 : droit en exécution et en écriture 4 : droit en lecture 5 : droit en lecture et en exécution 6 : droit en lecture et en écriture 7 : tous les droits chmod 664 nom_fichier : fixer les droits d'accès au fichier à : lecture et écriture pour le-la propriétaire et les membres du groupe, et lecture seulement pour les autres. Pour voir les nombreuses options de chmod, voir sa page de manuel. Caractères génériques Quand on veut qu'une commande s'applique à plusieurs fichiers, ou quand on a oublié le nom exact d'un fichier on peut utiliser des caractères génériques dans une expressions : le caractère ? remplace un seul caractère, et le caractère * remplace n'importe quelle suite de caractères. Par exemple, imag* veut dire "n'importe quelle suite de caractères qui commence par imag". Exemples d'utilisation fréquente des caractères génériques : find /home/yolande -name logo* : afficher tous les fichiers (et leur emplacement) qui commencent par logo et qui se trouvent dans le répertoire /home/yolande ou l'un de ses sous-répertoires rm image1?.png : supprime tous les fichiers du répertoire courant qui ont un nom comme image10.png, image11.png, image1b.png, mais pas image1.png ou image100.png, car ? ne remplace qu'un seul caractère. On peut utiliser plusieurs caractères génériques dans la même expression, et l'extension (les caractères situés après le point), s'il y en a une, fait partie du nom du fichier (l'extension n'est pas obligatoire sous UNIX, contrairement à DOS). Il faut faire très attention quand on utilise les caractères génériques, car une petite erreur arrive très vite ! Exemple : vous avez un répertoire avec entre autres des images, et vous voulez supprimer les images dont le nom commence par logo. Rien de plus facile, rm logo*, et le tour est joué. Mais si vous avez oublié que vous aviez dans ce même répertoire un fichier important qui s'appelle logout, il a été supprimé aussi, et il est impossible de le récupérer (pas de corbeille en mode texte). Pour éviter ce genre d'erreur avec la commande rm (et d'autres commandes destructives), l'option -i demande avant chaque suppression de fichier une confirmation de l'utilisateur-trice (utilisable seulement si le nombre de fichiers à détruire n'est pas trop grand). Il y a d'autres moyens pour faire des fausses manipulations, faites attention par exemple aux espaces mal placés. 2005, no copyright. 8