logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
doc:programmation:shell:shell [09/10/2015 18:03]
milou [Le shell pour tous]
doc:programmation:shell:shell [05/10/2022 19:53] (Version actuelle)
ubub [Introduction]
Ligne 45: Ligne 45:
 Le //prompt// ou invite de commande est le petit texte qui est déjà affiché quand on lance le shell et qui reste affiché quand on appuie sur la touche <​key>​Entrée</​key>​ Le //prompt// ou invite de commande est le petit texte qui est déjà affiché quand on lance le shell et qui reste affiché quand on appuie sur la touche <​key>​Entrée</​key>​
  
-Souvent, le prompte ​ressemble à ça : ''​nom-d-utilisateur@nom-de-la-machine:​dossier-courant$''​.+Souvent, le prompt ​ressemble à ça : ''​nom-d-utilisateur@nom-de-la-machine:​dossier-courant$''​.
  
 <note info>Le dossier courant pouvant être abrégé en ''​~''​ s'il s'agit du dossier personnel (par défaut).</​note>​ <note info>Le dossier courant pouvant être abrégé en ''​~''​ s'il s'agit du dossier personnel (par défaut).</​note>​
Ligne 131: Ligne 131:
 Dans un shell, il faut penser //flux//. Un flux est une sorte de fichier, qui se construit au fur et à mesure et n'est présent qu'en mémoire. Dans un shell, il faut penser //flux//. Un flux est une sorte de fichier, qui se construit au fur et à mesure et n'est présent qu'en mémoire.
 Par exemple, ​ Par exemple, ​
-  * tout ce qu'​affiche un programme (comme ''​ls''​ ou ''​pwd''​ est un flux, affiché directement sur le terminal.+  * tout ce qu'​affiche un programme (comme ''​ls''​ ou ''​pwd''​ est un flux, affiché directement sur le terminal).
   * tout ce que tape un utilisateur pendant qu'il utilise un programme du terminal est un flux.   * tout ce que tape un utilisateur pendant qu'il utilise un programme du terminal est un flux.
  
-<note info>​Cela vaut en particulier pour le shell ! Vous pouvez le vérifier en tapant la combinaison de touche ​correspondant à une //fin de fichier// (ou fin de flux) : <​key>​C-d</​key>​ **paf** le shell se ferme, parce que son flux d'entré ​est terminé :-)+<note info>​Cela vaut en particulier pour le shell ! Vous pouvez le vérifier en tapant la combinaison de touches ​correspondant à une //fin de fichier// (ou fin de flux) : <​key>​C-d</​key>​ **paf** le shell se ferme, parce que son flux d'entrée ​est terminé :-)
 </​note>​ </​note>​
  
Ligne 147: Ligne 147:
 Admettons que vous vouliez lancer un premier programme, qui fournit alors un flux de sortie, puis donner ce flux de sortie à un deuxième programme pour qu'il y fasse un second traitement. Admettons que vous vouliez lancer un premier programme, qui fournit alors un flux de sortie, puis donner ce flux de sortie à un deuxième programme pour qu'il y fasse un second traitement.
  
-Par exemple, vous voulez lister l'​ensemble des fichiers dans ''/​usr/​bin''​ (via ''​ls''​) mais vous ne voulez garder seulement les fichiers comportant ''​term''​ dans leur nom. Vous utiliserez alors la commande ''​grep''​ pour faire la 2e opération, qui fonctionne à la manière d'un filtre :+Par exemple, vous voulez lister l'​ensemble des fichiers dans ''/​usr/​bin''​ (via ''​ls''​) mais vous ne voulez garder seulement ​que les fichiers comportant ''​term''​ dans leur nom. Vous utiliserez alors la commande ''​grep''​ pour faire la 2e opération, qui fonctionne à la manière d'un filtre :
  
 <code user>ls /usr/bin | grep '​term'</​code>​ <code user>ls /usr/bin | grep '​term'</​code>​
Ligne 165: Ligne 165:
 <note info>​Notez qu'​ici,​ nous avons donné trois arguments à ''​echo''​ : <note info>​Notez qu'​ici,​ nous avons donné trois arguments à ''​echo''​ :
   * Le premier argument est du texte simple, ils est donc entre guillemets simples : ''​ ' ''​.   * Le premier argument est du texte simple, ils est donc entre guillemets simples : ''​ ' ''​.
-  * Le second argument comporte un code qui doit être interprété par le shell ''​$(pwd)''​ il doit donc donné ​entre guillemets doubles : ''​ " ''​.+  * Le second argument comporte un code qui doit être interprété par le shell ''​$(pwd)''​ il doit donc donner ​entre guillemets doubles : ''​ " ''​.
   * Pour ne pas confondre l'​apostrophe du troisième argument avec la fin d'un argument, il est indiqué entre guillemets doubles également.   * Pour ne pas confondre l'​apostrophe du troisième argument avec la fin d'un argument, il est indiqué entre guillemets doubles également.
 </​note>​ </​note>​
Ligne 185: Ligne 185:
 ===== Variables et environnement ===== ===== Variables et environnement =====
  
-Dans un shell, il y a tout un tas de variables qui lui sont transmises ​la le processus l'​ayant lancé. On les appelles ​les variables d'​environnement,​ et elles sont listées par la commande ''​env''​ :+Dans un shell, il y a tout un tas de variables qui lui sont transmises ​par le processus l'​ayant lancé. On les appelle ​les variables d'​environnement,​ et elles sont listées par la commande ''​env''​ :
 <code user>​env</​code>​ <code user>​env</​code>​
  
Ligne 218: Ligne 218:
 <code user>​iceweasel &</​code>​ <code user>​iceweasel &</​code>​
  
-Avec cela, iceweasel va être lancé, mais vous aurez toujours la main dans le shell (tapes entrée pour le vérifier.)+Avec cela, iceweasel va être lancé, mais vous aurez toujours la main dans le shell (tape <key>entrée</​key> ​pour le vérifier.)
  
 <note tip>​Oups,​ j'ai oublié de mettre le ''&'',​ comment je fais ? <note tip>​Oups,​ j'ai oublié de mettre le ''&'',​ comment je fais ?
Ligne 232: Ligne 232:
 <note tip>​Oups,​ j'ai oublié de mettre le ''​!'',​ comment je fais ? <note tip>​Oups,​ j'ai oublié de mettre le ''​!'',​ comment je fais ?
  
-Il suffit de taper ''​disown leprogramme''​ (faire ​tab pour voir les propositions)</​note>​+Il suffit de taper ''​disown leprogramme''​ (faire ​<​key>​Tab</​key> ​pour voir les propositions)</​note>​
  
 ===== Enchaîner plusieurs commandes ​ ===== ===== Enchaîner plusieurs commandes ​ =====
Ligne 258: Ligne 258:
  
 <note important>​Il ne faut pas confondre le code retour de la commande avec son résultat. Le résultat est ce qui s'​affiche à l'​écran. Le code de retour est une valeur numérique qui peut être utilisé dans un test par exemple. ​ \\ <note important>​Il ne faut pas confondre le code retour de la commande avec son résultat. Le résultat est ce qui s'​affiche à l'​écran. Le code de retour est une valeur numérique qui peut être utilisé dans un test par exemple. ​ \\
-On peu afficher le code retour de la dernière commande exécutée avec +On peut afficher le code retour de la dernière commande exécutée avec 
 <code user>​echo $?</​code></​note>​ <code user>​echo $?</​code></​note>​
  
Ligne 275: Ligne 275:
 <code user>ls /​usr/​tmp/​coucou || touch /​usr/​tmp/​coucou</​code>​ <code user>ls /​usr/​tmp/​coucou || touch /​usr/​tmp/​coucou</​code>​
  
-<note tip>On peut combiner ces opérateur. Il suffit de se rapeller ​qu'il vont prendre en compte le code retour de la dernière commande exécutée.:​-)</​note>​+<note tip>On peut combiner ces opérateurs. Il suffit de se rappeler ​qu'il vont prendre en compte le code retour de la dernière commande exécutée.:​-)</​note>​
  
 Ces opérateurs fonctionnent un peu comme des tests //if//. Pour plus de précision sur les tests, on peut consulter :  [[doc:​programmation:​shell:​avancee|Fonctionnalités avancées du Shell]] Ces opérateurs fonctionnent un peu comme des tests //if//. Pour plus de précision sur les tests, on peut consulter :  [[doc:​programmation:​shell:​avancee|Fonctionnalités avancées du Shell]]
  
 +==== Quelques raccourcis en shell Linux ====
 +Quelques raccourcis en shell Linux (à apprendre par cœur :-P) :
 +^Raccourci clavier ​  ​^ ​  ​Action ​  ^
 +| <​key>​C+a</​key> ​ | Déplace le curseur au début de la ligne  |
 +| <​key>​C+E</​key> ​ | Déplace le curseur à la fin de la ligne |
 +| <​key>​C+K</​key> ​ | Efface du curseur à la fin de la ligne  |
 +| <​key>​C+U</​key> ​ | Efface la ligne jusqu'​au curseur. Efface donc la ligne si le curseur se trouve à la fin |
 +| <​key>​C+L</​key> ​ | Efface le terminal, équivalent ) ''​clear''​ |
 +| <​key>​C+W</​key> ​ | Effacer du caractère précédent le curseur jusqu'​au début du mot |
 +| <​key>​A+←</​key>​ | Comme <​key>​C+W</​key>​ |
 +| <​key>​A+D</​key> ​ | Coupe la chaîne depuis le caractère situé sous le curseur jusqu’à la findu mot (si le curseur est placé au début d’un mot, coupe le mot) |
 +| <​key>​C+Y</​key> ​ | Colle la sélection précédemment coupée |
 +| <​key>​C+T</​key> ​ | Inverse les deux caractères précédent le curseur |
 +| <​key>​A+T</​key> ​ | Inverse deux mots précédent le curseur |
 +| <​key>​A+c</​key> ​ | Met en majuscule la lettre située sous le curseur et déplace le curseur à la fin du mot |
 +| <​key>​A+L</​key> ​ | Met en minuscule toutes les lettres depuis la position du curseur jusqu’à la fin du mot |
 +| <​key>​A+U</​key> ​ | Met en majuscule toutes les lettres depuis la position du curseur jusqu’à la fin du mot |
 +| <​key>​A+_</​key> ​ | Annule la modification précédente |
 +
 +A noter que ces raccourcis claviers sont identiques à ceux utilisés dans l'​éditeur de texte //emacs//. Il est possible d'​obtenir un comportement identique à celui de //vi/vim// avec
 +<code user>set -o vi</​code>​
 +La ligne de commande est alors en mode insertion. Pour passer en mode normal permettant de se déplacer dans une ligne saisie avec [[doc:​editeurs:​vim:​tableau|les raccourcis habituels de vim]], c'est <​key>​Esc</​key>​. Pour entrer en mode insertion, c'est <​key>​a</​key>​ ou <​key>​i</​key>​.
 +
 +Pour retrouver les raccourcis par défaut <code user>set -o emacs</​code>​
 +si vous utilisez zsh
 +
 +^Raccourci clavier ​  ​^ ​  ​Action ​  ^
 +| <​key>​Echap+H</​key> ​  | Aide de la commande en cours de saisie ​ |
 +| <​key>​Echap+Q</​key> ​  | Efface la ligne courante, mais la ré-affichera une fois la commande courante terminée(Ma préférée :-))  |
 ===== Tableau des Shell disponibles ===== ===== Tableau des Shell disponibles =====
  
Ligne 284: Ligne 313:
 |[[:​doc:​programmation:​bash]] ​ |Le shell utilisateur par défaut sous Débian ​     | |[[:​doc:​programmation:​bash]] ​ |Le shell utilisateur par défaut sous Débian ​     |
 |dash   |Le shell système par défaut sous Débian ​         | |dash   |Le shell système par défaut sous Débian ​         |
-|zsh    |Un shell utilisateur très paramétrable ​          ​|+|zsh    |Un shell utilisateur très paramétrable ​(Le SHELL ULTIME :))          ​|
  
  
  
doc/programmation/shell/shell.1444406617.txt.gz · Dernière modification: 09/10/2015 18:03 par milou

Pied de page des forums

Propulsé par FluxBB