Linux - LPI 101
Download
Report
Transcript Linux - LPI 101
Unix et Linux
Linux écrit de A à Z par Linus Torvalds
Portables, muti-user, multi-tâche
Indépendant du matériel
Partage des ressources
Ligne de commande
GUI
Linux = Posix
Conforme standard API (BSD, SVR4)
Spécifications POSIX (Portable Operating System Interface)
Publié par l’IEEE et l’Open Group
Garantit la portabilité du code source
LPI 101 : GNU & Commandes UNIX
Historique de Unix
1969 Développé par BELL
Simple et élégant
Ecrit en language de haut niveau
Autorise l’utilisation du code
1970 AT&T libère le code pour les
universités et les administrations
1991 Linus Torvalds présente LINUX
LPI 101 : GNU & Commandes UNIX
Le SHELL
Interpréteur de commande
Prompt
Redirections I/O
Execute des commandes, des scripts
Shells courants :
sh : Bourne Shell (globbing)
sch : Berkley Shell
ksh : shell Korn
tcsh : clone de Berkley
bash : Bourne Again Shell (standard Linux)
.bashrc, .bash_profile, .bash_logout
LPI 101 : GNU & Commandes UNIX
Ligne de commande
pwd
ls –ld; ls –l –d; ls –d –l
rm –r /tmp/toto
find . –name *.[ch] –print
date ‘’+day is %a’’
echo my home directory is : $HOME
echo I use the $SHELL shell
type kill
LPI 101 : GNU & Commandes UNIX
/bin/bash
3 situations possibles
shell de login
1.
2.
3.
shell interactifs, terminal
Lit le fichier définit par $BASH_ENV
Forcer l’initialisation de bash
Etc/bash.bashrc, $HOME/.bashrc
Shell non interactif : sh textfile.sh
/etc/profile : initialisation par defaut
$HOME/.bash_profile, $HOME/.bash_login,
$HOME/.profile
/etc/.bash_logout, $HOME/.bash_logout
-i pour interactif, -l pour shell de login
Historique des commandes dans .bash_history
LPI 101 : GNU & Commandes UNIX
Recouvrement de /bin/bash
Programme exécuté = processus
Fin de processus = retour au prompte
Execution d’un programme en arrière-
plan : myscript &
Remplacement du processus bash
exec [program]
exec
login4
LPI 101 : GNU & Commandes UNIX
Log In et Log Out
Log In = 1ère session d’accès Linux
login ID, password
login ID root = superutilisateur
Variable d’environnement
$HOME, $SHELL, $PATH, …
/etc/login.defs
Log Out
exit ou logout
LPI 101 : GNU & Commandes UNIX
Mot de passe
passwd [options]
-l : bloque le compte
-g [| r] : utilisé pour les groupes.
-g
: définit le mot de passe
-r : supprime le mot de passe
-x | n: nombre maximum et minimum de
jours de validité
-u:débloquer un compte
LPI 101 : GNU & Commandes UNIX
Informations utilisateurs
/etc/passwd
1 ligne par utilisateur
root:x:0:0:/root:/bin/bash
bin:x:1:1:bin:/in:/bin/bash
pat:x:500:100:Patrick Test:/home/pat:/bin/bash
/etc/shadow
root:IMXfgwecvGh:11996:0:10000::::
bin:!*:8902:0:10000::::
pat:GiOmG.IuTY:11996:0:99999:7:::
LPI 101 : GNU & Commandes UNIX
Information sur les groupes
/etc/group
1 ligne par groupe utilisateur
root:x:0:root
bin:x:1:root,bin,daemon
video:x:33:pat
/etc/gshadow
mot de passe encryptés
root:*:root:root
video:*:root:root,pat
LPI 101 : GNU & Commandes UNIX
Les page de manuel (MAN)
man mkdir
man cal
Recherche de mot clé
man –k compress
apropos compress
Emplacement avec $MANPATH
echo $MANPATH
/usr/local/man:/usr/share/man:/usr/X11R6/man
Sans $MANPATH dans /etc/man.config
LPI 101 : GNU & Commandes UNIX
Les variables Shell
Visible avec ‘’set’’
Déclaration
VARNAME=SOMETHING
Suppression
unset VARNAME
Rendre visible pour tout les Shell
export VARNAME, export VARNAME=SOMETHING
Environnement spécifique à un script
env VARNAME= OTHERVAR=SOMETHING script_to_run.sh
LPI 101 : GNU & Commandes UNIX
Concaténer les fichiers
cat [options] [files…]
tac [options] [files…] (ordre inverse)
-s : affiche une ligne blanche max
-n : numérote les lignes en sortie
cat fichier
cat chapitre*
cat –n –s file
LPI 101 : GNU & Commandes UNIX
Début et fin de fichier
head [options] [files]
tail [options] [files]
-n: nombre de ligne à afficher
-c: nombre d’octet à afficher
-f: append output (tail)
-s #: itération des données toute les #
sec (tail)
LPI 101 : GNU & Commandes UNIX
Numérotation des lignes
nl [options] [files...]
Options
-i #:incrémente les numéro de ligne de #
-b:notifie le style
a:
numérote toutes les lignes
t: numérote que les lignes pleines
-n:notifie le format de numération
rz
:justifié à droite
ln : justifié à gauche
LPI 101 : GNU & Commandes UNIX
Compter les caractères
wc [options] [files...]
Options :
-c : affiche la taille des octets
-m : affiche le nombre de caractere
-w : affiche le nombre de mots
-l : affiche le numéro de ligne
-L : affiche la taille de la ligne la plus longue
LPI 101 : GNU & Commandes UNIX
Découper les champs des fichiers
cut [options] [files...]
-b # : supprime l’octet de la position #
-f # : supprime le champ n° #
Exemple :
cut –b 4,7 #extrait le 4 et le 7ème byte de
#chaque ligne
Cut –f 1,3 –d: /etc/passwd
# extrait username et ID de chq ligne
LPI 101 : GNU & Commandes UNIX
Conversion de caractères
tr [options] SET1 SET2
-d : supprime le caractère dans SET1
-s : remplace la séquence SET1 par autre
Remplacement TAB par SPACE
expand file
Remplacement SPACE par TAB
unexpand file
LPI 101 : GNU & Commandes UNIX
Manipulation des lignes
paste [options] [files…]
Colle les lignes de fichiers
Options
-d #:délimiteur
-s: serial: colle les fichiers un par un
join file1 file2
Fusionne les lignes
uniq file1 file2
Supprime les lignes dupliquées
-d : imprime que les lignes dupliquées
-u : imprime seulement les lignes uniques
LPI 101 : GNU & Commandes UNIX
Diviser des fichiers
split [options] file
Options
-l # : pour diviser toute les # lignes
-b #: pour diviser en octets
b pour 512 octets
k pour 1 K octets
m pour 1 M octets
Exemples :
split –l 25 file
split –b 2b file
LPI 101 : GNU & Commandes UNIX
Formatage pour l’impression
fmt [options] [files…]
-w # : format cf largeur max des lignes
Exemple :
fmt
–w 35 file
Formatage pour l’impression
pr [options] [files…]
-d
: double espace
Exemple :
pr –d file
LPI 101 : GNU & Commandes UNIX
Trier des lignes d’un fichier
sort [options] [files…]
Options
-r : inversé
-f : sans casse
-n : format numérique
-o: file: dirige les sorite vers un fichier
-u: pas d’enregistrements dupliqués
-t; : utilise ‘’;’’ comme délimiteur
LPI 101 : GNU & Commandes UNIX
Affichage des fichiers binaires
od [options] files
Options
-c : chaque caractère est un octet
-x : 2-octet en hex
-d : 2 octet en décimal
-X : 4 octet en hex
-D : 4 octet en décimal
LPI 101 : GNU & Commandes UNIX
QUIZ - EXERCICES
LPI 101 : GNU & Commandes UNIX
Gestion de base des fichiers
ls [options] [filenames]
-l: affiche au format long
-F:ajoute un caractère de signalisation
-a:tous les fichiers, même cachés
-R:liste les sous-répertoires récursivement
-d:pour ne pas descendre dans les sousrépertoire
LPI 101 : GNU & Commandes UNIX
Contenu et emplacement
Distinction des fichiers cf premier octet
file
file /etc .bashrc /bin/ls /dev/cdrom
Commande shell intégrée ou programme
type cp cd ls which type
which cut
LPI 101 : GNU & Commandes UNIX
whereis et which
whereis [options]
Permet de trouver l’emplacement
-b :recherche que les binaires
-m:recherche uniquement les manuels
-s:recherche uniquement les sources
which
Pour trouver un fichier défini par PATH
Which –a ls
-a : permet de chercher toute possibilité du path
LPI 101 : GNU & Commandes UNIX
Créer et supprimer des rép.
mkdir [options] dir
-m: mode: Met en place les permissions
Par
défaut utilise le umask
-p: parent : crée si nécess. un rép parent
rmdir [options] dir
-p : parent : efface les parents vide
LPI 101 : GNU & Commandes UNIX
Copie de fichier et répertoire
cp [options] source target
-i : interractif: demande l’autoris. d’écraser
-r : récursif : copie les sous-rép et leur contenu
-R : pour les fichiers spéciaux
-f : force : ne demande ps de confirmation avent
d’écraser.
Comportement par défaut est d’écraser
cp *.[a-z] /tmp
cp –ri bin/* /bin
LPI 101 : GNU & Commandes UNIX
Suppression
rm [options] files
-i : interactive : affiche systématiquement
un prompt avant chaque suppression
-f : force : Ne demande pas de
confirmation
-r : récursif : Efface les sous-répertoires et
leur contenu
rm *.[a-z]
rm –rfi /bin
LPI 101 : GNU & Commandes UNIX
Créer et utiliser les noms de
fichiers
Redirection I/O
cat chapter1 chapter2 > book
vi mynewfile
cp file newfile
touch memo
Caractéristiques
Longueur max 255 caractères par nom
Sensible à la casse
Tous les caractères sauf ’’/’’
LPI 101 : GNU & Commandes UNIX
Caractère à éviter
Les traits d’union en début de nom
Les espaces
touch more drink
touch ‘’more drink’’
Tous les autres caractères spéciaux
!@#%^&*():;’’{}|\<>?~’
touch memo*
touch ‘’*’’
LPI 101 : GNU & Commandes UNIX
Déplacer et renommer
mv [options] source target
-i : interractive : affiche un prompt à
chaque action
-f : force : force pour écraser
-v : verbose
mv *.[a-z] /tmp
mv –fi bin/* /bin
LPI 101 : GNU & Commandes UNIX
Wildcards (file globbing &
Joker)
Trouver des fichiers dont on ne se
souvient plus
Trouver des fichiers avec des points
communs
Travailler des groupes de fichiers
Caractères wildcards
? * [ ] ~ !
echo all files *
LPI 101 : GNU & Commandes UNIX
Caractères spéciaux
?
correspond à n'importe quel caractère.
* n'importe quel caractère (zéro ou x fois)
[abcfghz] un caractère parmi le jeu indiqué
[a-z] Un caractère dans une série
[!x-z] Pas dans cette série
~ Répertoire personnel
~utilisateur Répertoire personnel de
"utilisateur"
LPI 101 : GNU & Commandes UNIX
Caractères spéciaux
Exemples :
? Seulement un caractère
[aA]??? 4 caractères, en commençant par a ou A.
~toto chemin du répertoire personnel de toto
[!0-9]* Toute chaîne commencsnt pas par un chiffre.
Que font ces commandes
ls [a-z][A-Z]??.[uk]
ls big*
ls a???a
ls ??*
LPI 101 : GNU & Commandes UNIX
Mécanismes de citation
Les « quote » évite l’interprètation des
jokers par le shell
‘xxxx’
Tout est interprété littéralement
‘’xxxx’’
Les car. # \ ! sont interprétés
Le backslash traite les car. qui suivent
littéralement
LPI 101 : GNU & Commandes UNIX
Jokers dans le shell
Une commande shell peut-être simple
ou complexe
ls -l [fF]*
ls *.c | more
ls -l [a-s]* | mail `users`
Le shell interprète tous les jokers
Pour éviter l’interprétation des jokers il
faut utiliser les mécanismes de citation
LPI 101 : GNU & Commandes UNIX
Les commentaires
Utiliser le caractère #
Un espace doit immédiatement précéder #.
echo $HOME # Print my Home directory
echo "### PASSED ###" # Only this part is a comment
echo The key h#, not g was pressed.
LPI 101 : GNU & Commandes UNIX
Lister des fichiers dans un
sous-répertoire
find [subtrees] [conditions] [actions]
Conditions
-name
-type c:
-size [+-]
-user [name]
-mtime [+-]
-perm nnn
-inum N:
LPI 101 : GNU & Commandes UNIX
EXEMPLE - QUIZ EXERCICES
LPI 101 : GNU & Commandes UNIX
I/O standards
Chaque commande possède
Valeur d’entrée standard, &0
Clavier
par défaut
Valeur de sortie standard, &1
Terminal
Valeur de sortie des erreurs, &2
Terminal
par défaut
par défaut
Chaque canal peut être rediriger
[n]<
file
[n]>> file
[n]> file
<<word
LPI 101 : GNU & Commandes UNIX
Redirections (pipes)
Permet plusieurs commandes
command1 | command2
Redirige la sotie standard de command1 vers
l’entrée standard de command2
On ne peut pas faire de pipe sur erreur
Exemples :
ls -l /dev | more
ls -l /etc/*.conf | grep user | grep 500
ls -l /bin | mail `users`
Tee dupliquer les sorties
ls -l /dev | tee file
ls -l /etc | tee -a file # ajoute au fichier
LPI 101 : GNU & Commandes UNIX
Construction des arguments
xargs construit une liste d’arguments
xargs [options] [command]
-p : propose un prompt avant exécution
Exemple
ls f* | xargs cat # Print to standard output the
content of all files starting with f.
find ~ -name 'proj1*' print | xargs cat
#Search in the Home directory for files starting with
proj1 and send it to the standard input of cat.
LPI 101 : GNU & Commandes UNIX
EXEMPLE - QUIZ EXERCICES
LPI 101 : GNU & Commandes UNIX
Gestion des processus
Chaque processus possède
Process ID
Process ID parent
Un répertoire courant PWD
Table de descripteur de fichier
Un programme exécuté
Des variables d’environnement héritée du
parent
Stdin, stdout, stderr
LPI 101 : GNU & Commandes UNIX
Gérer des processus
Affichage des processus
ps –l
Affiche tous les processus de votre session
ps –Al
Affiche tous les processus du système
Gestion des processus en temps réel
Top
N : classe les tâches par pid
A : classe les tâches dans l’ordre
P : classe par utilisation CPU
M : classe par rapport à la mémoire
k : pour tuer un processus
LPI 101 : GNU & Commandes UNIX
Envoie de signal au processus
ps affiche les processus
SIGSTOP
arrête un processus
SIGCONT
redémarre un processus
SIGKILL
tue un processus
kill envoie un signal au processus
kill -SIGKILL [pid]
kill -63 [pid]
kill -l
LPI 101 : GNU & Commandes UNIX
Contrôle des tâches
Commandes pour manipuler les tâches
jobs # List all the active jobs
bg %job # Resume job in background
fg %job # Resume job in foreground
kill %job # Kill background job
SIGHUP
Fin de processus de session bash
nohup
évite la fin de processus en fin de bash
nohup mydeamon
LPI 101 : GNU & Commandes UNIX
Mémoire virtuelle
Information partition swap
swapon [options]
swapon
–s #affiche la partition acive
vmstat
information
vmstat
sur la mémoire virtuelle
–n 1
LPI 101 : GNU & Commandes UNIX
EXEMPLE - QUIZ EXERCICES
LPI 101 : GNU & Commandes UNIX
Priorité d’exécution
nice; ps; renice; top
nice
démarre une commande avec une priorité donnée
nice -n +2 [command]
nice -n -19 [command]
valeurs -20 : correspond a une haute priorité
Modifiable seulement par le superutilisateur
valeurs +19 : basse priorité.
valeur par défaut = 0. Seul le superutilisateur root peut donner
une priorité négative (haute priorité). To modify the priority of a
running program, use renice.
renice
Modifie la priorité d’une tâche active
renice +1 -u root # Change la priorité de tous les processes
root
renice +2 -p 193 # Change la priorité PID 193
LPI 101 : GNU & Commandes UNIX
Recherche de motifs (pattern)
Deux types de recherche
Les caractères jokers
Appliqués
à la recherche dans dossiers et
sous-dossiers
Les expressions régulières (regexp)
Application
des caractère jokers dans des
expressions régulières
grep; egrep, vi, more, sed, perl
LPI 101 : GNU & Commandes UNIX
Modèle de recherche
1 caractère quelconque
.
Ab.a
Abla; Abca;…
ensemble de caractère
[]
Ab[sd]a
Absa; Abda
gamme de caractère
[-]
Ab[a-z]a
Abaa; Abba;…
n'est pas dans l'ensemble
[^]
Ab[^a-z]a
Ab6a; AbZa;…
0 et plus
*
Ab*a
Aa;Aba;Abbba;…
début de ligne
^
^Aba
ligne commence par Aba
fin de ligne
$
Aba$
Ligne termine par Aba
caract. littéraux
\
Aba\$
Aba$
LPI 101 : GNU & Commandes UNIX
Combinaisons limitées
.*
Ab.*a
Abrahama; Abaa;…
[ ]*
th[aersti]*
there; this;…
gamme multiple
[--]
Ab[0-2a-c]a
Ab0a; Abca;…
Recherche de \
\\
\\[a-zA-Z]*
\Beethoven
N'importe quelle chaine
Chaine à partir de …
LPI 101 : GNU & Commandes UNIX
Modification des motifs
m caractères
\{m\}
b[0-9]\{3\}
b911
m ou plus
\{m,\}
b[0-9]\{2,\}
b52
\{m,n\}
b[0-9\{2,4\}
b1234
Recherche de \
\\
\\[a-zA-Z]*
\Beethoven
Début de mot
\<
\<wh
where
Fin de mot
\>
[0-9]\>
bin1
Entre m et n caractères
LPI 101 : GNU & Commandes UNIX
Grep
(g/regexp/p)
Permet de trouver un texte précis dans
un fichier
grep [options] [string] [files]
Options
-i : ignore la casse
-l : Liste les noms de fichiers
-c : affiche uniquement le nombre de ligne
-n : affiche aussi le n° de ligne
-v : ne doit pas correspondre
LPI 101 : GNU & Commandes UNIX
sed
Lit les lignes d’un fichier une par une
Applique les commandes d’édition
Renvoie les lignes sur la sortie standard
Ne modifie pas le fichier traité
sed [adress1][,adress2][!]command [options] [files…]
Substitution d’une chaine avec
s
Substitution d’un caractère avec y
LPI 101 : GNU & Commandes UNIX
EXEMPLE - QUIZ EXERCICES
LPI 101 : GNU & Commandes UNIX
Edition de fichier avec vi
Deux modes
Commande
Interprétation
des touches
Passage avec les touches I,i,a,A,o,O
Edition
Insertion
dans le fichier en cours
Passage avec « esc »
Fichier de configuration .exrc
Dans le dossier user/home
LPI 101 : GNU & Commandes UNIX
EXEMPLE - QUIZ EXERCICES
LPI 101 : GNU & Commandes UNIX