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