Ceci est une ancienne révision du document !



Le terminal GNU/Linux

Le terminal est un programme qui ouvre une console dans une interface graphique, il permet de lancer des commandes.

Un terminal lancé sous Ubuntu 10.04

Il est parfois plus simple de taper une commande que d'effectuer des manipulations demandant beaucoup de clics de souris dans une interface graphique. C'est aussi un moyen plus simple pour expliquer comment faire quelque chose à quelqu'un (sur un forum par exemple), puisque il suffit d'indiquer la commande et non la suite de clics à effectuer sur l'interface graphique.

Cependant, même si le terminal peut être beaucoup plus efficace qu'une interface graphique sous les doigts d'un utilisateur avancé, il est moins abordable que les interfaces graphiques.

Il est probable qu'aucune des deux méthodes (commandes ou interface graphique) ne remplacera complètement l'autre car elles se complètent plus qu'elles ne rivalisent.

  • Depuis la version 10.04 le terminal peut être lancé grâce au raccourci clavier : Ctrl + Alt + T (sous Gnome-Panel et Unity).
  • Ouvrir le Terminal grâce au menu:
Ubuntu et Edubuntu (Avec Gnome-Panel) Applications → Accessoires → Terminal ou Alt+F2 et tapez gnome-terminal
Kubuntu K → Système → Konsole ou Alt+F2 et tapez konsole
Xubuntu Applications → Accessoires → Terminal ou Alt+F2 et tapez xfterm4

chmod +x chemins.sh

L'utilisation est assez simple, tapez une commande (ou copiez-collez la) et faites Entrée (clavier) pour l'exécuter.

Les raccourcis pour le copier-coller ne sont pas Crtl+C ↔ Ctrl+V par défaut, mais Maj+Ctrl+C et Maj+Ctrl+V. Dans un terminal le raccourci Ctrl+C annule la commande en cours. Il est possible de modifier les raccourcis du Terminal, voir en bas de page la rubrique personnaliser son terminal c'est toutefois une opération qui présente des risques de conflits entre les raccourcis "de la console" et les raccourcis "du terminal".

Une commande est une ligne de texte, sur la documentation elle apparaît souvent comme ça :

ma commande

Parfois, il y en a plusieurs de suite, comme ça :

ma commande 1
ma commande 2 
ma commande 3

Quand il y a plusieurs commandes de suite il faudra copier-coller les lignes une par une, et faire Entrer entre chaque dans le terminal. (copier-coller commande 1, Entrer, copier-coller commande 2, Entrer, etc.)

Une commande est pour ainsi dire un programme comme les autres. Par exemple pour ouvrir firefox, vous pouvez taper:

firefox

dans un terminal.

Parfois sur un forum, ou dans une documentation, vous trouverez des commandes de ce genre :

mv "le fichier à déplacer" "le dossier où le déplacer"
stella /vers/une/rom
gedit 'mon fichier.conf'

De telles commandes sont des exemples types, et ne sont pas à recopier tel quel, mais doivent être adaptées à votre cas.

Dans un cas similaire au premier exemple : mv "le fichier à déplacer" "le dossier où le déplacer", il suffit de taper le début de la commande : mv, puis espace, puis de faire un glisser-déposer du fichier de votre gestionnaire de fichier jusqu'au terminal, puis espace, un second glisser-déposer, puis entrer pour exécuter la commande.

Parfois ce ne sera pas un dossier ni un fichier qui vous sera demandé, dans ce cas, il vous sera sûrement expliqué comment connaître ce qu'il faut y mettre entre des guillemets, par exemple :

sudo adduser "votre pseudo" vboxusers

Ici il faut juste mettre votre pseudo à la place de "votre pseudo".

"Je tape une commande, et je me retrouve face à quelque chose comme ceci:"

[sudo] password for Michel:

Après ceci vous devez taper votre mot de passe, ceci est tout à fait normal pour les commandes commençant par "sudo" comme:

sudo apt-get autoremove

"Mais voilà, mon mot de passe ne se tape pas !"

Tout à fait normal mon cher Michel, en fait le mot de passe est bel et bien tapé, mais vous ne le voyez pas, il suffit donc de taper son mot de passe, faire entrer et tout se déroulera comme prévu.

Un peu plus sérieusement, sudo est une commande pouvant se mettre devant n'importe quelle autre commande. Son utilité est de donner à un autre programme l'autorisation de toucher au système. (installer un programme, enlever un programme, modifier un fichier texte de configuration, etc).
sudo vous demanderas donc votre mot de passe pour s'assurer d'être bien en face d'une personne ayant l'autorisation de pratiquer ce genre de tâches.

Parfois une commande peut vous demander quelque chose, la réponse à donner est souvent très simple, voici quelques exemples :

  • À un moment, une commande stoppe et vous demande ça :
Souhaitez-vous continuer [O/n] ?

alors là c'est simple, [O/n] veut dire que vous pouvez répondre o ou n à la question, pour répondre Oui ou Non

Pourquoi "O" est en majuscule ?

Simplement parce que c'est le choix par défaut, ce qui veut dire que si vous ne tapez rien, et que vous faites « Entrée », il comprendra O.

Si ça avait été [o/N] à la place, si vous aviez fait entrer directement sans taper o la commande aurait stoppé, il a donc pris en compte la réponse par défaut, N.

En anglais vous auriez eu [Y/n] , certains programmes non encore traduits vous poseront parfois ce genre de questions.
  • Autre exemple, une commande attend une réponse précise :
In which directory do you want to install the mime type icons ?
[/usr/share/icons]

Dans cet exemple vous pouvez répondre de multiples choses, mais vous ne comprenez pas la question… heureusement il y a une réponse par défaut.

Comment la reconnaître ?

Eh bien, elle est entre crochets […] il suffira donc de faire Entrée, sans rien taper comme réponse, pour utiliser cette réponse par défaut !

Bon ce n'est pas trop difficile, hein ;-)

Vous tomberez parfois sur des sortes d'interfaces graphiques dans le terminal, elles sont souvent bleu moche…, et la souris ne fonctionne pas dedans… (ça devient rare)

  • Exemple 1, une question à deux choix :
Outil de configuration des paquets


 ┌─────────────────────┤ Configuration de xserver-xorg ├─────────────────────┐
 │                                                                           │
 │ Utilisez cette option si vous voulez que le choix du type de serveur X    │
 │ et du module du pilote de votre carte vidéo soient automatiques. Si       │
 │ cette détection automatique échoue, vous devrez entrer ces informations   │
 │ vous-même. Si elle réussit, les questions de configuration suivantes      │
 │ seront préremplies.                                                       │
 │                                                                           │
 │ Si vous préférez choisir le serveur X et le pilote vous-même, ne          │
 │ choisissez pas cette option. Vous n'aurez toutefois pas à choisir le      │
 │ serveur X si un seul est disponible.                                      │
 │                                                                           │
 │ Faut-il essayer de détecter automatiquement votre carte vidéo ?           │
 │                                                                           │
 │                    <Oui>                       <Non>                      │
 │                                                                           │
 └───────────────────────────────────────────────────────────────────────────┘

là ce n'est pas compliqué, vous utilisez les flèches Gauche ← et → Droite de votre clavier pour choisir entre Oui ou Non, la réponse choisie, est en Rouge, et faire Entrer.

  • Exemple 2, une liste :
Outil de configuration des paquets

 ┌─────────────────────┤ Configuration de xserver-xorg ├─────────────────────┐
 │ Pour que l'interface graphique utilisateur du système X Window            │
 │ fonctionne convenablement, il est nécessaire de choisir un pilote de      │
 │ carte graphique pour le serveur X.                                        │
 │                                                                           │
 │ Les pilotes sont en général nommés d'après le nom du fabricant de la      │
 │ carte vidéo ou du circuit graphique ; le nom peut aussi faire référence   │
 │ à un modèle particulier ou à toute une famille de circuits.               │
 │                                                                           │
 │ Pilote de serveur X :                                                     │
 │                                                                           │
 │                              ark              ↑                           │
 │                              ati              ▮                           │
 │                              chips            ▒                           │
 │                              cirrus           ↓                           │
 │                                                                           │
 │                                                                           │
 │                                  <Ok>                                     │
 │                                                                           │
 └───────────────────────────────────────────────────────────────────────────┘

Là vous devez choisir quelque chose dans une liste. Vous choisissez avec les flèches Haut ↑ et ↓ Bas, une fois choisi, faites Tab (souvent une touche avec deux flèches ← et → l'une au dessus de l'autre : ↹), vous devez tomber sur Ok et faites Entrer pour "appuyer" sur Ok

  • Exemple 3, une sélection multiple…
Outil de configuration des paquets

 ┌─────────────────────┤ Configuration de xserver-xorg ├─────────────────────┐
 │ Il est conseillé de ne conserver que les résolutions utiles. Les          │
 │ supprimer toutes a le même effet que n'en supprimer aucune : le serveur   │
 │ X tentera dans tous les cas d'utiliser la résolution la plus haute        │
 │ possible.                                                                 │
 │                                                                           │
 │ Modes vidéo utilisés par le serveur X :                                   │
 │                                                                           │
 │    [ ] 1920x1440                                                      ↑   │
 │    [ ] 1920x1200                                                      ▮   │
 │    [ ] 1856x1392                                                      ▒   │
 │    [ ] 1792x1344                                                      ▒   │
 │    [*] 1680x1050                                                      ▒   │
 │    [ ] 1600x1200                                                      ▒   │
 │    [*] 1440x900                                                       ↓   │
 │                                                                           │
 │                                                                           │
 │                                  <Ok>                                     │
 │                                                                           │
 └───────────────────────────────────────────────────────────────────────────┘

là vous devez choisir plusieurs choses, déplacez-vous sur un choix avec Haut et Bas, et faites Espace sur une case à cocher, ([*] Coché, [ ] décoché), une fois que tout ce que vous voulez cocher est coché, faites Tab et une fois arrivé sur Ok, faites Entrer

Voilà, vous connaissez à peu près tout ce que l'on peut rencontrer comme cas de figures dans les "interfaces graphiques en lignes de commande".

Une commande parfois répond, et parfois, ne dit rien… Pour comprendre pourquoi ce comportement est normal, une petite explication s'impose.

Les commandes peu bavardes

Les commandes comme cd , mv , cp , ls , rm et sûrement bien d'autres, sont des commandes de gestion de fichiers et de dossiers ; elles ne répondent qu'en cas d'erreur ! Elles remplacent en quelque sorte votre navigateur de fichiers, mais dans un terminal…

Pour comprendre pourquoi elles ne répondent pas, une petite comparaison entre ces commandes et un navigateur de fichiers peut être pratique.

Si la commande confirmait à chaque création de fichier, qu'elle a réussi à faire le fichier… Ce serait un peu comme si vous faisiez un copier-coller, et que l'on vous dise, dans une belle fenêtre, "Votre fichier a bien été copié-collé dans cet emplacement"…
Admettons que ce serait une perte de temps, et que signaler seulement les erreurs est bien plus utile…

Les commandes très bavardes…

Certaines commandes sont très bavardes ; prenons un exemple :

sudo apt-get update

Cette commande permet de mettre à jour la liste des paquets disponibles dans vos dépôts tout ceci en lignes de commande, quand vous l'exécutez, elle aura la très bonne idée de dire tout ce qu'elle fait… oui, vous pouvez dire que ce n'est pas très utile, et que signaler seulement les erreurs serait plus intelligent aussi dans ce cas…
Mais en fin de compte non, car ce n'est pas comme copier un fichier, qui est un processus quasi instantané, là cette commande charge les index à partir d'internet, ce qui peut être long, si les serveurs sont surchargés ou autre. Donc pour ne pas inquiéter l'utilisateur, tout le long du processus est indiqué ce qu'il fait, pour comparer avec une interface graphique, c'est comme la barre de progression et les détails qui sont souvent affichés en dessous, c'est le même principe mais en moins beau.

Avec toutes ces informations comment repérer s'il y a eu une erreur ?

Si une commande ne marche pas, vous devez avoir un message contenant le mot error.

Si vous avez un message contenant le mot warning ignorez-le, il indique souvent des informations qui ne servent qu'aux développeurs, ou montre des petits détails, qu'il n'est pas vraiment indispensable de corriger !

En cas de doute, tapez la commande suivante, qui retourne le code de sortie de la commande précédente :

echo $?

Si le code est '0', alors tout s'est bien passé. A noter que si vous répétez à nouveau cette commande, le code affiché sera bien celui de la commande précédente, à savoir la première commande "echo" que vous avez tapée.

Explication: en gros un programme retourne une erreur. echo $? retournera donc 1. Si vous retapez à nouveau echo $?, l'information retournée sera 0, car en effet l'echo retournant précédemment une erreur s'est lui même parfaitement bien déroulé !

Il suffit de taper

 man commande

Par exemple:

 man iconv
 man rm
 man bash
 man firefox
 

Tous les programmes ont des "man" (c'est à dire des manuels). Parfois même des fichiers de configuration ont des pages de manuel !
Pour sortir d'une page de manuel, il faut frapper le q.

Pour connaître les principales commandes, voir cette page : Utilisez une console, quelques exemples de commandes.

Vous pouvez voir la liste des applications console si vous voulez satisfaire votre curiosité en matière de commandes. Vous verrez que les logiciels y fonctionnant exclusivement ou ayant une version sans GUI y sont nombreux !

Pour ré exécuter une commande déjà effectuée, au lieu de tout retaper, il vous suffit simplement d'appuyer sur la touche ↑ (flèche haut) pour accéder à la commande précédente.

Vous pouvez appuyer plusieurs fois sur ↑ pour aller plus loin dans l'historique ou taper la commande

history

Cette commande liste les 500 dernières commandes plus celles de la session actuelle. Elle retourne quelque chose de ce type :

(489 lignes masquées...)
  490  eject /dev/sr0
  491  history 
  492  sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean && sudo apt-get autoremove
  493  mount
  494  sudo mount /data/Véronique/
  495  cat /etc/exports 
  496  ls -l /data/
  497  touch /data/essai-Michel
  498  ls -l /data/
  499  ping -c 3 asus
  500  mount
  501  history 

Si vous souhaiter relancer la commande numéro 492, au lieu de la retaper, il suffit de lancer cette commande :

!492

Vous pouvez également rechercher une commande précédemment tapée via le raccourci <ctrl>+R. Tapez les premières lettres de la commande recherchée, et la recherche se met à jour au fur et à mesure.

(reverse-i-search)`apt': sudo apt-get install kmymoney2 

Vous pouvez alors appuyer à nouveau sur <ctrl>+R afin de sélectionner un résultat plus ancien. Enfin, tapez ENTER pour valider, ou <ctrl>+C pour annuler. Il est également possible de vider cet historique en utilisant la commande suivante

 history -c

Vous le savez certainement, toutes les commandes que vous utilisez dans un terminal sont archivées et vous pouvez y accéder par ordre chronologique en appuyant sur les touches fléchées Haut ou Bas. La fonctionnalité de base se limite à cela. Mais on peut faire beaucoup mieux et beaucoup plus pratique. Si vous voulez retrouver une commande particulière tapée il y a un moment. Prenons pour exemple … « rm /home/user/fichier.ext » ! Vous êtes obligés de taper Haut jusqu'à ce que vous tombiez dessus, et cela peut parfois être assez long — suffisamment long pour qu'il soit plus rapide de taper la commande intégralement.

Grâce à la manipulation ci-dessous, vous n'aurez qu'à taper le début de la commande, par exemple « rm » et à presser la touche Haut. Une recherche sera faite dans l'historique et on vous affichera directement la bonne réponse ! Alors voici comment procéder :

Dans votre fichier ~/.inputrc, ajoutez à la fin :

"\e[A": history-search-backward
"\e[B": history-search-forward

Dans votre fichier ~/.bashrc, ajoutez à la fin :

shopt -s histappend
PROMPT_COMMAND='history -a'

Relancez votre terminal. Et essayez ! Pratique, non ?

  • Regarder un remake de star wars un nouvel espoir en ascii :
telnet towel.blinkenlights.nl
  • Chatter avec un Bot :
telnet the-funk.net 7000 

Les petits fun laissés par les développeurs : (appelé easter egg)

  • SUPER COW POWERS
aptitude -h

Read the last line

apt-get moo

aptitude moo

aptitude -v moo

aptitude -v -v moo

aptitude -v -v -v moo

aptitude -v -v -v -v moo

aptitude -v -v -v -v -v moo

aptitude -v -v -v -v -v -v moo

apt-get moo
 tar -cvf toto/
 checking for beer in -lfridge... no
 zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz
  • Avoir un fond d'écran matrix dans la console avec cmatrix.

La console est en quelque sorte ce que fait tourner un terminal, la console existe en mode texte « total » c'est-à-dire que sur votre écran, vous avez juste ce qui est à l'intérieur d'un terminal…

Pour en savoir plus sur la console, voir cette page : console.

Configurer les raccourcis clavier

Lancer un Terminal, dans Édition → Raccourcis clavier, puis changer les raccourcis comme vous le souhaitez.

Les raccourcis Ctrl+[lettre] sont en général utilisés par le shell, il est donc déconseillé de les utiliser pour les raccourcis du terminal.

Configurer l'interface

Pour Karmic 1) :

  • Aller dans Édition → Préférence du profil.

Les couleurs

  • Mettre les palettes prédéfinie sur Custom, puis
  • Choisir vos couleurs, nous conseillons du clair (blanc ou gris coloré) pour la couleur de texte et noir (noir coloré) pour la couleur d'arrière plan.

L'arrière-plan

  • Nous conseillons par exemple de mettre la transparence (ombrage transparent) vers la droite (soit environ 8/10ème, 80 % de transparence). Vous pourrez ainsi garder un œil sur ce qui se passe derrière le Terminal.

Un logo à l'ouverture du terminal

Si linuxlogo n'est pas installé, installez-le : apt://linuxlogo

sudo apt-get install linuxlogo

Ouvrez un terminal et entrez : linuxlogo -L list pour avoir la liste des logos disponibles. Ce que j'obtiens avec la version 10.10 :

Available Built-in Logos:
Num	Type	Ascii	Name		Description
1	Classic	Yes	aix		AIX Logo
2	Classic	Yes	bsd		FreeBSD Logo
3	Banner	Yes	bsd_banner	FreeBSD Logo
4	Classic	Yes	irix		Irix Logo
5	Banner	Yes	solaris		The Default Banner Logos
6	Banner	Yes	banner-simp	Simplified Banner Logo
7	Banner	Yes	banner		The Default Banner Logo
8	Classic	Yes	classic-nodots	The Classic Logo, No Periods
9	Classic	Yes	classic-simp	Classic No Dots Or Letters
10	Classic	Yes	classic		The Default Classic Logo
11	Classic	Yes	core		Core Linux Logo
12	Banner	Yes	debian_banner	Debian Banner (white) 
13	Classic	Yes	debian_old	Debian Old Penguin Logos 
14	Classic	Yes	debian		Debian Swirl Logos
15	Classic	Yes	gnu_linux	Classic GNU/Linux
16	Banner	Yes	mandrake_banner	Mandrake(TM) Linux Banner
17	Banner	Yes	mandrake	Mandrakelinux(TM) Banner
18	Banner	Yes	mandriva	Mandriva(TM) Linux Banner
19	Banner	Yes	pld		PLD Linux banner
20	Banner	Yes	redhat		RedHat Banner (white) 
21	Banner	Yes	slackware	Slackware Logo
22	Banner	Yes	sme		SME Server Banner Logo
23	Banner	Yes	sourcemage_ban	Source Mage GNU/Linux banner
24	Banner	Yes	sourcemage	Source Mage GNU/Linux large
25	Banner	Yes	suse		SUSE Logo
26	Banner	Yes	ubuntu		Ubuntu Logo

Testez les différents logos en entrant ceci :

linuxlogo -L 9

(équivaut aussi à linuxlogo -L classic-simp, celui de la capture écran ci-dessus)

Un fois que vous avez choisi votre logo modifiez le fichier /etc/linux_logo.conf

A la fin du fichier vous trouverez ceci : -L debian, remplacez debian par le nom ou le numéro du logo que vous avez choisi.

Pour finaliser le tout, afin que le logo s'affiche au démarrage de votre terminal, éditez votre fichier .bashrc

nano ~/.bashrc

ou

gedit ~/.bashrc

A la fin de votre fichier ajoutez la ligne (après les alias normalement)

linuxlogo

Et voilà, complètement inutile, mais geekement indispensable !

Un terminal sur le bureau

Beaucoup de personnes souhaitent avoir un terminal disponible sur le bureau, voilà l'astuce.

Installation

Tout d'abord il faut installer les paquets xfce4-terminal et devilspie, le premier est un terminal, le second permet de définir le comportement des fenêtres, pour en savoir plus, voir cette page : devilspie.

Paramétrage

Il est possible de lancer ce nouveau terminal via Applications → Accessoires → Terminal. Dans les préférences, il faut désactiver la barre de défilement (Préférences → Général), demander à ne pas afficher les bords de la fenêtre et définir l'arrière comme transparent (Préférences → Aspect).

A présent, il faut paramétrer devilspie. Pour cela, il faut créer un dossier .devilspie dans le dossier utilisateur, et y créer un fichier intitulé : xfce4-terminal.ds.

mkdir ~/.devilspie
gedit ~/.devilspie/xfce4-terminal.ds

Il faut créer la règle qui paramètre xfce4-terminal:

(if (is (window_class) "Xfce4-terminal") 
(begin 
(below)
(skip_tasklist)
(skip_pager)
(wintype "dock")
))
  • below : Permet de mettre la fenêtre en dessous de toutes les autres.
  • skip_tasklist : N'affiche pas la fenêtre dans la barre de tâches
  • skip_pager : Ne permet de sélectionner la fenêtre via le pager (Alt + Tab)
  • wintype : Permet de ne pas réduire la fenêtre lorsque l'on demande à afficher le bureau (bouton généralement en bas à gauche)

Cela fait, il ne reste plus qu'à lancer devilspie et xcfe4-terminal au démarrage. Dans Système → Préférences → Sessions, il faut ajouter deux commandes :

devilspie -a

-a permet d'appliquer les règles aux fenêtres déjà ouvertes

xfce4-terminal --geometry=LARGEURxHAUTEUR+X+Y

où LARGEUR et HAUTEUR sont exprimées en caractère de terminal, X et Y représente les coordonnées du point supérieur gauche du terminal. Pour donner une idée chez moi la commande est :

xfce4-terminal --geometry=62x40+650+30
Avant d'ajouter les commande au démarrage, faites les tests à partir d'un terminal, surtout en ce qui concerne la géométrie du terminal sur le bureau.

1)
Pour une autre version que Karmic, Édition → Profils, puis cliquez sur le bouton Modifier le profil par défaut
2)
N'oubliez pas la commande man pour connaitre les autres commandes.
  • terminal.1322261331.txt.gz
  • Dernière modification: Le 15/12/2011, 15:20
  • (modification externe)