58
Les commandes Unix

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

Embed Size (px)

Citation preview

Page 1: 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

Les commandes Unix

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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.

Page 6: 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

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 ..

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

Manipulation sur les répertoires

mkdir rep • création du répertoire rep

rmdir rep • suppression de rep

mv rep1 rep2• change le nom

Page 13: 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

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

Page 14: 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

Droit d’accès

r w x

Fichier cat vi com

Repertoire ls rmdir cd

Page 15: 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

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--

Page 16: 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

Redirection des entrées-sorties

3 fichiers ouverts– Sortie : stdout (ecran)– Entrée : stdin (clavier)– Sortie erreur : stderr (ecran)

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

Les interpréteurs de commandes

2 types de variables– Les variables internes– Les variables d’environnement

Page 21: 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

Le Bourne shell

Debut de session :– Fichiers /etc/profile et .profile

Fin de session : – Commandes : exit

Page 22: 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

Les variables internes

$ IMPRIMANTE=laser$echo IMPRIMANTEIMPRIMANTE$echo $IMPRIMANTElaser$setHOME=/IUP/IUP2/…..IMPRIMANTE=laser$unset IMPRIMANTE

Page 23: 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

Les variables d’environnement

$set IMPRIMANTE=laser

$export IMPRIMANTE

$env

IMPRIMANTE=laser

Page 24: 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

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 (>)

Page 25: 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

Les fonctions Bourne-shell

Nom_fonction() { liste; } Détruites à la fin de la session Exemple :

$dir() {>ls –l $* | more ; }$dir .……

Page 26: 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

Les commandes internes

cd [rep] echo texte exec cmd exit [n] newgrp [groupe] pwd read [nom] times type [nom]

Page 27: 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

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

Page 28: 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

Le C-shell

Début de session :– Fichiers .login puis .cshrc

Fin de session : – Commandes : exit, logout ou CTRL D

Page 29: 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

Les variables

$set nomvar[=valeur]

$setenv nomvar valeur

$set

$env ou $printenv

$unset nomvar

$unsetenv nomvar

Page 30: 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

Les variables prédéfinies

home

path

cdpath

prompt

cwd

shell

Page 31: 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

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

Page 32: 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

Les commandes internes

cd [rep] exec cmd exit [n] history newgrp [groupe]

Page 33: 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

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 »

Page 34: 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

Complément de fichiers

La variable « filec »

Compléter automatiquement le nom d’une commande ou d’un fichier en utilisant la touche <esc>

Page 35: 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

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

Page 36: 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

La programmation Bourne Shell

Page 37: 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

Séparateur conditionnels

&&

$ cd projet && rm *

||

(cd projet) || mkdir projet

Page 38: 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

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

Page 39: 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

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

Page 40: 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

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)

Page 41: 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

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

Page 42: 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

L’instruction case

case <chaîne> in

<motif>) <liste de commandes>;;

<motif>) <liste de commandes>;;

<motif>) <liste de commandes>;;

*) <liste de commandes>;;

esac

Page 43: 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

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

Page 44: 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

Itération non bornée

while <liste commandes>do

<liste commandes>done

Ouuntil <liste commandes>do

<liste commandes>done

Page 45: 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

Opérateur shift

Parcours des paramètres d’une commande :– $1 = $2– $2 = $3– $3 = $4– ….

Page 46: 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

Opérations arithmétique

La commande expr

– x=3– y=2– expr $x \* $y6– z = `expr $x \* $y`– echo $z

Page 47: 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

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

Page 48: 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

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

Page 49: 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

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

Page 50: 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

Recherche d’un fichier : find

Voir TP

$find /etc –size –2000c –exec ls –ld {} \;

Page 51: 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

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

Page 52: 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

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

Page 53: 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

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

Page 54: 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

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

Page 55: 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

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

Page 56: 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

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}

Page 57: 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

Les expressions régulières

Exemples :$ grep « ^$ » fich1

$ grep « csh$» fich1

$ grep « ^.a » fich1

$ grep « ^[LF] » fich1

$ grep « ^[^LF] » fich1

Page 58: 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

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