Upload
fabrice-sarrazin
View
111
Download
0
Embed Size (px)
Citation preview
Les commandes Unix
Connexion sous Unix
Login : nom– Entrer un nom permettant la connexion
Password : xxxxx– Entrer le mot de passe
CTRL d ou logout permet de sortir passwd : permet de modifier le mot de
passe
Informations générales
cal mois année : liste le calendrier date : liste la date hostname : liste le nom de la machine banner arg : affiche arg en grosses lettres whereis cmd : localisation de la commande who : liste le nom des utilisateurs connectés
sur le système
Informations générales
whoami : liste le nom de l’utilisateur who am i : liste le nom et les info relatives à
l’utilisateur echo arg : affiche arg man cmd : affiche les informations concernant
la commande cmd
Chemins d’accés aux fichier et répertoires
Chemin absolu – Part de la racine (/) jusqu’au répertoire ou
au fichier/IUP/IUP2/public/SE
– Commandes• pwd : liste le chemin absolu • cd : affecte le répertoire courant à celui de
l’utilisateur• cd path : affecte le répertoire courant à path.
Chemins d’accés aux fichier et répertoires Chemin relatif
– Défini à partir du répertoire courant– Le répertoire « . »– Le répertoire « .. »– Remonter d’une branche : cd ..
Contenu des répertoires
ls – liste les noms des fichiers du répertoire courant
ls –a – les fichiers précédés de « . » en plus
lsf – les noms absolus des fichiers
ls –l – liste les noms des fichiers et leurs caractéristiques
Caractéristiques d’un fichier
Type et autorisation de lecture, écriture et exécution pour
• L’utilisateur• Le groupe • Les autres• Exemple : - rwx rw- ---
Nombre de liens du fichier Propriétaire, groupe Taille, date d’accés Nom du fichier
Contenu d’un fichier
Un fichier est caractérisé par un nom. Un même fichier peut avoir plusieurs noms
(ln) Commandes
– cat fich• liste le contenu de fich
– more fich • liste par page
– lp fich • imprime
Manipulations sur les fichiers
cp fich1 arg2– copie le fichier fic1 dans arg2.
• Si arg2 existe, il est remplacé par le contenu de fic1• Si arg2 est un répertoire, il y a copie de fic1 sous le
même nom dans arg2
ln fic1 fic2– le fichier fic1 aura un nom supplémentaire
mv fic1 fic2 – change le nom de fic1 en fic2
Suppression d’un fichier
rm fic – supprime le fichier fic
rm –i fic– impose une confirmation lors de la suppression
rm –r fic – suppression récursive
ATTENTIONrm *;o
Manipulation sur les répertoires
mkdir rep • création du répertoire rep
rmdir rep • suppression de rep
mv rep1 rep2• change le nom
Modification des droits d’accès
Le propriétaire, le groupe, les autres
- rwx r-x --- Les droits :
• « - » indique une interdiction• « r » lecture• « w » écriture• « x » exécution
Droit d’accès
r w x
Fichier cat vi com
Repertoire ls rmdir cd
Modification des droits
chmod xyz arg– Modifie les droits d’accès en fonction des
indications données – x,y et z sont calculés à partir des 3 bits
autorisant l’accès • Exemple :
chmod 764 fic donne rwx rw- r--
Redirection des entrées-sorties
3 fichiers ouverts– Sortie : stdout (ecran)– Entrée : stdin (clavier)– Sortie erreur : stderr (ecran)
Redirection des Entrées-Sorties
Redirection de la sortie• cmd > fich• cmd >> fich
Redirection de l’entrée• cmd < fich
Redirection de l’erreur• cmd 2> fich• cmd 2>> fich
Les pipelines Chaînage de commandes
com1 | com2
– La sortie standard de com1 est redirigée vers l’entrée standard de com2
– Le système gère la synchronisation
Les Filtres com1 | F | com2
– Un filtre F lit l’entrée standard et écrit sur la sortie standard
Les interpréteurs de commandes
Processus lancé au login 3 types de commandes :
– Les commandes définies par des fonctions shell
– Les commandes internes– Les commandes externes
Les interpréteurs de commandes
2 types de variables– Les variables internes– Les variables d’environnement
Le Bourne shell
Debut de session :– Fichiers /etc/profile et .profile
Fin de session : – Commandes : exit
Les variables internes
$ IMPRIMANTE=laser$echo IMPRIMANTEIMPRIMANTE$echo $IMPRIMANTElaser$setHOME=/IUP/IUP2/…..IMPRIMANTE=laser$unset IMPRIMANTE
Les variables d’environnement
$set IMPRIMANTE=laser
$export IMPRIMANTE
$env
…
IMPRIMANTE=laser
Variables prédéfinies
HOME – répertoire d’accueil
PATH– liste des répertoires pour les commandes
CDPATH– liste des répertoires pour la commande cd
PS1 – Valeur du prompt ($)
PS2 – Valeur du 2eme prompt (>)
Les fonctions Bourne-shell
Nom_fonction() { liste; } Détruites à la fin de la session Exemple :
$dir() {>ls –l $* | more ; }$dir .……
Les commandes internes
cd [rep] echo texte exec cmd exit [n] newgrp [groupe] pwd read [nom] times type [nom]
Exécution d’un script
sh option script arg1 arg2 .. argN– Option -x : exécution pas à pas
script arg1 arg2 … argN . script arg1 arg2 … argN
Le C-shell
Début de session :– Fichiers .login puis .cshrc
Fin de session : – Commandes : exit, logout ou CTRL D
Les variables
$set nomvar[=valeur]
$setenv nomvar valeur
$set
$env ou $printenv
$unset nomvar
$unsetenv nomvar
Les variables prédéfinies
home
path
cdpath
prompt
cwd
shell
Les Alias
Alias nom_alias ‘commandes’
La chaîne !* désigne la liste des paramètres d’un alias
Un alias peut être inclus dans un alias
Les commandes internes
cd [rep] exec cmd exit [n] history newgrp [groupe]
Historique
history donne la liste de dernière commandes tapées.
!! Dernière commande
!10 Commandes n°10
!ls Commande commençant par ls Exemple
$ alias prev « \!-1 | more »
Complément de fichiers
La variable « filec »
Compléter automatiquement le nom d’une commande ou d’un fichier en utilisant la touche <esc>
Le caractère ~
Seul ou devant un / – Représente le contenu $HOME
Suivi d’une chaîne de caractère – Répertoire d’accueil de cet utilisateur
La programmation Bourne Shell
Séparateur conditionnels
&&
$ cd projet && rm *
||
(cd projet) || mkdir projet
Les caractères génériques
* n’importe quelle suite de caractères
? un seul caractère
[ccc] un caractère parmi ccc
; terminateur de commande
& n’attend pas la fin de com
`com` exécute com et le résultat remplace `com`
(…) exécute dans un shell fils
{…} exécute dans le même shell
Les caractères génériques
$1,$2 les arguments du script
$var
${var} la variable var du shell
\c le caractère c
‘…’ littéralement …
« … » … après interprétation des $, `et \
# commentaire
Structures de contrôle La commande test
test expression ou [expression]
-d nom vrai si le répertoire nom existe-f nom vrai si le fichier nom existe-s nom vrai si le fichier nom existe et non vide-r nom vrai si nom existe et accessible en lecture-w nom vrai si nom existe et accessible en écriture-x nom vrai si nom existe et exécutable-z chaîne vrai si la chaîne est vide-n chaîne vrai si la chaîne est non videc1=c2 vrai si les chaînes sont égalesc1!=c2 vrai si les chaînes sont différentesn1 – eq n2 vrai si n1 = n2 (-ne, -lt, -ge, etc)
La sélection if-then-else
if <liste de commandes 1>then
<liste de commandes 2>else
<liste de commandes 3>fi Exemple
if test –f $1then echo $1 existeelse echo $1 n’existe pasfi
L’instruction case
case <chaîne> in
<motif>) <liste de commandes>;;
<motif>) <liste de commandes>;;
<motif>) <liste de commandes>;;
*) <liste de commandes>;;
esac
L’itération bornée : for
for <variable> in <chaine1> <chaine2>…
do
<liste de commandes>
done
Si la liste est vide : les arguments du script Si la liste est * : tous les fichiers du rep courant
Itération non bornée
while <liste commandes>do
<liste commandes>done
Ouuntil <liste commandes>do
<liste commandes>done
Opérateur shift
Parcours des paramètres d’une commande :– $1 = $2– $2 = $3– $3 = $4– ….
Opérations arithmétique
La commande expr
– x=3– y=2– expr $x \* $y6– z = `expr $x \* $y`– echo $z
Les filtres UNIX
Début et fin de fichiers :– head : les n premières lignes
$ head –3 fich
– tail : les n dernières • +nb : à partir de la ligne nb• -nb : à partir de la fin• -r : ordre inverse
$tail –4 fich #les 4 dernières lignes
Lignes uniques : uniq
Recherche les lignes uniques (adjacentes)
• -u : affiche que ce qui est unique• -d : affiche que ce qui n’est pas unique• -c : compte les lignes• +nb : saute les n premiers caractère de chaque
ligne
$uniq –c fich
Transformation de texte : tr
Transforme les caractères spécifiés• -d : supprime les caractères
$ tr « [A-Z] » « [a-z] » < fich # tout en minuscule
…
$ cat fich | tr –d « [0-9] » # plus de chiffres
…
Recherche d’un fichier : find
Voir TP
$find /etc –size –2000c –exec ls –ld {} \;
Tri et manipulation de fichiers
Champ :
– Début : • Début de ligne• Fin du champ précédent
– Fin : • Fin de ligne• Au premier caractère espace ou tabulation
Tri : sort
sort [-option] [[+d [-f]] [fichiers…]
-n : tri numérique
-r : ordre inverse
-tx : choix du séparateur de champ « x »
-f : minuscules = majuscules
+d : exclure du tri les champs 1 à d
-f : exclure les champs suivant f
…
Extraction de données : cut
Extrait des parties de ligne d’un fichier-dx : x est le séparateur de champs-s : supprime les lignes qui n'ont pas de séparateurs-c : suite de caractères-f : suite de champs – Exemples :
-f1,3 : champs 1 et 3-f1-3 : champs 1 à 3-f-3 : champs 1 à 3-f3- : à partir du troisième
Fusion de données : paste
Fusion des lignes de 2 ou plusieurs fichiers– Exemple :
$ cut -f4 fich > fich1
$ cut –f1,2 fich > fich2
$ paste fich1 fich2 > fich3
Jointure : join
Mise en relation de 2 fichiers – Fichiers triés– Options
-j m : jointure sur les champs m des 2 fichiers
-j1 m : jointure sur le champ m de fich1
-j2 m : jointure sur le champ m de fich1
-tx : séparateur x
-o n.m : liste des champs à conserver
– Exemple$ join –j1 3 –j2 2 –o 1.1 1.2 2.1 1.3 fich1 fich2 > fich3
Les expressions régulières
La commande grep Les caractères spéciaux
^ : début de ligne$ : fin de ligne. : caractère quelconque[] : classe de caractères{} : nombre de répétitions* : {0,}+ : {1,}? : {0,1}
Les expressions régulières
Exemples :$ grep « ^$ » fich1
$ grep « csh$» fich1
$ grep « ^.a » fich1
$ grep « ^[LF] » fich1
$ grep « ^[^LF] » fich1
Les options de grep
-c : affiche le nombre de lignes
-i : majuscules = minuscules
-n : affiche le numéro de la ligne trouvé
-H : affiche le nom du fichier
-v : affiche les lignes ne contenant pas l’expression
-f fic : les expressions sont dans le fichier fic
…