Utilisateur:Yves Bourguet/Console
De Wiki de la communauté Mandriva.
Une console, ou terminal, est une interface utilisateur permettant de dialoguer avec le système en tapant les commandes en texte (par opposition aux interfaces graphiques, telles que Windows, GNOME, KDE...) Par exemple, dans les anciennes versions de Windows (avant Wndows 95), le DOS était la console du système.
Les différentes catégories de console
Il existe deux catégories de console, les consoles texte ou console tty (soit en mode réel, soit en mode virtuel) et les consoles graphiques. Contrairement à ces dernières qui peuvent lancer des logiciels en mode graphique (tels que Firefox ou Dolphin, par exemple), les consoles texte ne peuvent lancer que des logiciels en mode texte.
Console texte en mode réel
Une console texte en mode réel est une console texte ouverte hors environnement graphique, et, par conséquent, toujours en plein écran.
Pour activer une console tty en mode réel, il faut, au moment du lancement de Mandriva, choisir l'option « mode dégradé » (ou « mode terminal », ou « mode console », ou « mode sans échec »). A partir ce ce moment, l'utilisateur est considéré comme « root » sans avoir à taper son mot de passe (attention à bien vérifier si le clavier est en QWERTY ou bien en AZERTY).
Pour sortir du « mode réel » et relancer le système en « mode normal », il faut entrer la commande init 6.
Console texte en mode virtuel
Une console texte en mode virtuel est une console texte activée à partir d'un environnement graphique, mais, toujours en plein écran. Pour lancer une console tty en environnement graphique (autrement dit pour obtenir une émulation de console texte), il faut taper l'une des six combinaisons de touches suivantes :
- <Ctrl-Alt-F1> pour ouvrir la console tty1 ;
- <Ctrl-Alt-F2> pour ouvrir la console tty2 ;
- <Ctrl-Alt-F3> pour ouvrir la console tty3 ;
- <Ctrl-Alt-F4> pour ouvrir la console tty4 ;
- <Ctrl-Alt-F5> pour ouvrir la console tty5 ;
- <Ctrl-Alt-F6> pour ouvrir la console tty6.
Le système demande tout d'abord à l'utilisateur d'entrer son nom (login), puis son mot de passe (password).
Pour travailler sur la console en tant que super-utilisateur ou administrateur (root), il faut entrer su -, puis, par deux fois, entrer son mot de passe root. Pour revenir au prompt de l'utilisateur ordinaire, il faut à nouveau entrer exit.
Pour sortir d'une console texte en virtuel et retrouver l'environnement graphique, il faut taper la combinaison <Alt-F7> ou <Ctrl-Alt-F7> ou encore <Alt-F8>.
Console graphique
Une console graphique est une console ouverte à partir d'un environnement de bureau (KDE, GNOME, Xfce...), et, par conséquent, toujours à l'intérieur d'une fenêtre graphique. Par exemple, la console par défaut de KDE est Konsole, celle de GNOME est Terminator... mais il en existe d'autres. Une console graphique est donc une fenêtre affichant une émulation graphique de terminal.
On lance une console graphique en activant sa commande dans le menu approprié de son environnement de bureau. Une fenêtre s'ouvre alors. Pour sortir, il faut soit fermer la fenêtre, soit entrer exit.
Par défaut, la fenêtre d'une console graphique s'ouvre avec l'invite propre à l'utilisateur ordinaire dont le compte personnel est actuellement actif. Pour travailler sur la console en tant que super-utilisateur ou administrateur (root), il faut entrer su -, puis, par deux fois, entrer son mot de passe root. Pour revenir l'invite de l'utilisateur ordinaire, il faut à nouveau entrer exit.
Il est tout à fait possible d'activer un logiciel graphique (Firefox ou Dolphin par exemple) à partir d'une console graphique.
Les différentes catégories d'utilisateurs de la console
Utilisateur ordinaire et utilisateur « root »
L'utilisateur de la console peut être soit un « utilisateur ordinaire », c'est-à-dire autre que « root » (généralement dans ce cas, on parle tout simplement d'« utilisateur ») dont les droits sont limités, soit le « super-utilisateur », c'est-à-dire l'administrateur (généralement appelé « root ») dont les droits sont illimités.
De manière générale, lorsqu'une console est activée à partir d'un environnement graphique, celle-ci par défaut s'ouvre avec l'invite de l'« utilisateur ordinaire » à l'origine de son activation. Une exception toutefois : une console texte en mode réel s'ouvre par défaut « en tant que root ».
Ouverture d'une console en « root »
L'expression consacrée « ouvrir une console en tant que root » ou plus simplement « ouvrir une console en root » signifie donc « ouvrir une console, et si celle-ci est activée en « utilisateur ordinaire », devenir « root » en entrant la commande classique su -, puis en entrant le mot de passe root ».
L'inverse, passer de l'« utilisateur root » à l'« utilisateur ordinaire » en console, se fait en entrant la commande exit.
Le shell
Le shell est l'interpréteur de commandes. Ce programme assure les fonctions suivantes :
- L'entrée des commandes par l'utilisateur, à partir de l'invite (prompt en anglais) de la console ;
- L'interprétation de celles-ci, puis leur transmission au système ;
- L'affichage éventuel d'une réponse du système (résultat de l'exécution de la commande, message d'erreur, etc.)
Le shell est comparable aux coulisses d'un théâtre (avec les techniciens, la machinerie...), tandis que la console avec son invite et son affichage seraient quant à eux comparables à la scène avec le décor. Pour résumer, le shell, c'est tout ce qui se passe derrière la console.
Dans Mandriva, le programme bash est le shell par défaut, mais il en existe d'autres (sh, csh, ksh, tcsh, zsh, etc.)
L'invite
Généralités
L'invite (ou prompt) du shell est le texte fixe après lequel l'utilisateur est invité à entrer les commandes.
- Exemple d'invite pour un « utilisateur ordinaire » :
- Exemple d'invite pour un « utilisateur root » :
Modifications de l'invite
Pour modifier l'apparence (éléments affichés, couleurs...) de l'invite (ou prompt) d'un utilisateur il faut ajouter une ligne dans le fichier de configuration du bash (bashrc). Où est situé un tel fichier ?
- Pour un utilisateur ordinaire (autre que root), le fichier bashrc se trouve dans le répertoire personnel de cet utilisateur, et il est caché (c'est-à-dire qu'il est précédé d'un point) (~/.bashrc) ;
- Pour l'utilisateur root, le fichier bashrc se trouve dans le répertoire /etc (/etc/bashrc).
La ligne à ajouter est de la forme :
PS1=" ... arguments ... "
Les principaux arguments sont les suivants - attention : il s'agit du signe antislash ( \ ).
- \u : affiche le nom de l'utilisateur ;
- \h : affiche l'hôte (l'ordinateur) ;
- \w : affiche le chemin complet ;
- \$ : affiche le caractère $ (symbolisant un utilisateur autre que root) ;
- \# : affiche le caractère # (symbolisant l'utilisateur root) ;
- @ : affiche l'arobase (@) (généralement utilisé comme séparateur entre \u et \h) ;
Séquences d'échappement (codes ANSI)
- Ouverture de la séquence : :\033 ;
- Fermeture de la séquence : :\033[0m ;
- Forme du code couleur : :[a;bb;ccm (a = surbrillance ou autre ; bb = couleur de premier plan ; cc = couleur du fond ; le crochet, les points virgules et le m doivent figurer tels quels).
Exemples de ligne à ajouter dans le fichier bashrc :
PS1=" \033[1;37;44m << \u \w >> \033[0m "
- Cette ligne affiche le symbole <<, le nom de l'utilisateur, le chemin et le symbole >>, le tout en surbrillance (1), caractères blancs (37) sur fond bleu (44) : elle peut, par exemple, être dédiée à l'utilisateur ordinaire.
PS1=" \033[1;37;41m << \u \w >> \033[0m "
- Cette ligne affiche le symbole <<, le nom de l'utilisateur, le chemin et le symbole >>, le tout en surbrillance (1), caractères blancs (37) sur fond rouge (41) : elle peut, par exemple, être dédiée à l'utilisateur root.
Les commandes de la console
Pour arrêter le déroulement de la réponse à une commande : jeu de touches <Ctrl-C>.
Généralités sur la ligne de commande
Une ligne de commande est composée d'un certain nombre d'éléments, appelés paramètres, séparés par des espaces. S'il n'y a qu'un paramètre, il s'agit nécessairement du nom de la commande.
- date : nom de commande pour afficher la date et l'heure courantes.
- Cette commande peut fonctionner sans paramètres.
Mais le nom d'une commande peut être accompagné d'un ou plusieurs paramètres, arguments ou options. Par ailleurs, certains paramètres d'une ligne de commande peuvent être abrégés.
Les arguments
Un argument est un élément désignant l'objet sur lequel doit porter la commande, ou encore, la destination de la commande. Un argument est par nature extérieur à la commande et peut revêtir une infinité de formes : pour être accepté par le système, il suffit qu'il existe.
- cd : nom de commande pour changer de répertoire.
- /home/anatole/ : nom du répertoire personnel de l'utilisateur Anatole : ce sera l'argument de la ligne de commande suivante.
- cd /home/anatole : ligne de commande pour faire du répertoire /anatole/ le répertoire courant : si celui-ci n'existe pas, le shell renverra un message d'erreur.
Les options
Une option est un paramètre écrit à la suite du nom de la commande afin d'en préciser le sens ou la portée. Contrairement à un argument, une option est par définition interne à la commande, et ne peut par conséquent revêtir qu'une quantité limitée de formes. Une option peut être courte ou longue.
Les options courtes
Une option courte est composée d'une seule lettre précédée d'un tiret.
- ls : nom de commande pour afficher les seules entrées non cachées du répertoire courant, en plusieurs colonnes.
- -a : option pour la commande ls précisant que l'affichage concerne toutes les entrées (cachées ou non).
- -l : option pour la commande ls précisant que l'affichage doit se faire sous forme de liste détaillée.
- ls -a : ligne de commande pour l'affichage de toutes les entrées (cachées ou non) du répertoire courant, en plusieurs colonnes.
- ls -l : ligne de commande pour l'affichage des seules entrées non cachées du répertoire courant, sous forme de liste détaillée.
En présence de plusieurs options courtes, celles-ci peuvent être regroupées (sans espace) et précédées d'un seul tiret.
- ls -la : ligne de commande pour l'affichage de toutes les entrées (cachées ou non) du répertoire courant, sous forme de liste détaillée.
Si l'on doit associer une valeur numérique à une option courte, cette valeur numérique succède à l'option, les deux éléments étant simplement séparés par un espace. Exemple :
- head -n 3 syslog : dans cette ligne de commande (pour l'affichage des 3 premières lignes du fichier syslog), head est le nom de la commande, -n 3, une option courte indiquant le nombre de ligne à afficher, et syslog, un argument (le fichier à afficher).
Les options longues
Une option longue est composée d'au moins deux caractères précédés de deux tirets. Une option longue ne peut être combinée avec aucune autre option.
- urpme : nom de commande pour désinstaller certains paquetages rpm.
- --auto-orphans : option longue désignant les paquetages orphelins.
- urpme --auto-orphans : ligne de commande pour supprimer les paquetages orphelins.
Si l'on doit associer une valeur numérique à une option longue, cette valeur numérique succède à l'option, les deux éléments étant simplement séparés par le signe égale (=).
Abréviations
Dans la perspective d'alléger la ligne de commande, il est possible (mais non obligatoire) d'abréger certains de ses paramètres (principalement le nom de la commande ou les options).
- cd : nom de commande pour changer de répertoire courant.
- .. : option représentant le répertoire supérieur, ou répertoire parent.
- cd .. : ligne de commande pour passer dans le répertoire supérieur (nom plus option).
- cd.. : ligne de commande abrégée pour passer dans le répertoire supérieur (nom plus option, sans espace).
- Exemple, avec la même commande (cd) employée sans argument :
- cd : permet de passer directement (chemin absolu) dans le répertoire personnel de l'utilisateur (le répertoire habituellement identifié par le tilde (~).
Commandes d'aide
- man : aide détaillée sur une commande quelconque :
- man Commande - Pour quitter, taper q
- info : aide sur une commande quelconque :
- info Commande - Pour quitter, taper q
- apropos : aide succincte sur une commande :
- apropos Commande - Ne fonctionne pas bien
- whatis : aide succincte sur une commande
- whatis Commande - Ne fonctionne pas bien
Commandes relatives aux fichiers
Création de fichiers
- touch : création d'un fichier vide à la racine du répertoire courant :
- touch NomDeFichier
Copie de fichiers
- cp : copie de fichiers ou de répertoires :
- cp FichierObjet Cible (Cible : nouveau nom de fichier ou répertoire devant recevoir la copie)
- cp -R RépertoireObjet Cible (Cible : répertoire cible devant recevoir la copie)
Suppression de fichiers
- rm : suppression de fichier :
- rm NomDeFichierASupprimer
Localisation de fichiers
- find : chercher et trouver un fichier :
- find RépertoireDeRecherche -name NomDeFichier
- which : affichage du répertoire où est stocké le programme suivant :
- which NomDuProgramme
Affichage de fichiers
- cat : affichage du contenu d'un fichier texte court (d'un écran maximum) :
- cat NomDeFichier
- Pour un fichier texte long, cf. commande less.
- less : affichage du contenu d'un fichier texte long (de plus d'un écran) :
- less NomDeFichier
- head : affichage du début du contenu d'un fichier :
- head NomDeFichier
- head -n x NomDeFichier : des x premières lignes du fichier en question.
- tail : affichage de la fin du contenu d'un fichier :
- tail NomDeFichier
- head -n x NomDeFichier : des x dernières lignes du fichier en question.
Affichage de la taille de fichiers
- du : affichage de la taille des disques, des répertoires, des fichiers, etc. :
- du -s
- Juste la taille totale, sans le détail de chaque entrée.
Recherche dans un fichier
- grep : recherche d'un mot ou d'une chaîne dans des fichiers
- grep ...
Déclaration de fichiers
- chown : déclaration du propriétaire d'un fichier :
- chown NomDePropriétaire NomDeFichier
Déclaration de fichiers
- ln : pour créer un raccourci de fichier (ou lien, link en anglais)
- ln NomDeFichier1 NomDeFichier2 : lien physique (les deux noms NomDeFichier1 et NomDeFichier2 vont pointer vers le même contenu, le même inode).
- ln -s NomDeFichier1 NomDeFichier2 : lien symbolique (NomDeFichier1 va pointer vers NomDeFichier2).
Commandes relatives aux répertoires
Création de répertoire
- mkdir : création d'un répertoire à la racine du répertoire courant :
- mkdir NomDuRépertoire
Copie de répertoire
- cp : copie de répertoires :
- cp -R RépertoireObjet Cible (Cible : répertoire cible devant recevoir la copie)
Déplacement d'un répertoire
- mv : déplacement d'un répertoire
- mv RépertoireADéplacer RépertoireCible/ (RépertoireCible/ : nouveau contenant)
Localisation d'un répertoire
- find : chercher et trouver un répertoire :
- find RépertoireDeRecherche -name NomDeFichier
- pwd : affichage du répertoire courant précédé de son chemin complet :
- pwd
Suppression d'un répertoire
- rm : suppression de répertoire (la suppression a lieu même si le répertoire n'est pas vide) :
- rm -r NomDeRépertoireASupprimer
- rmdir : suppression de répertoire (la suppression a lieu seulement si le répertoire est vide) :
- rmdir NomDeRépertoire
Changement de répertoire courant
- cd : changement de répertoire :
- cd NomDuRépertoire
Affichage du contenu d'un répertoire
- ls : affichage du contenu (entrées fichiers ou sous-répertoires) du répertoire courant :
- ls ou l : affichage des seules entrées non cachées, en plusieurs colonnes.
- ls NomDeRépertoire ou l NomDeRépertoire : affichage du contenu d'un répertoire quelconque (autre que le répertoire courant).
- ls -l ou ll : affichage des seules entrées non cachées, sous forme de liste détaillée.
- ls -a ou la : affichage de toutes les entrées (cachées ou non), en plusieurs colonnes.
- ls -la ou la -l : affichage de toutes les entrées (cachées ou non), sous forme de liste détaillée.
Affichage de la taille d'un répertoire
- du : affichage de la taille des répertoires :
- du -s
- Juste la taille totale, sans le détail de chaque entrée.
Commandes relatives aux disques et aux système de fichiers
- mkfs : formatage de disque et création de système de fichiers :
- mkfs (en root)
Commandes relatives aux variables
- env : affichage des variables de l'environnement :
- env
- echo : affichage du contenu d'une variable :
- echo $NomDeVariable
- déclaration de variable : entrer NomDeVariable=ContenuDeVariable (cf. commande let)
- let : déclaration de variable à contenu numérique :
- Entrer : let "NomDeVariable=NombreEntier" (cf. commande echo)
- read : frappe au clavier du contenu d'une variable ContenuDeVariable :
- read NomDeVariable
Commandes diverses
- date : affichage de la date et de l'heure courantes
- date
- whoami : affichage du nom d'utilisateur courant :
- whoami
- chmod : changement des permissions (ou droits : lecture, modification, exécution...) d'un fichier :
- chmod Argument NomDeFichier
- sort : classement de mots :
- sort ...
- sudo : pour exécuter une commande en mode administrateur sans être administrateur (voir aussi Wikipédia-sudo)
- sudo NomDeCommande
Lancement d'un script
Pour lancer un script depuis la console,
- Si le fichier du script se trouve dans un des répertoires du PATH, entrer simplement :
- NomDuScript
- Si le fichier ne se trouve pas dans un des répertoires du PATH mais dans le répertoire courant, entrer :
- ./NomDuScript
- Si le fichier ne se trouve ni dans un des répertoires du PATH ni dans le répertoire courant, entrer :
- CheminComplet/NomDuScript
Les permissions ou droits d'accès aux fichiers
Les permissions ou droits d'accès aux fichiers (au sens large du terme) sont stockées dans dix attributs de fichiers, affichables grâce à la commande ls (ls -l ou ll...)
Les attributs se présentent sous la forme d'une suite de dix caractères, constituée d'un premier caractère (d), suivi de trois segments de structure identique (chacun d'eux comprend trois caractères se succédant toujours dans le même ordre : r, w et x).
La suite complète prend donc la forme : drwxrwxrwx, soit : d rwx rwx rwx (si l'on ajoute trois espaces afin d'y voir plus clair).
Rôle du premier caractère
Le premier caractère (d) indique la nature du fichier (au sens large du terme), et peut prendre les positions suivantes (les plus courantes étant le d et le tiret).
- La position d (comme Directory = dossier, répertoire) indique en fait un répertoire ;
- La position - (un tiret) indique un fichier ordinaire, ou fichier régulier, ou fichier standard (texte, configuration, programme...) ;
- Toutes les autres positions indiquent des fichiers spéciaux, à savoir :
- la position b (comme Bloc) indique un fichier spécial de type bloc ;
- la position c (comme Caractère) indique un fichier spécial de type caractère ;
- la position l (comme Link = lien) indique un fichier spécial de type lien symbolique (ou symlink), comparable à un raccourci Windows (un link) ;
- la position n (comme Network = réseau) indique un fichier spécial de type réseau ;
- la position p indique un fichier spécial de type FIFO (= premier arrivé, premier servi) - cf. Les manuels de Linux : man et info ;
- la position s (comme Socket = connecteur) indique un fichier spécial de type connecteur.
Rôle des trois segments de trois caractères
- Le premier segment (caractères 2, 3 et 4) indique les permissions du propriétaire du fichier (user en anglais) ;
- Le deuxième segment (caractères 5, 6 et 7) indique les permissions des utilisateurs membres du groupe du propriétaire du fichier (group en anglais) ;
- Le troisième segment (caractères 8, 9 et 10) indique les permissions de tous les autres utilisateurs (other en anglais).
- Pour résumer : * uuu ggg ooo (l'astérisque figurant ici le premier attribut indiquant la nature de l'entrée)
Les trois catégories de permissions
Pour chacun des trois segments, la signification des caractères rwx est la suivante.
- Le premier caractère de chaque segment (r, comme Read = lire) indique la permission de lire le fichier ; dans le cas d'un répertoire, il s'agit de la permission d'afficher son contenu, plus précisément les éléments (fichiers et sous-répertoires) situés à la racine du répertoire en question ;
- Le deuxième caractère de chaque segment (w, comme Write = écrire) indique la permission de modifier ou effacer le contenu du fichier, ou encore, de supprimer celui-ci, purement et simplement ; dans le cas d'un répertoire, il s'agit de la permission de modifier son contenu (ajouter, renommer, modifier ou supprimer des entrées situées à la racine du répertoire en question) ;
- Le troisième caractère de chaque segment (x, comme eXecute = exécuter) indique la permission d'exécuter, de lancer, d'activer le fichier ; dans le cas d'un répertoire, il s'agit de la permission de faire de celui-ci son répertoire de travail et d'y pénétrer.
- Remarque : pour chacun de ces trois types de caractère, une absence de lettre (alors remplacée par un tiret) indique évidemment une absence de permission.
- Pour résumer : * rwx rwx rwx (l'astérisque figure ici le premier attribut indiquant la nature de l'entrée)
Modification des permissions
Les permissions peuvent être modifiées en changeant la position des neuf attributs de fichiers au moyen de la commande chmod :
- chmod Argument NomDeFichier
Utilisation de chmod avec les lettres
Syntaxe simplifiée de la commande chmod :
- chmod [ugo][+/-][rwx] NomEntrée
Rappel préalable de la signification des différents symboles
- Les trois différentes catégories d'utilisateurs :
- u (pour user, utilisateur) : premier segment, celui de l'utilisateur propriétaire de l'entrée (fichier, répertoire...) (attributs 2, 3 et 4) ;
- g (pour group, groupe) : deuxième segment, celui du groupe de l'utilisateur propriétaire de l'entrée (attributs 5, 6 et 7) ;
- o (pour other, autre) : troisième et dernier segment, celui de n'importe quel utilisateur (attributs 8, 9 et 10).
- Ajout ou suppression de permission :
- + (signe plus) : "ajouter la ou les permissions suivantes" ;
- - (signe moins) : "supprimer la ou les permissions suivantes".
- Les trois différentes catégories de permissions, à l'intérieur de chaque segment :
- r : droit de lecture de l'entrée ;
- w : droit d'écriture ou suppression de l'entrée ;
- x : droit d'exécution de l'entrée.
Mise en oeuvre de la commande
Entre le nom de la commande (chmod) et le nom de l'entrée faisant l'objet de la modification (fichier, répertoire...), il faut indiquer successivement : (1) la ou les lettres désignant les catégories d'utilisateurs concernées (ugo), (2) le signe (+ ou -) indiquant l'ajout ou la suppression des permissions, (3) la ou les lettres désignant les catégories de permissions concernées (rwx). Exemples :
- Imaginons que vous souhaitiez accorder (+) le droit de lecture (r) aux « autres utilisateurs » (o) du fichier essai.txt. Voilà comment vous devez procéder :
- Si maintenant vous souhaitez priver (-) les membres du groupe propriétaire (g) du droit d'exécuter (x) le programme /usr/bin/lancemoi, vous devez entrer :
- Précisons qu'il y a des chances que vous ayez besoin d'être root pour faire cela...
- Si vous tenez à interdire (-) tout accès (rwx) au répertoire perso/ à tous les utilisateurs autres que son propriétaire, vous taperez :
Utilisation de chmod avec les chiffres
chmod permet aussi d'attribuer les différents droits en utilisant un codage numérique. Les droits peuvent alors être représentés par une succession de trois chiffres :
- le premier chiffre indique les droits du propriétaire ;
- le second, ceux du groupe propriétaire ;
- le troisième, ceux des autres utilisateurs.
Dans ce codage :
- 4 signifie « lecture » (r),
- 2 signifie « écriture » (w),
- 1 signifie « exécution » (x).
Quand plus d'un droit est attribué le chiffre indiqué est la somme des chiffres correspondant à ces différents droits. Par exemple :
- 7 = 4+2+1, pour rwx
- 6 = 4+2+0, pour rw-
- 5 = 4+0+1, pour r-x
- 3 = 0+2+1, pour -wx
- 0 = 0+0+0, pour ---
Avec ce système, la commande :
attribuera donc au propriétaire du fichier monfichier les droits de lecture + écriture + exécution (4+2+1=7), au groupe propriétaire les droits de lecture + exécution (4+0+1=5), et aucun droit aux autres utilisateurs (0+0+0=0). Ce qui donnerait :


