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 -name
  • locate : 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 -snom_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
  • ifconfiginterface_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 -vip_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 -k
  • lsmod : 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
  • class="code"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.

    Aperçu du document

    Pour le télécharger gratuitement :

    Cliquez Ici !