Débuter avec GNULinux

Raccourcis utiles

Utilisation du terminal

Les exemples de ce document supposent que vous utilisez un shell compatible POSIX (tel que bash, sh, zsh, ksh).

De grandes parties des fonctionnalités GNU/Linux sont réalisées à l’aide du terminal. La plupart des distributions de Linux incluent des émulateurs de terminaux qui permettent aux utilisateurs d’interagir avec un shell depuis leur environnement de bureau. Un shell est un interpréteur de ligne de commande qui exécute les commandes saisies par l’utilisateur. Bash (Bourne Again SHell) est un shell par défaut courant parmi de nombreuses distributions Linux et est le shell par défaut pour macOS.

Ces raccourcis fonctionneront si vous utilisez Bash avec les raccourcis clavier emacs (définis par défaut) :

Ouvrir le terminal

  • Ctrl + Alt + T ou Super + T

Mouvement du curseur

  • Ctrl + A Aller au début de la ligne sur laquelle vous êtes en train de taper.
  • Ctrl + E Aller à la fin de la ligne sur laquelle vous êtes en train de taper.
  • Ctrl + XX Se déplacer entre le début de la ligne et la position actuelle du curseur.
  • Alt + F Avance le curseur d’un mot sur la ligne courante.
  • Alt + B Déplace le curseur d’un mot en arrière sur la ligne courante.
  • Ctrl + F Avance le curseur d’un caractère sur la ligne courante.
  • Ctrl + B Déplace le curseur d’un caractère en arrière sur la ligne courante.

Manipulation de texte

  • Ctrl + U Coupe la ligne de la position actuelle au début de la ligne, en l’ajoutant au presse-papiers. Si vous êtes au bout de la ligne, coupez toute la ligne.
  • Ctrl + K Coupe la ligne de la position actuelle à la fin de la ligne, en l’ajoutant au presse-papiers. Si vous êtes au début de la ligne, coupez toute la ligne.
  • Ctrl + W Supprimer le mot avant le curseur, en l’ajoutant au presse-papiers.
  • Ctrl + Y Collez la dernière chose du presse-papiers que vous avez coupée récemment (annulez la dernière suppression à la position actuelle du curseur).
  • Alt + T Échange les deux derniers mots avant le curseur.
  • Alt + L Mettre en minuscules du curseur à la fin du mot.
  • Alt + U Mettre en majuscule du curseur à la fin du mot.
  • Alt + C Mettre en majuscule jusqu’à la fin du mot commençant au curseur (mot entier si le curseur est au début du mot).
  • Alt + D Supprimer jusqu’à la fin du mot commençant au curseur (mot entier si le curseur est au début du mot).
  • Alt + . Imprime le dernier mot écrit dans la commande précédente.
  • Ctrl + T Échange les deux derniers caractères avant le curseur.

Accès à l’historique

  • Ctrl + R Vous permet de rechercher parmi les commandes précédemment utilisées.
  • Ctrl + G Quitter le mode de recherche d’historique sans exécuter de commande.
  • Ctrl + J Vous permet de copier la commande correspondante actuelle sur la ligne de commande sans l’exécuter, ce qui vous permet d’apporter des modifications avant d’exécuter la commande.
  • Alt + R Annule toutes les modifications apportées à une commande que vous avez extraite de votre historique, si vous l’avez modifiée.
  • Ctrl + P Affiche la dernière commande exécutée, c’est-à-dire revient en arrière dans l’historique des commandes (similaire à la flèche vers le haut).
  • Ctrl + N Affiche la prochaine commande exécutée, c’est-à-dire avance dans l’historique des commandes (similaire à la flèche vers le bas).

Contrôle des terminaux

  • Ctrl + L Efface l’écran, similaire à la commande clear.
  • Ctrl + S Arrête toute sortie à l’écran. Ceci est utile lors de l’exécution de commandes avec beaucoup de sorties longues. Mais cela n’arrête pas la commande en cours d’exécution.
  • Ctrl + Q Reprendre la sortie à l’écran après l’avoir arrêtée avec Ctrl+S.
  • Ctrl + C Terminer le processus en cours et renvoyer l’invite.
  • Ctrl + D Déconnectez-vous de la session shell en cours, similaire à la commande exit ou logout. Dans certaines commandes, agit comme un signal de fin de fichier pour indiquer qu’une fin de fichier a été atteinte.
  • Ctrl + Z Suspend (pause) le processus de premier plan en cours d’exécution, qui renvoie l’invite du shell. Vous pouvez ensuite utiliser la commande bg permettant à ce processus de s’exécuter en arrière-plan. Pour remettre ce processus au premier plan, utilisez la commande fg. Pour afficher tous les processus d’arrière-plan, utilisez la commande jobs.
  • Tab Fichiers à saisie semi-automatique et noms de répertoires.
  • TabTab Affiche toutes les possibilités, lorsque les caractères saisis ne correspondent pas de manière unique à un nom de fichier ou de répertoire.

Caractères spéciaux

  • Ctrl + H Identique à Retour arrière.
  • Ctrl + J Identique à Return (historiquement Line Feed).
  • Ctrl + M Identique à Retour (historiquement Retour chariot).
  • Ctrl + I Identique à Tab.
  • Ctrl + G Caractère de cloche.
  • Ctrl + @ Caractère nul.
  • Esc [Deadkey] (https://en.wikipedia.org/wiki/Dead_key) équivaut au modificateur Alt.

Fermer le terminal

  • Ctrl + Maj + W Pour fermer l’onglet du terminal.
  • Ctrl + Maj + Q Pour fermer tout le terminal.

Alternativement, vous pouvez passer aux raccourcis clavier vi dans bash en utilisant set -o vi. Utilisez set -o emacs pour revenir aux raccourcis clavier emacs.

Commandes de gestion de fichiers

Linux utilise certaines conventions pour les répertoires présents et parents. Cela peut être un peu déroutant pour les débutants.

Chaque fois que vous êtes dans un terminal sous Linux, vous serez dans ce qu’on appelle le répertoire de travail actuel. Souvent, votre invite de commande affichera soit le répertoire de travail complet, soit seulement la dernière partie de ce répertoire. Votre invite pourrait ressembler à l’une des suivantes :

[email protected] ~/somedir $
[email protected] somedir $
[email protected] /home/user/somedir $

qui indique que votre répertoire de travail actuel est /home/user/somedir.

Sous Linux, .. représente le répertoire parent et . représente le répertoire courant.

Par conséquent, si le répertoire courant est /home/user/somedir, alors cd ../somedir ne changera pas le répertoire de travail.

Le tableau ci-dessous répertorie certaines des commandes de gestion de fichiers les plus utilisées

Commande Utilité
mot de passe Récupère le chemin complet du répertoire de travail courant.
cd- Accédez au dernier répertoire dans lequel vous travailliez.
cd ~ ou juste cd Accédez au répertoire personnel de l’utilisateur actuel.
cd .. Aller dans le répertoire parent du répertoire courant (attention à l’espace entre cd et ..)

Liste des fichiers dans un répertoire

Commande Utilité
ls-l Liste les fichiers et répertoires du répertoire courant au format long (tableau) (il est recommandé d’utiliser -l avec ls pour une meilleure lisibilité).
ls -ld nom-répertoire Liste les informations sur le répertoire dir-name au lieu de son contenu.
ls-a Lister tous les fichiers y compris ceux cachés (Les noms de fichiers commençant par un . sont des fichiers cachés sous Linux).
ls-F Ajoute un symbole à la fin d’un nom de fichier pour indiquer son type (* signifie exécutable, / signifie répertoire, @ signifie lien symbolique, = signifie socket, | signifie canal nommé, > signifie porte).
ls-lt Liste les fichiers triés par date de dernière modification avec les fichiers les plus récemment modifiés affichés en haut (rappelez-vous que l’option -l fournit le format long qui a une meilleure lisibilité).
ls-lh Répertoriez les tailles de fichier dans un format lisible par l’homme.
ls -lR Affiche tous les sous-répertoires de manière récursive.
arbre Génèrera une représentation arborescente du système de fichiers à partir du répertoire courant.

Fichier/répertoire créer, copier et supprimer

Commande Utilité
cp -p source destination Copiera le fichier de source vers destination. -p signifie préservation. Il préserve les attributs d’origine du fichier lors de la copie comme le propriétaire du fichier, l’horodatage, le groupe, les autorisations, etc.
cp -R rép_source rép_destination Copiera le répertoire source vers la destination spécifiée de manière récursive.
mv fichier1 fichier2 Sous Linux, il n’y a pas de commande rename en tant que telle. Par conséquent, mv déplace/renomme le fichier1 en fichier2.
rm -i nom_fichier Vous demande avant chaque suppression de fichier une confirmation. SI VOUS ÊTES UN NOUVEL UTILISATEUR DE LA LIGNE DE COMMANDE LINUX, VOUS DEVEZ TOUJOURS UTILISER rm -i. Vous pouvez spécifier plusieurs fichiers.
rm -R nom-répertoire Supprime le répertoire dir-name de manière récursive.
rm -rf nom-répertoire Supprime le répertoire dir de manière récursive, en ignorant les fichiers inexistants et ne demandera jamais rien. ATTENTION EN UTILISANT CETTE COMMANDE ! Vous pouvez spécifier plusieurs répertoires.
rmdir nom-répertoire Supprime le répertoire dir-name, s’il est vide. Cette commande ne peut supprimer que les répertoires vides.
mkdir dir-name Créer un répertoire dir-name.
mkdir -p nom-répertoire/nom-répertoire Créer une hiérarchie de répertoires. Créez des répertoires parents selon vos besoins, s’ils n’existent pas. Vous pouvez spécifier plusieurs répertoires.
touch filename Créer un fichier filename, s’il n’existe pas, sinon changer l’horodatage du fichier à l’heure actuelle.

Autorisations et groupes de fichiers/répertoires

Commande Utilité
chmod <spécification> nom de fichier Modifiez les autorisations de fichier. Spécifications = u utilisateur, g groupe, o autre, + ajouter une permission, - supprimer, r lire, w écrire, x exécuter.
chmod -R <spécification> nom-répertoire Modifier les autorisations d’un répertoire de manière récursive. Pour modifier l’autorisation d’un répertoire et de tout ce qu’il contient, utilisez cette commande.
chmod go=+r monfichier Ajoutez une autorisation de lecture pour le propriétaire et le groupe.
chmod a +rwx monfichier Autoriser tous les utilisateurs à lire, écrire ou exécuter monfichier.
chmod go -r monfichier Supprimer l’autorisation de lecture du groupe et des autres.
chown owner1 filename Changer la propriété d’un fichier à l’utilisateur owner1.
chgrp grp_owner filename Modifier la propriété du groupe principal du fichier filename au groupe grp_owner.
chgrp -R grp_owner dir-name Modifier la propriété du groupe principal du répertoire dir-name au groupe grp_owner de manière récursive. Pour modifier la propriété du groupe d’un répertoire et de tout ce qu’il contient, utilisez cette commande.

Bonjour le monde

Tapez le code suivant dans votre terminal, puis appuyez sur Entrée :

echo "Hello World"

Cela produira la sortie suivante :

Hello World

Utilitaires Linux de base

Linux a une commande pour presque toutes les tâches et la plupart d’entre elles sont intuitives et faciles à interpréter.

Obtenir de l’aide sous Linux

Commande Convivialité
homme <nom> Lisez la page de manuel de <nom>.
man <section> <nom> Lisez la page de manuel de <nom>, liée à la section donnée.
man -k <éditeur> Affiche tous les logiciels dont les pages de manuel contiennent le mot-clé <editor>.
man -K <mot-clé> Affiche toutes les pages de manuel contenant <mot-clé> en leur sein.
à propos <éditeur> Sortez toutes les applications dont la description d’une ligne correspond au mot editor. Lorsque pas en mesure de rappeler le nom de l’application, utilisez cette commande.
aide Dans le shell Bash, cela affichera la liste de toutes les commandes bash disponibles.
aide <nom> Dans le shell Bash, cela affichera les informations sur la commande bash <nom>.
infos <nom> Afficher toutes les informations sur <nom>.
dpkg-l Affiche une liste de tous les packages installés sur un système basé sur Debian.
dpkg -L nompaquet Répertoriera les fichiers installés et les détails du chemin d’accès pour un paquet donné sur Debian.
dpkg -l | grep -i <modifier> Renvoie tous les packages installés .deb avec <edit>, quel que soit le cas.
moins /var/lib/dpkg/disponible Retourne les descriptions de tous les packages disponibles.
qu'est-ce que vim Énumérez une description d’une ligne de vim.
<nom-commande> --help Afficher les informations d’utilisation sur <nom-outil>. Parfois, command -h fonctionne également, mais pas pour toutes les commandes.
Identification de l’utilisateur et qui est qui dans le monde Linux
Commande Convivialité
nom d'hôte Afficher le nom d’hôte du système.
nom d'hôte -f Affiche le nom de domaine complet (FQDN) du système.
passwd Modifier le mot de passe de l’utilisateur actuel.
whoami Nom d’utilisateur des utilisateurs connectés au terminal.
qui Liste de tous les utilisateurs actuellement connectés en tant qu’utilisateur.
w Afficher l’état actuel du système, l’heure, la durée, la liste des utilisateurs actuellement connectés au système et d’autres informations sur l’utilisateur.
dernier Qui a récemment utilisé le système.
dernière racine À quand remonte la dernière fois que root s’est connecté en tant qu’utilisateur.
dernier Affiche toutes les mauvaises tentatives de connexion au système.
chmod Modification des autorisations - lecture, écriture, exécution d’un fichier ou d’un répertoire.

Informations relatives au processus

Commande Convivialité
haut Répertorier tous les processus triés en fonction de leur utilisation actuelle des ressources système. Affiche un affichage continuellement mis à jour des processus (par défaut 3 secondes). Utilisez la touche q pour quitter le haut.
ps Liste les processus en cours d’exécution sur la session shell actuelle
ps -u racine Lister tous les processus et commandes que root exécute
ps aux Lister tous les processus par tous les utilisateurs sur le système actuel

Recherche de fichiers par modèles dans le nom/contenu

Une tâche courante d’une personne utilisant la ligne de commande Linux (shell) consiste à rechercher des fichiers/répertoires portant un certain nom ou contenant un certain texte. Il y a 2 commandes avec lesquelles vous devez vous familiariser afin d’accomplir ceci :


Rechercher des fichiers par nom

find /var/www -name '*.css'

Cela imprimera le chemin/nom de fichier complet de tous les fichiers sous /var/www qui se terminent par .css. Exemple de sortie :

/var/www/html/text-cursor.css
/var/www/html/style.css

Pour plus d’informations:

man find

Rechercher des fichiers contenant du texte

grep font /var/www/html/style.css 

Cela imprimera toutes les lignes contenant le motif font dans le fichier spécifié. Exemple de sortie :

font-weight: bold;
font-family: monospace;

Un autre exemple:

grep font /var/www/html/

Cela ne fonctionne pas comme vous l’espériez. Vous obtenez:

grep: /var/www/html/: Is a directory

Vous devez grep récursivement pour le faire fonctionner, en utilisant l’option -R :

grep -R font /var/www/html/

Hé sympa ! Découvrez la sortie de celui-ci :

/var/www/html/admin/index.php:  echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php:  echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css:  font-weight: bold;
/var/www/html/style.css:  font-family: monospace;

Notez que lorsque grep correspond à plusieurs fichiers, il préfixe les lignes correspondantes avec les noms de fichiers. Vous pouvez utiliser l’option -h pour vous en débarrasser, si vous le souhaitez.

Pour plus d’informations:

man grep

Manipulation de fichiers

Les fichiers et les répertoires (un autre nom pour les dossiers) sont au cœur de Linux, il est donc très important et assez puissant de pouvoir les créer, les afficher, les déplacer et les supprimer à partir de la ligne de commande. Ces commandes de manipulation de fichiers vous permettent d’effectuer les mêmes tâches qu’un explorateur de fichiers graphique effectuerait.

Créez un fichier texte vide appelé “myFile” :

touch myFile

Renommez myFile en myFirstFile :

mv myFile myFirstFile 

Afficher le contenu d’un fichier :

cat myFirstFile

Afficher le contenu d’un fichier avec pager (un écran à la fois) :

less myFirstFile

Afficher les premières lignes d’un fichier :

head myFirstFile

Afficher les dernières lignes d’un fichier :

tail myFirstFile

Modifier un fichier :

vi myFirstFile

Voyez quels fichiers se trouvent dans votre répertoire de travail actuel :

ls

Créez un répertoire vide appelé “myFirstDirectory” :

mkdir myFirstDirectory

Créer un répertoire multi-chemin : (crée deux répertoires, src et myFirstDirectory)

mkdir -p src/myFirstDirectory

Déplacez le fichier dans le répertoire :

mv myFirstFile myFirstDirectory/

Vous pouvez également renommer le fichier :

[email protected]:~$ mv myFirstFile secondFileName

Remplacez le répertoire de travail actuel par myFirstDirectory :

cd myFirstDirectory

Supprimer un fichier :

rm myFirstFile

Déplacez-vous dans le répertoire parent (qui est représenté par ..):

cd ..

Supprimez un répertoire vide :

rmdir myFirstDirectory

Supprimez un répertoire non vide (c’est-à-dire qu’il contient des fichiers et/ou d’autres répertoires) :

rm -rf myFirstDirectory

Notez que lors de la suppression de répertoires, vous supprimez ./ et non / qui effacera tout votre système de fichiers.

Détails du fichier/répertoire

La commande ls a plusieurs options qui peuvent être utilisées ensemble pour afficher plus d’informations.

Détails/Droits

L’option l affiche les autorisations de fichier, la taille et la date de la dernière modification. Donc, si le répertoire racine contient un répertoire appelé test et un fichier someFile la commande :

[email protected]:~$ ls -l

Sortirait quelque chose comme

-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test

Les autorisations sont au format drwxrwxrwx. Le premier caractère représente le type de fichier d si c’est un répertoire - sinon. Les trois “rwx” suivants sont les autorisations dont dispose l’utilisateur sur le fichier, les trois suivants sont les autorisations dont dispose le groupe sur le fichier et les trois derniers sont les autorisations que tout le monde a sur le fichier.

Le r de rwx signifie si un fichier peut être lu, le w représente si le fichier peut être modifié et le x signifie si le fichier peut être exécuté. Si une autorisation n’est pas accordée, un - sera à la place de r, w ou x.

Ainsi, à partir d’en haut, user peut lire et modifier someFile.txt mais le groupe n’a que des droits en lecture seule.

Pour modifier les droits, vous pouvez utiliser la commande chmod ### fileName si vous avez les droits sudo. ‘r’ est représenté par une valeur de 4, ‘w’ est représenté par 2 et ‘x’ est représenté par un 1. Donc, si seulement vous voulez pouvoir modifier le contenu du répertoire test

Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5

Donc toute la commande est

chmod 755 test

Maintenant, faire un ls -l montrerait quelque chose comme

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test

Taille lisible

Utilisée conjointement avec l’option l, l’option h affiche des tailles de fichiers lisibles par l’homme. Fonctionnement

[email protected]:~$ ls -lh

Sortirait :

total 4166
-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test

Caché

Pour afficher les fichiers cachés, utilisez l’option a. Par exemple

[email protected]:~$ ls -a

Pourrait lister

.profile
someFile.txt
test

Taille totale du répertoire

Pour afficher la taille du répertoire courant, utilisez l’option s (l’option h peut également être utilisée pour rendre la taille plus lisible).

[email protected]:~$ ls -s

Les sorties

total 4166
someFile.txt      test

Vue récursive

Disons que le répertoire test avait un fichier anotherFile et que vous vouliez le voir à partir du dossier racine, vous pouvez utiliser l’option R qui listerait l’arbre récursif.

[email protected]:~$ ls -R

Les sorties

.:
someFile.txt    test

./test:
anotherFile