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 [04/07/2014 10:29]
Hypathie [Métacaractères et méta-caractères !]
doc:programmation:shells:bash-les-differents-caracteres-speciaux [08/07/2014 08:11]
Hypathie [Shell BASH]
Ligne 58: Ligne 58:
 Plus directement,​ on peut faire : Plus directement,​ on peut faire :
 <code user>​echo $SHELL</​code>​ <code user>​echo $SHELL</​code>​
-Qui retournera 
 <​code>/​bin/​bash</​code>​ <​code>/​bin/​bash</​code>​
 +;-)
  
 === Version utilisée === === Version utilisée ===
Ligne 75: Ligne 75:
  
  
-==== Commandes internes, commandes ​externes ====+==== Commandes internes ​et externes ====
  
 Distinguons maintenant les commandes internes et les commandes externes au shell bash, commandes simples et les commandes composées. Distinguons maintenant les commandes internes et les commandes externes au shell bash, commandes simples et les commandes composées.
Ligne 112: Ligne 112:
 </​note>​ </​note>​
  
-==== Notion de processus ​==== +===Localisation des commandes===
- +
-Le shell crée un processus pour exécuter une commande externe. Parmi les commandes externes que l'on trouve dans un système, il y a les exécutables ELF (ex. ls, mkdir, vi, sleep) et les fichiers de scripts (dont par exemple les scripts shell).+
  
 La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH.  La localisation du code d'une commande externe doit être connu du shell pour qu'il puisse exécuter cette commande. A cette fin, bash utilise la valeur de sa variable prédéfinie PATH. 
Ligne 173: Ligne 171:
 </​note>​ </​note>​
  
 +==== Notion de processus ====
 +===Généralité===
 +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 le shell permet de repérer un processus, et un exemple très simple d'​utilisation d'un processus.\\
 +
 +>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.
 +
 +>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ème GNU/Linux,
 +>​c'​est que les processus sont de s'​exécuter avec les droits accordés ​
 +>à l'​utilisateur qui a lancé la commande. ​
 +>Ceci participe fortement à la sécurité du système. ​
 +
 +===Identifier un 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>
 +pstree -p
 +</​code>​
 +>​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 :
 +<code user>
 +top
 +</​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 ===
 +Imaginons que vous vous êtes endormi devant votre messagerie.\\ A votre réveille 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.
 +  * Retrouver le processus :
 +  - se rendre sur TTY1, par exemple : ctrl+Alt+F1
 +  - se loguer et entrer son mot de passe utilisateur
 +  - récupérer le PID du processus icedove : 
 +<code user>
 +ps -A | grep icedove
 +</​code>​
 +  * Tuer le processus :
 +<code user>
 +4245  pts/0   ​00:​00:​02 ​ icedove
 +</​code>​
 +<code user>
 +exit
 +</​code>​
 +  * Revenir sur l'​interface graphique : ctrl+Alt+F7
 +
 +Quelques exemples pour illustrée la notion de processus : 
 +  * [[atelier:​chantier:​script-bash-variables-arguments-parametres?&#​exportation-de-la-valeur-d-une-variable|Exportation de la valeur d'une variable]].
 +  * [[https://​wiki.debian-facile.org/​atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie#​notion-de-sous-shell|sous-shell]]
  
 ===== Quotes, apostrophe, guillemets et apostrophe inversée ===== ===== Quotes, apostrophe, guillemets et apostrophe inversée =====
Ligne 322: Ligne 393:
 .cache ​ .config .cache ​ .config
 </​code>​ </​code>​
- 
-<note warning>​FIXME à revoir 
  
 **Il y a un piège !** **Il y a un piège !**
Ligne 347: Ligne 416:
 </​code>​ </​code>​
 => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !) => liste du répertoire courant : tous les noms de fichiers normaux cachés et le nom de tous les fichiers cachés de type-répertoire (sans leurs contenus cette fois !)
-</​note>​+
  
 === Vivre dangereusement supprimer tous les fichiers cachés d'un répertoire ! === === Vivre dangereusement supprimer tous les fichiers cachés d'un répertoire ! ===
Ligne 477: Ligne 546:
 C'est un " OU " logique qui apparaît dans deux cas :\\  C'est un " OU " logique qui apparaît dans deux cas :\\ 
 1) avec ;; dans le contexte de la commande "​case"​ ;\\  1) avec ;; dans le contexte de la commande "​case"​ ;\\ 
-<​code>​+<​code ​bash>
 case $variable-name in case $variable-name in
    ​pattern1|pattern2|pattern3    ​pattern1|pattern2|pattern3
Ligne 492: Ligne 561:
  
     * Il signifie la aussi " OU "​\\ ​     * Il signifie la aussi " OU "​\\ ​
-Par exemple : <​code>​ls ~/​Test/​!(*jpg|*bmp)</​code>​+Par exemple : <​code ​user>ls ~/​Test/​!(*jpg|*bmp)</​code>​
  
   * Deuxièmement,​ on retrouve la paire de parenthèses dans le contexte de la commande "​function"​.   * Deuxièmement,​ on retrouve la paire de parenthèses dans le contexte de la commande "​function"​.
-<​code>​+<​code ​bash>
 name (){ name (){
 commands commands
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