Unix
commande : commande seule Exemple : ls
commande [-options] : commande avec des options Exemple : ls -al
commande arguments : commande avec des arguments Exemple : ls *.lst
commande [-options ] arguments : commande avec des options et des arguments
Exemple : ls -al *.lst
Comment changer son mot de passe ?
passwd
Qui est connecté ?
who :
f :
Qui suis-je ?
whoami me dit qui je suis.
who am i me dit qui je suis en plus complet.
logname donne mon nom d'utilisateur (login).
Généralités sur les fichiers
?
Un fichier ordinaire est un fichier contenant des donneés de
tout type (programmes, scripts, textes, donneés ...)
Un fichier spécial est un fichier désignant un périphérique
(disque, disquette, imprimante, streamer, console ..). La philosophie UNIX
implique que tout est un fichier. Cela signifie que pour UNIX, écrire
sur un périphérique revient à écrire sur un
fichier.
Les noms de fichiers :
Le nom des fichiers peut etre constitué de lettres majuscules
et minuscules, de chiffres et de certains caractères ascii.
Les fichiers silencieux commencent par un ".". Ils sont utilisés
pour configurer l'environnement.
Métacaractères :
* : remplace une chaine de caractères.
? : remplace un caractère.
[] : remplace tout caractère précise entre les crochets.
Pas de séparateur.
[-] : précise un intervalle.
Exemples :
ls *.old : liste tous les fichiers du répertoire courant se
terminant par .old.
ls kk* : liste tous les fichiers commançant par la lettre kk.
ls ?89 : liste tous les fichiers commançant par n'importe quelle
lettre suivi de 89. lettre e.
ls [ae]* : liste tous les fichiers commançant par la lettre
a ou la lettre e.
ls [a-e]* : liste tous les fichiers commançant par les lettres
a,b,c,d ou e.
Comment afficher le contenu d'un fichier ?
cat nom_du_fichier : affiche le contenu du fichier "nom_du_fichier"
à l'écran.
more nom_du_fichier : affiche le contenu du fichier "nom_du_fichier"
page par page.
barre d 'espace : pour afficher la page suivante
h : help
= : numéro de la ligne
v : appel de l'éditeur vi.
b : pour afficher la page précédente (back)
[nombre]d: avance de nombre de lignes
[nombre]s : saut de nombre de lignes et affichage d'une page.
[nombre]f : nombre de pages et affichage d'une page.
commande shell : exécution de la commande shell donnée
pg nom_du_fichier : affiche le contenu du fichier "nom_du_fichier"
page par page.
-nombre : nombre définit la taille de la fenêtre (par
défaut 23 lignes sur un écran texte de 24 lignes).
-p chaine :
-n :
-s :
+nombre : l'affichage commence à la ligne de numéro donné.
+/expr_régulière/ : l'affichage commence à la
première ligne contenant un motif satisfaisant l'expression régulière
donnée.
od nom_du_fichier : affiche tous les caractères du fichier "nom_du_fichier"
od -c : caractère
od -d : décimal
od -o : octa
od -h : hexadécimal
Comment copier un fichier ?
Syntaxe : cp [-hip] fichier1 fichier2
h : pour avoir la syntaxe (help)
i : demande de confirmer (interactive)
p : le fichier est copié avec les mêmes droits d'accés
et la même date de dernière mise à jour.
Comment déplacer un fichier ?
Syntaxe : mv [-if] fichier1 fichier2
i : demande de confirmer si le fichier "fichier2" existe déjà.
f : écrase le fichier "fichier2" s'il existe déjà.
Comment détruire un fichier ?
Syntaxe : rm [-i] [-f] nom_du_fichier
rm -i nom_du_fichier : avec demande de confirmation.
rm -f nom_du_fichier : force la destruction.
Attention : la destruction est irrémédiable. Il n'existe
pas de commande "undelete" comme sous MS-DOS. Vous pouvez tout de même
récupérer la dernière sauvegarde de ce fichier si
elle a été faite.
Comment créér un fichier vide ?
touch nom_du_fichier :
Comment concaténer 2 fichiers ?
cat fichier1 fichier2 : concatène le fichier "fichier1" puis
le fichier "fichier2" et affiche le résultat sur la sortie standard
qui est l'écran.
cat fichier1 fichier2 > fichier3 : concatène le fichier "fichier1"
puis le fichier "fichier2" et affiche le résultat dans le fichier
"fichier3".
Comment avoir des informations sur un fichier ?
wc -c nom_du_fichier : donne le nombre de caractères (octets)
du fichier "nom_du_fichier".
wc -l nom_du_fichier : donne le nombre de lignes (lines) du fichier
"nom_du_fichier".
wc -w nom_du_fichier : donne le nombre de mots (words) du fichier "nom_du_fichier".
wc nom_du_fichier : donne le nombre de caractères, de lignes,
de mots du fichier "nom_du_fichier".
De quel type est ce fichier ?
file nom_du_fichier : donne le type du fichier "nom_du_fichier".
Exemples :
file unix.sgml
unix.sgml : ascii text
file unix.sp unix.ps : PostScript document conforming at level 2.0
file docunix docunix : directory
Comment extraire des portions de lignes d'un fichier ?
cut -c1-7,20- nom_du_fichier : permet d'extraire dans chaque ligne
du fichier nom_du_fichier les 7 premiers caractères et tous les
caractères à partir du vingtième. Attention, le résultat
s'affiche sur la sortie standard, c'est à dire l'écran).
cut -c1-7,20- nom_du_fichier > nouveau_fichier : même opération
mais le résultat est stocké dans le fichier "nouveau_fichier".
Comment trier un fichier ?
Syntaxe : sort [-options] [+pos1] [-pos2] fichier_entree [-o fichier_sortie]
Exemple :
cat fichier1
Jacques titi Ginette
Albert toto Marc
Franck tonton Anne
Edouard tata Alfonse
Franck tonton Anne
sort -u fichier1 : permet de trier et de n'afficher que les lignes
non identiques (option -u).
Albert toto Marc
Edouard tata Alfonse
Franck tonton Anne
Jacques titi Ginette
sort +2 fichier1 : permet de trier sur le troisième champ.
Edouard tata Alfonse
Franck tonton Anne
Franck tonton Anne
Jacques titi Ginette
Albert toto Marc
Comment juxtaposer deux ou plusieurs fichiers ?
Syntaxe : paste [-d suite_caracteres] nom_fichier1 nom_fichier2
Exemple :
cat nom_fichier1 :
55555
4444
333
22
1
cat nom_fichier2 :
a
bb
ccc
dddd
eeeee
paste -d "+" nom_fichier1 nom_fichier2 :
55555+a
4444+bb
333+ccc
22+dddd
1+eeeee
Comment comparer deux fichiers entre eux ?
cmp nom_fichier1 nom_fichier2 : compare le fichier "nom_fichier1" et
le fichier "nom_fichier2" et indique s'ils sont différents.
diff nom_fichier1 nom_fichier2 : affiche les lignes différentes
du fichier "nom_fichier1" et du fichier "nom_fichier2"
Comment rechercher une chaîne de caractères dans un
fichier ?
grep fournet /etc/aliases : permet de rechercher toutes les lignes
contenant la chaîne de caractères "fournet" dans le fichier
"/etc/aliases"
fournet: fournet@toulouse.inra.fr
flo:fournet
grep MAXNQ *.f : pour rechercher la chaîne "MAXNQ" dans tous
les fichiers suffixés ".f", c'est à dire tous les fichiers
sources Fortran du répertoire courant.
dfls3q.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f:46 CALL DFCOM(NPARM,0,NCALL,MAXNQ,NQ2,
dfmmp3.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmp3.f: CALL DFPDIA (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
dfmmp3.f: CALL DFPBLK (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
Généralités sur les répertoires
Un répertoire est un fichier contenant un liste de noms de fichiers
et de noms de sous-répertoires.
Un répertoire père : est un répertoire de niveau
immédiatement supérieur au répertoire courant.
Un répertoire fils : est un répertoire de niveau immédiatement
inférieur au répertoire courant. C'est un sous-répertoire
d'un répertoire parent.
Struture arborescente : Le premier niveau de l'arborescence est nommé
la racine (root). On le désigne par le slash (/). C'est le répertoire
père de tous les répertoires.
Le caractère "." désigne le répertoire courant.
Le caractère ".." désigne le répertoire père.
Le caractère "~" désigne le répertoire d'accueil
(home directory).
Comment créér un répertoire ?
mkdir nom_du_répertoire
Comment afficher le contenu d'un répertoire ?
Syntaxe : ls [-alFgd]
ls -a : affichage des fichiers silencieux (fichiers qui commencent
par un ".", exemple .profile)
ls -l : affichage long
ls -F : type de fichier
ls -g : groupe de l'utilisateur
ls -d : répertoire
Exemples :
ls : pour avoir une liste simple des fichiers du répertoire
courant.
ls -al : pour avoir une liste avec toutes les informations sur les
fichiers (le nom du propriétaire, le nom du groupe, les droits d'accès
sur le fichier, le nombre d'octets, la date de création .etc.)
ls -aF : les fichiers exécutables sont marqués acec une
astérique (*), les répertoires avec un slash (/).
Comment se déplacer dans l'arborescence ?
cd nom_du_sous_répertoire : pour aller au sous répertoire
spécifié.
cd /usr/local/DFREML/DF93/MUW : pour aller au sous répertoire
spécifié.
cd .. : pour remonter d'un niveau.
cd ../.. : pour remonter de deux niveaux.
cd ../PREP : pour remonter d'un niveau et redescendre sous PREP.
cd : pour revenir au home-directory (variable $HOME, c'est à
dire /home/mcbatut pour l'utilisateur mcbatut).
cd ~ : pour revenir au répertoire d'accueil c'est à dire
le home-directory.
Remarque : L'arborescence ressemble à celle que vous avez l'habitude
d'utiliser sous MS-DOS, attention au sens des délimiteurs (sous
MS-DOS, c'est l'anti-slash (), sous Unix, c'est le slash (/)).
Sur quel répertoire est-on positionné ?
pwd : Print Working Directory
Comment changer les droits d'accès d'un fichier ou d'un répertoire
?
Syntaxe : chmod qui opération permission nom_du_fichier
qui :
u : pour modifier les permissions de l'utilisateur (user)
g : pour modifier les permissions du groupe (groupe)
o : pour modifier les permissions des autres (other)
a : pour modifier les permissions de tous (all)
opération :
+ : pour ajouter une permission
- : pour enlever une permission
permission :
r : permission de lire (read)
w : permission d'écrire (write)
x : permission d'exécuter (execute)
Exemples :
chmod a+r nom_du_fichier : donne les droits en lecture (read) à
tous les utilisateurs (all) pour le fichier indiqué.
chmod g-w nom_fichier : pour ne pas autoriser les utilisateurs du groupe
à écrire (write) sur le fichier indiqué.
chmod -R o-x nom_repertoire : l'option "-R" indique que le fichier
indiqué est un répertoire.
Comment changer de propriétaire ?
Syntaxe : chown [-R] nom_user nom_du_fichier
chown mcbatut mon_fichier :
chown -R mcbatut essai :
Comment rechercher un fichier dans l'arborescence ?
find . -name kinou -print : permet de rechercher à partir du
répertoire courant les fichiers de nom kinou et de les afficher.
./kinou
./canards/kinou
find . -name kinou -exec ls -il : permet de rechercher à partir
du répertoire courant les fichiers de nom kinou et de les afficher
sous le format long (l).
2064 -rwx-r-x-r-x 1 mcbatut etude 10716 Fv 21 15:43 ./canards/kinou
find . -name kinou -type d -print : permet de rechercher les fichiers
de nom kinou et mais seulement ceux qui sont de type directory (répertoire).
Comment ne visualiser que les premières lignes d'un fichier
?
head nom_du fichier : visualise les 10 premières lignes du fichier
nom_du_fichier.
head -20 nom_du fichier : visualise les 20 premières lignes
du fichier nom_du_fichier.
Comment ne visualiser que les dernières lignes d'un fichier
?
tail -l nom_du fichier : visualise les 10 dernières lignes du
fichier nom_du_fichier.
head -l -n 20 nom_du fichier : visualise les 20 dernières lignes
du fichier nom_du_fichier.
Comment copier tout un répertoire ?
Syntaxe : cp -r nom_du_repertoire_source nom_du_repertoire_destination
Comment déplacer tout un répertoire ?
Syntaxe : mv nom_du_repertoire_source nom_du_repertoire_destination
Comment détruire un répertoire ?
rmdir nom_du_répertoire : permet de détruire le répertoire
spécifie s'il est vide.
rm -r nom_du_répertoire : permet de détruire les fichiers
du répertoire et le répertoire lui-même.
rm -ir nom_du_répertoire : permet de détruire les fichiers
du répertoire et le répertoire lui-même. en demandant
confirmation (option -i).
Comment archiver tout un répertoire ?
tar -cvf palmi.tar palmi :
c : création (create)
v : pour voir ce qu'il se passe (verbose)
f : fichier (file) dans lequel on stocke l'archivage (palmi.tar). Il
est recommandé de mettre le suffixe tar pour savoir qu'il faut le
désarchiver avec la commande tar.
Comment désarchiver tout un répertoire ?
tar -xvf palmi.tar :
x : extraire (extract)
v : pour voir ce qu'il se passe (verbose)
f : fichier (file) qu'on veut désarchiver.
Comment compresser un fichier ?
compress palmi.tar : compresse le fichier palmi.tar et le stocke dans
le fichier palmi.tar.Z (existe sur tous les unix).
gzip palmi.tar : compresse le fichier palmi.tar et le stocke dans le
fichier palmi.tar.gz (plus efficace que le compress).
Comment décompresser un fichier ?
Attention dépend de l'utilitaire avec lequel le fichier a été
compressé.
uncompress palmi.tar.Z : décompresse le fichier palmi.tar.Z si
le fichier a été compressé avec compress (suffixe
.Z).
gzip -d palmi.tar.gz ou gunzip palmi.tar.gz: décompresse le
fichier palmi.tar.gz si le fichier a été compressé
avec gzip (suffixe .gz).
Les commandes d'archivage ("tar"), de compression ("compress" ou "gzip")
et de décompression ("uncompress ou "gzip -d") sont recommandées
si vous avez des fichiers volumineux à transférer ("ftp").
Y a-t-il de la place sur le ou les disques ?
Commande df
Sur "dga2" et "dga3", tous les utilisateurs de la SAGA sont sous "/utou".
Sur les autres serveurs, les utilisateurs sont sous "/home".
Pour utiliser au mieux votre espace disque, n'oubliez pas de faire
le ménage régulièrement, et utilisez les outils de
compression et de décompression vus ci-dessus.
Comment changer de groupe ?
chgrp nom_groupe nom_fichier
Comment changer de propriétaire et de groupe ?
chown nom_proprietaire.nom_groupe nom_fichier
Les redirections
prog <fichier_entree : permet de lancer le programme exécutable
"prog" et de rediriger l'entreé standard sur un fichier; donc de
lire les donneés dans un fichier.
prog >fichier_sortie : permet de lancer le programme exécutable
"prog" et de rediriger la sortie standard sur un fichier; donc d'écrire
le résultat dans le fichier spécifié. Si ce dernier
existe, il est écrasé.
prog >>fichier_sortie : même chose que précédemment
mais dans ce cas si le fichier existe, il n'est pas écrasé.
Les écritures se font en fin de fichier.
prog 2>fichier_erreurs : permet de rediriger les erreurs dans le fichiers
"fichier_erreurs".
prog <fichier_entree >fichier_sortie >fichier_erreurs : permet de
combiner les 3 redirections.
Généralités sur les processus
Unix créé un processus pour chaque tâche à
réaliser. Un processus est un programme qui peut s'exécuter
en mémoire de manière indépendante. Tout processus
est issu d'un processus père. L'orsqu'un processus fils se termine,
il renvoie au père un code de sortie.
Comment avoir la liste des processus ?
Syntaxe : ps [-aef]
a donne des informations sur tous les processus actifs, sauf ceux qui
n'ont pas de sortie écran.
e donne des informations sur tous les processus actifs.
f affichage long.
Exemples :
ps -aef : permet d'avoir la liste de tous les processus.
ps -aef |more : permet d'avoir la liste de tous les processus page
par page.
ps -u mcbatut : permet d'avoir la liste des processus de l'utilisateur
"mcbatut".
ps -aef |grep mcbatut : permet d'avoir la liste des processus de l'utilisateur
"mcbatut".
ps -aef |grep ora : permet d'avoir la liste des processus oracle.
Comment tuer un processus ?
kill -9 numero_du_processus
Vous ne pouvez tuer que les processus qui vous appartiennent.
Attention, quand on tue un processus, tous les processus fils de ce
processus sont tués. Exemple : si vous êtes en environnement
X et que vous tuez la fenêtre de login, toutes les autres vont se
fermer, c'est comme si vous vous déconnectiez (sauf qu'il risque
d'y avoir des processus en suspens, processus marqués "defunct"
quand on fait un "ps").
Comment lancer un processus en arrière plan ?
Il faut ajouter le caractère & à la fin de la commande.
xterm & : pour ouvrir une nouvelle fenêtre.
xclock & : pour lancer l'horloge.
xcalc & : pour lancer la calculette.
nohup prog & : permet de lancer un programme en arrière
plan et de ne pas le tuer lorsque l'utilisateur se déconnecte. Ajouter
dans ce cas là les redirections : nohup prog >fichier_sortie 2>fichier_erreurs
&
Comment lancer un travail en différé ?
Commande at
at -f fichier_reference -m 1830 : permet de lancer les commandes contenues
dans le fichier "fichier_reference" à partir de 18H30 et d'indiquer
par courrier "-m" (pour mail) la fin de l'exécution différée
des commandes.
at -l : permet de lister les demandes d'exécution en différé.
at -r mcbatut.710779460.b : permet d'annuler la demande de d'exécution
en différée référencée par le numéro
indiqué.
Comment lancer un travail en batch ?
Commande batch
batch -f fichier_reference : permet de lancer les commandes contenues
dans le fichier "fichier_reference".
at -l : permet de lister les demandes de batch.
at -r mcbatut.710779460.b : permet d'annuler la demande de batch référencée
par le numéro indiqué.
Comment lancer un batch sur dga2 ?
Sur "dga2", utiliser le gestionnaire de travaux bath "xloadl"
Comment changer la priorité des processus ?
nice -n 13 prog : permet de lancer le programme exécutable "prog"
avec la priorité 13.
renice -n 19 numero_du_process : permet de modifier la priorité
du processus numéro "numero_du_process".
Les numéros de processus vont de 1 à 19 pour les utilisateurs
(19 étant la priorité la plus faible).
Seul le super-utilisateur (root) peut utiliser une priorité
négative et donc mettre les priorités les plus fortes.
L'aide
Pour avoir l'aide en ligne : man nom_de_la_commande exemple : man ls
Pour avoir l'aide sous l'environnement X_Window : "Infoexplorer" (présent
sur "bazacle" et "dga2"). Pour le lancer taper : info
Quitter
logout
exit
Ctrl-