COMMANDES Unix / Linux


Les variables systèmes :

LOGNAME : nom de login
MAIL : indique où se trouve la boîte aux lettres
HOME : chemin du répertoire home
PATH : variable de recherche. Elle contient des répertoires séparés par le caractère : . La recherche des fichiers se fera dans l'ordre de saisie dans PATH
CDPATH : chemin de recherche dans un cd
PS1 -> PS4 : chaînes prompt
IFS : séparateur . Par défaut, l’espace, tab et saut de ligne
TERM : type de terminal utilisé
COLUMNS : nombre de colonnes du terminal
LINES : nombre de lignes du terminal
EDITOR :éditeur par défaut
HISTFILE : fichier d’historique
SHELL : shell utilisé

PATH=.:/ : Remplace le contenu de la variable PATH par .:/
Echo $PATH : Affiche le contenu de la variable PATH.

Les variables spéciales :

$? Valeur de retour de la dernière commande exécutée
$$ PID du shell actif
$! PID du dernier processus d’arrière plan
$- Options du shell
$0 à Sn Liste des paramètres passé à un script. $0 est le nom du script,
$1 son 1er paramètre, etc..
$# Contient le nombre de paramètres transmis
$* Liste de tous les paramètres
$@ Idem à $* mais sous forme séparée (chaque valeur entre cote)

Redirection des entrées-sorties :

< => L'entrée standard est lue à partir d'un fichier.
> => La sortie standard est redirigée dans un fichier (raz du fichier).
>> => La sortie standard est redirigée dans un fichier (concaténation du fichier).
2> => Les erreurs sont redirigées.
2>&1 => Les erreurs sont redirigées dans le même fichier que la sortie standard.

Pipe :
comd1 | comd2 équivaut à : comd1 > fich
comd2 < fich

Exécuter une commande en tâche de fond

Syntaxe :
commande [options] [arguments] &

Le & placé à la suite d'une commande permet de lancer celle-ci en tâche de fond.
Ceci à pour effet de lui attribuer un numéro (d'ordre) de job. [1] [2] … [num].


Documentation
Organisation de la documentation
- Les manuels de références sont présentés par chapitres et par ordre alphabétique.
- Ils sont accessible en ligne (man) ou sur papier ou sur CDROM et livrés avec la machine
- La commande man fait appel à nroff pour mettre en page la documentation, avant de la visualiser par la commande more.
1 commandes utilisateur
1M commandes administrateur
1C Utilitaires de communication UNIX
2 les appels systèmes
3 les fonctions (en bibliothèques)
3C bibliothèque C
3S bibliothèque standard I/O C
3F bibliothèque FORTRAN
3M bibliothèque mathématique
3X bibliothèque spécialisée (fonctions spéciales)
4 format de fichiers système ou administrateur
5 fonctions utilitaires, divers (table de caractères ASCII, types de données, ..)
6 les jeux
7 fichiers spéciaux (devices, périphériques)
8 maintenance, informations sur les procédures d'administration

Format de la documentation
- La documentation de chaque commande est composée de plusieurs paragraphes :

NAME nom de la commande
SYNOPSIS syntaxe de la commande
DESCRIPTION utilisation et rôle des options
EXAMPLES exemples d'application
FILES fichiers utilisés ou modifiés
SEE ALSO les commandes de la même famille
DIAGNOSTICS explications des messages d'erreurs possibles
BUGS erreurs connues pour cette commande
WARNINGS recommandations lors de l'utilisation de cette commande
EXIT STATUS status de sortie sur erreur
MACHINE DEPENDENCIES dépendances machines
APPLICATION USAGE

accept
Autorise l'accès à la file d'attente spécifiée

Syntaxe :
/usr/lib/accept destination
(destination = classe ou imprimante)

adduser
Création d'un compte utilisateur

Syntaxe :
adduser login nom UID dir yes|no

login : nom de connexion
nom : nom complet de l'utilisateur
UID : numéro d'identification de l'utilisateur
dir : répertoire de connexion
yes|no : privilège d'administration

admintool
Outils d'administration sous solaris

alias
Création d'une nouvelle commande

Syntaxe :
alias nom_alias='commande(s)'

Exemple :
Alias d='dir'

Employée sans argument alias donne la liste des alias

La commande inverse est : unalias nom_alias

apply
Permet de répéter une commande sur chaque argument ou groupe d'arguments cités

Syntaxe :
apply [-ac] [-n] commande argument(s)

Normalement les arguments sont choisis individuellement.
Le nombre n en option spécifie le nombre d'arguments devant être transmis à la commande.

Exemple :
$apply echo * # est similaire à ls
$apply -2 cmp a1 b1 a2 b2 … # compare les fichiers 'a' aux fichiers 'b'
$apply -0 who 1 2 3 4 5 # exécute who 5 fois
$apply 'ln % 1 /usr/rep' * # relie tous les fichiers du répertoire en cours au répertoire /usr/rep

Utiliser les apostrophes avec les méta caractères du shell

arp
Affiche la correspondance entre les adresses IP et Ethernet.
ARP est un protocole qui permet d'établir dynamiquement la correspondance entre les adresses DARPA Internet et les adresses Ethernet d'un réseau local. Le protocole de résolution d'adresses ARP stockant les informations dans une table cache, la commande arp permet en fait de consulter et de modifier ce cache.
Optionnellement ARP examine périodiquement un réseau pour rechercher les imposteurs.

Syntaxe :
arp machine
arp -a [unix [kmem]]
arp -d machine
arp -s machine [ethernet adresse]
arp -f fichier

Options :
-a => Contenu de toutes les tables
-d => Supprime une entrée dans la table
-s => Ajoute une entrée dans la table
-f => Ajoute toutes les entrées enregistrées dans fichier

Exemple :
arp -a


at voir cron
Permet de lancer une commande (1 fois) à une date et heure précise. Pour pouvoir utiliser la commande at, un utilisateur doit être autorisé dans le fichier /usr/lib/cron/at.allow et ne doit pas être présent dans le fichier /usr/lib/cron/at.deny

Syntaxe :
at [-options] heure [date] [+incrément]
avec : heure - 1 à 4 chiffres suivis de am (matin)
pm (après-midi)
noon (midi)
midnight (minuit)
now (heure actuelle)
- 1 ou 2 chiffres indique l'heure
- 3 ou 4 chiffres indique l'heure et les minutes
- on utilise la forme 24 heures en ne précisant aucune lettre.
date - indication au format américain par défaut, elle se compose :
un nom de mois en abrégé sur trois caractères
un numéro de jour séparé du mois par un espace
on peut aussi employer le nom du jour dans la semaine sous sa forme complète ou en abrégé sur trois caractères. Deux jour particuliers sont aussi employés today et tomorrow.

Si le mot week suit le nom du jour, l'exécution est reportée 7 jour plus tard.

Options :
-f fichier => les commandes à exécuter sont dans le fichier spécifié
-m => envoie d'un courrier en fin de traitement
-l [job] => visualisation des travaux en attente
-r [job] => suppression d'un job en attente
-q queue => spécifie la file d'attente

Exemples :
$at 0820am Jan
$echo "toto"
$CTRL-D
$at now + 1 day
$at + 2 hours < fic

authconfig
Permet de mettre en place un codage du fichier mot de passe contenu dans etc/passwd (shadows ou MD) (linux)

autofs
Script de contrôle de l’automonteur
L’automonteur est lancé au démarrage du système par l’intermédiaire du script /etc/rc.d/init.d/autofs

Syntaxe :
autofs start|stop|reload|status

start: Lancement de l’automonteur
stop : Arrêt de l’automonteur.
reload : Redémarer l’automonter.
status : Status de l’automonteur

automount
Configuration des points de montage pour autofs

Syntaxe :
automount [options] Point_de_montage map_type[,format] map [m_options]

Options :
-p fichier => Ecrit le PID du daemon dans le fichier fichier.
-t => Délais d’inactivité en seconde avant démontage (5 minutes par défaut). Une valeur à 0 induit un montage permanent.
-v => Affiche le numéro de version de automount.


Map_type :
Type de la table indirecte.

file La table indirecte est un fichier texte.
program La table indirecte est un exécutable.
yp La table indirecte provient d’une base NIS.
nisplus La table indirecte provient d’une base NIS+.

Format :
Format de la table indirecte. La valeur par défaut est sun

map :
Nom absolu de la table indirecte.

m_options :
Options de la commande mount

badblocks
Recherche de blocs défectueux sur un support

Badblocks /dev/fd0

banner
Permet d'envoyer une bannière sur la sortie standard

Syntaxe :
banner texte

Exemples :
$banner BONJOUR
###### ##### # # # ##### # # ######
# # # # ## # # # # # # # #
# # # # # # # # # # # # # #
###### # # # # # # # # # # ######
# # # # # # # # # # # # # # #
# # # # # ## # # # # # # # #
###### ##### # # ##### ##### ##### # #

basename
Extraire un nom de fichier dans un chemin d'accès

Syntaxe :
basename chemin [extension]

Exemple :
$basename /home/users1/fichier
fichier

bash
Exécution d'un script en bourne shell
Pour forcer l'exécution du fichier en bourne shell, le fichier doit commencer par :
#!/bin/sh


Syntaxe :
bash [-options] nom_fichier

Options :
sans option, rend le fichier exécutable (chmod u+x nom_fichier)
-n => interprète les commandes sans les exécuter
-v => affiche les lignes comme elles sont lue
-x => affiche les lignes comme elles sont interprétées


bc
Permet de faire des conversion, des calculs.
Proche du langage C effectue tout traitement arithmétique de précision. L'utilisation des fonctions mathématiques (sinus, cosinus,…) nécessite l'appel par bc -l

Exemple :
$bc
10+2*6/3<RC> #14
((10+2)/4)*5/(3+2)<RC> #3
ob=16 #résultat en base 16
10+5 #F
ib=16 #entrée en base 16
A+B+C #21
<CTRL D>

bg
Activation en arrière plan d'un process suite à un CTRL Z (signal SIGSTOP)

Syntaxes :
bg n°_de_job
bg %nom_job
bg #PID

bind
BIND : Berkeley Internet Name Domain
Sous Unix , le DNS est implanté par le programme BIND (voir named) . C’est un système client/serveur. On appelle résolveur la partie cliente.

cal
Affiche le calendrier d'une année

- cal affiche un calendrier pour l'année spécifiée. Si l'on spécifie aussi un mois, seul le calendrier de ce mois sera imprimé. Si ni l'année ni le mois ne sont spécifiés, c'est le calendrier du mois en cours qui est affiché.
- Mois est compris entre 1 et 12, et année entre 1 et 9999.
- Attention : "cal 83" fait référence au premiers temps de l'ère chrétienne.

Syntaxe :
cal [mois ] [année ]

Exemple :
$cal 11 1989
November 1989
S M Tu W Th F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

$cal 1990
...

calendar
Utiliser un agenda personnel
Effectue la lecture du fichier $HOME/calendar et fait l'extraction de toutes les lignes correspondantes à la date du jour ou au lendemain.
Pour être identifiée chaque début de ligne du fichier $HOME/calendar doit comporter une date sous les formes : Aug.24 , august 24 ou 8/24 pour 24 août

Cancel (syst V)
Suppression d'une demande d'impression

Syntaxe :
cancel [numéro impression] [imprimante] => destruction d'une requête
cancel [imprimante] => interrompt l'échange en cours

Exemple :
cancel cll-123
cancel /dev/prl

case

cat version GNU
Concaténer des fichiers et les afficher sur la sortie standard.

cat affiche sur la sortie standard le contenu de chacun des fichiers indiqués (ou le contenu de l'entrée standard si aucun nom de fichier n'est fourni, ou si le nom `-' est
indiqué).

Syntaxe :
cat [-options] fichier

Options :

-b, --number-nonblank
Numéroter en sortie les lignes non blanches, en commençant à 1.

-e
Equivalent à -vE.

-n, --number
Numéroter les lignes en sortie, en commençant à 1.

-s, --squeeze-blank
Remplacer les lignes blanches consécutives par une seule ligne blanche.

-t
Equivalent à -vT.

-u
Sans effet - pour compatibilité Unix seulement.

-v, --show-nonprinting
Afficher les caractères de contrôles, sauf les sauts de ligne et les tabulations en utilisant la notation `^', et préfixer avec `M-' les caractères ayant leur huitième bit positionné.

-A, --show-all
Equivalent à -vET.

-E, --show-ends
Afficher un `$' à la fin de chaque ligne.

-T, --show-tabs
Afficher le caractère TAB ainsi : `^I'.

--help
Afficher un message d'aide sur la sortie standard et terminer normalement.

--version
Afficher un numéro de version sur la sortie standard et terminer normalement.


Exemple :
cat fichier => affiche le contenu du fichier
cat fichier1 fichier2 => concatène et affiche (sur la sortie std) le contenu des fichiers.

cat > entrées => ">" permet de rediriger la sortie std d'une commande
ligne 1 saisie au clavier
ligne 2 saisie au clavier
<Ctrl d>

cd
change de répertoire de travail (change directory)

- Si le répertoire n'est pas spécifié, la valeur du paramètre shell HOME est utilisée comme nouveau répertoire de travail.
- Si le répertoire est spécifié, (soit par un chemin absolu , soit par un chemin relatif), il devient le nouveau répertoire courant.
- Si aucun de ces cas ne s'applique, cd essaie de rechercher le répertoire relatif à l'un des chemins d'accès fixé par la variable CDPATH. CDPATH a la même syntaxe que la variable shell PATH, ainsi qu'une sémantique similaire.
- cd doit en outre avoir l'autorisation de passage dans le répertoire (droit x)
- Au lieu du nom de répertoire (voir la syntaxe) on peut utiliser les caractères "/ . .. "
/ indique la racine
. indique le répertoire courant
.. indique le répertoire père du répertoire courant.

Syntaxe :
cd [répertoire]

Exemples :
$cd /usr/src #Utilisation du chemin absolu, déplacement sur le répertoire /usr/src
$cd src/applic #Utilisation du chemin relatif, déplacement sur le répertoire src/applic
$cd #Utilisation de la variable HOME, déplacement vers le répertoire de connexion
$cd / #Déplacement vers le répertoire racine
$cd ./rep #Déplacement à partir du répertoire courant dans le répertoire rep
$cd .. #Déplacement vers le répertoire père

Cheknews
indique la présence de nouvelle(s) (rien ou there is news)

chgrp
Permet à l'administrateur système de modifier le groupe d'un fichier ou d'un répertoire.
Le nouveau groupe doit être connu du système. Il est défini par un numéro qui l'identifie dans /etc/group

Syntaxe :
chgrp [-options] Groupe Fichiers

Options :
-R récursif, parcourt les sous-répertoires
-h change de propriétaire même les liens symboliques


exemple :
chgrp compta fichier

chmod
Permet de modifier les droits d'accès sur un fichier

Syntaxe :
chmod mode fichier …

Le mode peut être donné en absolu et il est obtenu par une combinaison des valeurs octales suivantes :
4000 => positionne le "set user id bit" pour un fichier binaire exécutable
2000 => positionne le "set group id bit" pour un fichier binaire exécutable
1000 => positionne le sticky id bit" (maintien en mémoire du processus)
0400 => lisible par le propriétaire
0040 => lisible par les membres du groupe propriétaire
0004 => lisible par les autre utilisateurs
0200 => modifiable par le propriétaire
0020 => modifiable par les membres du groupe propriétaire
0002 => modifiable par les autres utilisateurs
0100 => exécutable par le propriétaire
0010 => exécutable par les membres du groupe propriétaire
0001 => exécutable par les autres utilisateurs

Le mode peut être donné en symbolique, il prend alors la forme :
[<qui>] <permission> <opération> avec :
qui est une combinaison de lettres
u => pour le propriétaire
g => pour le groupe
o => pour les autres
a => pour tous
permission c'est
+ => pour autoriser
- => pour interdire
= => pour imposer certaines permissions et supprimer les autres
opération est une combinaison de lettres
r => pour lire
w => pour écrire
x => pour exécuter ou passer
s => pour le "set user id bit" ou le "set group id bit"
t => pour le "sticky bit"

user group others
rwx r-x r--
111 101 100
7 5 4


Exemple :
chmod 755 fichier

chown : change owner
Permet à l'administrateur système de modifier le propriétaire et le groupe d'un fichier.
Le nouveau propriétaire doit être connu du système. Il peut être soit un numéro d'identification ID ou le nom de login d'un utilisateur défini dans le fichier /etc/passwd.


chown modifie l'utilisateur et/ou le groupe propriétaire de chacun des fichiers indiqués, en fonction du premier argument rencontré sur la ligne de commande, et qui ne soit pas une option.

Si l'on indique uniquement un nom d'utilisateur (ou un UID numérique), celui-ci devient le propriétaire des fichiers donnés, mais les groupes de ces fichiers ne sont pas modifiés.

Si le nom d'utilisateur est suivi d'un double-point, et d'un nom de groupe (ou d'un GID numérique), les fichiers changent également de groupe.

Spécificités GNU
La version GNU de chown accepte également un point pour séparer le nom d'utilisateur de celui du groupe. Posix réclame un double-point car il autorise l'utilisation du point comme caractère d'un nom d'utilisateur.

Si le nom d'utilisateur est suivi d'un double-point, sans nom de groupe, les fichiers appartiendront au groupe de l'utilisateur mentionné.

Si l'on fournit un nom de groupe, précédé d'un double point, mais sans préciser de nom d'utilisateur, seul l'appartenance au groupe est modifiée. Dans ce cas, chown a les mêmes effets que chgrp.

Syntaxe :
chown [-options] propriétaire [:groupe] Fichier1 Fichier 2 . . .

Option Posix :
-R
Modifier récursivement l'appartenance des répertoires et de leurs contenus.


Options GNU
-c, --changes
Ne décrire que les fichiers dont l'appartenance est modifiée.

-f, --silent, --quiet
Ne pas afficher de message d'erreur concernant les fichiers dont l'appartenance n'a pas pu être modifiée.

-h, --no-dereference
Agir sur un lien symbolique lui-même et non pas sur la cible vers laquelle il pointe. Ceci n'est possible que si l'appel système lchown est disponible dans le noyau.

-v, --verbose
Décrire les changements de propriétés.

-R, --recursive
Modifier récursivement l'appartenance des répertoires et de leurs contenus.

--help
Afficher un message d'aide sur la sortie standard, et terminer normalement.

--version
Afficher le numéro de version sur la sortie standard, et terminer normalement.

Conformité :
POSIX 1003.2 n'autorise pas l'utilisation du point comme séparateur de nom d'utilisateur et de groupe.

cmp
Comparer deux fichiers
Cette fonction permet de comparer deux fichiers. Si les deux fichiers sont identiques, aucune sortie n'est produite. Si les deux fichiers sont différents, cmp fournit le numéro de l'octet et le numéro de la ligne où se trouve les différences.

Syntaxe :
cmp [-l|-s] fichier1 fichier2

Options :
-l => affiche le numéro d'octet (en décimal) et les octets différents (en octal) sur 3 colonnes
-s => aucun affichage dans le cas d'octets différents, mais affiche un code de retour :
0 les fichiers sont identiques
1 les fichiers son différents
2 arguments incorrects ou manquants

cmt
Manipulation de cassettes

Cette commande sert à fournir des opérations à une unité de cassette.
Si aucun nom de cassette n'est spécifié, la variable d'environnement TAPE est utilisée.
En l'absence de cette variable, cette commande utilise le périphérique /dev/ct/0n (unité 0, sans rembobinage).
Les opérations peuvent être réalisées un nombre de fois en spécifiant le paramètre count

Syntaxe :
cmt [-f spécial] action [count]

Actions :
rétention => rétention, retour en début de cassette
rewind => rembobinage au début de la cassette
erase => effacement du contenu de la bande
eof => fin d'archive à la position courante !Attention à cette action
fsf n => recherche d'une marque explicite de fin d'archive depuis la position courante et avance de n fichiers.

Exemple :
$cmt -f /dev/rct/0 rewind

comm
Recherche des lignes communes dans deux fichiers triés
(SPIX, ne fait pas partie de POSIX)
Cette commande analyse les lignes des deux fichiers qui doivent être triés pat ordre lexicographique et elle représente la sortie sous forme de trois colonnes indiquant :
- les lignes qui se trouvent seulement dans le fichier1
- les lignes qui se trouvent seulement dans le fichier2
- les lignes communes aux deux fichiers

Syntaxe :
comm [ -[ 123 ] ] fichier1 fichier2
Les options - [ 123 ] permettent de supprimer des colonnes à l'affichage.

Exemples :
$comm -23 fic1 fic2 => supprime les colonnes 2 et 3
$comm -12 fic1 fic2 => supprime les colonnes 1 et 2

control-panel
Outil d'administration sous linux

cp
Permet de copier des fichier
Si le fichier destination n'existe pas, il est crée. Sinon son contenu est écrasé sans avertissement.
Si la destination est un répertoire, alors la source peut être une liste de fichiers

cp sert à copier des fichiers (et éventuellement des répertoires). On peut aussi bien copier un fichier donné vers une destination précise que copier un ensemble de
fichiers dans un répertoire.

Si le dernier argument correspond à un nom de répertoire, cp copie dans ce répertoire chaque fichier indiqué en conservant le même nom.

Sinon, s'il n'y a que deux fichiers indiqués, il copie le premier sur le second.

Une erreur se produit si le dernier argument n'est pas un répertoire, et si plus de deux fichiers sont indiqués. Par défaut, on n'effectue pas la copie de répertoires.

Ainsi `cp -r /a /b' copiera /a dans /b/a et /a/x dans /b/a/x au cas où /b existe déjà, mais il copiera /a sur /b et /a/x dans /b/x si /b n'existait pas encore.

Les autorisations d'accès des fichiers et des répertoires créés seront les mêmes que celles des fichiers d'origine masquées avec un ET binaire avec 0777, et modifiées par le umask de l'utilisateur (sauf si l'on invoque l'option -p).

Pendant la copie récursive de répertoires, les nouveaux répertoires verront leur masque temporairement étendu par un OU binaire avec SIRWXU (0700), afin d'autoriser le processus d'y lire, écrire et vérifier le contenu.

cp ne fait rien lorsque l'on tente de copier un fichier sur lui-même (sauf éventuellement afficher un message d'erreur).

Lorsque la copie se fait sur un fichier existant, celui-ci est ouvert en utilisant `open(chemin, OWRONLY | OTRUNC)'. Lorsque la copie a lieu dans un nouveau
fichier, on invoque `open(chemin, OWRONLY | OCREAT, mode)'. Si l'ouverture d'un fichier existant échoue, et si l'option -f a été invoquée, cp essaye de supprimer,
avec unlink(2), le fichier existant, puis de recréer un nouveau fichier.

Syntaxe :
cp -options source destination

Options principales :
-a => demande une confirmation avant chaque copie.
-p => préserve les droits, sinon on devient propriétaire.
-r => récursive, copie aussi les sous répertoires.

Options POSIX :
Posix défini quatre options et demi :

-f
Effacer les fichiers cibles existants (voir ci-dessus).

-i
Interroger l'utilisateur avant d'écraser des fichiers réguliers existants. La question est affichée sur stderr, et la réponse lue depuis stdin.

-p
Conserver le propriétaire, le groupe, les permissions d'accès et les horodatages du fichier original. Si la conservation du propriétaire ou du groupe est impossible, les bits Set-UID et Set-GID sont effacés. L'horodatage sera quand même légèrement différent entre l'original et la copie car l'opération de copie nécessite un accès en lecture au fichier source.

-R
Copier récursivement les répertoires, et gérer correctement les copies des fichiers spéciaux ou des FIFOs.

-r
Copier récursivement les répertoires mais la gestion des fichiers spéciaux n'est pas définie. En fait l'option -r est autorisée, et même encouragée à se comporter comme l'option -R, toutefois le comportement (stupide) de la version GNU n'est pas interdit.

Spécificité GNU
En général les fichiers sont écrits immédiatement après lecture de l'original, sauf si l'on utilise l'option --sparse décrite plus bas.

Par défaut, cp ne copie pas les répertoires (voir l'option -r).

cp refuse généralement de copier un fichier sur lui-même, avec l'exception suivante : si les options --force et --backup sont indiquées, et si les fichiers origine et copie sont identiques et se rapportent à un fichier régulier, cp effectuera une copie de sauvegarde (voir plus bas). Ceci peut servir à faire une sauvegarde d'un fichier avant de le modifier.

Options GNU
-a, --archive
Préserver autant que possible la structure et les attributs du fichier original lors de la copie. Cette option est équivalente à -dpR.

-b,--backup
Effectuer une copie de sauvegarde des fichiers écrasés ou supprimés.

-d, --no-dereference
Copier les liens symboliques en tant que tels plutôt que de copier les fichiers vers lesquels ils pointent. Préserver également les liens matériels entre les fichiers sources durant la copie.

-f, --force
Effacer les fichiers cibles existants.

-i,--interactive
Interroger l'utilisateur avant d'écraser des fichiers réguliers existants.

-l, --link
Effectuer des liens matériels plutôt que des copies des fichiers réguliers.

-P, --parents
Construire le nom de chaque fichier destination en ajoutant au répertoire cible un slash et le nom du fichier source indiqué. Le dernier argument de cp doit être un répertoire existant. Par exemple, la commande `cp --parents a/b/c repexistant' copie le
fichier a/b/c en repexistant/a/b/c, tout en créant les sous-répertoires intermédiaires manquants.

p, --preserve
Conserver le propriétaire, le groupe, les permissions d'accès et les horodatages du fichier original.

-r
Copier récursivement les répertoires, les sousrépertoires, et les fichiers réguliers qu'ils contiennent. Les fichiers spéciaux et les FIFOs sont considérés comme des fichiers normaux, desquels ont essayera de lire des données pour les écrire dans
le fichier destination. Ainsi `cp' risque de bloquer indéfiniment durant la lecture d'une FIFO ou d'un fichier spécial /dev/tty. Il faut considérer ceci comme un bug. Cela signifie qu'il faut éviter l'option -r, et la remplacer par -R. N'oublions pas que l'ouverture d'un fichier spécial inconnu, par exemple un scanner peut avoir des effets indésirables sur le matériel.

-r
Copier récursivement les répertoires, les sous-répertoires, en préservant tous les types de fichiers rencontrés (voir option -r ci-dessus).

--sparse=QUAND
[NDT : sparse = clairsemé] Un fichier à trous (sparse file) contient des séquences d'octets nuls n'occupant pas de place sur le disque. L'appel système `read' lit ces données comme des zéros. Non seulement cela permet d'économiser de la place sur
le disque, mais on gagne également de la vitesse de lecture. De nombreux fichiers binaires (exécutables par exemple) contiennent des séquences importantes de zéros. Par défaut, ccpp détecte les trous dans les fichiers en utilisant une heuristique grossière et restituera les trous dans les fichiers de sortie.
L'argument QUAND peut prendre l'une des valeurs suivantes :

auto
Le comportement par défaut, le fichier de sortie est troué si des trous sont détectés dans le fichier d'entrée.

Always
Toujours trouer les fichiers de sortie.
Cette option sert lorsque les fichiers d'entrée se trouvent sur un système de fichiers n'acceptant pas les trous, et que les fichiers de sortie se trouveront sur un système les acceptant.

Never
Ne jamais essayer de faire de trous dans les fichiers de sortie. Si vous trouvez une utilité à cette option, faites nous le savoir...

-s, --symbolic-link
Créer des liens symboliques plutôt que des copies des fichiers réguliers. Tous les noms de fichiers sources doivent être absolus (commençant par '/') à moins que les fichiers destinations résident dans le répertoire en cours. Cette option affiche un message d'erreur pour les systèmes de fichiers ne supportant pas les liens symboliques.

-u,--update
Ne pas effectuer la copie si le fichier destination existant (autre qu'un répertoire) a une date de modification égale ou plus récente que celle du
fichier source.

-v, --verbose
Afficher le nom de chaque fichier avant de le copier.

-x, --one-file-system
Ignorer les sous-répertoires se trouvant sur un système de fichiers différent de celui du départ de la copie.

Options de sauvegarde GNU
Les versions GNU des programmes comme cp, mv, ln, install et patch créeront au besoin une copie de sauvegarde des fichiers à écraser, à modifier ou à détruire. On demande une copie de sauvegarde à l'aide de l'option -b, on indique la nomenclature à adopter avec l'option -V, et si la sauvegarde se fait avec un suffixe, celui-ci est précisé avec l'option -S.

-b, --backup
Créer une copie de sauvegarde des fichiers à écraser ou à détruire.

-SUFIX, --suffix=SUFFIXE
Ajouter le SUFFIXE indiqué à chaque fichier de sauvegarde créé. Si cette option n'est pas indiquée, on utilisera la valeur de la variable d'environnement SIMPLEBACKUPSUFFIX. Si la variable SIMPLEBACKUPSUFFIX n'existe pas, la valeur par défaut est `~'.

-V METHODE, --version-control=METHODE
Préciser la nomenclature des fichiers de sauvegarde La METHODE indiquée peut être `numbered' (`t'), `existing' (`nil'), ou `never' (`simple'). Si cette option n'est pas indiquée, la valeur de la variable d'environnement VERSIONCONTROL est utilisée, et si la variable VERSIONCONTROL
n'existe pas, la valeur par défaut est `existing'.
Cette option correspond à la variable `version-control' sous Emacs. Les METHODES valides (les abbréviations non-ambigües sont acceptées) sont :

t, numbered
Toujours faire une sauvegarde numérotée.

nil, existing
Faire une sauvegarde numérotée des fichiers en ayant déjà une précédente, et une sauvegarde simple pour les autres.

never, simple
Faire toujours une sauvegarde simple.

Options standards GNU
--help
Afficher un message d'aide sur la sortie standard, et terminer correctement.

--version
Afficher un numéro de version sur la sortie standard, et terminer correctement.

--
Fin de la liste d'options.

cpio
Permet d'effectuer des sauvegardes ou des restaurations.

Gestion de l'arborescence

Permet le rattachement de fichiers sélectionnés à une hiérarchie d'un système de fichiers existant.

Syntaxe :
cpio -p [options "adlmruvxU"] répertoire_destinataire

Utilisation :
On effectue la sélection des fichiers à déplacer à l'aide d'une commande comme find, puis cpio lit à partir de l'entrée standard cette liste de noms de fichiers et effectue le déplacement de ces fichiers dans un répertoire destinataire spécifié en paramètre.
find … | cpio -pdv répertoire_destinataire

Exemples :
$cd /users/u1
$find .-print | cpio -pdv /users/u2

Archivage d'une arborescence (sauvegarde)

Archivage de fichiers en continu avec enregistrement de leurs noms absolus ou relatifs selon la sélection ainsi que des informations d'état pour la restauration sur un support
cpio, contrairement à cp conserve les droits d'appartenance d'origine

Syntaxe :
cpio -o [achvxABC] > fichier_spécial

Utilisation :
On effectue la sélection des fichiers à archiver à l'aide d'une commande comme find, ls, cat,… puis cpio lit à partir de l'entrée standard de cette liste de noms de fichiers et effectue l'archivage du contenu de ces fichiers sur la sortie spécifiée.

find … | cpio -o […] > fichier_spécial
ls … |
cat … |


Utilisation :
positionnement sur l'arborescence contenant les fichiers à sauvegarder
cd /…/…
sélection des fichiers à sauvegarder
find . -print
sauvegarde par cpio sur un support disque, cassette

Exemples :
$cd /users/ul
$find .-print | cpio -ovBdc > /dev/rct/0
cassette avec rétention et rembobinage avant utilisation
$find .-print | cpio -ovBdc > /dev/rct/0n
cassette sans rétention et rembobinage avant utilisation
$find / -depth -print | egrep -v -f exclus | cpio -oBv > /dev/rct/0
le fichier "exclus" contiendra une liste d'entrée du genre :
.*/.*\.o
.*/a\.out
.*/core
^/dev/.*
^/tmp/.*


Restauration de fichiers

Syntaxe :
cpio -i [bcdfmrstuvxBPRSU6] < fichier_spécial

l'utilisation des méta caractères du shell (?*[ ])est possible
les fichier restaurés auront les droits d'accès enregistrés lors du cpio -o

Utilisations :
positionnement sur l'arborescence où l'on va restaurer les fichiers
sélection des fichiers à sélectionner sur le support d'archivage
restauration par cpio à partir d'un support disque, cassette,…

Exemples :
cpio -itvBdc < /dev/… => it, pour vérifier si bonne sauvegarde
i tous seul, pour restauration
options (vBdc) idem que lors de la sauvegarde le o en moins (-o = sauvegarde)
$cd /users/u1
$cpio -imvBdc /users/u1/* < /dev/rct/0 => restauration sélective avec cassette avec rétention et rembobinage avant utilisation
$cpio -itvd < /dev/rct/0 => lecture sans restauration et affichage des noms des fichiers archivés sur le support.
Options :
- a => réinitialise la date d'accès aux fichiers après copie
- A => ajout de fichier en archive
- b => inverse l'ordre des bits de chaque mot
- B => facteur de blocage égal à 5120 octets
- Cn => facteur de blocage égal à n
- c => information d'en tête sous forme de caractère ASCII pour assurer une meilleure portabilité
- d => les répertoires sont créés au fur et à mesure
- Ef => f contient la liste des fichiers à extraire de l'archive
- H hdr => informations d'en tête au format hdr
- Ific => lit l'entrée dans le fichier fic
- k => tente de traiter les fichiers dont l'entête est endommagée et sur les erreurs d'entrée-sorties
- l => utilise si possible des liens avec l'option -p
- L => parcourt les liens symboliques
- m => conserve l'heure de la précédente modification
- Mme => définit un message à utiliser
- Ofic => dirige la sortie sur le fichier fic
- r => renomme les fichier en interactif
- RID => rend ID propriétaire de chaque fichier
- t => affiche la table des fichier (pas de création)
- u => copie sans condition (recouvrement si nécessaire)
- v => verbeux, affichage des noms de fichiers (avec t notamment)
- V => super verbeux, n'exécute pas la commande
-6 => pour fichier au format system 6

Exemple : (solaris)
- Sauvegarde sur streamer : find / -print | cpio -ocvB > /dev/rct0
- Restauration à partir du streamer : cpio -icvBd < /def/rtc0
cpio -icvB "[a-d]*" < /dev/rtc0
- Consultation des données sauvegardés sur un streamer
cpio -it < /dev/rct0

cron
Cron devrait normalement être lancé par un script /etc/rc ou /etc/rc.local. Cette commande revient immédiatement, il n'est pas nécessaire de la lancer avec un '&'.
Le processus /etc/cron est exécuté automatiquement au passage au runlevel Multi- Utilisateur (2).

Cron recherche dans le répertoire /var/spool/cron, des fichiers de crontab ayant des noms existants dans /etc/passwd. Les fichiers trouvés sont chargés en mémoire.
Cron recherche également /etc/crontab, qui a un format différent (voir crontab(5)).

Ensuite, cron s'éveille toutes les minutes, examine les crontabs mémorisés, et vérifie chaque commande pour savoir s'il doit la lancer dans la minute à venir. Lors de l'exécution d'une commande, toute sortie est envoyée par mail au propriétaire de la crontab (ou à l'utilisateur dont le nom est mentionné dans la variable d'environnement MAILTO si elle existe).

De plus, cron vérifie chaque minute si la date de modification de son répertoire de stockage (ainsi que la date de /etc/crontab) a changé. Si c'est le cas, cron examinera les dates de modifications de chaque fichier crontab, et rechargera ceux qui ont été changés. Ainsi, cron n'a pas besoin d'être redémarré après la modification d'un fichier crontab. Notez que la commande crontab(1) met à jour la date de modification du répertoire de stockage si un changement a lieu.

Les données transmises à la commande crontab sont enregistrées dans un fichier du répertoire /usr/spool/cron/crontabs.
L'accès à ce mécanisme peut être sécurisé par les fichiers /usr/lib/cron/cron.deny ou /usr/lib/cron/cron.allow .
Pour pouvoir utiliser la commande cron, un utilisateur doit être autorisé dans le fichier /usr/lib/cron/cron.allow et ne doit pas être présent dans le fichier /usr/lib/cron/cron.deny
Par default tous le monde est autorisé
=> il n'existe pas de cron.allow ni de cron.deny

crontab
Table permettant de gérer le démon cron

Permet par l'intermédiaire d'un fichier spécifié appartenant à un utilisateur, de choisir les instants précis, et éventuellement les périodes, où doivent être déclenchée une ou plusieurs commandes.

Crontab est le programme utilisé pour installer, désinstaller, ou afficher le contenu des tables permettant de piloter le fonctionnement du démon cron(8) de Vixie Cron.
Chaque utilisateur dispose de sa propre table crontab, et bien que celles-ci se trouvent dans /var, elles ne sont pas conçues pour être éditées directement.
les commandes contenues dans une table seront exécutées sous l'identifiant du propriétaire de la table.

Si le fichier allow existe, alors vous devez être mentionnés dans celui-ci pour pouvoir utiliser cette commande. Si le fichier allow n'existe pas, mais que le fichier deny existe, alors vous ne devez pas être mentionnés dans celui-ci, si vous désirez utiliser cette commande. Si aucun de ces deux fichiers n'existe alors, selon la configuration du site, soit le Super-utilisateur uniquement à le droit d'utiliser crontab, soit tous les utilisateurs le peuvent.

Un fichier soumis à crontab est constitué de lignes comportant chacune 6 champs. Chaque champ est délimité par des espaces ou des tabulations.

format des lignes du fichier crontab:
minute heure Jour mois jour de la semaine Commandes
(0-59) (0-23) (1-31) (1-12) (jan-dec) (0-6 avec 0=dimanche) (dim-lun) cde1:cde2…cde n

Chaque champs peut être représenté par :
une valeur => val
un ensemble de valeurs => val1, val2, …
une plage de valeurs => val1-val2
toutes les valeurs => *
toutes les deux (heures, jours..) => */2

Les fichiers crontabs sont référencés sous le nom du propriétaire dans le répertoire :
/var/spool/cron/crontabs/nom_user

Certain constructeurs offrent en standard des fichiers "crontabs" de surveillance et de vérification du système (fsck,compta …)

Plusieurs variables d'environnement sont automatiquement configurées par le démon cron(8). SHELL est rempli avec /bin/sh, LOGNAME et HOME sont configurées à partir de la ligne de /etc/passwd correspondant au propriétaire de la crontab. HOME et SHELL peuvent être surchargés par des affectations explicites dans la crontab, LOGNAME non.

(Note : la variable LOGNAME est parfois nommée USER sur les systèmes BSD, elle sera alors configurée).

En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la variable MAILTO s'il doit envoyer le résultat d'une commande exécutée dans cette crontab. Si MAILTO est définie (et non vide), le résultat est envoyé à l'utilisateur indiqué. Si MAILTO est défini et vide (MAILTO=""), aucun courrier ne sera envoyé. Sinon, le courrier sera émis vers le propriétaire de la crontab.

Cette option est utile si vous utilisez /bin/mail comme agent à la place de /usr/lib/sendmail lorsque vous installez cron. /bin/mail ne gère pas d'alias, et UUCP ne lit généralement pas son courrier.

Options :

crontab fichier_crontab => lance un crontab
crontab -l => donne la liste des crontabs
crontab -r => détruit un crontab
crontab -e => permet l'édition d'un crontab
crontab -u => permet de préciser le nom de l'utilisateur dont la crontab doit être manipulée.

Exemples :

utiliser /bin/sh pour lancer les commandes, quoiqu'en dise /etc/passwd.
SHELL=/bin/sh
Envoyer les résultats à Paul, sans tenir compte du propriétaire.
MAILTO=paul

Chaque jour, 5 minutes après Minuit
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

Le premier de chaque mois à 14h15 - Résultat envoyé à Paul
15 14 1 * * $HOME/bin/monthly

Les jours de la semaine à 22h, énerver Joe
0 22 * * 1-5 mail -s "Il est 22h" joe%Joe,%%Où sont tes enfants ?%
23 0-23/2 * * * echo "Tous les jours, à 23mn après 0h, 2h, 4h..."
5 4 * * sun echo "Tous les dimanches à 4h 05"

Ctrl d ou exit
Termine une session utilisateur.

Ctrl q
Reprise du défilement du l'affichage.

Ctrl s
Arrêt du défilement de l'affichage.

cut
Extraire des colonnes ou des champs sélectionnés du ligne d'un fichier.

Permet de supprimer ou d'extraire les colonnes d'une table ou bien des champs de chacune des lignes d'un fichier.

Si aucun fichier n'est spécifié, c'est l'entrée standard qui est prise par défaut.

Syntaxe :
cut -c colonne [fichier]
cut -f champ [-dcar] [-s] [fichier]

Options :
colonnes et champs sont une liste de nombres entiers séparés par des virgules (en ordre croissant).
Avec un "-" colonne indiquera des plages.

-ccolonne => quand colonne fait suite à -c, cela signifie des emplacements de caractère à conserver
-fchamp => conserve le/les champs spécifiés suivant -f
-dcar => car est le caractère délimiteur de champ associé à l'option -f (les espaces ou caractères spéciaux doivent être encadrés par des guillemets)
-s => supprime les lignes ne comportant pas de caractère délimiteur avec l'option -f

Exemples :
$cut -c1-5 fic_in > fic_out => ne conserve que les colonnes 1-5 du fichier fic_in dans fic_out
$cut -f1 fic_in => ne conserve que le champ 1 de fic_in et affiche le résultat sur la sortie standard
$cut -f1,3 fic_in => ne conserve que le champ 1 et 3 de fic_in et affiche le résultat sur la sortie standard
$cut -c1,5,10 fic_in => ne conserve que les colonnes 1,5,10 du fichier fic_in et affiche le résultat sur stdout
$cut -c5 -fic_in => conserve les colonnes 5 à la fin
$cut -d: -f1,5 fic_in => ne conserve que les champs 1 et 5, le délimiteur de champ étant ":"
$cut -d: -f1 /etc/passwd => permet de sélectionner les noms d'utilisateurs dans le fichier /etc/passwd
$whocut -d" " -f1 => récupère uniquement les noms des utilisateurs connectés

date
Consultation et mise à jour de la date et de l'heure du système.

Syntaxe :
date [-u] [+format ]
date [-a] mmjjhhmm [aa ]

Options :
-u date et heure en temps GMT
-asss.fff ajuste l'heure de sss.fff secondes

Format :
+ sortie contrôlée par l'utilisateur
% chaque descripteur de champ est précédé de ce caractère et sera remplacé en sortie par sa valeur correspondante

descripteurs de champs :
n insertion du caractère NL (nouvelle ligne)
t insertion d'une tabulation
m mois de l'année - 01 à 12
d jours du mois - 01 à 31
y deux derniers chiffres de l'année - 00 à 99
D date sous la forme mm/jj/aa
H heures - 00 à 23
M minutes - 00 à 59
S secondes - 00 à 59
T heure sous la forme HH:MM:SS
j jour de l'année - 001 à 366
w jour de la semaine - dimanche = 0
a jour de la semaine en abrégé (en anglais) - Sun à Sat
h forme abrégée du mois (en anglais) - Jan à Dec
r heure en notation AM/PM
NOTA : La modification de l'heure du système ne peut se faire que par le super utilisateur.
Exemples :
$date
Tue Aug 28 15:49:29 EET 1990
$date +%d%m%y
280890
$date '+Nous sommes le : %d/%m/%y'
Nous sommes le : 28/08/90
$date '+Nous sommes le :%n%d/%m/%y'
Nous sommes le :
28/08/90

dc
Machine à calculer de bureau, utilise la notation polonaise
Utilisation des 6 opérations (+ - * / % ^)
La valeur du nombre est stockée dans la pile. Il peut être précédé d'un trait de soulignement introduisant un nombre négatif. Les nombres peuvent contenir des virgules décimales.
Les deux valeurs du haut de la pile s'additionnent (+) , se retranchent (-) , se multiplient (*) , et sont éjectées pour être remplacées par le résultat.

sx la partie supérieure de la pile est désempilée et stockée dans le registre x (caractère quelconque)
lx la valeur se trouvant dans le registre x est placée dans la pile
p la valeur supérieure de la pile est affichée
f toutes les valeurs de la pile et dans les registres sont affichées
q sortie du programme

Exemple :
$dc #
25 # on met 25 dans la pile
5 # puis 5
/ # opérateur division
p # affichage
5 # résultat
6 # on met 6 dans la pile
* # opérateur multiplication
p # affichage
30 # résultat
f # qui a t'il dans la pile ?
30 # résultat
<CTRL D>

dd
Permet de convertir et copier physiquement des fichiers (copy and convert)
Copie le fichier d'entrée spécifié sur la sortie spécifiée avec des conversions éventuelles. Par défaut on utilise l'entrée et la sortie standard. On peut spécifier la taille des blocs d'entrée et de sortie afin de bénéficier d'une entrée-sortie physique brute.

Le paramétrage du l'utilitaire dd est spécifique et différent des commandes précédentes.

Syntaxe :
dd [option=valeur] …

Options :
if= => spécifie le fichier d'entrée (stdin par défaut)
of=n => spécifie le fichier de sortie (stdout par défaut)
ibs=n => n : dimension des blocs du fichier d'entrée (512 par défaut)
obs=n => n : dimension des blocs du fichier de sortie (512 par défaut)
bs=n => n : taille des blocs de n octets pour ibs et obs
cbs=n => taille de la mémoire tampon de conversion si elle existe
files=n => copie et concatène n fichiers
skip=n => sauter n blocs de n octets pour ibs et obs
seek=n => se positionner à n blocs du débuts du fichier de sortie avant de copier
iseek=n => sauter n blocs d'entrée avant copie
count=n => copie de n bloc
conv= ascii => conversion EBCDIC en ASCII
ebcdic => conversion ASCII en EBCDIC
ibm => IBM conversion ASCII en EBCDIC
block => transforme les chaînes en longueur fixe
unblock => termine les chaînes par NL
ucase => conversion minuscule en majuscule
lcase => conversion majuscule en minuscule
noerror => ne pas arrêter le traitement sur une erreur
swab => permutation de chaque paire d'octets
sync => remplir bloc en entrée au ibs octets

Exemples :
dd if=/dev/ruser of=/dev/rbackup bs=512 count=23 skip=1 seek=1
voir schéma page 94
dd if=/dev/rusers of=/dev/rbackup bs=24b count=783 skip=1 seek=1
voir schéma page 94
dd if=/dev/fd0 of=/disquette
dd if=/dev/cdrom of=fic.cd => copie bit à bit du cdrom
cdrecord fic.cd /dev/cdrom => gravage du fichier.

debugfs
Permet de corriger les erreurs d'un FS; les erreurs non corrigeable par fsck

deluser
Suppression d'un compte utilisateur

Syntaxe :
deluser login yes|no dir

login : nom de connexion
yes|no : sauver ou non les fichiers de l'utilisateur
dir : répertoire de connexion

Voir aussi : sysadm pour la gestion des comptes utilisateurs.

df
Affiche le nombre des blocs libres

Cette commande affiche le nombre de blocs libres et le nombre d'i-node libres pour le système de fichier en examinant les valeurs placées dans le super-bloc. Les système de fichiers peuvent être spécifiés soit par un nom de périphérique (/dev/dsk/c3d0 par exemple) ou par un nom de répertoire monté (/usr par exemple).

Syntaxe :
df [-F type] [-options] [sf_nom]
-f => seul le nombre de blocs libre est donné
-F type => type de système de fichiers si celui-ci n'est pas monté
-b => affiche seulement le nombre d'octets
-e => affiche seulement le nombre d'i-nodes libres
-k => affiche tout le contenu de la structure statvfs
-l => affichage en Ko => vérifier %
-n => affiche seulement le type des systèmes de fichiers montés
-t => affiche une liste complète détaillée => minfree 10% minimum
-V => affiche la commande sans l'exécuter
-o options_spéciales => options spécifiques à certains systèmes de fichiers.
-i => option BSD informations sur les i-nodes
-t type => option BSD indiquant le type de fichier

Attention :
Il faut toujours avoir au moins 10% d'espace libre pour assurer un bon fonctionnement du système.

diff
Rechercher les différences entre deux fichiers
Cette commande réalise une comparaison de deux fichiers et édite suivant les cas, les différences, et les modifications à réaliser pour les rendre identiques.
Le texte produit par cette commande ressemble aux requêtes a, c et d de l'éditeur ed. Les lignes du premier fichier sont précédées du caractère "<" et les lignes du second sont précédées du caractère ">".
Un code de retour peut prendre les valeurs (0,1,2) comme avec cmp.
Certaines versions permettent de parcourir récursivement deux catalogues et d'exécuter la commande diff pour chaque fichier rencontré (utilisation de l'option -r)

Il existe en fait quatre commandes :
diff => produit soit des messages, soit un fichier de directives pour ed permettant de modifier fichier1 en fichier2.
diff3 => compare trois fichiers comme diff
sdiff => affiche sur stdout les fichiers et leurs différences
bdiff => permet de travailler sur les gros fichiers comme diff

Syntaxe :
diff [-options] fichier1 fichier2
sdiff [-w n] [-ls] [-o fic_out] fichier1 fichier2
bdiff fichier1 fichier2 [n] [-s]
Options :

diff
-b => ne prend pas en compte les blancs (espaces et tabulations)
-c => affiche les différences avec 3 lignes de contexte
-Cn => identique à c mais sur n lignes de contexte
-Dchaine => créé des fichiers préprocessés, avec chaine définie pour fichier2 et non définie pour fichier1
-e => création d'un fichier de directives pour ed qui recréera le fichier2 comme fichier1
-f => identique à -e commence la reconstruction de fichier1 à partir de la fin
-h => travail rapide, mais peu minutieux, utilisée lorsque il y a peu de modifications pour gros fichier avec peu de différences
-i => ignore la casse des caractères
-l => affichage au format long
-n => comme -f mais avec compteur de lignes
-r => récursivité, parcours les répertoires
-s => signale les fichiers identiques
-Snom => parcours le répertoire à partir de nom
-t => préserve l'indentation originale en sortie
-w => ignore les espaces dans les comparaisons

diff3
-e => génère une procédure pour ed (fichier2, fichier3 -> fichier1)
-x => génère une procédure pour ed (fichier1, fichier2 et fichier3 différent)
-3 => génère une procédure pour ed (fichier3 différent)
-E => les lignes de la procédure ed que se recoupent sont insérées en < > (fichier2 différent de fichier3)
-X => comme -E mais avec fichier1, fichier2 et fichier3 différent

sdiff
-w n => permet de spécifier la longueur de la ligne d'affichage (n=132 par défaut)
-l => édition de la partie gauche des lignes
-s => aucune édition pour les lignes identiques
-o fic_out => affichage d'un 3ème fichier sous le contrôle de l'utilisateur

bdiff
n => argument qui divise le fichier en n lignes
-s => pas de commentaires, mode "silencieux"

Exemples :
$diff -e fic1 fic2 > diffs => rangera dans le fichier diffs les requêtes destinées à l'éditeur ed qui permettront de transformer le fichier fic1 comme fic2

dig
Fournit des informations concernant le service de noms (ressemble à nslookup)

dircmp
Compare deux répertoires
Cette commande examine les deux répertoires spécifiés et produits diverses informations concernant leur contenu.
Si aucune option n'est spécifiée, on obtient une liste des noms de fichiers communs aux deux répertoires.

Syntaxe :
dircmp [-d] [-s] [-w n] rep1 rep2

Options :
-d => compare le contenu des fichiers portant le même nom dans les deux répertoires et produit une liste identique à diff
-s => pas de commentaire, mode "silencieux"
-w n => spécifie la taille de la ligne de sortie (n=72 par défaut)

dirname
Extraire le nom du répertoire parent dans un nom de fichier complet

Syntaxe :
dirname fichier_complet

Exemple :
$dirname /home/users1/fichier
/home/user1

disable
Désactivation des imprimante.
Permet de verrouiller la liaison d'un terminal

Permet de désactiver les imprimantes désignées, en leur interdisant de prendre en compte des demandes soumises par lp (interdit à lpsched d'acheminer les requêtes).
Toute requête en cours d'impression lors de l'appel de cette commande sera reprise intégralement lors du passage de la commande enable.
La suspension de l'impression par disable n'interdit pas l'envoi de requête par lp, celles-ci sont mises en file d'attente.

Syntaxe :
Disable [-clw] [-rraison] imprimante
disable tty1a

Options :
-c annule toute requête en cours d'impression sur l'une des imprimantes désignées.
- w attente de la sortie de la requête en cours.
-rraison associe une cause à la désactivation des imprimantes sous forme d'un message.

(voir enable)

diskform
Permet de formater physiquement et contrôler un disque

Syntaxe :
diskform [-clé [spécial [format [-g] [-l] ] ] ]
clé : détermine le type d'intervention à effectuer sur le disque
-f => Formate le disque dur. Pour les disques dur , si vous avez spécifié l'option -l, diskform vous demande une liste de mauvaise pistes à remplacer (pistes défectueuses fournies par le fabricant). Le contenu du disque est détruit. Il faut exécuter cette opération avant toute utilisation d'un nouveau disque.
-i => Uniquement pour les disques durs, initialise le bloc 0 (informations du contrôleur, 22 premiers octets). La clé -f exécute automatiquement cette opération.
-e => Uniquement pour les disques durs, édite les caractéristiques du dernier format (pistes défectueuses, pistes de remplacement).
-c => Contrôle le disque et affiche la liste des pistes défectueuses.
-d => Uniquement pour les disques durs, remplace les pistes défectueuses.
-g => Permet de s'assurer que le disque est bien conforme aux spécifications du fabricant. Cette option ne s'applique qu'aux -f, -e, -d sur disques durs.
-l => Associée à la clé -f demande une liste des mauvaises pistes à remplacer, et associée à -c demande la zone à contrôler. Cette option ne s'applique que sur les disques durs.

format : type de format du disque.

Format type disque secteur (octets) piste (sect.) cylindre (pistes) disque (cyl.) pistes de remplacement
d140m D140 mobile 256 48 2 391 0
d140f D140 fixe 256 48 2 391 0
dmam DMA mobile 256 32 2 306 24
dmaf DMA fixe 256 32 2 306 24
d570 D570+DMA 256 32 7 976 68
mxt190 MXT190 1024 9 15 1203 300
flbm60 floppy (HD) 512 15 2 80 0
flxopen floppy (DD) 512 9 2 80 0
Exemples de formatage de disquette :
$diskform -f /dev/rpd302
$diskform -f /dev/rpd302 flxopen -g
$diskform -f /dev/rdsk/c3d6 flbm60 -g

Conseil :
Avant le formatage, voir le modèle des disques dans /etc/format ou /etc/disktab

Contraintes :
volumes non montés
fichier spécial mode caractère
mode mono utilisateur

dlist
Affiche les caractéristiques d'un système de fichiers (DPX)

Cette commande affiche :
le nom du système de fichiers
le nom du volume
la dernière date de mise à jour
la taille de l'unité logique
le nombre de blocs
le nombre d'i-nodes en blocs et en k-octets

Syntaxe :
dlist [sf_nom]

Les fs peuvent être spécifiés par un nom de périphérique (/dev/dsk/C3d0s5) ou par un nom de répertoire monté (/usr).

Les fichiers utilisés par cette commande sont : /dev/dsk/* et /etc/mtab

dmesg
Affiche les messages du démarrage système

domainname
Initialisation du nom de domaine

Syntaxe :
domainname [nom_Machine]

du (disk use)
Récapitulatif de l'utilisation d'un disque
Affiche l'espace utilisé (en blocs de 512 octets) du répertoire (spécifiés par l'argument sf_nom) courant ainsi que des sous répertoires

Syntaxe :
du [-options] sf_nom

Options :
-s => permet de n'obtenir que le total général pour chacun des nom spécifiés
-a => engendre une entrée pour chaque fichier
-r => générera des messages si des répertoires ne peuvent par être lus.

dump
Permet de sauvegarder les données linux (voir restore)

dump2fs
Permet de voir les informations du FS ext2

echo
Affiche un texte sur la console

Quand on veut afficher un caractère spécial (comme $ ou "), le faire précéder d'un \
Quand on veut afficher le caractère ascii à partir de son code ascii, on met \0 devant sa valeur.

Syntaxe :
echo chaîne

La chaîne peut contenir des caractères spéciaux.

Caractères spéciaux :
\n : Saut de ligne.
\b : Retour en arrière.
\t : Marque la tabulation.
\c : Fin de la sortie et annulation du saut de ligne.
\\ : Affiche un backslash.
\xxx : Permet d'envoyer un code ascii à la console.
\ : En fin de ligne, précise que la chaîne continue sur la ligne suivante.

Exemples :
echo "salut \n les \n jeunes"
echo "bonjour les copains"
echo "salut \c"
echo "aujourd'hui nous somme le :" date
echo
echo "\065"
echo "deux commandes sur une ligne sont séparés par un ;\c"
echo $DISPLAY

enable
Activation des imprimante.
Permet de libérer une liaison d'un terminal

Permet d'activer les imprimantes désignées, en les autorisant à prendre en compte des demandes soumises par Ip (autorise Ipsched à acheminer les requêtes).

Syntaxe :
enable imprimante
enable tty1a

(voir disable)

env
Permet de connaître l'environnement d'une session, la liste des variables exportées et éventuellement construire un nouvel environnement.
consulter les variables d'environnement.
syntaxe :
env => affiche la liste des variables exportées
env [variable1=valeur variablen=valeur] [commande args] => passe des arguments supplémentaires avant l'exécution de la commande.
env - [variable1=valeur variablen=valeur] [commande args] => ignore l'environnement de base et ne tient compte que des valeurs transmises.
Exemple :
$env LANG=fr date

exit ou <Ctrl d>
Termine une session utilisateur

export
Permet d'exporter des variables pour qu'elles deviennent commune à tous les processus fils d'un processus.
Sans argument export affiche la liste des variables prédéfinies exportable.

Syntaxe :
export [liste_de_variables]

exportfs
Commande de maintenance de la liste des systèmes de fichiers NFS exportés

La liste des systèmes de fichiers exportés pour NFS est placée dans le fichier /var/lib/nfs/xtab.
Cette liste sera utilisée par le démon mountd lorsqu’un client distant fera une demande de montage d’un système de fichiers.

Syntaxe :
exportfs [options] [clien:/répertoire]

Options :
-a => Exporte tous les répertoires précisés dans /etc/exports.
-v => Mode verbeux.
-i => Ignore le fichier /etc/exports. Les options appliquées sont alors les options par défaut ou celles précisées sur la ligne de commandes.
-o options => Permet de préciser une liste d’options de la même manière que dans le fichier /etc/exports.
-r => Mise à jour des tables d’export.
-u => Arrêt de l’export d’un ou plusieurs répertoires.

expr

fdformat
Formatage bas niveau d'une disquette
fdformat /dev/fd0h1440

fg
Permet de reprendre l'exécution en premier plan.

Syntaxes :
fg n°_de_job
fg %nom_job
fg #PID

field
Sélectionner des champs dans un fichier (SPIX, ne fait pas partie de POSIX)

Chaque ligne d'entrée donne une ligne en sortie avec seulement les champs spécifiés par leur numéro
Les champs doivent être séparés par une tabulation ou le caractère <NL>

Syntaxe :
field [n…] < fichier

file
Détermine le type du ou des fichiers spécifiés.

Syntaxe :
File fichier(s)

find
Recherche de fichier dans l'arborescence.

Syntaxes :
find chemin_d'accés critère options

Critères ::
-name => recherche par nom de fichier.
-inum => recherche par numéro (i-num) de fichier.
-user => recherche par nom de propriétaire.
-group => recherche par group d'appartenance.
-type fdcbpl => recherche de fichier suivant leur type (f=ordinaire, d=répertoire etc…).
-home => recherche suivant les droits des fichiers.
-size => recherche en fonction de la taille du fichier.
-atime => recherche en fonction du dernier accès.
-mtime n => recherche de fichier modifiés il y a n jours.
-ctime => recherche en
-perm => recherche suivant les permissions.
-links n => recherche des fichiers à n liens.

Options :
-print => écrit en sortie une liste
-exec => exécution du fichier
-ok => demande de confirmation avant exécution

Exemple :
$find / -name fichier -print
$find / -name .rhosts -exe rm{}\; => trouve et détruit tous les fichiers .rhosts
$find . -type d -print => permet de lister seulement les répertoires
$find . -name "*.c" -print =>affichage de tous les fichiers en langage c du répertoire courant
$find . -perm 777 -print =>affichage de tous les fichiers ayant la permission 777 du répertoire courant
$find . -type d -exec ll -d {} \; =>liste complète des sous-répertoire du répertoire courant
$find / -inum 345 -exec rm {} \; =>recherche et destruction des fichiers ayant le i- number 345 dans tout le système de fichiers
$find . -cpio /dev/rct/0 =>sauvegarde sur la cassette des fichiers du répertoire courant

fsck (/etc/fsck)
Cette commande permet de réparer un FS endommagé suite , par exemple à une coupure brutale du système (crash) ou à une panne électrique ou matérielle).
Il faut précédemment arrêter tous les processus utilisant le FS (voir fuser) puis démonter le FS (umount).
fsck -q /dev/hd11 => Permet une réparation automatique (-q) des erreurs.
fsck -F ufs /dev/rdsk/c0t0d0s0

fuser (/etc/fuser)
/etc/fuser /dev/hd11 => affiche la liste de tous les process utilisant ce fichier de périphériques
/etc/fuser -r /dev/hd11 => affiche le numéro de processus et le nom de l'utilisateur
/etc/fuser -k /dev/hd11 => envoie le signal sigkill à tous les processus accèdent à cette ressource

ftp
Transfert de données

Syntaxe :
ftp nom_de_la_machine_distante
ftp adresse_ip

commandes ftp

open Machine Mise en place de la liaison avec la machine spécifiée.
quit Fermeture de la liaison et fin de la commande ftp.
ascii Les données à transmettre sont des caractères ASCII.
binary Les données à transmettre sont des données binaires qui ne doivent pas être interprétées.
glob Permet d'activer ou de désactiver le traitement des caractères spéciaux utilisés pour la génération des noms de fichier (par exemple * ou ?).
help Affichage de la liste des instructions possibles
prompt Par défaut, lors de l'emploi des commandes mput ou mget, le système demande pour chaque fichier à transmettre si le transfert doit effectivement avoir lieu. Après saisie de l'instruction prompt, cette demande de confirmation individuelle est désactivée. Un nouvel appel de prompt la réactive.
pwd Lecture du répertoire courant de la station cible.
cd chemin Changement de répertoire sur la machine cible.
ls Affichage des fichiers de la machine cible.
delete fichier Suppression d'un fichier sur la machine cible.
mdelete La commande mdelete est suivie de plusieurs noms de fichiers ou d'un critère de sélection de fichiers. Tous les fichiers concernés sont supprimés sur la machine cible.
get fichier Transmission d'un fichier depuis la machine à distance vers la station locale.
mget fichier Download de plusieurs fichiers à partir de la machine distante. En guise de paramètres, vous pourrez spécifier plusieurs noms de fichiers ou un critère de sélection.
put fichier Transmission d'un fichier de la machine locale vers la machine distante.
mput fichier Transmission de plusieurs fichiers de la machine locale vers la machine distante. Les paramètres possibles sont identiques à ceux de mdelete ou mget.

gated
Permet d’utiliser une machine Unix comme un routeur. Ce daemon est utilisé pour activer les routage dynamiques.

grep(1)
Permet de rechercher une chaîne de caractères

NOM
grep, egrep, fgrep - Afficher les lignes correspondant à un motif donné.

Syntaxe :
grep [ -[AB] num ] [ -[CEFGVBchilnsvwx] [ -e] motif | -ffichier ] [ fichiers... ]

Description :
Grep Recherche dans les fichiers d'entrée indiqués les lignes correspondant à un certain motif.

Si aucun fichier n'est fourni, ou si le nom `-' est mentionné, la lecture se fait depuis l'entrée standard.

Par défaut, grep affiche les lignes correspondant au motif.

Il existe trois variantes principales de ggrreepp, controlées par les options suivantes.

-G => Interprète le motif comme une expression régulière simple (voir plus bas). C'est le comportement par défaut.
-E => Interprète le motif comme une expression régulière étendue (voir plus bas).
-F => Interprète le motif comme une liste de chaînes figées, séparées par des Sauts de Lignes (NewLine).

La correspondance est faite avec n'importe laquelle de ces chaînes.

De plus, il existe deux variantes du programme : egrep et fgrep. Egrep est similaire (sans être identique) à

grep -E, et est compatible avec les versions UNIX historiques de egrep. Fgrep est identique à grep -F.

Toutes les variantes de grep acceptent les options suivantes :

-num => Les correspondances seront affichées avec num lignes supplémentaires avant et après. Néanmoins, grep n'affichera jamais une ligne plus d'une fois.
-A num => Afficher num lignes supplémentaires après la ligne correspondante.
-B num => Afficher num lignes supplémentaires avant la ligne correspondante.
-C => est équivalent à -2.
-V => Afficher le numéro de version de ggrreepp sur la sortie d'erreur standard. Ce numéro de version devra être inclus dans tous les rapports de bugs (voir plus bas).
-b => Avant chaque ligne, afficher son décalage (en octet) au sein du fichier d'entrée.
-c => Ne pas afficher les résultats normaux. A la place, afficher un compte des lignes correspondantes pour chaque fichier d'entrée. Avec l'option -v (voir plus bas), afficher les nombres de lignes ne correspondant pas au motif.
-e => motif Utiliser le motif indiqué. Ceci permet de protéger les motifs commençant par -.
-f => fichier Lire le motif dans le fichier indiqué.
-h => Ne pas afficher le nom des fichiers dans les résultats lorsque plusieurs fichiers sont parcourus.
-i => Ignorer les différences majuscules/minuscules aussi bien dans le motif que dans les fichiers d'entrée.
([NDT] Comme toujours, ceci ne fonctionne pas avec les caractères accentués...)
-L => Ne pas afficher les résultats normaux. A la place, indiquer le nom des fichiers pour lesquels aucun résultat n'aurait été affiché.
-l => Ne pas afficher les résultats normaux. A la place, indiquer le nom des fichiers pour lesquels des résultats auraient été affiches.
-n => Ajouter à chaque ligne de sortie un préfixe contenant son numéro dans le fichier d'entrée.
-q => Silence. Ne pas afficher les résultats normaux.
-s => Ne pas afficher les messages d'erreurs concernant les fichiers inexistants ou illisibles.
-v => Inverser la mise en correspondance, pour sélectionner les lignes ne correspondant pas au motif.
-w => Ne sélectionner que les lignes contenant une correspondance formant un mot complet. La sous-chaîne correspondante doit donc être soit au début de la ligne, soit précédée d'un caractère 'appartenant pas à un mot. De même elle doit se trouver soit à la fin de la ligne, soit être suivie par un caractère n'appartenant pas à un mot. Les caractères composants les mots sont les lettres, les chiffres et le souligné (`'). ([NDT] Bien entendu les minuscules accentuées ne sont pas des lettres ! elles servent donc à séparer les mots...)
-x => Ne sélectionner que les correspondances qui occupent une ligne entière.

EXPRESSIONS RÉGULIÈRES
Une expression régulière est un motif qui permet de décrire un ensemble de chaînes. Les expressions régulières sont construites comme des opérations arithmétiques, en utilisant des opérateurs divers pour combiner des expressions plus petites.

Grep comprend deux versions différentes pour la syntaxe des expressions régulières : ``simple'' et ``étendue.''
Dans la version GNU de grep, il n'y a pas de différence dans les fonctionnalités disponibles en utilisant l'une ou l'autre des syntaxes. Dans d'autres implémentations, les expressions régulières simples sont moins puissantes. La description ci-dessous correspond aux expressions étendues, les différences avec les expressions simples étant résumées ensuite.

Les briques élémentaires sont les expressions régulières correspondant à un simple caractère. La plupart des caractères, y compris toutes les lettres et les chiffres, sont des expressions régulières se correspondant à eux-mêmes. Tout méta-caractère ayant une signification spéciale doit être protégé en le faisant précéder d'un BackSlash.

Une liste de caractères, encadrée par [[ et ]] peut être mise en correspondance avec n'importe quel caractère unique appartenant à la liste. Si le premier caractère de la liste est l'accent circonflexe ^ alors la mise en correspondance se fait avec n'importe quel caractère absent de la liste. Par exemple, l'expression régulière [0123456789] convient pour n'importe quel chifre unique.

Un intervalle de caractères ASCII peut être indiqué en donnant le premier et le dernier caractère séparés par un tiret.

Finalement il existe certaines classes de caractères prédéfinies. Leurs noms sont assez explicites :
[:alnum:], [:alpha:], [:cntrl:], [:digit:] (chiffres), [:graph:], [:lower:] (minuscules), [:print:] (affichables), [:punct:], [:space:], [:upper:] (majuscules), et [:xdigit:] (chiffres héxadécimaux). par exemple, [[:alnum:]] correspond à [0-9A-Za-z], à la différence que le dernier dépend de l'encodage ASCII, alors que le premier est plus portable. Remarquez que les crochets dans les noms de classes font partie intégrante du nom symbolique, et qu'ils doivent donc être inclus en plus des crochets encadrant la liste. La plupart des méta-caractères perdent leurs significations spéciales au sein des listes.
Pour inclure un ] littéral, mettez-le en premier dans la liste. De même, pour inclure un ^ littéral, placez-le n'importe ou sauf au début de la liste. Enfin, pour inclure un -- placez- le en dernier.

Le point . correspond à n'importe quel caractère unique.
Le symbole \w est un synonyme de [[:alnum:]] et \W un synonyme de [^[:alnum]].

L'accent circonflexe ^ et le symbole dollar $ sont des méta-caratères correspondant respectivement à une chaîne vide au début et en fin de ligne. Les symboles \< et \> correspondent respectivement à une chaîne vide en début et en fin de mot. Le symbole \b correspond à une chaîne vide à l'extrémité d'un mot, et \B correspond à une chaîne vide ne se trouvant pas à une extrémité de mot.
Une expression régulière correspondant à un caractère unique peut être suivie par l'un des opérateurs de répétition suivants :
? L'élément précédent est facultatif et doit être mis en correspondance une fois au maximum.
* L'élément précédent doit être mis en correspondance zéro ou plusieurs fois.
+ L'élément précédent doit être mis en correspondance au moins une fois.
{n} L'élément précédent doit être mis en correspondance exactement n fois.
{n,} L'élément précédent doit être mis en correspondance n fois ou plus.
{,m} L'élément précédent est facultatif et doit être mis en correspondance m fois au plus.
{n,m} L'élément précédent doit être mis en correspondance au moins n fois, mais au plus m fois.

Deux expressions régulières peuvent être juxtaposées, l'expression en résultant correspondra à toute chaîne formée par la juxtaposition de deux sous-chaînes correspondant respectivement aux deux sous-expression.

Deux expressions régulières peuvent être reliées par l'opérateur infixe ||; l'expression résultante correspondra à toute chaîne correspondant à l'une ou l'autre des deux sous-expressions.

Les répétitions ont priorité sur les juxtapositions, qui à leur tour ont priorité sur les alternatives. Une sous-expression peut être entourée par des parenthèses pour modifier ces règles de précédence.

La référence inverse \n, ou n est un chiffre, correspond à la sous-chaîne déjà mise en correspondance avec la nième sous-expression régulière entre parenthèses.

Dans les expressions régulières simples, les méta-caractères ?, +, {, |, (, et ) perdent leurs significations spéciales, il faut utiliser à la place leurs versions avec BackSlash \?, \+, \{, \|, \(, et \).

Dans egrep le méta-caractère {{ perd sa signification spéciale, il faut utiliser \\{{ à la place.

DIAGNOSTIQUE
Normalement, le code de retour est 0 si des correspondances ont été trouvées, et 1 si aucune correspondance n'a été faite. L'option -v inverse le sens du code de retour.
Le code de retour correspond à des erreurs de syntaxe dans le motif, des fichiers d'entrée inaccessibles, ou d'autres erreurs système.

BUGS
Envoyez les rapports de bug ([NDT] en anglais !) à buggnu-utils@prep.ai.mit.edu. Assurez-vous d'inclure le mot ``grep'' quelque part dans le champ ``Subject:''.

Dans les constructions {m,n} de grandes valeurs de répétition peuvent pousser grep à utiliser beaucoup de mémoire. De plus, certaines autres expressions régulières obscures peuvent prendre un temps exponentiellement long, et mener à un manque de mémoire.

Les références inverses sont très lentes et peuvent nécessiter un temps exponentiellement Syntaxe :

Exemple :
ex : cd /etc/rc.d puis grep ifconfig *

group
permet de connaître les groupes auxquels on appartient.

groupadd
Création d'un groupe utilisateur

groupadd -g group_id group

head
Afficher les premières lignes d'un fichier

Par défaut affiche les dix dernières lignes du fichier spécifié.

Syntaxe :
head [-nl] [fichier …]

Exemple :
head -5 *.c => Affiche les 5 premières lignes de tous les sources C

Voir tail

history
Donne les 16 dernières lignes saisie au clavier

Ré exécution d'une commande
$r => de la dernière
$r n => de la nième commande
$r -2 => de l'avant dernière
$r ls => de la dernière commande commençant par ls

hostname
Initialisation du nom de machine

Syntaxe :
Hostname nom_machine

id
Renvoie l'UID, le GID d'un utilisateur
permet de connaître le numéro d'utilisateur et le groupe auquel il appartient.

Syntaxe :
id (nom_utilisateur)
Renvoie l'UID, le GID de l'utilisateur courant si le login n'est pas précisé.

ifconfig
Configuration et affichage de l’interface spécifié.
Cette commande est utile pour vérifier et mettre à jour les adresse IP ,masques de sous-réseaux et broadcast ainsi que pour repérer celles qui sont incorrectes.
Pour que toutes les machines du réseau communiquent correctement, elles doivent toutes avoir le même masque de sous-réseau.
Elle est lancée explicitement au lancement système dans /etc/rc.d/rc.inet1 (linux)

Syntaxe :
Ifconfig nom_interface [famille] [adresse] [liaison] [up|down] [netmask masque] [metric distance] [[-] trailers]

Options :
nom de l'interface
lo0 #interface de loopback
eth0 #interface ethernet
ppp0 #interface série PPP
famille
Inet par defaut (nom ou notation décimale), définit les règles d'interprétation des paramètres et des adresses. La famille ether définit des adresses au format Ethernet.
adresse
Adresse physique de l'interface, le nom de la machine peut être utilisé s'il est défini. dans /etc/host;
liaison
Utilisé pour les liaison point à point (SLIP, CSLIP, PPP), adresse de la machine ou l'on est raccordé.
up ou down
Interface active ou interface inactive.
netmask masque
Masque pour l'interprétation des adresses IP, le masque par défaut est celui qui correspond à la classe de l'adresse IP.
metric distance
Option interprétée lors du routage, plus la distance est élevée, moins le chemin d'un paquet risque de passer par ce routeur.
trailers
Réorganisation des datagrammes IP ; les en-têtes de longueur variables étant placée à la fin du datagramme (encapsulation arrière ou trailer d'encapsulation), cette option signifie que l'interface accepte cette technique en réception et émission.

Résultats :
La première ligne décrit l'état de l'interface :
UP Interface activé
BROADCAST Emission dans le mode diffusion
NOTRAILERS Pas d'encapsulation de type "trailers" des trames suites
RUNNING L'interface est prête à être utilisée

La deuxième ligne contient des informations d'adressage :
Numéro internet de la machine spécifié derrière le mot inet
Masque déterminant le mode d'adressage sur la branche du réseau de l'interface spécifié derrière le mot netmask
Adresse utilisée par le système lorsqu'il veut émettre une trame en diffusion sur cette branche du réseau derrière le mot broadcast.

Exemple :
ifconfig -a
eth0 Lien encap:Ethernet HWaddr 00:50:BA:BD:A3:72
inet adr:20.62.72.100 Bcast:20.62.95.255 Masque:255.255.224.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reçus:224 erreurs:0 jetés:0 débordements:0 trames:0
Paquets transmis:31 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:2 lg file transmission:100
Interruption:11 Adresse de base:0xc000

Lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
Paquets Reçus:29 erreurs:0 jetés:0 débordements:0 trames:0
Paquets transmis:29 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:0 lg file transmission:0

ifconfig lo 127.0.0.1 :pour le loopback
ifconfig le0 192.168.127.1 netmask 255.255.255.0 broadcast 192.168.127.255
ifconfig -a :affiche la liste des interfaces réseaux même non configurées (solaris)
ifconfig le0 down puis ifconfig le 192.168.128.3 up pour modifier l’adresse.
ifconfig hme0 plumb si interface non visible
ifconfig hme0 192.168.6.1

inetd
C’est le daemon internet. Il est lancé explicitement. Pour désactiver un service, il suffit de mettre la carte de inetd.conf en commentaire et de lancer un signal SIGHUP sur le serveur inetd (kill -HUP)
Il écoute les ports et va voir dans inetd.conf

Init / telinit
Cette commande permet de changer le runlevel par le biais du fichier /etc/inittab

C'est l'ancêtre de tous les processus.

Si on change de niveau d'exécution, init envoie le signal 15 (SIGTERM), à tous les processus qui ne sont pas concernés par le nouveau niveau demandé. Au bout de 5 secondes, les processus qui ne sont pas terminés reçoivent le signal 9 (SIGKILL).

Syntaxe :
/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
/sbin/telinit [ -t sec ] [ 0123456sSQqabcUu ]

Options :
-a (auto)
-s (single user) démarrage en mono utilisateur
-b (emergency) démarre un shell en mono utilisateur sans lancer les scriptsde démarrage.
-z xxx
-t sec Permet de fixer un temps différent des 5 secondes pour l'envoi du signal 9.

a b c Les processus qui résultent de l'exécution de commandes associées au pseudo- niveau a, b et c ne sont pas détruits l'ors d'un véritable changement de niveau
Q q Ne modifie pas le niveau d'exécution, demandent à init de relire le fichier /etc/inittab à utiliser après sa modification.

Actions :
initdefault niveau d'exécution par défaut au lancement d'init;
sysinit a commande est exécutée avant qu'init n'accède à la console;
boot la commande est exécutée uniquement la première fois qu'init lit le fichier inittab, c'est à dire au boot;
bootwait idem, mais init attend la terminaison de la commande avant de passer à la suivante;
powerfail la commande est exécutée lorsque init reçoit le signal SIGPWR;
powerwait idem, mais init attend la terminaison de la commande avant de passer à la suivante;
respawn init relancera la commande du champ 4 (getty) dès qu'elle se terminera;
wait la commande est exécutée lorsque init rentre dans le niveau considéré, et il doit attendre la terminaison avant de passer à la suivante;
once si la commande n'a pas été lancée, elle est exécutée et init passe immédiatement à la suivante;
off la commande de cette ligne est ignorée, mais si le processus associé est actif, init le tue en lui envoyant les signaux SIGTERM puis SIGKILL.


init 2 => passage en mode Multi-utilisateurs
init q => init relit le fichier /etc/inittab et réactualise ses tables interne

En mode Multi-utilisateurs, le processus init (PID1) lance notamment le processus getty sur les lignes affectées au utilisateurs, déclarées dan le fichier "table" /etc/inittab

Les instruction du fichier /etc/inittab sont exécutée en fonction du niveau d'exécution du système (run level).
Certaines instructions de ce fichier ne sont traitées qu'au démarrage du système.

Exemple :
Init 0 => Arrêt de la station.
Init 2 => Passage au niveaux d'exécution n°2.
Init 6 => Arrêt de la station puis redémarrage de celle-ci.

Attention : ne jamais utiliser init S ou s ou telinit S ou s

jobs
Affiche tous les jobs en cours.

[num]+ => indique le dernier job lancé
[num]- => indique l'avant-dernier job lancé

join
Réunir deux fichiers triés sur un champ de valeur identique

Cette commande extrait les lignes communes sur des critères communs entre deux fichiers, autrement dit elle permet d'afficher les lignes qui comprennent un champ identique dans deux fichiers. Le séparateur de champ est espace.

Si à la place de fichier1 on utilise "-", l'entrée standard est utilisée.

Syntaxe :
join [options] fichier1 fichier2

Options :
-e chaine => remplace les champs de sortie vides par la chaine spécifiée
-achiffre => produit en plus une ligne en sortie pour chaque ligne non comparable du fichier, le chiffre peur valoir 1 ou 2, il défini si =1 c'est fichier1 qui sert de référence, si =2 c'est fichier2 qui sert de référence
j[1|2]n => effectue la liaison sur le nième champ du fichier 1 et 2
-o liste => chaque ligne de sortie comprend les champs spécifiés dans liste, chacun de ses éléments étant de la forme n.m, où n est un numéro de fichier et m un numéro de champ.
-tcar => utilise le caractère car en tant que séparateur de champ

Exemples :
$sort -n -t: +3 -4 /etc/passwd/ tmp/passwd => tri sur le 4ème champ (GID) de /etc/passwd
$sort -n -t: +2 -3 /etc/group /tmp/group => tri sur le 3ème champ (GID) de /etc/group
$join /t: -j1 4 -j2 3 -o 1.1 2.1 1.6 /tmp/passwd /tmp/group => affiche le nom de login, le groupe, le répertoire de connexion en établissant la concordance sur le GID (attention passwd et group doivent être triés sur le GID)

kill
kill envoie le signal indiqué aux processus mentionnés. Si on ne précise pas de signal, TERM est envoyé. Ce dernier tuera les processus qui ne l'interceptent pas.

Si l'on désire tuer des processus qui interceptent TERM, il peut être nécessaire d'envoyer le signal KILL (9), qui ne peut pas être intercepté.

La plupart des shells modernes ont une commande kill intégrée.

Syntaxe :
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]

Options :
Pid => Indique la liste des PID auxquels kill doit envoyerun signal. Chaque pid peut être un Id de processus, ou un nom de processus.
-s => Indique le signal à envoyer. Celui-ci peut être spécifié par son nom ou par son numéro.
-p => Indique que kill doit simplement fournir l'Id du processus dont le nom est fourni, sans lui envoyer de signal.
-l => Affiche une liste des noms de signaux connus. Ceux-ci sont fournis dans /usr/include/linux/signal.h

killall
Envoyer un signal à des processus indiqués par leurs noms.
killall envoie un signal à tous les processus en train d'exécuter les commandes mentionnées. Si aucun signal n'est précisé, TERM est envoyé.

Les signaux peuvent être indiqués soit par leur nom (par exemple -HUP) soit par leur numéro (par exemple -1). Le signal 0 (vérifier que le processus existe) n'a pas de nom

Si le nom de la commande contient un slash (/), les processus exécutant ce fichier seront sélectionnés, indépendamment de leurs noms

killall renvoie un code non-nul si aucun processus n'a été trouvé pour une au moins des commandes précisées. Si un processus au moins a reçu un signal pour chaque commande mentionnée, killall renvoie zéro

Un processus killall ne s'envoie jamais de signal à lui-même (mais il peut en envoyer à d'autres processus killall).

Syntaxe :
killall [-iv][ -s signal nom...
kill -l
kill -V

Options :
-i Demander confirmation interactivement avant l'émission du signal.
-l Afficher la liste de tous les signaux connus.
-v Afficher un compte-rendu de l'émission du signal.
-V Afficher un numéro de version.

labelit
Poser des labels ou contrôle un système de fichiers

Cet utilitaire attribue un nom de système de fichiers et un nom de volume à un disque démonté ou à une bande magnétique.
- labelit écrit dans le super bloc, et le label est seulement utilisé par la commande volcopy.
- labelit sans option, suivi uniquement du fichier spécial permet de connaître le label.

Syntaxe :
labelit spécial [sf_nom vol_nom [n] ]
spécial => indique le nom du fichier spécial mode caractère
sf_nom => indique le nom du système de fichiers
vol_nom => indique le nom de volume

Option :
-n => permet de détruire l'ancien label sur bande

Exemple :
$labelit /dev/rusers users c3d0s5
$labelit /dev/rct300 bande01 ct01 -n
$labelit /dev/rusers

leave
Spécifie une échéance à partir de laquelle un message sera affiché.
(rappelle de l'heure de partir)
Le message vous rappelant qu'il est l'heure de partir sera envoyé 5 minutes et 1 minute avant l'heure spécifiée.
leave ignore les interrupts, quit et terminates. Faire un kill -9 PID pour arrêter ce processus

Syntaxe :
leave [hhmm]

lilo
Installer le chargeur LILO
Celui-ci sera activé au prochain démarrage de la machine.

Syntaxe :
lilo [-option]

Options :
-q obtenir la carte des noyaux gérés
-R positionner les attributs par défaut pour le prochain boot
-I Rechercher le chemin d'accès au noyau en cours d'utilisation.
{-u|-U} Désinstaller Lilo.
-v Augmente la quantité de commentaires. Ajouter un ou plusieurs -v rendra Lilo de plus en plus volubile.
-q Affiche la carte des noyaux actuellement gérés, et qui sont proposés lors du démarrage de la machine. lilo gère une carte, située par défaut dans le fichier /boot/map, contenant les noms et les positions des divers noyaux à proposer lors du démarrage. Cette option liste les noms des systèmes proposés lors du boot.
-m map-file Utiliser le fichier map-file pour stocker la carte plutôt que celui par défaut.
-C config-file lilo lit les instructions à propos des systèmes à gérer dans un fichier de configuration, par défaut /etc/lilo.conf. Cette option permet d'indiquer un autre fichier de configuration.
-d délai Si vous avez indiqué plusieurs noyaux, en pressant SHIFT durant le démarrage de la machine, Lilo vous proposera un choix des divers systèmes utilisables. Après l'expiration d'un certain délai, le premier noyau de la liste est lancé. Cette option permet de configurer le délai désiré (en dixièmes de secondes).
-D étiquette Utilise le noyau associé à étiquette plutôt que le premier de la liste, en tant que système par défaut.
-r root-directory
Avant toute chose, effectue un chroot vers le répertoire indiqué. Cette option sert à réparer la configuration après avoir booté depuis une disquette de secours.
-t Juste un essai. Ne pas modifier vraiment le secteur de boot ou le fichier carte. A utiliser avec -v pour s'assurer de ce que lilo va faire.
-c Autoriser la compression de la carte. Ceci va permettre de grouper les requêtes de lecture sur des secteurs adjacents. Cette option accélère le démarrage (surtout sur disquette).
-f disk-tab Indique un ichier décrivant les paramètres géométriques du disque. Le fichier par défaut est /etc/disktab.
-i boot-sector
Indique un fichier à installer en tant que nouveau secteur de boot. Le fichier par défaut est /boot/boot.b.
-l Utilise un adressage linéaire des secteurs, plutôt qu'un adressage secteur/tête/cylindre.
-P {fix|ignore}
Corrige (fix) ou ignore les tables de partitions endommagées, c'est à dire les tables dont les adresses linéaires et secteur/tête/cylindre ne correspondent pas.
-s save-file Quand lilo écrase le secteur de boot, il sauvegarde l'ancien contenu dans un fichier, par défaut /boot/boot.NNNN ou NNNN dépend du périphérique. Cette option précise un autre fichier de sauvegarde du secteur de boot. En l'associant avec l'option -u on indique depuis quel fichier restaurer le secteur.
-S save-file Normalement lilo n'écrasera pas un fichier de sauvegarde existant. Cette option autorise l'écrasement.
-u device-name
Désinstallation de lilo, en recopiant le fichier de sauvegarde sur le secteur de boot. Un horodatage du fichier est vérifié.
-U device-name
Idem, sans vérification de l'horodatage
-R command line
Cette option indique les commandes par défaut lors du prochain redémarrage du systeme. Ensuite Lilo effacera ces commandes, elles ne sont utilisées qu'une seule fois. Ceci est typiquement utilisé dans les scripts de redémarrage, juste avant d'appeler `shutdown -r'.
-I label L'étiquette associée au noyau en cours d'utilisation est stockée après le démarrage dans la variable d'environnement BOOT_IMAGE. Cette commande affichera l'étiquette sur stdout.
-V Afficher le numéro de version.

Les lignes de commandes ci-dessus correspondent aux mots clés du fichier de configuration ainsi :
-b bootdev boot=bootdev
-c compact
-d dsec delay=dsec
-D label default=label
-i bootsector install=bootsector
-f file disktab=file
-l linear
-m mapfile map=mapfile
-P fix fix-table
-P ignore ignore-table
-s file backup=file
-S file force-backup=file
-v verbose=level

Pour supprimer LILO qu'en il est installé dans le MBR, le plus simple est d'utiliser la commande FDISK de MS-DOS : FDISK /MBR. Cette commande remplace le code d'amorçage de LILO par le code d'amorçage de MS-DOS.

ll
Identique à ls -l

ln
Crée un lien physique ou symbolique sur un fichier

Un lien fait toujours référence à un fichier. Il peut y avoir plusieurs liens sur un même fichier. Il y a deux sortes de liens : les lien physiques et les liens symboliques.
Par défaut, les liens seront de type physiques.

Les liens physique possèdent la taille, les droits du fichier auquel ils font référence. Il ne peuvent pas faire un lien sur un répertoire. Toutes modification effectuée sur un des liens d'un fichier modifieront le contenu du fichier auquel ils font référence.

Le lien symbolique est plus logique que physique. Il fait référence à un fichier comme le lien physique mais il n'y a pas obligation que ce fichier physique existe contrairement au lien physique. Le lien symbolique permet aussi de faire référence à un répertoire ce que ne permet pas le lien physique. Le lien symbolique a une taille de quelques octets seulement car il ne contient que le pointeur.
Remarque : un lien physique n'est pas visible par la commande ls. Un lien symbolique se voit par un ls sous la forme destination -> source. Un lien symbolique n'est pas contenu dans le nombre de liens d'un fichier (voir commande ls).
Un fichier qui possède plusieurs liens physique ne sera effacé que lorsque le dernier lien physique aura été supprimé. On peut dire que, dans un lien physique, la notion de nom disparaît face à la notion de contenu alors que dans un lien symbolique, le contenu est bien rattaché à un seul nom même si plusieurs liens symbolique y font référence; une suppression du fichier contenant les données et les liens symboliques seront orphelins.

Syntaxe :
ln [-option] source destination

Option :
-f aucune question n'est posée ou l'entrée standard n'est pas un terminal (création forcée)
-s notion de lien symbolique, création sur plusieurs "file system" (apport de la version BSD)
-n si le lien est un nom de fichier existant, ne l'écrase pas

Exemple :
ln -s /etc toto => crée un fichier toto sur votre répertoire qui pointe sur /etc

locate

lock
Verrouiller un terminal par introduction d'un mot de passe utilisateur.

Un message "LOCKED" est affiché sur le terminal

Si l'utilisateur oublie son mot de passe, il faut tuer le processus de verrouillage sur un autre terminal

login

logname
Afficher le nom de connexion de l'utilisateur.

Syntaxe :
logname [--help] [--version]

Description :
Cette page de manuel décrit la version GNU de logname.

logname affiche le nom de l'utilisateur l'ayant invoqué, comme on le trouve dans le fichier /etc/utmp, puis se termine avec un code de retour 0.

S'il n'y a pas d'enregistrement /etc/utmp pour le processus appelant, logname affiche un message d'erreur et se termine avec le code de retour 1.

Options :
--help Afficher un message d'aide sur la sortie standard et terminer normalement.

--version
Afficher un numéro de version sur la sortie standard et terminer normalement.

look
Rechercher les lignes dans une liste triée (SPIX, ne fait pas partie de POSIX)

Cette commande consulte un fichier trié et affiche toutes les lignes qui commence par la chaîne spécifiée.
Si fichier n'est pas spécifié, la recherche se fait dans :
/usr/dict/words ou /var/dict/words

Syntaxe :
look [-options] chaine [fichier]

Options :
-d => seuls les lettres, les chiffres, les tabulations et les espaces participent aux comparaisons
-f => pas de différence entre majuscules et minuscules

Exemples :
$look -d chaine fichier => affiche tous les mots commençant par chaine dans fichier
$look app => affiche tous les mots commençant par app dans le fichier /usr/dict/words

lp (syst V)
Envoie un fichier à imprimer au spooler d'imprimante (file d'attente d'impression).

Les fichiers à imprimer sont stockés provisoirement dans le répertoire /usr/spool/lp/<nom_ImprImante> ou /var/…Ces fichiers sont en fait de deux types : données et contrôle d'impression. Le nom de ces fichiers est composé d'un numéro de requête incrémenté à chaque impression (prx-yyy ou clx-yyy).

Le daemon lpsched est averti de la demande d'impression émise par la commande lp par l'envoi d'un message, qui précise le type de requête (numéro de requête, imprimante destination, utilisateur qui a émis la requête), dans un pipe nommé : /usr/spool/lp/FIFO ou /var/spool…

lpsched traite cette demande en activant simplement un programme d'interface /usr/spool/lp/interface/<nom_imprimante> qui assure la traduction des options de la requête et du fichier à imprimer puis l'envoi de ce fichier dans un format compréhensible par le périphérique associé à l'imprimante. Ce programme d'interface est généralement un shell-script (voir son fonctionnement plus loin), mais ce peut-être aussi un véritable binaire issu d'un langage quelconque. Quand il s'agit d'un shell-script il est copié sur un modèle qui provient de /usr/spoo1/lp/model/<type-imprimante>.

Syntaxe :
lp [-options] fichier

Options :
-t => imprime un titre sur l'état de sortie.
-n => spécifie le nombre d'exemplaires.
-ox => supprime l'édition de la page d'en-tête.
-oj => supprime l'édition de la page d'en-pied.
-d => définit l'imprimante de destination.
-c => copie du fichier à imprimer, modification possible du fichier origine avant l'impression.

lpadmin
Configuration du service LP

Cette commande permet d'ajouter, de décrire les imprimantes, les classes. Elle sert également à ajouter ou supprimer des destinations, à changer l'appartenance des classes, à remplacer des imprimantes par des périphériques, …

lpadmin ne peut être utilisée que lorsque le scheduleur est arrêté.

Syntaxe :
usr/lib/lpadmin -dl-x [destination ]
/usr/lib/lpadmin -pimprimante options

Options :
-xdest supprime une destination (pr1 par exemple)
-ddest définit une destination comme destination par défaut
-pimprimante permet de définir les caractéristiques d'une nouvelle imprimante ou de changer les caractéristiques d'une imprimante à partir des options suivantes :
-cclasse => insère l'imprimante dans la classe désignée
-rclasse => enlève l'imprimante de la classe désignée
-vdev => associe un fichier spécial au nom logique
-mmodèle => copie un modèle existant du répertoire /usr/spool/Ip/model et le prend comme interface dans /usr/spool/interface
-eimprimante =>utiliser l'interface d'une autre imprimante
-ichemin =>copie le fichier désigné par son chernin et le prend comme interface.
-D commentaire =>associer un commentaire
-F defaut =>définir un mode de reprise en cas d'erreur (continue, beginning, wait)
-o nobannerlbanner =>impose ou n'impose pas la bannière
-s serveur [! imprimante ] =>accès à une imprimante distante

lpc
Permet de contrôler les imprimantes et impressions

lpc down {all | nom_imprimante}
lpc start {all | nom_imprimante}
lpc status {all | nom_imprimante} => visualiser les status imprimante.
lpc topq nom_imprimante [jobnum] [utilisateur] => modifier la priorité d'impression.

lpclean
"nettoyage" et configuration du sevice LP

Cette commande est utilisée pour éliminer toutes les demandes en attente d'impression par des sauvegardes dans des fichiers temporaires ainsi que pour reconfigurer le système de spooling d'imprimantes à partir des imprimantes actives décrites dans le fichier /etc/config.lp et soumettre à nouveau ces demandes sauvegardées.

Les opérations suivantes seront effectuées dans l'ordre :

arrêt de l'ordonnanceur d'imprimante (lpshut)

sauvegarde de toutes les demandes en attente dans les fichiers temporaires si l'option -s est spécifiée

nettoyage de la zone de travail lp

reconfiguration du service lp

redémarrage de l'ordonnanceur (lpsched)

ressoumission des demandes sauvegardées si l'option -s est spécifiée et si les fichiers sauvegardés existent

Syntaxe :
/usr/lib/lpclean [-s]

Ipmove
Transfère une requète définie par clx-yyy ou toutes les requètes vers une autre destination.

Cette commande ne peut-être exécutée que si le scheduleur est arrêté.

Syntaxes :
/usr/lib/lpmove clx-yyy destination
/usr/lib/Ipmove destination1 destination2

lpq (bsd)
Affiche la file des impressions pour une imprimante
lpq -P nom_imprimante

lpr (bsd)
Envoie un fichier à imprimer au spooler d'imprimante (file d'attente d'impression).

Syntaxe :
lpr [-option]nom_imprimante fichier

Options :
-d => spécifie l'imprimante à utiliser
Attention, ne pas mettre de blanc entre l'option et le nom de l'imprimante.
-i =>
-m =>
-p =>

lprm (bsd)
Suppression d'une impression en attente d'un spooler

Syntaxe :
lprm -P nom_imprimante jobnum

lpsched
Lancement de l'ordonnanceur (scheduler) du service LP

La commande /usr/lib/lpsched est lancée automatiquement par la procédure /etc/lnitlp, elle-même activée par /etc/inittab ou par la procédure /etc/rc.

Un seul gestionnaire lpsched peut être actif à un instant donné, cette exclusion est souvent assurée par un fichier SCHEDLOCK sous le répertoire de lpsched qui est /usr/spool/lp ou /var/spool/lp.

Cette commande enregistre son activité dans le fichier /usr/spool/lp/log. Ce fichier contient le numéro de requête; le nom de l'utilisateur, le nom de l'imprimante, la date). Ce fichier est copié dans /usr/spool/Ip/oldlog lors du lancement de lpsched.

(La commande lp accepte les requêtes même si l'ordonnanceur est inactif)

Syntaxe :
/usr/lib/lpsched

le fichier /usr/spool/lp/SCHEDLOCK sera alors créé.

lpshut
Arrêt de l'ordonnanceur (scheduler) du service LP

Toutes les imprimantes qui impriment seront arrêtées

Les demandes d'impression stoppées seront réimprimées entièrement lorsque le scheduleur sera relancé

Cette commande est généralement utilisée lors de l'arrêt du système par shutdown.

Toutes les commandes de lp sont prisent en compte même lorsque l'ordonnanceur est arrêté.

Syntaxe :
/usr/lib/lpshut

lpstat (syst V)
Permet d'interroger toutes les requêtes d'impression (sco)
lpstat -v => affiche toutes les imprimantes disponibles
lpstat -u nom_utilisateur => affiche toutes les requêtes de l'utilisateur
lpstat -d => affiche le nom de l'imprimante par défaut

Syntaxe :
Lpstat -options

Options :
[liste ] représente une liste d'articles encadrés par des guillemets et séparés les uns des autres par une virgule et/ou un espace ou plus. ex : Ipstat -u "user1, user2"

-0 => affiche l'état de toutes les requêtes de sortie
-a [liste] => donne l'état d'acceptation (accepting ou rejecting) des destinations pour les requêtes (liste représente des noms d'imprimantes et de classes mélangés)
-c [liste ] => donne les noms de classes et de leurs membres (liste représente des noms de classes)
- d => affiche la destination implicite du système pour Ip
-0 [liste] => donne l'état des requêtes de sortie (liste représente des noms d'imprimantes, des noms de classes et d'identifications des requêtes)
-p [liste ] => donne l'état complet des imprimantes (-D résumé, -I complet)
- r => donne l'état de l'ordonnanceur de requête LP
-R => position de la requête dans la file d'attente
-s => affiche un résumé d'états, y compris l'ordonnanceur, la destination implicite du système, une liste des noms de classes et de leurs membres et une liste des imprimantes et de leurs terminaux associés,
-t => affiche toutes les informations d'états
-u [login] => donne l'état des requêtes de sortie pour les utilisateurs spécifiés
-v [liste] => donne les noms des ports physiques.

ls
Permet de lister le contenu d'un répertoire

Pour repérer le type des fichiers :
la ligne commence par :
- d => fichier répertoire
- - => fichier ordinaire
- b => bloc (system file)
- c => fichier spécial : caractère magnétique (raw + stream
- p => pipe nommé
- l => fichier lien symbolique

Syntaxe :
ls [-option(s)] répertoire

Options :
-l => affiche en format long (contenu détaillé du répertoire).
-a => affiche le contenu du répertoire, y compris les fichiers commencent par (.).
-i => affiche le numéro d'inode du fichier
-d => affiche des informations sur un répertoire, mais pas sur ses fichiers
-F => Positionne à la fin des noms un / pour les répertoires et un * pour les fichiers exécutables.
-R => affichage récursif

Exemples :
ls -l | grep '^d' => permet de lister seulement les répertoires


lsoft
La commande lsof permet de déterminer quels fichiers ont actuellement ouvert et
donc en usage

Syntaxe :
# lsof | more



mail
envoie ou réception de courrier (service de messagerie)

- mail permet d'envoyer (ou de recevoir) du courrier aux autres utilisateurs de la même machine. Les courriers envoyés sont conservés dans un fichier jusqu'à ce que le destinataire en prenne connaissance et le détruise.
- A chaque connexion le système vous indique si vous avez reçu des messages par "you have mail".
- mail sans paramètre affiche un à un les messages reçus.
Les principaux fichiers et variables utilisés par le service de messagerie sont :
/etc/passwd pour identifier l'émetteur et localiser les utilisateurs
/usr/mail/user ou /var/mail courrier pour user (fichier mailfile par défaut)
$HOME/dead.letter c'est un message "texte non-envoyable"
$HOME/mbox courrier sauvegardé
$MAIL variable contenant le nom d'accès du fichier "mailfile"
/tmp/ma* fichiers temporaires

Syntaxe :
mail [+] [-e] [-hpqr] [-F user] [-f fichier]

Options :
+ => les messages sont traités en mode "fifo", le premier arrivé en premier
-e => permet de faire un test sur la présence de courrier sans affichage, le code de retour.
-h => affiche des informations sur le dernier message :
0 présence de courrier
1 absence de courrier
2 erreur
-r => inverse l'ordre d'affichage des messages lus par mail, le premier message envoyé sera le premier lu
-q => sort sans changement de la boîte à lettre sur un <INTR> ou <QUIT>
-p => imprime le courrier
-F user => les messages reçus sont réexpédiés à user
-f fichier => utilise fichier comme boîte aux lettres

Aprés chaque message, mail affiche un caractère d'invite "?", l'utilisateur doit répondre par une commande suivie de <RC>.

La commande mailalias traduit les alias du mail.
Les principales commandes de mail :
h ou ? aide, liste des commandes
q quitter
x sortir sans modification des messages
p réafficher le message courant
<espace> revient au message antérieur et l'affiche
d efface le message courant
<RC> ou + passe au message suivant
m [utilisateur] redirection vers utilisateur
s[fichier] sauvegarde dans ($HOME/mbox)
!cde exécute une commande du shell
^D permet de quitter la session de mail et enregistre les messages

Exemples :
------ envoi d'un message à l'utilisateur elev4 ---------
$mail elev4
ATTENTION : cours de math reporté mercredi prochain salle 12 à 10h00
^D

------ visualisation des messages reçu ----------
$mail
From elev10 Sun Jan 8 15:39 MET 1989
Received: by A162.LOCAL.uucp; Sun, 8 Jan 89 15:38:59 +0100 (MET)
Date: Sun, 8 Jan 89 15:38:59 +0100
From: elev10 (etn2)
Message-Id: <8901081438.AA00426@A162.LOCAL.uucp>
Apparently-To: profin
pourriez vous me faire parvenir la doc UNIX
pour le cours systeme -merci-
?<RC>
...message suivant...
- Envoyer du courrier à des utilisateurs sur des sites distants :
- Différents mécanismes d'identification des utilisateurs sont disponibles selon le type de réseau utilisé. Dans le monde UNIX, l'adressage INTERNET est le plus utilisé. Un utilisateur peut alors être identifié par : nom_login@domaine
- Un second mode d'adressage peut être utilisé, c'est celui de uucp : machine!nom_login

mailx
envoi ou réception de courrier (service de messagerie plus récent que mail)
- Il existe également un autre service de messagerie plus élaboré que mail c'est mailx certains systèmes ne proposent plus l'ancienne version mail. A son lancement il lit le fichier d'initialisation de l'utilisateur $HOME/mailrc. La commande visualise à l'écran l'en- tête des messages disponibles sauf si l'option N est utilisée. Avec l'option H il y a seulement affichage des en-têtes et sortie de la commande. Il est possible de paramètrer mailx par une série de variables que l'on peut initialiser avec la commande set dans le fichier .mailrc, exemple : set EDITOR=/usr/ucb/ex

Syntaxe :
mail [-e] [-FinUHN] [-f fichier] [-s sujet] [-r réseau ] utilisateur

Les principales commandes de mailx :
? => aide, liste des commandes
quit => quitter
header => affiche seulement les en-têtes de message
next => passe au message suivant
edit n° => édite le message dont le numéro est spécifié
delete n° => supprime le message dont le numéro est spécifié
reply n° => répond à l'auteur du message
copy fichier ou save fichier => les messages sont copiés ou sauvegardés dans fichier
!cde => exécute une commande du shell
...

man
aide en ligne
- C'est l' aide en ligne, le help, il existe plus de 150 commandes UNIX, on y trouve la description complète de ces commandes. man permet d'afficher la partie de la documentation qui concerne la commande donnée en paramètre.

Nota : certaines commandes n'ont pas d'entrée dans le manuel mais elles sont décrites avec une commande de la même famille (par exemple : rmdir est décrite avec rm)

Attention : man provoque un "unpack" il est donc conseillé de faire :
$man num-chapitre commande

Syntaxe :
man [num-chapitre] [commande]

Exemples :
$man 1 ls # lecture du manuel de la commande ls

UTILITIES LS(1)
NAME
ls - list contents of directory
SYNOPSIS
ls [ -RadCxmlnogrtucpFbqisf ] [names]
DESCRIPTION
For each directory argument, ls lists the content of the
directory; for each file argument, ls repeats its name and
any other information requested. The output is sorted
alphabetically by default. When no argument is given, the
current directory is listed. When several arguments are
...
:q
$man 1 passwd #lecture du manuel de la commande passwd
$man 4 passwd #lecture du manuel du fichier /etc/passwd

- voir aussi la commande learn qui est un outils d'apprentissage, il suffit de répondre aux questions posées.

mesg
Inhibe ou non les message pouvant arriver (ceci évite d'avoir des écran perturbés).

Syntaxe :
mesg [y] [n]
- Si l'utilisateur refuse les messages (option n) le message suivant est affiché
"permission denied"

Exemple :
$mesg
is y
$mesg n
$mesg
is n

minicom
Terminal permettant d’établir une connexion avec un périphérique série directement connecté au port série (port console du routeur) ou via un modem pour accéder à une autre machine distante.
CTRL + a puis o permet de rentrer la configuration du dialogue (utiliser 9600,8,N,1 pour un routeur cisco 2503 )

mkdir
Création de répertoire
Si le chemin n'est pas précisé, le répertoire est crée dans le répertoire courant "."

Syntaxe :
mkdir [-p] [-m mode] [--parents] [--mode=mode] [--help] [--version] rep...

Description :
Cette page de manuel documente la version GNU mkdir.

mkdir crée un répertoire correspondant à chacun des noms mentionnés.

Par défaut, les répertoires sont créés avec les permissions d'accès 0777 moins les bits positionnés dans le umask.

Options :
-m, --mode mode
Créer les répertoires avec le mode d'accès indiqué.
Celui-ci est donné sous forme symbolique, comme dans chmod(1), en utilisant le mode par défaut comme valeur de départ.

-p, --parents
S'assurer que chaque répertoire indiqué existe.
Créer les répertoires parents manquants. Ces derniers sont créés avec l'autorisation d'accès umask modifiée par `u+wx'. Ne pas considérer les répertoires déjà existants comme des erreurs.

--help
Afficher un message d'aide sur la sortie standard, et terminer normalement.

--version
Afficher un numéro de version sur la sortie standard, et terminer normalement.

mkfs
Créer un système de fichiers

Cette commande crée un système de fichiers en écrivant sur le fichiers spécial mode caractère, à l'aide des valeurs trouvées dans les arguments restants de la ligne de commande.
Elle construis un système de fichiers comportant un seul répertoire. Le bloc d'amorçage (bloc 0), n'est pas initialisé.
Elle donne le nom du fichier sur lequel elle s'applique puis attend 10 secondes avant de commencer la construction du système de fichiers. Pendant ce délai on peut interrompre le processus par <DEL>.

Résultat de mkfs :
création du super bloc
création de la i-list
création de la free-list
implante un seul répertoire vide (lost+found)
n'initialise pas le bloc 0 pour le boot

Syntaxe :
mkfs spécial nb_blocs [:nbre-inodes]
mkfs proto [gap blocs/cyl]

Options :

nb_bloc => chiffre qui indique la taille du système de fichiers, c'est le nombre de blocs physiques (512 octets) que le système de fichiers occupera. Si le nombre optionnel d'i-nodes n'est pas spécifié, la valeur par défaut est le nombre de blocs logiques divisé par 4.

proto => il s'agit d'un fichier prototype "proto", mkfs prend ses instructions dans ce fichier.

Attention à la dépendance machine avec cette commande
Par exemple la taille des blocs logiques sur SPS7 et dpx2000 est de 1024 alors que
sur dpx5000 elle est de 4096 octets.

Exemple :
mkfs /dev/rdsk/c3d0s1 25200

mknod (/etc/mknod)
Permet de créer un fichier de périphérique
mknod nom major minor type

Syntaxe 1 :
/etc/mknod /dev/nom mode major mineur

/dev/nom => nom du fichier spécial (/dev/tty01, /dev/dsk…)
mode => c pour caractère b pour bloc
majeur => major number
mineur => minor number

Syntaxe 2 :
/etc/mknod nom p

(pour la création de tubes nommés FIFO : First In Fisrt Out, c'est le seul cas ou cette commande est accessible par un utilisateur "ordinaire").
Nom : nom du tube nommé
p : le mode "tube nommé"

Exemples (SPIX) :
mknod/dev/dsk/c3d2 b 0 98
mknod /dev/rdsk/c3d2 c 4 98

Le périphérique ainsi déclaré n'est utilisable que si le noyau dispose d'un programme pilote pour le gérer.

La commande makedev (OSF1) permet également sur certains systèmes de créer des entrées relatives aux périphériques standards sous /dev.

exemple :
makedev Async0 permet de créer automatiquement les 16 entrées tty00 à tty0f sur un système possédant un coupleur gérant 16 voies asynchrones connu sous l'appelation Async0)

/etc/partconf => imprime la conf mat et syst sous SPIX
/etc/dmesg => imprime la conf mat et syst sous HP-UX

Ces commandes permettent d'imprimer la configuration matérielle du système, y compris les modules mémoire, les modules de traitement (MT) et les modules d'échange (ME).

more
Visualise le contenu de fichier par page

- more est un filtre qui permet d'examiner un texte en continu, page par page sur un terminal. Lorsque la page est pleine le message "--More--" est inscrit en bas de l’écran, l'utilisateur peut demander la page suivante en tapant sur <barre espace>.
- more examine le fichier /usr/lib/terminfo à partir du contenu de la variable TERM (SYSTEM V) pour déterminer les caractéristiques du terminal utilisé. Sur un terminal capable d'afficher 24 lignes, more ouvre une fenêtre implicite de 22 lignes.

Syntaxe :
more [-cdflsu] [-n] [+numligne ] [+/chaine ] [fichier ...]

Options :
-n nombre entier qui représente la taille en lignes de la fenêtre de visualisation au lieu de la valeur par défaut.
-c affichage de chaque page en commençant en haut de l'écran (facilite la lecture) -d affiche le message en anglais (espace pour poursuivre et caractère 'effacement pour abandonner) à la fin de chaque page.
-f compte les lignes logiques de préférence aux lignes d'écran (à utiliser si la sortie de nroff est transférée par tube, car ce dernier peut générer des séquences d'échappement).
-l ne pas traiter ^L (changement de page) de façon spéciale.
-s comprime les lignes blanches multiples pour n'en laisser qu'une seule.
-u more sera à même de gérer le soulignement tel qu'il est produit par nroff d'une manière appropriée au terminal donné.
+[numligne ] permet de commencer depuis le numéro de ligne spécifié.
+/chaîne commence deux lignes avant la ligne contenant l'expression régulière "chaîne".

Un certains nombre de séquences de caractères peuvent être tapées quand more s'arrête, en voici quelques une :
i (esp) affiche i lignes supplémentaires (ou une autre page si aucun argument n'est donné)
d idem à ^D avance d'une page
v lance l'éditeur vi à la ligne courante
h aide
if saute i écran et imprime un écran
is saute i lignes et imprime une page
q sort de more
i /expr recherche la i-ème apparition de l'expression régulière expr
!cde appelle un shell avec la commande cde
:f affiche le nom et le numéro de ligne du fichier courant
. répète la dernière commande entrée
...etc...

Exemples :
$more fichier
$more -n15 fichier


mount
Permet de monter un système de fichiers

Annonce au système Unix qu'un système de fichiers doit être connecté à l'arborescence des fichiers dans le répertoire (répertoire_montage).
Le répertoire de montage doit exister, il deviendra la racine du système de fichiers.

Syntaxe :
mount [-option] [sf_nom] [répertoire montage]

sf_nom = fichier spécial mode bloc (exemple : /dev/dsk/c3d0s1 ou serv:/dev/dsk…)

Attention :
Si le répertoire de montage n'est pas vide le contenu restera caché jusqu'au démontage.

Si le système de fichiers (sf_nom) à la forme serveur:chemin il est supposé de type nfs. Dans ce cas, chemin peut être n'importe quel répertoire dans un système de fichier exporté par le serveur.

Si la commande est appelée avec seulement sf_nom ou rep, mount explore le fichier /etc/fstab ou /etc/checklist selon les versions pour trouver le champ correspondant à l'argument donné.

Options :
Sans options ni argument mount donne la liste des partitions montées.
-p => liste les volumes montés au formats :
/etc//fstab ou /etc/vfstab ou /etc/checklist
-a => monte tous les systèmes de fichiers déclarés dans /etc/fstab ou /etc/checklist
-f => le fichier spécial est répertorié dans /etc/mtab, mais il n'est pas monté
-t ou -F => type du système de fichiers (nfs ou syst V par défaut)
-V => affiche la commande sans l'exécuter
-v => mode verbeux
-r => lecture seule
-o options => (ro, rw, hard, soft, nosuid,…)


La liste des fichiers montés est indiquée dans /etc/mtab ou /etc/mnttab selon les versions d'unix.
La liste des fichiers à monter peut-être enregistrée dans /etc/fstab ou /etc/checklist selon les versions d'Unix.
Pour créer un fichier fstab lors de montage : mount -p >> /etc/fstab

Exemples :
$mount /dev/dsk/0s3/usr => monte un disque local
$mount -at systV => monte tous les système de fichiers de type syst V
$mount -t nfs serv:/usr/src /usr/src => monte les systèmes de fichiers à distance
$mount serv:/usr/src /usr/src => comme ci-dessus
$mount -o hard serv:/usr/src /usr/src => comme ci-dessus mais montage matériel
$mount -p > /etc/fstab => sauvegarde l'état de montage courant dans /etc/fstab

mount permet aussi de monter des FS nfs de serveurs nfs.
mount serveur_nfs:rep_distant rep_local
mount /dev/hda1/mnt/disk1

Les fichiers à monter de façon automatique au démarrage du client sont déclarés dans les fichiers clients /etc/fstab pour les systèmes linux et dans /etc/vfstab pour les systèmes Solaris. La carte dans /etc/vfstab est du type :
serveur_nfs:rep_distant - rep_local nfs - yes rw,soft
montage cdrom sur solaris avec vold par insertion du cdrom
montage disquette sur solaris par volcheck /dev/diskette

mt
Manipulation des bandes magnétique

Commande utilisée pour effectuer des opérations sur un dérouleur de bande magnétique. Si le nom de la bande n'est pas spécifié c'est la variable TAPE qui est utilisée. Si TAPE n'existe pas c'est l'unité /dev/rmt/0mn (unité 0, 1600 BPI, no rewind) qui est prise par défaut.

Les opérations peuvent être effectuées plusieurs fois en spécifiant count.

Syntaxe :
mt [-f spécial] action [count]

Actions :
eof n => écriture d'une ou n marques de fin d'archive !Attention
rewind => rembobinage de la bande
fsf n => avance d'un nombre n de fichiers
fsr n => recule d'un nombre n de fichier
bsf n => recule d'un nombre n de fichiers
offline => rembobinage et met l'unité de bande hors ligne
status => affiche le status de la bande
erase => efface le contenu de la bande

On peur également spécifier le module d'échange, le numéro d'unité et le type avec la syntaxe : $mt module init unité type => voir les particularité des constructeur

mv
Permet de déplacer, renommer un fichier.
Si la destination est un répertoire, alors la source peut être une liste de fichiers.

Syntaxe :
mv [-option] source destination

Option :
-f aucune question n'est posée ou l'entrée standard n'est pas un terminal (copie forcée)
-i demande confirmation avant d'écraser un fichier

Exemple :
Mv fichier1 fichier2 répertoire

named
daemon du service DNS explicitement lancé. La partie serveur de BIND est un daemon appelé named.

netstat
Test de l’interface
Affiche les informations concernant chacune des interfaces réseau, les sockets et la table de routage.

Syntaxe :
netstat -options

Options :
-l => Analyse dynamique de l'interface spécifiée toutes les n secondes
-s => Statistiques sur les protocoles utilisés
-rs => Etat du routage
-nr => affiche les destinations, les passerelles, ...
-m => affiche la table de routage
-i => Informations essentielles sur l'interface
paquet sortis et nombre de collision (si > 5% => pb sur le rzo)
U=up, H=host, G=gateway, D=dynamique

newgrp
permet à un utilisateur invité dans un groupe de s'y attacher

Syntaxe :
newgrp nom_groupe (sans paramètre retour au groupe du login)

news
utilisé pour informer les utilisateurs des événements du système

- Par convention, ces événements sont écrits dans le répertoire /usr/news ou /var/news
- Quand news est appelé sans argument, il affiche le contenu de tous les fichiers courants de /usr/news ou /var/news, le plus récent étant affiché le premier.
- Si un ordre <DEL> est tapé durant l'affichage d'un article d'information, l'affichage s'arrête et l'article suivant est lancé.
- Le fichier $HOME/.news_time permet au système de vérifier si l'utilisateur a consulté les nouvelles.

Syntaxe :
news [-a] [-n] [-s] [nom_nouvelle]

Options :
-a affiche tous les articles sans se préoccuper de la date
-n affiche les noms des articles en tenant compte de la date courante
-s donne le nombre d'article(s) existant(s).

voir : Cheknews

nfsstat
statistiques sur les performances de NFS et l’utilisation de RPC

nice
Exécuter un programme avec une priorité d'ordonnancement modifiée.

Si aucun argument n'est fourni, nice affiche la priorité d'ordonnance-ment en cours, dont cette commande a hérité au lancement. Sinon, nice exécute la commande désirée en ajustant la priorité d'ordonnancement.

Si aucun ajustement n'est précisé, la valeur de priorité de la commande est augmentée de 10.

'nice' signifie 'gentil', la valeur de priorité considérée est une valeur de gentillesse. Plus celle-ci est élévée, plus le processus est gentil vis à vis des autres, leur laissant un accès plus fréquent à l'ordonnanceur.

Seul le Super-User peut indiquer un ajustement négatif.(--), ce qui a pour effet d'augmenter la priorité d'un processus

La priorité peut être ajustée avec nice dans l'intervalle -20 (le plus prioritaire) à 19 (le moins prioritaire).

Syntaxe :
nice - [1-19] commande [arguments]

Il est à noter que la commande ps -l fournit deux informations :
.PRI nombre entier fixé par le système
.NI nombre entier sur lequel l'utilisateur peut agir.
La priorité est une combinaison de ces deux nombres, étant entendu que plus le nombre PRI est faible, plus la priorité est élevée.

nice a les valeurs standards :
20 pour un processus en foreground
24 pour un processus en background
A la valeur standard sera ajoutée la valeur indiquée par l'utilisateur dans nice :
10 si omis.

Plus la valeur de nice est faible, plus le process tournera vite.
Le nice n'est pas la priorité du traitement; il entre seulement dans son calcul.

nslookup
Permet d’obtenir des informations à partir des serveurs de noms.
Permet aussi de tester le serveur de nom. Il est fourni avec le package BIND

Exemple :
nslookup station1.entreprise.fr

Par défaut, nslookup ne gère que les enregistrement de type A. Pour passer en enregistrement de type MX et rechercher station1.entreprise.fr faire :

nslookup
set type=MX
station1.entreprise.fr

On peut prendre tous les types : set type=any
On peut changer de domaine : set domain=zoo.deu
On peut changer de serveur : server minerals.big.com

On peut charger le fichier de zone par nslookup :

ls entreprise.fr>fich1
view fich1

od
Vide un fichier en octal (dump)

Syntaxe :
od [-options] [fichier]

Options :
-b => interprète les octets en octal
-c => interprète les octets en ASCII avec :
\0 = NULL
\b = retour-arrière
\f = saut de page
\r = retour chariot
\n = nouvelle ligne
\t = tabulation
-D => interprète les mots longs en décimal non signé
-d => interprète les mots en décimal non signé
-O => interprète les mots longs en octal non signé
-o => interprète les mots en octal (défaut)
-F => interprète les mots doubles en précision étendue
-f => interprète les mots longs en virgule flottante
-S => interprète les mots longs en décimal signé
-s => interprète les mots en décimal signé
-X => interprète les mots longs en hexadécimal
-x => interprète les mots en hexadécimal

ospf_monitor
envoie de requêtes OSPF à une passerelle.

Syntaxe :
ospq_monitor fichier

passwd
Permet à un utilisateur de définir et de contrôler son mot de passe

paste
Fusionner des mêmes lignes de plusieurs fichiers en colonnes
(DPX, ne fait pas partie de POSIX)

Dans les deux premières syntaxes cette commande concatène les lignes correspondantes des fichiers (fusion parallèle). C'est l'inverse de cut (concaténation verticale) car cette commande traite chaque fichier comme une colonne.

Dans sa troisième syntaxe paste assemble les lignes successives d'un fichier en lecture (fusion série). Dans les deux cas les lignes sont assemblées avec le caractère <TAB>.

Syntaxe :
paste fichier1 fichier2
paste -dliste fichier1 fichier2
paste -s [-dliste] fichier1 fichier2

Options :
-dliste => si -d n'est pas spécifiée les caractères de séparation de ligne sont remplacés par le caractère tabulation. Cette option permet donc de remplacer tab par un ou plusieurs autres caractères figurant dans <liste>
liste : caractère(s) entrés immédiatement après -d remplacent le caractère <TAB>.
Cette option fusionne des lignes successives de chaque fichier en entrée.
Cette option peur remplacer n'importe quel nom de fichier quand on désire lire une ligne du fichier stdin.

Exemples :
$ls|paste -d"+" toto titi => met chaque ligne des 2 fichiers sur une colonne séparée par un +
$ls|paste - - - - => liste le contenu du répertoire sur 4 colonnes
$paste -s -d"\t\n" fichier => réunion de paires de lignes en une seule.

ping
Test de la connexion physique avec un host distant
Ping envoie des paquets aux hotes du réseau pour vérifier une défaillance de la connexion physique jusqu’au niveau de la couche 3 ainsi que le temps approximatif d’échange des données entre le host local et le host distant.
On doit en premier lieu lancer cette commande sur le host local, afin de vérifier que l’interface réseau locale est en service et qu’elle fonctionne. Ensuite les hosts et les passerelles seront vérifiés.
En raison de la charge que cette commande peut imposer au réseau, il ne faut pas l’utiliser pendant le fonctionnement normal du réseau.

ping : envoie d'un echo request
retour d'un echo reply
ping –sRv 192.168.127.2

Syntaxe :
ping [-rvn] hostname [-s taille_paquet] [-c paquets]

Options :
-r => Contourne les tables d’acheminement normales et envoie directement vers un réseau directement attaché
-v => Verbeux
-n => Affiche les adresse IP
-s taille_paquet => 64 octets par défaut, 8 minimale et 2048 maximale
-c paquets => Nombre de paquets que ping va transmettre avant de s’arrêter

Exemple :
ping 192.168.100.100

PING 192.168.10.100 (192.168.100.100): 56 data bytes
64 bytes from 20.62.72.103: icmp_seq=0 ttl=255 time=1.8 ms
64 bytes from 20.62.72.103: icmp_seq=1 ttl=255 time=1.7 ms
64 bytes from 20.62.72.103: icmp_seq=2 ttl=255 time=1.7 ms

--- 192.168.100.100 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.7/1.7/1.8 ms

Résultats :
On détaille chaque aller et retour des paquets. Chaque paquet est numéroté séquentiellement (icmp_seq=0), et le temps de l’aller et retour est précisé en millisecondes. La partie statistiques donne des informations récapitulatives, à savoir le nombre de paquets transmis, reçus, le pourcentage de perte et les temps minimum moyen (avg) et maximum pour l’ensemble du test.
Si la machine distante ne répond pas, on récupérer le code de l’erreur qui est dans le deuxième champ du datagramme ICMP :
no answer Interface probablement arrêtée (down) ou machine déconnectée du réseau
unknown host La machine n’existe pas (voir /etc/hosts) ou problème DNS
host unreachable Le routeur ne peut pas transmettre le datagramme
network unreachable Il n’y a pas de route active pour accéder au réseau distant, vérifier les tables de routage avec nestat -r, si le routage est statique.

pipe
Le pipe crée un fichier intermédiaire temporaire
Le fichier intermédiaire est visible par la commande tee

pg
- pg est est un filtre qui affiche séquentiellement le fichier page par page sur l'écran. Chaque page est suivie du caractère d'invite ":", si l'utilisateur tape sur <CR>, une autre page s'affichera.

Syntaxe :
pg [-nombre] [-p chaine] [-cefns] [+numligne] [+/motif /] [fichier ...]

Options :
-nombre spécifie le nombre de ligne par page
-p chaîne utilise "chaîne" comme caractère d'invite.
Si "chaîne" contient un "%d", la première occurrence dans le caractère d'invite est remplacée par le numéro de page.
-c positionne le curseur en haut de la page et vide l'écran après chaque affichage.
-f inhibe le découpage de ligne à l'affichage dans le cas d'utilisation de certaines séquences de caractères indésirables.
-s affiche les messages en reverse vidéo.
+numl commence à numéro de ligne
+/motif / commence dès la première occurrence du motif.

les commandes de pg :
+1 ou <CR> affichage page par page
l affichage ligne à ligne
d simule le défilement d'une demie page en avant
$ affichage de la dernière page du texte
i/motif / recherche du i ème motif après la page courante jusqu'à la fin du texte
s nom sauvegarde le fichier courant dans nom de fichier
h aide mémoire
q ou Q pour quitter
!cde accès aux commandes shell

Exemples :
$cat fichier|pg -p page:%d #affiche le fichier avec numéro de page
$cat fichier|pg -s #affiche les messages en reverse vidéo
$pg fichier #affiche le fichier page par page
$ls -l|pg -20 # affiche sur 20 lignes la liste des fichiers du répertoire courant
$pg +20 fichier # commence l'affichage à la ligne 20

pr
affichage de fichier page par page (souvent utilisé avec la commande lp)

- pr affiche les fichiers spécifiés sur la sortie standard. Si aucun fichier n'est spécifié, le système prend par défaut l'entrée standard.
- Par défaut l'affichage est séparé en pages numérotées portant chacune en haut de la page la date et l'heure ainsi que le nom du fichier.
- Par défaut, les colonnes sont de largeur égale et séparées d'un espace au moins. Les lignes trop longues sont tronquées.
- Si l'option -s est utilisée, les lignes ne sont pas tronquées et les colonnes sont séparées par un caractère de séparation.
- Si la sortie standard est associée à un terminal, les messages d'erreur éventuels sont retardés jusqu’à ce que pr ai terminé l'affichage.

Syntaxe :
pr [-options] [fichier ...]

Options :
+k commence l'affichage à la page k (1 par défaut)
-k produit un affichage en k colonnes (1 colonne par défaut). Les options -e et -i provoquent un affichage en plusieurs colonnes.
-lk (en anglais length) produit un affichage en k lignes par pages
-a affiche plusieurs colonnes sur toute la page.
-m fusionne et affiche tous les fichiers à raison d'un par colonne (cette option se substitue aux options -k et -a).
-d affichage en double interligne.
-eck étend les tabulations d'entrée aux positions de caractère k+1, 2*k+1, 3*k+1, etc...
Si k n'est pas spécifié, les tabulations sont placées tous les 8 caractères.
Si c (tout caractère non numérique) est spécifié, celui-ci est traité comme caractère de tabulation en entrée.
-ick place un numéro de ligne sur les k chiffres (par défaut k=5).
Si c (caractère non numérique) est spécifié, ce caractère est ajouté au numéro de ligne.
-wk (en anglais width) définit la largeur de la ligne à k caractères (72 par défaut).
-p spécifie une pause avant l'affichage d'une nouvelle page
-f spécifie L'utilisation du caractère <FF> (FORM FEED) pour le changement de page au lieu de <NL> (NEW LIGNE).
-r pas de message d'avertissement en cas d'impossibilité d'ouverture du fichier.
-t on n'affiche ni l'entête (5 lignes), ni le bas de page (5 lignes).
-cc sépare les colonnes avec un seul caractère c au lieu du nombre approprié d'espaces (par défaut c'est une tabulation).
-htexte (en anglais header) fixe l'en-tête de page en lieu et place du nom de fichier
-ok k définit le nombre de caractères de retrait par rapport à la marge de gauche
-n chaque ligne est précédée d'un numéro de ligne sur cinq chiffres. Ce numéro est séparé du texte par une marque de tabulation. Ce séparateur peut être modifié.

Exemples :

$pr -3dh fichier1 fichier2 #affiche fichier1 et fichier2 sous forme d'un listage trois colonnes à double interligne, avec "liste fichiers" en en-tête de page.
$pr -e9 -t <fichier1 >fichier2 # affichage du fichier1 sur fichier2 en étendant les tabulations aux colonnes 10, 19, 28, 37, ...
$pr fichier|lp #utilisation du spool pour sortie sur imprimante
$pr -w80 fichier1 fichier1 #affiche fichier 1 et 2 sur 80 colonnes
$pr -n: fichier # affichage avec les numéros de ligne et le caractère séparateur ":"

ps
Affiche l'état des processus en cours

Cette commande utilise de nombreux fichiers et tables système.
Certains résultats affichés par ps ne sont qu'une approximation, donc sans intérêt.

Syntaxe :
ps [-option(s)]

Options :
Sans options, affiche des informations relatives au processus lancés à partir de l'écran ou du terminal de l'utilisateur.
-e => affiche les renseignements sur tous les processus
-a => affiche les renseignements sur tous les processus à l'exception des processus non associés à un terminal "controlling terminal".
-l => affiche la liste complète des processus
-d => affiche des renseignements sur tous les processus à l'exception des "process group leader"
-f => affichage complet avec tous les arguments des commandes
-j => affiche PID et GID
-p PIDs => affichage des processus selon les PIDs spécifié
-t term => affiche la liste des processus associés au terminal spécifié
-u user => affiche les processus appartenant à "user"
-g GIDs => affiche les processus selon les GIDs spécifiés


Exemple :
ps -eal
ps -ef
ps -edf | grep inetd => inetd = daemon qui analyse des ports

pwconv
permet de déplacer les mots de passe du fichier /etc/passwd vers le fichier /etc/shadow (ou équivalent)

pwd
Affiche le chemin du répertoire courant. (print working directory)

Exemple :
$pwd
/users1/applic

quot
Sert à visualiser le nombre de blocs créés par un utilisateur dans un FS
quot /dev/root

quota
Mise en place des quotas utilisateurs sur Solaris

Les quotas sont activés en automatiques sur la machine au démarrage si ils ont été correctement déclarés.

/etc/vfstab
Il doit contenir dans mount options la valeur rq

quotas
il doit contenir un fichier nommé quotas à la racine du FS
touch quotas

On active et désactive les quotas sur un FS par les commandes :
quotaon /
quotaon –a ß tous
quotaoff /
quotaoff –a ß tous

On visualise si les quotas sont activés par la commande :
cat /etc/mnttab
quota : si les quotas sont actifs sur le FS
noquota : si non actifs sur le FS

Définition des quotas utilisateurs
edquota util1 ß permet de modifier les quotas de util1 (util1 doit exister)
edquota util1 util2 …..
edquota –p util1 util2 util3 .. ß crée les même quotas que ceux de util1 sur les utilisateurs util2,util3, etc..
Les valeurs indiquées sont en block de 1Ko
Exemple :
Fs / blocks (soft = 10, hard = 20) inodes (soft = 100, hard = 200)
Dans un deuxième temps, il faut définir les temps pour la limite soft des quotas.
On utilise pour cela la commande
edquota –t util1

exemple :
fs / blocks time limit = 10 [day|hour|month|week|min|sec]
files time limit 20 [day|hour|month|week|min|sec]

Pour valider la configuration , il faut exécuter :
Quotacheck –v / ß le verbose donne une info par utilisateur
Quotacheck –va ß sur tous les FS déclarés

rcmd
Permet de lancer une commande sur une machine distante
rcmd nécessite d'avoir une entrée sur la machine distante dans /etc/hosts.equiv ou dans .rhost.

Syntaxe :
rcmd nom_machine série_de_commande_a_executer

rcp
'r' commande (connexions distantes)
Copie entre machine, le fichier1 sur le fichier2

rcp nécessite d'avoir une entrée sur la machine distante dans /etc/hosts.equiv ou dans .rhost.

Syntaxe :
rcp [-pr] système source:fichier1 système destinataire:fichier2

Attention le nom de la machine locale source ou destinataire doit être omis.

Options :
-p => Conserve les caractéristiques du fichier
-r => Copie de façon récursive le répertoire source

rdist
Mises à jour en réseau

rdist est un outil de distribution de fichiers d’un serveur sur des machines distantes.
Il permet, par l’intermédiaire d’un fichier de configuration (distfile) de maintenir une cohérence de fichiers entre plusieurs machines. Il préserve le propriétaire, le groupe ainsi que le mode des fichiers.
Le fichier distfile permet de définir les postes cibles ainsi que les fichiers à copier. Il offre également la possibilité de définir les opérations à réaliser pour effectuer la mise à jour.
Il est composé de séquences d’instructions selon le format suivant :
initialisation de variables :
variable = (val1 val2 …)
distribution de fichiers et/ou répertoires vers des machines destination :
[ label : ] (fic1 fic2 …) -> (host1 host2 …) (action1 action2 …)
évolution par rapport à une date :
[ label : ] (fic1 fic2 …) : : (fichier date) (action1 action2 …)
Les actions peuvent être :

install [-ooption1,option2,…] ; copie les fichiers et/ou répertoires.
notify (user1 user2 …) ; envoye un courrier électronique aux utilisateurs désignés.
except (fic1 fic2 …) les fichiers et/ou répertoires cités ne sont pas copiés
special (fic1 fic2 …) commande permet de spécifier une commande shell qui sera exécutée lors de la copie des fichiers et/ou répertoires cités.

Exemple :
#Déclaration des variables
HOSTS = (657-11-X01 657-11-X02 657-11-X03 657-11-X04)
FILES_USERS = (/etc/passwd /etc/group /etc/shadow)
FILES_NETWORK = (/etc/hosts /etc/services /etc/protocols)
# label users : installer les fichiers $FILES_USERS
# prévenir root
users :
$FILES_USERS -> $HOSTS
install ;
notify root@20.62.72.121 ;

# label net : installer les fichiers $FILES_NETWORK
# réinitialiser l’interface réseau
net :
$FILES_NETWORK -> $HOSTS
install ;
special $FILES_NETWORK ’’/etc/rc.d/init.d/network start’’

rdump
C'est une version de dump qui utilise les fichiers spéciaux déclarés sur la machine distante à travers le réseau.

Syntaxe :
/usr/sbin/dump [option [argument ... ] filesystem]
/usr/sbin/rdump [option [argument ...] filesystem]

Exemple :
/usr/sbin/dump Odf 6250 /dev/rmt/cOtOdOBEST /mnt

reject
Interdit l'accès à la file d'attente spécifiée

Syntaxe :
/usr/lib/reject [-rraison ] destination
(destination = classe ou imprimante)

Options :
-rraison => si absent un message par défaut sera émis suite à une commande lp

renice
Définir la priorité d'un processus durant son exécution

Les Unix Berkeley possède cette commande, elle est aussi disponible avec Linux.

Syntaxe :
renice priorité [[-p] pid ...] [[-g] pgrp ...] [[-u] utilisateur ...]

Options :
priorité nouvel ajustement de la priorité à affecter au processus en cours
-p pid PID sur lequel ou lesquels porteajustement de la priorité
-g pgrp groupe de processus sur lequel porte l'ajustement de la priorité
-u utilisateur l'ajustement de priorité portera les les processus appartenant à
l'utilisateur spécifié.

reset
Réinitialise un terminal pour le placer dans un état utilisable
(par exemple après un incident)

Cette commande utilise l'entrée Rspeed du fichier /etc/gettydefs.
Un message est émis si le terminal est prêt

restore
Restaure les fichiers sauvegardés avec dump sur linux

rexec
Client d’exécution distante

Syntaxe :
rexec [options] host commandes

Options :
-a => Ne créé pas une autre ligne pour les messages d’erreurs standard.
-b => Utilise les même signaux que rsh (BSD).
-c => Ne ferme pas la connexion distante lors de la fermeture de la connexion locale.
-d => Information de debuggage.
-h => Message d’aide.
-n => Demande un nom de connexion et un mot de passe.
-s => Ne transmet pas les signaux au processus distant.
-l username => Positionne le nom de connexion à username sur l’hote distant.
-p password => Positionne le mot de passe à password sur l’hote distant.


ripquery
Envoie de requêtes RIP à un hôte distant.
Fournit des informations concernant le contenu des paquets des mises à jour RIP devant être reçus ou envoyés par votre système (inclus dans package gated)

Syntaxe :
Ripquery [-n]

rlogin
'r' commande (connexions distantes)

Syntaxe :
rlogin [machine_distante] [-l login]

Si [-l login] n'est pas précisé, vous vous connectez à la machine_distante avec votre propre login. il faut donc y posséder un compte à ce nom là.
Si [-l login] est précisé, vous vous connectez à la machine_distante sur un autre compte pour lequel vous devez connaître le password.

Pour ce déconnecter, utiliser la commande logout.

rm
Destruction d'un fichier ordinaire.

- La commande rm supprime les entrées d'un ou plusieurs fichiers spécifiés d'un répertoire
- Si une entrée constituait le dernier lien avec un fichier celui-ci est détruit
- La suppression d'un fichier implique que l'on est la permission d'écriture dans le répertoire droit w), mais il n'est pas nécessaire d'avoir la permission de lecture ou d'écriture pour le fichier lui même si on est le propriétaire du fichier.
- Attention sans option la destruction s'effectue sans question de confirmation posée.
- Si le fichier désigné est un répertoire, un message d'erreur est affiché à moins que l'on ait utilisé l'option -r.

Si le sticky bit est actif, seul le propriétaire du fichier ou le super user peuvent supprimer ce fichier.

Syntaxe :
rm -option fichier

Options :
-i => interactif, une question de validation est posée.
-f => ne tient pas compte des protection des fichiers.
-r => Récursivité; permet d'effacer un répertoire et son contenu

Attention, on ne peut pas récupérer un fichier qui a été effacé.

rmdir
Destruction d'un répertoire.

On ne peut supprimer un répertoire que si on a un accès en écriture sur celui-ci ou que l'on soit l'administrateur.
On ne peut pas supprimer un répertoire qui est un point de montage d'un système de fichier.

Syntaxe :
rmdir répertoire

Options :
-r => détruit un répertoire non vide
-i => interactive (demande de confirmation de la suppression.

- Pour pouvoir supprimer l'utilisateur doit avoir la permission d'écriture (droit w).

Exemples :
$rmdir rep1
$rm -ir * #suppression de tous les fichiers du répertoire courant de manière interactive

rmt
Est utilisée par ftio, fbackup, frecover, rdump et rrestore pour manipuler un lecteur de bande magnétique via une connexion par les IPC, "interprocess communication".

Syntaxe :
/usr/sbin/rmt

Exemple
/usr/sbin/newfs -F hfs /dev/rdsk/cOtOdO
/usr/sbin/mount /dev/dsk/cOtOdO /mnt
cd /mnt
restore r

route
Permet de mettre à jour la table de routage (réseau, passerelle, metric) . Pour un routage statique, il faut ajouter les commandes route dans les fichiers de démarrage (/etc/init.d/inetinit sur solaris, /etc/rc.d/rc.inet1 sur linux)
route add 207.25.98.0 172.16.12.1 1 (add/delete)
route add default 172.16.12.1 1 le metric est obligatoire pour que le flag passe à G
Il faut commenter les lignes de routage statique dans le script si celui ci lance aussi un protocole de routage.

La commande route :
Route add adresse_réseau add_passerelle metric
Avec metric à 1 si la passerelle est un routeur et 0 si l'interface est locale
Route add adresse_reseau adresse_passerelle –static –netmask mask_vlsm metric
Route add default add_passerelle metric

On visualise les interfaces actives par la commande ifconfig –a
On vérifie que les interfaces soient UP

On contrôle les routes par netstat –nr
On vérifie que les route soient U pour UP et G pour les routes nécessitent une passerelle

Les commandes ifconfig et route ne sont pas permanentes; la configuration sera perdue au redémarrage. Préféré la configuration par les fichiers de comme précédemment expliqué.

routed
daemon du service RIP explicitement lancé

rpcinfo
Adresse un appel RPC à un serveur RPC et affichage les informations trouvées(séries 300 et 800).

Syntaxe :
rpcinfo -p [hostname]
rpcinfo -u I -t hostname program [version]

Options :
-p => interroge portmapper sur le host (ou par défaut valeur retournée par la commande hostname) et affiche une liste des programmes RPC enregistrés.
-u => adresse un appel RPC à la procédure 0 sur le host spécifié en utilisant UDP et affiche des informations si une réponse a été reçue.
-t => adresse un appel RPC à la procédure 0 sur le host spécifié en utilisant TCP et affiche des informations si une réponse a été reçue.
programme => peut être soit un nom, soit une valeur.
version => si spécifié, rpcinfo essaye d'appeler la version du programme correspondante, sinon 1 est utilisé.

rrestore
C'est une version de restore qui utilise les fichiers spéciaux déclarés sur la machine distante à travers le réseau.

Syntaxe :
/usr/sbin/restore key [name ... ]
/usr/sbin/rrestore key [name ... ]

Exemples :
/usr/sbin/newfs -F hfs /dev/rdsk/cOtOdO
/usr/sbin/mount /dev/dsk/cOtOdO /mnt
cd /mnt
restore r

rsh
'r' commande (connexions distantes)
Lance un processus shell sur la machine_distante.
La sortie de la commande sera dirigée vers le système local.

Syntaxe :
rsh machine_distante [-l login] commande [arguments]

rup et ruptime
Affiche l'état des machines du réseau local
Le fonctionnement de ces deux commandes est différent, rup fonctionne par des appels de procédures à distance via le daemon RPC « rstatd », et ruptime dépend du serveur « rwhod ».

Syntaxe :
rup [-h] [-l] [-t] [hostname]...
ruptime [-a] [-I] [-t] [-u] [-r]

options :
-h => Tri par nom de machine
-l => Tri par taux d'occupation
-t => Tri par temps de fonctionnement
-a => Affiche aussi les machines invisibles depuis plus d'une heure
-u => Tri par nombre d'utilisateurs connectés
-r => Inverse l'ordre de tri

Exemple :
rup
192.168.100.14 up 10 days, 1:16, load average: 0.00 0.00 0.01
192.168.100.16 up 7 days, 6:29, load average: 0.00 0.01 0.02
192.168.100.19 up 6 days, 3:25, load average: 0.05 0.04 0.03

Résultat :
Le premier champ est le nom de la machine, suivi de l'état et du temps de fonctionnement exprimé en jours, heures et minutes. Les champs suivants indiquent les taux de charge de la machine et en plus pour ruptime le nombre d'utilisateurs.

rusers
'r' commande (connexions distantes)
Fournit des informations sur l'ensemble des utilisateurs connectés et sur les machines du réseau.
Rusers est une commande proche de rwhos
Le fonctionnement de ces deux commandes est différent, rusers fonctionne par des appels de procédures à distance, et rwho dépend du serveur "whod".

Syntaxes :
rusers [-a] [-h] [-i] [-l] [-u] [hostname]

Options :
-a => affiche aussi les machines sans utilisateur connecté
-h => tri par nom de machine
-i => tri par temps d'inactivité
-l => affichage long à raison d'une ligne par utilisateur
-u => tri par nombre d'utilisateur

rwho 'r' commande (connexions distantes)
Fournit des informations sur l'ensemble des utilisateurs connectés et sur les machines du réseau.
Rwho est une commande proche de rusers
Le fonctionnement de ces deux commandes est différent, rusers fonctionne par des appels de procédures à distance, et rwho dépend du serveur "whod".

Syntaxes :
rwho [-a] => affiche aussi les machines sans utilisateur connecté


sdb
Debugger utilisé pour une analyse post-mortem (à partir du core dump).
Le debugger nécessite que l'option -g est été activé lors du lancement du compilateur.
De même, il est important d'avoir accès au fichier source.

set
Permet de lister toutes les variables (prédéfinies ou non par l'utilisateur et par le système) initialisées pendant une session.
Si le shell trouve parmi les paramètres de la commande echo la commande set, on peut récupérer le résultat d'une commande dans les paramètres de position du shell.
Il est à noter que la commande unset permet la suppression irrémédiable de variables ou de fonction, seule la commande readonly permet de se protéger contre la suppression involontaire de variables.

Exemples :
$set

$echo `set date`; echo $*

share
Commande Solaris permettant de partager (exporter) un FS NFS.
Pour que le partage soit permanent, il faut intégrer la commande share dans le fichier /etc/dfs/dfstab
share -F nfs -o rw=machine1:machine2 ro /usr/man
share –F nfs –o rw=iccsta1 –d "rep config" /etc
Faire ensuite un /etc/init.d/nfs.server stop ( puis start)

showmount
Cette commande Solaris présente la liste des FS NFS disponible sur un serveur NFS.
showmount -e serveur_nfs

showrev
showrev -p <= version de tous les patchs sur solaris

shutdown (/etc/shutdown)
Cette commande permet la coupure du système (envoie d'un SIGTERM sur l'ensemble des process).
Pour couper un système unix proprement, quelque étapes doivent être effectuées avant cette commande.
Prévenir tous les utilisateur (commande /etc/wall)
Les empêcher de se connecter (commande disable tty…)
Interrompre les processus en cours
Effectuer les écritures encore en mémoire sur le disque dur (sync)

Option :
shutdown -f => Choix d'un processus plus rapide pour l'arrêt (fast shutdown).
shutdown -h => Coupure pour installation nouveau disque (arrêt total).
shutdown -q => Les messages ne doivent pas être affichés à l'écran (quiet).
shutdown -r => L'ordinateur doit être redémarré dès la procédure d'arrêt terminée.

Exemple :
shutdown -r 13:00 => L'ordinateur est éteint mais n'est redémarré qu'a 13 heure.
shutdown -r 13+10 => L'ordinateur est éteint est redémarré 10 minutes plus tard.
shutdown -r now => L'ordinateur est éteint est redémarré tous de suite.

Commandes utilisant shutdown
Ctrl Alt Suppr => défini dans le fichier /etc/inittab
halt =>
poweroff =>
reboot =>

sndconfig
Permet de paramétrer la carte son (linux)

snoop
Analyse un par un les paquets échangés entre les machines d’un réseau. snoop est un analyseur de protocole TCP/IP qui examine le contenu des paquets y compris leurs entêtes. Il est particulièrement utile pour analyser les problèmes de protocoles. tcpdump sur linux est un produit semblable à snoop. snoop est livré avec le système d’exploitation solaris.
snoop host machine1 and host machine2 : Permet de voir uniquement les paquets de machine1 vers machine2 et inversement.

spray
Test de la bande passante entre deux machines via des appels de procédure à distance.

Syntaxe :
spray hostname [-c compt ] [-d delai ] [-i delai ] [-l long]

Options :
compt => Nombre de RPC à envoyer, 100 000 octets par défaut
delai => Délai d'attente en millisecondes entre les envois, 0 par défaut
long => Taille dans le paquet Ethernet qui doit être occupée par le RPC. Cette taille doit être multiple de 4 et la taille maximale est de 1514, par défaut 86 octets

stty
Définir les différents paramètres de gestion physique d'un terminal.

Syntaxe :
stty [options]

Options :
stty seul affiche la liste des options positionnées
-a affiche toutes les valeurs des options
-g affiche les valeurs courantes sous forme utilisable comme argument dans une autre commande

attention : aucun contrôle de validité n'est effectué.

Arguments :
Les arguments précédés de - signifie "annulation de la fonction"
term type de terminal
speed vitesse de transmission en bauds
parenb autorise (supprime) le contrôle de parité
parodd parité impaire (paire)
cstopb utilise 1 (2) bits stop par caractère
clocal indique qu'il s'agit d'une ligne sans contrôle du modem
swtch utilisé par la fonction de gestion des travaux shl, pour faire passer la couche courante en couche de contrôle.
kill pour supprimer une ligne entière (^U par défaut)
eof fin de fichier (^D par défaut)
brkint signale les <INTR> sur interruption
istrip compacte sur 7 bits les caractères entrés
inpck validation du contrôle de parité en entrée
icrnl transformation des <CR> en <NL> en entrée
onlcr transformation des <NL> en <CR>-<NL> en sortie
echo écho de chaque caractère entré
echoe écho du caractère <ERASE>
echok écho du caractère <NL> après <KILL>
ixany tout caractère au lieu de ^Q relance le défilement
...

Exemples :
$stty
speed 9600 baud; -parity clocal
swtch = ^`;
brkint -inpck icrnl onlcr
echo echoe echok
$stty -a
speed 9600 baud; line = 0;
intr = DEL; quit = ^|; erase = ^h; kill = ^u; eof = ^d; eol = ^`
swtch = ^`
-parenb -parodd cs8 -cstopb -hupcl cread clocal
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr
...
$stty erase '^H' # configure le caractère <BACKSPACE>
$stty -echo # enlève l’écho des caractères à l'affichage

su
Permet de changer d'identité et éventuellement (si l'option - est spécifiée) d'environnement par validation des fichiers "profile" comme lors d'une nouvelle connexion.
Sans nom d'utilisateur cette commande essaie une connexion sous root
Comme avec login, on termine la session avec <CTRL D>.

Syntaxe :
su nom_utilisateur => change d'identité
su - nom_utilisateur => change d'identité et d'environnement
su [-] nom_utilisateur -c "commande(s) [argument] => exécute la commande citée avec l'identité et les droits plus éventuellement l'environnement de l'utilisateur spécifié

La distinction entre login et su peut se faire par l'analyse du paramètre $0
(contient - ou -su).
Comme avec login on termine la session avec <CTRL-D>.

Attention : Ne pas utiliser la commande passwd pour changer votre mot de passe si
utilisation de su, passwd est rattaché à login.

superprobe
Permet de détecter la carte vidéo, son chipset, sa mémoire, son ramdac (linux)

Sync
vidage du cache mémoire et mise à jour du super bloc.
Permet d'écrire sur le disque les informations qui résident encore en mémoire.

La primitive sync devra être utilisée notamment à chaque arrêt système

Le mode "caractère" : on demande au driver d'effectuer la lecture d'un ensemble de caractères non structuré, il n'y a donc pas la notion de bloc.

Ce mode concerne principalement les terminaux, les imprimantes,…

Un utilitaire (fsck) permet de "réparer les incohérences du système de fichiers au prix d'une perte d'informations certaines fois.

syncinit
Permet de créer et configurer l'interface série (solaris)

tail
Afficher les dernières lignes d'un fichier

Par défaut affiche les dix dernières lignes du fichier spécifié.

Syntaxe :
tail [ +/-[ n ] [ lbc [f] ] ] [fichier …]

Options :
+n => l'affichage commence à +n lignes du début du fichier
-n => l'affichage commence à -n ligne de la fin du fichier
l/b/c => représente respectivement des lignes, des blocs ou des caractères.
-f => (poursuivre) ne se termine pas à la fin d'un fichier, mais attend de nouvelles lignes. Cela permet si le fichier d'entrée n'est ni un tube ni un fichier spécial d'entrée dans une boucle sans fin dans laquelle il tente de lire et de copier sur la sortie standard tout ce qui est entré dans le fichier d'entré. Cette option peur être utilisée pour surveiller la croissance d'un fichier.

Exemples :
$tail +15 fichier => affiche les 15 premières lignes de fichier
$tail -5c => affiche les 5 derniers caractères de fichier
$tail -f fichier => affiche les 10 dernières lignes de fichier, puis attend des ligne supplémentaires.

talk
dialoguer avec un utilisateur
- talk permet de communiquer avec une personne connectée sur le système local ou sur une machine éloignée. L'utilisateur appelé est prévenu qu'un autre utilisateur veut le joindre. L'écran est partagé en deux, le texte frappé en local s'affiche dans la partie supérieure de l'écran alors que le texte reçu s'affiche dans la partie inférieure de l'écran.

Syntaxe :
talk destinataire [terminal]

Exemple :
talk jjm@disney # l'écran de jjm sur la machine disney se séparera en
# deux et il recevra une invitation à répondre.

tar
Dispositif de sauvegarde type cpio mais avec description dans la ligne de saisie des fichiers et répertoires à sauvegarder. Sur SCO, un fichier /etc/default/tar contient la description du support (nombre de blocs, taille, nom,…).


Syntaxe :
tar lettre_fonction [argument] [fichiers(s)]

lettre fonction :
c => création initial
r => création en fin d'archive
u => création en ajout inconditionnel
x => restauration
t => affichage des données du support sans restauration

arguments (à vérifier selon les versions d'Unix)

0 à 3 => numéro de dérouleur
A => supprime les références absolues de chemin
b n => facteur de blocage est égal à n
e => arrêt en cas d'erreur
f fic => utilise le fichier d'archive fic
F fic => fic contient la liste des fichiers à inclure
X fic => fic contient la liste des fichiers à exclure
l => basse densité (800 BPI) ou signale si on peur recréer tous les liens
L => suit les liens symboliques
m => moyenne densité (1600 BPI) ou heure de modification = heure d'extraction
i => intermédiaire densité (3200 BPI) ou ignore les erreurs de 'checksum'
h => haute densité (6250 BPI)
ktaille => taille du support en octets
o => les fichiers appartiennent à l'utilisateur courant
P => extrait avec les permissions présentes sur le support
n => le support n'est pas une bande magnétique
v => verbeux, echo de l'archivage
w => archivage avec dialogue (interactif)
f/dev/… => spécification de l'unité de stockage des fichiers archives (mode caractère).

Exemples :
$tar cvf /dev/rflop * => archivage sur disquette
$tar cv 'find /home -mtime -1 ! -name "*.o" ! -type f -print'
=> sauvegarde incrémentale
$tar xvf /dev/rflop fichier => restauration de fichier à partir de disquette
$tar tv /dev/rflop => listage du contenu de la disquette
$tar cf - . | (cd rep ; tar xf -) => déplacement de hiérarchie
$tar xpbf /dev/rmt1 1024 => les différents Unix acceptent en général
$tar -x -p -f /dev/rmt1 -b 1024 ces deux formes

Attention :
Lors de la restauration l'utilitaire tar se comporte différemment suivant que l'on est UID=0 ou un autre utilisateur.

Avec les versions BSD 4.[23]? si c'est l'administrateur système qui effectue la restauration, les permissions propriétaire et groupe sont intégralement conservées. On peut donc avoir des utilisateurs et des groupes inconnus si par exemple la bande provient d'un autre système. Si c'est un autre utilisateurs qui effectue la restauration, tous les fichiers restaurés ont pour propriétaire et groupe propriétaire ceux correspondant à l'utilisateur qui fait l'extraction.!

En System V, pour tous, les permissions, le propriétaire et le groupe propriétaire des fichiers sont intégralement conservés. On peut donc avoir des propriétaires et des groupes inconnus si par exemple la bande provient d'un autre système. Dans le cas ou on utilise l'option -o les fichiers restaurés auront pour propriétaire et groupe propriétaire ceux correspondant à l'utilisateur qui fait l'extraction.

tar -cv /home => Sauvegarde des fichiers et répertoires en dessous de /home
tar -tvf /dev/rtc0 => Consultation du support
tar -xvf /dev/rtc0 => Restauration

tee
Commande utilisée pour traiter le fichier intermédiaire du pipe

Cette commande lit les données par le canal d'entrée standard et les restitue dans le fichier spécifié.

Syntaxe :
tee [-option] fichier

Option :
-a => Permet d'ajouter les données au fichier sans effacer son contenu.

Entrée ========> Sortie
===> Fichier

Exemple :
ls -l * |tee fichier_ls |uniq >/dev/tty

telnet
Terminal virtuel

Exemple :
telnet 192.168.127.2 25 => 25 = n° port

test
la commande test effectue des comparaisons . Dans le Bourne shell, elle retourne dans la variable $? le résultat 0 si vrai, 1 si faux. On peut remplacer la commande test par des [] qui encadrent la condition.

Syntaxe :
test –option fichier
ou test –option "$variable"

Options sur les fichiers :
-f => fichier normal
-d => répertoire
-c => périphérique mode caractère
-b => périphérique mode bloc
-p => named-pipe
-r => lecture autorisée à l'utilisateur de ce script
-w => écriture " " " " "
-x => exécution " " " " "
-s => taille fichier supérieure à 0

Options sur les chaînes de caractères :
-z => zéro string (chaîne vide)
-n => non zéro string (chaîne non vide)

Options sur les chaînes numériques :
-eq => égal
-ne => non égal
-lt => plus petit que
-gt => plus grand que
-le => inférieur ou égal
-ge => supérieur ou égal




Il est possible de définir des combinaisons logiques par :
! non
-a ET
-o OU

On peur chaîner une commande test avec une autre commande ; par exemple echo. Pour cela, on utilise le ET du shell && ou le OU du shell || . && et || appartiennent au shell et ne doivent pas être confondus avec –a et –o de la commande test.

Exemples :
test –r /etc/passwd; echo $?;
test –z "$var"
test "$dim" –gt 200 && echo "dimension supérieur à 200 mètres"
[-r toto –a ! –w toto] && echo "accès en lecture et sans écriture"
test \(-d "$var" –a –x "$var" \) –o \( -f "$var" –a –x "$var" \)
attention! Mettre \ devant ( pour indiquer au shell qu'il ne doit pas l'interpréter.

tput
Cette commande utilise la base de donnée /usr/lib/terminfo pour la mise à disposition du shell des caractéristiques du terminal

Syntaxe :
tput [-options] arguments

Options :
-Tterm => type de terminal (valeur par défaut de la variable TERM)

Arguments
smso ou rev => reverse vidéo
blink => clignotement
dim => sous brillance
invis => plus d'écho
smu1 => souligné
rmso => annulation des choix précédents
clear => effacement de l'écran
(idem clear mais tput clear et la version normalisée
cols => affiche le nombre de colonnes
hc => définit le code de sortie pour déterminer si le terminal est ou non un terminal d'impression (hardcopy)

traceroute
Affiche les informations sur chaque relais que traversent les paquets d’un système à un système distant
traceroute reseau.etis.net

trap
Définir un traitement spécifique à réaliser lorsque survient un signal

Cette commande permet :
Qu'un signal soit complètement ignoré par le script;
Que le script, a l'apparition d'un signal, exécute une commande prédéfinie;
Qu'il se mette à nouveau en état de réception pour un éventuel signal à venir.

Syntaxe :
trap [arg1;arg2;…;argn] [n]

Exemples :
$trap => sans paramètre, donne la liste des signaux enregistrés
$trap 'continue' 2 => positionnement d'un traitement associé a <DEL>
$trap echo 'fin de session ; sleep 2' 0
$trap "2 => inhibition de la touche <DEL>
$trap 2 => mise des valeurs par défaut

tree
Montre de façon semi graphique l'arborescence à partir de répertoire

Syntaxe :
tree répertoire

tset
Rétablir les attributs spécifiques du type de terminal.

Si la variable d'environnement TERM est établie, tset initialise le terminal en transmettant certaines séquences d'initialisation "terminfo" et en exécutant les commandes tabs et stty
La commande tset est souvent dans le fichier /etc/profile, elle intervient donc au moment de la connexion.

Syntaxe :
tset [-options] [terminal]

Options :
-e[c ] le caractère <ERASE> sera c
-E[c ] idem à e pour les terminaux utilisant le <BACKSPACE>
-k[c ] le caractère <KILL> sera c
- affiche le type de terminal
-s affiche les commandes d'environnement
-h cherche dans le fichier /etc/ttytype
-S affiche seulement les chaînes à placer dans les variables d'environnement.

Exemple :
$eval `tset -s -Q -m ' : ?hp' `

tune2fs
Permet de définir pour un FS en ext2 :
Le nombre maximum de mount avant fsck
Le temps maximum avant fsck
Le nombre de blocks réservés à root

tty
Quel est le nom de mon terminal?

ufsdump
Sauvegarde des fichiers (solaris) voir ufsrestore
ufsdump 0f /dev0rmt/0 => Sauvegarde complète
ufsdump p0f/dev/rmt/0/file_syst => sauvegarde DAT

ufsrestore
Restaure des fichiers sauvegardés avec ufsdump (solaris)
ufsrestore rv <= Restauration totale à partir du répertoire courant
ufsrestore iv <= Restauration interactive à partir du répertoire courant (annexe)

La fonction solaris ufsrestore iv permet de restaurer une partie du FS en interactif.

cd permet de se déplacer sur la bande
ls permet de voir ce quelle contient
add permet de rajouter un fichier ou un répertoire (convention *)
delete permet de supprimer de la liste un ensemble de fichiers ou de répertoire
extract permet de lancer la restauration à partir des fichiers précédemment décrits
pwd permet de connaître sa position sur la bande
quit permet de quitter sans restaurer

ulimit
Sert à limiter la taille maximale que peut prendre un fichier

umask
Défini les permissions par défaut. (base 8)
Les droits maximum fixés par umask sont 777 pour les répertoires et 666 pour les fichiers.
Attention, le masque est exprimé sous la forme du complément à 666/777 des droits désirés pour le fichier/répertoire.
umax sans argument renvoie la valeur du masque pris par défaut.

Exemple :
umask 022 répertoire => droit désiré de 755 pour le répertoire.
=> indique que l'écriture ne sera pas validée pour le groupe et les autres.

Nota : La commande umask peut-être rentrée dans le fichier .profile (recommandé)

umount
Permet de démonter des FS
Avant démontage, utiliser la commande sync.
Aucun utilisateur ne doit être positionné sur le répertoire de montage.
umount émet un avertissement si le système de fichiers à monter est couramment monté sous un autre nom.
umount émet un avertissement si le fichier spécial n'est pas monté ou s'il est occupé.

Syntaxe :
umount [-options] [sf_nom|repertoire_montage]

Options :
-a => démonte tous les systèmes de fichiers déclarés dans :
/etc/fstab ou /etc/checklist
-v => verbeux
-V => affiche la commande sans l'exécuter

Exemples :
$umount /dev/dsk/c3d1s1
$umount /dev/pd302
$umount -v /mnt

Sur solaris, on démonte un support amovible en effectuant eject cdrom ou eject diskette.

unalias
Commande inverse d'alias

Syntaxe :
unalias nom_alias

uname
Permet d’avoir des informations sur le système

Syntaxe :
Uname -options

Options :
-n => affiche le nom de nœud télécoms
-m => affiche le nom de la machine
-s => affiche le nom du système
-r => affiche l'état de la version du système
-v => affiche la version du système
-a => affiche toutes les informations

utilisation courante : uname -sr

uniq
Recherche des lignes adjacentes identiques dans un fichier trié

Les lignes adjacentes identiques sont supprimées pour n'en laisser qu'une seule. Attention les fichiers d'entrée et de sortie doivent être différentes.

Syntaxe :
uniq [ -option] [+n] [-n] ] [fic_in] [fic_out]

Options :
-u => seules les lignes non répétées sont écrites en sortie
-d => spécifie qu'une seule copie des lignes répétée doit être écrite
-c => annule et remplace -u et -d et génère un état en faisant précéder chaque ligne de son nombre d'occurrences
-n => les n premiers champs ainsi que tout blanc en début de chaque ligne sont ignorés
+n => les n premiers caractères sont ignorés (après -n s'il y en a).

update
update est une commande qui fait des sync automatiquement toutes les 30 secondes.
bdflush fait un peu la même chose que sync mais de façon plus fréquente. C’est aussi update qui le lance.

users
retourne la liste des utilisateurs connectés

uucp
Utilitaires permettant de relier plusieurs machines par l’interface série avec un modem (mot clé ACU) ou sans un modem (mot clé DIR pour direct).
Ces utilitaires permettent :
- de copier des fichiers sur une autre machine uucp
- lancer des programmes sur un autre poste uux
- émulation de terminal cu
- envoyer des messages

Les répertoires de uucp:
- les fichiers de gestion : /usr/lib/uucp
- les données transférées dans le répertoire temporaire: /usr/spool/uucppublic
- les données de gestion pour les communications : /usr/spool/uucp

C’est le daemon /usr/spool/uucico qui est chargé d’établir le dialogue avec l’autre machine.
Le fichier /usr/spool/Permissions est utilisé.
Le processus cron lance toutes les heures la commande uudemon.hour, qui remet en activité la commande uusched.

Configuration d’un réseau par les ports séries :
- /usr/lib/uucp/Systems : vitesse de transmission
- /usr/lib/uucp/Devices : structure de la liaison physique
- /usr/lib/uucp/Dialcodes : numéro de téléphone à composer
- /usr/lib/uucp/Permissions

Une entrée dans Systems fait référence aux fichiers Devices et Dialcodes.
Le fichier /usr/lib/uucp/Permissions décrit les autorisations sur la machine locale. Pour chaque utilisateur, il devra y avoir une entrée dans /etc/passwd au format :
Nom::UID:GID::/usr/spool/uucppublic:/usr/lib/uucp/uucico

Les commande de l’administrateur pour uucp :
- /usr/lib/uucp/uuclean
- /usr/bin/uustat : affiche l’état des requêtes uucp
- /usr/bin/uulog : ensemble des transactions uucp et uux
- /usr/lib/uucp/uucheck : vérifie la cohérence de uucp
- /usr/lib/uucp/uutry : pour tester la liaison avec une autre machine
- /etc/uuinstall : commande centrale de gestion de tous les fichiers relevant de uucp

useradd
Création d'un utilisateur
Useradd –g group_id username

wall (/etc/wall)
Envoie un messages à tous les utilisateurs.

wc (word count)
Affiche le nombre de lignes, mots caractères d'un fichier

Syntaxe :
wc [-options] fichier

Options :
sans option, on obtient l'équivalent de lwc
-l => nombre de lignes
-w => nombre de mots
-c => nombre de caractères
-lwc => options par défaut

Exemples :
wc /etc/passwd => donne le nombre de lignes, mots et caractère du fichier passwd
wc -l /etc/passwd => donne le nombre de lignes du fichier passwd

whence
Indique si la commande est interne ou externe

Syntaxe :
whence [-option(s)] nom_fichier

Options :
-p => recherche du chemin d'accès
-v => rapport plus détaillé

whereis
Permet de connaître le répertoire où se trouve référencée une commande

- Cette commande va effectuer sa recherche dans les répertoires :
/usr/src/*, /usr/sbin, /sbin, /bin, /usr/lbin, /usr/ccs/bin, /usr/share/man/*, /usr/local/man/*, games, include, ....(voir man).

Exemple :
$whereis ls
ls: /sbin/ls /usr/bin/ls /usr/share/man/man1.Z/ls.1

which
Localise les programmes file inclus dans $PATH ou alias

who
Identifie les utilisateurs actifs sur le système

Syntaxe :
who [-option][fichier]

Fichier : /etc/utmp (par défaut)

/etc/utmp : historique de toutes les connexions depuis la génération du système.

Options :

-u => ne liste que les utilisateurs connectés
.nom de la ligne retrouvée dans /dev
.heure de connexion
.temps écoulé depuis la dernière activité
"." terminal actif au cours de la dernière minute et en cours
"old" ligne pas utilisée depuis l'amorçage du système ou depuis 24 heures
.Pid identification du processus
.zone commentaires (/etc/inittab)
-T => indique l'état de la ligne du terminal
"+" autorisation de messagerie sur ce terminal
"-" indique le cas contraire
-q => affiche le nom et le nombre des utilisateurs connectés
-r => niveau d'exécution actuel du processus init (run level)
-t => affiche la dernière modification de l'horloge système
-s => affiche seulement les noms, lignes et heures
-d => affiche tous les processus qui se sont terminés et qui n'ont pas été relancé par init
-l => affiche les lignes sur lesquelles le système attend un login
-p => affiche les processus créés par init
-d => affiche les processus mort sans réaction d'init
-b => affiche la date du dernier reboot
-a => active toutes les options

whoami ou who am i délivre l'identité de l'utilisateur de la session en cours

write
envoie de message à un utilisateur connecté, en interactif
- write dialogue en interactif entre les utilisateurs connectés.
- Les messages sont envoyés ligne par ligne et se terminent par ^D.

Attention : l'utilisation de cette commande provoque un affichage sur le terminal de
l'utilisateur destinataire quelle que soit son activité.

Syntaxe :
write destinataire [terminal]

- Destinataire est le nom d'utilisateur à qui est destiné le message.
- L'utilisateur recevra les lignes au fur et à mesure qu'elles seront écrites, il y a donc possibilité d'effectuer un dialogue
- Si l'utilisateur n'est pas connecté le message suivant est affiché "... is not logged"

Exemples :
--- envoi d'un message à l'utilisateur elev1 -----
$write elev1
ATTENTION le cours TDS est reporté à une date ultérieure ^D
--- l'utilisateur elev1 recevra sur son écran ---
message from direction (tty12) [Sun Jan 8 16:12:34] ...
ATTENTION le cours TDS est repporté à une date ultérieure

xargs
Construire dynamiquement des arguments d'une commande ou groupe d'arguments cités et exécuter la commande.

Syntaxe :
xargs [-options] commande [arguments "fixes"]

Options :
-l[n] arguments constitués par n lignes du stdin
-ichaîne toute ligne de stdin sera insérée à la place de chaque occurrence de la chaîne citée en argument fixe.
-nn exécute la commande jusqu'à n arguments
-p demande la confirmation avant chaque exécution
-t invalide l'exécution de la commande générée par dialogue avec xargs -p et trace les commandes générées


Exemples :
$ls $1 | xargs -i -t mv $1/{} $2/{}
#Place tous les fichiers du répertoire $1 dans le répertoire $2 et renvoie en écho chaque commande générée avant d'exécuter celle-ci
$(logname; date; echo $0 $*) | xargs >>log
#Combine la sortie des commandes entre () et envoie le résultat dans le fichier log
$find . -name "*.o" -print | xargs chown users
#Change le propriétaire de tous les programmes objets
$cat fichier | xargs tar cvf /dev/rmt/0m
#Permet de faire une archive avec tous les noms de fichiers contenus dans fichier

xd
Vider un fichier en hexadécimal et/ou en ASCII (dump)

Syntaxe :
xd [fichier…]

Si un fichier n'est pas spécifié, c'est l'entrée standard qui est utilisée

Cette commande vide le fichier en trois zones :
- adresse relative dans le fichier
- vidage hexadécimal de 16 octets en 16 octets
- vidage ASCII (les caractères non affichables sont signalés par un point).

x25tool
Permet de configurer la liaison série au format X25 (solaris)