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
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 11:24]
Hypathie
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 15:13]
Hypathie [Shell BASH]
Ligne 21: Ligne 21:
   * [[atelier:​chantier:​man-bash-vi-les-caracteres-de-transformation-de-parametres|Caractères de transformation de paramètres]]   * [[atelier:​chantier:​man-bash-vi-les-caracteres-de-transformation-de-parametres|Caractères de transformation de paramètres]]
   * [[atelier:​chantier:​bash-vii-globs-etendus-regex|Globs étendus et regex]]   * [[atelier:​chantier:​bash-vii-globs-etendus-regex|Globs étendus et regex]]
- 
-//Enfin, les liens en gras renvoient aux pages du wiki relatives au shell, terminal, chemin relatif et absolu, scripts, alias, etc.// 
  
 **Dans ce tuto** : **Dans ce tuto** :
Ligne 185: Ligne 183:
 De façon générale, la notion de processus recouvre tout le fonctionnement de\\  De façon générale, la notion de processus recouvre tout le fonctionnement de\\ 
 notre système GNU/linux et revoie à l'​utilisation du processeur de notre machine.\\ ​ notre système GNU/linux et revoie à l'​utilisation du processeur de notre machine.\\ ​
-L'​étude des processus mériterait à elle seule un livre entier, et dépasse largement celle du shell.\\ Voyons simplement dans les grandes lignes ce qu'est un processus, comment ​le shell permet de repérer un processus, et un exemple très simple d'​utilisation d'un processus.\\+L'​étude des processus mériterait à elle seule un livre entier, et dépasse largement celle du shell.\\ Voyons simplement dans les grandes lignes ce qu'est un processus, comment repérer un processus, et le tuer.\\
  
 >Pour simplifier, on peut dire qu'un processus est un programme en cours d’exécution. >Pour simplifier, on peut dire qu'un processus est un programme en cours d’exécution.
->Quand on lance une commande cela fait appel à un exécutable (un binaire ou un script), ​ +>Quand on lance une commande cela fait appel à un exécutable (un binaire ou un script), qui est dans la mémoire morte (dans le disque dur). 
->qui est dans la mémoire morte (dans le disque dur). +>Mais lorsqu'​un processus se lance, les instructions du programme passe en mémoire vive pour que le programme soit exécuté par le processeur.
->Mais lorsqu'​un processus se lance, les instructions du programme passe en  +
->mémoire vive pour que le programme soit exécuté par le processeur.+
  
->Enfin un processeur ne peut exécuter qu'un processus à la fois, même si  +>De plus, un processeur ne peut exécuter qu'un processus à la fois, même si du point de vue de l'​utilisateur,​ il semble que le système fait plusieurs choses en même temps, grâce au //système multitâche//​.  
->du point de vue de l'​utilisateur,​ il semble que le système fait plusieurs ​ +>Cette impression est due à la rapidité de calcul du processeur, ​et à un programme essentiel au système, //​l'​ordonnanceur//, ​qui gère la priorité des différents processus placés en mémoire vive. 
->choses en même temps.  +
->Cette impression est due à la rapidité de calcul du processeur, ​ +
->mais en réalité ​un programme essentiel au système, //​l'​ordonnanceur//, ​ +
->gère la priorité des différents processus placés en mémoire vive. +
  
->Un processus peut donc être suspendu, relancé, mis en arrière plan (job), ​ +>Un processus peut donc être suspendu, relancé, mis en arrière plan (job), en premier plan, être un processus père ou enfant, être orphelin, et même devenir un zombie 8-).
->en premier plan, être un processus père ou enfant, être orphelin, et même devenir un zombie 8-).+
 >La gestion des processus nécessite donc que chaque processus possède un identifiant. >La gestion des processus nécessite donc que chaque processus possède un identifiant.
  
->Enfin, une des particularités des systèmes GNU/Linux, +>Pour ce faire, un processus doit être identifié par un numéro unique que l'on appelle le PID (Process IDentifiant). 
->c'est qu'un processus s'​exécute en fonction les droits accordés ​ +>Et chaque processus dispose d'un processus père que l'on appelle le PPID (Parent PID). 
->à l'​utilisateur qui l'a lancé. ​+>​Excepté le processus ''​init''​ qui a comme particularité d'​être le premier processus et de toujours utiliser le ''​PID 1''​. 
 +>Ce processus démarre ensuite des processus noyaux et les premiers processus systèmes. 
 + 
 +>Enfin, une des particularités des systèmes GNU/Linux, c'est qu'un processus s'​exécute en fonction les droits accordés à l'​utilisateur qui l'a lancé. ​
 >Ceci participe fortement à la sécurité du système. ​ >Ceci participe fortement à la sécurité du système. ​
  
-===Identifier un processus== +Pour aller plus loin :  
->Un processus est identifié par un numéro unique que l'on appelle le PID (Process IDentifiant). +  * [[doc:​systeme:​processus|processus]] 
->Et chaque processus dispose d'un processus père que l'on appelle le PPID (Parent PID).+  * [[doc:​systeme:​ps?​s[]=ps|la commande ps]] 
 +  * [[doc:​systeme:​top?​s[]=top|la commande top]] 
 +  * [[http://fr.wikibooks.org/​wiki/​Le_syst%C3%A8me_d%27exploitation_GNU-Linux/​Processus]]
  
->​Excepté le processus //init// qui a comme particularité d'​être le premier processus +===Lister ​les processus=== 
->et de toujours utiliser le PID 1.  +
->Ce processus démarre ensuite des processus noyaux et les premiers ​processus ​systèmes.+
  
-Pour se faire plaisir en observant la hiérarchie des processus ;-) :+  * Pour se faire plaisir en observant la hiérarchie des processus ;-) :
 <code user> <code user>
 pstree -p pstree -p
 </​code>​ </​code>​
->​l'​option -p permet d'​afficher le PID en plus de la hiérarchie.+>​l'​option ​''​-p'' ​permet d'​afficher le PID en plus de la hiérarchie.
  
-Pour se faire très plaisir ^_^ en observant la liste des processus de manière dynamique :+  * Pour se faire très plaisir ^_^ en observant la liste des processus de manière dynamique :
 <code user> <code user>
 top top
 </​code>​ </​code>​
 Pour aller plus loin sur la récupération du PID voir :  Pour aller plus loin sur la récupération du PID voir : 
-  * [[doc:​systeme:​ps?​s[]=ps|la commande ps]] 
-  * [[doc:​systeme:​top?​s[]=top|la commande top]] 
-  * [[http://​fr.wikibooks.org/​wiki/​Le_syst%C3%A8me_d%27exploitation_GNU-Linux/​Processus]] 
  
 === Exemple pratique : tuer un processus === === Exemple pratique : tuer un processus ===
 Imaginons que vous vous êtes endormi devant votre messagerie.\\ A votre réveille 8-o : impossible de fermer la fenêtre de icedove avec la souris.\\ Imaginons que vous vous êtes endormi devant votre messagerie.\\ A votre réveille 8-o : impossible de fermer la fenêtre de icedove avec la souris.\\
 Dans ce cas, le plus simple est tuer le processus d'​exécution de icedove. Dans ce cas, le plus simple est tuer le processus d'​exécution de icedove.
 +
   * Retrouver le processus :   * Retrouver le processus :
-  ​- ouvrir par exemple ​TTY1 : ctrl+Alt+F1+ 
 +  ​- ouvrir par exemple ​tty1 ''​ctrl+Alt+F1''​
   - se loguer et entrer son mot de passe utilisateur   - se loguer et entrer son mot de passe utilisateur
   - récupérer le PID du processus icedove :    - récupérer le PID du processus icedove : 
Ligne 242: Ligne 235:
 ps -A | grep icedove ps -A | grep icedove
 </​code>​ </​code>​
 +<​code>​
 +4245  pts/0   ​00:​00:​02 ​ icedove
 +</​code>​
 +>Ici ''​4245''​ est le PID du processus.
 +>Il ne sera pas le même si vous exécutez cette commande.
 +
   * Tuer le processus :   * Tuer le processus :
 <code user> <code user>
-4245  ​pts/​0 ​  ​00:​00:​02 ​ icedove+kill 4245
 </​code>​ </​code>​
 <code user> <code user>
 exit exit
 </​code>​ </​code>​
-  ​* Revenir sur l'​interface graphique : ctrl+Alt+F7+>Mieux prendre l'​habitude de ne pas laisser une console ''​tty''​ sans surveillance après s'y être loguer, et cela d'​autant plus pour le compte root -;) 
 + 
 +  ​* Revenir sur l'​interface graphique : ''​ctrl+Alt+F7''​
  
 Quelques exemples pour illustrée la notion de processus :  Quelques exemples pour illustrée la notion de processus : 
Ligne 345: Ligne 346:
 Certains caractères spéciaux sont appelés //​méta-caractères//​ ; soit parce qu'ils servent à effectuer des recherches sur les mots ; soient parce qu'ils servent dans les expressions rationnelles;​ soit encore parce qu'ils représentent symboliquement quelque chose, un fichier, la valeur d'une variable ; finalement parce que ces caractères représentes symboliquement quelque chose; Certains caractères spéciaux sont appelés //​méta-caractères//​ ; soit parce qu'ils servent à effectuer des recherches sur les mots ; soient parce qu'ils servent dans les expressions rationnelles;​ soit encore parce qu'ils représentent symboliquement quelque chose, un fichier, la valeur d'une variable ; finalement parce que ces caractères représentes symboliquement quelque chose;
  
-  * D'une part, dans le wiki [[:​doc:​programmation:​shell:​les-metacaracteres|Les métacaractères,​ ou globs, ou encore patterns]] présente les méta-caractères ​« »« »« » et les crochets ​« [ ] » qui sont communs aux différents shell.+  * D'une part, le wiki [[:​doc:​programmation:​shell:​les-metacaracteres|"​les ​métacaractères,​ ou globs, ou encore patterns"]] présente les méta-caractères ​''​?''​''​;''​''​*'' ​et les crochets ​''​[ ]'' ​qui sont communs aux différents shell.
  
 Voici un tableau qui regroupe les méta-caractères :  Voici un tableau qui regroupe les méta-caractères : 
Ligne 372: Ligne 373:
  
   * Dans un contexte proche, c'​est-à-dire qui concerne la gestion des chaînes de caractères,​ le shell possède des mots réservés et des syntaxes qui permettent de modifier la valeur des variables ou paramètres créés(ées) par l'​utilisateur.   * Dans un contexte proche, c'​est-à-dire qui concerne la gestion des chaînes de caractères,​ le shell possède des mots réservés et des syntaxes qui permettent de modifier la valeur des variables ou paramètres créés(ées) par l'​utilisateur.
-<​code>​ + 
-Dans les accolades précédées de $ : ${  } on peut trouver les caractères : +  ​* ​Dans ''​${  }'' ​on peut trouver les caractères :\\  
-:-    :=       ::    :+   ​:?          ##    %%    + 
-Ne pas confondre avec joker ou bracket ​vus ci-dessus +''​:-''​ ; ''​:=''​ ; ''​:''​ ; ''​::''​ ; ''​:+''​ ; ''​:?''​ ; ''​@''​ ; ''​*''​ ; ''​##''​ ; ''​%%''​ ; ''​%''​ 
-</​code>​  + 
-C'est le sujet du tuto : [[atelier:​chantier:​man-bash-vi-les-caracteres-de-transformation-de-parametres|les caractères de transformation de paramètres]]+Ne pas confondre avec joker ou bracket\\ C'est le sujet du tuto : [[atelier:​chantier:​man-bash-vi-les-caracteres-de-transformation-de-parametres|les caractères de transformation de paramètres]]
  
 ==== Globs simples, ou métacaractères ==== ==== Globs simples, ou métacaractères ====
Ligne 409: Ligne 410:
 Rappel: Rappel:
     - L'​étoile correspond à n'​importe quelle chaîne.\\ ​     - L'​étoile correspond à n'​importe quelle chaîne.\\ ​
-    - Si l'on fait *.txt on représente tous les fichiers se terminant par ''​.txt''​.\ +    - Si l'on fait ''​*.txt'' ​on représente tous les fichiers se terminant par ''​.txt''​. 
-    - Mais attention : .  représente un point (.mais aussi deux points ​(..m( +    - Mais attention : ''​.'' ​ ​représente un point ''​.'' ​mais aussi deux points ​''​..'' ​m( 
 </​note>​ </​note>​
  
Ligne 489: Ligne 490:
   - toujours s'​assurer que vous êtes dans le répertoire parent des fichiers cachés à supprimer((Observez le prompt : ''​user@nom-machine:​~/​REPERTOIRE-PARENT$''​)) ​   - toujours s'​assurer que vous êtes dans le répertoire parent des fichiers cachés à supprimer((Observez le prompt : ''​user@nom-machine:​~/​REPERTOIRE-PARENT$''​)) ​
   - l'​option ''​-i''​ pour plus de maîtrise ;\\ surtout quand on l'​utilise en tant que en root !\\    - l'​option ''​-i''​ pour plus de maîtrise ;\\ surtout quand on l'​utilise en tant que en root !\\ 
-  - mieux vaux éviter de la placer sur le slash ''/​*''​ (pour aller plus vite)\\ il est plus prudent de mettre l'​étoile après la première lettre ''​rm \.f*''​ quitte perdre un peu de temps.+  - mieux vaux éviter de la placer sur le slash ''/​*''​ (pour aller plus vite)\\ il est plus prudent de mettre l'​étoile après la première lettre ''​rm \.f*''​ quitte ​à perdre un peu de temps.
   - Attention lors de la rédaction du chemin absolu d'un fichier :   - Attention lors de la rédaction du chemin absolu d'un fichier :
  
Ligne 536: Ligne 537:
 </​code>​ </​code>​
  
-Un **mot** est //une séquence de caractères considérée comme une unité élémentaire par le shell. On parle également de token (jeton)//.+>Un //mot// est une séquence de caractères considérée comme une unité élémentaire ​ 
 +>par le shell. ​ 
 +>On parle également de //token// (jeton).
  
   * Attention dans ce sens, le terme de méta-caractère ne renvoie pas aux caractères génériques (man bash) ou au globbing et pattern mais fait référence à l'​analyse et au traitement par le shell de la ligne de commande. ​   * Attention dans ce sens, le terme de méta-caractère ne renvoie pas aux caractères génériques (man bash) ou au globbing et pattern mais fait référence à l'​analyse et au traitement par le shell de la ligne de commande. ​
Ligne 565: Ligne 568:
  
 <note tip> <note tip>
-  * Premièrement,​ à strictement parler, servent ​seulement ​à enchaîner les commandes:\\ +Premièrement,​ à strictement parler, ​parmi les caractères de la liste ci-dessus, ceux qui servent à enchaîner les commandes ​sont :
  
 <​code>​ ||    && ​   ;    <​retour-chariot>​ </​code>​ <​code>​ ||    && ​   ;    <​retour-chariot>​ </​code>​
  
 +> Le signe ''​|''​ est un "​ou"​ logique. ​
 +> Il ne fait pas référence ici au pipe qui sert dans les tubes. ​
 +> Ce "​ou"​ logique qui apparaît dans deux cas :
    
-    * Le signe | ne fait pas référence ici au pipe qui sert dans les tubes.  +    * avec ''​;;'' ​dans le contexte de la commande ​''​case''  ​
-C'est un " OU " logique qui apparaît dans deux cas :\\  +
-1) avec ;; dans le contexte de la commande ​"case" ;\\ +
 <code bash> <code bash>
 case $variable-name in case $variable-name in
Ligne 584: Ligne 588:
 esac esac
  </​code>​  </​code>​
-2) dans le contexte d'​utilisation des globs étendus et des expressions rationnelles\\ ​ +    * dans le contexte d'​utilisation des globs étendus et des expressions rationnelles\\ voir : [[atelier:​chantier:​bash-vii-globs-etendus-regex?&#​les-globs-etendus]]\\ ​Par exemple : <code user>ls ~/​Test/​!(*jpg|*bmp)</​code>​
-voir : [[atelier:​chantier:​bash-vii-globs-etendus-regex?&#​les-globs-etendus]]\\ ​+
  
-    * Il signifie ​la aussi " OU "\\  +Deuxièmement,​ on retrouve ​la paire de parenthèses simples ''​( )'':​ 
-Par exemple : <code user>ls ~/Test/!(*jpg|*bmp)</code>+ 
 +Avec la commande ''​function''​
  
-  * Deuxièmement,​ on retrouve la paire de parenthèses dans le contexte de la commande "​function"​. 
 <code bash> <code bash>
 name (){ name (){
Ligne 598: Ligne 601:
 name name
 </​code>​ </​code>​
-Ou encore dans les substitutions de commande $( ).\\  
-Enfin il apparaît une paire de parenthèses dans le cas des globs étendus (voir lien ci-dessus) ;\\  
-et dans les expressions rationnelle (voir : [[atelier:​chantier:​bash-vii-globs-etendus-regex?&#​liste-des-caracteres-utilises-dans-les-expressions-regulieres-de-type-bashiste]]\\ ​ 
  
-La double paire de parenthèse sert à faire des calculs (voir : [[atelier:​chantier:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques]].+> Avec les substitutions de commande ''​$( )''​ 
 + 
 +> Avec les globs étendus (voir lien ci-dessus) ;\\  
 +ou dans les expressions rationnelle (voir : [[atelier:​chantier:​bash-vii-globs-etendus-regex?&#​liste-des-caracteres-utilises-dans-les-expressions-regulieres-de-type-bashiste]]\\  
 + 
 +> Ne pas confondre avec la double paire de parenthèse ​''<​nowiki>​(( ))</​nowiki>''​ qui ne figure pas\\ dans la liste et qui sert à faire des calculs\\ (voir : [[atelier:​chantier:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques]].
 </​note>​ </​note>​
 À voir : [[doc:​programmation:​shell:​shell#​enchainer-plusieurs-commandes]] À voir : [[doc:​programmation:​shell:​shell#​enchainer-plusieurs-commandes]]
Ligne 636: Ligne 641:
   * des caractères qui inhibent la reconnaissance des caractères spéciaux et des métacaractères ("​glob"​ ou "​patterns"​ et "​bracket expression"​); ​   * des caractères qui inhibent la reconnaissance des caractères spéciaux et des métacaractères ("​glob"​ ou "​patterns"​ et "​bracket expression"​); ​
   * des mots réservés des commandes composées; ​   * des mots réservés des commandes composées; ​
-  * des caractères qui transforment un caractère simple en caractère spécial (par exemple, le tiret devant une lettre, fait reconnaître cette lettre comme une option );+  * des caractères qui transforment un caractère simple en caractère spécial\\ (par exemple, le tiret devant une lettre, fait reconnaître cette lettre comme une option );
   * enfin, des caractères symboliques qui représentent :   * enfin, des caractères symboliques qui représentent :
     * différentes sortes de fichiers; ​     * différentes sortes de fichiers; ​
doc/programmation/shells/bash-les-differents-caracteres-speciaux.txt · Dernière modification: 01/04/2023 19:17 par agp91

Pied de page des forums

Propulsé par FluxBB