Les commandes Unix. Connexion sous Unix Login : nom –Entrer un nom permettant la connexion...

Preview:

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