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 →
Ci-dessous, les différences entre deux révisions de la page.
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 15:13] Hypathie [Shell BASH] |
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 15:37] Hypathie [Métacaractères et méta-caractères !] |
||
---|---|---|---|
Ligne 180: | 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.\\ | + | |
- | 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. | + | |
- | >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. | + | |
- | + | ||
- | >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//. | + | |
- | >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. | + | |
- | + | ||
- | >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. | + | |
- | + | ||
- | >Pour ce faire, un processus doit être 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. | + | |
- | + | ||
- | >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. | + | |
- | + | ||
- | Pour aller plus loin : | + | |
* [[doc:systeme:processus|processus]] | * [[doc:systeme:processus|processus]] | ||
* [[doc:systeme:ps?s[]=ps|la commande ps]] | * [[doc:systeme:ps?s[]=ps|la commande ps]] | ||
Ligne 209: | Ligne 187: | ||
* [[http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/Processus]] | * [[http://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/Processus]] | ||
- | ===Lister les processus=== | + | === Rappel : deux façons de lister les processus=== |
* Pour se faire plaisir en observant la hiérarchie des processus ;-) : | * Pour se faire plaisir en observant la hiérarchie des processus ;-) : | ||
Ligne 221: | Ligne 199: | ||
top | top | ||
</code> | </code> | ||
- | Pour aller plus loin sur la récupération du PID voir : | ||
=== Exemple pratique : tuer un processus === | === Exemple pratique : tuer un processus === | ||
Ligne 239: | Ligne 216: | ||
</code> | </code> | ||
>Ici ''4245'' est le PID du processus. | >Ici ''4245'' est le PID du processus. | ||
- | >Il ne sera pas le même si vous exécutez cette commande. | + | >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 : | ||
Ligne 314: | 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 326: | 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 554: | Ligne 534: | ||
<note tip> En bref !!! | <note tip> En bref !!! | ||
- | * Les caractères servant au globbing et au perttern, sont désignés dans le man bash de caractères génériques.\\ Mais à l'usage on parle de métacaractères. | + | * Les caractères servant __au globbing et au patterns__, sont désignés dans le man bash de caractères génériques.\\ Mais à l'usage on parle de __métacaractères__. |
- | * Les caractères qui permettent le mécanisme de lecture d'une ligne de commande par le shell sont appelés dans le man bash méta-caractères.\\ Mais à l'usage on parle de mots réservés. | + | * Les caractères qui permettent le mécanisme de lecture d'une ligne de commande par le shell sont appelés dans le man bash méta-caractères.\\ Mais à l'usage on parle __de mots réservés__. |
* On distingue deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection. | * On distingue deux sortes de mots réservés : les opérateurs de contrôle et les opérateurs de redirection. | ||
Ligne 576: | Ligne 556: | ||
> Ce "ou" logique qui apparaît dans deux cas : | > Ce "ou" logique qui apparaît dans deux cas : | ||
- | * avec '';;'' dans le contexte de la commande ''case'' | + | * Avec '';;'' dans le contexte de la commande ''case'' |
<code bash> | <code bash> | ||
case $variable-name in | case $variable-name in | ||
Ligne 588: | Ligne 568: | ||
esac | esac | ||
</code> | </code> | ||
- | * 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> | + | * 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> |
Deuxièmement, on retrouve la paire de parenthèses simples ''( )'': | Deuxièmement, on retrouve la paire de parenthèses simples ''( )'': | ||
Ligne 658: | 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]] |