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:48]
Hypathie [Métacaractères et méta-caractères !]
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 15:30]
Hypathie [Quotes, apostrophe, guillemets et apostrophe inversée]
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 182: Ligne 180:
  
 ==== Notion de processus ==== ==== Notion de processus ====
-===Généralité=== +===Tout est là === 
-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.\\ ​ +  * [[doc:​systeme:​processus|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 le shell permet de repérer un processus, et un exemple très simple d'​utilisation d'un processus.\\ +  * [[doc:​systeme:​ps?​s[]=ps|la ​commande ​ps]] 
- +  * [[doc:​systeme:​top?​s[]=top|la commande top]] 
->Pour simplifier, on peut dire qu'un processus est un programme en cours d’exécution. +  * [[http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/Processus]]
->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). +
->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  +
->du point de vue de l'​utilisateur,​ il semble que le système fait plusieurs  +
->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),  +
->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.+
  
->Enfin, une des particularités des systèmes GNU/​Linux,​ +=== Rappel : deux façons de lister ​les processus=== ​
->​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. ​+
  
-===Identifier un processus===  +  * Pour se faire plaisir en observant la hiérarchie des processus ;-) :
->Un processus est identifié par un numéro unique que l'on appelle le PID (Process IDentifiant). +
->Et chaque processus dispose d'un processus père que l'on appelle le PPID (Parent PID). +
- +
->​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. +
- +
-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 :  
-  * [[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 212:
 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 sur votre machine, ou d'une fois à l'​autre.
 +
   * 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 313: Ligne 291:
 À ne pas lancer dans votre dossier personnel sous peine perdre de manière irrémédiable de tous vos fichiers ​ ! À ne pas lancer dans votre dossier personnel sous peine perdre de manière irrémédiable de tous vos fichiers ​ !
 </​note>​ </​note>​
->Pour vérifier que tout a été supprimé :​ 
 <code user>​ls</​code>​ <code user>​ls</​code>​
 +
 +> Pour vérifier que tout a été supprimé :
  
   * comparez maintenant avec :   * comparez maintenant avec :
Ligne 325: Ligne 304:
 <code user>ls | xargs rm <code user>ls | xargs rm
 </​code>​ </​code>​
->Pour vérifier que tout a été supprimé :​+
 <code user>​ls</​code>​ <code user>​ls</​code>​
 +
 +> Pour vérifier que tout a été supprimé :
  
   * Autre exemple :   * Autre exemple :
Ligne 345: Ligne 326:
 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 353:
  
   * 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 390:
 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 470:
   - 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 591: Ligne 572:
 Deuxièmement,​ on retrouve la paire de parenthèses simples ''​( )'':​ Deuxièmement,​ on retrouve la paire de parenthèses simples ''​( )'':​
  
-dans le contexte de la commande ''​function''​+Avec la commande ''​function''​
  
 <code bash> <code bash>
Ligne 601: Ligne 582:
 </​code>​ </​code>​
  
-dans les substitutions de commande $( )+Avec les substitutions de commande ​''​$( )''​
  
-dans le cas des globs étendus (voir lien ci-dessus) ;\\ +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]]\\ ​ 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 ''​(( ))''​ 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]].+> 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 640: Ligne 621:
   * 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; ​
Ligne 657: Ligne 638:
   * **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :​[[http://​mywiki.wooledge.org/​BashFAQ]]** ​   * **Pour les DÉBUTANTS AVISÉS et anglophile, voir là :​[[http://​mywiki.wooledge.org/​BashFAQ]]** ​
  
-  * **À voir aussi : scripts debian-facile :** +  * **À voir aussi : les scripts debian-facile :** 
       *[[:​doc:​programmation:​python:​boutonfermer|[pygtk] Comment faire un notebook avec bouton "​fermer"​]]       *[[:​doc:​programmation:​python:​boutonfermer|[pygtk] Comment faire un notebook avec bouton "​fermer"​]]
       *[[:​doc:​programmation:​bash:​alias|[bash] Réalisation d'un script contenant des Alias]] ​       *[[:​doc:​programmation:​bash:​alias|[bash] Réalisation d'un script contenant des Alias]] ​
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