Memento UNIX

Transcription

Memento UNIX
UNIX-MEMENTO ([email protected])
Légende •
•
•
En gras : ce qui est affiché à l’écran par le système UNIX.
En italique : ce qui doit être tapé.
En contour : les symboles, les touches, les signes, les mots-clefs, etc.
Note : dans les commandes UNIX, il est nécessaire de distinguer méthodiquement majuscules
et minuscules. Il est préférable d’utiliser les minuscules.
I. Le « login »/« logout » Une session UNIX débute par un « login » :
Login:
Il est nécessaire de préciser son compte ou encore nom d’utilisateur :
Login: FranckBarbier
Passwd:
Pour terminer, il faut taper un mot de passe reconnu par UNIX. Ce mot de passe n’apparaît pas
à l’écran.
Le prompt apparaît à l’écran et signifie que le travail peut commencer. Ce prompt est en
général le caractère $ pour un utilisateur quelconque, le caractère # pour le super utilisateur
(celui-ci rentre dans le système avec le nom d’utilisateur prédéfini root). Le prompt peut être
par la suite modifié.
Une session UNIX se termine par un « logout » : CTRL + D (taper simultanément sur les
touches CTRL et D). Le signe ^D apparaît en général à l’écran.
Note : CTRL + D désigne plus généralement le caractère de fin de fichier.
Il existe aussi la commande logout.
II. Les touches particulières •
CTRL + S : arrêt du défilement à l’écran alors que CTRL + Q correspond à la
reprise du défilement à l’écran
Page 1
UNIX-MEMENTO ([email protected])
•
•
•
•
CTRL
CTRL
CTRL
CTRL
+
+
+
+
O : dérivation des sorties à l’écran vers le néant (/dev/null)
C : interruption de processus
Z : suspension de processus
H, CTRL + U, CTRL + W : effacement de caractères, lignes, mots...
III. Premières commandes $echo ^G
On entend alors « bip ».
La commande echo comme son nom l’indique renvoie à l’écran le paramètre qui
l’accompagne.
Exemples •
•
$echo $LOGNAME
$echo "Salut..."
Pour changer son mot de passe : passwd.
$passwd
Old passwd: il faut ici taper l’ancien mot de passe qui n’apparaît pas l’écran.
New passwd: il faut taper le nouveau mot de passe puis Return et recommencer autant de fois
qu’UNIX le demande, en particulier si le nouveau mot de passe ne comporte pas beaucoup de
caractères !
Pour changer le compte sur lequel on travaille : login.
$login AlfredDubois
AlfredDubois est un compte ou nom d’utilisateur. On quitte UNIX et on entre à nouveau
avec une nouvelle identification. UNIX demandera alors le mot de passe du compte avec
lequel on entre.
Pour un « login » sur une machine reliée par un réseau local, il faut utiliser la commande
rlogin.
Pour effacer l’écran : clear (substitut : $pg -c</dev/null).
Page 2
UNIX-MEMENTO ([email protected])
IV. Le système de fichiers Avec UNIX tout est fichier, c’est-à-dire traité en tant que tel. Par exemple, un périphérique
(« device ») est un fichier : un écran est donc un fichier (c’est pour cette raison que l’on utilise
le caractère de fin de fichier CTRL + D pour terminer une session depuis l’écran où l’on
travaille).
/dev/null est un fichier particulier désignant le néant (toute opération d’écriture sur ce fichier
revient à jeter à la poubelle les données).
Le système de fichiers est organisé suivant une hiérarchie. Le répertoire (« directory »)
principal de cette hiérarchie est /. Par nature, un répertoire contient des fichiers ainsi que des
sous-répertoires. Les sous-répertoires du répertoire / sont en particulier :
• /dev : les périphériques
• /bin : les commandes sous forme de fichiers exécutables
• /etc : les fichiers principaux manipulés par UNIX, par exemple /etc/passwd est le
•
fichier des utilisateurs et de leurs mots de passe
/usr : les utilisateurs ainsi que les répertoires, sous-répertoires, fichiers... qui leur sont
•
propres
Etc.
La façon la plus simple pour désigner un fichier ou un répertoire est de préciser le chemin pour
l’atteindre depuis /.
Exemple : /usr/glandeurs/jeux/chess est le fichier ou répertoire chess dans le répertoire
jeux lui-même dans le répertoire glandeurs lui-même dans le répertoire usr lui-même dans /.
Avant d’en venir à la gestion du système de fichiers, considérons la commande man (manuel
d’utilisation d’UNIX)
$man hier
Cette commande donne des informations sur la hiérarchie d’UNIX, et plus généralement $man
commande_UNIX donne des informations sur commande_UNIX.
Exemple : $man login, c’est-à-dire comment fonctionne la commande login.
V. Exécution d’une commande $/bin/cat /etc/passwd
Page 3
UNIX-MEMENTO ([email protected])
J’effectue la commande cat (visualisation du contenu d’un fichier) dont le fichier exécutable
est dans le répertoire bin sous-répertoire de /. Je visualise le contenu du fichier passwd
(fichier des utilisateurs et de leurs mots de passe) qui est dans le répertoire etc sous-répertoire
de /.
Plus simplement :
$cat /etc/passwd (UNIX est configuré de manière à connaître les répertoires où se trouvent les
fichiers exécutables de la majorité des commandes - $echo $PATH fournit la liste de ces
répertoires).
Encore dans un souci de simplification, on utilise les chemins relatifs (relativement à l’endroit
où l’on se trouve) au lieu des chemins absolus.
$pwd : où suis-je dans la hiérarchie ?
$cd /etc : je me déplace dans le répertoire etc de /.
$cat passwd : j’exécute plus simplement la commande $cat /etc/passwd. J’utilise le fait que je
me trouve dans le répertoire etc de /.
Pour désigner des répertoires à l’aide de chemins relatifs, on utilise les symboles suivants :
• . le répertoire courant (où je me trouve à un instant t)
• .. le répertoire immédiatement supérieur au répertoire courant
• $HOME le répertoire utilisateur (celui où je me trouve après le « login », celui où je
travaille en général). $echo $HOME fournit le nom de ce répertoire utilisateur
Note : au même titre que $LOGNAME ou $PATH, $HOME définit une variable de
l’utilisateur gérée par UNIX.
Exemples •
•
•
•
$cd ..
$cd /
$cd $HOME
$cd $HOME/x où x est un sous-répertoire de $HOME (le répertoire utilisateur)
VI. Généralisation de la manipulation des fichiers et répertoires Création de répertoire : $mkdir nom_repertoire (en absolu ou en relatif)
Page 4
UNIX-MEMENTO ([email protected])
L’option -p est intéressante dans la mesure où elle permet de créer des répertoires
intermédiaires.
Exemple : $mkdir -p $HOME/a/b/c qui permet de créer depuis $HOME les répertoires a, b et
c suivant l’arborescence spécifiée.
Destruction de répertoire : $rmdir nom_repertoire (en absolu ou en relatif)
Création de fichier (1ère approche) : $cat>$HOME/nom_fichier (le fichier nom_fichier est
créé dans le répertoire $HOME). Il faut terminer la saisie par CTRL + D.
Note : la commande cat permet de visualiser le contenu d’un fichier si elle est utilisée sans le
caractère >. On peut aussi visualiser le contenu d’un fichier avec la commande more ou pg.
Exemple : $more /etc/ttys (tester les possibilités de more ou pg en fonctionnement : ?, q ou
Q, !, Space, Return, /, etc.).
Destruction de fichier(s) et répertoire(s) : $rm $HOME/nom_fichier ou encore $rm -r
$HOME/nom_repertoire
L’option -r fait que l’on indique un nom de répertoire alors que si on ne l’utilise pas, on
indique un nom de fichier. Tout ce qui y est contenu est détruit, le répertoire lui-même et
récursivement les différents sous-niveaux s’il y a lieu.
L’option -i permet une destruction interactive (confirmation y or n pour chaque entité
détruite). Il est d’ailleurs souvent plus sûr de faire $rm -ri nom_fichier(s).
Contraintes :
• la création et la destruction de répertoires sont subordonnées aux propriétés de ces
répertoires et de leurs fichiers. Cela résulte des prérogatives qui sont attribuées par
UNIX à chaque utilisateur. Compte tenu de cela, on peut manipuler les répertoires et
les fichiers des autres utilisateurs que si nos prérogatives nous le permettent. Bien
entendu, le super utilisateur (root) peut lui tout faire.
• la destruction de répertoires par la commande rmdir implique que ces répertoires sont
vides.
Exercice : la société APIIC vous demande de construire la hiérarchie suivante :
Page 5
UNIX-MEMENTO ([email protected])
$HOME
Methodes
Etudes
CAO
Usr
FAO
GestionDeProduction
Usr
GPAO
Usr
Maintenance
MAO
Usr
Cette société vous demande aussi de construire dans le répertoire $HOME les fichiers
suivants :
• CAO.inf : logiciel de CAO qui est le logiciel CATIA version 4.3
• FAO.inf : il n’y a pas de logiciel de FAO implanté actuellement
• GPAO.inf : logiciel de GPAO est le logiciel PRODSTAR version 6.0
• MAO.inf : il n’y a pas de logiciel de MAO implanté actuellement
• InfoGenerales : la hiérarchie dans laquelle vous vous trouvez concerne les systèmes
d’information
de
la
société
APIIC
pour
le
conception/fabrication/gestion/maintenance de son système productif
cycle
de
Les cinq fichiers préalablement énoncés sont créés comme suit :
$cat>CAO.inf
texte...
CTRL + D
VII. Visualisation du contenu d’un répertoire La commande ls permet de visualiser le contenu d’un répertoire. Elle est utilisable avec de
nombreuses options. Les plus intéressantes sont :
• -a : pour faire apparaître tous les fichiers, en particulier les fichiers cachés préfixés
dans UNIX par un point (« dot » en anglais). Par exemple .profile est un fichier que
l’on rencontre souvent dans le répertoire $HOME.
•
-F : pour faire apparaître les différents types de fichiers : * exécutable, / répertoire, @
•
lien...
-l : cette option est toujours utilisée car elle donne tous les attributs des fichiers.
Page 6
UNIX-MEMENTO ([email protected])
•
-R : récursivement, c’est-à-dire que tout ce qui est contenu dans les sous-niveaux est
•
visualisé.
-i : pour faire apparaître le numéro physique par nature unique (« inode ») des fichiers.
Cette option est intéressante pour voir si des fichiers sont liés.
Usage le plus courant : $ls -alF
Autre usage intéressant : $ls -d donne des informations sur le répertoire lui-même plutôt que
sur son contenu.
Exercice : vérifier à l’aide de la commande ls que ce qui a été précédemment construit est bien
ce qui avait été demandé.
Note : les caractères * et ? peuvent être utilisés dans les commandes (* remplace une suite de
caractères alors que ? remplace un seul caractère). Les commandes telles que rm, ls...
acceptent donc les caractères * et ?.
Exemple : $rm -i /usr/GillesDupont/.p* c’est-à-dire tous les fichiers cachés (.) dont le nom
commence par p doivent être détruits interactivement dans le répertoire GillesDupont du
répertoire usr du répertoire /.
VIII. Duplication, déplacement et liaison de fichiers La duplication de fichiers est réalisée avec la commande cp (voir aussi cpio pour des copies
de « device » à « device »). Le déplacement de fichiers est réalisé avec la commande mv. La
liaison de fichiers est réalisée avec la commande ln.
Exemples • $cp $HOME/aout/aout.act ./septembre/septembre.act : le fichier aout.act du
répertoire aout est dupliqué. Il prend pour nom septembre.act dans le répertoire
septembre où il est copié.
• $cp $HOME/aout/* . : tous les fichiers non cachés (*) du répertoire aout sont
dupliqués sous le même nom dans le répertoire courant (.).
$mkdir $HOME/moi ; cp p* $HOME/moi (; désigne la séquence de commandes) : tous les
fichiers non cachés du répertoire courant commençant par p sont dupliqués dans le répertoire
moi.
Pour dupliquer d’une machine à une autre par un réseau local, il faut utiliser la commande rcp.
Page 7
UNIX-MEMENTO ([email protected])
La commande mv fonctionne comme la commande cp à ceci près que les fichiers sont
seulement déplacés et éventuellement renommés.
Exemple : $mv x y : ici, il n’y a pas de déplacement, x change de nom pour s’appeler y.
La commande ln a pour but pour un même fichier physique de lui attribuer plusieurs noms. Un
fichier peut donc être référencé à différents endroits de la hiérarchie du système de fichiers.
Exemple : $ln $HOME/aout/aout.act /usr/commun_a_tous c’est-à-dire que le fichier aout.act
prend le nom de commun_a_tous dans le répertoire usr de /.
Exercice : la société APIIC vous demande de construire un fichier USR.liste contenant
Dupont G., Lambert M., Dublanc A., Maire J.P., Dersec G., Zoe Y., Joutat M. et Fradet S. Il
faut ensuite placer ce fichier dans le répertoire CAO et le lier pour qu’il apparaisse dans le
répertoire FAO. Le fichier USR.liste à créer dans le répertoire GPAO doit lui contenir
Rouget P. et Martin D. ; il doit être lié pour apparaître dans le répertoire MAO.
De plus, la société APIIC vous demande de lier le fichier InfoGenerales sous le nom Info de
manière à ce qu’il apparaisse dans tous les répertoires de la hiérarchie précédemment créée,
puis de déplacer le fichier CAO.inf dans le répertoire CAO ; faire de même pour tous les
fichiers de suffixe .inf actuellement dans le répertoire $HOME.
IX. Les propriétés des fichiers Les propriétés des fichiers apparaissent au moment de l’exécution de la commande ls : $ls -l
aout.act
Résultat à l’écran :
-rwxr--r-1
prérogatives liens
FranckBarbier
propriétaire
staff 512
groupe taille
May 31
date
14:30 aout.act
heure nom fichier
•
1ère position : type du fichier (d : répertoire, - : fichier standard, l : lien, p : pipe, b et
c : device)
•
•
•
2, 3 et 4ème : prérogatives du propriétaire du fichier
5, 6 et 7ème : prérogatives du groupe du propriétaire
8, 9 et 10ème : prérogatives des autres utilisateurs
La commande chmod permet de changer les propriétés d’un fichier : $chmod xyz
nom_fichier :
Page 8
UNIX-MEMENTO ([email protected])
•
•
•
où x est égale à u : « moi », g : mon groupe (essayer la commande $groups ou $cat
/etc/group pour connaître son groupe d’appartenance), o : les autres, a : tout le monde.
où y est égale à + ou -.
où z est égale à r : readable, w : writable, x : exécutable (pour un répertoire, cela
signifie que l’on peut y effectuer des recherches), - : non actif.
$chmod g+w $HOME/moi : je donne l’autorisation (+) aux utilisateurs de mon groupe (g)
d’écrire (w) dans le répertoire moi de $HOME.
$chmod a-r aout/aout.loi : je supprime l’autorisation (-) à tout le monde (a) de lire (r) le
fichier aout.loi du répertoire aout du répertoire courant.
La commande umask permet quant à elle de définir par défaut la configuration des propriétés
attribuées à un fichier à l’instant de sa création.
Exemples •
•
$umask : fournit la configuration en cours
$umask ogp : modifie la configuration en cours pour la configuration ogp (o :
« owner », g : « group » et p : « public »)
Pour un fichier : 0 = rw-, 1 = rw-, 2 = r--, 3 = r--, 4 = -w-, 5 = -w-, 6 = ---, 7 = --Pour un répertoire : 0 = rwx, 1 = rw-, 2 = r-x, 3 = r--, 4 = -wx, 5 = -w-, 6 = --x, 7 = --Analyser les commandes $umask 2 et $umask 077
Exercice : placer dans la configuration drwxr-xr-x tous les répertoires depuis $HOME.
Placer dans la configuration -rwxrw-rw- tous les fichiers depuis $HOME sauf le fichier
InfoGenerales à placer dans la configuration -rwxrwxrwx après avoir ajouté le mot echo
devant la phrase contenue dans le fichier InfoGenerales. Exécuter ensuite InfoGenerales.
X. Création et modification de fichier (autres approches) $cat>>$HOME/aout/aout.loi
planche à voiles et éventuellement natation
CTRL + D
Si le fichier aout.loi contenait :
Escalade la première quinzaine d’août, avant la mer, certainement la seconde quinzaine
Page 9
UNIX-MEMENTO ([email protected])
Le fichier aout.loi contient alors :
Escalade la première quinzaine d’août, avant la mer, certainement la seconde quinzaine
planche à voiles et éventuellement natation
$touch -c nom_fichier : cette commande actualise les attributs d’un fichier c’est-à-dire l’heure,
la date.
L’option -c provoque le retour d’une erreur si le fichier n’existe pas. Si cette option n’est pas
utilisée et que le fichier n’existe pas, il est créé avec une taille égale à 0.
Exercice : à la suite de l’acquisition d’un logiciel intégré de GPAO-MAO appelé GPMAO, la
société APIIC vous demande de :
• couper la branche Maintenance de la hiérarchie
• créer un nouveau fichier GPAO.inf où l’expression "PRODSTAR version 6.0" est
•
remplacée par "GPMAO version 1.0"
ajouter au fichier USR.liste se trouvant dans le répertoire GPAO : Bidochon G. puis
actualiser les attributs de tous les répertoires et fichiers inclus dans $HOME.
XI. L’environnement Certaines commandes permettent de prendre connaissance de l’environnement de travail : les
caractéristiques de la machine, le terminal de connexion...
La commande tty permet de déterminer le terminal de connexion.
La commande uname permet de déterminer les caractéristiques de la machine et du système
UNIX utilisés. Tester cette commande avec l’option -a pour afficher toutes les
caractéristiques.
Les commandes who et whoami permettent de connaître les utilisateurs du système.
Différentes utilisations sont possibles :
• $who
• $whoami
• $who am i
Les options intéressantes de la commande who sont :
• -b : pour afficher la date et l’heure de la dernière activation du système
• -T ou -u : pour afficher des informations plus complètes telles que l’activité de
l’utilisateur, les processus en cours...
Page 10
UNIX-MEMENTO ([email protected])
La commande w est une commande du même type que who. Elle informe de manière
systématique sur les utilisateurs du système et leurs activités.
Note : on peut trouver dans le fichier /etc/utmp les utilisateurs du système. Essayer $cat
/etc/utmp
Comme nous l’avons vu, UNIX gère pour chaque utilisateur des variables. La spécificité de
celles-ci est d’être préfixé par un $ : $HOME, $LOGNAME ou encore $PATH. Il est bien
entendu intéressant de travailler de manière plus générale avec ces variables : connaître leur
valeur, en définir de nouvelles, etc.
Les commandes set et env permettent de connaître ces variables.
Quelques usages de e nv •
•
•
•
$env
$env VAR="Societe APIIC"
$echo $VAR
$env
Autres méthodes avec s et •
•
•
•
•
•
•
•
•
$set
$set VAR="Societe APIIC"
$echo $VAR
$VAR= "Societe APIIC"
$echo $VAR
$ll="ls -alF"
$$ll
$AutreVar=
$echo $AutreVar
L’environnement peut se voir doter en plus des variables, des fonctions. La définition d’une
fonction s’opère comme suit :
$nom_de_fonction()
{
commande1 ;
commande2 ;
...
}
Page 11
UNIX-MEMENTO ([email protected])
Exemple $ll()
>{
>ls -alF ;
>}
$set
$ll
$unset ll
$ll
$set
Conclusion ? Autre exemple $cwd()
>{
>cd $1
>b=`pwd`
>PS1="$b>"
>}
$cwd $HOME
Exercice : construire une fonction hcd qui permet de mémoriser dans un fichier historique les
répertoires où l’on se déplace durant une session.
Exemple : $hcd $1 $2 où $1 (1er paramètre de la procédure hcd) est le répertoire où l’on se
déplace et $2 (2ème paramètre de la procédure hcd) est le fichier historique.
Il existe des caractères spéciaux définissant des variables spéciales, en particulier :
•
•
•
•
•
$ : numéro de processus du shell actif
? : statut final de la commande exécutée en dernier lieu (0 : OK)
! : numéro du dernier processus en tâche de fond
# : nombre d’arguments
et @ : tous les arguments
- : options du shell
Afficher les variables suivantes : $$ $? $! $# $* $@ $- et $0. Que représente $0 ?
Page 12
UNIX-MEMENTO ([email protected])
Essayer $set X Y Z et $echo $# et $echo $1 $2 $3
Utilisation des variables de position (donner une interprétation de ce qui suit) :
$cat>1erProg
echo Mon nom est $1
CTRL + D
$chmod a+x 1erProg
$1erProg
$1erProg FranckBarbier ou $sh 1erProg ou $sh 1erProg FranckBarbier
Comment sont utilisées les `(backquote), '(quote) et "(double quote) ? Pour cela, essayer :
$v1=acces interdit ; echo $v1
$v1="acces interdit"
$Message="Probleme : $v1" ; echo $Message
$Message='Probleme : $v1' ; echo $Message
$Message='"Probleme : $v1"' ; echo $Message
Conclusion ? XII. La redirection des E/S Exercice : créer un fichier formation contenant les personnes assistant à cette formation
UNIX.
La commande wc permet de compter les éléments d’un fichier et permet d’illustrer la
redirection des E/S.
Exemples •
•
•
$wc -c formation : compter les caractères
$wc -w formation : compter les mots
$wc -l formation : compter les lignes
La commande wc est souvent utilisée dans le cadre de la redirection des E/S :
• < redirection de l’entrée standard (stdin)
• > redirection de la sortie standard (stdout)
•
•
•
>> redirection de la sortie standard en ajout
<< voir exemple
2> redirection des erreurs (stderr)
Page 13
UNIX-MEMENTO ([email protected])
•
•
2>> redirection des erreurs en ajout
| prolongation des flux de données
Tester $ls -alF | wc
$cat /etc/passwd>motsDEpasse
$cat /etc/passwd>>formation
$cat>message>/dev/console : essayer tty? à la place de console
$wc -l formation
$wc -l<formation
$cp formation /etc/formation>y
$cp formation /etc/formation 2>y
$cp formation /formation 2>>y
$cat<<FIN>fichier
>je tape un texte, le symbole > signifie que le shell
>est en attente avant de revenir au prompt classique $.
>je tape FIN
>FIN
Exercices •
•
compter le nombre de personnes des services CAO/FAO et GPAO/MAO.
ajouter formation à USR.liste dans le répertoire GPAO.
•
compter le nombre d’utilisateurs actuellement connectés sur le système (utiliser la
commande who) tout en créant un fichier users contenant la liste des utilisateurs
•
connectés.
compter le nombre de variables de l’environnement (utiliser la commande env) et
compter le nombre de variables et fonctions de l’environnement (utiliser la commande
set).
•
compter le nombre de caractères de votre numéro de compte (utiliser la commande
whoami).
XIII. La commande g rep La commande grep est une des commandes les plus intéressantes du système UNIX. Notons
qu’il existe deux variantes : egrep et fgrep. Cette commande assure la recherche d’un littéral
dans un flux de données quelconque.
Quelques commandes à tester •
•
$grep "root" /etc/passwd
$grep -v "philippe" formation
Page 14
UNIX-MEMENTO ([email protected])
Les options intéressantes de la commande grep sont en particulier :
•
•
•
•
•
-v pour rechercher les lignes où n’apparaît pas le littéral
-n pour afficher les lignes avec leur numéro
-c pour afficher le nombre de lignes plutôt que ces dernières
-l pour afficher les noms de fichiers où l’on trouve le littéral plutôt que les lignes
-i pour ne pas distinguer minuscules/majuscules
Exemples •
•
•
$grep -l "APIIC" *
$grep -i "APIIC" Info
$grep -n "productif" Info
Exercices •
•
rechercher dans le service CAO/FAO, les personnes dont le nom n’inclut pas le littéral
du sans distinguer minuscules/majuscules.
rechercher depuis $HOME les fichiers contenant le littéral AO.
Quelques utilisations plus compliquées de la commande grep :
$ls -lR [EI]* | grep "r--r-- " : rechercher tous les fichiers récursivement (-R) commençant par
E ou I et ayant pour configuration r--r--Space (« only readable for group and other users »).
$ls -lR [E-I]* | grep -c "drw" : compter (-c) tous les fichiers récursivement (-R) commençant
par E, F, G, …, I et ayant pour configuration drw (ces fichiers sont en particulier des
répertoires).
Quels sont les problèmes dans ces deux commandes ?
La recherche des premières et dernières positions.
Tester $cat>>Etudes/Usr/USR.liste
$FranckBarbier
F^ranckBarbier
jeff
CTRL + D
$grep -i "f" Etudes/Usr/USR.liste
$
"^f"
$
"f^"
Page 15
UNIX-MEMENTO ([email protected])
$
$
$
"f$"
"$f"
’$f’
Conclusion : quel est le sens des caractères ^ et $ dans les littéraux ?
Tester et conclure $grep "$" Etudes/Usr/USR.liste
$
’$’
$
"\$"
$
’\$’
Plus généralement les caractères spéciaux suivants peuvent être utilisés dans les recherches :
• . : un unique caractère
• [...] : un caractère entre crochets (Ex. : [aeiou]) ou un caractère dans un intervalle de
•
•
•
caractères (Ex. : [a-z])
* : zéro ou plus d’une occurrence du caractère qui précède (Ex. : A*) ou de
l’expression régulière qui précède (Ex. : AO*)
.* : zéro ou plusieurs occurrences d’un unique caractère
[!...] : tout caractère qui n’est pas entre crochets ou dans un intervalle de caractères
Exercices • rechercher tous les répertoires depuis / dont le nom est composé de 4 lettres (utiliser .)
• compter dans le fichier /etc/ttys les noms de terminaux commençant par t ou T et se
terminant par 1 ou 2 ou 3 ou 4 lettres (utiliser ^ et $ et [] et .)
•
•
rechercher les utilisateurs connectés sur un terminal du type précédent
rechercher depuis le répertoire / les fichiers qui ne sont pas exécutables quel que soit
•
l’utilisateur
rechercher dans le service CAO/FAO de la société APIIC les noms de personnes
comportant au moins 2 f
•
vérifier que le nom avec lequel vous êtes entrés dans le système est bien une seule fois
dans le fichier /etc/passwd (utiliser "$LOGNAME")
XIV. Les commandes f ind et s ort La commande find permet de rechercher un fichier. Les deux utilisations les plus intéressantes
de cette commande sont :
• $find / -name *.c -print : je recherche à partir de / les fichiers se terminant par .c dont
je veux que leur nom soit affiché à l’écran (-print)
Page 16
UNIX-MEMENTO ([email protected])
•
$find $HOME -user $LOGNAME -exec cat {} \; : je recherche à partir de $HOME les
fichiers dont le propriétaire est $LOGNAME ; lorsque qu’il est trouvé, l’afficher (exec cat). {} désigne le pathname du fichier trouvé et ; préfixé par \ doit terminer
l’option -exec
Les autres options intéressantes de la commande find sont : -size n, -ls, -type (b, c, d, f, p,
l et s).
Exercices • rechercher depuis / les fichiers suffixés par .c qui sont des liens (utiliser -type l)
• rechercher depuis / les fichiers de taille 0 (utiliser -size 0) et les détruire
interactivement
La commande sort permet de trier (ordre ASCII) un flux de données.
Exemple : $sort -b Etudes/Usr/USR.liste (l’option -b permet d’ignorer les caractères tels que
Space ou Tab lors du tri).
Exercices • ranger par ordre dans un fichier X tous les fichiers depuis $HOME
• ranger par ordre inverse (option -r) dans un fichier for2 le contenu du fichier
formation
XV. La communication sous UNIX Les commandes pour communiquer sous UNIX dépendent du type de communication. Soit la
communication a lieu sur une même machine, soit sur une machine connectée via un réseau
local, soit sur une machine hors-site (système uucp).
La commande write permet d’envoyer un message à un utilisateur donné.
Exemple $write FranckBarbier
C’est quand la pause, y’en a marre d’UNIX...
CTRL + D
Exercice : à l’aide des commandes who, sort et des ``, envoyer un message à l’utilisateur le
dernier dans l’ordre ASCII des utilisateurs connectés.
La commande talk demande à l’émetteur et au récepteur de se synchroniser.
Page 17
UNIX-MEMENTO ([email protected])
Exemples •
•
•
$talk FranckBarbier
ou $talk machineDistante!FranckBarbier
ou encore $talk FranckBarbier@machineDistante
Tester : $hostname pour connaître le nom de machine ou $cat /etc/hosts ou $who am i
Exercice : d’après l’exercice précédent, émettre un message à l’utilisateur le premier dans
l’ordre ASCII des utilisateurs connectés.
La commande mesg permet d’autoriser ou non les messages (Tester $mesg -n et $mesg -y)
La commande mail concerne la messagerie électronique d’UNIX. Les utilisations les plus
courantes de cette commande sont (pour envoyer du courrier de GillesDupont à
FranckBarbier) :
$who am i
GillesDupont
$mail FranckBarbier
Rendez-vous pizzeria ce soir 20 heures,
si impossible me téléphoner.
CTRL + D
$mail : pour lire son courrier (la commande from permet de savoir s’il y a du courrier à lire).
Codes pour la commande mail -> Return : lettre suivante, d : détruire lettre, s : sauvegarder
lettre dans fichier, q : sortir de mail, ? : aide, etc.
Page 18

Documents pareils