0% ont trouvé ce document utile (0 vote)
6 vues62 pages

Commandes de base GNU et Unix

Le document traite des commandes GNU et Unix, en se concentrant sur l'utilisation du shell bash pour travailler en ligne de commande, contrôler des flux de texte avec des filtres, et gérer des fichiers. Il couvre également des concepts tels que les tubes, les redirections, et la gestion des processus. Les candidats doivent acquérir des compétences pratiques à travers divers utilitaires et commandes pour manipuler efficacement les fichiers et les données textuelles.

Transféré par

Rayen Mhamdi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues62 pages

Commandes de base GNU et Unix

Le document traite des commandes GNU et Unix, en se concentrant sur l'utilisation du shell bash pour travailler en ligne de commande, contrôler des flux de texte avec des filtres, et gérer des fichiers. Il couvre également des concepts tels que les tubes, les redirections, et la gestion des processus. Les candidats doivent acquérir des compétences pratiques à travers divers utilitaires et commandes pour manipuler efficacement les fichiers et les données textuelles.

Transféré par

Rayen Mhamdi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Sujet 103 : Commandes GNU et Unix

§ 103.1 Travailler en ligne de commande (Weight 4)


§ 103.2 Contrôler des flux de texte à l'aide des filtres (Weight 3)
§ 103.3 Effectuer la gestion de base des fichiers (Weight 4)
§ 103.4 Utilisation des flux, des tubes (pipes) et des redirections (Weight 5)
§ 103.5 Création, surveillance et destruction de processus (Weight 5)
§ 103.6 Modifier la priorité d'exécution d'un processus (Weight 3)
§ 103.7 Recherche sur des fichiers texte avec des expressions régulières
(Weight 2)
§ 103.8 Édition de fichiers texte avec "vi" (Weight 3)
[Link] 1
Travailler en ligne de commande
[Link] 2
Travail en ligne de commande
§ Description : Les candidats doivent être capables de travailler en ligne de commande.
l'utilisation du shell bash sera traité dans cet objectif.
§ Termes, fichiers et utilitaires utilisés :
● bash
● echo
● env
● exec
● export
● pwd
● set
● unset
● uname
● history [Link] 3
bash
§ Bourne-again shell compatible avec sh, avec des fonctionnalités de
ksh, csh
§ un shell est un programme qui exécute des programmes et permet
aussi de construire d'autres programmes appelés scripts.
§ prompts
salah@Bagdad:~> echo $PS1
\u@\h:\w>
salah@Bagdad:~> echo $PS2
>
[Link] 4
Séquences de commandes
§ Exécuter séquentiellement des commandes l'une après l'autre :
– cmd1 ; cmd2
§ Exécuter cmd2 si et seulement si cmd1 s'est exécutée sans erreur
– cmd1 && cmd2
§ Exécuter cmd2 si et seulement si cmd1 a renvoyé une erreur :
– cmd1 || cmd2
§ & en fin de commande permet de lancer cette commande en tâche
de fond (background)
– firefox &
[Link] 5
Variables
§ Variables d'environnement : connues de toutes les commandes les
commandes lancées depuis le shell.
salah@Bagdad:~> PS1="[\t][\u]\$"
[10:12:32][salah]$
§ variable simple :
$ formation="lpi"
$ echo $formation
lpi
§ Rendre la variable visible pour les shells fils :
$ export formation
§ Afficher toutes les variables d'environnements : $ env
§ Afficher les variables simples et les variables d'environnement : $ set
§ Effacer une variable : $ unset formation
[Link] 6
Quelques variables d'environnement bash
Variable Fonction
USER le nom de l'utilisateur courant
UID UID de l'utilisateur courant
HOME Le repertoire de connexion de l'utilisateur courant
? Le code d'erreur de la dernière commande
# Le nombre de paramètres à l'appel du script
1,2.... les paramètres du script
0 le nom du script
[Link] 7
quotes et variables
§ Quote double : Permet la substitution des variables
$ echo "mon repertoire est $HOME"
mon repertoire de connexion est /home/salah
§ Quote simple : Désactive l'interprétation des caractères
spéciaux
$ echo 'mon repertoire de connexion est $HOME'
mon repertoire est $HOME
§ Quotes inversées : Permet la substitution des commandes
$ echo "mon repertoire courant est `pwd`"
mon repertoire courant est /tmp
§ [Link] 8
Raccourcies claviers
§ history
§ HISTSIZE
§ HISTFILE
[Link] 9
Raccourcies claviers, commandes Emacs
[Link] 10
Contrôler des flux de texte à l'aide des filtres
[Link] 11
Traitement de flux de type texte par des filtres
§ Description : Les candidats doivent être capables d'appliquer des filtres à un flux de type
texte.
§ Termes, fichiers et utilitaires utilisés :
● cat pr
sed
● cut sort
● expand split
tail
● fmt tr
● head unexpand
uniq
● od wc
● join
● nl
● paste

[Link] 12
Filtres (1)
cat, less, more sort
Afficher le contenu Trier les lignes
cut
Extraire des champs tail / head
Afficher l'enête / enqueue
Fichier Texte
nl
Numéroter les lignes
wc
Afficher le nombre d'octets, de mots et de lignes
[Link] 13
cat et tac
§ Affiche le contenu d'un fichier.
§ Exemple fichier1
1 un
2 deux
3 trois
$ cat fichier1
$ tac fichier1
[Link] 14
head et tail
§ head : Afficher le début d'un fichier (par défaut les 10 premiers
lignes)
§ Exemple
$ head -3 /var/log/messages
§ tail : Afficher la dernière partie d'un fichier (par défaut les 10
derniers lignes)
§ Exemples :
$ tail -c20 /etc/passwd
$ tail -f /var/log/messages
[Link] 15
cut
§ Permet d'afficher certains champs d'un fichier
donné
§ Exemple :
$ cut -d: -f1 /etc/passwd
[Link] 16
nl
§ Numéroter les lignes d'un fichier.
§ Exemples :
$ nl /etc/passwd
$ ls | nl -s')'
[Link] 17
sort
§ Trier les lignes d'un fichier texte
§ options
• -d : Trier dans l'ordre alphabétique
• -n : Trier dans l'ordre numérique
• -r : Inverser l'ordre
§ Exemples :
$ sort /etc/passwd
– trier selon le champs RSS (resident size)
$ ps aux | sort -k 6 -n
[Link] 18
wc
§ Afficher le nombre d'octets, de mots et de lignes d'un fichier.
§ Options
• -c : Afficher uniquement le nombre d'octets
• -m : Afficher uniquement le nombre de caractères
• -l : Afficher uniquement le nombre de lignes
• -w : Affiche uniquement le nombre de mots
§ Exemples :
$ wc -l fich
$ wc -w fich
$wc fich
[Link] 19
Filtres (2)
paste join
Regrouper les lignes Jointure des lignes
Fichier Texte
split
Découper un fichier
[Link] 20
paste
§ Regrouper les lignes de différents fichiers.
§ Exemple :
– file1
1
2
3
– file2
A
B
C
$ paste file1 file2
1 A
2 B
3 C
[Link] 21
paste (suite)
$ paste -d'@' file1 file2
1@A
2@B
3@C
$ paste -s file1 file2
1 2 3
A B C
[Link] 22
join
§ Fusionner les lignes de deux fichiers ayant un champ commun.
§ Exemple :
– file1 :
1 one
2 two
3 three
– file2 :
1 11
2 22
3 33
– $ join -j 1 file1 file2
1 one 11
2 two 22
[Link] 23
3 three 33
split
§ Découper un fichier en différentes partie.
§ Exemple1 :
– file1 :
1 one
2 two
3 three
4 four
5 five
6 six
$ split -2 file1 splitout_
==> créer trois fichiers splitout_aa, splitout_ab, et splitout_ac
§ Exemple 2 : Découper un fichier en plusieurs de taille maximale d'une
disquette :
$ split -b 1.4m grosfichier petitfichier_
[Link] 24
Filtres (3)
fmt expand (vs unexpand)
Formater les paragraphes Convertir les tabulations en espaces
od
Afficher en format octal Fichier Texte
tr pr
Convertir des caractères ●Mise en forme pour l'impression.
[Link] 25
expand
§ Convertir les tabulations d'un fichier en espaces.
§ unexpand fait le processus inverse.
§ Exemple : convertir les tabulations en 2 espaces:
$ expand -t 2 monfichier
[Link] 26
fmt
§ Formater les paragraphes dans un fichier.
§ options :
• -u : Espacement uniforme. Réduire les espacements entre les
mots à une espace
• -w : Remplir les lignes jusqu'à la largeur mentionnée (par
défaut 75 colonnes)
§ Exemple :
$ fmt -w 80 [Link] > [Link]
[Link] 27
od
§ Afficher le contenu d'un fichier en octal ou sous d'autres formats (decimal,
hexadecimal, ASCII)
§ option :
-t type Sélectionner le format d'affichage des résultats selon le type :
• a : caractères littéraux
• c : caractères ASCII ou séquences d'échappement préfixées par
BackSlash
• o : valeurs octales
• u : valeurs décimales non signées
• x : valeurs hexadécimales
§ Exemples :
$ od -t a file1
$od -t c file1
$ od -t x1 file1
[Link] 28
pr
§ Mettre en forme des fichiers de texte pour l'impression.
§ Quelques options :
-wN : Indique le nombre de caractères par lignes (72)
-lN : Indique le nombre de lignes par page (66).
-hTexte : le Texte doit remplacer le nom de fichier dans l'en-tête
de chaque page.
-n : numérote les ligne
-m : imprimer tous les fichiers en parallèle un par colonne
§ Exemples
$ pr -hLPI [Link] | lp
$ pr -m [Link] [Link] | lp
[Link] 29
tr
§ Pour effectuer des conversions de caractères (exp minuscule/majuscule, ...)
§ Exemples :
– $ cat file1 | tr 'a-z' 'A-Z' OU $ cat file1 | tr '[:lower:]' '[:upper:]'
– la suppression des accents d'un texte :
– cat file1 | tr 'àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ' 'aceeeeiioouuACEEEEIIOOUU'
– Convertir les séquences de sauts de lignes en un seul saut de ligne
(ceci supprime les lignes blanches) :
• cat file1 | tr -s '\n'
[Link] 30
Gestion de fichiers
[Link] 31
Effectuer une gestion de base sur les fichiers.
§ Description : Les candidats doivent être capables d'utiliser les commandes Linux de
base pour gérer les fichiers et les répertoires.
§ Termes, fichiers et utilitaires utilisés :
● cp tar
cpio
● find dd
● mkdir file
gzip
● mv gunzip
● ls bzip2
● rm
● rmdir
● touch

[Link] 32
Inodes
§ Associer à chaque objet du système de fichier un inode (The
identification information for filesystem object)
§ Un inode regroupe des informations sur l'objet du système de
fichiers : localisation, date de modification, paramètres de
sécurité....
§ Chaque système de fichier ext2 est crée avec un nombre fini
d'inodes calculé selon la taille du système de fichier et d'autres
options passées à la commande mke2fs.
§ plusieurs objets du système de fichiers peuvent partager le
même inode : lien physique
[Link] 33
Commandes de base
§ pwd : Afficher le chemin absolu du répertoire courant
§ cd : changer de répertoire
§ ls : lister le contenu d'un répertoire
§ mkdir : créer un nouveau répertoire
§ rmdir : supprimer un répertoire
§ touch : changer les informations de date et de d'heure d'un fichier; créer
un fichier vide lorsque le fichier passé en argument n'existe pas.
§ cp :copier un fichier
§ mv : Déplacer ou renommer un fichier
§ rm : supprimer un fichier.
[Link] 34
Utiliser les wildcards
§ Besoin de manipuler plusieurs fichiers à la fois,
§ Par exemple : cas d'un développement en C et pour être sure de recompiler tous
les fichiers sources.
§
Wildcards Descriptions Exemples
* désigne 0 ou plusieurs caractères x*
? Désigne exactement un seul caractère x? x??
[caractères] Désigne un seul caractère de la liste [caractères] x[yz]
[!caractères] Désigne un seul caractère en dehors de la liste [caractères] x[!yz]
[a-z] Désigne un seul caractère appartenant à l'intervalle de x[0-9] x[a-zA-Z]
caractères défini entre [ ]
Désigne un seul caractère n'appartenant pas à l'intervalle de
[!a-z]
caractères défini entre [ ]
{frag1,frag2,..} brase expansion file_{one,two,three}
[Link] 35
Tubes et les redirections
[Link] 36
Utilisation des flux, des tubes (pipes) et des redirections
§ Description : Les candidats doivent être capables de rediriger des flux et de les connecter
dans le but de traiter efficacement ces données textuelles. Les tâches à effectuer
comprennent les redirections de l'entrée standard, de la sortie standard et de la sortie
standard des erreurs, connecter la sortie d'une commande à l'entrée d'une autre, utiliser la
sortie d'une commande comme paramètre pour une autre commande et envoyer le résultat
en même temps sur la sortie standard et dans un fichier.
§ Termes, fichiers et utilitaires utilisés :
● tee
● xargs
[Link] 37
Les tubes
§ Les tubes Unix permettent de combiner des commandes en
les utilisant comme des briques indépendamment de leur
provenance.
§ Trois types d'entrées / sorties
– Entrée standard (stdin) : Descripteur 0
– Sortie standard (stdout) : Descripteur 1
– Sortie d'erreur standard (stderr) : Descripteur 2
[Link] 38
Redirection
Fonction de redirection Syntaxe
Envoyer stdout vers file $ cmd > file ou $ cmd 1> file
Envoyer stderr vers file $ cmd 2> file
Envoyer stdout et stderr vers file $ cmd > file 2>&1
Envoyer stdout vers file1 et stderr vers file 2 $ cmd > file1 2>file2
Recevoir stdin à partie de file $cmd < file
Ajouter stdout à la fin du file $ cmd >> file ou $ cmd 1>> file
Envoyer stderr à la fin du file $ cmd 2>> file
Envoyer stdout et stderr à la fin du file $ cmd >> file 2>&1
[Link] 39
Les tubes (pipe)
§ La sortie d'une commande devient l'entrée d'une autre.
§ Tubes et redirections peuvent être combinées sur une ligne de
commande selon les résultats qu'on veut obtenir.
§ Pipe stdout de cmd1 vers cmd2 :
$ cmd1 | cmd2
§ Pipe stdout et stderr de cmd1 vers cmd2.
$ cmd1 2>&1 | cmd2
§ Afficher les 6 premières lignes du fichier /etc/passwd une fois
ce fichier trié par ordre alphabétique
$ sort /etc/passwd | head -6
§ La commande tee permet de dupliquer le flux de données en
sortie : $ sort /etc/passwd | tee res1 | head -6
[Link] 40
La commande xargs
– cmd1 | xargs cmd2
• Permet de passer en arguments de la commande cmd2, le résultat de
la commande cmd1
Exemples :
$ find /tmp -name core -type f -print | xargs /bin/rm -f
$ find /etc/ -name *.conf | xargs grep 'Linux'
[Link] 41
Les Processus
[Link] 42
Création, surveillance et destruction de processus
§ Description :Les candidats doivent être capables d'effectuer une gestion de base sur les
processus.
§ Termes, fichiers et utilitaires utilisés :
● &
● bg
● fg
● jobs
● kill
● nohup
● ps
● top
● free
● uptime
● killall [Link] 43
Processus Unix ?
§ Un programme en cours d'exécution qui utilise les ressources
de la mémoire + processeur.
§ Quelques informations relatives à un processus :
– PID : Process ID
– PPID : Parent Process ID
– User ID (UID) et Group ID (GID) : Ayant lancé le processus
– temps CPU
– tables de référence des fichiers ouverts
[Link] 44
ps
§ Quels sont les processus exécutés par le système
§ Afficher tous les processus du système :
# ps -A ou ps -ef
§ Manipulations
– l'utilisateur salah exécute la commande : $ vi test
– Afficher les processus de l'utilisateur salah
# ps -U salah
– Afficher les utilisateurs qui exécutent la commande vi
# ps -f -C vi
UID PID PPID C STIME TTY TIME CMD
salah 5229 5201 0 18:23 pts/5 00:00:00 vi tets
zied 5278 4370 0 18:31 pts/0 00:00:00 vi test
[Link] 45
§
top
§ Afficher des informations sur l'activité du système en temps réel
§ Quelques options interactives :
– ctrl-L : refresh
– h : help
– n : nombre de processus à afficher
– q : quitter
– r : (renice) changer le priorité d'un processus
[Link] 46
Envoyer un signal à un processus
§ kill [numéro-du-signal] PID
§ Afficher une liste des noms de signaux connu : kill -l
[Link] 47
Envoyer un signal à un processus (suite ...)
§ Envoyer SIGTERM aux processus (PIDs 1000 et 10001
$ kill 1000 1001
$ kill -15 1000 1001
$ kill -SIGTERM 1000 1001
$ kill -TERM 1000 1001
§ relecture des fichier de configurations
kill -HUP `cat /var/run/[Link]`
§ Arrêt forcé !
kill -9 1000 1001 ou bien kill -KILL 1000 1001
§ Afficher les processus qui s'exécutent en arrière plan (bg)
# firefox &
[1] 5788
# jobs
[1]+ Running ./firefox &
[Link] 48
Envoyer un signal à un processus (encore ...)
§ Vous avez oublié de lancer firefox en arrière plan (bg) :
# firefox TSTP (20)
(vous faites ctrt z)
[1]+ Stopped firefox
# bg CONT
[1]+ firefox & (18)
§ Envoyer un signal à des processus indiqués par leurs noms
– killall -HUP httpd
[Link] 49
Modifier la priorité d'un processus
[Link] 50
Modification des priorités des processus
§ Description : Les candidats doivent être capables de gérer les priorités des processus.
§ Termes, fichiers et utilitaires utilisés :
● nice
● ps
● renice
● top
[Link] 51
Priorité des processus
§ top ou bien ps -l
§ le noyau offre + temps CPU pour « hight priority process »
§ Par défaut les processus d'un utilisateur sont créés avec la Nice Number 0.
§ Nice Number positif --> moins de priorité
§ Nice Number négatif --> plus de priorité
§ Nice Number varie de -20 à 19
§ Un utilisateur peut lancer un processus avec un Nice Number positif
§ SEUL root peut lancer un processus avec un Nice Number négatif
[Link] 52
nice et renice
§ Un utilisateur lance cmd avec un Nice Number +5
$nice -5 cmd1
§ Seul root peut lancer des processus avecun Nice Number
négatif
# nice - -10 vi /etc/[Link]
# nice -n -10 vi /etc/[Link]
§ renice : Modifier la priorité d'un processus
#renice -20 501
#renice -10 -u salah -p 501
[Link] 53
Recherche sur des fichiers texte avec
des expressions régulières
[Link] 54
Recherche dans des fichiers texte avec les expressions régulières
§ Description : Les candidats doivent être capables de gérer les priorités des processus.
§ Termes, fichiers et utilitaires utilisés :
● grep
● egrep
● fgrep
● sed
[Link] 55
Objectifs et outils
§ Recherche (texte) sur le contenu des fichiers, selon un modèle (motif) : « les
expressions régulières » regex
§ Une expression régulières (regular expression) est un motif qui permet de décrire
un ensemble de chaînes.
§ Outils : grep, egrep, sed, awk, Perl, java ...
§ grep [options] regex [fichiers]
§ options :
-c : Afficher le nombre de lignes qui satisfait regex, pas les lignes
-h :Ne pas afficher le nom des fichiers dans les résultats lorsque plusieurs fichiers sont
parcourus.
-i : Ignorer les différences majuscules/minuscules dans la recherche.
-n : Ajouter à chaque ligne de sortie un préfixe contenant son numéro dans le fichier
-v : Afficher les lignes qui ne satisfait pas regex
-E : Interpréter regex comme une expression régulière étendu. egrep
[Link] 56
Expression régulière : position
[Link] 57
Expression régulière : groupe de caractères
[Link] 58
Expression régulière : Les modificateurs
[Link] 59
L'éditeur vi
[Link] 60
Édition de fichiers texte avec "vi"
§ Description : Les candidats doivent être capables de gérer les priorités des processus.
§ Termes, fichiers et utilitaires utilisés :
● vi
● /, ?
● h,j,k,l
● i, o, a
● c, d, p, y, dd, yy
● ZZ, :w!, :q!, :e!
[Link] 61
L'éditeur historique du système UNIX
● x : supprimer caractère
● dd : supprimer la ligne
● u : undo
Mode Commande ● ctrl-R : redo
● / : recherche
● n : résultat suivant
i, a esc
Mode Edition
:
● w :enregistrer
● wq : enregistrer et
quitter
Mode Exécution ●
[Link] 62

Vous aimerez peut-être aussi