Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
terminal [Le 21/02/2017, 20:54]
62.35.3.102 caca
terminal [Le 24/03/2024, 19:32] (Version actuelle)
201.171.175.88 [Personnaliser son terminal]
Ligne 1: Ligne 1:
 {{tag>​console shell}} {{tag>​console shell}}
 +
 ---- ----
  
-====== Le terminal GNU/Linux ====== 
  
-Le terminal est un programme qui ouvre une [[console]] dans une interface graphique, il permet de lancer des **[[commande_shell|commandes]]**. 
  
-{{ ::​terminal.png?​direct&​400 |Un terminal lancé sous Ubuntu 15.10}} 
-ljkjikj 
  
 ===== Pourquoi le terminal ? ===== ===== Pourquoi le terminal ? =====
  
-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.+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), ​puisqu'​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. 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.
Ligne 18: Ligne 15:
  
 ===== Comment ouvrir un terminal ?===== ===== Comment ouvrir un terminal ?=====
-De manière générique,​ on ouvre le terminal avec la commande **x-terminal-emulator** (cette commande n'est qu'un lien sur votre terminal par défaut grace à **update-alternatives**) 
  
-Sinon, le tableau suivant donne les différentes méthodes qui permettent d'​ouvrir le terminal:+Le terminal utilisé par défaut dépend de l'​environnement, le tableau suivant donne les différentes méthodes qui permettent d'​ouvrir le terminal :
  
-Variante ​Menu ^ Accès ​rapide ​^ Raccourci clavier ^ +Environnement ou variante ​commande de l'​émulateur de terminal par défaut ​^ Accès ​graphique ​^ Raccourci clavier ^ 
-^ [[:Ubuntu]] | __Avec [[:​Unity]]:​__ depuis le [[unity#​tableau_de_bord_dash|Tableau de bord]] saisir ​**terminal** ​\\ __Avec [[:​Gnome-Panel]]:​__ ​//​Applications ​→ Accessoires → Terminal// | <​Alt><​F2et tapez **gnome-terminal** | <​CTRL><​Alt><​T>​ | +^ [[:​Ubuntu ​Gnome]] | **gnome-terminal** ​Rechercher ​**terminal**, ou bien //Activités -> Applications ​-> Utilitaires -> Terminal// | <​CTRL>​<​Alt><​T
-^ [[:Edubuntu]] | ::: ::: ::: +^ [[:​Ubuntu|Ubuntu (Unity)]] | **gnome-terminal** | Rechercher **terminal** | <​CTRL><​Alt><​T>​ | 
-^ [[:Lubuntu]] | //Menu -> Accessoires -> lxterminal// | <​CTRL><​Alt><​T>​ | +^ [[:Kubuntu]] | **konsole** ​//Menu → Applications → Système → Konsole//, ou bien //Menu →// Rechercher "​Konsole" ​Pas de raccourci par défaut ​
-^ [[:Kubuntu]] | //K → Applications → Système → Konsole// | <​Alt><​F2>​ et tapez **konsole** | FIXME Raccourci clavier par défaut ?| +Ubuntu ​[[:Mate]] | **mate-terminal** ​| //Applications → Système → Terminal// | <​CTRL><​Alt><​T>​ | 
-[[:Xubuntu]] | //​Applications → Accessoires → Émulateur de Terminal// ​| <​Alt><​F2>​ et tapez **xfterm4** (ou en fonction de la version **xfce4-terminal**) ​| <​Super>​((touche généralement représentée par le logo Windows)) <​T> ​et <​CTRL><​Alt><​T>​ | +^ [[:Xubuntu]] | **[[:xfce4-terminal]]** | //​Applications → Accessoires → Émulateur de Terminal// | <​Super>​((touche généralement représentée par le logo Windows)) <​T> ​ou bien <​CTRL><​Alt><​T>​ | 
-^ [[:Cinnamon]] | Menu → Administration → Terminal ​| <​Alt><​F2et taper **gnome-terminal** | <​CTRL><​Alt><​T>​ | +^ [[:Lubuntu]] | **lxterminal** | //Menu -> Accessoires -> LXterminal// ​<​CTRL>​<​Alt><​T
-===== Passer ​votre commande ! =====+^ Ubuntu [[:​Budgie|Budgie]] | **[[tilix]]** (anciennement terminix) | //Menu -> Système -> Tilix//, ou bien //Menu ->// Rechercher "​terminal" ​| <​CTRL><​Alt><​T>​ | 
 + 
 +Beaucoup de bureaux permettent de **lancer directement des commandes** via une fenêtre qui s'​ouvre en faisant **<​ALT><​F2>​**. Vous pouvez donc lancer le terminal ainsi en y tapant son nom. L'​émulateur par défaut peut se lancer soit par sa commande propre (gnome-terminal,​ mate-terminal,​ ...), soit par la commande **x-terminal-emulator**,​ qui est un "​raccourci"​ vers la commande du terminal par défaut. 
 + 
 +===== Passez ​votre commande ! =====
  
 L'​utilisation est assez simple, tapez une commande (ou copiez-collez la) et faites //Entrée// (clavier) pour l'​exécuter. 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**. En effet, dans un terminal le raccourci **Ctrl+C** ​annule ​la commande en cours. Cependant il est possible de modifier les raccourcis du Terminal (voir en bas de page la rubrique [[#​personnaliser son terminal]]) mais c'est une opération qui présente des risques de conflits entre les raccourcis ​"de la console" ​et les raccourcis ​"du terminal"​+Les raccourcis pour le copier-coller ne sont pas Ctrl+C ↔ Ctrl+V par défaut, mais **Maj+Ctrl+C** et **Maj+Ctrl+V**. En effet, dans un terminal le raccourci **Ctrl+C** ​sert à interrompre ​la commande en cours. Cependant il est possible de modifier les raccourcis du Terminal (voir en bas de page la rubrique [[#​personnaliser son terminal]]) mais c'est une opération qui présente des risques de conflits entre les raccourcis ​du terminal ​et les raccourcis du [[:shell]] (l'​interpréteur de commandes). 
 <note tip>​**[[wpfr>​Complètement|Complétion automatique]]**\\ <note tip>​**[[wpfr>​Complètement|Complétion automatique]]**\\
-Après avoir tapé 2 ou 3 caractères,​ il est possible d'​appuyer sur la touche //tab// qui permet de compléter la suite de la commande, du nom du dossier ou fichier. Cela évite les erreurs de frappe et est très appréciable pour éviter de saisir le nom de fichier parfois long et complexe comme le nom de certains paquets. Peut-être utilisé plusieurs fois si plusieurs noms ont une partie commune. \\+Après avoir tapé 2 ou 3 caractères,​ il est possible d'​appuyer sur la touche //​tab// ​(au-dessus de "​verrouillage majuscule"​) ​qui permet de compléter la suite de la commande, du nom du dossier ou fichier. Cela évite les erreurs de frappe et est très appréciable pour éviter de saisir le nom de fichier parfois long et complexe comme le nom de certains paquets. Peut-être utilisé plusieurs fois si plusieurs noms ont une partie commune. \\
 :!: Attention, [[wpfr>​Sensibilité_à_la_casse|c'​est sensible à la casse majuscules/​minuscules des caractères]] ! </​note>​ :!: Attention, [[wpfr>​Sensibilité_à_la_casse|c'​est sensible à la casse majuscules/​minuscules des caractères]] ! </​note>​
  
 +<note help>​**Cas particulier de Pantheon**\\
 +Dans le cas de l'​environnement Pantheon (qu'on retrouve par défaut sous elementary OS), les combinaisons par défaut sont **Ctrl+C** pour copier et **Ctrl+V** pour coller dans le Terminal. </​note>​
 ===== Qu'​est-ce qu'une commande ? ===== ===== Qu'​est-ce qu'une commande ? =====
  
Ligne 47: Ligne 50:
 Parfois, il y en a plusieurs de suite, comme ça : Parfois, il y en a plusieurs de suite, comme ça :
 <​code>​ <​code>​
-sudo apt-get update ​ +cd Téléchargements 
-sudo apt-get upgrade ​ +mkdir Nouveau\ Dossier 
-sudo apt-get install vlc-plugin-pulse mozilla-plugin-vlc libavcodec-extra-52+cd Nouveau\ Dossier
 </​code>​ </​code>​
  
-<note important>​Attention lorsque vous copier coller ​des commandes dans un terminal ​bêtement elle risque ​d'​être immédiatement ​exécutée ​sans taper Entrée. +<note important>​Attention lorsque vous copiez collez bêtement ​des commandes dans un terminal ​elles risquent ​d'​être immédiatement ​exécutées ​sans que vous n'ayez pressé "Entrée".\\ 
-C'est parce que le "caractère" ​entrée ​est inclus si vous sélectionner ​plusieurs ​ligne (faites l'​essai avec les 2 première ​du code ci-dessus ;-)). C'est pratique mais parfois dangereux ​(un rm copier trop vite par exemple) ​! </​note>​+C'est parce que le caractère "Entrée" ​est inclus si vous sélectionnez ​plusieurs ​lignes d'un coup (faites l'​essai avec les 2 premières ​du code ci-dessus ;-)). C'est pratique mais parfois dangereux ! </​note>​
  
-Une commande est pour ainsi dire un programme comme les autres. Par exemple pour ouvrir [[:​Firefox]],​ vous pouvez taper :+Le nom d'un programme ​est une commande ​comme les autres. Par exemple pour ouvrir [[:​Firefox]],​ vous pouvez taper :
  
 <​code>​ <​code>​
Ligne 62: Ligne 65:
   ​   ​
 dans un terminal. dans un terminal.
 +
 +Vous pouvez même ouvrir un terminal dans un terminal, après tout pourquoi pas.
  
 ===== Compléter une commande ===== ===== Compléter une commande =====
Ligne 70: Ligne 75:
 <​code>​gedit 'mon fichier.conf'</​code>​ <​code>​gedit 'mon fichier.conf'</​code>​
  
-De telles commandes sont des exemples types, et ne sont pas à recopier ​tel quel, mais doivent être adaptées à votre cas.+De telles commandes sont des exemples types, et ne sont pas à recopier ​telles quelles, 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. 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.
Ligne 76: Ligne 81:
 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 : 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 :
 <​code>​ <​code>​
-sudo adduser ​"votre pseudo" ​vboxusers+sudo adduser ​votre_pseudo ​vboxusers
 </​code>​ </​code>​
  
-Ici il faut juste mettre votre pseudo à la place de **"votre pseudo"​**.+Ici il faut juste mettre votre pseudo à la place de **votre_pseudo**.
  
-===== Ma commande ​me demande mon mot de passe =====+ 
 +===== Les commandes ​me demandent des choses... ===== 
 + 
 +==== Le mot de passe ====
  
 "Je tape une commande, et je me retrouve face à quelque chose comme ceci:" "Je tape une commande, et je me retrouve face à quelque chose comme ceci:"
-<​code>​+<​code ​bash>
 [sudo] password for Michel: [sudo] password for Michel:
 </​code>​ </​code>​
    
 Après ceci vous devez taper votre mot de passe, ceci est tout à fait normal pour les commandes commençant par ``sudo`` comme: Après ceci vous devez taper votre mot de passe, ceci est tout à fait normal pour les commandes commençant par ``sudo`` comme:
-<​code>​ +<​code ​bash
-sudo apt-get ​autoremove+sudo apt-get ​update
 </​code>​ </​code>​
   ​   ​
 "Mais voilà, mon mot de passe ne se tape pas !" "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. Il s'agit d'une mesure de sécurité pour que les personnes regardant l'​écran ne puissent pas deviner le nombre de caractères que contient le mot de passe.+Tout à fait normal, en fait le mot de passe est bel et bien tapé, mais vous ne le voyez pas ! Il suffit de taperson ​mot de passe, faire "​entrée", ​et tout se déroulera comme prévu. Il s'agit d'une mesure de sécurité pour que les personnes regardant l'​écran ne puissent pas deviner le nombre de caractères que contient le mot de passe.
  
-<​note ​important>Si vous devez saisir un chiffre, il est possible qu'il faille ​le saisir différemment, par exemple en utilisant les chiffres au dessus des lettres "a...p" avec SHIFT+Chiffre.( Pas le pavé numérique ) </​note>​+<​note>​**[[:​sudo]]** ​est une commande de type "​admistrateur système"​. ​ Elle permet à tout utilisateur — pourvu que lui-même ait configuré son système afin d'obtenir les privilèges administrateur ou bien que son responsable réseau les lui ait accordé en modifiant son profil — de passer des commandes de bas niveau capables de modifier gravement la configuration même, donc influer sur le comportement de la machine. En accordant à un programme ou à une série de commandes des privilèges administrateur,​ ces commandes deviennent des commandes système capables, par exemple, de :  
 +  * installer un programme,​ 
 +  * enlever un programme,​ 
 +  * modifier un fichier texte de configuration,​ etc). \\ 
 +**[[:​sudo]]** __vous demandera__ donc __votre mot de passe administrateur__ pour s'​assurer d'​être bien en face d'une personne ayant l'​autorisation de pratiquer ce genre de tâches.</​note>​
  
-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). \\ +<note warning>​Si vous êtes le seul responsable de votre machine — bien qu'​ayant paramétré d'autres profils "​invité"​ — votre profil configuré ​à l'installation ​de votre système ​vous a octroyé les droits administrateurIl vous suffit ​donc d'entrer la commande préfixe SUDO (Super User DO) pour élever vos privilèges au rang d'administrateur système.
-**[[:​sudo]]** ​vous demandera ​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.+
  
 +Attention à ne pas utiliser **sudo** pour n'​importe quoi, les conséquences pourraient être désastreuses.</​note>​
  
-===== Quand les commandes me posent des questions... ===== +==== Les questions ====
 Parfois une commande peut vous demander quelque chose, la réponse à donner est souvent très simple, voici quelques exemples : Parfois une commande peut vous demander quelque chose, la réponse à donner est souvent très simple, voici quelques exemples :
  
Ligne 116: Ligne 127:
 __Pourquoi "​**O**"​ est en majuscule ?__ __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**. ​+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**. 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**.
  
-<note idee>En anglais vous auriez eu **[Y/n]** , certains programmes non encore traduits vous poseront parfois ce genre de questions.</​note>​+<note idee>En anglais vous auriez eu **[Y/n]** ou **[y/N]**, certains programmes non encore traduits vous poseront parfois ce genre de questions.</​note>​
  
   * Autre exemple, une commande attend une réponse précise :   * Autre exemple, une commande attend une réponse précise :
Ligne 136: Ligne 147:
 Bon ce n'est pas trop difficile, hein ;-) Bon ce n'est pas trop difficile, hein ;-)
  
-===== Une sorte d'​interface graphique dans le terminal !!! ??? =====+===== Les réponses des commandes ===== 
 + 
 +==== Les commandes peu bavardes ==== 
 + 
 +Les commandes comme **cd , mv , cp , ls , rm** et bien d'​autres,​ sont des commandes de gestion de fichiers et de dossiers (naviguer dans les fichiers, les copier, les créer, etc.) et elles ne répondent qu'en cas d'​erreur ! 
 + 
 +Elles ne répondent pas mais fonctionnent bel et bien. 
 + 
 +==== Les commandes très bavardes… ==== 
 + 
 +Certaines commandes sont très bavardes ; prenons un exemple : 
 + 
 +<​code>​sudo apt-get update</​code>​ 
 + 
 +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**,​ 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 : 
 +<code bash> 
 +echo $? 
 +</​code>​ 
 + 
 +Si le code est '​0',​ alors tout s'est bien passé (à condition que la commande appelée précédemment soit bien conçue et suive la convention classique). À 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. 
 + 
 +<note help>​**Explication :** conventionnellement,​ un programme qui retourne une erreur va renvoyer un code d'​erreur non nul, et **echo $?** retournera donc 1, 2 ou n'​importe quel nombre non nul (généralement positif). Si vous retapez à nouveau **echo $?**, l'​information retournée sera 0, en effet , l'echo retournant précédemment une erreur s'est lui même parfaitement bien déroulé !</​note>​  
 + 
 +===== Comment savoir à quoi sert une commande ? ===== 
 + 
 +Il suffit de taper 
 +<​code>​man commande</​code>​ 
 +Par exemple: 
 +<​code>​ 
 +man iconv 
 +man rm 
 +man bash 
 +man firefox 
 +</​code>​ 
 + 
 +Tous les programmes ont des "​man":​ ce sont les pages de [[:​man|manuel]] de la commande. Parfois même des fichiers de configuration ont des pages de manuel ! \\ 
 +Pour sortir d'une page de manuel, il faut utiliser la touche **q**. 
 + 
 +Pour connaître les principales commandes, voir cette page : [[:​console#​premiers_exemples|Utilisez une console, quelques exemples de commandes.]] 
 + 
 +===== Une sorte d'​interface graphique dans le terminal !? =====
  
-Vous tomberez parfois sur des sortes d'​interfaces graphiques dans le terminal, qui sont des **[[wpfr>​Environnement_en_mode_texte|environnements en mode texte]]**. Ils sont souvent bleu, moche, la souris ​ne fonctionne pas dedans... (ça devient rare), mais reste aisé malgré tout à prendre en main.+Ça devient rare, mais vous tomberez parfois sur des sortes d'​interfaces graphiques dans le terminal, qui sont des **[[wpfr>​Environnement_en_mode_texte|environnements en mode texte]]**. Ils sont souvent bleu, moches, la souris ​n'​y ​fonctionne pas...
  
   * **__Exemple 1__**, une question à deux choix :   * **__Exemple 1__**, une question à deux choix :
Ligne 164: Ligne 224:
 </​code>​ </​code>​
  
-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**.+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 **Entrée**.
  
   * **__Exemple 2__**, une liste :   * **__Exemple 2__**, une liste :
Ligne 228: Ligne 288:
  
 Une commande parfois répond, et parfois, ne dit rien… Pour comprendre pourquoi ce comportement est normal, une petite explication s'​impose. 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... 
- 
-faites caca 
-==== 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 :  
-<​code>​ 
-echo $? 
-</​code>​ 
- 
-Si le code est '​0',​ alors tout s'est bien passé (a condition que la commande appelée précédemment soit bien conçue et suive la convention classique). À 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 :** conventionnellement,​ un programme qui retourne une erreur va renvoyer un code d'​erreur non nul, et **echo $?** retournera donc 1, 2 ou n'​importe quel nombre non nul (généralement positif). 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é ! 
- 
-===== Comment savoir à quoi sert une commande ? ===== 
- 
-Il suffit de taper  
-<​code>​man commande</​code>​ 
-Par exemple: 
-<​code>​ 
-man iconv 
-man rm 
-man bash 
-man firefox 
-</​code>​ 
- 
-Tous les programmes ont des "​man":​ ce sont les pages de [[:​man|manuel]] de la commande. Parfois même des fichiers de configuration ont des pages de manuel ! \\ 
-Pour sortir d'une page de manuel, il faut utiliser la touche **q**. 
- 
-Pour connaître les principales commandes, voir cette page : [[:​console#​premiers_exemples|Utilisez une console, quelques exemples de commandes.]] 
  
 ===== Quels sont tous les programmes utilisant la ligne de commande ? ===== ===== Quels sont tous les programmes utilisant la ligne de commande ? =====
Ligne 281: Ligne 299:
 Vous pouvez appuyer plusieurs fois sur ↑ pour aller plus loin dans l'​historique ou taper la commande Vous pouvez appuyer plusieurs fois sur ↑ pour aller plus loin dans l'​historique ou taper la commande
 <​code>​history</​code>​ <​code>​history</​code>​
-Cette commande liste les 500 dernières commandes plus celles de la session actuelle. Elle retourne quelque chose de ce type :+Cette commande liste les 500 dernières commandes plus celles de la session actuelle. Elle retourne quelque chose de ce type:
 <​code>​ <​code>​
 (489 lignes masquées...) (489 lignes masquées...)
Ligne 297: Ligne 315:
   501  history ​   501  history ​
 </​code>​ </​code>​
-Si vous souhaiter ​relancer la commande numéro 492, au lieu de la retaper, il suffit de lancer cette commande :+Si vous souhaitez ​relancer la commande numéro 492, au lieu de la retaper, il suffit de lancer cette commande:
 <​code>​!492</​code>​ <​code>​!492</​code>​
  
-Vous pouvez également rechercher une commande précédemment tapée. Commencer par taper <​ctrl>​+r. Tapez ensuite les premières lettres de la commande recherchée,​ et la recherche se met à jour au fur et à mesure. ​+Vous pouvez également rechercher une commande précédemment tapée. Commencer par taper <​ctrl>​+r. Tapez ensuite les premières lettres de la commande recherchée,​ et la recherche se met à jour au fur et à mesure.
 <​code>​ <​code>​
 (reverse-i-search)`apt':​ sudo apt-get install kmymoney2 ​ (reverse-i-search)`apt':​ sudo apt-get install kmymoney2 ​
Ligne 308: Ligne 326:
 Il est également possible de vider cet historique en utilisant la commande suivante: Il est également possible de vider cet historique en utilisant la commande suivante:
 <​code>​history -c</​code>​ <​code>​history -c</​code>​
-Il est possible aussi de ne supprimer qu'une ligne (par exemple un mount avec un mot de passe admin!), pour cela utiliser l'​option -d suivit ​du n° de ligne+Il est possible aussi de ne supprimer qu'une ligne (par exemple un mount avec un mot de passe admin!), pour cela utiliser l'​option -d suivie ​du n° de ligne:
 <​code>​history -d 494</​code>​ <​code>​history -d 494</​code>​
 supprime la ligne //sudo mount /​data/​Véronique///​ dans la liste ci-dessus. supprime la ligne //sudo mount /​data/​Véronique///​ dans la liste ci-dessus.
  
-En ajoutant ​+En ajoutant
 <​code>​HISTCONTROL=ignorespace</​code>​ dans le .bashrc ​ <​code>​HISTCONTROL=ignorespace</​code>​ dans le .bashrc ​
 ou ou
 <​code>​setopt HIST_IGNORE_SPACE</​code>​ dans le .zshrc ​ <​code>​setopt HIST_IGNORE_SPACE</​code>​ dans le .zshrc ​
  
-toute commande débutant avec un espace en début de ligne n'​apparaîtra pas dans l'​historique.  +toute commande débutant avec un espace en début de ligne n'​apparaîtra pas dans l'​historique. 
-=====Pour compléter les commandes à partir de l'​historique ​:=====+ 
 +===== Taille de l'​historique ===== 
 +Pour modifier la taille de l'​historique des commandes et aller au delà des 500 lignes par défaut, il faut modifier la variable d'​environnement //​HISTSIZE//​ 
 +<​code>​export HISTSIZE=1000</​code>​ avec 1000 ou le nombre désiré. 
 + 
 +Pour que cette modification soit prise en compte de manière définitive (pour un utilisateur),​ il faut ajouter la ligne suivante au fichier .bashrc de l'​utilisateur (/​home/​utilisateur/​.bashrc) 
 +<​code>​echo '​export HISTSIZE=1000'​ >> ~/.bashrc </​code>​ 
 +=====Pour compléter les commandes à partir de l'​historique ===== 
 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 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. 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.
Ligne 325: Ligne 351:
 Alors voici comment procéder : Alors voici comment procéder :
  
-Dans votre fichier **~/​.inputrc**,​ ajoutez à la fin : +Dans votre fichier **~/​.inputrc**,​ ajoutez à la fin :
 <file bash> <file bash>
 "​\e[A":​ history-search-backward "​\e[A":​ history-search-backward
Ligne 336: Ligne 362:
 </​file>​ </​file>​
 Relancez votre terminal. Et essayez ! Relancez votre terminal. Et essayez !
-Pratique, non ? +Pratique, non ?
  
 Vous pouvez également modifier graphiquement l'​historique. Par exemple si vous avez copié un texte très long par erreur dans votre terminal. Pour cela modifier le fichier **.bash_history** et supprimez les lignes que vous souhaitez. Vous pouvez également modifier graphiquement l'​historique. Par exemple si vous avez copié un texte très long par erreur dans votre terminal. Pour cela modifier le fichier **.bash_history** et supprimez les lignes que vous souhaitez.
- 
-===== Du fun pour le terminal de geek ===== 
- 
-  * Regarder un remake de star wars un nouvel espoir en ascii : <​code>​telnet towel.blinkenlights.nl</​code>​ 
-  * Les petits fun laissés par les développeurs : (appelé [[wp>​Easter_egg_%28media%29|easter egg]])<​code>​apt-get moo</​code><​code>​ 
-aptitude moo 
- 
-aptitude -v moo 
- 
-aptitude -vv moo 
- 
-aptitude -vvv moo 
- 
-aptitude -vvvv moo 
- 
-aptitude -vvvvv moo 
- 
-aptitude -vvvvvv moo 
-</​code>​ 
- 
-  * Avoir un fond d'​écran matrix dans la console avec [[apt>​cmatrix|cmatrix]]. 
- 
-  * Affiche un train dans votre terminal en [[:​tutoriel:​comment_installer_un_paquet|installant]] **[[ apt>​sl]]** et en le lançant avec:<​code>​ 
-sl</​code>​ 
- 
-<​note>​Ceux qui suivent ne semblent plus fonctionner (Ubuntu 14.04)</​note>​ 
-FIXME <​code>​tar -cvf toto/</​code>​ 
-FIXME <​code>​checking for beer in -lfridge... no</​code>​ 
-FIXME  <​code>​zgrep "​The.*Release"​ /​usr/​share/​doc/​dpkg/​changelog.Debian.gz</​code>​ 
-  * FIXME Chatter avec un Bot : <​code>​telnet the-funk.net 7000 </​code>​ 
  
 ===== En savoir plus sur la console ===== ===== En savoir plus sur la console =====
  
-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+La console est ce qu'​afficherait Ubuntu s'il n'y avait aucun environnement. C'​est ​cette console ​que le terminal ​va émuler.
  
 Pour en savoir plus sur la console, voir cette page : [[console]]. Pour en savoir plus sur la console, voir cette page : [[console]].
  
 ===== Personnaliser son terminal ===== ===== Personnaliser son terminal =====
 +T
 ==== Configurer les raccourcis clavier ==== ==== Configurer les raccourcis clavier ====
  
 Lancer un Terminal, dans //Édition -> Raccourcis clavier//, puis changer les raccourcis comme vous le souhaitez. Lancer un Terminal, dans //Édition -> Raccourcis clavier//, puis changer les raccourcis comme vous le souhaitez.
  
-<note important>​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.</​note>​+<note important>​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.</​note>​
  
 ==== Configurer l'​interface ==== ==== Configurer l'​interface ====
Ligne 405: Ligne 401:
  
 === L'​arrière-plan === === L'​arrière-plan ===
-  * Nous conseillons ​par exemple ​de mettre la transparence (ombrage transparent) vers la droite (soit environ 8/​10<​sup>​ème</​sup>,​ 80 % de transparence). Vous pourrez ainsi garder un œil sur ce qui se passe derrière le Terminal.+  * Toujours dans l'​onglet //​Couleurs//,​ nous conseillons de mettre la transparence (ombrage transparent) vers la droite (soit environ 8/​10<​sup>​ème</​sup>,​ 80 % de transparence), ou cocher //Utiliser la transparence du thème du système//. Vous pourrez ainsi garder un œil sur ce qui se passe derrière le Terminal. 
 + 
 +=== L'​invite de commande (prompt) === 
 + 
 +Dans votre fichier **~/​.bashrc**,​ se trouve une variable **PS1** qui décrit comment l'​invite de commande est définie. 
 + 
 +^ Syntaxe ​        ^ Signification ^ 
 +| ''​\u'' ​  | nom de l'​utilisateur | 
 +| ''​\h''​ | nom de la machine ​ | 
 +| ''​\w''​ | le chemin de //​travail//​… où vous êtes | 
 +| ''​\n'' ​  | retour à la ligne |  
 +| ''​\$''​ | affiche le caractère $, ce qui permet de se repérer et de séparer l'​invite de votre saisie | 
 + 
 +L'​invite par défaut contient donc ''​\u@\h:​\w\$''​ mais y est ajouté le codage des couleurs. 
 + 
 +Pour les développeurs utilisant [[:git]], il peut par exemple être ajouté le nom du projet et de la branche de travail en cours, … 
 + 
 +Penser, après chaque modification,​ à exécuter : 
 +<​code>​source ~/​.bashrc</​code>​
  
 ==== Un logo à l'​ouverture du terminal ==== ==== Un logo à l'​ouverture du terminal ====
Ligne 451: Ligne 465:
 </​code>​ </​code>​
  
-Testez les différents logos en entrant ceci : +Testez les différents logos en entrant ceci :
 <​code>​ linuxlogo -L 9</​code>​ <​code>​ linuxlogo -L 9</​code>​
 (équivaut aussi à **''​linuxlogo -L classic-simp''​**,​ celui de la capture écran ci-dessus) (équivaut aussi à **''​linuxlogo -L classic-simp''​**,​ celui de la capture écran ci-dessus)
 +<note tip>Un petit script aussi inutile que le logo pour faire défiler rapidement les différents logos disponibles,​ à copier/​coller intégralement dans votre terminal : <​code>​fichTemp=$(mktemp);​ linuxlogo -L list > "​$fichTemp";​ NbPossibilites=$(awk -F $'​\t'​ ' $2 ~ /​[0-9]{1,​2}/​ {Numero=$2} END {print Numero}'​ $fichTemp); i=1; while [[ "​$i"​ -le "​$NbPossibilites"​ ]]; do echo; echo "​----------";​ echo "Logo n° ""​$i";​ echo "​----------";​ linuxlogo -L "​$i";​ sleep 2; let "​i++";​ done; echo "​Faites votre choix";​ rm "​$fichTemp"</​code></​note>​
  
 Un fois que vous avez choisi votre logo [[:​tutoriel:​comment_modifier_un_fichier|modifiez le fichier]] **/​etc/​linux_logo.conf** Un fois que vous avez choisi votre logo [[:​tutoriel:​comment_modifier_un_fichier|modifiez le fichier]] **/​etc/​linux_logo.conf**
Ligne 464: Ligne 479:
  
 Et voilà, complètement inutile, mais geekement indispensable ! Et voilà, complètement inutile, mais geekement indispensable !
 +<note tip>Une alternative qui fonctionne aussi bien est **[[apt>​neofetch]] modifier votre fichier ~/.bashrc (il faut activer les fichier caché avec la touche (Ctrl et h)**</​note>​ 
 + 
 ==== Un terminal sur le bureau ==== ==== Un terminal sur le bureau ====
 +
 +<note important>​Ce qui suit est un tutoriel spécifique au terminal de [[:Xfce]]. Vous pouvez l'​adapter à votre besoin en remplaçant les occurences liées à [[:​xfterm4|xfce-terminal]] par tout autre terminal de votre convenance, et en regardant les options possibles de celui-ci, [[:​devilspie]] s'​occupant du comportement de la fenêtre.\\
 +**Xfce-terminal** reste une option envisageable mais peut emmener des dépendances supplémentaires alors qu'il est probable que le terminal proposé par défaut avec votre environnement fasse l'​affaire. </​note>​
  
 Beaucoup de personnes souhaitent avoir un terminal disponible sur le bureau, voilà l'​astuce. Beaucoup de personnes souhaitent avoir un terminal disponible sur le bureau, voilà l'​astuce.
  
 === Installation === === Installation ===
-Tout d'​abord il faut installer les paquets [[apt>​xfce4-terminal|xfce4-terminal]] et [[apt>​devilspie|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]].+Tout d'​abord il faut installer les paquets [[apt>​xfce4-terminal|xfce4-terminal]] et [[apt>​devilspie|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 === === 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//).+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//) .
  
-présent, il faut paramétrer devilspie. Pour cela, il faut créer un dossier **.devilspie** dans le dossier utilisateur+À présent, il faut paramétrer devilspie. Pour cela, il faut créer un dossier **.devilspie** dans le dossier utilisateur:
 <​code>​ <​code>​
 mkdir ~/​.devilspie mkdir ~/​.devilspie
 </​code>​ </​code>​
-et y créer un fichier intitulé : **xfce4-terminal.ds**.+et y créer un fichier intitulé: **xfce4-terminal.ds**.
 <​code>​gedit ~/​.devilspie/​xfce4-terminal.ds</​code>​ <​code>​gedit ~/​.devilspie/​xfce4-terminal.ds</​code>​
  
 Il faut créer la règle qui paramètre xfce4-terminal:​ Il faut créer la règle qui paramètre xfce4-terminal:​
 <file bash> <file bash>
-(if (is (window_class) "​Xfce4-terminal"​)  +(if (is (window_class) "​Xfce4-terminal"​) 
-(begin ​+(begin
 (below) (below)
 (skip_tasklist) (skip_tasklist)
Ligne 492: Ligne 511:
 )) ))
 </​file>​ </​file>​
-  * below : Permet de mettre la fenêtre en dessous de toutes les autres. +  * 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_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**) +  * skip_pager : Ne permet ​pas 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)+  * 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 :+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:
 <​file>​devilspie –a</​file>​ <​file>​devilspie –a</​file>​
-**-a** permet d'​appliquer les règles aux fenêtres déjà ouvertes+**-a** permet d'​appliquer les règles aux fenêtres déjà ouvertes;
 <​file>​xfce4-terminal --geometry=LARGEURxHAUTEUR+X+Y</​file>​ <​file>​xfce4-terminal --geometry=LARGEURxHAUTEUR+X+Y</​file>​
-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 :+où LARGEUR et HAUTEUR sont exprimées en caractère de terminal, X et Y représentent ​les coordonnées du point supérieur gauche du terminal. Pour donner une idée chez moi la commande est:
 <​file>​xfce4-terminal --geometry=62x40+650+30</​file>​ <​file>​xfce4-terminal --geometry=62x40+650+30</​file>​
  
  
-<note tip>​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.</​note>​+<note tip>​Avant d'​ajouter les commandes ​au démarrage, faites les tests à partir d'un terminal, surtout en ce qui concerne la géométrie du terminal sur le bureau.</​note>​
  
 ===== Pages concernant le terminal ===== ===== Pages concernant le terminal =====
Ligne 511: Ligne 530:
 Vous y trouverez également différentes pages de présentation d'​autres terminaux. Ne restez pas forcément figé sur celui installé par défaut pour vous faire une idée de la valeur de chacun. En effet certains ont des fonctionnalités que d'​autres n'ont pas (par exemple le multifenêtrage) Vous y trouverez également différentes pages de présentation d'​autres terminaux. Ne restez pas forcément figé sur celui installé par défaut pour vous faire une idée de la valeur de chacun. En effet certains ont des fonctionnalités que d'​autres n'ont pas (par exemple le multifenêtrage)
 {{topic>​terminal}} {{topic>​terminal}}
 +
 ===== Voir aussi ===== ===== Voir aussi =====
  
   * [[https://​launchpad.net/​clicompanion|CLI Companion]] est un terminal qui vous permet de stocker et de commander votre «dictionnaire de commande.((N'​oubliez pas la commande man pour connaitre les autres commandes.)) FIXME plus développé?​   * [[https://​launchpad.net/​clicompanion|CLI Companion]] est un terminal qui vous permet de stocker et de commander votre «dictionnaire de commande.((N'​oubliez pas la commande man pour connaitre les autres commandes.)) FIXME plus développé?​
-  * [[http://​finalterm.org/​|Final Term]] un terminal moderne disposant d'une complétion des commandes très efficace. FIXME développement arrêté +  * [[https://​finalterm.org/​|Final Term]] un terminal moderne disposant d'une complétion des commandes très efficace. FIXME développement arrêté 
-  * [[http://​www.tuxradar.com/​content/​linux-tips-every-geek-should-know|Astuce que tous geek Linux devraient connaitre]](en). ​+  * [[http://​www.tuxradar.com/​content/​linux-tips-every-geek-should-know|Astuce que tous geek Linux devraient connaitre]](en).
   * [[http://​www.tuxradar.com/​content/​more-linux-tips-every-geek-should-know|Un peu plus d'​astuce que tous les geek Linux devraient connaitre]](en)   * [[http://​www.tuxradar.com/​content/​more-linux-tips-every-geek-should-know|Un peu plus d'​astuce que tous les geek Linux devraient connaitre]](en)
-  * [[http://​www.howtogeek.com/​howto/​linux/​stupid-geek-tricks-watch-movies-in-your-linux-terminal-window/​|Astuce Geek Inutile: Regarder un film en ASCII dans son terminal]](en)+  * [[https://​www.howtogeek.com/​howto/​linux/​stupid-geek-tricks-watch-movies-in-your-linux-terminal-window/​|Astuce Geek Inutile: Regarder un film en ASCII dans son terminal]](en)
   * [[http://​www.pixelbeat.org/​cmdline.html|Memo de commandes Linux]](en)   * [[http://​www.pixelbeat.org/​cmdline.html|Memo de commandes Linux]](en)
   * [[http://​ressources.tutoriels-video.fr/​Ubuntu/​Ubuntu-pour-les-debutants/​tuto-concole/​| Formation Vidéo de base pour les commandes]]   * [[http://​ressources.tutoriels-video.fr/​Ubuntu/​Ubuntu-pour-les-debutants/​tuto-concole/​| Formation Vidéo de base pour les commandes]]
Ligne 523: Ligne 543:
 ---- ----
 //​Contributeurs:​ [[utilisateurs:​Fabien26]],​ [[utilisateurs:​1h0ma5]],​ [[utilisateurs:​eagle08]].//​ //​Contributeurs:​ [[utilisateurs:​Fabien26]],​ [[utilisateurs:​1h0ma5]],​ [[utilisateurs:​eagle08]].//​
- 
- 
  • terminal.1487706845.txt.gz
  • Dernière modification: Le 21/02/2017, 20:54
  • par 62.35.3.102