Introduction
Note: Le terminal interactif de ce tutoriel est actuellement désactivé alors que nous travaillons à améliorer nos expériences d’apprentissage interactives. Vous pouvez toujours utiliser ce tutoriel pour apprendre à propos de la ligne de commande et pratiquer les commandes Linux, mais vous devrez utiliser le terminal de votre ordinateur ou une machine virtuelle.
Aujourd’hui, beaucoup d’entre nous sont familiers avec les ordinateurs (de bureau et portables), les smartphones et les tablettes qui possèdent des interfaces graphiques utilisateur (également appelées GUI), nous permettant de naviguer dans les applications, sur le web et dans nos fichiers (comme les documents et les photos) à travers une expérience visuelle. Les systèmes d’exploitation Windows, macOS et Linux présentent chacun des variantes d’un environnement de bureau (avec des images de dossiers et de fichiers, par exemple), et des menus déroulants, qui donnent tous accès aux programmes informatiques, aux applications et à nos propres médias.
Bien que les GUI puissent être une manière intuitive d’utiliser un ordinateur pour de nombreux utilisateurs, elles ne nous fournissent souvent pas le plus grand contrôle sur nos machines, et elles peuvent nous empêcher d’avoir un accès administratif complet sur nos ordinateurs, y compris l’installation, la modification ou la suppression de logiciels ou de fichiers. De plus, comme les GUI sont largement visuelles, elles ne sont souvent pas aussi accessibles qu’elles pourraient l’être pour tous les utilisateurs.
Une manière de naviguer à la fois sur votre propre ordinateur personnel et sur des serveurs cloud distants sans GUI est à travers un terminal basé sur du texte ou une interface en ligne de commande (CLI).
Les interfaces de terminal existent sur presque tous les systèmes d’exploitation informatiques, et les émulateurs de terminal sont également disponibles sous forme d’applications pour tablettes et smartphones. Les terminaux offrent aux utilisateurs un accès global accru à leurs machines grâce à un accès administrateur plus étendu, une plus grande capacité de personnalisation des environnements et des possibilités d’automatisation des processus. Ils offrent également aux utilisateurs la possibilité d’accéder à des ordinateurs distants, tels que des serveurs cloud.
Ce tutoriel fournira aux utilisateurs qui découvrent les environnements de terminal les bases de l’utilisation d’une interface en ligne de commande via un terminal web intégré dans votre navigateur, que vous pouvez lancer ci-dessous. Si vous avez déjà une certaine familiarité avec les terminaux, vous pouvez préférer parcourir notre tutoriel Introduction au Terminal Linux à la place. Une fois ce tutoriel terminé, vous devriez avoir une compréhension de la manière d’utiliser un terminal sur un ordinateur ou un serveur Linux (ou macOS).
Comprendre la fenêtre de terminal
Lorsque vous obtenez un nouvel ordinateur ou smartphone, vous voulez probablement l’allumer et vous familiariser avec son utilisation en vérifiant quelles applications sont disponibles, et apprendre où sont les choses afin de pouvoir personnaliser l’appareil selon vos besoins. Vous pouvez vous familiariser avec un ordinateur via un terminal de manière similaire.
Le terminal interactif que vous avez lancé dans cette fenêtre de navigateur, en cliquant sur le bouton Lancer un terminal interactif !
ci-dessus, affiche un rectangle blanc en bas de votre fenêtre de navigateur :
Si vous n’avez pas lancé le terminal, veuillez le faire maintenant en utilisant le bouton au début de ce tutoriel.
Dans votre terminal de navigateur interactif, il devrait y avoir un signe dollar, $
et un curseur clignotant. C’est là que vous commencerez à taper des commandes pour indiquer au terminal quoi faire.
Le terminal que vous avez lancé est un terminal Ubuntu 20.04. Ubuntu est une distribution populaire de Linux, qui était à l’origine basée sur le système d’exploitation Unix. Le système d’exploitation macOS est également basé sur Unix. Si vous lisez ce tutoriel sur une machine Linux ou macOS, vous devriez avoir un terminal sur votre système d’exploitation qui fonctionne de manière similaire au terminal intégré que nous utiliserons dans ce guide.
Dans de nombreux systèmes d’exploitation Unix (ou basés sur *nix), les symboles à la fin de l’invite peuvent être un symbole $
ou un symbole #
, ce qui signifie ce qui suit :
$
ou signe dollar – vous êtes connecté en tant qu’utilisateur normal#
ou symbole dièse – vous êtes connecté en tant qu’utilisateur avec des privilèges élevés
L’utilisateur noté dans l’environnement #
est également connu sous le nom d’utilisateur root, qui est considéré comme un super utilisateur, ou administrateur, par défaut.
Pour nos besoins dans le terminal du navigateur ci-dessous, vous êtes connecté en tant qu’utilisateur régulier, mais vous avez également des privilèges d’administrateur via la commande sudo
. Comme il s’agit d’un terminal temporaire, vous n’avez pas besoin de vous soucier de ce que vous tapez dans le terminal, car nous détruirons tout une fois que nous aurons terminé. De même, avec un serveur cloud, il est possible de détruire un serveur et de recommencer à zéro en cas de problème.
Veuillez noter qu’il est préférable de faire preuve de plus de prudence lors de l’utilisation du terminal d’un ordinateur local, car il peut y avoir des modifications que vous pouvez apporter en tant qu’administrateur sur le terminal qui peuvent entraîner des modifications permanentes sur l’ordinateur que vous utilisez.
À ce stade, avec votre terminal lancé dans le navigateur, vous pouvez commencer à taper dedans en utilisant votre ordinateur local. Votre texte apparaîtra au curseur clignotant. Nous apprendrons ce que nous pouvons taper ici dans les prochaines sections.
Se familiariser avec les répertoires
Nous commencerons à travailler avec le terminal en tapant une commande. Une commande est une instruction donnée par un utilisateur, communiquant ce que l’utilisateur veut que l’ordinateur fasse. Vous allez taper vos commandes dans le terminal, puis appuyer sur ENTRÉE
ou RETOUR
lorsque vous êtes prêt pour que l’ordinateur exécute une commande donnée.
Tapez la commande suivante suivie de ENTER
. Vous pouvez également copier la commande ou demander à l’exécuter dans un terminal interactif lancé en cliquant sur les liens pertinents dans le bloc de code ci-dessous lorsque vous survolez avec la souris.
Une fois que vous avez exécuté cette commande, vous recevrez la sortie suivante :
Output/home/sammy
La commande pwd
signifie « chemin actuel du répertoire de travail » et vous indique où vous vous trouvez dans le système de fichiers actuel.
Dans cet exemple, vous êtes dans le répertoire (ou dossier) appelé /home/sammy
, qui correspond à l’utilisateur appelé sammy
. Si vous êtes connecté en tant que root
, un utilisateur avec des privilèges élevés, alors le répertoire serait appelé /root
. Sur un ordinateur personnel, ce répertoire peut être appelé du nom de l’utilisateur qui possède l’ordinateur. L’ordinateur de Sammy Shark peut avoir /sammy
ou /sammy-shark
ou /home/sammy
comme répertoire utilisateur principal.
Actuellement, ce répertoire est vide. Créons un répertoire pour stocker les fichiers que nous créerons au fur et à mesure de ce tutoriel, que nous pouvons appeler files
, par exemple.
Pour ce faire, nous utiliserons la commande mkdir
, qui signifie « make directory. » Après avoir saisi la commande, nous devrons écrire le nom du dossier, qui passera la valeur à la commande afin que la commande puisse s’exécuter sur la création de ce répertoire. Cette valeur (le nom du dossier) est appelée un argument, qui est une entrée donnée à la commande. Si vous êtes familier avec la grammaire de la langue naturelle, vous pouvez considérer l’argument comme un objet sur lequel agit le verbe de la commande.
Pour créer un nouveau répertoire appelé files
, nous écrirons ce qui suit, avec mkdir
comme commande et files
comme argument:
Après avoir exécuté cette commande, vous ne recevrez aucune sortie autre qu’une nouvelle ligne avec un curseur clignotant. Avec cette nouvelle ligne sur votre terminal, vous êtes prêt pour votre prochaine commande.
Listing Contents and Understanding Permissions
Comme nous n’avons pas encore reçu de retour d’information concret sur notre nouveau répertoire, nous utiliserons une commande pour en savoir plus sur ce qui se trouve dans notre répertoire de travail actuel. Vous pouvez confirmer que le nouveau répertoire est bien là en listant les fichiers du répertoire avec la commande ls
(signifiant « list »):
Vous recevrez une sortie qui confirme que le répertoire files
est là:
Outputfiles
Cela nous donne des informations générales sur ce qui se trouve dans notre répertoire de travail actuel. Si nous voulons avoir plus de détails, nous pouvons exécuter la commande ls
avec ce qu’on appelle un drapeau. Dans les commandes Linux, un drapeau est écrit avec un trait d’union -
et des lettres, passant des options supplémentaires (et plus d’arguments) à la commande. Dans notre exemple, nous ajouterons le drapeau -l
, qui — lorsqu’il est associé à ls
— indique que nous aimerions utiliser l’option pour utiliser un format de liste longue avec notre commande.
Tapons cette commande et ce drapeau, comme ceci:
Après avoir appuyé sur ENTRÉE
, nous recevrons la sortie suivante dans notre terminal:
Outputtotal 4
drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files
Ici, il y a deux lignes de sortie. La première ligne se réfère aux blocs de mémoire de l’ordinateur alloués à ce répertoire, la deuxième ligne se réfère principalement aux autorisations utilisateur sur le fichier.
Pour obtenir une sortie quelque peu plus lisible pour les humains, nous pouvons également passer le drapeau -h
ou --human-readable
, qui affichera les tailles de mémoire dans un format lisible pour les humains, comme ci-dessous. En général, un trait d’union -
se réfère à des options d’une seule lettre, et deux traits d’union --
se réfèrent à des options écrites en mots. Notez que certaines options peuvent utiliser les deux formats. Nous pouvons intégrer plusieurs options dans une commande en enchaînant les drapeaux ensemble, comme dans -lh
.
Par exemple, les deux commandes ci-dessous fournissent les mêmes résultats même si elles sont écrites différemment:
Les deux commandes suivantes renverront la sortie suivante, similaire à la sortie ci-dessus mais avec un plus grand contexte des blocs mémoire :
Outputtotal 4.0K
drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files
La première ligne de sortie nous indique que 4K de mémoire d’ordinateur sont dédiés au dossier. La deuxième ligne de sortie comporte beaucoup plus de détails, que nous examinerons plus en détail. Une référence générale de haut niveau de toutes les informations que nous couvrirons est indiquée dans le tableau ci-dessous.
File type | Permissions | Link count | Owner | Group | File size | Last modified date | File name |
---|---|---|---|---|---|---|---|
d | rwxr-xr-x | 2 | sammy | sammy | 4.0K | Nov 13 18:06 | files |
Vous noterez que le nom de notre répertoire, files
, se trouve à la fin de la deuxième ligne de sortie. Ce nom indique quel élément spécifique du répertoire utilisateur /home/sammy
est décrit par la ligne de sortie. Si nous avions un autre fichier dans le répertoire, nous aurions une autre ligne de sortie avec des détails sur ce fichier.
Au début de la ligne, il y a une liste de caractères et de tirets. Expliquons la signification de chacun des caractères :
Character | Description |
---|---|
d | directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file |
r | read — permission to open and read a file, or list the contents of a directory |
w | write — permission to modify the content of a file; and to add, remove, rename files in a directory |
x | execute — permission to run a file that is a program, or to enter and access files within a directory |
Dans les premiers caractères drwx
de la chaîne, la première lettre d
signifie que l’élément files
est un répertoire. S’il s’agissait d’un fichier autre qu’un répertoire, cette chaîne de caractères commencerait par un tiret au lieu de cela, comme dans -rwx
, où le premier tiret signifie un fichier non répertoire. Les trois lettres suivantes, rwx
, représentent les autorisations pour le propriétaire du répertoire files
, et signifient que le répertoire files
peut être réad, writ et exécuté par le propriétaire du fichier. Si l’un de ces caractères était remplacé par un tiret, cela signifierait que le propriétaire n’a pas le type d’autorisation représenté par ce caractère. Nous discuterons dans un instant de la manière d’identifier le propriétaire d’un fichier.
Les trois caractères suivants dans la sortie sont r-x
, qui représentent les autorisations du groupe pour le répertoire files
. Dans ce cas, le groupe a des autorisations de lecture et d’exécution, mais pas d’autorisations d’écriture, car le w
est remplacé par un -
. Nous discuterons dans un instant de la manière d’identifier le groupe.
Les trois derniers caractères de la première chaîne, r-x
, représentent les autorisations pour tous les autres groupes qui ont accès à la machine. Dans ce cas, ces groupes d’utilisateurs peuvent également lire et exécuter, mais pas écrire.
Le nombre 2
dans la sortie se réfère au nombre de liens vers ce fichier. Sous Linux, les liens fournissent une méthode pour créer des raccourcis afin d’aider les utilisateurs à naviguer dans le système de fichiers. Lorsque vous avez créé ce fichier, Linux a effectué certains travaux en arrière-plan pour créer un lien absolu vers le fichier et un lien auto-référentiel vers le fichier pour permettre aux utilisateurs de naviguer le long d’un chemin relatif. Nous discuterons des chemins absolus et relatifs dans la prochaine section.
Après le nombre 2
, le mot sammy
est affiché deux fois. Cette partie de la sortie donne des informations sur le propriétaire et le groupe associés au répertoire files
. La première occurrence de sammy
sur cette ligne se réfère au propriétaire du répertoire, dont les autorisations que nous avons vues précédemment sont rwx
. L’utilisateur sammy
est le propriétaire car nous avons créé le répertoire files
en tant qu’utilisateur sammy
et sommes le propriétaire actuel du fichier. Bien que l’utilisateur sammy
soit le seul utilisateur dans notre environnement actuel, les systèmes d’exploitation de type Unix ont souvent plus d’un utilisateur et il est donc utile de savoir quel utilisateur est propriétaire d’un fichier.
La deuxième occurrence de sammy
se réfère au groupe qui a accès au répertoire files
, dont les autorisations que nous avons vues précédemment sont r-x
. Dans ce cas, le nom du groupe est le même que le nom d’utilisateur du propriétaire sammy
. Dans les environnements du monde réel, il peut y avoir d’autres groupes sur le système d’exploitation qui ont accès au répertoire, tels que staff
ou un nom d’utilisateur comme admin
.
Le reste des détails sur cette ligne de sortie sont le 4.0K
pour l’allocation de mémoire du répertoire sur la machine, et la date à laquelle le répertoire a été modifié pour la dernière fois (jusqu’à présent, nous venons de le créer).
Avec cette meilleure compréhension des systèmes de fichiers et des autorisations, nous pouvons passer à la navigation dans le système de fichiers sur notre terminal Linux.
Naviguer dans le système de fichiers
Jusqu’à présent, nous avons appris comment déterminer où nous nous trouvons dans un système de fichiers, comment créer un nouveau répertoire, comment lister les fichiers et comment déterminer les autorisations.
Passons maintenant à apprendre comment naviguer dans le système de fichiers. Nous avons créé un nouveau répertoire, mais nous sommes toujours dans le répertoire utilisateur principal /home/sammy
. Pour accéder au répertoire /home/sammy/files
que nous avons créé, nous utiliserons la commande cd
et passerons le nom du répertoire dans lequel nous voulons entrer comme argument. La commande cd
signifie « changer de répertoire, » et nous la construirons ainsi:
Encore une fois, vous ne recevrez pas de sortie autre qu’une nouvelle ligne avec un curseur clignotant, mais nous pouvons vérifier que nous sommes dans le répertoire /home/sammy/files
avec la commande pwd
que nous avons utilisée précédemment:
Vous obtiendrez la sortie suivante, confirmant où vous vous trouvez:
Output/home/sammy/files
Cela valide que vous êtes dans le répertoire /home/sammy/files
du répertoire utilisateur /home/sammy
. Cette syntaxe vous semble-t-elle familière ? Elle peut vous rappeler l’URL d’un site web avec ses barres obliques, et en effet, les sites web sont également structurés sur des serveurs dans des répertoires.
Passons au répertoire principal du serveur. Peu importe où nous sommes dans un système de fichiers, nous pouvons toujours utiliser la commande cd /
pour nous déplacer vers le répertoire principal :
Pour confirmer que nous nous sommes déplacés et découvrir ce qui se trouve dans ce répertoire, exécutons notre commande de liste :
Nous recevrons la sortie suivante :
Outputbin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var
Il y a beaucoup de fichiers là-dedans ! Le répertoire /
est le répertoire principal d’un serveur Linux, appelé répertoire « root ». Notez que le répertoire racine est différent de l’utilisateur « root » par défaut. Vous pouvez penser au répertoire /
comme à l’artère principale d’une machine Linux, car il contient tous les dossiers nécessaires pour exécuter l’ordinateur. Par exemple, le répertoire sys
contient le noyau Linux et les informations système du système de fichiers virtuel. Si vous souhaitez en savoir plus sur chacun de ces répertoires, vous pouvez visiter la documentation de la Linux Foundation.
Vous remarquerez également qu’il y a un répertoire dans lequel nous nous sommes déjà trouvés, le dossier utilisateur /home
. À partir du répertoire /
, nous pouvons changer de répertoire pour revenir à /home
puis à files
, ou nous pouvons revenir directement dans ce dossier en tapant le chemin absolu avec cd
:
Maintenant, si vous exécutez pwd
, vous recevrez /home/sammy/files
comme sortie.
A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/
and then moved into files/
. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files
, showing that we started in the /
directory, called the /home/sammy/
user directory and then the nested files/
directory.
De plus, Linux utilise la notation point pour aider les utilisateurs à naviguer via des chemins relatifs. Un seul .
représente le répertoire dans lequel vous vous trouvez actuellement, et deux points ..
représentent le répertoire parent. Ainsi, à partir de l’endroit où nous nous trouvons actuellement (/home/sammy/files
), nous pouvons utiliser deux points pour revenir au répertoire parent /home/sammy
de l’utilisateur, comme ceci :
Si vous exécutez pwd
, vous recevrez /home/sammy
comme sortie, et si vous exécutez ls
, vous recevrez files
comme sortie.
Un autre symbole important avec lequel il est bon de se familiariser est ~
, qui représente le répertoire personnel de votre machine. Ici, notre répertoire personnel s’appelle /home/sammy
pour l’utilisateur sammy, mais sur une machine locale, il peut s’agir de votre propre nom comme dans sammy-shark/
.
Vous pouvez taper ce qui suit de n’importe où sur votre machine et revenir à ce répertoire personnel :
À ce stade, n’hésitez pas à naviguer dans votre système de fichiers avec les commandes que vous avez apprises jusqu’à présent. Dans la prochaine section, nous commencerons à travailler avec des fichiers texte.
Création et Modification de Fichiers Texte
Maintenant que nous avons une base dans le système de fichiers Linux et comment s’y déplacer, commençons à créer de nouveaux fichiers et à apprendre comment manipuler du texte en ligne de commande.
Assurons-nous d’abord que nous sommes dans le répertoire files/
du dossier utilisateur /home/sammy
, ce que nous pouvons faire en vérifiant avec pwd
, ou en changeant de répertoire sur le chemin absolu:
Maintenant, nous allons créer un nouveau fichier texte. Nous allons créer un fichier .txt
, qui est un fichier standard pouvant être lu sur différents systèmes d’exploitation. Contrairement aux fichiers .doc
, un fichier .txt
est composé de texte non formaté. Le texte non formaté, y compris le texte dans les fichiers.txt
, peut être utilisé facilement en ligne de commande, et donc peut être utilisé lors du travail avec des données textuelles de manière programmatique (pour automatiser l’analyse de texte, extraire des informations du texte, et plus encore).
Nous commencerons par utiliser la commande touch
, qui peut créer un nouveau fichier ou modifier un fichier existant. Pour l’utiliser, vous pouvez utiliser la commande touch
et passer le nom du fichier texte que vous souhaitez créer en tant qu’argument, comme illustré ci-dessous.
Une fois que vous appuyez sur ENTRÉE
, vous recevrez une nouvelle ligne de l’invite de commande, et vous pouvez lister le contenu actuel de files/
pour vous assurer qu’il a été créé.
Outputocean.txt
Jusqu’à présent, nous avons créé un fichier ocean.txt
qui ne contient aucun texte au moment de la création.
Si nous voulons créer un fichier texte initialisé avec du texte, nous pouvons utiliser la commande echo
, qui est utilisée pour afficher des chaînes de texte sous Linux.
Nous pouvons utiliser echo
directement dans la ligne de commande pour que l’interface répète après nous. Le premier programme traditionnel, "Bonjour, le monde !"
, peut être écrit avec echo
ainsi :
OutputHello, World!
Nommée d’après Écho de la Métamorphose d’Ovide, la commande echo
renvoie ce que nous demandons. Dans ce cas, elle a répété : « Bonjour, le monde ! » Cependant, la commande echo
seule ne nous permet pas de stocker la valeur de notre texte dans un fichier texte. Pour cela, nous devrons taper ce qui suit :
La commande ci-dessus utilise echo
, puis le texte que nous aimerions ajouter à notre fichier entre guillemets, puis l’opérateur de redirection >
, et enfin le nom de notre nouveau fichier texte, sammy.txt
.
Nous pouvons vérifier que notre nouveau fichier existe, encore une fois avec ls
.
Outputocean.txt sammy.txt
Nous avons maintenant deux fichiers texte dans notre dossier utilisateur /home/sammy/files
. Ensuite, nous pouvons confirmer que le fichier sammy.txt
contient bien le texte que nous avons demandé au terminal d’ajouter. Nous pouvons le faire avec la commande cat
. Abrégé de concaténation, la commande cat
est très utile pour travailler avec des fichiers. Parmi ses fonctions, il y a celle d’afficher le contenu d’un fichier.
Une fois que nous exécutons la commande, nous recevrons la sortie suivante :
OutputSammy the Shark
Si nous exécutions cat
sur le fichier vide ocean.txt
, nous ne recevrions rien en retour car il n’y a aucun texte dans ce fichier. Nous pouvons également ajouter du texte à ce fichier existant avec echo
. Ajoutons une citation de Zora Neale Hurston dans le fichier.
Maintenant, si nous exécutons cat
sur le fichier, nous recevrons en sortie le texte que nous venons d’entrer.
OutputSome people could look at a mud puddle and see an ocean with ships.
Jusqu’à présent, nous avons créé des fichiers texte et avons ajouté du texte à ces fichiers, mais nous n’avons pas encore modifié ces fichiers. Si nous voulons le faire, nous pouvons utiliser un éditeur de texte en ligne de commande. Plusieurs choix populaires existent, dont Vim et Emacs. Pour nos besoins, nous utiliserons nano, qui est un programme d’édition de texte en ligne de commande moins complexe que nous pouvons utiliser pour commencer notre exploration.
L’éditeur de texte nano peut être invoqué avec la commande nano
. Si nous voulons modifier notre fichier existant sammy.txt
, nous pouvons le faire en passant le nom du fichier comme argument.
Le fichier s’ouvrira sur votre terminal:
Sammy the Shark
Avec les touches fléchées de votre clavier, déplacez votre curseur à la fin de la ligne et commencez à taper quelques lignes du point de vue de Sammy.
Note: En ligne de commande, vous ne pouvez pas utiliser votre souris ou un autre pointeur pour naviguer, que ce soit dans le système de fichiers ou à l’intérieur des fichiers. Vous devrez utiliser votre clavier, et en particulier vos touches fléchées, pour vous déplacer dans les fichiers textuels.
Lorsque vous avez terminé avec votre fichier, il peut ressembler à ceci:
Sammy the Shark
Hello, I am Sammy.
I am studying computer science.
Nice to meet you!
Avec votre fichier contenant désormais le texte que vous souhaitez, nous pouvons maintenant enregistrer et fermer le fichier. Vous remarquerez peut-être qu’il y a des indications en bas de la fenêtre de votre terminal:
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Étant donné que nous avons terminé de travailler sur ce fichier, nous aimerions Quitter
le fichier. Ici, le symbole ^
fait référence à la touche Control
ou CTRL
de votre clavier, et la sortie ci-dessus nous indique que nous devons combiner cette touche avec la touche X
(utilisez cette minuscule, sans appuyer sur la touche SHIFT
) pour quitter le fichier. Appuyons sur ces deux touches ensemble:
CTRL x
Ce qui précède est souvent écrit en ligne comme CTRL + X
ou Ctrl+x
dans la documentation technique.
À ce stade, vous recevrez le message suivant:
OutputSave modified buffer?
Y Yes
N No ^C Cancel
Pour enregistrer, nous appuierons sur la lettre y
pour oui:
y
Vous recevrez un retour d’information comme suit.
OutputFile Name to Write: sammy.txt
Il existe des options supplémentaires, notamment l’annulation avec CTRL + C
, mais si vous êtes à l’aise pour fermer le fichier, vous pouvez appuyer sur ENTER
à ce stade pour enregistrer le fichier et le quitter.
Disons que nous voulons créer quelques fichiers d’étudiants à l’Université DigitalOcean. Créons un nouveau répertoire dans files/
appelé students
:
Ensuite, déplaçons sammy.txt
dans le nouveau répertoire students/
. La commande mv
, qui signifie move, nous permettra de changer l’emplacement d’un fichier. La commande est construite en prenant le fichier que nous voulons déplacer comme premier argument, et le nouvel emplacement comme deuxième argument. Les deux exécutions suivantes produiront le même résultat.
Cette dernière option serait utile si nous voulions changer le nom du fichier, comme dans mv sammy.txt students/sammy-the-shark.txt
.
Maintenant, si nous exécutons la commande ls
, nous verrons que seul ocean.txt
et le répertoire students/
sont dans notre répertoire actuel (files/
). Entrons dans le dossier students/
.
Pour avoir un modèle pour les autres étudiants, nous pouvons copier le fichier sammy.txt
pour créer plus de fichiers. Pour ce faire, nous pouvons utiliser la commande cp
, qui signifie copier. Cette commande fonctionne de manière similaire à la commande mv
, en prenant le fichier original comme premier argument et le nouveau fichier comme deuxième argument. Nous allons créer un fichier pour Alex le Dragon de mer feuillu :
Maintenant, nous pouvons ouvrir alex.txt
et l’inspecter.
Jusqu’à présent, alex.txt
semble identique à sammy.txt
. En remplaçant certains mots, nous pouvons modifier ce fichier pour qu’il ressemble à ce qui suit. Notez que vous pouvez utiliser CTRL + K
pour supprimer une ligne entière.
Alex the Leafy Seadragon
Hello, I am Alex.
I am studying oceanography.
Nice to meet you!
Vous pouvez enregistrer et fermer le fichier en appuyant sur CTRL + X
, puis sur y
, puis sur ENTRÉE
.
Si vous souhaitez vous exercer davantage avec les fichiers texte, envisagez de créer des fichiers pour Jamie le Crabe Mante, Jesse le Poulpe, Drew le Calmar ou Taylor le Thon à nageoires jaunes.
Une fois que vous vous sentez à l’aise avec la création, l’édition, la copie et le déplacement de fichiers texte, nous pouvons passer à la section suivante.
Auto-complétion et Historique
De nombreuses versions de l’interface de ligne de commande, y compris le terminal interactif intégré à ce tutoriel, vous permettent d’auto-compléter et de réutiliser des commandes au fur et à mesure. Cela vous permet d’avancer plus rapidement car cela vous fait gagner du temps de frappe.
Essayez de taper cat
ainsi que les premières lettres d’un des fichiers texte sur lesquels vous avez travaillé – par exemple, cat sa
. Avant de finir de taper le nom complet du fichier sammy.txt
, appuyez plutôt sur la touche TAB
. Cela devrait compléter automatiquement le nom complet du fichier, de sorte que votre invite de terminal affiche ce qui suit :
Maintenant, si vous appuyez sur ENTRÉE
, le terminal devrait renvoyer le contenu du fichier à la ligne de commande.
Un autre raccourci est d’appuyer sur la touche fléchée HAUT
, ce qui vous permettra de parcourir les commandes les plus récentes que vous avez exécutées. Sur une nouvelle ligne avec un curseur clignotant, appuyez plusieurs fois sur la touche fléchée HAUT
pour avoir un accès rapide à vos commandes précédentes.
Si vous avez besoin de reproduire toutes les commandes que vous avez exécutées dans votre terminal, vous pouvez également appeler l’ensemble de l’historique de cette session avec la commande judicieusement nommée history
:
En fonction de la quantité de pratique que vous avez effectuée, vous devriez recevoir 30 lignes ou plus de commandes, commençant par la sortie suivante :
Output 1 pwd
2 mkdir files
3 ls
4 ls -l
...
Se familiariser avec ces raccourcis vous soutiendra alors que vous deviendrez plus compétent avec l’interface en ligne de commande.
Travailler avec des fichiers depuis le Web
Un des aspects les plus passionnants du travail sur une interface en ligne de commande connectée à Internet est que vous avez accès à toutes les ressources du Web et pouvez agir sur elles de manière automatisée. Avec le terminal, vous pouvez également accéder directement à des serveurs cloud pour lesquels vous avez des identifiants, gérer et orchestrer l’infrastructure cloud, créer vos propres applications web, et plus encore. Pour l’instant, comme nous avons déjà appris à travailler avec des fichiers texte sur le terminal, nous allons voir comment télécharger un fichier texte depuis le Web afin que la machine que nous utilisons ait ce fichier texte disponible pour nous.
Revenons dans le répertoire files/
:
À partir de là, nous utiliserons la commande curl
pour transférer des données depuis le Web vers notre terminal interactif personnel sur le navigateur. La commande curl
signifie client URL (adresse web).
Nous avons téléchargé un court extrait de « Vingt Mille Lieues sous les mers » de Jules Verne sur un serveur cloud. Nous transmettrons l’URL de ce fichier à la commande curl
, comme démontré ci-dessous.
Une fois que nous aurons appuyé sur ENTER
, nous recevrons le texte de l’extrait en sortie sur notre terminal (extrait ci-dessous)
Output"You like the sea, Captain?"
"Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe.
...
"Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this
is a library which would do honor to more than one of the continental palaces, and I am
absolutely astounded when I consider that it can follow you to the bottom of the seas."
Bien qu’il soit intéressant d’avoir le texte affiché sur notre fenêtre de terminal, nous n’avons pas le fichier disponible, nous avons seulement transféré les données mais ne les avons pas stockées. (Vous pouvez vérifier que le fichier n’est pas là en exécutant ls
).
Pour enregistrer le texte dans un fichier, nous devrons exécuter curl
avec le drapeau -O
, ce qui nous permet de produire le texte dans un fichier, en prenant le même nom que le fichier distant pour notre copie locale.
Vous recevrez un retour de la fenêtre de terminal indiquant que votre fichier a été téléchargé.
Output % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487
Si vous souhaitez utiliser un nom spécifique et alternatif pour le fichier, vous pouvez le faire avec le drapeau -o
et passer le nom du nouveau fichier en argument (dans ce cas, jules.txt
).
Nous pouvons maintenant travailler sur ce fichier exactement comme nous le ferions avec n’importe quel autre fichier texte. Essayez d’utiliser cat
, ou de l’éditer avec nano
.
Dans la prochaine section, nous allons nettoyer certains des fichiers et quitter notre terminal.
Suppression de fichiers et terminaison des commandes
Comme avec n’importe quel autre ordinateur, nous devons parfois supprimer des fichiers et des dossiers qui ne sont plus pertinents, et quitter le programme que nous utilisons.
Disons que les étudiants que nous connaissons de l’université DigitalOcean ont obtenu leur diplôme et que nous devons nettoyer leurs fichiers et le dossier pertinent. Assurez-vous d’être dans le répertoire students/
:
Si vous exécutez ls
, votre dossier peut contenir quelques fichiers, comme ceci :
Outputalex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt
Nous pouvons supprimer des fichiers individuels avec la commande rm
, qui signifie remove. Nous devrons passer le fichier que nous voulons supprimer comme argument.
Avertissement : Notez qu’une fois que vous supprimez un fichier, cela ne peut pas être annulé. Assurez-vous que vous voulez supprimer le fichier avant d’appuyer sur ENTER
.
Maintenant, si nous exécutons ls
, nous remarquerons que sammy.txt
n’est plus dans le dossier :
Outputalex.txt drew.txt jamie.txt jesse.txt taylor.txt
Alors que nous savons maintenant que nous pouvons supprimer des fichiers individuels avec rm
, cela n’est pas très efficace en termes de temps si nous voulons supprimer l’intégralité du répertoire students/
et tous ses contenus.
La commande utilisée pour supprimer des répertoires s’appelle rmdir
, qui signifie remove directory. Déplaçons-nous vers le dossier parent de files
afin que nous puissions travailler avec le répertoire students/
à partir de là (nous ne pourrions pas supprimer un dossier dans lequel nous sommes actuellement).
Depuis le répertoire utilisateur /home/sammy/
, nous pouvons exécuter rmdir
sur students
.
Cependant, cela ne fonctionne pas, car nous recevons le retour suivant :
Outputrmdir: failed to remove 'students': Directory not empty
La commande n’a pas fonctionné car rmdir
ne fonctionne que sur les répertoires vides et le répertoire students
contient encore des fichiers. (Ici, vous pouvez créer un nouveau dossier vide et essayer rmdir
dessus. Les dossiers vides peuvent être supprimés avec rmdir
.)
Pour supprimer le répertoire avec des fichiers encore à l’intérieur, nous devrons essayer une option différente. En informatique, la récursivité est couramment utilisée pour se référencer de manière itérative ; ainsi, nous pouvons appeler à la fois un élément principal et toutes ses dépendances. En utilisant la commande rm
, nous pouvons supprimer récursivement le répertoire principal students
et toutes ses dépendances en contenu. Nous utiliserons le drapeau -r
, qui signifie récursif, et transmettrons le dossier students
comme argument.
À ce stade, si nous exécutons ls
, nous remarquerons que students/
n’est plus dans notre répertoire actuel, et aucun des fichiers qu’il contenait n’est disponible non plus, car ils ont tous été supprimés.
Lorsque vous avez terminé une session terminal, et surtout lorsque vous travaillez sur un serveur distant, vous pouvez quitter le terminal avec la commande exit
. Une fois que vous vous sentez à l’aise avec ce que vous avez accompli dans cette session (car vous ne pourrez pas le restaurer), vous pouvez taper ce qui suit, suivi de ENTER
pour quitter le terminal.
Dans notre terminal interactif, nous recevrons la sortie suivante, confirmant que notre session est terminée.
OutputSession ended
Avec cette session terminée, vous pouvez rafraîchir cette page puis ouvrir un nouveau terminal pour essayer des commandes alternatives, ou créer un nouveau système de fichiers à explorer.
Conclusion
Félicitations ! Vous maîtrisez désormais l’interface du terminal et vous êtes bien parti pour faire plus avec les ordinateurs et les serveurs.
Pour continuer votre apprentissage, vous pouvez suivre un parcours guidé sur la configuration et la gestion des serveurs distants avec notre programme Introduction au Cloud Computing.
Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer