Une introduction à la ligne de commande Linux
Introduction
Aujourd'hui, beaucoup d'entre nous connaissent les ordinateurs (ordinateurs de bureau et portables), les smartphones et les tablettes dotés d'interfaces utilisateur graphiques (également appelées interfaces graphiques), nous permettant de naviguer dans les applications, le Web et 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 variétés d'environnement de bureau (avec des images de dossiers et de fichiers, par exemple) et des menus déroulants, qui donnent tous accès à des programmes informatiques, des applications et nos propres médias.
Bien que les interfaces graphiques puissent être un moyen intuitif d'utiliser un ordinateur pour de nombreux utilisateurs, elles ne nous fournissent souvent pas le plus grand pouvoir sur nos machines et peuvent nous empêcher d'avoir un accès administratif complet sur nos ordinateurs, y compris l'installation, la modification ou la suppression. logiciels ou fichiers. De plus, comme les interfaces graphiques sont en grande partie visuelles, elles ne sont souvent pas aussi accessibles qu'elles pourraient l'être pour tous les utilisateurs.
Une façon de naviguer à la fois sur votre propre ordinateur personnel et sur des serveurs cloud distants sans interface graphique consiste à utiliser un terminal textuel ou une interface de ligne de commande (CLI). Vous pouvez en lancer un dans le navigateur en cliquant sur le bouton bleu Launch an Interactive Terminal!
ci-dessous :
Lancez une borne interactive !
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 meilleur accès global à leurs machines grâce à un accès administrateur accru, une plus grande capacité à personnaliser les environnements et des opportunités d'automatisation des processus. Ils offrent également aux utilisateurs la possibilité d'accéder à des ordinateurs distants, tels que des serveurs cloud.
Ce didacticiel fournira aux utilisateurs novices dans les environnements de terminal les bases de l'utilisation d'une interface de ligne de commande via un terminal Web intégré dans votre navigateur, que vous pouvez lancer ci-dessous. Si vous êtes déjà familiarisé avec les terminaux, vous préférerez peut-être suivre notre tutoriel Introduction au terminal Linux à la place. Une fois que vous aurez terminé ce didacticiel, vous devriez comprendre comment utiliser un terminal sur un ordinateur ou un serveur Linux (ou macOS).
Comprendre la fenêtre du terminal
Lorsque vous accédez pour la première fois à un nouvel ordinateur ou à un smartphone, vous souhaitez probablement l'allumer et vous faire une idée de la façon de l'utiliser en vérifiant quelles applications sont disponibles, et savoir où se trouvent les choses afin de pouvoir personnaliser l'appareil. vos besoins. Vous pouvez vous familiariser avec un ordinateur via un terminal de la même manière.
La borne interactive que vous avez lancée dans cette fenêtre de navigateur, en cliquant sur le bouton Launch an Interactive Terminal!
ci-dessus, affiche un rectangle blanc en bas de la fenêtre de votre 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 navigation interactif, il devrait y avoir un signe dollar, $
et un curseur clignotant. C'est là que vous commencerez à taper des commandes pour dire 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 didacticiel 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 bon nombre de ces 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 régulier#
ou symbole dièse/dièse — vous êtes connecté en tant qu'utilisateur avec des privilèges élevés
L'utilisateur noté dans l'environnement #
est également appelé utilisateur root, qui est considéré comme un super utilisateur ou administrateur par défaut.
Pour nos besoins dans le terminal de navigateur ci-dessous, vous êtes connecté en tant qu'utilisateur régulier, mais vous disposez également de privilèges d'administrateur via la commande sudo
. Comme il s'agit d'un terminal temporaire, vous n'avez pas à 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 si quelque chose tourne mal.
Veuillez noter qu'il est préférable d'être plus prudent lorsque vous travaillez sur le 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 apporter des modifications permanentes sur l'ordinateur que vous utilisez.
À ce stade, avec votre terminal lancé dans le navigateur, vous pouvez commencer à taper dessus à l'aide de votre ordinateur local. Votre texte apparaîtra au niveau du curseur clignotant. Nous apprendrons ce que nous pouvons taper ici dans les sections suivantes.
Se familiariser avec les annuaires
Nous allons commencer à 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 ENTER
ou RETURN
lorsque vous êtes prêt à ce que l'ordinateur exécute une commande donnée.
Tapons la commande suivante suivie de ENTER
. Vous pouvez également copier la commande, ou lui demander de s'exécuter dans une borne interactive lancée en cliquant sur les liens correspondants dans le bloc de code ci-dessous lorsque vous la survolez avec la souris.
pwd
Une fois cette commande exécutée, vous obtenez le résultat suivant :
Output/home/sammy
La commande pwd
signifie « present working directory », et elle vous permet de savoir où vous vous trouvez dans le système de fichiers actuel.
Dans cet exemple, vous vous trouvez 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, le répertoire s'appellera /root
. Sur un ordinateur personnel, ce répertoire peut être appelé le nom de l'utilisateur propriétaire de l'ordinateur. L'ordinateur de Sammy Shark peut avoir /sammy
ou /sammy-shark
ou /home/sammy
comme répertoire utilisateur principal.
Pour l'instant, ce répertoire est vide. Créons un répertoire pour stocker les fichiers que nous allons créer au cours de ce didacticiel, que nous pouvons appeler files
, par exemple.
Pour ce faire, nous utiliserons la commande mkdir
, qui signifie « make directory ». Après avoir tapé la commande, nous devrons écrire le nom du dossier, qui transmettra la valeur à la commande afin que la commande puisse s'exécuter lors de la création de ce répertoire. Cette valeur (le nom du dossier) est connue sous le nom de argument, qui est une entrée donnée à la commande. Si vous êtes familier avec la grammaire du langage naturel, vous pouvez considérer l'argument comme un objet sur lequel agit le verbe de la commande.
Afin de créer un nouveau répertoire appelé files
, nous écrirons ce qui suit, avec mkdir
étant la commande et files
étant l'argument :
mkdir files
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.
Répertorier le contenu et comprendre les autorisations
Comme nous n'avons pas encore reçu de retour concret sur notre nouveau répertoire, nous allons utiliser une commande pour en savoir plus sur le contenu de notre répertoire de travail actuel. Vous pouvez confirmer que le nouveau répertoire est bien là en listant les fichiers dans le répertoire, avec la commande ls
(signifiant "list") :
ls
Vous recevrez une sortie confirmant la présence du répertoire files
:
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 flag est écrit avec un trait d'union -
et des lettres, en 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 d'utiliser un format de liste longue avec notre commande.
Tapons cette commande et ce drapeau, comme ceci :
ls -l
En appuyant sur ENTER
, 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 fait référence aux blocs de mémoire de l'ordinateur alloués à ce répertoire, la deuxième ligne fait principalement référence aux autorisations des utilisateurs sur le fichier.
Pour obtenir une sortie un peu plus lisible par l'homme, nous pouvons également passer le drapeau -h
ou --human-readable
, qui imprimera les tailles de mémoire dans un format lisible par l'homme, comme ci-dessous. Généralement, un trait d'union -
fait référence à des options à une seule lettre et deux traits d'union --
font référence à des options écrites en toutes lettres. Notez que certaines options peuvent utiliser les deux formats. Nous pouvons créer plusieurs options dans une commande en enchaînant des drapeaux, comme dans -lh
.
Par exemple, les deux commandes ci-dessous donnent les mêmes résultats même si elles sont écrites différemment :
ls -lh
ls -l --human-readable
Ces deux commandes renverront la sortie suivante, similaire à la sortie ci-dessus mais avec un plus grand contexte des blocs de 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 informatique sont dédiés au dossier. La deuxième ligne de sortie contient beaucoup plus de détails, que nous aborderons 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.
Type de fichier | Autorisations | Nombre de liens | Propriétaire | Grouper | Taille du fichier | Date de la dernière modification | Nom de fichier |
---|---|---|---|---|---|---|---|
d | rwxr-xr-x | 2 | sammy | sammy | 4.0K | 13 novembre 18:06 | des dossiers |
Vous remarquerez 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. Décomposons la signification de chacun des caractères :
Personnage | La description |
---|---|
d | Répertoire (ou dossier) d — type de fichier pouvant contenir d'autres fichiers, utile pour organiser un système de fichiers ; s'il s'agissait de - à la place, cela ferait référence à un fichier non-répertoire
|
r | read — permission d'ouvrir et de lire un fichier, ou de lister le contenu d'un répertoire |
w | write — autorisation de modifier le contenu d'un fichier ; et pour ajouter, supprimer, renommer des fichiers dans un répertoire |
x | execute — autorisation d'exécuter un fichier qui est un programme, ou d'entrer et d'accéder à des fichiers dans un répertoire |
Dans les drwx
premiers caractères 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 trait d'union à la place, comme dans -rwx
, où le premier trait d'union 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 read, written et executed par le propriétaire du fichier. Si l'un de ces caractères était remplacé par des traits d'union, cela signifierait que le propriétaire ne dispose pas du type d'autorisation représenté par ce caractère. Nous verrons comment identifier le propriétaire d'un fichier dans un instant.
Les trois caractères suivants dans la sortie sont r-x
, qui représentent les autorisations groupe pour le répertoire files
. Dans ce cas, le groupe dispose d'autorisations de lecture et d'exécution, mais pas d'autorisations d'écriture, car le w
est remplacé par un -
. Nous allons discuter de la façon d'identifier le groupe dans un instant.
Les trois derniers caractères de la première chaîne, r-x
représentent les autorisations pour tous les autres groupes ayant 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 fait référence au nombre de liens vers ce fichier. Sous Linux, les liens fournissent une méthode pour créer des raccourcis pour aider les utilisateurs à naviguer dans le système de fichiers. Lorsque vous avez créé ce fichier, Linux a effectué un travail de fond 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 section suivante.
Après le nombre 2
, le mot sammy
s'affiche deux fois. Cette partie de la sortie donne des informations sur le propriétaire et le groupe associé au répertoire files
. La première instance de sammy
dans cette ligne fait référence 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 instance de sammy
fait référence 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 des environnements réels, 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.
Jusqu'à présent, nous avons appris à déterminer où nous nous trouvons dans un système de fichiers, à créer un nouveau répertoire, à répertorier les fichiers et à déterminer les autorisations.
Voyons maintenant comment se déplacer 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
. Afin de se déplacer dans le répertoire /home/sammy/files
que nous avons créé, nous allons utiliser la commande cd
et passer le nom du répertoire dans lequel nous voulons nous déplacer comme argument. La commande cd
signifie « change directory », et nous allons la construire comme suit :
cd files
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 :
pwd
Vous obtiendrez la sortie suivante, confirmant où vous êtes :
Output/home/sammy/files
Ceci 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 ? Cela 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 primaire du serveur. Peu importe où nous nous trouvons dans un système de fichiers, nous pouvons toujours utiliser la commande cd /
pour passer au répertoire primaire :
cd /
Pour confirmer que nous avons déménagé et savoir ce qu'il y a dans ce répertoire, exécutons notre commande list :
ls
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 dedans ! Le répertoire /
est le répertoire principal d'un serveur Linux, appelé répertoire « racine ». Notez que le répertoire racine est différent de l'utilisateur « root » par défaut. Vous pouvez considérer le répertoire /
comme l'artère principale d'une machine Linux, car il contient tous les dossiers nécessaires au fonctionnement de l'ordinateur. Par exemple, le répertoire sys
contient le noyau Linux et le système de fichiers virtuel des informations système. Si vous souhaitez en savoir plus sur chacun de ces répertoires, vous pouvez consulter la documentation Linux Foundation.
Vous remarquerez également qu'il existe un répertoire dans lequel nous sommes déjà allés, le dossier utilisateur /home
. À partir du répertoire /
, nous pouvons changer de répertoire en /home
puis revenir en files
, ou nous pouvons revenir directement dans ce dossier en tapant le chemin absolu avec [X187X ] :
cd /home/sammy/files
Maintenant, si vous exécutez pwd
, vous recevrez /home/sammy/files
comme sortie.
Un chemin de fichier est la représentation de l'emplacement d'un fichier ou d'un répertoire sur votre ordinateur ou votre serveur. Vous pouvez appeler un chemin vers un fichier ou un répertoire de manière relative ou absolue. Un chemin relatif serait lorsque nous nous déplaçons vers un emplacement relatif à notre répertoire de travail actuel, comme nous l'avons fait lorsque nous étions déjà dans /home/sammy/
, puis déplacés dans files/
. Un chemin absolu est lorsque nous appelons la ligne directe vers un emplacement, comme nous l'avons fait ci-dessus avec /home/sammy/files
, montrant que nous avons commencé dans le répertoire /
, appelé le [X168X ] répertoire utilisateur, puis le répertoire imbriqué files/
.
De plus, Linux exploite la notation par points pour aider les utilisateurs à naviguer via des chemins relatifs. Un simple .
représente le répertoire dans lequel vous vous trouvez actuellement, et un double ..
représente le répertoire parent. Donc, à partir de là où nous sommes actuellement (/home/sammy/files
), nous pouvons utiliser deux points pour revenir au répertoire utilisateur parent /home/sammy
, comme ceci :
cd ..
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 à connaître 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 :
cd ~
À 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 section suivante, 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 le contourner, commençons à créer de nouveaux fichiers et apprenons à manipuler du texte sur la 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 soit en vérifiant avec pwd
, soit en changeant de répertoires sur l'absolu chemin:
cd /home/sammy/files
Maintenant, nous allons créer un nouveau fichier texte. Nous allons créer un fichier .txt
, qui est un fichier standard qui peut être lu sur tous les 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 des fichiers .txt
, peut être facilement utilisé sur la ligne de commande, et peut donc être utilisé lorsque vous travaillez avec des données textuelles par programmation (comme dans, pour automatiser l'analyse de texte, pour extraire des informations du texte, et plus).
Nous allons commencer 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 comme argument, comme illustré ci-dessous.
touch ocean.txt
Une fois que vous avez appuyé sur ENTER
, vous recevrez une nouvelle ligne de l'invite de commande et vous pourrez lister le contenu actuel de files/
pour vous assurer qu'il a été créé.
ls
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 sur la ligne de commande pour que l'interface se répète après nous. Le premier programme traditionnel, "Hello, World!"
, peut être écrit avec echo
comme ceci :
echo Hello, World!
OutputHello, World!
Nommée d'après la Métamorphose d'Écho d'Ovide, la commande echo
renvoie ce que nous demandons. Dans ce cas, il a fait écho, "Hello, World!" Cependant, à elle seule, la commande echo
ne nous permet pas de stocker la valeur de notre texte dans un fichier texte. Pour ce faire, nous devrons taper ce qui suit :
echo "Sammy the Shark" > sammy.txt
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, [ X180X].
Nous pouvons vérifier que notre nouveau fichier existe, toujours avec ls
.
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 de faire écho. Nous pouvons le faire avec la commande cat
. Abréviation de concatenate, la commande cat
est très utile pour travailler avec des fichiers. Parmi ses fonctions figure l'affichage du contenu d'un fichier.
cat sammy.txt
Une fois la commande exécutée, nous recevrons le résultat suivant :
OutputSammy the Shark
Si nous devions exécuter cat
sur le fichier vide ocean.txt
, nous ne recevrons rien en retour car il n'y a pas de texte dans ce fichier. Nous pouvons également ajouter du texte à ce fichier existant avec echo
. Ajoutons une citation de Zora Neale Hurston au dossier.
echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt
Maintenant, si nous exécutons cat
sur le fichier, nous recevrons la sortie du texte que nous venons de saisir.
cat ocean.txt
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 souhaitons le faire, nous pouvons utiliser un éditeur de texte en ligne de commande. Plusieurs choix populaires existent, y compris Vim et Emacs. Pour nos besoins, nous utiliserons nano, qui est un programme d'édition de texte CLI 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 sammy.txt
existant, nous pouvons le faire en passant le nom du fichier comme argument.
nano sammy.txt
Le fichier s'ouvrira sur votre terminal :
sammy.txt
Sammy the Shark
Avec les touches fléchées de votre clavier, déplacez votre curseur jusqu'à la fin de la ligne et commencez à taper quelques lignes du point de vue de Sammy.
Remarque : Sur la ligne de commande, vous ne pouvez pas utiliser votre souris ou un autre pointeur pour naviguer, à la fois dans le système de fichiers et dans les fichiers. Vous devrez utiliser votre clavier, et vos touches fléchées en particulier, pour vous déplacer dans les fichiers texte.
Lorsque vous avez terminé avec votre fichier, il peut lire quelque chose comme ceci :
sammy.txt
Sammy the Shark Hello, I am Sammy. I am studying computer science. Nice to meet you!
Maintenant que votre fichier contient le texte que vous souhaitez, nous pouvons maintenant enregistrer et fermer le fichier. Vous remarquerez peut-être qu'il y a des conseils au 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 actuellement terminé de travailler sur ce fichier, nous aimerions Exit
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 [X158X ] (utilisez cette minuscule, sans appuyer sur la touche SHIFT
) afin de quitter le fichier. Appuyons ensemble sur ces deux touches :
CTRL x
Ce qui précède est souvent écrit en ligne sous la forme CTRL + X
ou Ctrl+x
dans la documentation technique.
À ce stade, vous recevrez l'invite suivante :
OutputSave modified buffer? Y Yes N No ^C Cancel
Afin de le sauvegarder, nous allons appuyer sur la lettre y
pour oui :
y
Vous recevrez des commentaires comme ceux-ci.
OutputFile Name to Write: sammy.txt
Il existe des options supplémentaires, y compris l'annulation avec CTRL + C
, mais si vous êtes à l'aise avec la fermeture du fichier, vous pouvez appuyer sur ENTER
à ce stade pour enregistrer le fichier et le quitter.
Disons que nous voulons faire quelques fichiers d'étudiants à DigitalOcean University. Créons un nouveau répertoire dans files/
appelé students
:
mkdir 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.
mv sammy.txt students
mv sammy.txt students/sammy.txt
Cette dernière option serait utile si nous souhaitons 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 seuls ocean.txt
et le répertoire students/
sont dans notre répertoire actuel (files/
). Passons au dossier students/
.
cd students
Afin d'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 copy. Cette commande fonctionne de la même manière que la commande mv
, en prenant le fichier d'origine comme premier argument et le nouveau fichier comme deuxième argument. Nous allons créer un fichier pour Alex the Leafy Seadragon :
cp sammy.txt alex.txt
Maintenant, nous pouvons ouvrir alex.txt
et l'inspecter.
nano alex.txt
Jusqu'à présent, alex.txt
semble identique à sammy.txt
. En remplaçant certains mots, nous pouvons modifier ce fichier pour qu'il se lise comme suit. Notez que vous pouvez utiliser CTRL + K
pour supprimer une ligne entière.
alex.txt
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 y
puis ENTER
.
Si vous souhaitez vous entraîner davantage avec les fichiers texte, envisagez de créer des fichiers pour Jamie the Mantis Shrimp, Jesse the Octopus, Drew the Squid ou Taylor the Yellowfin Tuna.
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.
Autocomplétion et historique
De nombreuses versions de la ligne de commande, y compris le terminal interactif intégré dans ce didacticiel, vous permettent de compléter automatiquement et de réutiliser les commandes au fur et à mesure. Cela vous aide à vous déplacer plus rapidement car cela vous fait gagner du temps de frappe.
Essayez de taper cat
avec les premières lettres de l'un des fichiers texte sur lesquels vous avez travaillé, par exemple, cat sa
. Avant de finir de taper le nom de fichier complet de sammy.txt
, appuyez sur la touche TAB
à la place. Cela devrait compléter automatiquement le nom complet du fichier, de sorte que l'invite de votre terminal affiche ce qui suit :
cat sammy.txt
Maintenant, si vous appuyez sur ENTER
, le terminal devrait renvoyer le contenu du fichier à la ligne de commande.
Un autre raccourci consiste à appuyer sur la touche fléchée UP
, 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 UP
pour accéder rapidement à vos commandes précédentes.
Si vous avez besoin de répliquer toutes les commandes que vous avez faites dans votre terminal, vous pouvez aussi invoquer tout l'historique de cette session avec la bien nommée commande history
:
history
En fonction de votre niveau d'entraînement, vous devriez recevoir 30 lignes de commandes ou plus, en commençant par la sortie suivante :
Output 1 pwd 2 mkdir files 3 ls 4 ls -l ...
Vous familiariser avec ces raccourcis vous aidera à mieux maîtriser l'interface de ligne de commande.
Travailler avec des fichiers du Web
L'un des aspects les plus excitants du travail sur une interface de ligne de commande connectée à Internet est que vous avez accès à toutes les ressources sur le Web et que vous pouvez agir dessus de manière automatisée. Avec le terminal, vous pouvez également accéder directement aux serveurs cloud pour lesquels vous disposez d'informations d'identification, gérer et orchestrer l'infrastructure cloud, créer vos propres applications Web, etc. Pour l'instant, comme nous avons déjà appris à travailler avec des fichiers texte sur le terminal, nous verrons comment extraire un fichier texte du Web afin que la machine que nous utilisons ait ce fichier texte à notre disposition.
Revenons au répertoire files/
:
cd /home/sammy/files
À partir de là, nous utiliserons la commande curl
pour transférer des données du Web vers notre terminal interactif personnel sur le navigateur. La commande curl
signifie client URL (adresse Web).
Nous avons mis en ligne un court passage 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 illustré ci-dessous.
curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Une fois que nous avons appuyé sur ENTER
, nous recevrons le texte du passage 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 à notre disposition, nous n'avons fait que transférer 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
).
Afin d'enregistrer le texte dans un fichier, nous devrons exécuter curl
avec le drapeau -O
, ce qui nous permet de sortir le texte dans un fichier, en prenant le même nom que la télécommande fichier pour notre copie locale.
curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Vous recevrez un retour du 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 du fichier, vous pouvez le faire avec le drapeau -o
et passer le nom du nouveau fichier comme argument (dans ce cas, jules.txt
).
curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt
Nous pouvons maintenant travailler sur ce fichier exactement comme nous le ferions sur n'importe quel autre fichier texte. Essayez d'utiliser cat
ou de le modifier avec nano
.
Dans la section suivante, nous allons nettoyer certains fichiers et quitter notre terminal.
Supprimer des fichiers et terminer des commandes
Comme avec tout 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 DigitalOcean University ont obtenu leur diplôme et que nous devons nettoyer leurs fichiers et le dossier correspondant. Assurez-vous d'être dans le répertoire students/
:
cd /home/sammy/files/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 avez supprimé un fichier, il ne peut pas être annulé. Assurez-vous de vouloir supprimer le fichier avant d'appuyer sur ENTER
.
rm sammy.txt
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
Bien que nous sachions maintenant que nous pouvons supprimer des fichiers individuels avec rm
, ce n'est pas très rapide si nous voulons supprimer l'intégralité du répertoire students/
et tout son contenu.
La commande utilisée pour supprimer les répertoires s'appelle rmdir
, qui signifie remove directory. Passons au dossier parent de files
afin de pouvoir travailler avec le répertoire students/
à partir de là (nous ne pourrions pas supprimer un dossier dans lequel nous nous trouvons actuellement).
cd ..
À partir du répertoire utilisateur /home/sammy/
, nous pouvons exécuter rmdir
sur students
.
rmdir students
Cependant, cela ne fonctionne pas, car nous recevons les commentaires suivants :
Outputrmdir: failed to remove 'students': Directory not empty
La commande n'a pas fonctionné car rmdir
ne fonctionne que sur des répertoires vides et le répertoire students
contient toujours 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 contenant encore des fichiers, nous devrons essayer une autre option. En informatique, récursion est couramment utilisé pour l'auto-référence itérative ; nous pouvons donc appeler à la fois un élément principal et toutes ses dépendances. À l'aide de la commande rm
, nous pouvons supprimer de manière récursive le répertoire principal students
et toutes ses dépendances de contenu. Nous allons utiliser le drapeau -r
, qui signifie recursive, et passer le dossier students
comme argument.
rm -r students
À 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 de terminal, et en particulier 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.
exit
Sur notre borne interactive, nous recevrons la sortie suivante, confirmant que notre session est terminée.
OutputSession ended
Une fois cette session terminée, vous pouvez actualiser cette page, puis lancer un nouveau terminal pour essayer d'autres commandes ou créer un nouveau système de fichiers à explorer.
Conclusion
Toutes nos félicitations! Vous connaissez maintenant l'interface du terminal et vous êtes sur la bonne voie pour en faire plus avec les ordinateurs et les serveurs.
Pour poursuivre votre apprentissage, vous pouvez suivre un parcours guidé sur la configuration et la gestion de serveurs distants avec notre programme Introduction au Cloud Computing.