Les commandes Linux à connaître

Introduction

Cette article vous apprendra les commandes à connaître sur GNU/Linux.

Il s’agit de commandes système de base indispensable dans la bonne utilisation du système.

La première partie concerne les commandes basique, la seconde partie les commandes de Gestion du Système, la troisième partie les commandes de Gestion des Paquets

En fin d’article vous pouvez télécharger le fichier PDF gratuitement contenant toutes les commandes cités ci après.

Commandes Basiques

man nom_de_commande : Permet de lire le manuel d’une commande

cd : Change Directory, permet de changer de répertoire

ls : Permet de lister le contenu d’un répertoire. L’option -l permet de lister avec plus de détails les fichiers. L’option -1 permet de lister le contenu en une ligne.

pwd : Permet d’afficher le répertoire actuel

cat : Permet d’afficher le contenu d’un fichier

less : Permet d’afficher le contenu d’un fichier page par page une autre alternative à cette commande est more

echo : Permet d’executer du texte, par exemple pour placer du texte dans un fichier

rm : Permet de supprimer un fichier

whoami : Permet de connaitre le nom d’utilisateur du système

hostname : Permet d’afficher le nom de la machine en cours d’utilisation

touch file_name : Permet de créer un fichier

mkdir : Permet de créer un répertoire

rmdir : Permet de supprimer un répertoire

mv : Permet de renommer ou bien de déplacer un fichier. L’option -t permet de déplacer plusieurs fichiers placés dans plusieurs répertoires différents

cp : Permet de copier un fichier

which : Permet de localiser une commande

type : Permet de connaitre le type de commande. Par exemple s’il s’agit d’un shell

file : Permet de déterminer le type de fichier

wc : Permet de compter le nombre de ligne dans le résultat d’une commande

wget source_url : Permet de télécharger des fichier depuis un serveur distant vers la machine local

curl source_url : Permet d’afficher le contenu d’une url sur la ligne de commande, l’option --data-urlencode permet d’encoder automatiquement au format URL.

git clone source_package_url : Permet de cloner un projet git pour le télécharger sur sa propre machine

dch --local name : Permet de modifier les logs d’un paquet par exemple le nom du développeur.

ar : Permet de créer, d’extraire et modifier des archives. Une archive est un fichier qui contient une collection d’autres fichiers.

head -n 1 : Permet de n’afficher que la ligne 1 d’un fichier

tail -n 1 : Permet d’afficher la derniere ligne d’un fichier

find : Permet de trouver un fichier en parcourant les répertoires, s’utilise généralement avec l’option -namelocate : Permet de localiser un fichier grace à une base de donnée préinstallé qui est parcouru. Cette commande est plus rapide que find mais peut être moins efficace

make : Permet la compilation d’un fichier. Afin de préparer l’utilisation de make il faut écrire un fichier appelé makefile qui décrit la relation entre les fichiers du programme. L’option deb-pkg génère 5 paquet Debian. l’option clean supprime les fichiers compilés auparavant.

apropos "search_key" : Permet de rechercher par mot clef une commande.

wget -q -O -source_url | gpg --import : Permet d’importer une clef publique d’ à partir un site web. une alternative à cette commande est gpg --keyserver server_url -- recv-key key_number qui va récupérer la clef publique depuis le serveur gnupg.net

gpg --fingerprint key_number : Permet d’afficher la ou les clefs d’identifications GPG

gpg --verify file_name file_name : Permet de vérifier l’authenticité du fichier en comparant le checkum avec la signature associé du fichier .gpg il est aussi possible de vérifier cela en lançant une commande qui va comparer les checksums avec sha256sum : grep file_name file_name | sha256sum -c

sed s/ ^ /word_to_add file_name : Permet d’ajouter des caractère en début de chaque ligne d’un fichier spécifié

awk print $0; print $0 filename : Permet de dupliquer deux fois chaque ligne d’un fichier

awk length($0) ==number filename : Permet d’afficher toutes les lignes d’un fichier ayant pour taille de caractères le nombre indiqué

open . : Permet d’ouvrir le répertoire en cours de façon graphique

strings filename : Permet de lire les charactères d’un fichier illisible par exemple écrit en binaire.

seq -w 0000 9999 : Permet de générer la séquence de chiffre de 0001 à 9999, utile par exemple afin de trouver un PIN

watch -n 1 "ps -aux : Permet de lancer la commande ps -aux et de rafraichir les résultats toutes les secondes

file : Permet d’afficher les caractérisque d’un fichier âr exemple son architecture, sa version, etc..

mktemp -d share_XXXXX : Permet la création d’un répertoire temporaire

Commandes Gestion du Systèmes

systemctl enable process_name : Permet d’activer un processus au démarrage

systemctl start process_name : Permet d’activer et de lancer un processus

systemctl disable process_name : Permet de désactiver un processus au démarrage

systemctl stop process_name : Permet d’arrêter un processus en cours

systemctl reload process_name : Permet de redémarrer un processus après changement de configuration

systemctl restart process_name : Permet de redémarrer des services

systemctl list-units : Permet de lister les unités actives du système

systemctl status : Permet de voir une vue hierarchique des services lancés

lspci -v : Permet de connaître les drivers liés à son matériel

grep -qP ^flags\s*:.*\blm\b /proc/cpuinfo && echo 64-bit || echo 32-bit : Permet de connaitre l’architecture de son processeur, s’il s’agit d’un 32bit ou 64bit

lsusb : Permet de connaitre les appareil USB connectés

lspcmcia : Permet de lister les carte PCMCIA

lsdev : Permet de lister des informations à propos du matériel installé

lshw : Permet de lister de manière hierarchisé une longue description du matériel installé.

update-initramfs -u : va recompiler le noyau et ses composants pour le lancement. Utile pour l’installation d’un drivers ou le changement d’un composant système.

sudo find / -type f -exec du -Sh + | sort -h | tail -10 : Permet d’afficher les 10 fichiers les plus volumineux

uname -a : Permet d’afficher la version du système et du noyaux

python3 -m http.server 80 : Permet de lancer un serveur web sur le port 80 (ou autre) pour un accès externe aux fichiers du répertoire depuis lequel la commande est lancé

id : Permet d’afficher le status d’un utilisateur ainsi que la liste des groupes auquel il appartient.

patch -p1 < patch-file : Permet d’appliquer un patch ou correctif à un code source

kill -9 pid_number : Permet de tuer un processus

parted disk_name : Permet de pouvoir partitionner les disques. L’option print permet d’afficher le partionnement actuel, une autre commande possible pour cela est fdisk -l

mkfs.ext4 -L persistence disk_source : Pour activer une partition en mode persistant

cryptsetup : Permet de crypter une partition avec un mot de passe. L’option luksAddNuke disk_source permet la mise en place d’un mot de passe dit « Nuke » qui va supprimer l’accès au donnée pour tout le monde en détruisant la clef de connexion crypsetup lorsque celui ci est saisi à la place du mot de passe classique. Il est aussi possible d’utiliser l’outil cripsetup pour configurer un Nuke password avec la commande : sudo dpkg-reconfigure cryptsetup-nuke-password Il est ensuite possible de sauvegarder la clef en faisant une sauvegarde de l’entête crypsetup avec : sudo cryptsetup luksHeaderBackup device_name --header-backup-file backup_file pour restaurer la config il faudra alors lancer la commande : sudo cryptsetup luksHeaderRestore device_name --header-backup-file your_backup_file

gpg --gen-key : Permet de générer une clef GPG

adduser username group_name : Permet de créer un utilisateur dans un groupe.

adduser --system --group name_group_and_user : Permet de créer un utilisateur dans un groupe avec ce même nom.

sudo usermod -a -G sudo username : Permet d’ajouter les droits sudo à un utilisateur

addgroup : Permet d’ajouter un groupe

delgroup : Permet de supprimer un groupe

groupmod : Permet de modifier un groupe

gpasswd : Permet de changer le mot de passe d’un groupe

newgrp : Permet de se connecter à un nouveau groupe

sg : éxecute une commande en utilisant un groupe différent

dmesg : Permet d’afficher tous les messages provenant du kernel

dd if=source_input_file of=source_output_file : Permet de copier le contenu du fichier d’origine (Input File) vers le disque de destination (Output File)

ps aux : Permet de lister les processus en cours de lancement sur la machine.

chown user_file : Permet de changer le propriétaire d’un fichier

chgroup group_file : Permet de changer le groupe d’appartenance du fichier

chmod right_file : Permet de changer les droits d’un fichier

free : Permet d’afficher la mémoire RAM disponible. L’option -b permet d’afficher le résultat en bytes et non pas en mébibit comme c’est le cas par défaut. L’option -h permet d’afficher le résultat en format lisible pour l’homme.

df : Permet d’afficher la quantité d’espace disque disponible.
L’option -h permet d’afficher le résultat en format lisible pour l’homme.

time : Permet d’afficher le temps en seconde depuis le lancement du terminal

bg %pid_number : Permet de mettre un job dans le Background, une autre façon de mettre un job en Background est d’ajouter « & » à la fin de la commande.

fg %pid_number : Permet de restaurer un job du Background vers le Foreground.

ln -s nom_du_fichier_pointé nom_du_lien_symbolique : Permet de créer l’alias d’un fichier ou d’un répertoire ordinaire.

passwd username : Permet de changer le mot de passe d’un utilisateur. L’option -e permet de forcer le changement de mot de passe lors de la prochaine connexion. L’option -l permet de verrouiller un utilisateur. L’option -u permet de déverrouiller un utilisateur.

chsh : Permet de changer de Shell, on choisit ensuite le chemin vers le shell voulue. Il faut se déconnecter puis se reconnecter pour que les modifications s’appliquent.

chage username : Permet de changer l’expiration d’un mot de passe. L’option -l liste les paramètres d’expiration du mot de passe utilisateur.

chfn username : Permet de changer le nom reel (full name) de l’utilisateur et ses informations

setxkbmap fr : Permet de configurer le clavier en Français, « fr » peut être remplacé par l’acronyme du language voulu par exemple « us » pour United State qui est un clavier en QWERTY.

a2enmod : Permet d’activer un nouveau module Apache2

a2dismod : Permet de désactiver un module Apache2

a2ensite hostname : Permet d’activer un nouvel hôte virtuel

ifconfig : Permet d’afficher la configuration réseau.

ifconfig interface_name up : Permet d’activer une interface réseau

ifconfig interface_name down : Permet de désactiver une interface réseau

nmcli dev status : Permet d’afficher le status des interfaces réseau

chroot racine_path /usr/bin/commande : Permet d’executer un shell interactif avec un répertoire racine fermé

mount disk_name disk_destination : Permet de monter un disque sous un répertoire spécifique.

iptables : outil d’administration pour le filtrage des paquets IPV4/IPV6 et NAT

netstat : Permet d’afficher les connexions réseau, les tables de routage, les statistiques interface, les masques de connexions, et l’apartenance au multicast. l’option -tulpen permet d’afficher les ports ouverts de la machine.

nc -nlvp port_number : Permet d’ouvrir un port sur la machine afin par exemple d’y accéder sur une autre machine. Il est ensuite possible de s’y connecter via l’adresse IP en utilisant aussi netcat au format nc -v ip_address port_number

compgen -c : Permet de lister toutes les commandes disponibles. On peut lister seulement les commandes préconstruites, on peut les lister avec l’option -b (pour built-in) On peut lister seulement les commandes avec mots clef, on peut les lister avec l’option -klsmod : Permet de lister les modules du système

sudo modinfo module_name : Permet d’afficher les infos d’un module

sudo rmmod module_name : Permet de supprimer un module du système

insmod module_path : Permet de charger un module depuis un chemin dossier

sudo modprobre module_name : Permet de charger ou supprimer un module ou firmware du kernel Linux

macchanger -s inf_name : Permet d’afficher l’adresse MAC de l’interface spécifié

macchanger -m MAC_Addr inf_name : Permet de changer l’adresse MAC d’une interface

whois domain_name : Permet d’obtenir des informations sur une entreprise ou un domaine on peut préciser l’adresse IP après l’option -h

host domain_name : Permet d’obtenir des informations sur une entreprise par exemple afin d’obtenir son adresse IP par défaut les record en réponse son des type A. On peux spécifier le type de record avec l’option -t

ssh username@ip_address : Permet de se connecter à distance à une machine il faut que ssh soit activé, on peut spécifier un ID RSA avec
l’option -a ou un port avec l’option

scp -p file_source username@ip_address_dest:file_destination : Permet d’envoyer des fichiers par SSH vers une machine du réseau, on utilise l’option -P afin de préciser un port spécifique

sudo tcpdump -nvvvXi wlan0 tcp port 80 : Permet la mise en place d’une écoute du port 80 pour capture des paquets sur l’interface wlan0

Commandes Gestion des Paquets

sudo apt install source_package_name : Permet d’installer un paquet terminant par .deb ou bien d’un paquet provenant d’une source du fichier sources.list tout en résolvant ses dépendances. Une alternative à cette commande pour installer un fichier .deb est :
dpkg -a source_package_name mais cela ne résolve pas ses dépendances. L’option apt-get est plus direct avec le système que apt tout court, mais ne permet par exemple de lancer la commande pour mettre à jour le système entier. L’option --reinstall permet de réinstaller un paquet.

sudo apt update : Permet de lancer la recherche de nouveau paquet à mettre à jour.

sudo apt upgrade : Permet de lancer l’installation des paquets à mettre à jour. Avec l’option apt-get dist-upgrade il est possible de lancer l’installation des mises à jour de manière « intelligente » en installant les paquet important d’abord et en évitant les conflits de dépendances.

sudo apt remove source_package_name : Permet de supprimer un paquet tout en supprimant ses dépendances.

sudo apt purge source_package_name : Permet la suppression d’un paquet mais aussi de de sa configuration et et de ses données associés.

sudo apt full-upgrade : Permet de mettre à jour le système entier dans sa dernière version

apt-cache search key_word : Permet de rechercher un paquet par mot clef

apt source source_package_name : Permet de télécharger le code source mais necessite la source debian

apt-key fingerprint : Permet d’afficher les clefs GPG associés aux dépots système

sudo apt build-dep ./ : Permet d’installer un paquet manuellement tout en installant les dépendances nécessaires.

sudo apt clean : Permet de supprimer les paquet préinstallé pouvant être réinstallés car compatibles avec la source les installant. On peut utiliser l’option -P pour purger les dépendances.

sudo apt autoclean : Permet de supprimer des paquets obsolètes préinstallés qui ne sont plus compatibles avec la source les installant.

sudo apt autoremove : Permet de supprimer des paquets qui ne sont plus nécessaire car il n’y a plus de paquet qui dépend d’eux. Il s’agit en général de dépendances.

sudo apt dist-upgrade : Permet de mettre à jour des paquets en remplaçant et supprimant ceux qui ne sont plus nécessaire

apt-mark auto source_package_name : Permet marquer un paquet pour indiquer qu’il peut être supprimé automatiquement s’il n’est plus utilisé cela évite de lancer la commande apt autoremove

apt-mark manual source_package_name : Permet marquer un paquet pour indiquer qu’il doit supprimé manuellement même si plus nécessaire

dpkg-buildpackage -us -uc : Permet d’automatiser la construction d’un paquet Debian, après avoir lancé cette commande un fichier en .deb est créé dans le sous répertoire, il suffit alors de l’installer de manière classique avec dpkg.

dpkg -a source_package_name : Permet d’installer un paquet terminant par .deb cette commande utilise et lance : dpkg --unpack et dpkg --configure L’option --force-overwrite permet de forcer l’installation des fichiers qui seraient déjà installés dans d’autres paquets, peut être risqué à utiliser dans le cas de paquets système.

dpkg -r package_name : supprime un paquet système

dpkg -c package_name : liste tous les fichiers contenus dans un .deb

dpkg -P package_name : Purge le paquet et ses dépendances associés

dpkg -a package_name : Affiche l’entête et les infos d’un paquet

dpkg -L package_name : Liste les fichiers installés par le paquet

dpkg -S file_name : Permet de rechercher un paquet contenant un fichier

dpkg --add-architecture : Permet d’ajouter une architecture dans le système par exemple 32bit, ARM. Peut être utile afin d’installer des paquet seulement compatible sur d’autres architectures.

dpkg --remove-architecture : Permet de supprimer une architecture du système.

dpkg --print-architecture : Permet d’afficher l’architecture actuel

dpkg -V : Permet de vérifier les paquets installés et d’afficher ceux dont la vérification n’a pas marché

dget source_package_url : Permet de télécharger un paquet Debian source control file (.dsc)

dpkg-source -x source_package_name : Permet d’extraire un paquet Debian source control file (.dsc)

dpkg-source --commit : Permet d’enregistrer les changements dans un nouveau correctif ou patch.

tar -xavf package_name : Permet d’extraire une archive d’un fichier tout en affichant les fichiers en cours de modification mais aussi de détecter le suffixe du fichier et donc d’adapter le type de compression.

dh_make --native : Permet d’ajouter les instructions de créations de paquet debian

reprepro export : Permet de générer un dépot vide. Nécessite le paquet « reprepro » d’installé

reprepro include source_package_name : Permet d’ajouter des fichier au dépot crée. Nécessite le paquet « reprepro » d’intallé

sha256sum source_package_name : générer un checksum afin de vérifier l’origine du fichier ainsi que son intégrité. Une alternative à cette commande est shasum -a 256

Vous pouvez télécharger le documents PDF contenant toutes les commandes ci dessus.


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *