Accueil / Articles PiApplications. / Linux.

Commandes Linux.

Linux est un système d'exploitation dérivé des puissants systèmes UNIX existants dans les années 70 et adapté aux PC (architecture Intel). Mis à part la simplicité de mise en œuvre et la gestion graphique, il est plus efficace que les systèmes Windows sur la plupart des autres points. En tant que système à "sources libres", l'absence de coût d'acquisition en a fait le système des plates-formes professionnelles notamment côté "serveur". Son interpréteur de commandes puissant permet son utilisation à distance depuis un simple terminal en particulier en présence de liaison à faible débit.

L'utilisateur habitué aux environnements graphiques est souvent dérouté par l'utilisation de telles commandes qui imposent un apprentissage. Ici, il n'est plus question de s'en remettre aux clics souris plus ou moins heureux pour découvrir de façon plus ou moins intuitive la fonction "miracle" dont on a besoin : il faut apprendre ! Le problème est aggravé par le fait qu'il existe des "distributions" différentes de Linux. Une distribution est une reprise du noyau par une communauté de développeurs qui le personnalisent en l'entourant d'outils et de procédures dans le but de le spécialiser. Le nombre de distributions a chuté de façon drastique dans les années 90.

Point sur les distributions.

Les principales distributions libres sont aujourd'hui :

Un point de différenciation important entre les distribution est la gestion des paquets constituant la distribution. Outre le recensement des logiciels, cette gestion permet d'éviter les incompatibilités de librairies et leurs conflits. Il existe aujourd'hui deux grands systèmes de gestion : RPM (Fedora, OpenSuse) et APT (Debian, Ubuntu). Il existe donc des commandes propres à ces deux systèmes. En tant que référence, nous nous limiterons aux commandes Debian mais elles ont toutes leur équivalent dans l'autre système. Sous Debain, la gestion des paquets utilise 3 sortes d'outils : aptitude, apt et dpkg. aptitude est un logiciel texte semi-graphique qui exécute l'ensemble des commandes. Il n'est toutefois pas très intuitif et peut amener à de gros dégâts s'il les concepts sur lesquels ils repose ne sont pas maîtrisés.

Le but de cet article est de recenser les commandes usuelles ou très spécifique de ce système.

Commandes Linux utiles.

Commande.Description.
host -t MX {domaine}Recherche du nom d'hôte de la machine qui supporte le serveur de messagerie d'un domaine donné.
postqueue -pLecture de la queue d'ettente des messages à émettre d'un serveur Postfix.
postqueue -fForce l'émission des messages de la queue d'attente d'un serveur Postfix.
postfix reloadForce le rechargement du fichier de configuration mainf.cf du serveur Postfix sans avoir à l'arrêter.
adduser [--disabled-login] [--ingroup {group the account belongs to}] [--no-create-home] {compte}Création avec options d'un compte utilisateur Linux.
dpkg-getselectionsLecture des paquets Linux installés (système APT uniquement).
apt-cache --names-only search {masque de recherche}Cherche dans les dépôts déclarés (/etc/apt/sources.list) les paquets dont le nom répond à un masque de recherche donné (DVD ou miroir ren ligne).
apt-get install {paquet 1}[ {paquet i}]Installation d'un ou plusieurs paquets.
apt-get remove {paquet}Suppression d'un paquet.
apt-get purge {paquet}Suppression d'un paquet et de toute ses traces.
apt-get autoremoveSuppression des paquets inutiles.
apt-get dist-upgradeMise à jour des paquets de la distribution. Si la listed es dépôts a été modifiée (/etc/apt/sources.list), il convient d'invoquer apt-get update au préalable.
apt-cache show {paquet}Obtient le détail du contenu d'un paquet.
dpkg -LListe les fichiers d'un paquet installé.
find {chemin} -depthListe les sous-répertoires. Les résultats sont relatifs au chemin courant. Si {chemin} est absolu, le résultat sera une liste de chemins absolus.
lsb_release -aDonne la version de la distribution (ne fonctionne pas avec toutes les distributions).
vmstat -sUtilisation de la mémoire vive.
dmidecode --type memoryDétecte la quantité de mémoire vive installée.
ip link showListe les interfaces réseau.
bklidListe les UUID des partitions du système y compris celles non montées.
grep install /var/log/dpkg.log (Debian) ou rpm -qa --last(Red hat, OpenSuse, etc.) Liste les GDH d'installation des paquets (utiles en cas de suspicion de rootkits par exemple).
wListe des utilisateurs connectés.
lastListe des dernières connexions des utilisateurs.
archArchitecture du système.
lastlogListe les dernières connexions de chaque utilisateur du système.
lsofListe des descripteurs de fichiers (au sens UNIX) ouverts.
freeEtat des mémoires.
procinfoDonne des informations sur le système à partir des pseudo-fichiers.
lsdevListe des périphériques.
dmesgListe des messages au boot du système.
netstatListe des ports et protocoles de communication en cours.
routeIndique les différents nœuds traversés pour joindre la station distante.

Combinaison de commandes (pipe)

Un des points de performances des UNIX et donc de Linux sur d'autres systèmes et son puissant et généralisé mécanisme de redirection. Il est ainsi possible de combiner la "sortie" d'une commande (les résultats qu'elle produit) aux "entrées" (les paramètres attendus) de la commande qui suit. Toutes les commandes intégrables à un script peuvent être re-dirigées. Cela se fait en plaçant le symbole '|' (pipe : ASCII 124) entre les deux commandes. Les commandes combinées agissent comme une commande unique.

Par exemple la commande wc -l /var/log/apache2/access.log | tee /tmp/access.lines compte le nombre de lignes du journal du serveur Web Apache, l'affiche à l'écran et enregistre ce nombre dans un fichier. Le tableau qui suit dresse quelques exemples utiles.

Commandes combinées. Description.
cat {fichier journal apache access.log} | cut -f1 -d- | sort | uniq -cAffiche le nombre de hits d'une adresse IP qui a joint le serveur Web Apache.
cat /proc/versionDonne des informations sur le noyau et éventuellement la distribution.
cat /etc/issueDonne des informations sur la distribution (ne fonctionne pas avec toutes les distributions).
dmesg | head -1Donne des informations sur la distribution (ne fonctionne pas avec toutes les distributions).
aspell --lang {lang} dump master | aspell --lang {lang} expand | tr ' ' '\n' > {lang}.dicDresse la liste des mots d'une langue donnée ({lang}). En remplaçant {lang} par fr, cela donne les mots en français. Un tel dictionnaire est directement intégrable à certains outils comme IntelliJ.
cat /sys/power/stateAffiche les états possibles du système (souvent free, mem et disk).
echo -n mem > /sys/power/stateMet le système en veille (doit disposer des droits root).
echo -n disk > /sys/power/stateMet le système en hibernation (doit disposer des droits root).
ps aux | grep 'Z'Affichage des processus "zombie".
pstree -p -s <PID>Dresse la filiation d'un processus donné par son PID (utile pour tuer les "zombies" lorsque le parent peut l'être).

(c) PiApplications 2015