Les systèmes d'exploitation de type UNIX offrent à leurs utilisateurs des centaines de commandes qui font de la console un outil pratique et extrêmement puissant. Certaines d'entre elles sont fournies directement par le shell, alors que d'autres sont des exécutables situés dans /bin, /usr/bin, /usr/local/bin ou un autre répertoire contenant des exécutables et listé dans la variable d'environnement$PATH. La distinction entre /bin et /usr/bin ne relève que de raisons historiques propres aux PDP-11, /bin était placé sur un tambour magnétique d'accès rapide et de petite taille, /usr/bin sur un disque normal; sur beaucoup de systèmes actuels, il s'agit d'un lien vers le même système de fichiers.
Voici une liste des commandes les plus fréquemment incluses dans un système UNIX (donc aussi Linux). Certaines d'entre elles peuvent être spécifiques à un système en particulier, par exemple GNU. L'origine du nom des commandes est écrite entre parenthèses.
Des informations supplémentaires sur chacune de ces commandes peuvent être trouvées dans leurs pages respectives du manuel UNIX.
Récemment le bureau est d'accueil, est coloré avec des icônes, un navigateur, une suite bureautique, une boutique d’applications, etc.
Le passage d'arguments aux commandes
La plupart des commandes acceptent des arguments. On peut distinguer deux types d'arguments:
Les options, qui sont en général précédées du caractère - pour leur forme courte ou des caractères -- pour leur forme longue, introduite par les outils GNU.
Exemple:
$>ls-l--color
Cette commande affiche le contenu du répertoire courant de façon détaillée (-l) et en colorant les fichiers selon leur type (--color).
Cette commande recherche la chaîne titi dans le fichier mon_fichier.
Une fonctionnalité puissante de certaines commandes Unix est de pouvoir rediriger la sortie d'une première commande comme argument d'une seconde via le caractère pipe (tuyau en français). Exemple:
$>psax|grepinit
N'affichera que les lignes retournées par la commande ps ax qui contiennent la chaîne init. Il s'agit ici d'une redirection utilisant grep comme filtre.
Aide
info (GNU): obtenir le manuel GNU info d'une commande.
apropos: liste les pages de manuel contenant dans leur description le(s) mot(s) clé(s) recherché(s).
man: obtenir le manuel d'une commande. Le formatage du texte est réalisé avec le préprocesseur troff.
help: obtenir de l'aide pour une commande interne du shell.
whatis: liste quelles commandes sont en rapport avec un mot-clef.
Commande --help: affiche une aide succincte et liste les arguments qui peuvent être passés à la commande Commande en question. Cette option est la forme longue de l'option Commande -h, des premiers systèmes UNIX.
Commandes générales
history: affiche ou vide l'historique des commandes.
type: affiche le type de la commande (alias, exécutable,etc.) et précise sa nature. s'il s'agit d'un programme trouvé sur $PATH, il affiche le chemin absolu. (ex: "type vi" vs "type vim")
uname -a: affiche des informations sur la version du noyau et sur le type d'architecture du processeur
uname -X: affiche des informations sur la version du noyau, le nom du hostname et le nombre de processeurs (spécifique à Solaris et SCO Unix).
Communications
mesg: contrôler l'accès à votre terminal par d'autres personnes (par write).
talk: faire une conversation avec un autre utilisateur du système.
wall: envoyer un message à tous les utilisateurs du système (Write ALL).
write: envoyer un message à un utilisateur en particulier (voir mesg).
less (GNU): affiche le contenu d'un fichier texte, avec une progression ligne par ligne ou page par page et la possibilité de retourner en arrière et d'effectuer une recherche; beaucoup plus élaboré que son prédécesseur more, less est son opposé (le nom de ce programme comporte une touche d'humour car less signifie moins, alors que more signifie plus);
more: affiche le contenu d'un fichier texte, page par page (la page correspond à la taille du terminal);
screen: permet d'ouvrir des programmes associés à des écrans virtuels desquels l'utilisateur peut se détacher et auxquels il peut de nouveau s'attacher plus tard.
twin: simule en mode texte (ncurses) un écran graphique.
Éditeurs de texte
ed: éditeur de texte orienté ligne. (EDitor), éditeur standard d'UNIX (IEEE Std 1003.1-2004 POSIX)
cd: change le répertoire courant. (Change Directory)
cp: copie un fichier (CoPy), peut copier une liste de fichiers dans un autre répertoire en conservant leur nom.
dd: Effectue une copie d'un fichier avec possibilité de conversion du format (Copy and Convert, mais cc étant déjà pris, les lettres suivantes de l'alphabet ont été choisies, soit dd).
dir: équivalent à ls (DIRectory), n'existait pas à l'origine d'UNIX
df: affiche l'utilisation des disques. (Disk Free)
file: affiche le type de fichier en lisant son en-tête.
ln: crée un lien avec un autre dossier ou fichier. (LiNk)
ls: affiche la liste des fichiers dans le dossier courant ou d'un autre dossier. (LiSt)
mkdir: crée un ou plusieurs répertoires (MaKe DIRectory)
mv: déplace (ou renomme) un fichier, y compris si c'est un répertoire (MoVe), peut déplacer une liste de fichiers dans un autre répertoire en conservant leur nom.
pwd: affiche le chemin du dossier courant. (Print Working Directory)
rm: supprime un/des fichier(s) ou des répertoires (avec l'option -r). (ReMove)
simpdftex: transforme un fichier TeX en fichier DVI.
rmdir: supprime un ou plusieurs répertoires (ReMove DIRectory) s'il est (ou s'ils sont) vide(s)
touch: change la date de modification d'un fichier, en le créant s'il n'existait pas.
lsof: affiche la liste des fichiers ouverts. (LiSt Open Files)
Manipulations d'archives et compressions
bzip2/bunzip2: compresse et décompresse des fichiers
cpio: copie de fichiers à partir de ou vers une archive cpio/tar
gzip/gunzip: compresse et décompresse des fichiers. (Gnu ZIPper)
pax: un outil qui rassemble les fonctions de tar et de cpio
tar: manipulation d'archives, capable de fonctionner avec bzip2 ou gzip. (Tape ARchiver)
zip/unzip: compresse et décompresse des fichiers. (ZIP)
zcat: affiche un fichier compressé (comme cat, mais décompresse au passage)
Recherche
find: recherche récursive, à partir d'un répertoire, de fichiers ayant des caractéristiques données.
locate: recherche un fichier à partir de la dernière version de la base de données des fichiers (base généralement créée par updatedb). Beaucoup plus rapide que find, mais moins flexible.
whereis: recherche une commande dans le PATH et les pages de man correspondants (éventuellement dans MANPATH) et retourne le ou les chemins d'accès complet(s).
Si une commande existe avec plusieurs extensions différentes, il les liste toutes (exemple: whereis fsck listera non seulement le chemin complet de fsck, mais aussi celui de fsck.ext2). Il recherche aussi l'éventuelle présence des fichiers sources.
which: renvoie le chemin d'accès complet d'une commande.
Gestion des disques/points de montage
df: affiche l'espace libre sur les partitions (Disk Free).
dump/restore: sauvegarde et restauration d'un système de fichiers.
fsck: effectue une vérification du système de fichiers (FileSystem ChecK). En fonction du type de partition, il appelle l'utilitaire correspondant.
e2fsck (ou fsck.ext2) pour ext2 ou ext3 (N.B.: fsck.ext2 et e2fsck sont identiques, il s'agit de 2 liens vers le même fichier).
dos2unix: convertit les retours à la ligne d'un fichier pour qu'elles soient compatibles avec le monde Unix. Sur certaines distribution, cette commande a été remplacée par fromdos
echo: affiche une ligne de texte donnée en paramètre.
expr: évaluer une expression (mathématique ou sur une chaîne de caractères)
fgrep: affiche les lignes qui contiennent une chaîne de caractères donnée (grep -f sous Linux).
grep et egrep: affiche les lignes qui contiennent une expression régulière donnée, egrep (grep étendu) est plus riche en possibilités.
head: affiche les premières lignes d'un fichier. (opposé de tail)
join :fusionne les lignes de deux fichiers contenant un ou plusieurs champs identiques.
tail: affiche les dernières lignes d'un fichier. (opposé de head)
tee: copie de l'entrée standard sur la sortie standard et vers un fichier. (le nom vient de la forme de la lettre T, qui a aussi une «entrée» et deux «sorties»)
tr: transpose ou élimine des caractères dans une chaîne (TRanspose)
uniq: recopie les données en entrée en ne conservant qu'un unique exemplaire de lignes identiques consécutives.
unix2dos: convertit les retours à la ligne d'un fichier pour qu'elles soient compatibles avec le monde DOS.
wc: permet de compter le nombre de caractères, de mots ou de lignes dans un fichier.
Permissions
chgrp: change le groupe propriétaire d'un fichier. (CHange GRouP)
chmod: change les permissions en lecture, écriture et/ou exécution d'un fichier. (CHange MODes)
chown: change le propriétaire, et éventuellement le groupe propriétaire d'un fichier. (CHange OWNer)
getfacl, setfacl: respectivement, lister ou modifier les ACL de fichier (grossièrement, c'est l'équivalent du CACLS pour le NTFS de Windows)
Processus
at: permet de programmer l'exécution une seule fois d'une commande dans le futur.
bg: met en arrière-plan un process en stand-by (quitté avec ctrl-Z) comme s'il était lancé avec &.
cron :permet de programmer l'exécution d'un programme dans le futur, de façon cyclique.
fg: reprend la main (foreground) d'un programme en background (ou quitté avec ctrl-Z ou lancé avec &).
free: affiche des informations sur l'utilisation de la mémoire.
sleep: suspend l'exécution d'un processus pendant un intervalle de temps.
fuser: affiche quel processus utilise le fichier donné en paramètre.
kill: envoyer un signal à un processus donné, généralement pour y mettre fin
Signal SIGTERM (15) par défaut: arrêter le processus proprement
63 signaux possibles de SIGHUP (1) à SIGRTMAX (63)
Valeur la plus utilisée: SIGKILL (9), qui termine brutalement un processus
De façon plus détaillée, le client DHCP cherche un serveur DHCP, via plusieurs requêtes DHCPDISCOVER en broadcast, puis si tout se passe bien, il fait un DHCPREQUEST adressé au serveur trouvé, il reçoit ensuite de ce serveur un DHCPACK qui lui donne un bail pour une adresse IP
Les ports utilisés sont 67 (BOOTP serveur) et 68 (BOOTP client)
groupmod: modifier les paramètres d'un groupe utilisateur déjà créé par la commande groupadd. Cette commande a les mêmes options que la commande groupadd.
w: affiche la liste des utilisateurs connectés et ce qu'ils sont en train de faire.
who: affiche la liste des utilisateurs connectés au système.
whoami et who am i: savoir sous quel nom d'utilisateur (ou d'administrateur) on est connecté (en anglais Who am I?, «Qui suis-je?»); whoami ne donne pas le même résultat que who am i si l'on est en cours de substitution d'utilisateur (su). Avec who am i, on obtient toujours l'identité de départ (par exemple, si l'utilisateur gerard adopte l'identité de root avec su, whoami retourne root tandis que who am i renvoie bien gerard).
startx pour lancer manuellement le serveur graphique, suivant le principe de fonctionnement de X11, qui est celui d'une architecture client-serveur. Il est nécessaire d'avoir renseigné préalablement la variable d'environnement $display pour que l'affichage soit fonctionnel.
Lister des informations graphiques:
xdpyinfo: informations générales sur le serveur graphique
xwininfo: l'utilisateur lance cette commande, puis il clique sur la fenêtre qui l'intéresse et il obtient des informations très détaillées sur les caractéristiques graphiques de cette fenêtre
xev: crée une fenêtre et montre quels sont les évènements générés par les différentes actions sur cette fenêtre (MotionNotify, LeaveNotify, ButtonPress, VisibilityNotify, Expose...etc)
xhost: pour contrôler l'accès au serveur X Window System
xmodmap: utilitaire pour clavier et souris (tend à disparaître)
xrdb: utilitaire pour la base de données des ressources X Window System