Retour au masque de création : umask

publicité
Retour au masque de création : umask
Sa valeur donne les droits à la création d'un fichier où d'un
répertoire.
Valeur standard : 022
--> droits 644 pour un fichier (mode 644)
--> droits 755 pour un répertoire (mode 755)
N.B. : il faut les droits d'exécution pour “traverser un
répertoire” et par défaut, un fichier n'est pas exécutable.
Notion de processus
●
●
●
Définition : série d'instructions en exécution ou
en attente de l'UC.
C'est donc un programme en exécution (vu par
l'usager qui lance des commandes).
Une commande peut lancer plusieurs processus.
Hierarchie des processus
Sous Linux/Un*x , la représentation des processus
est hierarchique=> Il existe un mécanisme de
filiation.
On parle de processus père, fils, d'héritage en
général.
Linux/Un*x assigne un numéro unique à tous les
processus actifs pour les différencier et les
contrôler.
Types de Processus
1) Processus système : attaché à aucun terminal, il a pour
propriétaire root--> concerne les processus démons
- répertoire de travail : en général la racine
- il est créé au lancement du système (lors du “boot”)
Le plus important : init (processus n°1) : processus parent
des processus shells créés par les utilisateurs connectés.
--> il recueille les processus orphelins
--> il traite l'élimination des processus zombies
2) Processus utilisateur :
- durée de vie limitée, mais non bornée
- exécution de commandes shell ou de programmes
- les programmes peuvent créér des processus fils par la
fonction fork
Commande permettant d'obtenir des informations sur les
processus en cours : ps
host@machine $: ps aux
N.B. : on peut lancer un processus en “tâche de fond”
--> commande suivie de “&”
Principaux attibuts d'un processus donné :
●
PID : Id du processus lui-même
●
PPID : Id du processus père
●
priorité => commande “nice”
●
UID : Id utilisateur qui a créé le processus
●
●
●
GUID : Id du groupe auquel appartient l'utilisateur qui a
lancé le processus (réél, effectif)
TTY: terminal auquel est attaché le processus
On peut détacher un processus de son “père”: commande
“nohup”
Le Shell
Buts du shell :
- interpréteur de commandes
- langage de programmation
- il sert d'intermédiaire entre l'utilisateur et le noyau
Plusieurs versions de Shell : le “Shell de Bourne”
(appelé Bourne Shell), le Korn Shell, le C_Shell,
le Bourne Again Shell (Bash) = shell étudié en
LO22
Rappel : Cadre de l'UV
●
Introduction : Quels sont les métiers de l'informatique ?
Exemple : site d'offres d'emplois (libre) : fr.lolix.org
●
Qu'utilise-t-on en pratique ?
Perl, C, C++, Python, Java...etc.
●
Conclusion :
Bash = passage obligé permettant d'acquérir des
mécanismes
Le Bash n'est pas beaucoup utilisé en pratique : but
pédagogique d'abord
Principe de fonctionnement du Shell
Ouverture initiale de 3 fichiers standards :
●
entrée standard (stdin, fd=0),par défaut le clavier
●
sortie standard (stdout, fd=1), par défaut l'écran
●
sortie d'erreur standard (stderr, fd=2), par défaut l'écran
aussi.
N.B. : fd signifie file descriptor
Après ouverture de ces fichiers standards :
le shell se comporte comme une boucle infinie :
Début_de_Boucle
- affichage du prompt ($ par exemple) d'attente du
clavier
- lecture d'une ligne
-analyse syntaxique (découpe en mots)
-substitution (caractères spéciaux)
-exécution de la commande
Fin_de_Boucle
Exemple : Exécution de la commande ls -l ~/
- l'utilisateur entre la commande
- le shell reconnaît chaque partie de la commande :
--> nom de la commande : quoi faire
--> [option(s)] : comment le faire
--> [arguments ] sur quoi le faire
Si la commande est correcte, le shell reconnaît les mots, crée un
processus qui exécute la commande avec les paramètres.
quand la commande est terminée, le processus se temrine et
le shell réaffiche l'invite
La sortie de la boucle s'effectue par exit ou par CTRL-D (fin de
l'entrée standard)
Les Métacaractères du shell
●
Métacaractères  Expressions régulières
→ Comprendre caractères “jokers” et “spéciaux”
Ces caractères permettent
- de construire des chaînes de caractères génériques
- de modifier l'interprétation d'une commande
Caractères jokers :
* désigne une chaîne de caractères quelconque
? désigne un (unique) caractère quelconque
[...] désigne les caractères entre crochets, définis
par énumération ou par un intervalle
!
désigne la négation
;
sépare deux commandes sur une même
ligne
'
délimite une chaîne de caractères
contenant des espaces (à l'intérieur, tous les
métacaractères perdent leur signification)
“
délimite une chaîne de caractères contenant des
espaces (à l'intérieur, tous les métacaractères
perdent leur signification, à l'exception des
métacaractères `et $
`
“capture” la sortie standard pour former un
nouvel argument ou une nouvelle commande
\ annihile la signification du métacaractère qui
suit
{ et } permettent de regrouper un ensemble de
commandes et de les exécuter dans le shell
courant
( et ) permettent de regrouper un ensemble de
commandes et de les exécuter dans un shell fils
Exemples :
ls -l ./f*
ls -l /dev/[a-b]*
ls .[jpg]*
cp *.c backup
ls ~/[a-z][0-9].???
kill `pidof gphoto`
echo “je suis sous ”`pwd`
echo “il y a”`who | wc -l`utilisateurs connectés
ls -li [gh]*.* | cat -n | head -3 | tail -1
Téléchargement