Principales commandes Unix |
|
|
|
|
|
|
Introduction
|
Le système UNIX est un système d'exploitation multi-utilisateurs et multi-tâches : plusieurs personnes peuvent partager les ressources de la même machine et plusieurs programmes ou logiciels peuvent s'exécuter concurremment.
Le shell est un interpréteur de commandes : il permet à l'utilisateur de dialoguer avec le système. C'est le programme généralement exécuté lorsqu'un utilisateur se connecte. Il affiche un "prompt" et attend les commandes de l'utilisateur. Le shell est aussi un langage de programmation interprété puissant. Il offre à l'utilisateur un environnement composé d'un ensemble de variables et d'alias et un langage de commandes.
Il existe différents shells :
|
|
|
|
|
|
|
|
sh : Bourne Shell (shell standard unix)
|
|
|
|
|
ksh : Korn Shell
|
|
|
|
|
csh : C Shell
|
|
|
|
|
tcsh : extension de C Shell
|
|
|
|
|
bash : GNU: Bourne advanced Shell
|
|
|
|
Le shell sur la machine babbage d'INFOBIOGEN est le bash
.
|
|
|
|
|
Syntaxe d'une commande UNIX
|
Lorsque la connexion est établie, un prompt s'affiche à gauche de l'écran : il attend de votre part une commande, un ordre qu'il pourra interpréter et exécuter. Le prompt est spécifique de la machine (le prompt de la machine d'INFOBIOGEN est : lovelace$).
Chaque commande saisie au clavier doit être validée par un "return" (Enter) pour être exécutée. Soit :
lovelace$commande -options <arguments>
commande : ce que l'on veut faire
options (facultatives) : comment on le fait
arguments (éventuels) : sur quoi on le fait (fichiers ..)
EX: ls -la /usr/dupont
La commande doit être saisie impérativement en minuscules pour être reconnue.
|
|
|
|
|
Commandes de contrôle
|
exit |
sortie (fin de session) |
CTRL-D |
sortie (équivalent du logout si on est au prompt) |
CTRL-U |
annulation de la ligne courante (Ex:mot de passe erroné) |
CTRL-C |
interruption d'un processus |
CTRL-Z |
suspension d'un processus (bg, envoi en tache de fond) |
CTRL-S et CTRL-Q |
contrôle de flux (arrêt et reprise de l'édition) |
|
|
|
|
|
|
Aides en ligne
|
|
man <commande> ou man <application>
La commande "man" (pour manual) fournit des informations (description, options, syntaxe) sur une commande UNIX ou une application donnée (EX: man ls, man emacs, man chmod).
man -k <commande> donne la liste des commandes contenant dans leur libellé l'argument donné.
man intro
(Voir man intro
). Dresse la liste des commandes accessibles par "man".
|
|
apropos <mot-clé>
(Voir man apropos). Indique le nom des commandes et applications indexées par le mot-clé donné (EX: apropos image).
|
|
|
|
|
|
Connexion et transfert
|
Un site du réseau Internet peut accéder à un autre site du réseau par les commandes ssh (connexion interactive) et ftp (transfert de fichiers). Les sites sont identifiés par des adresses IP et des noms.
nslookup <nom_du_site>
(Voir man nslookup
).Retourne l'adresse IP du site
nslookup babbage.infobiogen.fr
|
|
ssh -l <login-name> <adresse_host>
(Voir man ssh
). Etablit la connexion interactive avec un autre ordinateur sur le réseau Internet. La commande tee
permet d'enregistrer une session de travail ssh dans un fichier.
ssh babbage.infobiogen.fr
|
|
ftp <adresse_host>
(Voir man ftp
). Etablit la connexion en transfert de fichiers avec un autre ordinateur sur le réseau Internet. Retourne un prompt ftp>
ftp babbage.infobiogen.fr
Un ensemble de commandes sont accessibles à ce niveau :
|
|
|
|
|
|
|
|
Commandes utilitaires
|
|
passwd
(Voir man passwd
). Permet de changer de mot de passe.
|
|
who
(Voir man who
). Affiche la liste des utilisateurs connectés.
|
|
date
|
|
cal <mois> <année>
(Voir man cal
). Affiche le calendrier du mois, de l'année spécifiée. Par défaut, années et mois courants.
cal 9 1998 : calendrier du mois de septembre 1998
|
|
echo <chaîne>
(Voir man echo
). Retourne les arguments donnés.
echo est notamment utile pour soumettre des données à un pipe
, pour éditer le contenu de variables d'environnement etc ...
echo dupond@infobiogen.fr > .forward (crée le fichier de réacheminement des mails, cf messagerie
)
echo $USER
|
|
groups
(Voir man groups
). Affiche le(s) groupe(s) auquel appartient un utilisateur.
|
|
finger @<adresse_serveur>
(Voir man finger
). Affiche la liste des utilisateurs connectés sur un serveur donné.
finger @lovelace.infobiogen.fr
|
|
quota -v
(Voir man quota
). Retourne l'espace disque autorisé et utilisé (quota et nombre de fichiers) sur la totalité du compte. L'unité du quota est en kilooctets (~= 1000 octets/caractères), donc par exemple 10000 signifie 10 megaoctets.
|
|
du *
(Voir man du
). Retourne l'espace disque utilisé dans un répertoire donné (répertoire courant par défaut). L'unité est en demi-blocs (soit 512 caractères)
|
|
script
(Voir man script
). Permet d'enregistrer une session de travail dans un fichier.
script (return)
commande1
commande2
...
<CTRL-D>
L'ensemble de la session a été enregistré dans le fichier typescript (par défaut).
|
|
|
|
|
|
Répertoires et fichiers
|
|
|
|
Le système de fichiers (file system) est un arbre (organisation hiérarchique) dont les noeuds sont des répertoires (directories) et les feuilles des fichiers. Le fichier (chemin/nom) peut être désigné :
|
|
|
|
|
|
|
|
|
|
soit par un path absolu (chemin absolu), qui commence par le caractère "/" (racine de l'arbre) suivie de la liste des noeuds (sous-répertoires, séparés par le caractère "/"), qu'il faut suivre depuis la racine pour atteindre le fichier
EX : /env/infobiogen/u/cnrs/dupont/mm.seq
|
|
|
|
|
soit par un path relatif : le fichier dans ce cas est désigné depuis le répertoire courant
EX : u/cnrs/dupont/mm.seq (si on le désigne depuis /env/infobiogen)
EX : mm.seq (si on le désigne depuis /env/infobiogen/u/cnrs/dupont)
|
|
|
Le home directory est le répertoire d'accueil dans lequel on se trouve après avoir établi la connexion sur le compte.
Certains caratères ne sont pas autorisés dans le nom du fichier. Notamment, par exemple, le caractère espace, accepté dans les noms de fichiers sous Mac, joue le rôle de séparateur sous UNIX (il sépare commande, options et paramètres les uns des autres). Pour manipuler malgré tout un fichier qui contient ce type de caractère, le nom de ce fichier devra être encadré de guillemets (ex: rm
"seq 23.dat"). En règle générale, il est préférable de se limiter aux caractères alphabétiques, numériques ainsi que "-" et "_".
Le fichier peut optionnellement contenir une extension. L'extension est une particule suffixe séparée de la racine du nom par un point. Elle vise généralement à renseigner sur la nature du fichier. Exemples :
nom.txt : fichier texte
nom.doc : fichier de documentation
nom.gif : fichier image
nom.for : programme fortran etc...
Certains utilitaires sous UNIX (éditeurs de texte ...) conservent les deux dernières versions du fichier. Dans ce cas, si l'on modifie le contenu d'un fichier déja existant, le nom de l'avant dernière version est
"marqué" d'un signe particulier, tel que "~" (EX: toto et toto~) ou " %".
|
|
|
|
|
|
|
|
Sous UNIX, le caractère de troncature (caractère "joker") est le caractère * : il peut remplacer n'importe quel groupe de caractères d'un nom de fichier donné : il permet ainsi de simplifier la commande et/ou de généraliser une opération sur tout un ensemble de fichiers. Exemples :
ls *.gif édite tous les fichiers .gif (images)
rm ar* détruit tous les fichiers commençant par ar
|
|
|
|
|
|
|
|
|
Droits d'accès aux fichiers |
|
|
Dans tout système UNIX, les répertoires et fichiers ont des droits d'accès. Ceux ci sont indiqués par la commande "ls -la" (voir "man ls"). Par exemple :
drwxr-xr-x 2 martin ibg 11264 Oct 31 19:27 seq
-rw-r--r-- 1 martin ibg 4763 Oct 31 15:19 lookup.list
-rw-r--r-- 1 martin ibg 70786 Oct 31 01:07 ftp.log
drwxr-xr-x 37 martin ibg 1024 Oct 30 20:29 src
|
|
chmod
chmod <droits> <fichier>
(Voir man chmod
). Commande qui permet de changer les droits d'accès d'un fichier.
Les droits peuvent être désignés de deux manières possibles :
chmod <utilisateurs>+/-<droits> <fichier> ou
chmod <droits (octal)> <fichier>
Sous UNIX, on distingue trois catégories d'utilisateurs :
|
|
|
|
|
|
|
|
u : le propriétaire (user)
|
|
|
|
|
g : le groupe (group)
|
|
|
|
|
o : les autres (others)
|
|
|
|
|
a : user, group et other (all)
|
|
|
ainsi que trois types de droits, donnés sur 3 colonnes (rwx) :
|
|
|
|
|
|
|
|
r : lecture (read)
|
|
|
|
|
w : écriture (write)
|
|
|
|
|
x : exécution
|
|
|
|
|
- : aucun droit
|
|
Pour un fichier les droits sont exprimés par une chaîne de 10 caractères : tuuugggooo
t= type du fichier
|
|
|
|
|
|
|
|
- : fichier ordinaire
|
|
|
|
|
d : répertoire (directory)
|
|
|
|
|
l : lien symbolique
|
|
|
|
|
c ou b : fichier spécial
|
|
|
et
|
|
|
|
|
|
|
|
uuu : droits du propriétaire
|
|
|
|
|
ggg : droits du groupe
|
|
|
|
|
ooo : droits des autres
|
|
Pour modifier le droit d'accès d'un fichier donné, utiliser la commande chmod (voir man chmod).
chmod u+r toto donne le droit de lire le fichier toto à l'utilisateur (vous-même)
chmod g+w toto autorise une personne du même groupe que vous à lire le fichier
chmod o+x toto autorise n'importe qui à executer le fichier
chmod a+rx toto autorise le propriétaire, le groupe et les autres à lire et exécuter le fichier
|
|
Droits d'accès et sa correspondance en octal :
|
|
|
|
|
|
|
|
--- : 0
|
|
|
|
|
--x : 1
|
|
|
|
|
-w- : 2
|
|
|
|
|
r-- : 4
|
|
|
|
|
-wx : 3
|
|
|
|
|
r-x : 5
|
|
|
|
|
rw- : 6
|
|
|
|
|
rwx : 7
|
|
|
On peut, ainsi, définir par chmod, les droits en octal. Exemples :
chmod 600 * attribuera : rw------- à tous les fichiers
chmod 644 * attribuera : rw-r--r-- à tous les fichiers
chmod 750 * attribuera : rwxr-x--- à tous les fichiers
|
|
umask
umask <valeur>
(Voir man umask
). La commande umask suivie d'une valeur (3 chiffres en octal) définit le mode de création de fichiers ou de catalogues .
On peut notamment fixer cette valeur en ajoutant la commande umask au fichier du home directory nommé .profile
Par défaut, les droits d'accès d'un compte sont définis par umask 027 : cela signifie que la lecture des fichiers et leur exécution ne peuvent se faire que par l'utilisateur et ceux associés à son groupe (personne a priori), et que l'écriture ne peut se faire par personne d'autre.
La valeur de umask (masque au sens informatique) est soustraite aux droits par défaut des fichiers (666) et des repertoires (777) à leur création.
EX: umask 027 modifie les droits de la manière suivante :
|
|
|
|
|
|
|
|
les fichiers 666 deviennent 640
|
|
|
|
|
les répertoires 777 deviennent 750
|
|
|
|
|
|
|
|
Edition et manipulation de fichiers
|
|
pwd
(Voir man pwd
). Affiche le nom du répertoire courant.
|
|
ls
(Voir man ls
). Liste le nom des fichiers.
ls -l édition du catalogue des fichiers du répertoire courant
ls -la édition de tous les fichiers du répertoire courant
 (y compris les fichiers "cachés" commençant par un .)
ls -lt édition du catalogue par date (récente > ancienne)
ls -lR lecture de la hiérarchie complète des fichiers
|
|
cd <répertoire>
(Voir man cd
). Permet de se placer dans un répertoire donné.
cd /usr/bin pour aller dans le répertoire /usr/bin
cd   retour au répertoire d'accueil
cd ~   retour au répertoire d'accueil
cd seq   changement de répertoire relatif (descente)
cd ..   retour au répertoire père
Le symbole .. représente le répertoire parent.
Le symbole . représente le répertoire courant.
Le symbole ~ représente le répertoire d'accueil (home directory).
Le tilde "~" et le point point ".." peuvent être utilisés dans les chemins d'accès.
|
|
mkdir <répertoire>
(Voir man mkdir
). Crée un répertoire (Make directory).
|
|
rmdir <répertoire>
(Voir man rmdir
). Supprime un répertoire (vide) (Remove directory).
|
|
cat <fichier>
(Voir man cat
). Edition complète du fichier au terminal en mode déroulant.
cat mm.seq édite le fichier mm.seq
|
|
more <fichier>
(Voir man more
). Edition du fichier au terminal en mode page.
Pour obtenir l'aide en ligne : h
Pour éditer la page suivante : barre-espace
Pour éditer la ligne suivante : Return
Pour rechercher une chaîne de caractères : /chaîne
Pour remonter d'une page : b
Pour quitter : q
|
|
tee
(Voir man tee
). Copie l'entrée standard vers la sortie standard.
telnet | tee ma_session.txt enregistre la session de travail telnet dans un fichier nommé ma_session.txt
|
|
less <fichier>
(Voir man less
). Edition du fichier au terminal en mode page (équivalent de more).
Pour obtenir l'aide en ligne : h
|
|
head -n <fichier>
(Voir man head
). Affiche les n 1ères lignes du fichier.
|
|
tail -n <fichier>
(Voir man tail
). Affiche les n dernières lignes du fichier.
|
|
wc -l -w -c <fichier>
(Voir man wc
). Retourne le nombre de lignes, de mots, de caractères dans le fichier indiqué.
|
|
sort <fichier>
|
|
cp <file1> <file2>
(Voir man cp
). Copie le contenu de <file1> dans <file2>, en détruisant <file2> s'il existait.
|
|
mv <file1> <file2>
(Voir man mv
). Renomme ou déplace <file1> en <file2> (Move).
mv mm.seq aa.seq : renomme mm.seq en aa.seq
mv <file1> <répertoire>
Déplace (et éventuellement renomme) <file1> dans <répertoire>.
mv mm.seq ~/data : déplace le fichier mm.seq dans le répertoire préexistant data
mv mm.seq ../liens/bar : renomme mm.seq en bar et le déplace dans le répertoire préexistant liens
|
|
touch <fichier>
(Voir man touch). Crée un fichier vide.
|
|
rm <fichier>
(Voir man rm
). Supprime le fichier (Remove).
rm mm.seq supprime le fichier mm.seq
rm afl*.seq supprime tous les fichiers commençant par afl
rm -i *.seq supprime tous les fichiers ayant le suffixe .seq, en demandant préalablement confirmation de destruction pour chacun d'eux.
rm -i -- -b.dat supprime un fichier dont le nom contient un caractère "interdit" (ici, par exemple, le caractère "-" dans le nom "-b.dat"). L'option "--", en effet, inhibe la fonction des caractères qui suivent.
rm -r <répertoire>
Supprime un répertoire, ainsi que rous les sous-répertoires et les fichiers qu'il contient (Remove récursively).
|
|
grep <chaîne> <fichier>
(Voir man grep
). Recherche une chaîne de caractères (pattern) dans un fichier donné et édite les lignes la contenant.
(Voir aussi man egrep
: recherche de toute expression régulière).
grep GDB * recherche la chaîne GDB dans tous les fichiers du répertoire courant
grep cours -i *.txt recherche la chaîne gdb trouvée indifféremment en minuscules ou majuscules dans tous les fichiers .txt du répertoire courant
grep error -v *.txt édite toutes les lignes, exceptées celles contenant le mot error
grep "valeur de la variable" arc.for : recherche la chaîne valeur de la variable dans le fichier arc.for
grep 'caractère "A"' table.txt : recherche la chaîne caractère "A" dans le fichier table.txt
|
|
find <répertoire> -name <fichier> -print
(Voir man find
). Recherche le fichier dans toute l'arborescence (fichiers et sous-répertoires) issue du répertoire indiqué.
find . -name mm.seq -print; recherche le fichier mm.seq depuis le répertoire courant
find ~ -name a.out -print; recherche le fichier a.out depuis le home directory
|
|
cmp <file1> <file2>
(Voir man cmp). cmp (compare) édite le numéro des lignes différentes entre deux fichiers.
|
|
diff <file1> <file2>
(Voir man diff
). Edite les lignes différentes entre deux fichiers.
|
|
|
|
|
|
Compression, encodage, archivage
|
La compression d'un fichier vise à réduire la taille d'un fichier. Grossièrement, le taux de compression atteint est de 50-60 pourcents de la taille originelle.
|
|
compress <fichier>
|
|
uncompress <fichier>
|
|
zcat <fichier>
(Voir man zcat
). Edite un fichier.Z (compressé avec l'utilitaire compress).
|
|
zgrep <fichier>
Recherche une chaîne de caractères dans un fichier.Z (compressé avec l'utilitaire compress).
|
|
gzip <fichier>
(Voir man gzip
). Compression. Génère un fichier.gz.
Offre de meilleures performances que compress mais par contre demande un temps de compression plus important.
|
|
gunzip <fichier>
(Voir man gunzip
). Décompression d'un fichier.gz.
|
|
uuencode <fichier>
(Voir man uuencode
). Convertit un fichier binaire en un fichier.uue encodé qui peut être envoyé par messagerie.
Pour encoder un fichier par uuencode, celui-ci doit respecter les contraintes suivantes :
begin <mode> <nom_du_fichier_décodé>
corps du fichier
end
Le mode
(3 chiffres en octal, ex:600) correspond aux protections du fichier source : le fichier décodé aura les mêmes et portera le nom indiqué.
|
|
uudecode <fichier>
|
|
tar cvf <tarfile> <répertoire_à_tarer>
(Voir man tar
). Archive (tare) un ensemble de fichiers ou les fichiers d'un répertoire en un fichier.tar unique (=tarfile).
-f introduit le fichier et -v (verbeux) édite les opérations en cours.
tar cvf archive.tar ar* archive les fichiers ar* dans le fichier tfd.tar.
tar cvf archive.tar ~/edit archive le répertoire edit dans le fichier tfd.tar.
tar cvf archive.tar edit visualise le contenu du fichier d'archive
Il arrive souvent que les fichiers .tar soit en plus comprimés à l'aide des commandes compress (extension .tar.Z) ou gzip (extension .tar.gz ou .tgz).
tar xvf <tarfile>
Désarchive (éclate, restaure) un fichier.tar (tarfile) en n fichiers d'origine.
tar xvf archive.tar désarchive le fichier tfd.tar.
|
|
sh <fichier.shar>
Les fichiers .shar sont des fichiers d'archives auto-extractibles (shell).
sh extrait les fichiers archivés dans un fichier.shar.
|
|
|
|
|
|
Editeurs de fichiers
|
|
(Voir man vi
). L'éditeur vi est un peu complexe à utiliser (man vi pour tous les détails). Trois modes aux fonctionnalités différentes sont disponibles sous vi : mode commande (commandes par des caractères spéciaux), mode insertion (saisie du texte) et mode ligne (commandes saisies en bas du fichier).
vi <fichier>
Ouvre un fichier. On se trouve alors en mode commande.
Si le fichier n'existe pas, vi le crée.
Pour passer d'un mode à un autre :
|
automatique |
|
caractère |
|
|
------> |
|
------> |
|
Mode LIGNE |
|
Mode COMMANDE |
|
Mode INSERTION |
|
------> |
|
------> |
|
|
: |
|
<ESC> |
|
Mode INSERTION (invisible)
|
|
i |
insère avant le curseur |
|
|
a |
insère après le curseur |
o |
ouvre une nouvelle ligne en dessous |
O |
ouvre une nouvelle ligne au dessus |
ESCape |
quitte le mode insertion et retourne au mode commande |
ESCape : |
quitte le mode insertion et passe au mode ligne |
Mode COMMANDE (invisible)
|
|
effacement :
x |
délétion de caractère |
|
|
r |
remplacement du caractère courant |
dw |
supprime le mot courant |
dd |
supprime la ligne courante |
ndd |
supprime n lignes |
d0 |
efface jusqu'au début de ligne |
dG |
efface jusqu'en fin de ligne |
J |
unit la ligne suivante à la ligne courante |
u |
annule la dernière fonction d'édition |
. |
répète la dernière fonction d'édition |
déplacement :
|
|
les flèches permettent de se déplacer.<CTRL U> et <CTRLD> pour monter et descendre.
^,$ |
pour se déplacer en début, en fin de ligne. |
|
|
G |
position en fin de fichier (équivalent à:$) |
nG |
position sur la ligne n |
copie (copY) et insertion de texte (Paste) :
Y |
sélectionne une ligne |
|
|
5Y |
sélectionne 5 lignes |
p |
dépose la sélection après le curseur |
P |
dépose la sélection avant le curseur |
sh |
accès temporaire au shell (retour par exit) |
Mode LIGNE
|
|
:100 |
positionne sur la ligne 100 |
|
|
/chaîne |
recherche une chaîne de caractères |
:3,8d |
annule les lignes 3 à 8 |
:w fichier |
écrit dans un autre fichier |
:wq ou x |
termine en sauvant |
:q! |
quitte (impérativement) sans sauver |
:set nu |
affiche les numéros de lignes |
:set all |
montre les options |
:set nonu |
supprime une option |
|
|
(Voir man emacs
). L'éditeur emacs a une utilisation plus intuitive que vi.
emacs <fichier>
Ouvre un fichier.
Les touches Contrôle et Escape, largement utilisées sous emacs, sont ci-dessous notées respectivement C- et E-.
EX: C-k signifie "appuyez sur la touche Control et, pendant qu'elle est enfoncée, la touche k".
QUITTER Emacs C-x puis C-c
ou C-x puis pomme-c (sur Macintosh)
Répondre "yes" à la demande de sauvegarde.
SAUVEGARDER sans quitter Emacs C-x puis C-s
DEPLACEMENT DU CURSEUR :
en arrière en avant
caractère C-b C-f
mot E-b E-f
ligne C-p C-n
aller en debut (fin) de ligne C-a C-e
aller en debut (fin) de fichier E-< E->
écran précédent (suivant) E-v C-v
Les flèches horizontales du clavier correspondent a :
C-b et C-f
Les flèches horizontales du clavier correspondent a :
C-p et C-n
EFFACEMENT DE CARACTERES : touche Back Space
ou touche Del
ou C-d
RECHERCHER :
Chercher en avant C-s
Chercher en arrière C-rC-s ou C-r
pour répéter la rechacune des directions
Arrêter la recherche en cours C-g
DEPLACER UNE PARTIE DE TEXTE :
Sélectionner le début de la zone par C-espace.
Placer le curseur à la fin de la zone a déplacer.
Effacer cette partie sélectionnée par C-w
Enfin, placer le curseur à l'endroit où l'on veut restituer le texte,
et rappeler celui-ci par C-y
Pour appeler l'aide en ligne C- h ? puis initiale de la commande.
Pour la faire disparaître, C- x 1
Si on est bloqué : C- g
Pour effacer une ligne après le curseur : C- k
Pour la rappeler à l'endroit ou se trouve le curseur : C- y
Pour insérer un fichier : C- x i nom-du-fichier.
|
|
|
pico <fichier>
(Voir man pico
). Ouvre un fichier.
<CTRL X> quitter en sauvegardant le fichier édité.
Les différentes commandes sont données en bas d'écran (CTRL noté ^):
^G Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
|
|
|
|
|
|
Redirection, pipe
|
Lecture Ecriture
Standard Input ====> Commande ====> Standard Output + Error
[clavier] [Ecran]
Si l'on souhaite rediriger les entrées et sorties, la commande prendra la syntaxe suivante :
Exemples :
who > names
édite les noms dans le fichier names
(pwd; ls -l) > fichiers.out
écrit le nom du répertoire et le résultat de la commande ls dans fichier.out
le caractère ; permet d'enchaîner des commandes
ls -lR > liste.archive
grep -i dupont fichier > resul
elm -s "subject" dupont@pasteur.fr < doc.txt
elm envoie le fichier doc.txt à dupont
cat file1 file2 >filen
concatène deux fichiers (contenu de file2 apres file1) dans un troisième
cat file2 >>file3
concatène le contenu du fichier file2 à la fin du fichier file3
cat ligne > essai
écrit le contenu de ligne dans le fichier essai
Pour créer un fichier et ajouter plusieurs lignes :
cat > essai<return>
ligne1 <return>
ligne2 <return>
....
<CTRL D>
mon_programme << end (return)
paramètre1
paramètre2
...
end
Cette syntaxe permet de soumettre au programme les différents paramètres (saisis normalement en mode interactif) que celui-ci lira jusqu'au mot indiqué après << (dans le cas-ci, end).
|
|
|
|
|
|
Pipe
|
Le caractère "|" (opérateur pipe) redirige la sortie standard (sdtout) d'une commande dans l'entrée standard (stdin) d'une autre commande. Plusieurs commandes peuvent être combinées ainsi.
commande1 | commande2 | ...
who | sort
tri et édite les utilisateurs connectés
ls -lR | more
édite page par page les noms de fichiers du répertoire
cat fichier | elm -s "subjet" dupont@pasteur.fr
le contenu du fichier est envoyé à dupont via elm
ls -lR | grep -i "apr 10" > liste.apr
sélectionne les fichiers daté du 10 avril et les écrit dans le fichier liste.apr
|
|
|
|
|
|
Processus
|
Le système UNIX est un système d'exploitation multi-utilisateurs et multi-tâches. Le calculateur partage son temps entre tous les processus présents à un moment donné.
Le multitâches est réalisé par l'élection d'un processus parmi d'autres, pour un temps déterminé. Le calculateur exécute pendant une tranche de temps les instructions de ce processus.
L'aspect multiutilisateurs est une extension du multitâches, qui permet à plusieurs utilisateurs de faire exécuter leurs processus respectifs par le calculateur.
Processus du noyau :
- lorsque le calculateur est mis en service, le processus 1, nommé init, est crée : il est responsable des demandes de login sur chaque terminal.
- le scheduler alloue du temps CPU alternativement à tous les processus actifs du système.
- le swapper est activé lorsque plusieurs processus sont exécutés et que le noyau n'a plus de place en RAM (mémoire courante). Il possède le numéro 0. Il détermine, suivant des critères variés, le processus qui doit être déporté sur le disque.
- le pagedaemon est activé lorsqu'un processus recquiert une page non présente en RAM.
Le processus 1 est l'ultime Parent de tous les processus.
Les processus peuvent engendrer d'autres processus (processus enfants).
Chaque processus possède un numéro d'identification, le process id ou pid. Ce pid est attribué séquentiellement, débutant de 0, et est incrémenté à chaque création. Un utilisateur ne peut contrôler un processus s'il n'en est pas propriétaire.
|
|
ps
(Voir man ps
). Affiche les informations sur les processus en cours
ps -fu nom_login liste complète de tous les processus rattachés à l'utilisateur donné.
ps -eaf liste complète de tous les processus
Signification des champs retournés :
UID nom de l'utilisateur
PID numéro d'identification du processus
PPID numéro d'identification du processus père
STIME heure à laquelle le processus a été lancé
TIME temps CPU utilisé par le processus
CMD commande
<ctrl-c>
Termine le processus premier-plan courant
<ctrl-z>
Stoppe l'exécution du processus premier-plan courant (qui pourra être relancé par bg).
|
|
kill -9 <numéro_de_PID>
(Voir man kill
). Arrête le processus désigné.
<commande> &
Lance un programme en arrière plan.
sort -r ~/words > ~/edit/dico/words &
xterm & lance une nouvelle fenêtre xterm
|
|
jobs
(Voir man jobs
). Affiche les jobs (et leur numéro) stoppés et/ou passés en arrière-plan.
|
|
fg %<numéro_job>
(Voir man fg
). Ramène le job courant de l'arrière-plan au premier plan (foreground).
|
|
bg %<numéro_job>
(Voir man bg
). Relance un job stoppé et le place en arrière-plan (en tache de fond, background).
|
|
truss <commande>
(Voir man truss ). "Radiographie" une commande donnée : truss exécute la commande donnée en argument et édite simultanément tous les appels de fichiers ainsi que toutes les instructions exécutées par cette commande.
truss -topen mon_programme "trace" sélectivement toutes les lignes contenant "open"
|
|
|
|
|
|
Lancement d'un programme en différé
|
|
batch <programme>
|
|
at -f <programme>
|
|
atq
(Voir man atq
). Edite les jobs en attente, lancés avec la commande at.
|
|
cancel <numero_job>
(Voir man cancel
). Supprime un job en attente.
cancel 845657231.b
|
|
|
|
|