Outils pour utilisateurs

Outils du site


mementos:unix

<texit info> author=D. Pellier, D. Janiszek, J. Mauclair title=Memento Unix v1.0 </texit>

Memento Unix

<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.

Aide

Obtenir de l'aide sur un sujet

  $ man [section] sujet

<texit> \vspace{-10mm} </texit>

Lister les pages man parlant d'un sujet

$ man -k sujet
$ apropos sujet

<texit> \vspace{-10mm} </texit>

Afficher la page d'un manuel contenue dans le fichier pageman.X

$ groff - Tascii -man pageman.X | less

<texit> \vspace{-10mm} </texit>

Obtenir de l'aide sur un sujet (page info)

$ 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.

Référence des sections du man

  1. commandes
  2. appels système
  3. appels de bibliothèques
  4. interface noyau et drivers
  5. fichiers de configuration
  6. jeux
  7. standards
  8. commandes d'administration
  9. documentation du noyau

Confort et shells

Pour identifier l'interpréteur de commandes actif

$ echo $SHELL

<texit> \vspace{-10mm} </texit>

Pour changer d'interpréteur

$ chsh

<texit> \vspace{-10mm} </texit>

Les différents shells

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.

Raccourcis clavier

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

Les variables d'environnement

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 shexport 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 fréquemment utilisées

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

Gérer les droits d'accès

Conventions pour les droit 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:

  1. au propriétaire
  2. au groupe propriétaire du fichier et
  3. aux autres usagers.

Types d'objets

Symboles Types
- fichier
d répertoire
l lien symbolique
s socket
p FIFO
c device (mode caractère)
b device (mode bloc)

Types de droits accordés

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>

Changer le propriétaire d'un fichier

$ chown usager fichier

<texit> \vspace{-10mm} </texit>

Changer le groupe d'un fichier

$ chgrp groupe fichier

<texit> \vspace{-10mm} </texit>

Changer les droits d'accès d'un fichier

$ chmod mode fichier

<texit> \vspace{-7mm} </texit>

ou mode est:

  • soit sous la forme groupe(s) + droit(s) (ajout de droits)
  • soit sous la forme groupe(s) - droit(s) (suppression de droits) avec groupe : usager u, groupe g et autres o.
  • soit sous la forme octale 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.
Exemples: changer les droits sous la forme groupe + droit
  • Permet à tous de lister et de parcourir un répertoire
$ chmod ugo+rx repertoire

<texit> \vspace{-7mm} </texit>

  • Retire tous les droits aux utilisateurs autres que le propriétaire du fichier.
$ chmod go-rwx fichier

<texit> \vspace{-7mm} </texit>

Exemples: changer les droits sous la forme octal SUGO
  • L'utilisateur courant et le groupe peuvent parcourir le répertoire et le lire
$ chmod 1750 repertoire

<texit> \vspace{-7mm} </texit>

  • Le fichier est accessible en lecture et en écriture au groupe et à l'utilisateur propriétaire du fichier
$ chmod 660 fichier

<texit> \vspace{-7mm} </texit>

Manipuler les fichiers

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

Rechercher 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

Principales options de la commande ''find''

  • Recherche à partir du répertoire courant les fichiers dans le nom respectif le motif
$ find . -name motif

<texit> \vspace{-7mm} </texit>

  • Recherche à partir du répertoire courant les fichiers du type spécifié : f pour les fichiers réguliers, d pour les répertoires et l pour les liens symboliques
$ find . -type type

<texit> \vspace{-7mm} </texit>

  • Exécute la commande 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>

  • Affiche les fichiers trouvés (System V uniquement, implicite pour linux, MacOs X et BSD)
$ find . -print

<texit> \vspace{-7mm} </texit>

Exemples
  • Recherche dans le répertoire courant tous les fichiers dont l'extension est html
$ find . -name '*.html'

<texit> \vspace{-7mm} </texit>

  • Supprime à partir du répertoire courant tous les fichiers dont l'extension est png
$ find . -name '*.png' -exec rm {} \;

<texit> \vspace{-7mm} </texit>

Redirection des flux

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)
Exemple
  • Liste tous les fichiers du répertoire courant avec leurs droits d'accès dans le fichier liste_fichiers
$ ls -al > liste_fichiers

<texit> \vspace{-10mm} </texit>

Comparer et trier des fichiers

  • Affiche les différences entres les deux fichiers texte spécifiés
$ diff fichier1 fichier2

<texit> \vspace{-7mm} </texit>

  • Affiche les différences entres les deux fichiers spécifiés au format patch
$ diff -u fichier1 fichier2

<texit> \vspace{-7mm} </texit>

  • Compare et affiche un contexte de deux lignes pour chaque différence constatée
$ diff -C 2 fichier1 fichier2

<texit> \vspace{-7mm} </texit>

  • Compare deux fichiers binaires spécifiés
$ cmp fichier1 fichier2

<texit> \vspace{-7mm} </texit>

  • Compare le premier fichier à partir du 13ème octet et le second fichiers à partir du 17ème
$ cmp fichier1 fichier2 13 17

<texit> \vspace{-7mm} </texit>

  • Trie les lignes d'un fichier. Options:
    • -n Tri numérique
    • -k n Tri sur le nième champs de la ligne
$ sort fichier

<texit> \vspace{-7mm} </texit>

  • Supprime les doublons de lignes dans un fichier trié (l'option -c permet d'afficher le nombre d'occurrences devant chaque ligne)
$ uniq fichier

<texit> \vspace{-7mm} </texit>

Exemples
  • Stock dans un fichier 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>

  • Affiche les différences entres deux fichiers sources en précisant 2 lignes de contexte
$ diff -C 2 logiciel2.0/main.c logiciel1.0/main.c

<texit> \vspace{-7mm} </texit>

Afficher le contenu de fichiers

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)
Exemples d'utilisation
  • Affiche le fichier /etc/resolv.conf
$ cat /etc/resolv.conf

<texit> \vspace{-7mm} </texit>

  • Liste tous les fichiers du répertoire courant et les affiche page après page
$ ls -as | more

<texit> \vspace{-7mm} </texit>

  • Affiche les 3 premières lignes du fichier todolist
$ head -n 3 todolist

<texit> \vspace{-7mm} </texit>

  • Affiche les 3 dernières ligne du fichier de log /var/log/message
$ tail -n 3 /var/log/message'

<texit> \vspace{-7mm} </texit>

  • Affiche la fin du fichier de log d'erreur du serveur Web apache /var/log/apache/error.log au fur et à mesure qu'il est rempli
$ tail -f /var/log/apacheerror.log

<texit> \vspace{-7mm} </texit>

  • Écrit la ligne licorne dans le fichier /etc/hostname autrement dit changement le nom réseaux de la machine
$ echo 'licorne' > /etc/hostname

<texit> \vspace{-7mm} </texit>

  • Écrit ligne à ligne dans le fichier list_de_courses-0806.txt jusqu'à ligne EOF
$ cat - > list_de_courses-0806.txt << "EOF"

<texit> \vspace{-7mm} </texit>

Recherche de chaînes avec grep

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>

  • Exemple: recherche tous les fichiers du répertoire “Mail/inbox/” avec un nom contenant la chaîne de caractères “recette de cassoulet”:
$ 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>

Les expressions régulières étendues

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.

Remplacer des chaînes

La commande sed

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>

La commande tr

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]'.

Exemples (La conversion de fichier)
  • Conversion de fichier LF Unix ⇒ CR MacOS
$ tr '\n' '\r' < in > out

<texit> \vspace{-7mm} </texit>

  • Conversion de fichier LF Unix ⇒ CRLF MS-DOS
$ tr '\n' '\r\n' < in > out

<texit> \vspace{-7mm} </texit>

  • Conversion majuscules ⇒ minuscule
$ tr '[A-Z]' '[a-z]' < in > out

<texit> \vspace{-7mm} </texit>

Éditer des fichiers

La commande cut

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

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

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

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 enregistrer

La 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 à gauche
  • i pour se diriger en bas
  • k pour se diriger en haut
  • l pour se diriger à droit

Les commandes d'édition les plus courantes:

  • x efface un caractère
  • r remplace un caractère
  • dd coupe la ligne courante
  • yy copie la ligne courante
  • u annuler
  • 3yy copie 3 lignes à partir de la ligne courante
  • p colle la dernière ligne coupée ou copier après la ligne courante
  • 1,$s/foo/bar/g remplace foo par bar (même syntaxe que la commande sed)
  • ! execute une commande externe sur le fichier, e.g.,
: 1,$!tr '[A-Z]' '[a-z]'

<texit> \vspace{-7mm} </texit>

Réseaux

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>

Connexion à une machine distante

La commande SSH

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:

  • Les connexions au port 2223 de la machine locale seront renvoyées au port 23 de la machine 1, en passant pas un tunnel SSH entre la machine locale et la machine 2. À moins d'utiliser l'option -g, seule la machine locale peut utiliser ce renvoi.
$ ssh -L 223:machine1:23 machine2

<texit> \vspace{-7mm} </texit>

  • Les connexions au port 23 de la machine 2 seront renvoyées au port 23 de la machine, en passant par un tunnel SSH entre la machine 2 et la machine locale.
$ ssh -R 2223:machine1:23 machine2

<texit> \vspace{-7mm} </texit>

  • Redirige l'affichage graphique si autorisé avec un X11Forwarding yes dans /etc/ssh/sshd_config pour un serveur OpenSSH.
$ ssh -X [usager@]machine

<texit> \vspace{-7mm} </texit>

La commande scp

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

La commande sftp permet le transfert defichier de manière sécurisée en mode interactif

sftp machine

<texit> \vspace{-7mm} </texit>

Archivage, signature, UUencode

La commande gunzip

La commande gunzip décompacte une archive au format .gz ou tgz):

$ gunzip fichier.gz

<texit> \vspace{-10mm} </texit>

La commande unzip

La commande unzip décompacte une archive au format .zip:

$ unzip fichier.zip

<texit> \vspace{-10mm} </texit>

La commande uncompress

La commande uncompress décompacte une archive au format .Z:

$ uncompress fichier.Z

<texit> \vspace{-10mm} </texit>

La commande zip

La commande zip compacte au format .zip:

$ zip archive.zip fichiers

<texit> \vspace{-10mm} </texit>

La commande gzip

La commande gzip compacte une archive au format .gz:

$ gzip fichier

<texit> \vspace{-10mm} </texit>

La commande compress

La commande compress compacte une archive au format .Z':

$ compress fichier

<texit> \vspace{-10mm} </texit>

La commande bunzip

La commande bunzip permet d'extraire des archives au format .bz2

La commande tar

La commande tar permet de manipuler des archives en respectant les droits la structure des répertoires archiver.

Exemples:

  • Créer une archive .tar d'un répertoire spécifié
$ tar -cf archive.tar repertoire

<texit> \vspace{-7mm} </texit>

  • Examine le contenu d'une archive spécifiée
$ tar -tf archive.tar

<texit> \vspace{-7mm} </texit>

  • Extrait le contenu d'une achive
$ tar -xf archive.tar

<texit> \vspace{-7mm} </texit>

  • Extrait l'archive dans un répertoire donné
$ tar -xf archive.tar -C repertoire

<texit> \vspace{-7mm} </texit>

  • Extrait une archive en respectant au mieux les droits d'accès aux fichiers contenus dans l'archive
$ tar -xpf archive.tar 

<texit> \vspace{-7mm} </texit>

  • Décompacte et extrait une archive au format .tgz ou tar.gz
$ tar -xzf archive.tar.gz

<texit> \vspace{-7mm} </texit>

  • Décompacte et extrait une archive au format .tgz ou tar.gz dans le cas général
$ gunzip archive.tar.gz | tar -xf -

<texit> \vspace{-7mm} </texit>

  • Décompacte et extrait une archive au format .tar.bz2 dans le cas général
$ tar -xjf archive.tar.bz2 

<texit> \vspace{-7mm} </texit>

La commande sha1

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

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

La commande uuencode encode un fichier au format UU

$ uuencode f > f.uu

<texit> \vspace{-7mm} </texit>

La commande uudecode

La commande uudecode décode un fichier au format UU

$ uudecode f.uu > f

<texit> \vspace{-7mm} </texit>

Gestion des processus

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 les plus souvent utilisés

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é

Réaliser des tâches de maintenance périodiques

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)

Format des commandes crontab

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 valeur
  • x-y Intervalle de valeurs
  • * toutes les valeurs
  • /n Période ou pas

Exemples:

  • Tous les jours: 0 5 * * *
  • Toutes les 5 minutes: */5 * * * *
  • Un mardi sur deux à 10h22: 10 22 * * 2/2
  • Du lundi au vendredi à 21h52: 21 52 * * 1-5
  • Le 10 et le 20 de chaque mois à 18h48: 18 36 10,20 * *

Gestion des disques et des partitions

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.

Développement

Les commandes de bases

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

Les principales options de GCC pour la compilation

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

Les principales options de GCC pour la liaison

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.

Utilisateurs

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

Contrôle de version avec CVS et SVN

Les commandes de bases de CVS

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.

Les chemins de dépôt

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

Les commandes de bases de SVN

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>

mementos/unix.txt · Dernière modification : 2021/10/04 14:48 de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki