revision Antidote des chapitres 1 à 4
This commit is contained in:
parent
a3f7e35b26
commit
c840c3e2e4
4 changed files with 70 additions and 70 deletions
|
@ -2,54 +2,54 @@
|
|||
|
||||
## Utiliser le langage de ligne de commande Bash
|
||||
|
||||
Mon outil préféré pour scripter des tâches que j'ai à effectuer de façon récurrente est [Bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell). C'est un langage de script qui est principalement utilisé sur les systèmes d'exploitation GNU/Linux et macOS.
|
||||
Nous préférons Bash pour automatiser des tâches à effectuer de façon récurrente[](https://fr.wikipedia.org/wiki/Bourne-Again_shell). C'est un langage de script qui est principalement utilisé sur les systèmes d'exploitation GNU/Linux et macOS.
|
||||
|
||||
Il est aussi possible d'installer [MSYS2](https://www.msys2.org/) sur Windows pour obtenir accès à une multitude de logiciels créés initialement pour GNU/Linux, dont Bash.
|
||||
Il est aussi possible d'installer [MSYS2](https://www.msys2.org/) sur Windows. Cet outil donne accès à une multitude de logiciels créés initialement pour GNU/Linux, dont Bash.
|
||||
|
||||
Parmi les fonctionnalités les plus fréquemment utilisées du langage de script Bash, on retrouve:
|
||||
Voici des usages fréquents du langage de script Bash:
|
||||
|
||||
- Appeler des logiciels
|
||||
- La manipulation de fichiers
|
||||
- Les tubes (*pipes* en anglais),
|
||||
- Les boucles
|
||||
|
||||
Allons plus en détail sur chacune d'entre elles avec des exemples!
|
||||
Allons plus en détail sur chacune d'entre elles avec des exemples !
|
||||
|
||||
### L'appel de logiciels
|
||||
|
||||
Le langage de script Bash permet d'interagir avec tous les logiciels présents sur votre environnement de travail. Il permet surtout de créer des séquences de tâches exécutées les unes après les autres en suivant des conditions spécifiques. Bref, c'est un moyen de faire travailler notre ordinateur à notre place!
|
||||
Notre système est composé d'un ensemble de logiciels plus ou moins indépendants. Le langage Bash permet d'interagir avec eux. Il permet surtout de créer des séquences de tâches exécutées les unes après les autres en suivant des conditions spécifiques. Bref, c'est un moyen de faire travailler notre ordinateur pour nous !
|
||||
|
||||
Un exemple d'appel de logiciels que j'utilise souvent, c'est un court programme qui est écrit dans le langage Ruby qui permet de convertir récursivement en minuscules des noms des répertoires et des fichiers. Il est très utile pour s'assurer que les fichiers musicaux que je souhaite mettre sur mon téléphone Android soient bien reconnus.
|
||||
Un exemple d'appel de logiciels que nous utilisons souvent, c'est un court programme qui est écrit dans le langage Ruby qui permet de convertir récursivement en minuscules des noms des répertoires et des fichiers. Il est employé pour s'assurer que les fichiers musicaux à déplacer sur le téléphone Android sont bien reconnus.
|
||||
|
||||
### La manipulation de fichiers
|
||||
|
||||
Au lieu d'utiliser des fichiers complexes tels que ceux produits par les suites bureautiques tel que Microsoft Office, les environnements en ligne de commande préfèrent les fichiers simples au format texte. Ils excellent dans la manipulation de ceux-ci.
|
||||
Au lieu d'utiliser des fichiers binaires tels que ceux produits par les suites bureautiques tels que Microsoft Office, les environnements en ligne de commande préfèrent les fichiers simples au format texte. Ils excellent dans la manipulation de ceux-ci.
|
||||
|
||||
Souvent, les logiciels conçus pour la ligne de commande ont une interface très simple: ils reçoivent du texte, souvent par l'intermédiaire d'un fichier, et vont retourner du texte, souvent aussi dans un fichier. Dans les autres cas, le texte va voyager d'un programme à l'autre via les tubes.
|
||||
Souvent, les logiciels conçus pour la ligne de commande sont interfacés très simplement : ils reçoivent du texte, souvent d'un fichier, et retourneront du texte dans un fichier. Dans les autres cas, le texte voyage d'un programme à l'autre par les tubes ou parvenir à la sortie standard (ce qui est affiché à l'écran).
|
||||
|
||||
Un exemple fréquent de manipulation de fichiers est la concaténation de fichiers pdf. On veut fusionner plusieurs fichiers ensemble en un seul document. Le logiciel pdftk permet de faire cette opération.
|
||||
Un exemple fréquent de manipulation de fichiers: fusionner des fichiers PDF en un seul document. Le logiciel *pdftk* permet d'arriver à ce résultat.
|
||||
|
||||
### Les tubes
|
||||
|
||||
Les tubes permettent d'utiliser la sortie d'un programme directement dans l'entrée d'un autre programme, sans devoir écrire un fichier. Ils sont représentés par la barre verticale `|`.
|
||||
Les tubes permettent d'utiliser la sortie d'un programme directement dans l'entrée d'un autre programme, sans devoir écrire un fichier. Ils sont représentés par la barre verticale`|`.
|
||||
|
||||
Un exemple fréquent que j'utilise est pour effectuer la recherche de fichiers.
|
||||
Un exemple fréquent que nous utilisons est pour effectuer la recherche de fichiers.
|
||||
|
||||
Le logiciel le plus courant sur GNU/Linux qui permet de listes tous les fichiers d'un répertoire se nomme `find`. Sa tâche est de listes tous les fichiers qui répondent à certaines conditions, par exemple une extension précise comme `.pdf` pour les fichiers PDF.
|
||||
Le logiciel le plus courant sur GNU/Linux qui permet de lister tous les fichiers d'un répertoire se nomme`find`. Il peut répondre à certaines conditions, par exemple une extension de fichier précise comme *.pdf* pour les fichiers PDF.
|
||||
|
||||
Si je veux filtrer plus précisément cette liste de fichiers avec d'autres attributs, je vais utilise le logiciel `grep` qui filtre le texte qu'on lui fournis en entrée selon une **expression régulière**, qui est une syntaxe fréquemment utilisée dans la recherche de texte.
|
||||
Si nous voulons filtrer plus précisément cette liste de fichiers avec d'autres attributs, nous utiliserons le logiciel grep. Ce dernier utilise une **expression régulière**, une syntaxe fréquemment utilisée dans la recherche de texte.
|
||||
|
||||
### Les boucles
|
||||
|
||||
Les boucles sont des mécanismes simples et puissants qui permettent de répéter des tâches identiques ou très similaires pour de multiples entrées. Par exemple, si vous voulez produire un document quasi identique pour chaque jour de la semaine, vous pouvez le faire de cette façon. L'élément de code qui permet de répéter du code un nombre déterminé de fois est nommé `for`. Il existe aussi les boucles `while` et `until` qui sont basées sur une condition. Celles-ci sont utiles lorsque le nombre de répétitions n'est pas connu à l'avance.
|
||||
Les boucles permettent de contrôler l'exécution répérée d'une section de programme. Celles-ci permettent de répéter des tâches identiques ou très similaires pour de multiples valeurs en entrée. Par exemple, si nous voulons produire un document quasi identique pour chaque jour de la semaine, c'est possible. L'élément de code qui permet de répéter du code un nombre déterminé de fois est nommé *for*. Il existe aussi les boucles *while* et *until* qui sont basées sur une condition. Elles sont utilisées lorsque le nombre de répétitions n'est pas connu à l'avance.
|
||||
|
||||
### Un exemple pratique
|
||||
|
||||
Pour créer ce guide, j'utilise le langage [Markdown](https://www.markdownguide.org/) ainsi que le langage [\LaTeX](https://www.latex-project.org/), deux systèmes de conception de documents. Le premier est davantage utilisé pour le contenu texte et le code informatique, alors que le second est davantage pour la mise en page et les graphiques. Comme je dois souvent convertir les fichier Markdown en \LaTeX, puis en PDF pour avoir un aperçu du document, alors j'utilise Bash et les logiciel `pandoc` et `pdflatex`.
|
||||
Pour créer ce guide, nous utilisons le langage [Markdown](https://www.markdownguide.org/) ainsi que le langage [\LaTeX](https://www.latex-project.org/), deux systèmes de conception de documents. Le premier est davantage utilisé pour le contenu texte et le code informatique; le second, pour la mise en page et les graphiques. Comme nous devons souvent convertir les fichiers Markdown au format \LaTeX, puis en PDF pour avoir un aperçu du document, alors nous utilisons Bash et les logiciels *Pandoc* et *pdflatex*.
|
||||
|
||||
Ce guide comprend 3 sections composées chacunes de 4 chapitres. Pour chaque chapitre, j'ai un fichier Markdown distinct. Je veux convertir chacun d'eux vers le format \LaTeX. Je vais donc faire une boucle pour chacune des sections, puis à l'intérieur de celle-ci, faire un boucle pour chacun des chapitres. Mon code sera donc exécuté 12 fois.
|
||||
Ce guide comprend 3 sections composées chacune de 4 chapitres. Pour chaque chapitre, il y a un fichier Markdown distinct. Nous voulons convertir chacun d'eux vers le format \LaTeX. Nous allons donc itérer pour chacune des sections, puis à l'intérieur de celle-ci, pour chacun des chapitres. Notre code sera donc exécuté 12 fois.
|
||||
|
||||
Ensuite, j'utilise le logiciel `pdflatex` pour créer le document PDF que vous êtes actuellement en train de feuilleter.
|
||||
Ensuite, nous utilisons le logiciel *pdflatex* pour générer ce document PDF.
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
mkdir -p ./chapitres
|
||||
|
@ -65,4 +65,4 @@ done
|
|||
pdflatex --shell-escape -synctex=1 -interaction=nonstopmode main.tex
|
||||
```
|
||||
|
||||
Note: [Pandoc](https://pandoc.org/) est un logiciel vraiment utile pour les créateurs de contenu, il permet de tout faire en Markdown (qui est facile à maîtriser), puis de publier sous une multitude de formats. Je vous conseille fortement d'y jeter un oeil.
|
||||
Note : [Pandoc](https://pandoc.org/) est à considérer pour les créatrices et créateurs de contenu, il permet de produire ses textes avec la syntaxe Markdown, puis de publier sous une multitude de formats. Nous conseillons fortement d'y jeter un oeil.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue