<texit info> author=D. Pellier, D. Janiszek, J. Mauclair title=Memento Unix v1.0 </texit>
<texit> \newpage </texit> Tout système Unix (Linux, BSD/Mac OS X, System V…) foisonne de commandes. Sans prétendre à l'exhaustivité, nous espérons ici résumer celles qui vous sont à la fois les plus utiles au quotidien et les plus génériques possibles. Les commandes spécifiques à un Unix particulier sont précisées, nous fournissons également le cas échéant les différences entre les shells Bourn/Korn sh bash zsh ksh et les C shells csh et tsh.
$ man [section] sujet
<texit> \vspace{-10mm} </texit>
$ man -k sujet $ apropos sujet
<texit> \vspace{-10mm} </texit>
$ groff - Tascii -man pageman.X | less
<texit> \vspace{-10mm} </texit>
$ info sujet
<texit> \vspace{-5mm} </texit>
Les pages info sont presque exclusivement utilisées par les programmes de la FSF (Free Software Foundation) : qcc, ar, nm, objdump, ranlib, ld, libtool, autoconf, automake… Ils sont aussi dotés de pages man qui sont souvent obsolètes.
$ echo $SHELL
<texit> \vspace{-10mm} </texit>
$ chsh
<texit> \vspace{-10mm} </texit>
Shell | Commentaires | |
---|---|---|
/bin/sh | Le shell POSIX, anciennement Bourne shell. Peu tourné vers l'utilisation interactive, il est le seul à être standardisé. À préférer pour les scripts. Attention: sur les Unix tels que Linux ou Mac OS X, /bin/sh est un lien vers /bin/bash . | |
/bin/ksh | Très répendu, le Korn shell est un Bourne shell amélioré pour l'utilisation interactive. | |
/bin/csh | Le C-shell est un shell utilisant une syntaxe proche du langage C. | |
bash | Shell standard sous Linux, le Bourne-again shell est un Bourne shell très amélioré au niveau de l'utilisation interactive. | |
tcsh | Un C-shell amélioré. | |
zsh | Shell peu répandu mais empruntant à bash et tcsh pour pousser plus loin les fonctionnalités et l'ergonomie interactive. |
Attention: Sur certain Unix, lorsque l'on configure pour root un shell qui n'est pas sur la partition racine, on rend le monde mono-utilisateur inutilisable.
Ils sont disponibles sous bash, csh et tcsh par défaut, mais il ne le sont pas sous sh. Sous ksh, il faut activer ces raccourcis clavier avec
$ set -o emacs
<texit> \vspace{-5mm} </texit>
Remarque: Les touches fléchées permettent également de déplacer le curseur et de naviguer entre les commandes précédentes et suivantes si le terminal est bien configuré.
Raccourcis | Commentaires | |
---|---|---|
Ctrl-P | Commande précédente | |
Ctrl-N | Commande suivante | |
Ctrl-A | Début de ligne | |
Ctrl-E | Fin de ligne | |
Ctrl-K | Efface la ligne à partir du curseur | |
Ctrl-U | Efface la ligne jusqu'au curseur en bash ou toute la ligne csh, tcsh et ksh. | |
Ctrl-B | Déplace le curseur vers le début de la ligne | |
Ctrl-F | Déplace le curseur vers la fin de la ligne |
Le contenu entre (“ ”) est interprété par le shell, le contenu par apostrophes (' ') ne l'est pas. Dans tous les cas, si l'élément considéré ne contient pas de caractère spéciaux, guillemets et apostrophes sont facultatifs.
Actions | Commandes | |
---|---|---|
Afficher une variable VAR | echo $VAR | |
Affiche toutes les variables | set | |
Positionne la variable VAR à la valeur val | VAR='val' ; export VAR sous sh — export VAR='val ' sous bash, sh et ksh | |
Positionne la variable d'environnement VAR à la valeur val | set VAR='val ' sous csh | |
Définit une variables pour une commande commande | VAR='val' commande |
Variables | Commentaires | |
---|---|---|
SHELL | Nom de l'interpréteur de commandes | |
PATH | Chemin de recherche des exécutables | |
LD_LIBRARY_PATH | Chemin de recherche des bibliothèques (sauf sous MacOs X “DYLD_LIBRARY_PATH ”) | |
MANPATH | Chemin de recherche des pages de man | |
HOME | Répertoire maison | |
LANG | Localisation (ex : fr_FR.ISO8859-1 ) | |
LC_CTYPE | Localisation de la classification des caractères et de la casse | |
LC_ALL | Écrase les définitions d'autres paramètres régionaux LANG , LC_.. | |
DISPLAY | Serveur X, i.e., graphique, vers lequel rediriger l'affichage, e.g., DISPLAY=0 pour local | |
LESSCHARSET | Jeu de caractères pour la commande less . Valeurs possibles: ascii, latin1, utf-8, dos, ebcdic, IBM-1047, koi8-r, next | |
IFS | Séparateur de champs ou de mots lors de l'interprétation d'une chaîne (sh, ksh, bash). NB: les espaces (tabulations, retour chariot, caractère espace) sont gérés différemment des autres caractères. Une série de 3 tabulations sera interprétée comme un seul séparateur tandis que '::: ' sera interprété comme trois séparateurs de champs. | |
LOGNAME | Login de l'utilisateur | |
PWD | Le répertoire courant | |
PS1 | Invite de l'interpréteur de commande (bash) — \u usager — \h nom de la manchine — \W dernier niveau du répertoire courant — \w répertoire courant — \A heure au format HH:MM (24heures) — \$ symbole $. NB: Valable aussi pour sh et ksh mais sans les séquences d'échappement. | |
prompt | Invite de l'interpréteur de comande csh — %n usager — %m nom de la machine — %c répertoire courant — %cX X dernier niveau du répertoire courant — %T heure au format HH:MM (24heures) | |
EDITOR | Éditeur de texte par défaut |
Commandes | Commentaires | |
---|---|---|
pwd | Affiche le répertoire courant | |
cd rep | Déplacement dans le répertoire rep | |
cd | Déplacement dans le répertoire home , équivalent à cd ~ | |
cd .. | Déplacement dans le répertoire parent | |
ls [rep] | Liste les fichiers du répertoire rep (si un répertoire n'est pas spécifié, les fichiers du répertoire courant sont listés | |
ls -a [rep] | Liste aussi les fichiers cachés | |
ls -l [rep] | Liste les fichiers avec leur droits d'accès |
Le 1er caractère correspond au type d'objet (fichier, répertoire, etc.). Les suivants se lisent par groupes de 3 et définissent respectivement les droits accordés:
Symboles | Types | |
---|---|---|
- | fichier | |
d | répertoire | |
l | lien symbolique | |
s | socket | |
p | FIFO | |
c | device (mode caractère) | |
b | device (mode bloc) |
Symboles | Droits accordés | |
---|---|---|
- | pas d'accès | |
r | lecture | |
w | écriture | |
x | exécution (fichier), parcourir (répertoire) | |
s | bit set-UID (utilisateur), bit set-GID (groupe) | |
t | sticky bit: impossible d'effacer les fichiers des autres | |
S | bit set-UID sans droit en exécution | |
T | sticky bit sans droit de parcourir |
<texit> \newpage </texit>
$ chown usager fichier
<texit> \vspace{-10mm} </texit>
$ chgrp groupe fichier
<texit> \vspace{-10mm} </texit>
$ chmod mode fichier
<texit> \vspace{-7mm} </texit>
ou mode est:
u
, groupe g
et autres o
.SUGO
ou S = 1
(sticky-bit) ou 2 (set-GID) ou 4 (set-UID) et U
, G
et O
peuvent chacun prendre pour valeur 1 (exécutable) ou 2 ( droit en écriture) ou 4 (droit en lecture). On additionne les modes par chiffre pour obtenir un mode de quatre chiffre.$ chmod ugo+rx repertoire
<texit> \vspace{-7mm} </texit>
$ chmod go-rwx fichier
<texit> \vspace{-7mm} </texit>
$ chmod 1750 repertoire
<texit> \vspace{-7mm} </texit>
$ chmod 660 fichier
<texit> \vspace{-7mm} </texit>
Commandes | Commentaires | |
---|---|---|
mv source cible | Déplace et/ou renomme un fichier | |
cp source cible | Copie un fichier | |
cp -R source cible | Copie un répertoire. Attention: les droits d'accès peuvent être perdus. Pour éviter cela utiliser l'option -p ou utiliser tar | |
ln source lien | Lien fort de source vers lien | |
ln -s source lien | Lien symbolique de source vers lien | |
mkdir répertoire | Crée un répertoire | |
rmdir | Supprime un répertoire vide | |
du -ks répertoire | Affiche la taille du répertoire en Ko | |
rm fichier | Supprime un fichier (Irréversible!) | |
rm -f fichier | Supprime un fichier protégé en écriture | |
rm -R répertoire | Supprime un répertoire | |
touch fichier | Met à jour la date de modification d'un fichier |
Commandes | Commentaires | |
---|---|---|
locate motif | Recherche des fichiers dont le nom correspond au motif | |
updatedb | Met à jour la base de données de locate (linux) | |
/usr/libexec/locate.updatedb | Met à jour la base de données de locate (BSD, MacOS X) | |
find chemin options | Recherche les fichiers correspondant aux options dans chemin |
$ find . -name motif
<texit> \vspace{-7mm} </texit>
f
pour les fichiers réguliers, d
pour les répertoires et l
pour les liens symboliques$ find . -type type
<texit> \vspace{-7mm} </texit>
cmd
sur tous les fichiers trouvés. L'argument {}
désigne le nom du fichier trouvé par find
$ find . -exec cmd \;
<texit> \vspace{-7mm} </texit>
$ find . -print
<texit> \vspace{-7mm} </texit>
html
$ find . -name '*.html'
<texit> \vspace{-7mm} </texit>
png
$ find . -name '*.png' -exec rm {} \;
<texit> \vspace{-7mm} </texit>
Commandes | Commentaires | |
---|---|---|
cmd > fichier | Redirige la sortie standard de la commande cmd dans le fichier spécifié | |
cmd > > fichier | Écrit à la fin du fichier au lieu de l'écraser | |
cmd < fichier | Utilise le fichier spécifié comme entrée de la commande cmd | |
cmd1 | cmd2 | Utilise la sortie de la commande cmd1 comme entrée de la commande cmd2 | |
cmd < < “chaîne” | Utilise l'entrée standard pour la commande cmd jusqu'à que la chaîne spécifiée soit rencontrée | |
cmd 2>&1 > fichier | Redirige la sortie standard et les erreurs dans le fichier spécifié (sh, bash, ksh) | |
cmd >& fichier | Redirige la sortie standard et les erreurs dans le fichier spécifié (csh, tcsh) | |
cmd > fichier1 2> fichier2 | Redirige la sortie standard dans le fichier1 et les erreurs dans le fichier2 (sh, bash, ksh) | |
(cmd > fichier1) >& fichier2 | Redirige la sortie standard dans le fichier1 et les erreurs dans le fichier2 (csh, tcsh) |
liste_fichiers
$ ls -al > liste_fichiers
<texit> \vspace{-10mm} </texit>
$ diff fichier1 fichier2
<texit> \vspace{-7mm} </texit>
patch
$ diff -u fichier1 fichier2
<texit> \vspace{-7mm} </texit>
$ diff -C 2 fichier1 fichier2
<texit> \vspace{-7mm} </texit>
$ cmp fichier1 fichier2
<texit> \vspace{-7mm} </texit>
$ cmp fichier1 fichier2 13 17
<texit> \vspace{-7mm} </texit>
-n
Tri numérique -k n
Tri sur le nième champs de la ligne$ sort fichier
<texit> \vspace{-7mm} </texit>
-c
permet d'afficher le nombre d'occurrences devant chaque ligne)$ uniq fichier
<texit> \vspace{-7mm} </texit>
main.patch
les différences entres deux fichiers sources$ diff -u logiciel2.0/main.c logiciel1.0/main.c > main.patch
<texit> \vspace{-7mm} </texit>
$ diff -C 2 logiciel2.0/main.c logiciel1.0/main.c
<texit> \vspace{-7mm} </texit>
Commandes | Commentaires | |
---|---|---|
wc fichier | Compte le nombre de lignes, de mots, d'octets d'un fichier spécifié | |
cat fichier1 fichier2 | Concatène les fichiers spécifiés | |
more fichier | Affiche un fichier page après page: — espace pour passer à la page suivante — entrée pour passer à la ligne suivante — u pour remonter — q pour quitter. | |
less fichier | Affiche un fichier page après page et permet d'y naviguer avec les flèches Page prec et Page Suiv . | |
head -n 3 fichier | Affiche les 3 premières lignes du fichier spécifié | |
tail -n 3 fichier | Affiche les 3 dernières lignes du fichier spécifié | |
tail -f fichier | Affiche la fin du fichier au fur et à mesure qu's'il est rempli | |
echo 'chaîne' > fichier | Crée le fichier avec le nom spécifié contenant la chaîne en argument | |
echo 'chaîne' > > fichier | Crée la chaîne en argument à la fin du fichier après un saut de ligne | |
cat - > fichier « EOF | Écrit ligne à ligne dans in fichier jusqu'à ligne EOF (End of file) |
/etc/resolv.conf
$ cat /etc/resolv.conf
<texit> \vspace{-7mm} </texit>
$ ls -as | more
<texit> \vspace{-7mm} </texit>
todolist
$ head -n 3 todolist
<texit> \vspace{-7mm} </texit>
/var/log/message
$ tail -n 3 /var/log/message'
<texit> \vspace{-7mm} </texit>
/var/log/apache/error.log
au fur et à mesure qu'il est rempli$ tail -f /var/log/apacheerror.log
<texit> \vspace{-7mm} </texit>
licorne
dans le fichier /etc/hostname
autrement dit changement le nom réseaux de la machine$ echo 'licorne' > /etc/hostname
<texit> \vspace{-7mm} </texit>
list_de_courses-0806.txt
jusqu'à ligne EOF$ cat - > list_de_courses-0806.txt << "EOF"
<texit> \vspace{-7mm} </texit>
La commande grep
recherche un motif dans un ensemble de chemins spécifiés et affiche les lignes correspondantes:
$ grep motif chemins
<texit> \vspace{-7mm} </texit>
$ grep "recette de cassoulet" Mail/inbox/*
<texit> \vspace{-7mm} </texit>
Options | Commentaires | |
---|---|---|
grep -A N | Affiche la ligne et les N lignes suivantes (Linux, BSD, MacOs X) | |
grep -B N | Affiche la ligne et les N lignes précédentes (Linux, BSD, MacOs X) | |
grep -i | Le motif est insensible à la casse | |
grep -P | Le motif est donné comme une expression régulière Perl (Linux, BSD, MacOs X) | |
grep -R | Le motif est recherché récursivement dans les sous-répertoires (Linux, BSD, MacOs X) | |
grep -E | Le motif est une expression régulière étendue (voir ci-dessous) |
Remarque: Lorsque la commande grep -R
n'est pas disponible, on peut effectuer la recherche récursivement une chaîne avec la commande find
:
$ find chemin -exec grep motif {} \; - print
<texit> \vspace{-10mm} </texit>
Elles consistent en des chaînes de caractères modèle auxquelles comparer d'autres chaînes. Dans une expression régulière, certain caractères revêtent un sens particulier:
Caractères | Significations | |
---|---|---|
. | n'importe quel caractère | |
[0-9] | un chiffre | |
[A-Z] | une majuscule entre A et Z | |
[a-z] | une minuscule entre a et z | |
[A-Z0-9] | une majuscule entre A et Z ou un chiffre | |
[a,g,h,i] | l'un des caractère a , g , h ou i |
À ces atomes peuvent être ajoutés des localisateurs:
Localisateurs | Significations | |
---|---|---|
^E | un E en début de ligne | |
toto$ | la chaîne “toto” en fin de ligne |
et des quantifieurs:
Quantifieurs | Significations | |
---|---|---|
E* | un nombre quelconque et éventuellement aucun E | |
[0-9]+ | un nombre quelconque et au moins un chiffre | |
[xyz]? | rien ou une lettre parmi x , y ou z | |
.{3} | 3 caractères n'importe lesquels | |
Z{2,} | au moins 2 caractères Z | |
[A-Z]{,6} | au plus 6 majuscules | |
[a-z]{3,5} | entre 3 et 5 minuscules |
Enfin on peut factoriser des expressions et indiquer des alternatives:
Factorisateurs | Significations | |
---|---|---|
(toto){2} | la chaîne “toto” répétée deux fois | |
(toto | tata)$ | la chaîne ““toto” ou “tata” en fin de ligne |
Le caractère « \ » permet de faire perdre sont sens particulier (« échapper ») à l'un des caractères spéciaux.
Remplace l'expression régulière expr
par la chaîne spécifiée dans un fichier
$ sed 's/expr/chaine/' fichier
<texit> \vspace{-7mm} </texit>
Remplace directement l'expression régulière expr
par la chaîne spécifiée dans un fichier et enregistre l'ancien fichier avec le nom fichiersuff
(Linux)
$ sed -i suff 's/expr/chaine/' fichier
<texit> \vspace{-7mm} </texit>
Remplace plusieurs occurrences par ligne
$ sed 's/expr/chaine/g' fichier
<texit> \vspace{-7mm} </texit>
Remplace l'expression régulière expr
par une chaîne: \1
est remplacé par ce qui correspond à la partie de l'expression régulière entre \(
et \)
$ sed 's/\(groupe\)expr/chaine\1/' fichier
<texit> \vspace{-7mm} </texit>
Remarque: Il peut y avoir plusieurs groupes entre parenthèse dans le premier membre qui se substitue à \1 \2… \9
dans le second membre.
Exemple: remplace tous les noms de fichier se terminant par .html
par des noms de fichier se terminant pas .fr.html
$ sed 's/\(.*\).html/\1.fr.html/' fichier
<texit> \vspace{-7mm} </texit>
Remplacement sur le flux d'entrée standard: les a
sont transformé en d
, les b
en e
et les c
en f
.
$ tr 'abc' def'
<texit> \vspace{-7mm} </texit>
Remarque: On peut utiliser des classes de caractères telles que '[A-Z]
'.
$ tr '\n' '\r' < in > out
<texit> \vspace{-7mm} </texit>
$ tr '\n' '\r\n' < in > out
<texit> \vspace{-7mm} </texit>
$ tr '[A-Z]' '[a-z]' < in > out
<texit> \vspace{-7mm} </texit>
La commande cut
affiche les champs d'un fichier (séparés par des tabulations, index commençant à 1):
x,y
: champs x
et y
x-y
: champs entre x
et y
inclus-d
: délimiteur.$ cut -f champs fichier
<texit> \vspace{-7mm} </texit>
Exemple: Extrait la deuxième et la cinquième colonne d'un fichier nommé data.csv
(séparation des champs par le point-virgule).
$ cut -f 2,5 -d ';' data.csv
<texit> \vspace{-7mm} </texit>
La commande paste
affiche des lignes contenant la ligne correspondante de chaque fichier séparées par des tabulations:
-d
: délimiteur$ paste f1 f2 ...
<texit> \vspace{-7mm} </texit>
Exemple: Si les fichiers f1
, f2
et f3
sont des fichiers numériques, affiche des lignes de nombres sous la forme x1:x2:x3
.
$ paste -d ':l' f1 f2 f3
<texit> \vspace{-7mm} </texit>
La commande join
permet de fusionner deux fichiers ayant un champ commun (jointure):
-1 champ
: champ de jointure dans le fichier 1-2 champ
: champ de jointure dans le fichier 2$ joint fichier1 fichier2
<texit> \vspace{-7mm} </texit>
La commande vi
permet d'éditer un fichier. Pour plus d'information vous pouvez consulter le memento Vi.
$ vi fichier
<texit> \vspace{-7mm} </texit>
Vi dispose de deux modes: édition et commande, qui est le mode au lancement. En mode édition, ESC
permet de passer en mode commande. En mode commande:
:w
enregistre:q
quitte:wq
enregistre et quitte:q!
quitte sans enregistrerLa manipulation du curseur s'effecture avec les touches fléchées si le terminal est bien configuré ou avec les touches:
h
pour se diriger à gauchei
pour se diriger en bask
pour se diriger en hautl
pour se diriger à droitLes commandes d'édition les plus courantes:
x
efface un caractèrer
remplace un caractèredd
coupe la ligne couranteyy
copie la ligne couranteu
annuler3yy
copie 3 lignes à partir de la ligne courantep
colle la dernière ligne coupée ou copier après la ligne courante!
execute une commande externe sur le fichier, e.g., : 1,$!tr '[A-Z]' '[a-z]'
<texit> \vspace{-7mm} </texit>
Commandes | Commentaires | |
---|---|---|
ping [-n] machine | Envoie un ping à la machine spécifiée (-n sans DNS) | |
traceroute [-n] machine | Trace la route d'un paquet de données vers machine spécifiée (-n sans DNS) | |
netstate [-n] | Affiche l'usage du réseaux par les processus | |
netstate [-n] -a | Idem avec affiche des processus serveur | |
fuser , fstat , lsof | Liste détaillée de l'usage des fichiers et du réseau | |
ifconfig -a | Affiche la configuration des interfaces réseaux | |
ifconfig interface IP masque | Configure une interface réseau | |
route [-n] show | Affiche la table de routage (-n sans DNS et sans l'option show pour les systèmes Linux) | |
route [-n] add route [gw] passerelle | Ajoute une entrée de routage (gw uniquement pour Linux) | |
route add default [gw] passerelle | Ajoute une entrée de routage par défaut (gw uniquement pour Linux) | |
route delete default | Efface la route par défaut | |
hostname | Affiche et configure le nom réseau de la machine | |
/etc/resolv.conf | Fichier de configuration de la résolution DNS |
Exemple de fichier resolv.conf
nameserver 192.0.2.15 search example.com
<texit> \vspace{-10mm} </texit>
La commande SSH permet de se connecter à distance à une machine et un port spécifiés
$ ssh [-p port] [usager@]machine
<texit> \vspace{-7mm} </texit>
Examples:
-g
, seule la machine locale peut utiliser ce renvoi.$ ssh -L 223:machine1:23 machine2
<texit> \vspace{-7mm} </texit>
$ ssh -R 2223:machine1:23 machine2
<texit> \vspace{-7mm} </texit>
/etc/ssh/sshd_config
pour un serveur OpenSSH.$ ssh -X [usager@]machine
<texit> \vspace{-7mm} </texit>
La commande scp permet d'effectuer une copie de fichier à distance sécurisée (même principe que la commande cp
).
scp [[usager1]@machine1:]fichier [[usager2]@machine2:]chemin
<texit> \vspace{-7mm} </texit>
Transférer récurcivement un répertoire de manière sécurisée (utiliser l'option -P
pour préciser un port particulier)
scp -R [[usager1]@machine1:]chemin [[usager2]@machine2:]chemin
<texit> \vspace{-7mm} </texit>
La commande sftp permet le transfert defichier de manière sécurisée en mode interactif
sftp machine
<texit> \vspace{-7mm} </texit>
La commande gunzip
décompacte une archive au format .gz
ou tgz
):
$ gunzip fichier.gz
<texit> \vspace{-10mm} </texit>
La commande unzip
décompacte une archive au format .zip
:
$ unzip fichier.zip
<texit> \vspace{-10mm} </texit>
La commande uncompress
décompacte une archive au format .Z
:
$ uncompress fichier.Z
<texit> \vspace{-10mm} </texit>
La commande zip
compacte au format .zip
:
$ zip archive.zip fichiers
<texit> \vspace{-10mm} </texit>
La commande gzip
compacte une archive au format .gz
:
$ gzip fichier
<texit> \vspace{-10mm} </texit>
La commande compress
compacte une archive au format .Z
':
$ compress fichier
<texit> \vspace{-10mm} </texit>
La commande bunzip
permet d'extraire des archives au format .bz2
La commande tar
permet de manipuler des archives en respectant les droits la structure des répertoires archiver.
Exemples:
.tar
d'un répertoire spécifié$ tar -cf archive.tar repertoire
<texit> \vspace{-7mm} </texit>
$ tar -tf archive.tar
<texit> \vspace{-7mm} </texit>
$ tar -xf archive.tar
<texit> \vspace{-7mm} </texit>
$ tar -xf archive.tar -C repertoire
<texit> \vspace{-7mm} </texit>
$ tar -xpf archive.tar
<texit> \vspace{-7mm} </texit>
.tgz
ou tar.gz
$ tar -xzf archive.tar.gz
<texit> \vspace{-7mm} </texit>
.tgz
ou tar.gz
dans le cas général$ gunzip archive.tar.gz | tar -xf -
<texit> \vspace{-7mm} </texit>
.tar.bz2
dans le cas général$ tar -xjf archive.tar.bz2
<texit> \vspace{-7mm} </texit>
La commande sha1
affiche la signature SHA1 d'un fichier
$ sha1 fichier
<texit> \vspace{-7mm} </texit>
Remarque: sous linus la commande s'appelle sha1sum
.
Exemple: Comparaison des signatures SHA1 de deux fichiers
$ sha1sum fich1 fich2 | uniq | wc -l
<texit> \vspace{-7mm} </texit>
La commande md5
affiche la signature MD5 d'un fichier.
$ md5 fichier
<texit> \vspace{-7mm} </texit>
Remarque: sous linus la commande s'appelle md5sum
.
La commande uuencode
encode un fichier au format UU
$ uuencode f > f.uu
<texit> \vspace{-7mm} </texit>
La commande uudecode
décode un fichier au format UU
$ uudecode f.uu > f
<texit> \vspace{-7mm} </texit>
Commandes | Commentaires | |
---|---|---|
ps | Affiche la liste des processus de l'usager attachés à un terminal | |
ps -ax | Affiche tous les processus (BSD, Linux) | |
ps -aux | Affiche tous les processus en indiquant les usagers (BSD, Linux) | |
ps -ef | Affiche tous les processus (System V) | |
top | Affiche les processus les plus gourmands (BSD, Linux). Pour réaliser l'affichage par ordre décroissant de mémoire utilisée option M . | |
systat | Affiche les processus les plus gourmands (BSD, MacOs X) | |
nohup programme | Un lance un programme qui ne meure pas en faim de session | |
kill [-signal] pid | Tue un processus en donnant son PID | |
pkill [-signal] nom | Tue un processus en donnant son nom |
Signaux | Commentaires | |
---|---|---|
-1 (HUP) | Recharge le fichier de configuration | |
-2 (INT) | Interrompt le processus (résultat d'un contrôle-C ) | |
-3 (QUIT) | Quitte le processus | |
-9 (KILL) | Tue le processus immédiatement (à éviter, essayer -15 avant) | |
-15 (TERM) | Tue le processus proprement (par défaut si pas de signal indiqué) | |
-18 (STOP) | Gèle le processus | |
-20 (CONT) | Reprend l'exécution d'un processus gelé |
Commandes | Commentaires | |
---|---|---|
crontab -l | Liste des tâches périodiques de l'usager | |
crontab -e | Édite les tâches périodiques de l'usager avec l'éditeur Vi | |
crontab -e -u usager | Édite les tâches périodiques d'une usager particulier (root uniquement) |
Une commande est composée de 5 champs temporels, d'un nom d'usager s'il s'agit de la table générale du système et d'une commande. Les 5 champs temporels représentent les minutes (0-59), les heures (0-23), les jours du mois (1-31), les mois (1-12) et les jours de la semaine (0-7; le dimanche est représenté par 0 ou par 7):
x,y…
Liste de valeurx-y
Intervalle de valeurs*
toutes les valeurs/n
Période ou pasExemples:
0 5 * * *
*/5 * * * *
10 22 * * 2/2
21 52 * * 1-5
18 36 10,20 * *
Commandes | Commentaire | |
---|---|---|
mount | Affiche la liste des systèmes de fichiers montés | |
mount device rep | Monte un système de fichiers (depuis un périphérique device ) sur un répertoire. NB: device est souvent de la forme /dev/hd* ou /dev/sd* . | |
mount -t msdos device rep | Montage d'une partition MS-DOS | |
df | Affiche l'espace occupé/libre sur les systèmes de fichiers montés: — -k Exprime les tailles en Ko — -h Exprime les tailles dans l'unité la plus significative (Linux, BSD) | |
fdisk device | Modification du partitionnement | |
pdisk device | Modification du partitionnement (MacOs X, BSD) | |
disklabel device | Modification du partitionnement (BSD) | |
newfs device | Formatage d'une partition | |
mkfs device | Formatage d'une partition | |
/etc/fstab | Fichier contenant les correspondances entre devices et points de montage et indication des options de montage. NB: Le fichier fstab est également utilisé pour le montage automatique des partitions au démarrage. |
Commandes | Commentaires | |
---|---|---|
cc -c fcihier.c | Compilation de fichier.c en fichier.o | |
cc -o prog f1.o f2.o | Liaison de f1.o et f2.o pour générer le programme prog | |
ar | Manipulation d'archive .a | |
ranlib | Indexation des archive .a | |
nm | Liste les symboles d'un binaire | |
objdump | Affichage, désassemblage d'un binaire | |
patch -pX < fichier.patch | Applique le patch fichier.patch en supprimant X niveau d'arborescences dans les chemins |
Options | Commentaires | |
---|---|---|
-Wall | Affiche tous les avertissements | |
-Werror | Prend les avertissements pour des erreurs | |
ansi | Exige un style ANSI | |
-I/usr/pkg/include | Recherche des entêtes dans /usr/pkg/include | |
-O, -O2, -O3, -O6 | Optimisation pour la vitesse | |
-Os | Optimisation pour la taille de l'exécutable |
Options | Commentaires | |
---|---|---|
-static | Liaison statique (utilise les librairies .a ) | |
-dynamic | Liaison dynamique (utilise les librairies .so ou .dylb sous MacOs X). | |
-Ibiblio | Lie avec la libraririe biblio.a ou biblio.so | |
-Lchemin | Recherche les librairies dans chemin | |
-Rchemin | Indem, mais effectue la recherche au moment de l'exéctution |
Remarque: cc
et un alias de gcc
sous BSD, Linux et MacOs X.
Commandes | Commentaires | |
---|---|---|
whoami | Affiche son propre login | |
who | Affiche la liste des usagers | |
finger usager | Affiche les informations concernant un utilisateur | |
talk usager[@machine] | Engage une conversation avec un usager | |
write usager | Affiche un message sur le terminal d'un usager | |
wall | Affiche un message à tous les usagers | |
msg [y|n] | Autorise (y) ou pas (n) l'affichage des messages | |
tty | Affiche le nom de son terminal |
Commandes | Commentaires | |
---|---|---|
cvs -d dépôt co -P module | Récupération d'un module depuis le dépôt | |
cvs -d dépôt update -P -d | Mise à jour des sources | |
cvs -d dépôt diff | Liste les differences au dépôt | |
cvs -d dépôt diff | patch -R | Annule les differences au dépôt | |
cvs -d dépôt commit | Valide les modification vers le dépôt |
Remarque: L'option -d
des commandes CVS peut être supprimée si la variable d'environnement CVS_ROOT
est correctement initialisée.
Chemins | Commentaires | |
---|---|---|
/chemin | Dépôt local | |
:pserver:usager@serveur:/chemin | Accès via le protocole pserver au dépôt sur le serveur serveur en utilisant le nom usager | |
usager@serveur:/chemin | Accès via le protocole rsh ou ssh en fonction de la valeur de la variable d'environnement CVS_RSH |
Commandes | Commentaires | |
---|---|---|
svn co dépôt/dossier copie_locale | Récupération d'un dossier depuis le dépôt | |
svn update copie_locale | Mise à jour des sources | |
svv diff dépôt/dossier copie_locale | Liste les differences au dépôt | |
svn distant local | patch -R | Annule les differences au dépôt | |
svn -commit copie_locale | Valide les modification vers le dépôt |
Exemple:
svn co https://www.ens.math-info.univ-paris5.fr/stage-unix/MementoUnix/ / home/mu/MementoUnix/
<texit> \vspace{-10mm} </texit>