Les commandes Unix
Connexion sous Unix Login : nom Password : xxxxx 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 ATTENTION rm *;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 Les Filtres 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 : Fin de session : Fichiers /etc/profile et .profile Fin de session : Commandes : exit
Les variables internes $ IMPRIMANTE=laser $echo IMPRIMANTE IMPRIMANTE $echo $IMPRIMANTE laser $set HOME=/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 : Fin 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. !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 / Suivi d’une chaîne de caractère 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 vide c1=c2 vrai si les chaînes sont égales c1!=c2 vrai si les chaînes sont différentes n1 – 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 $1 then echo $1 existe else echo $1 n’existe pas
L’instruction case case <chaîne> in <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 done Ou until <liste commandes>
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 \* $y 6 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 …