Supports de ligne de commande pour les élèves

La ligne de commande permet de contrôler un ordinateur sans IUG. Dans ce module, nous allons découvrir les commandes de base pour interagir avec notre ordinateur.

Points clés à retenir

  • Les élèves se déplacent sur leur ordinateur à l'aide de commandes.
  • Les élèves vont créer, déplacer, copier et supprimer des fichiers et des dossiers.

Qu'est-ce que la ligne de commande ?

La plupart des utilisateurs utilisent généralement l'interface utilisateur graphique (IUG) pour interagir avec l'ordinateur. Les IUG s'appuient généralement sur une souris ou un pavé tactile pour manipuler des fenêtres avec des icônes, des boutons, des barres de défilement, etc.

La ligne de commande est une autre vue de l'ordinateur. L'interface système, parfois appelée "interface", "Terminal" ou "interface" ou "interface" de texte, est la ligne de commande suivante:

  • Moyen d'interagir avec un programme informatique dans lequel l'utilisateur saisit des commandes, par exemple:
open README.txt
  • Un moyen de naviguer et de faire fonctionner votre ordinateur sans souris.
  • Une façon non graphique de créer, lire, mettre à jour, utiliser et supprimer des fichiers et des répertoires. Exemples :
mv README.txt readme.txt

L'IUG et la ligne de commande ont le même aspect. Il existe différentes manières d'interagir avec l'ordinateur.

Quand utiliser la ligne de commande ?

Les interfaces de ligne de commande sont souvent privilégiées par les développeurs:

  • Elles offrent un moyen plus concis de contrôler un programme ou un système d'exploitation. Pourquoi ? Tout se passe dans la même fenêtre, et, en pratique, cela représente moins d'efforts que de rechercher et de manipuler des objets avec une souris.
  • Ils proposent facilement des options permettant de contrôler une commande. Pourquoi ? Les menus des IUG permettent très peu d'options. Dans la ligne de commande, vous pouvez utiliser des centaines de commandes pour effectuer de nombreuses opérations. Par exemple, quelques caractères peuvent être ajoutés.
  • ls fichiers de liste de base
  • ls -a Répertorier tous les fichiers, y compris ceux qui sont normalement masqués
  • ls -l Longue liste contenant des informations sur chaque fichier
  • ls -R Récursif : répertoriez le contenu des répertoires.
  • ls -la : liste longue de tous les fichiers
  • Ils facilitent la gestion de nombreux fichiers à la fois, de manière complexe.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
  • Ils permettent de programmer le système d'exploitation (programmes shell). Par exemple, l'exemple ci-dessus est un programme shell très simple conçu pour modifier les images dont le nom de fichier se termine par .png.

Ligne de commande en action

Composantes de la commande d'une ligne de commande

Toutes les commandes comportent trois parties:

  • La commande (ou l'utilitaire) est toujours la première.
  • Les options sont facultatives selon l'utilitaire que vous utilisez. Les options commencent toujours par un signe - (moins).
  • Les arguments sont les éléments permettant à la commande d'agir ou les informations nécessaires. Souvent, les noms de fichiers.

Trames

Contexte et but

La ligne de commande permet de contrôler un ordinateur sans souris ni IUG (interface utilisateur graphique). Avant de commencer à créer des machines avec des icônes et des dossiers, le seul moyen d'interagir avec votre ordinateur était de cliquer sur la ligne de commande.

En tant que développeur, nous utilisons la ligne de commande, car elle est beaucoup plus rapide et puissante que l'IUG, sans perdre de temps à cliquer sur les différentes icônes. Grâce à la ligne de commande, vous pouvez effectuer quasiment toutes les interactions de votre ordinateur.

Le terminal est beaucoup plus simple à utiliser que l'IUG, car il permet de se connecter à distance à un ordinateur via un lien réseau. Les développeurs s'en servent très souvent, par exemple, lorsqu'ils voyagent.

Au cours de cette leçon, nous allons apprendre les commandes de base permettant d'interagir avec notre ordinateur en créant des fichiers et des répertoires, en déplaçant des dossiers, et en changeant le contenu d'un dossier.

Objectifs de la formation

Les élèves pourront :

  • Utiliser le Terminal pour parcourir les fichiers et les dossiers
  • Répertorier le contenu d'un dossier
  • Créer des fichiers et des dossiers à l'aide de la ligne de commande
  • Déplacer des fichiers et des dossiers
  • Copier des fichiers et des dossiers
  • Supprimer des fichiers et des dossiers

Premiers pas

Accéder au terminal

Cadrage et objectif de section

Le terminal fournit une interface de ligne de commande (CLI) au système d'exploitation. Vous pouvez ainsi donner à votre ordinateur des instructions écrites directement.

Pour cela, nous devons lancer votre terminal en fonction du système que vous utilisez.

Au lancement du terminal, il commence dans le répertoire d'accueil de votre ordinateur (quel que soit votre nom). Votre répertoire d'accueil est indiqué par le tilde ~.

Pour décrire notre monde à l'intérieur du Terminal, les répertoires sont semblables aux dossiers (parfois, nous les appelons simplement répertoires).

Changement d'annuaire

Cadrage et objectif de section

Pour parler à notre ordinateur dans le terminal et lui dire ce que nous voulons faire, nous devons parler une langue courante. La ligne de commande comprend les commandes écrites dans le script de script bash. Les commandes sont des acronymes ou des abréviations de mots anglais.

Lorsque vous naviguez sur votre terminal, il est important de savoir où vous êtes (ce qui se traduit directement dans la vie réelle). Si vous souhaitez vous rendre quelque part, vous devez d'abord connaître votre position actuelle.

# See your current location - abbreviation for 'print working directory'
pwd

Lister les fichiers et répertoires disponibles

Votre répertoire de travail contient probablement plusieurs fichiers auxquels vous pouvez accéder. Normalement, nous nous appuyons sur des indicateurs visuels, comme les icônes, pour indiquer les éléments disponibles, mais il serait difficile de parcourir notre ordinateur si nous devions simplement identifier l'emplacement des fichiers et des dossiers. Dans la ligne de commande, nous allons utiliser une commande spécifique pour lister les éléments auxquels nous pouvons accéder depuis un répertoire de travail ou un emplacement donné.

Pour voir quels fichiers ou dossiers se trouvent dans notre répertoire actuel, utilisez la commande ls (abréviation de list) pour afficher la liste du contenu.

# See files and folders in current location - abbreviation for 'list'
ls

Changer de répertoire de travail

Si vous avez besoin d'accéder à un fichier ou à un répertoire qui ne figure pas dans la liste, nous vous conseillons de le modifier afin de pouvoir y accéder plus facilement.

La syntaxe permettant à la ligne de commande de vous déplacer vers un nouveau répertoire (également appelé dossier) est cd suivie (sur la même ligne) par le chemin d'accès au nouveau dossier.

Si vous accédez à un répertoire qui se trouve dans le répertoire dans lequel vous vous trouvez (c'est-à-dire un sous-dossier de votre répertoire de travail), utilisez la commande cd suivie du nom du dossier.

# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents

Vous pouvez également accéder à l'annuaire d'accueil ~.

# Add a `~/` to begin from the home directory.
cd ~/Downloads

Si vous avez changé de répertoire, mais que vous devez revenir au répertoire d'accueil, accédez directement à la page d'accueil avec ~ ou utilisez .. pour passer au niveau supérieur.

# Option 1: navigate directly to the home directory
cd ~

# Option 2: navigate back one level
cd ..

Notez que cd .. ne passe qu'à un niveau en arrière (si vous avez changé de répertoire à trois reprises jusqu'à trois niveaux), et que vous devez utiliser cd .. trois fois pour rentrer chez vous jusqu'au bout. Vous n'aurez besoin d'utiliser cd ~ qu'une seule fois.

Mini-défis

  • Utilisez ls pour afficher le contenu de votre répertoire actuel.
  • Revenez au répertoire d'accueil et utilisez ls pour afficher le contenu de votre dossier de base.
  • Choisissez le nom de l'un des dossiers qui se trouvent dans le répertoire d'accueil et accédez à ce nouveau dossier.
  • Utilisez la commande "list" pour voir l'intérieur.

Conseil: Saisie semi-automatique avec tab

Lorsque vous modifiez des répertoires avec la commande cd, une seule faute de frappe empêche la commande de s'exécuter correctement. Cependant, si vous utilisez la clé tab, la saisie semi-automatique indiquera le nom des répertoires disponibles dans votre répertoire actuel. Ainsi, au lieu de saisir cd Documents, il vous suffit de saisir cd Do, puis d'appuyer sur la touche tab. Le terminal complétera automatiquement la commande cd Documents/ (le champ / à la fin est facultatif, mais vous indique que la destination est un répertoire).

Non seulement la saisie semi-automatique vous fait gagner du temps lorsqu'elle est en cours d'exécution, mais elle vous fournit également des informations précieuses lorsqu'elle ne fonctionne pas. Si la saisie semi-automatique ne suffit pas, vous avez probablement rencontré l'un des trois problèmes les plus courants:

  1. Le répertoire vers lequel vous souhaitez accéder n'est pas accessible à partir de votre répertoire de travail actuel.
  2. Deux annuaires portent des noms similaires (comme Documents et Downloads) et vous n'avez pas fourni suffisamment d'informations pour permettre à la saisie semi-automatique de savoir laquelle vous voulez. Appuyez de nouveau sur tab pour afficher la liste des répertoires qui peuvent correspondre à ce que vous avez saisi. Ensuite, saisissez un peu plus (suffisamment pour qu'il n'y ait qu'une seule correspondance), puis appuyez de nouveau sur tab.
  3. Vous avez déjà ajouté une faute de frappe dans la première moitié du mot.

Familiarisez-vous avec la touche de saisie semi-automatique plus rapidement. Plus vous aurez de chances de gérer des situations où vos commandes ne fonctionnent pas correctement.

Répertoires parents et enfants

Les répertoires et les fichiers peuvent avoir des relations enfant et parent. Si directory_b se trouve dans directory_a, directory_b est désigné comme enfant de directory_a. directory_a est ensuite connu sous le nom de parent de directory_b. Si un troisième élément, my_file, se trouve dans un directory_b, il est considéré comme un enfant de directory_b et un petit-enfant de directory_a.

Ces relations sont souvent représentées sur des forums accompagnés d'un diagramme textuel, comme suit:

directory_a/
  directory_b/
    my_file

Notez que les noms de répertoire se terminent par /, mais pas les noms de fichiers. Cette organisation hiérarchique est généralement appelée arborescence d'un système de fichiers.

Frères et sœurs

S'il existe plusieurs fichiers ou dossiers au même niveau, ils sont appelés frères. Par exemple, si file_b et file_c se trouvent dans directory_a, il s'agit de sœurs.

Ce diagramme textuel se présente comme suit:

directory_a/
  file_b
  file_c

Notez que, comme file_b et file_c sont frère et sœur, ils sont en retrait de même montant.

Chemins des fichiers

Voici un diagramme de texte plus complexe qui présente à la fois des relations parent-enfant et des relations sœurs.

north_america/
  united_states/
    new_york/
      new_york_city/
        manhattan
        queens
        staten_island
        bronx
        brooklyn
    california/
      mountain_view
      los_angeles
    illinois/
      chicago
  mexico/
    mexico_city

Dans cet exemple, new_york_city/ est un nom de répertoire, mais il possède également un chemin d'accès: ~/north_america/united_states/new_york/new_york_city/.

Pour passer au répertoire par new_york_city/,, vous pouvez parcourir les étapes à l'aide de noms ou accéder à l'intégralité de la commande à l'aide du chemin d'accès.

# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/

# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/

Résumé des commandes de navigation

# See your current location - abbreviation for 'print working directory'
pwd

# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads

# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory

# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..

# Will take you back home
cd

Mini-défis

  • Utilisez pwd pour connaître le dossier dans lequel vous vous trouvez.
  • Changez de répertoire et confirmez votre nouvel emplacement.
  • Réessayez et accédez à un autre dossier. Utilisez les nouvelles commandes pour afficher votre emplacement et les fichiers dans ce répertoire.

Créer des fichiers et des répertoires

Cadrage et objectif de section

En tant que développeur, nous allons devoir créer des fichiers avec du code. Pour organiser ces fichiers, nous devons créer des dossiers et des répertoires dans lesquels nous pouvons stocker nos fichiers.

Avant de créer vos fichiers et dossiers, vérifiez votre emplacement dans le terminal.

# See your current location.
pwd

Pour créer un fichier, utilisez la commande touch suivie du nom du fichier.

# `touch` creates a new file.
touch style.css

Lors de la création de fichiers, ajoutez une extension de fichier pour spécifier le type. Exemples de types de fichiers:

  • .js en tant que fichier JavaScript
  • .html (créer un fichier HTML)
  • .css crée un fichier CSS
  • .md crée un fichier Markdown

Les noms de fichiers ne doivent pas inclure d'espaces.

# make a file - this will create a file in the current folder
touch my_text_file.txt

# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css

Créer plusieurs fichiers

Vous pouvez créer plusieurs fichiers à la fois en incluant des espaces entre chacun d'entre eux.

# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

Créer des annuaires

Pour créer un répertoire/dossier, utilisez la commande mkdir , l'abréviation de "make directory'" suivie du nom du dossier.

# make a folder - this will create a directory in the current folder
mkdir my_new_folder

# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder

Créer plusieurs annuaires

Vous pouvez créer plusieurs dossiers à la fois en incluant des espaces entre chacun d'entre eux.

# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three

Mini-défis

  • Créer un fichier.
  • Créez plusieurs fichiers en une seule commande.
  • Créez un répertoire.
  • Créez d'autres répertoires. Pour cela, utilisez une seule commande.
  • En utilisant ce que vous savez de la navigation dans les répertoires, et de la création de fichiers et de dossiers, créez un dossier "family_tree&#39" sur votre bureau à l'aide de fichiers et de dossiers.

Déménagement et copie

Déplacer des fichiers et des répertoires

Cadrage et objectif de section

Il est possible de déplacer un fichier ou un dossier à partir de la ligne de commande, mais nous devons toujours spécifier trois éléments:

  1. Nous utilisons la commande mv, qui est l'abréviation de move.
  2. Suivez les instructions de migration portant le nom du fichier ou du dossier que vous souhaitez déplacer.
  3. Suivez le nom du fichier jusqu'à l'emplacement de destination.

Par exemple, si votre structure de fichiers est la suivante:

my_child_folder/
my_parent_folder/

Vous voyez qu'elle est organisée comme elle devrait l'être : ils sont frère et sœur, quand ils doivent être parents et enfants. Utilisez cette commande :

# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/

La structure obtenue ressemblera à ceci.

my_parent_folder/
  my_child_folder/

Voici d'autres variantes de la commande mv:

# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder

Avertissement : La commande mv permet également de renommer un fichier à l'aide de la syntaxe mv old_name new_name. Cela signifie que si vous déplacez un fichier vers un répertoire qui n'existe pas ou si vous ignorez la destination, le fichier lui-même sera renommé au lieu d'être déplacé.

Mini-défis

  1. Créez cinq fichiers texte (.txt).
  2. Créez un répertoire.
  3. Déplacez les cinq fichiers que vous avez créés dans le dossier.
  4. Créez un dossier et déplacez-le dans un autre dossier.

Copie de fichiers et de répertoires

Cadrage et objectif de section

Lors de la création de nos applications Web, nous pouvons souhaiter dupliquer un fichier (si nous créons deux pages Web similaires, nous ne voulons pas reprendre à partir de zéro) et la syntaxe de la commande cp (copie) est très semblable à celle de mv.

Copier un fichier

La commande "copy" se compose de trois parties:

  1. La commande cp : abréviation de copy
  2. Nom du fichier à copier.
  3. Nom de la copie (si vous restez dans le même dossier), ou de l'emplacement et du nom (si vous déplacez dans un autre dossier).
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt

Si vous souhaitez que la copie conserve le même nom que l'original, vous pouvez spécifier l'emplacement de la copie sans nom de fichier.

# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/

De nombreux fichiers portant le même nom peuvent prêter à confusion. Par conséquent, n'utilisez cette méthode que si vous êtes certain d'avoir celle dont vous avez besoin.

Copier un répertoire

La copie d'un dossier ou d'un répertoire est un peu plus complexe, car vous souhaitez probablement copier non seulement le dossier, mais aussi tous les éléments qu'il contient.

  1. Commande cp -R : abréviation de copy recursive (copie récursive) : utilisez cette abréviation pour les dossiers vides et non vides.
  2. Le nom de la source (dossier ou fichier à déplacer)
  3. Nom de la copie (si vous restez dans le même dossier), ou de l'emplacement et du nom (si vous déplacez dans un autre dossier).

Avertissement: Lorsque vous indiquez le nom de la copie, si le fichier ou le dossier n'a pas été créé précédemment, il est créé lorsque vous effectuez la copie. Si le fichier a été créé avant que vous exécutiez la commande de copie, ses données seront remplacées.

# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy

# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy

Remarque: Le composant -R de cp -R est appelé indicateur. Les options commencent toujours par un tiret et sont utilisées avec des commandes pour donner des instructions plus précises sur l'exécution de cette commande.

Mini-défis

  1. Créez un fichier appelé my_original.txt.
  2. Créez une copie de my_original.txt nommée dans un même dossier.
  3. Créez un répertoire.
  4. Créez une copie de ce répertoire en lui attribuant un nom différent.
  5. Créez une copie de votre fichier copié à l'étape 2, mais placez-le dans le répertoire copié à partir de l'étape 4.

Supprimer des fichiers et des dossiers

Cadrage et objectif de section

Il est possible de supprimer des fichiers et des dossiers à partir de la ligne de commande, mais cette opération est définitive.

Supprimer un fichier

Pour supprimer un fichier, nous pouvons utiliser la commande rm (abréviation de remove) suivie du nom du fichier.

# delete a file in the working directory
rm unwanted_file.txt

# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt

Supprimer un répertoire vide

Pour supprimer un répertoire vidé, nous pouvons utiliser la commande rmdir- - pour supprimer le répertoire - suivi du nom du dossier.

# delete an empty folder
rmdir empty_directory

# delete an empty folder
rmdir ~/Documents/my_files/empty_directory

Supprimer un répertoire qui n'est pas vide

Pour supprimer un dossier qui n'est pas vide, nous devons placer un indicateur -R (abréviation de recursive) après la commande rm, qui indique à l'ordinateur de supprimer le contenu à l'intérieur du dossier. En guise de raccourci, certains développeurs utilisent l'indicateur -Rf qui supprime forcément tous les éléments. Sinon, vous pouvez recevoir des invites concernant la suppression de certains fichiers ou dossiers enfants.

# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty

# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty

Avertissement : L'utilisation de la commande rm n'est pas semblable à la corbeille ni à la section supprimée de vos e-mails, car il est difficile de récupérer ces fichiers. Soyez TRÈS ATTENTION lorsque vous supprimez des fichiers de cette façon.

Mini-défis

  1. Créez quatre fichiers.
  2. Supprimez deux des fichiers.
  3. Créez un dossier.
  4. Créez un autre dossier et créez un fichier dans ce dossier.
  5. Supprimez les deux annuaires.

Le code de cet atelier se trouve dans le dossier suivant, dans le dépôt d'élèves que vous avez téléchargé depuis GitHub : command-line/labs/around-the-world

Expérience

Votre semestre à l'étranger approche et vous préparez votre voyage européen.

Après trois mois de vivre dans un avenir proche, vous souhaitez vous assurer de profiter pleinement de chaque week-end.

Heureusement, vous ne repartez pas de zéro et vos amis vous ont fourni certaines de leurs activités préférées de leur semestre. Malheureusement, certains fichiers ont été mélangés...

Ne vous inquiétez pas, la magie de la ligne de commande vous permet de les faire corriger en un rien de temps !

Tâche

Vérifiez que chaque ville se trouve dans le bon pays et que chaque dossier comporte les bons monuments. Attention : vous pourriez vous retrouver à Amsterdam pour rechercher la tour Eiffel !

Si vous avez l'impression de REALTER confiance en vous, masquez votre IUG et relevez ce défi directement depuis la ligne de commande. Vous devez rester dans le dossier général à travers le monde pendant que vous effectuez toutes ces opérations. Cela signifie que vous devez utiliser des chemins d'accès absolants pour faire référence à des dossiers et des fichiers.

Une fois que vous êtes au bon endroit, c'est à vous de jouer le contrôle de vos prochains mois. Réfléchissez à des villes, des pays et des monuments que vous devez consulter, puis ajoutez-les à votre arborescence de fichiers.

Félicitations ! Vous avez officiellement appris à parler ordinateur. Vous voulez aller plus loin ? Extensions de conversation...

Extensions

  1. Mixez à nouveau tous vos fichiers et créez une ville de votre choix. Réorganisez les fichiers tout en séjournant dans cette ville.
  2. Essayez l'un des jeux de ligne de commande amusants répertoriés ci-dessous
    Terminus Game
    Advanced Game (préparez-vous à Google)
  3. Vous êtes fan de Star Wars ? Essayez d'exécuter telnet towel.blinkenlights.nl dans votre ligne de commande, puis d'appuyer sur Entrée. Notez que dans la version récente de macOS, la commande telnet n'est plus installée par défaut. Dans ce cas, la commande nc towel.blinkenlights.nl 23 peut être utilisée à la place.

Le code de cet atelier se trouve dans le dossier suivant, dans le dépôt d'élèves que vous avez téléchargé depuis GitHub: command-line/labs/bashing-away-repetition

Prêt à bloquer la répétition de votre utilisation quotidienne de la ligne de commande ? Super !

Expérience

Les programmeurs détestent les répétitions. En tant qu'informaticienne, notre travail consiste à faire notre travail le plus possible. L'écriture de scripts bash permet d'améliorer l'efficacité de l'utilisation de la ligne de commande.

Tout d'abord, qu'est-ce qu'un script bash ?

Excellente question. Heureusement, notre ami Ryan Chadwick, disponible sur cette page pour trouver des tutoriels sur la ligne de commande, peut répondre à votre question.

Un script Bash nous permet de définir une série d'actions que l'ordinateur pourra ensuite effectuer sans avoir à saisir les commandes nous-mêmes. Si une tâche spécifique est effectuée souvent ou est répété, un script peut être un outil utile.

Aucune répétition ? C'est ce que je parle.

Tutoriel

Tout d'abord, pour pouvoir exécuter votre script, vous devez autoriser votre ordinateur. Pour ce faire, exécutez la commande ci-dessous.

chmod 755 myScript.sh

Il est temps de rédiger votre premier programme. Accédez à votre fichier myScript.sh (vérifiez que vous pouvez ouvrir le fichier à partir de la ligne de commande). À la fin du fichier, ajoutez:

echo "Hello World"

Exécutez maintenant la commande suivante :

./myScript.sh

dans votre terminal. ** TA DA ** devrait voir « Hello World »; imprimé dans votre terminal.

célébration

Tout ce que vous écrivez dans votre script bash s'exécutera comme si vous l'aviez saisi dans votre terminal. Examinons un autre exemple avant de passer aux extensions. Tout d'abord, créez un fichier pour votre script. Vous pouvez lui donner le nom de votre choix, mais il doit porter l'extension .sh. Ensuite, veillez à autoriser votre script à s'exécuter en saisissant chmod 755, puis en saisissant le nom de votre script dans votre terminal et en appuyant sur Entrée. Chaque fois que vous lancez un nouveau script bash, veillez à suivre ces deux étapes.

Défi d'introduction

À présent, écrivons un script qui crée un dossier. Quelle commande permet de créer un dossier ? Si vous réfléchissez à un mot commençant par m et se terminant par kdir, vous êtes sur la bonne voie. Écrivez la commande qui créera votre nouveau dossier et nommez-le quelque chose de cool dans votre nouveau fichier .sh, puis exécutez-le dans votre terminal.

Si cela fonctionne, passez aux autres défis répertoriés ci-dessous. Si vous ne savez toujours pas comment faire, revenez dans l'atelier sur le monde et réfléchissez à la façon dont vous avez créé les dossiers "country" et "city".

N'hésitez pas à utiliser le tutoriel accessible via le lien ci-dessus. Préparez-vous à perfectionner vos compétences sur Google. Rédigez et exécutez des scripts pour les opérations suivantes:

Tâches principales

  1. Ajoutez au fichier que vous avez créé une commande permettant d'accéder au dossier que vous êtes en train de créer. (Quelle commande utilisons-nous pour modifier les répertoires ?)
  • Datez le nouveau nom du dossier. Par exemple, votre programme doit créer un dossier nommé "2017-12-07my_super_cool_folder".
  1. Imprimez votre répertoire actuel : " suivi de votre répertoire de travail, "Voici une liste de tous les éléments de ce répertoire : », suivi du contenu de votre répertoire actuel.
  2. Déterminez comment saisir une entrée dans votre script bash et créez un fichier basé sur cette chaîne d'entrée. Vous trouverez des exemples dans la section des variables du tutoriel disponible plus tôt dans l'atelier.
  3. Demandez son nom à l'utilisateur, puis imprimez-le. Bonjour, ajoutez-le ici"
  • Essayez de demander plus d'informations à votre utilisateur et de créer un message personnalisé pour lui.

CONTEXTE

La ligne de commande (ou terminal) permet d'interagir directement avec le système d'exploitation (OS) de l'ordinateur, comme le font les interfaces utilisateur graphiques (IUG), à l'exception des commandes textuelles, de la navigation à la création de fichiers, en passant par l'exécution de scripts. La ligne de commande sera utilisée pour ouvrir des fichiers et lancer l'environnement de développement lorsque vous utiliserez Google App Engine.

Ligne de commande en action

Accéder au terminal

Raccourci Mac:

  • Ouvrez Projecteur et appuyez sur Commande+Espace.
  • Saisissez Terminal dans Project Search.
# See your current location - abbreviation for 'print working directory'.
pwd

# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads

# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory

# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..

# Return home.
cd

# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```

#### File Path Shorthand `~`

The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.

This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.

### <a id="view"></a>Viewing the Contents of Folders

```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls

Créer des fichiers et des dossiers

Créer des fichiers

# Make a file - this will create a file in the current folder.
touch my_text_file.txt

# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css

# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

Création de dossiers

# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder

# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder

# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three

Déplacer des fichiers et des dossiers

Déplacer des fichiers

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist.  Read below for more details on renaming.

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder

Déplacer des dossiers

# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder

# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder

Déménagement en cours de modification

Gardez à l'esprit que mv est également la même commande que celle utilisée pour renommer les fichiers ou les dossiers.

# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt

Copie de fichiers et de dossiers

Copie de fichiers

# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt

Copie de dossiers

# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy

# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy

Supprimer des fichiers et des dossiers

Supprimer des fichiers

# Delete a file in the current working directory.
rm unwanted_file.txt

# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt

Supprimer des dossiers

# Delete an empty folder.
rmdir empty_directory

# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty

Conseils et astuces

  • Entraînez-vous à utiliser la ligne de commande, même si vous ne pensez pas en avoir besoin. Vous vous améliorerez au fil du temps.
  • La clé tab remplit automatiquement le nom du fichier ou du dossier (elle peut être sensible à la casse).
  • S'il ne reste qu'un seul fichier ou dossier correspondant, la saisie semi-automatique se fera automatiquement.
  • Si plusieurs fichiers ou dossiers correspondent, appuyez deux fois sur la touche de tabulation pour afficher la liste des correspondances restantes.
  • La flèche vers le haut / bas vous permet de naviguer dans l'historique de vos commandes pour ne pas avoir à les saisir à nouveau.
  • Utilisez la commande clear pour effacer la fenêtre de terminal. Cela vous permet de conserver tout votre travail précédent. Faites défiler l'écran vers le haut pour l'afficher.
  • Utilisez reset pour redémarrer le terminal. Ce dernier ne sera pas affiché à l'écran, mais pourra résoudre plusieurs problèmes si le terminal se comporte de manière imprévisible.
  • Appuyer sur option+arrow pour déplacer le curseur d'un mot

Récapitulatif des bonnes pratiques

  • Parcourez le terminal à l'aide de cd, cd .. ou cd <folder name>.
  • Affichez le contenu des dossiers à l'aide de ls.
  • Créez des fichiers en utilisant touch, et créez des dossiers avec mkdir.
  • Déplacez des fichiers et des dossiers avec mv <item to move> <destination>.
  • Copiez des fichiers et des dossiers à l'aide de cp <item to copy> <destination>.
  • Supprimer des fichiers et des dossiers avec rm <item to remove>.

Question 1

Quel outil utiliseriez-vous pour identifier votre répertoire de travail actuel ?

  1. pwd
  2. ls
  3. cd
  4. mkdir
  5. touch

Question 2

Comment feriez-vous pour déplacer deux niveaux depuis votre répertoire de travail actuel ?

  1. mv ~
  2. cd ../..
  3. mv up/up
  4. cd ^(2)

Question 3

Quelle commande utiliser pour renommer un fichier ?

  1. mv
  2. cd
  3. ls
  4. python
  5. rename

Question 4

Pourquoi la commande mv script.py affiche-t-elle une erreur ?

  1. Le nom de fichier "script.py'" n'est pas valide.
  2. Parce que la commande mv ne peut pas être suivie d'autres informations.
  3. Cette astuce n'engendrera pas d'erreur.
  4. Le déplacement d'un fichier nécessite au moins deux arguments : une cible et une destination.

Question 5

Que ferait la commande cd ~ ?

  1. Remplacez votre répertoire de travail par votre répertoire d'accueil.
  2. Répétez la commande précédente.
  3. À l'heure actuelle, déterminez la commande la plus utile à l'aide d'un algorithme.
  4. Générez une erreur.

Question 6

Pour quelle raison N'utilisez-vous pas la touche de saisie semi-automatique pour saisir les noms de fichiers ?

  1. Parce qu'elles vous font gagner du temps.
  2. Car cela permet d'éliminer les erreurs d'orthographe.
  3. En effet, ils nécessitent moins de puissance de traitement.

Question 7

Si un nouveau développeur tente de créer un fichier appelé"my script.py", pourquoi la commande"touch my script.py"ne fonctionnera-t-elle pas ?

  1. Parce que touch ne peut pas créer de fichiers.
  2. Parce que .py n'est pas une extension de fichier valide.
  3. Parce qu'il créera deux fichiers, le premier intitulé "my", et le second intitulé "script.py".
  4. Parce qu'il est impossible de créer des fichiers à partir de la ligne de commande.

Question 1

Quel outil utiliseriez-vous pour identifier votre répertoire de travail actuel ?

pwd

Question 2

Comment feriez-vous pour déplacer deux niveaux depuis votre répertoire de travail actuel ?

Avec cd ../.., vous passez au niveau supérieur (chaque .. représente un niveau au-dessus).

Question 3

Quelle commande utiliser pour renommer un fichier ?

mv permet de déplacer un fichier d'un emplacement à un autre. Vous pouvez également l'utiliser pour modifier le nom du fichier.

Question 4

Pourquoi la commande mv script.py affiche-t-elle une erreur ?

La commande mv nécessite deux arguments, un fichier source et un fichier de destination.

Question 5

Que ferait la commande cd ~ ?

Dans ce cas, votre répertoire de travail sera remplacé par votre répertoire d'accueil. Le caractère spécial "~" permet d'identifier le répertoire d'accueil de l'utilisateur actuel. Il peut également être utilisé en association avec un autre nom d'utilisateur: ~user2 pour pointer vers son dossier d'accueil.

Question 6

Pour quelle raison N'utilisez-vous pas la touche de saisie semi-automatique pour saisir les noms de fichiers ?

En effet, cela nécessite moins de puissance de traitement, ce qui n'est pas correct. La fonctionnalité de traitement de tab nécessite une quantité de puissance de traitement (nécessairement faible) pour analyser les dossiers à la recherche de la saisie semi-automatique, mais elle permet de gagner du temps et d'éviter les erreurs d'orthographe dans le processus.

Question 7

Si un nouveau développeur tente de créer un fichier appelé"my script.py", pourquoi la commande"touch my script.py"ne fonctionnera-t-elle pas ?

Deux fichiers sont créés au lieu d'un. La commande touch crée des fichiers. Les espaces terminaux sont des séparateurs, et non des caractères à inclure dans le nom du fichier. Il est préférable de les éviter complètement, mais si vous devez les utiliser, le nom du fichier doit être encadré par des guillemets:

touch "my script.py"

Question 1

Pour modifier des répertoires, utilisez la commande suivante:

  1. move
  2. mkdir
  3. pwd
  4. cd

Question 2

Quelle commande devez-vous exécuter si vous souhaitez accéder au dossier parent de votre répertoire de travail actuel ?

  1. cd up
  2. cd .
  3. cd ..
  4. cd ~

Question 3

Quelle commande permet de créer des fichiers ?

  1. touch
  2. mkdir
  3. create
  4. pwd

Question 4

Parmi les commandes suivantes, laquelle crée deux fichiers appelés index.html et style.css ?

  1. touch index.html, touch style.css
  2. touch index.html, style.css
  3. touch index.html style.css
  4. touch index.html + style.css

Question 5

Quelle commande utilisez-vous pour renommer un fichier ou un dossier ?

  1. rename
  2. move
  3. mv
  4. rm

Question 6

Quelle option les commandes rm et cp doivent-elles utiliser pour travailler sur les dossiers ?

  1. -f
  2. -r
  3. -x
  4. -d

Question 7

Pour déplacer projects vers ~/Documents et le renommer Projects, quelle commande doit rester vide ?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
  1. pwd
  2. cd projects
  3. mv ~ projects
  4. cd ~/Documents
  5. ls

Question 8

À quoi sert la commande suivante ?

rm -r projects

  1. Supprimer un fichier appelé projects
  2. Supprimer un dossier appelé projects
  3. Renommer un fichier nommé projects
  4. Rechercher le contenu de projects dans le répertoire actuel

Question 1

Pour modifier des répertoires, utilisez la commande suivante:

La commande terminal pour changer de répertoire est cd. La commande elle-même est une abréviation de "&directory".

Question 2

Quelle commande devez-vous exécuter si vous souhaitez accéder au dossier parent de votre répertoire de travail actuel ?

La commande permettant d'accéder au dossier parent est la suivante : cd ..

Question 3

Quelle commande permet de créer des fichiers ?

La commande permettant de créer des fichiers est touch

Question 4

Parmi les commandes suivantes, laquelle crée deux fichiers appelés index.html et style.css ?

La commande touch index.html style.css crée les deux fichiers. Aucune virgule n'est nécessaire et vous pouvez créer un nombre illimité de fichiers, séparés par une espace.

Question 5

Quelle commande utilisez-vous pour renommer un fichier ou un dossier ?

Bien qu'il soit utilisé pour signifier et déplacer des fichiers et des dossiers, mv peut également servir à renommer des fichiers et des dossiers.

Question 6

Quelle option les commandes rm et cp doivent-elles utiliser pour travailler sur les dossiers ?

Les commandes rm et cp nécessitent l'indicateur -r pour fonctionner sur les dossiers, car l'indicateur -r signifie &rective" et réexécute la commande pour tous les fichiers et dossiers qu'ils contiennent.

Question 7

Pour déplacer projects vers ~/Documents et le renommer Projects, quelle commande doit rester vide ?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects

Étant donné que nous commençons dans le répertoire d'accueil, nous devons exécuter cd ~/Documents pour obtenir la commande finale dans le bon répertoire.

Question 8

À quoi sert la commande suivante ?

rm -r projects

Cette commande supprime soit un fichier OU un dossier appelé projects , car elle est appelée avec l'indicateur -r ou récursif. Sans cet indicateur, la commande ne fonctionne que pour supprimer un fichier portant ce nom.