Exercice - Essayer Bash
Sur votre propre ordinateur Linux, vous pouvez exécuter des commandes Bash localement. Si vous avez accès à des serveurs Linux, vous pouvez y accéder à distance et y exécuter des commandes Bash. Mais personne ne souhaite conduire des expériences sur un système en production, surtout si c’est votre premier jour chez Northwind.
Dans cette unité, vous utilisez Azure Cloud Shell à droite comme terminal Linux. Azure Cloud Shell est un shell auquel vous pouvez accéder par le biais du portail Azure ou sur https://shell.azure.com. Vous n’avez rien à installer sur votre PC ou ordinateur portable pour l’utiliser.
Se familiariser avec Cloud Shell
Commençons par explorer Cloud Shell à l’aide des commandes Bash que nous avons apprises.
Utilisez la commande
ls
pour lister tous les fichiers et sous-répertoires du répertoire actif :ls
La sortie doit ressembler à ceci :
yourname@Azure:~$ ls clouddrive
clouddrive est un sous-répertoire de votre répertoire actif. Il s’agit d’un partage de fichiers monté qui persiste si vous utilisez Cloud Shell sur votre propre compte. Pour l’instant, vous l’utilisez sur le bac à sable Microsoft Learn.
Mais attendez, quel est le répertoire actif ? Utilisons la commande
pwd
pour le savoir.pwd
signifie « print working directory ». Cette commande imprime le chemin d’accès au répertoire dans lequel vous vous trouvez.pwd
La sortie doit ressembler à ceci :
yourname@Azure:~$ pwd /home/yourname
Cette sortie signifie que vous vous trouvez dans un répertoire appelé yourname dans un répertoire appelé home, à la racine du système de fichiers Linux.
Apparemment, notre répertoire actif ne contient pas grand-chose. Pour vérifier cela, affichons tous les fichiers et répertoires masqués à l’aide d’un indicateur Bash.
ls -a
Cette sortie nous montre que le répertoire contient beaucoup plus de choses que prévu.
yourname@Azure:~$ ls -a . .. .azure .bash_history .bash_logout .bashrc clouddrive .profile .tmux.conf .viminfo
À quoi correspondent tous ces fichiers et sous-répertoires ? Certains sont des fichiers en arrière-plan nécessaires au fonctionnement de Cloud Shell. Examinons un peu le reste.
.
fait référence à votre répertoire actif, et..
à votre répertoire parent. Où que vous soyez, si vous imprimez tous les fichiers et répertoires masqués, vous voyez.
et..
..bash_history
est un fichier Bash spécial qui stocke toutes les commandes que vous entrez dans le shell. Bash mémorise votre historique de commandes, ce qui, comme nous le verrons plus tard, est utile..bash_logout
est un autre fichier Bash spécial qui est lu et exécuté à chaque fois qu’un shell de connexion existe. Les superutilisateurs Linux peuvent le modifier pour personnaliser votre environnement..bashrc
est un fichier de configuration Bash important qui s’exécute chaque fois que vous démarrez un nouveau shell. Si vous décidez d’ouvrir ce fichier pour l’examiner, réfléchissez bien avant d’apporter des modifications car elles peuvent avoir des conséquences inattendues.
Rappeler les commandes de l’historique et de l’autocomplétion
Quand vous entrez des commandes compliquées comme celle-ci, il est facile de faire une erreur :
ls -a .azure/commands/202?*.log
Heureusement, Bash propose des fonctionnalités pour vous aider.
Rappel des commandes précédentes
Essayez d’entrer cette commande avec une faute de frappe (
203?
au lieu de202?
) :ls -a .azure/commands/203?*.log
Cette sortie doit s’afficher pour vous informer qu’aucun fichier ne correspond à ce modèle :
ls: cannot access '.azure/commands/203?*.log': No such file or directory
Au lieu d’entrer à nouveau toute la commande pour corriger votre erreur, vous pouvez rappeler les commandes entrées précédemment à l’aide des touches Flèche haut et Flèche bas. Essayez d’utiliser la touche Flèche haut pour rappeler votre commande incorrecte. Utilisez ensuite la touche Flèche gauche pour corriger la commande en remplaçant le
3
final par2
. Sélectionnez à nouveau Entrée pour envoyer la commande corrigée.L’utilisation de la touche Flèche haut à plusieurs reprises sur une ligne permet de reculer de plusieurs commandes. Utilisez la touche Flèche bas pour passer à des commandes plus récentes.
Vous devriez maintenant voir une sortie semblable à la suivante. Elle vous informe que votre commande a bien fonctionné pour lister les fichiers correspondant au modèle donné.
.azure/commands/2020-01-29.21-56-35.login.103.log .azure/commands/2020-01-29.21-56-38.account_set.112.log
Autocomplétion
Supposons que vous souhaitiez lire le contenu de l’un des fichiers que vous venez de trouver. Vous pouvez utiliser la commande cat
(abréviation de « catenate ») pour afficher le contenu d’un fichier à l’écran.
Pour utiliser cette commande, vous pouvez utiliser le nom de fichier complet, par exemple :
cat .azure/commands/2020-01-29.21-56-35.login.103.log
Mais cela risque d’être long et d’introduire des erreurs. Au lieu de cela, utilisez la fonctionnalité d’autocomplétion de Bash. Certes rudimentaire, elle peut faire le plus gros du travail pour vous. Essayez de taper :
cat .a
Sélectionnez ensuite la touche Tab. Que se passe-t-il ?
Le reste du mot « azure/ » doit apparaître dans votre commande :
cat .azure/
Continuez à taper le début des mots et à sélectionner Tab pour utiliser l’autocomplétion. Gardez à l’esprit qu’en cas d’ambiguïté, Bash ne remplira rien. Vous pouvez sélectionner Tabulation à deux reprises pour que Bash imprime tous les fichiers et répertoires d’un chemin donné qui correspondent aux lettres que vous avez déjà tapées.
Jouez jusqu'à ce que vous obteniez un vrai fichier .log dans le répertoire de commandes. Sélectionnez ensuite Entrée pour utiliser la commande
cat
et afficher son contenu sur l’écran. Voici à quoi cela doit ressembler :CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:35,426 | INFO | az_command_data_logger | command args: login --identity CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:37,604 | INFO | az_command_data_logger | exit code: 0
Gardez à l’esprit que si vous avez tapé une lettre incorrecte, Bash ne sera pas en mesure de deviner correctement la lettre que vous vouliez taper.
Utilisez man
.
Nous venons d’utiliser la commande cat
, mais vous ne savez pas encore grand-chose sur elle. Utilisez man
pour afficher plus d’informations sur la commande cat
.
Entrez la commande suivante pour en savoir plus sur la nature de
cat
et comment l’utiliser :man cat
Oui, vous avez entré « man cat » dans votre shell. Les commandes Bash peuvent être à la fois énigmatiques et amusantes !
La sortie doit ressembler à ceci :
CAT(1) User Commands CAT(1) NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION]... [FILE]... DESCRIPTION Concatenate FILE(s) to standard output. With no FILE, or when FILE is -, read standard input. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE ...
Utilisez les flèches haut et bas pour faire défiler la page man, puis entrez
q
pour quitter.
Changer de répertoire
Utilisons une autre commande Bash de base : cd
.
Dans le shell, vous êtes toujours dans un répertoire (tout comme un dossier sur votre PC ou Mac). Pour changer de répertoire, utilisez la commande cd
(« change directory »).
C’est simple, mais entraînons-nous à nous en servir.
Premièrement, entrez cette commande pour vérifier que vous êtes bien au bon endroit :
cd ~
Cette commande vous fait revenir à votre répertoire de base spécial dans le shell, si vous n’y étiez pas déjà.
Utilisez la commande
pwd
une fois de plus pour vérifier :pwd
La sortie doit ressembler à ceci :
/home/yourname
~
est un autre caractère spécial dans Bash qui fait référence à ce répertoire de base. Vous pouvez utiliser~
pour faire référence à l’emplacement /home/yourname où que vous soyez dans le shell.Passons au répertoire qui contient les fichiers journaux (où nous étions précédemment) :
cd .azure/commands/
Vous pouvez soit entrer la commande complète vous-même, soit sélectionner Tab pour utiliser l’autocomplétion.
La ligne où vous entrez des commandes est désormais différente puisqu’elle vous indique où vous vous trouvez dans le shell :
yourname@Azure:~/.azure/commands$
Essayez d’utiliser la syntaxe
..
spéciale pour monter d’un répertoire :cd ..
Vous devez maintenant être un niveau plus haut dans la structure de répertoires, et votre ligne de commande doit ressembler à ceci :
yourname@Azure:~/.azure$
Bon travail ! Vous venez de faire vos premiers pas dans Bash. Poursuivons l’apprentissage.