La console
Introduction à la Console
Définition de la Console
La console est l’interface textuelle du système d’exploitation Ubuntu, qui permet d’utiliser les commandes du système
Notion de console
La console est une interface textuelle qui permet une "communication" entre l'homme et la machine avec uniquement un écran et un clavier. Le système peut utiliser différents interpréteurs de commande pour communiquer avec l'utilisateur (par défaut le shell).
L'utilisateur aura juste à inscrire sur le clavier les instructions qu'il souhaite avoir de son système.
Exemple : root@machine# ls -a
. .. .bashrc text.txt dosser/
La commande "ls" donne l'instruction de donner des informations sur le contenu du répertoire courant et le -a est une option qui demande d'afficher en plus les fichiers cachés.
La console est accessible directement sur un serveur sans interface graphique, à distance ou via un terminal sur une interface graphique.
Note : Cliquez ici pour savoir ce que sont des terminaux graphiques.
Accès à la console
Pour un serveur Ubuntu, sans interface graphique, il est directement accessible au démarrage de la machine.
Pour un desktock Ubuntu, dite linux avec interface graphique, il accessible via le menu démarrer, sur Terminal ou via un raccourcie clavier (voir note).
Note : Il y a sur Ubuntu, six consoles disponibles (tty1, tty2 …), elles sont accessible via Ctrl+Alt+Fx, où x est le numéro de la console à laquelle vous voulez vous rattacher.
Cas général et versions antérieures à 17.04
À partir de "F7" il ne s'agit plus de consoles à proprement parler, mais de sessions Xorg, c'est à dire de Linux en mode graphique. S'il y a plusieurs utilisateurs connectés, il y a plusieurs sessions Xorg auxquelles vous pouvez accéder via Ctrl+Alt+F9, etc. (à noter que Ctrl+Alt+F8 est en général une console spéciale où s'affichent des informations sur le démarrage de l'ordinateur).
Ceci n'est qu'une convention, vous pouvez désactiver/activer des consoles sur d'autres touches Fonction (F*), ce n'est que la configuration par défaut.
Il est, en général, préférable d'utiliser l'émulateur de terminal (Terminal) pour lancer des lignes de commandes, mais les consoles peuvent se révéler indispensables si, par exemple, l'interface graphique plante.
Versions avec GDM postérieures à 17.04
À partir de 17.04, sur les systèmes avec GDM (les variantes avec GNOME Shell donc), la session graphique (Xorg ou Wayland) se lance par dessus la 1ère console (et s'accède donc en faisant Ctrl+Alt+F1), et seules les consoles 2 à 6 restent accessibles, rien n'étant normalement présent à partir de Ctrl+Alt+F7.
Plusieurs sessions graphiques peuvent être lancées en parallèle, notamment si vous connectez 2 utilisateurs simultanément, donc n'hésitez pas à tester toutes les combinaisons jusqu'à Ctrl+Alt+F6 si besoin.
L'intérêt du mode console (ou du terminal)
Rapidité
Même si Ubuntu est clairement orienté interface graphique , il peut être intéressant d'utiliser malgré tout des applications console et comprendre celles qui se lancent dans un terminal. En effet, certaines applications sont beaucoup plus rapides à exécuter en lignes de commande, comme l'installation d'applications (apt-get
), etc.
Que vous utilisiez Windows, MacOS ou une distribution GNU/Linux en mode graphique, vous devez être certainement habitués aux interfaces graphiques classiques qui consistent à cliquer sur telle ou telle partie d'une fenêtre, ce qui aura pour but d'effectuer une action. Prenons un exemple simple : vous souhaitez copier le fichier "mon_fichier" d'un répertoire à un autre.
En mode graphique, vous devez :
- Naviguer jusqu'au dossier où se trouve le fichier
- Clic droit sur le fichier en question → Copier
- Vous rendre dans le dossier où vous souhaitez copier le fichier
- Clic droit → Coller
Ou alternativement, glisser déposer le fichier d'un dossier ouvert à un autre en maintenant les touches ctrl, maj ou alt en fonction de si vous voulez le copier, déplacer ou créer un raccourci.
Et bien en console, vous pouvez (simplement!) taper ceci :
cp <mon_fichier_à_copier> <destination>
Par exemple, pour copier le fichier ubuntu.pdf qui est dans un dossier1, dans un dossier2, il suffit de taper dans un terminal:
cp ~/Bureau/dossier1/ubuntu.pdf ~/Bureau/dossier2
Il a ainsi exécuté une ligne de commande qui sera interprétée en vue d'effectuer une ou plusieurs opérations.
Pour le déplacer dans un autre dossier, il faut connaitre son chemin :
cp ubuntu.pdf dossier_1/dossier_2/ubuntu.pdf.
À noter que les consoles/terminaux ne sont pas limités à GNU/Linux : en effet, Windows possède un terminal qui émule MS-DOS. Pour y accéder, appuyez sur <toucheWindows>+R, puis tapez cmd puis entrée.
Une fenêtre noire s'ouvre, et vous pouvez également copier un fichier :
copy windows.pdf windows2.pdf
Cependant, aussi bien au niveau fonctionnalités que souplesse, la console sous Windows est bien pauvre (impossibilité de redimensionner la fenêtre, peu d'outils en ligne de commande, ergonomiquement inutilisable…). C'est pour cela qu'elle n'est que très peu utilisée. Microsoft a alors décidé de développer une vraie console (PowerShell) pour l'intégrer dans Windows Vista, mais à la suite de différents problèmes, il n'a finalement pas été intégré avant Windows 7.
Exhaustivité
Malheureusement si un bug survient dans un programme, le mode graphique, par souci de simplicité, n'affiche aucune information pour trouver le problème. Dans ce cas, lancer un programme en mode console permet de récupérer ces informations. Sans oublier que si vous constatez des problèmes dans votre système , les commandes s'avèrent indispensables.
De plus il existe beaucoup plus de commandes que d'interfaces.
Pour diagnostiquer un problème voir la page diagnostic ou diagnostic_outil.
Convivialité
La communauté Ubuntu semble beaucoup plus présente que sur différents systèmes. Si vous avez une difficulté, vous pouvez poser votre problème sur un forum connu. En fonction de la difficulté, d'autres utilisateurs vous aideront pour résoudre votre souci.
Exemple :
Si vous demandez de l'aide dans un forum, il est beaucoup plus facile de vous répondre :
Pour avoir les noms des fichiers de configuration, lance un terminal et tape la commande :
ls -ad ~/.*
Et vous n'aurez plus qu'à faire un copier-coller du forum vers un terminal, plutôt que :
« Lance Nautilus dans ton répertoire personnel avec "Raccourcis" "Dossiers de …" et ensuite menu "Affichage" "Fichiers cachés"… »
Bien entendu ce n'est qu'un simple exemple, il existe des cas bien plus complexes où l'utilisation d'un terminal vaut mieux que des heures d'explications !
Commandes et paramètres
Nous allons maintenant vous expliquer ce que signifie cette ligne barbare qui, au premier coup d'œil, semble pleine de choses qui ne veulent rien dire.
Intéressons nous d'abord à la nomenclature de la commande :
cp <mon_fichier_a_copier> < nouvelle destination du fichier dans mon_dossier/nom_fichier_copié>
traduction :
<La commande qui a pour nom cp> <en entrée : mon_fichier_a_copier> <en sortie : nouvelle destination du fichier dans mon_dossier/nom_fichier_copié>
cp
est une commande qui correspond, pour les non anglophones, à l'abréviation de copy file (copier le fichier).
Une commande admet généralement des paramètres, c'est-à-dire des informations complémentaires lui permettant d'effectuer telle ou telle opération. Dans notre exemple, la commande cp
nécessite deux paramètres : le fichier source, et le fichier cible. Pour résumer, la commande s'utilise de la façon suivante :
$ cp <fichier_source> <fichier_cible>
Notations : les éléments désignés entre les caractères "<" et ">" doivent être adaptés pour votre usage. Pour ce qui est du signe « $ », voir les notes.
Ainsi, la commande copiera le fichier source (premier paramètre) vers le fichier cible (deuxième paramètre).
Ce principe s'applique à la plupart des commandes.
Cependant une commande ne nécessite pas forcément de paramètres (la commande ls
par exemple, qui affiche le contenu d'un dossier).
Aide sur une commande
Lorsque vous ne connaissez pas une commande ou que vous n'êtes pas sûr de la syntaxe à utiliser (la signification des paramètres), deux solutions s'offrent à vous :
- Entrer le nom de la commande, suivie du paramètre
–help
ou-h
, comme ceci :
$ commande --help
$ commande -h
- La commande man ( ça marche à tous les coups )
$ man commande
Notez que man
est elle-même une commande, et permet d'afficher la documentation de la commande indiquée en paramètre. L'avantage de cette méthode est que le texte affiché est souvent plus complet, et la plupart du temps dans la langue du système (c'est-à-dire en français si votre système supporte cette langue).
Ceci vous indiquera comment utiliser la commande, avec les paramètres requis et/ou optionnels.
Les options d'aides des commandes
Quelques exemples
cd
Définition :
cd
est LA commande basique que tout utilisateur doit connaître. Comme indiqué dans le premier chapitre de cette page, cette commande sert à naviguer d'un dossier à un autre.
Syntaxe :
$ cd REPERTOIRE
Ne génère pas d'affichage, sauf en cas d'erreur.
Exemple :
$ cd /home/utilisateur/
ls
Définition :
ls
permet d'afficher la liste des fichiers et dossiers présents dans le dossier indiqué en paramètre.
Syntaxe :
$ ls RÉPERTOIRE
Le paramètre RÉPERTOIRE n'est pas obligatoire si vous souhaitez afficher la liste du dossier en cours.
Exemple :
$ ls # Affiche la liste des fichiers du répertoire en cours $ ls ~ # Affiche les fichiers du dossier personnel, ~ représentant "/home/utilisateur-en-cours" $ ls -l # Affiche la liste détaillée des fichiers du répertoire en cours $ ls -A # Affiche les fichiers cachés et non-cachés dans le répertoire en cours
Pour apprendre les commandes
- Les commandes de base en console (très court et concis).
- Apprendre unix en 10 minutes - Un tutoriel expliquant les principales commandes utilisées par ubuntu.
- Les commandes de base - Un tutoriel un peu long mais très complet.
Pour aller encore plus loin :
- Screen : Utilitaire agissant directement sur le terminal.
- Liste des applications console : Liste des applications pouvant être lancées en console.
- Apt : Gestion des paquets en mode texte.
- Script Shell : Comment créer des scripts shell.
Raccourcis clavier en mode console
Il existe des raccourcis clavier spécifiques à la console, et permettant de nombreuses actions intéressantes (source : Tux-planet) :
Vous pouvez lancer des programmes en tapant leur nom, bien utile quand il y a une erreur car celle ci sera indiquée dans la console. La console d'Ubuntu, comme sur la plupart des systèmes Unix, propose le complètement ou complétion automatique, c'est-à-dire qu'avec la touche TAB, vous pouvez compléter ce que vous tapez, très utile pour naviguer dans l'arborescence ou pour éviter les fautes typographiques !
# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi
Déplacement
- Ctrl + a : aller au début de la ligne
- Ctrl + e : aller à la fin de la ligne
- Alt + b : se déplacer mot par mot dans la ligne de commande en arrière (b pour backward)
- Alt + f : se déplacer mot par mot dans la ligne de commande en avant (f pour forward)
- Ctrl + xx : positionner le curseur au début du mot ou à la fin
Couper / Coller
- Ctrl + k : couper la chaîne du curseur jusqu'à la fin de la ligne
- Ctrl + u : couper la chaîne du curseur jusqu'au début de la ligne
- Ctrl + w : couper le mot avant le curseur
- Ctrl + y : coller une chaîne
Modification
- Ctrl + t : inverser la position des deux caractères avant le curseur (pratique quand on tape par exemple, sl au lieu de ls)
- Alt + shift + t : inverser la position des deux mots avant le curseur
- Alt + shift + c : mettre une lettre en majuscule (c pour capitalize)
- Alt + shift + l : mettre un mot en minuscule (l pour lowercase)
- Alt + shift + u : mettre un mot en majuscule (u pour uppercase)
- Alt + shift + . : réécrire le paramètre de la dernière commande
Divers
- Ctrl + l : effacer le contenu de l'écran
- Ctrl + _ : annuler la dernière modification
- Ctrl + c : arrêter la commande en cours
- Ctrl + z : interrompt temporairement un processus, qui peut être relancé avec la commande fg (au premier plan) ou bg (en arrière-plan)
- Ctrl + d : quitter le shell en cours
- Ctrl + r : permet de rechercher une commande dans l'historique de la console
Optimiser la console (auto-complétion)
La touche Tab
permet de compléter le nom des commandes. Elle permet aussi de compléter le chemin vers un fichier mais cela n'est pas toujours très pertinent. Par exemple, il serait préférable que l'argument après apt-get soit complété en fonction des paquets disponibles, et non des fichiers dans le répertoire courant. Cette fonction est présente dans Ubuntu.
Si elle n'est pas ou plus activée, il suffit d'éditer le fichier /etc/bash.bashrc avec les droits d'administration et de décommenter (enlever les #) les lignes concernant l'auto-complétion, qui sont:
# if [ -f /etc/bash_completion ] && ! shopt -oq posix; then # . /etc/bash_completion # fi
Les alias
La ligne de commande est très efficace, mais taper au clavier prend du temps : vous pouvez raccourcir vos commandes grâce aux alias.
Il suffit d'ajouter dans votre fichier ~/.bashrc
, juste après some more ls aliases
, une ligne du type :
alias monalias='macommandetreslongue'
Lorsque vous taperez monalias
dans votre terminal, la commande réellement exécutée sera macommandetreslongue
.
À titre d'exemple, voici des alias pratiques :
Exemple
Voici deux exemples concernant l'usage de apt :
alias acs='apt-cache search' alias agu='sudo apt-get update' alias agg='sudo apt-get upgrade' alias agd='sudo apt-get dist-upgrade' alias agi='sudo apt-get install' alias agr='sudo apt-get remove'
alias search='apt-cache search' alias show='apt-cache show' alias install='sudo apt-get install' alias remove='sudo apt-get remove' alias update='sudo apt-get update' alias upgrade='sudo apt-get upgrade -uy'
À l'usage ça donne :
update && upgrade
et on n'en parle plus
Notes
Maintenant, lançons-nous dans la fabuleuse histoire de la ligne de commande…
Le signe « $ »
Toutes les commandes de cette page seront précédées du signe $
(dollar), pour deux raisons fondamentales :
- La plupart des commandes affichent du texte lors de leur exécution, reprenons l'exemple de la commande
ls
qui vous affichera le contenu d'un dossier. C'est pourquoi il faut différencier ce que vous devez entrer, et ce que vous ne devez pas entrer. Exemple :
Autre formulation : (il faut récupérer le meilleur des deux). Un objectif du signe$
est de distinguer la commande en elle-même du résultat que l'on obtient en sortie, c'est-à-dire après son exécution. → Dans le cas de la commandels
, la sortie (donc non précédée du signe "$") est la liste des fichiers (au sens large) du répertoire courant.
$ ls ati-driver-installer-8.20.8-x86_64.run Desktop fglrx-installer_8.20.8-1_amd64.changes Images libdri.a.gz ls.txt rt2570-cvs-2006010913 rt2570-cvs-daily.tar.gz
- Lors de vos péripéties dans le monde de Linux, vous serez sûrement amené à lire d'autres documentations que celle-ci. Or les commandes inscrites dans ces dernières pourront se révéler beaucoup plus fastidieuses qu'un simple
ls
, et vous aurez tendance à recopier bêtement (sauf votre respect) le contenu de cette commande. Or ce n'est pas comme cela que vous apprendrez à être autonome dans le monde de Linux. Ainsi, le caractère$
vous obligera à réécrire la commande en tentant de comprendre sa signification. Celui-ci est aussi utilisé pour spécifier explicitement que ce qui suit est une commande à lancer dans le terminal, même si sur ce wiki la mise en forme le montre explicitement.
Autre formulation : Un deuxième avantage découle de la présence du signe "$" : celle-ci empêche un copier/coller pur et simple d'une série de commandes consécutives (ce que vous rencontrerez probablement en parcourant ce wiki). En effet, l'objectif de ce wiki n'est pas seulement de vous apporter des solutions mais aussi de vous permettre de les comprendre et ainsi d'accroître votre connaissance, donc votre maîtrise, dans les systèmes GNU/linux. C'est pourquoi les rédacteurs de ce wiki font l'effort de vous donner les explications des commandes à exécuter. Notez bien que, sans cette volonté d'expliquer, ce wiki ne serait pas ce qu'il est aujourd'hui : vous ne trouveriez sans doute pas autant de solutions, les contributeurs ayant aussi leurs vies à côté. A la place vous utiliseriez des "scripts" (à définir) préconfigurés qui vous rapprocheraient d'un certain manque de possibilités que l'on constate dans le monde capitaliste où les industriels tentent de brider les logiciels pour lesquels l'utilisateur ne paye pas de licence. (Mais ceci est un autre débat, d'ailleurs le projet DADVSI l'alimente beaucoup de nos jours !).
Notion de Shell
L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais « shell », qui signifie « coquille ».
Le shell est ainsi chargé de faire l'intermédiaire entre le système d'exploitation et l'utilisateur grâce aux lignes de commandes saisies par ce dernier. Son rôle consiste à lire la ligne de commande, interpréter sa signification, exécuter la commande, puis retourner le résultat sur les sorties1).
Notez que le shell par défaut d'Ubuntu s'appelle bash, mais qu'il en existe d'autres, selon les usages (zsh, csh, …), pour lesquels le fonctionnement est légèrement différent.
Utilisation de la souris dans une console
Si vous désirez pouvoir utiliser la souris dans les consoles, vous pouvez utiliser le programme gpm. La souris est alors utilisable pour le traditionnel copier-coller par sélection ou dans certains programmes comme nano ou lynx.
Pages concernant la console
Liens
Les commandes classées par catégorie et par usage
Liste des applications console
Aide :
Une courte introduction à la Console
Commandes particulières sous Linux
Les manuels des commandes en français
Les pages de manuel en français sur le site de Jean-Philippe BARRALIS