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-