Vue d'ensemble
La ligne de commande Linux est un interfaçage en texte avec votre ordinateur. Souvent appelé shell, terminal, console, invite ou autres noms, il peut donner l'impression d'être complexe et déroutant à utiliser. Pourtant, la possibilité de copier et coller des commandes à partir d'un site Web, combinée à la puissance et à la flexibilité offertes par la ligne de commande, signifie que son utilisation est essentielle.
Ce didacticiel vous apprendra un peu l'histoire de la ligne de commande, puis vous guidera à travers quelques exercices pratiques pour vous familiariser avec quelques commandes et concepts de base. Nous ne supposerons aucune connaissance préalable, mais à la fin, nous espérons que vous vous sentirez un peu plus à l'aise la prochaine fois que vous serez confronté à des instructions qui commencent par «Ouvrez un terminal».
Initialement écrit par peppertop .
Ce que vous apprendrez
Un peu d'histoire de la ligne de commande
Comment accéder à la ligne de commande depuis votre propre ordinateur
Comment effectuer une manipulation de fichier de base
Quelques autres commandes utiles
Comment enchaîner les commandes pour créer des outils plus puissants
La meilleure façon d'utiliser les pouvoirs d'administrateur
Ce dont vous aurez besoin
Un ordinateur exécutant Ubuntu ou une autre version de Linux
Chaque système Linux comprend une ligne de commande d'une sorte ou d'une autre. Ce tutoriel comprend quelques étapes spécifiques pour Ubuntu, mais la plupart du contenu devrait fonctionner quelle que soit votre distribution Linux.
Ouverture d'un terminal
Sur un système d'environnement bureau Ubuntu 18.04, vous pouvez trouver un lanceur pour le terminal en cliquant sur l'élément Activités en haut à gauche de l'écran, puis en tapant les premières lettres de «terminal», «commande», «invite» ou «shell». Oui, les développeurs ont configuré le lanceur avec tous les synonymes les plus courants, vous ne devriez donc avoir aucun problème à le trouver.
Les autres versions de Linux, ou d'autres versions d'Ubuntu, auront généralement un lanceur de terminal situé au même endroit que vos autres lanceurs d'applications. Il peut être caché dans un sous-menu ou vous devrez peut-être le rechercher dans votre lanceur, mais il est susceptible d'être là quelque part.
Si vous ne trouvez pas de lanceur, ou si vous voulez simplement un moyen plus rapide d'afficher le terminal, la plupart des systèmes Linux utilisent le même raccourci clavier par défaut pour le démarrer: Ctrl-Alt-T .
Quelle que soit la façon dont vous lancez votre terminal, vous devriez vous retrouver avec une fenêtre plutôt terne avec un peu de texte étrange en haut, un peu comme l'image ci-dessous. Selon votre système Linux, les couleurs peuvent ne pas être les mêmes, et le texte dira probablement quelque chose de différent, mais la disposition générale d'une fenêtre avec une grande zone de texte (presque vide) devrait être similaire.
Lançons notre première commande. Cliquez avec la souris dans la fenêtre pour vous assurer que c'est là que vont vos frappes, puis tapez la commande suivante, le tout en minuscules , avant d'appuyer sur la touche Entrée ou Retour pour l'exécuter.
pwd
Vous devriez voir un chemin de répertoire imprimé (probablement quelque chose comme /home/VOTRE_UTILISATEUR), puis plus haut, une autre copie de cet commande.
Lorsque vous exécutez une commande, toute sortie qu'elle produit sera généralement imprimée directement dans le terminal, une autre invite s'affichera une fois qu'elle sera terminée. Certaines commandes peuvent générer beaucoup de texte, d'autres fonctionneront en silence et ne sortiront rien du tout. Ne vous inquiétez pas si vous exécutez une commande et qu'une autre invite apparaît immédiatement, car cela signifie généralement que la commande a réussi. Si vous repensez à la lenteur des connexions réseau de nos terminaux des années 1970, ces premiers programmeurs ont décidé que si tout se passait bien, ils pourraient tout aussi bien économiser quelques précieux octets de transfert de données en ne disant rien du tout.
L'importance de la majuscule Faites très attention à la majuscule lorsque vous tapez dans la ligne de commande. Taper PWD au lieu de pwd produira une erreur, mais parfois le mauvais cas peut entraîner une commande semblant s'exécuter, mais ne faisant pas ce que vous attendiez. Nous examinerons le cas un peu plus mais, pour le moment, assurez-vous simplement de taper toutes les lignes suivantes dans exactement le cas affiché.
Un sens de l'orientation
Passons maintenant à la commande elle-même. pwd est une abréviation de « p rint w orking d irectory. Tout ce qu'il fait, c'est "imprimer"(afficher) le répertoire de travail actuel du shell. Mais qu'est-ce qu'un répertoire de travail ?
Un concept important à comprendre est que le shell a une notion d'emplacement par défaut dans lequel toutes les opérations sur les fichiers auront lieu. Ceci est son répertoire de travail. Si vous essayez de créer de nouveaux fichiers ou répertoires, d'afficher des fichiers existants ou même de les supprimer, le shell supposera que vous les recherchez dans le répertoire de travail actuel, sauf si vous prenez des mesures pour spécifier le contraire. Il est donc très important de garder une idée du répertoire dans lequel le shell se trouve à un moment donné, après tout, supprimer des fichiers du mauvais répertoire pourrait être désastreux. En cas de doute, la commande pwd vous dira exactement quel est votre répertoire de travail actuel.
Vous pouvez changer le répertoire de travail à l'aide de la commande cd, une abréviation pour
« c hange d irectory». Essayez de taper ce qui suit:
cd /
pwd
Notez que le séparateur de répertoire est une barre oblique («/»), pas la barre oblique inverse à laquelle vous pouvez être habitué à partir des systèmes Windows ou DOS
Maintenant, votre répertoire de travail est «/». Si vous venez d'un arrière-plan Windows, vous êtes probablement habitué à ce que chaque lecteur ait sa propre lettre, votre disque dur principal étant généralement «C:». Les systèmes de type Unix ne divisent pas les disques comme ça. Au lieu de cela, ils ont un seul système de fichiers unifié, et des lecteurs individuels peuvent être attachés («montés») à n'importe quel emplacement du système de fichiers qui a le plus de sens. Le répertoire «/», souvent appelé répertoire racine (root), est la base de ce système de fichiers unifié. À partir de là, tout le reste se ramifie pour former une arborescence de répertoires et de sous-répertoires.
Plusieurs roots Attention: bien que le répertoire «/» soit parfois appelé répertoire racine , le mot «root» a une autre signification. root est également le nom qui a été utilisé pour le superutilisateur depuis les débuts d'Unix. Le superutilisateur, comme son nom l'indique, a plus de pouvoirs qu'un utilisateur normal, il peut donc facilement faire des ravages avec une commande mal tapée. Nous examinerons plus en détail le compte super-utilisateur dans la section 7. Pour l'instant, il vous suffit de savoir que le mot «root» a plusieurs significations dans le monde Linux, le contexte est donc important.
Depuis le répertoire racine, la commande suivante vous déplacera dans le répertoire «home» (qui est un sous-répertoire immédiat de «/»):
cd home
pwd
Pour remonter au répertoire parent, dans ce cas de retour à «/», utilisez la syntaxe spéciale de deux points ( ..) lors du changement de répertoire (notez l'espace entre cd et .., contrairement à DOS, vous ne pouvez pas taper cd .. comme une seule commande):
cd ..
pwd
Taper cdseul est un raccourci rapide pour revenir à votre répertoire personnel:
cd
pwd
Vous pouvez également utiliser .. plusieurs fois si vous devez vous déplacer dans plusieurs niveaux de répertoires parents:
cd ../..
pwd
Chemins relatifs et absolus
La plupart des exemples que nous avons examinés jusqu'à présent utilisent des chemins relatifs. Autrement dit, l'endroit où vous vous retrouvez dépend de votre répertoire de travail actuel. Pensez à essayer de cd dans le dossier «etc». Si vous êtes déjà dans le répertoire racine, cela fonctionnera bien:
cd /
pwd
cd etc
pwd
Mais que faire si vous êtes dans votre répertoire personnel?
cd
pwd
cd etc
pwd
Vous verrez une erreur indiquant «Aucun fichier ou répertoire de ce type» avant même de pouvoir exécuter le dernier pwd. Changer de répertoire en spécifiant le nom du répertoire ou en utilisant ..aura des effets différents selon le point de départ. Le chemin n'a de sens que par rapport à votre répertoire de travail.
Mais nous avons vu deux commandes absolues . Quel que soit votre répertoire de travail actuel, ils auront le même effet. Le premier, vous exécutez cd seul pour accéder directement à votre répertoire personnel. La seconde, vous avez utilisé cd / pour basculer vers le répertoire racine. En fait, tout chemin qui commence par une barre oblique est un chemin absolu. Vous pouvez penser à cela comme disant «passez au répertoire racine, puis suivez l'itinéraire à partir de là». Cela nous donne un moyen beaucoup plus simple de basculer vers le répertoire etc, peu importe où nous nous trouvons actuellement dans le système de fichiers:
cd
pwd
cd /etc
pwd
Cela nous donne également un autre moyen de revenir à votre répertoire personnel, et même aux dossiers qu'il contient. Supposons que vous souhaitiez accéder directement à votre dossier «Bureau» de n'importe où sur le disque (notez le «D» en majuscule). Dans la commande suivante, vous devrez remplacer USERNAME par votre propre nom d'utilisateur, la commande whoami vous rappellera votre nom d'utilisateur, au cas où vous ne seriez pas sûr:
whoami
cd /home/USERNAME/Desktop
pwd
Il existe un autre raccourci pratique qui fonctionne comme un chemin absolu. Comme vous l'avez vu, utiliser «/» au début de votre chemin signifie «à partir du répertoire racine». L'utilisation du caractère tilde («~») au début de votre chemin signifie de la même manière «à partir de mon répertoire personnel».
cd ~
pwd
Avez-vous remarqué que le texte affiché avant l'invite de votre commande change lorsque vous vous déplacez dans le système de fichiers? Sur un système Ubuntu, il affiche votre nom d'utilisateur, le nom du réseau de votre ordinateur et le répertoire de travail actuel. Mais si vous vous trouvez quelque part dans votre répertoire personnel, il utilisera «~» comme abréviation.
Récapitulatif -> Promenons-nous un peu dans le système de fichiers et gardez un œil sur l'invite pendant que vous le faites:
cd
cd /
cd ~
cd /etc
cd /var/log
cd ..
cd
Vous devez bien vous ennuyer avec le simple fait de vous déplacer dans le système de fichiers maintenant, mais une bonne compréhension des chemins absolus et relatifs sera inestimable quand nous passerons à la création de nouveaux dossiers et fichiers!
4. Création de dossiers et de fichiers
Dans cette section, nous allons créer de vrais fichiers avec lesquels travailler. Pour éviter de piétiner accidentellement l'un de vos fichiers réels, nous allons commencer par créer un nouveau répertoire, bien éloigné de votre dossier personnel, qui servira d'environnement plus sûr dans lequel expérimenter:
mkdir /tmp/tutorial
cd /tmp/tutorial
Notez l'utilisation d'un chemin absolu, pour vous assurer que nous créons le répertoire du didacticiel dans / tmp . Sans la barre oblique au début, la commande mkdir essaierait de trouver un répertoire tmp dans le répertoire de travail actuel, puis essaierait de créer un répertoire de didacticiel à l'intérieur. S'il ne trouve pas de répertoire tmp , la commande échoue.
Au cas où vous ne l'auriez pas deviné, mkdir est l'abréviation de « m a k e dir ectory». Maintenant que nous sommes en sécurité dans notre zone de test (vérifiez avec pwd si vous n'êtes pas sûr), créons quelques sous-répertoires:
mkdir dir1 dir2 dir3
Il y a quelque chose d'un peu différent dans cette commande. Jusqu'à présent, nous n'avons vu que des commandes qui fonctionnent seules (cd, pwd) ou qui ont un seul élément par la suite (cd /, cd ~). Mais cette fois, nous avons ajouté trois choses après la commande mkdir. Ces éléments sont appelés paramètres ou arguments, et différentes commandes peuvent accepter différents nombres d'arguments. La commande mkdir attend au moins un argument, alors que la commande cd peut fonctionner avec zéro ou un, mais pas plus. Voyez ce qui se passe lorsque vous essayez de transmettre un nombre incorrect de paramètres à une commande:
mkdir
cd /etc ~
Revenez à nos nouveaux répertoires. La commande ci-dessus aura créé trois nouveaux sous-répertoires dans notre dossier. Jetons un coup d'œil à eux avec la commande ls( l i s t):
ls
Notez que mkdir créé tous les dossiers dans un répertoire. Il n'a pas créer dir3 à l' intérieur dir2 à l' intérieur dir1, ou de toute autre structure imbriquée. Mais parfois, il est pratique de pouvoir faire exactement cela, et avec mkdir il y a un moyen:
mkdir -p dir4/dir5/dir6
ls
Cette fois, vous verrez que seul dir4 a été ajouté à la liste, car dir5 se trouve à l'intérieur et dir6 est à l'intérieur. Plus tard, nous installerons un outil utile pour visualiser la structure, mais vous avez déjà suffisamment de connaissances pour le confirmer:
cd dir4
ls
cd dir5
ls
cd ../..
Le «-p» que nous avons utilisé est appelé une option ou un commutateur (dans ce cas, cela signifie «créer le dossier parent aussi »). Les options sont utilisées pour modifier la manière dont une commande fonctionne, permettant à une seule commande de se comporter de différentes manières. Malheureusement, en raison des bizarreries de l'histoire et de la nature humaine, les options peuvent prendre différentes formes dans différentes commandes. Vous les verrez souvent comme des caractères uniques précédés d'un trait d'union (comme dans ce cas), ou comme des mots plus longs précédés de deux tirets. La forme de caractère unique permet de combiner plusieurs options, bien que toutes les commandes ne l'acceptent pas. Et pour compliquer davantage les choses, certaines commandes n'identifient pas du tout clairement leurs options, que quelque chose soit une option ou non est dicté uniquement par l'ordre des arguments! Vous n'avez pas à vous soucier de toutes les possibilités, sachez simplement que des options existent et qu'elles peuvent prendre plusieurs formes différentes.
# Ne tapez pas ce qui suit, ceci est juste pour la démonstration
mkdir --parents --verbose dir4/dir5
mkdir -p --verbose dir4/dir5
mkdir -p -v dir4/dir5
mkdir -pv dir4/dir5
Maintenant, nous savons comment créer plusieurs répertoires simplement en les passant comme arguments séparés à la commande mkdir. Mais supposons que nous voulions créer un répertoire avec un espace dans le nom? Essayons:
mkdir another folder
ls
Vous n'avez probablement même pas besoin de taper celui-ci pour deviner ce qui se passerait: deux nouveaux dossiers, l'un appelé un autre et l'autre appelé un dossier . Si vous souhaitez utiliser des espaces dans les noms de répertoire ou de fichier, vous devez les échapper . Ne vous inquiétez pas, personne ne sort de prison; échapper est un terme informatique qui fait référence à l'utilisation de codes spéciaux pour indiquer à l'ordinateur de traiter des caractères particuliers différemment de la normale. Entrez les commandes suivantes pour essayer différentes manières de créer des dossiers avec des espaces dans le nom:
mkdir "folder 1"
mkdir 'folder 2'
mkdir folder\ 3
mkdir "folder 4" "folder 5"
mkdir -p "folder 6"/"folder 7"
ls
Bien que la ligne de commande puisse être utilisée pour travailler avec des fichiers et des dossiers avec des espaces dans leurs noms, la nécessité de les échapper avec des guillemets ou des barres obliques inverses rend les choses un peu plus difficiles. Vous pouvez souvent dire à une personne qui utilise beaucoup la ligne de commande uniquement à partir de son nom de fichier: elle aura tendance à s'en tenir aux lettres et aux chiffres et à utiliser des traits de soulignement («_») ou des tirets (»-») au lieu d'espaces.
Création de fichiers à l'aide de la redirection
Notre dossier de démonstration commence à avoir l'air plutôt plein de répertoires, mais manque quelque peu de fichiers. Remédions à cela en redirigeant la sortie d'une commande pour qu'au lieu d'être imprimée à l'écran, elle se retrouve dans un nouveau fichier. Tout d'abord, rappelez-vous ce que la commande ls affiche actuellement:
ls
Supposons que nous voulions capturer la sortie de cette commande sous forme de fichier texte que nous pouvons examiner ou manipuler davantage. Tout ce que nous devons faire est d'ajouter le caractère supérieur à («>») à la fin de notre ligne de commande, suivi du nom du fichier dans lequel écrire:
ls > output.txt
Cette fois, rien n'est imprimé à l'écran, car la sortie est redirigée vers notre fichier à la place. Si vous exécutez simplement ls seul, vous devriez voir que le fichier output.txt a été créé. Nous pouvons utiliser la commande cat pour regarder son contenu:
cat output.txt
D'accord, ce n'est donc pas exactement ce qui était affiché à l'écran auparavant, mais il contient toutes les mêmes données, et c'est dans un format plus utile pour un traitement ultérieur. Regardons une autre commande, echo:
echo "This is a test"
Oui, echo réimprime simplement ses arguments (d'où le nom). Mais combinez-le avec une redirection et vous avez un moyen de créer facilement de petits fichiers de test:
echo "This is a test" > test_1.txt
echo "This is a second test" > test_2.txt
echo "This is a third test" > test_3.txt
ls
Vous devez utiliser cat sur chacun de ces fichiers pour vérifier leur contenu. Mais cat c'est plus qu'un simple observateur de fichiers - son nom vient de «concatenate», qui signifie «relier ensemble». Si vous lui transmettez plus d'un nom de fichier, chacun d'eux sera affiché l'un après l'autre sous la forme d'un seul bloc de texte:
cat test_1.txt test_2.txt test_3.txt
Lorsque vous souhaitez passer plusieurs noms de fichiers à une seule commande, il existe des raccourcis utiles qui peuvent vous éviter beaucoup de saisie si les fichiers ont des noms similaires. Un point d'interrogation («?») peut être utilisé pour indiquer «n'importe quel caractère unique» dans le nom de fichier. Un astérisque («*») peut être utilisé pour indiquer «zéro ou plusieurs caractères». Ces derniers sont parfois appelés caractères «génériques». Quelques exemples peuvent aider, les commandes suivantes font toutes la même chose:
cat test_1.txt test_2.txt test_3.txt
cat test_?.txt
cat test_*
A suivre..
Comments