Faire ses débuts sur la ligne de commande Linux

Les invites de commande vous font peur ? Venez découvrir les bases, pour débuter doucement mais sûrement !

Article publié le 22/03/2022, dernière mise à jour le 19/09/2023

Ceci est un article invité, écrit par Imrane Dessai de la newsletter "L'admin Sys pour les Développeurs"

L'une des choses que l'on n'apprend pas forcément au début de son parcours en programmation, c'est l'utilisation des terminaux/consoles de commandes. Parfois on se dit que lorsque l'on est dev, on fait du code... et que la ligne de commande, c'est pour les Ops...

Sauf que dans la vraie vie, il arrive toujours un moment où l'on doit se connecter sur une machine Linux (sans interface graphique). Et là, on se retrouve un peu jeté dans le grand bain, sans bouée.

Alors apprenons ensemble les concepts de bases de l'utilisation d'un terminal, pour ne se noyer dans le système !

Les bases

La suite de l'article part du principe que vous savez arriver sur un terminal de commande (en SSH sur un serveur ou en lançant un terminal local).

Souvent ça rassemble à ça :

username@hostname:location$
  • username : c'est le nom de l'utilisateur connecté sur la machine
  • hostname : le nom de la machine sur laquelle vous êtes (très pratique pour ne pas faire de bêtise sur le mauvais serveur)
  • location : le dossier courant
  • $ : indique que vous n'avez pas les droits administrateur (sinon c'est un # quand on est root/admin)

Dans la ligne de commande, nous allons appeler/invoquer des commandes pour effectuer des actions :

  • Administrer son serveur
  • Configurer des services
  • Investiguer des défaillances
  • Déployer du code source en production

Grossièrement, tout ce qu'on peut faire sur sa propre machine avec une souris... mais là, tout va se faire au clavier.

Les commandes c'est comme des fonctions dans un code. Une fonction prend des paramètres (ou pas), effectue des actions (des prints, des calculs ...) et retourne un résultat.

Pour utiliser une fonction, il faut qu'elle soit définie et qu'elle existe. Les commandes, c'est quasiment la même chose. La ligne de commande est donc un interpréteur qui va exécuter les commandes en fonction des paramètres et des variables que l'on va utiliser.

Une commande a souvent cette forme :
command [-argument] [--long-argument]

Quelques exemples

Il est conseillé d'essayer les commandes au fur et à mesure pour arriver à suivre et voir les résultats en direct ! Il n'y a rien de dangereux.

Commencer par la simple récupération d'informations :

pwd             # Indique où l'on se trouve dans le
		# système de fichier (par défaut le dossier de base appelé home)
        
ls              # Liste les fichiers du dossier actuel

ls -l           # Même liste mais avec plus de détails

date            # Récupérer la date systeme et l'heure 

ps              # Lister les processus qui tournent actuellement

Maintenant, on peut commencer à explorer :

cd /tmp         # Déplace vers le dossier /tmp

cd              # Ramène dans le dossier de base (quand utilisé sans argument)        

cat .bashrc     # Affiche le contenu du fichier .bashrc

history         # Affiche l'historique des dernières commandes executées

echo hello      # Affiche "hello" dans l'invite de commande

À noter que lorsqu'un fichier/dossier est précédé d'un . comme ".bashrc", cela indique que c'est un élément caché par défaut.

Et aller encore un peu plus loin :

touch example.txt		# Crée un fichier example.txt

mkdir dossier			# Crée un répertoire nommé "dossier"

echo “echo hello” > tryme	# Injecte la chaîne "echo hello" dans un nouveau
				# fichier qui va porter le nom "tryme"
                
chmod 700 tryme             	# Modifie les droits d'accès du fichier et
				# lui permet d'être exécuté comme une commande

./tryme                     	# Lance le fichier comme une commande

Normalement, en lançant ta dernière commande, vous devriez voir le mot "hello" apparaitre dans la console.

Bravo, tu as généré ton premier script shell exécutable !

Naviguer plus facilement

Maintenant qu'on a abordé les bases, découvrons comment se déplacer plus naturellement en revenant sur les utilisations plus poussées de la commande : "cd"

pwd             # Ne pas oublier cette commande à chaque fois pour vérifier le dossier courant

cd /            # Ramène à la racine du système de fichier, c'est le premier dossier, le plus haut. 
		# Il n'y en a pas d'autre au dessus
        
cd /tmp         # Saute directement dans le dossier tmp qui se trouve à la racine

cd /var/log     # Saute directement dans le dossier log qui se trouve dans var qui lui même se trouve à la racine 
		# Note : Vous n'êtes pas obligé de revenir dans un dossier parent pour aller dans les dossiers enfants.
        # On parle de déplacement par chemin absolu, comme une téléportation
        
cd ..           # Remonte au dossier parent                
		# (En suivant les exemples dans l'ordre, vous devez vous trouvez dans /var maintenant)
        
cd log          # Allez dans le dossier log (s'il existe)

cd ../..        # Remonte de deux parents (donc à la racine)
		# Ici on se déplace par chemin relatif. On ne donne pas le chemin complet, on donne le chemin par rapport à ton emplacement actuel

cd -            # petit astuce pour revenir dans le dernier dossier
		# (Normalement /var/log maintenant)

cd ../../tmp    # Remonte de deux parents (donc à la racine), puis redescend dans tmp

cd ~            # Le ~ équivaut au dossier de base

cd ~/Desktop    # Amène sur votre bureau (dossier Desktop contenu dans le dossier de base)

Maintenant, on sait naviguer dans les dossiers, on peut créer et manipuler des dossiers et des fichiers :

cd                 # On revient dans notre dossier de base pour faire des tests

mkdir folder1      # Crée un dossier qui porte le nom folder1

ls -l              # Pour vérifier qu'il est bien listé

mkdir d1 d2        # Crée d'un coup les deux dossiers d1 et d2

mkdir folder1/d3   # Crée un dossier d3 dans le dossier folder1

mkdir -p f2/d4     # Crée un dossier d4 dans le dossier f2 (s'il n'existe pas, le crée à la volée)

touch un.txt       # Crée un fichier vide dans le dossier courant

touch d1/deux.txt  # Crée un fichier vide dans le dossier d1

cp un.txt trois.txt  # Copie le fichier UN et la copie s'appelle TROI

mv un.txt d1       # Déplace le fichier dans le dossier d1

mv d1/* d2         # Déplace tout (fichiers et dossiers) ce qui se trouve dans d1 vers d2 
ls -l d2           # Liste ce qui se trouve dans d2 

rm d1/un.txt       # Supprime le fichier un.txt qui se trouve dans le dossier d1
rmdir d1           # Supprime le dossier d1 (uniquement s'il est vide, sinon il y aura erreur)

Désormais vous n'avez plus peur de vous noyez dans un terminal de commande, mais en plus vous savez naviguez, et vous pouvez commencer à profiter de la vue !

Pour aller plus loin

Vous l'aurez compris, cet article est une introduction, alors je vous donne toutes les pistes que vous pouvez explorer dès maintenant :


Sai Kiran Anagani sur Unsplash

Vous avez terminé l'article ?

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant