aboutsummaryrefslogtreecommitdiff
path: root/fichiers/01-ligne-de-commande.tex
diff options
context:
space:
mode:
Diffstat (limited to 'fichiers/01-ligne-de-commande.tex')
-rw-r--r--fichiers/01-ligne-de-commande.tex79
1 files changed, 44 insertions, 35 deletions
diff --git a/fichiers/01-ligne-de-commande.tex b/fichiers/01-ligne-de-commande.tex
index 0c2511d..66cfdce 100644
--- a/fichiers/01-ligne-de-commande.tex
+++ b/fichiers/01-ligne-de-commande.tex
@@ -10,7 +10,12 @@
10\setmintedinline{bgcolor=Lavender} 10\setmintedinline{bgcolor=Lavender}
11\usepackage{soul} 11\usepackage{soul}
12\makeindex[name=cmds, intoc, title={Liste des commandes et 12\makeindex[name=cmds, intoc, title={Liste des commandes et
13 instructions}] 13 instructions}, options={-s \jobname.ist}]
14
15\NewDocumentCommand{\commande}{s m O{}}{
16 \IfBooleanTF{#1}{\index[cmds]{#2@\texttt{#2}|#3textbf}}
17 {\index[cmds]{#2@\texttt{#2}#3}}
18}
14 19
15\begin{document} 20\begin{document}
16\maketitle 21\maketitle
@@ -50,10 +55,10 @@ Pour réaliser les mêmes opérations à la ligne de commande, il aurait
50fallu saisir les lignes suivantes: 55fallu saisir les lignes suivantes:
51\begin{enumerate} 56\begin{enumerate}
52\item création du dossier \emph{travail}:\\ 57\item création du dossier \emph{travail}:\\
53 \index[cmds]{mkdir}\mintinline{text}{mkdir travail} 58 \commande{mkdir}\mintinline{text}{mkdir travail}
54\item déplacement du fichier \emph{exemple.pdf} dans le dossier 59\item déplacement du fichier \emph{exemple.pdf} dans le dossier
55 travail: \\ 60 travail: \\
56 \index[cmds]{mv}\mintinline{text}{mv exemple.pdf travail} 61 \commande{mv}\mintinline{text}{mv exemple.pdf travail}
57\end{enumerate} 62\end{enumerate}
58 63
59\paragraph{Commentaire} 64\paragraph{Commentaire}
@@ -228,7 +233,7 @@ pour le moment:
228\label{sec:prem-comm} 233\label{sec:prem-comm}
229 234
230\paragraph{pwd} 235\paragraph{pwd}
231\label{sec:pwd}\index[cmds]{pwd|textbf} 236\label{sec:pwd}\commande*{pwd}
232Signifie \emph{print working directory}. Cette commande vous retourne 237Signifie \emph{print working directory}. Cette commande vous retourne
233tout simplement le chemin d'accès absolu du répertoire dans lequel 238tout simplement le chemin d'accès absolu du répertoire dans lequel
234vous vous trouvez. Très utile pour ne pas se perdre! Exemple: 239vous vous trouvez. Très utile pour ne pas se perdre! Exemple:
@@ -263,7 +268,7 @@ vous vous trouvez. Très utile pour ne pas se perdre! Exemple:
263\end{quoting} 268\end{quoting}
264 269
265\paragraph{mv} 270\paragraph{mv}
266\label{sec:mv}\index[cmds]{mv|textbf} 271\label{sec:mv}\commande*{mv}
267Signifie \emph{move}. Cette commande déplace les fichiers d'un endroit 272Signifie \emph{move}. Cette commande déplace les fichiers d'un endroit
268vers un autre. La syntaxe est la suivante: 273vers un autre. La syntaxe est la suivante:
269\begin{minted}[showspaces]{text} 274\begin{minted}[showspaces]{text}
@@ -293,10 +298,10 @@ Utilisation de raccourcis:
293\end{minted} 298\end{minted}
294 299
295\paragraph{cp} 300\paragraph{cp}
296\label{sec:cp}\index[cmds]{cp|textbf} 301\label{sec:cp}\commande*{cp}
297Signifie \emph{copy}. Cette commande copie des fichiers depuis un 302Signifie \emph{copy}. Cette commande copie des fichiers depuis un
298endroit vers un autre. La syntaxe est comparable à celle de la 303endroit vers un autre. La syntaxe est comparable à celle de la
299séquence \index[cmds]{mv}\mintinline{text}{mv}. 304séquence \commande{mv}\mintinline{text}{mv}.
300\begin{minted}[showspaces]{text} 305\begin{minted}[showspaces]{text}
301cp <source> <destination> 306cp <source> <destination>
302\end{minted} 307\end{minted}
@@ -321,7 +326,7 @@ Utilisation de raccourcis:
321\end{minted} 326\end{minted}
322 327
323\paragraph{cd} 328\paragraph{cd}
324\label{sec:cd}\index[cmds]{cd|textbf} 329\label{sec:cd}\commande*{cd}
325Signifie \emph{change directory}. Permet de changer de répertoire 330Signifie \emph{change directory}. Permet de changer de répertoire
326courant, par exemple pour travailler sur les fichiers d'un répertoire 331courant, par exemple pour travailler sur les fichiers d'un répertoire
327différent de son \emph{home directory}. La syntaxe est la suivante: 332différent de son \emph{home directory}. La syntaxe est la suivante:
@@ -338,7 +343,7 @@ Exemple: changement vers le répertoire \mintinline{text}|/usr/bin|:
338 Remarquez le changement de l'invite après l'exécution de la 343 Remarquez le changement de l'invite après l'exécution de la
339 commande. L'invite nous donne l'indication du nouveau répertoire. 344 commande. L'invite nous donne l'indication du nouveau répertoire.
340\end{quoting} 345\end{quoting}
341Confirmation par la commande \index[cmds]{pwd}\mintinline{text}{pwd}: 346Confirmation par la commande \commande{pwd}\mintinline{text}{pwd}:
342\begin{minted}{text} 347\begin{minted}{text}
343[robert@kiddo /usr/bin]$ pwd 348[robert@kiddo /usr/bin]$ pwd
344/usr/bin 349/usr/bin
@@ -350,7 +355,7 @@ Confirmation par la commande \index[cmds]{pwd}\mintinline{text}{pwd}:
350\end{quoting} 355\end{quoting}
351 356
352\paragraph{ls} 357\paragraph{ls}
353\label{sec:ls}\index[cmds]{ls|(textbf} 358\label{sec:ls}\commande*{ls}[(]
354Signifie \emph{list}. Affiche à l'écran tous les fichiers et les 359Signifie \emph{list}. Affiche à l'écran tous les fichiers et les
355répertoires contenus dans un répertoire donné. Si on ne précise pas le 360répertoires contenus dans un répertoire donné. Si on ne précise pas le
356répertoire dont il faut lister les fichiers, la commande liste les 361répertoire dont il faut lister les fichiers, la commande liste les
@@ -443,8 +448,9 @@ valeurs que celles qui sont commentées ci-dessous sont possibles.
443 \item \mintinline{text}|d| pour les répertoires; 448 \item \mintinline{text}|d| pour les répertoires;
444 \item \mintinline{text}|l| pour les liens. 449 \item \mintinline{text}|l| pour les liens.
445 \end{itemize} 450 \end{itemize}
446\item Permissions données au propriétaire. Il y a trois types de 451\item \hypertarget{lnk_permissions}{Permissions} données au
447 permissions que vous devez connaître ici: 452 propriétaire. Il y a trois types de permissions que vous devez
453 connaître ici:
448 \begin{itemize} 454 \begin{itemize}
449 \item \mintinline{text}|-|: aucune permission; 455 \item \mintinline{text}|-|: aucune permission;
450 \item \mintinline{text}|r|: permission en lecture; 456 \item \mintinline{text}|r|: permission en lecture;
@@ -483,7 +489,7 @@ valeurs que celles qui sont commentées ci-dessous sont possibles.
483 dernière fois. 489 dernière fois.
484\item Le nom du fichier. 490\item Le nom du fichier.
485\end{enumerate} 491\end{enumerate}
486\index[cmds]{ls|)} 492\commande*{ls}[)]
487 493
488\chapter{Bash, le shell} 494\chapter{Bash, le shell}
489\label{cha:bash-le-shell} 495\label{cha:bash-le-shell}
@@ -513,7 +519,7 @@ que l'on saura que \verb+fichier.png+ est un fichier image.
513cas de l'extension mais regarde directement à l'intérieur de chaque 519cas de l'extension mais regarde directement à l'intérieur de chaque
514fichier pour en déterminer le type. 520fichier pour en déterminer le type.
515 521
516\paragraph{file}\index[cmds]{file|textbf} 522\paragraph{file}\commande*{file}
517La commande \mintinline{text}|file| permet de tout savoir sur les 523La commande \mintinline{text}|file| permet de tout savoir sur les
518types de fichiers. Nous pouvons la lancer sur la racine de notre dépôt 524types de fichiers. Nous pouvons la lancer sur la racine de notre dépôt
519Git: 525Git:
@@ -576,7 +582,8 @@ interprété comme une suite distincte de trois arguments:
576Et le \emph{shell} ne pourra pas le trouver. Il y a deux solutions 582Et le \emph{shell} ne pourra pas le trouver. Il y a deux solutions
577possibles: 583possibles:
578\begin{enumerate}\label{ref:guillemets-simples-intro} 584\begin{enumerate}\label{ref:guillemets-simples-intro}
579\item Placer le nom du fichier entre guillemets simples: 585\item Placer le nom du fichier entre
586 \hypertarget{lnk_guillemets}{guillemets} simples:
580\begin{minted}{text} 587\begin{minted}{text}
581[robert@kiddo courses]$ ls 'photos de vacances.zip' 588[robert@kiddo courses]$ ls 'photos de vacances.zip'
582'photos de vacances.zip' 589'photos de vacances.zip'
@@ -603,7 +610,7 @@ possibles:
603Tout fichier dont le nom commence par un point (\mintinline{text}|.|) 610Tout fichier dont le nom commence par un point (\mintinline{text}|.|)
604est considéré comme un fichier caché. Le plus souvent, les fichiers 611est considéré comme un fichier caché. Le plus souvent, les fichiers
605cachés contiennent des paramètres de configuration. La commande 612cachés contiennent des paramètres de configuration. La commande
606\index[cmds]{ls}\mintinline{text}|ls| est capable de les afficher si 613\commande{ls}\mintinline{text}|ls| est capable de les afficher si
607on lui passe l'option \mintinline{text}|-a| pour 614on lui passe l'option \mintinline{text}|-a| pour
608\emph{all}. Appliquons cette option sur notre dépôt Git: 615\emph{all}. Appliquons cette option sur notre dépôt Git:
609\begin{minted}[escapeinside=||,linenos]{text} 616\begin{minted}[escapeinside=||,linenos]{text}
@@ -631,7 +638,7 @@ ligne~7 un fichier caché.
631Ces commandes s'ajoutent à celles qui sont décrites plus haut 638Ces commandes s'ajoutent à celles qui sont décrites plus haut
632(\vref{sec:prem-comm}). 639(\vref{sec:prem-comm}).
633 640
634\paragraph{mkdir}\index[cmds]{mkdir|textbf} 641\paragraph{mkdir}\commande*{mkdir}
635Sert à créer un nouveau répertoire. L'option \mintinline{text}|-p| 642Sert à créer un nouveau répertoire. L'option \mintinline{text}|-p|
636peut-être utilisée si l'on veut créer d'un coup un répertoire et un ou 643peut-être utilisée si l'on veut créer d'un coup un répertoire et un ou
637plusieurs sous-répertoires. L'option \mintinline{text}|-v|, pour 644plusieurs sous-répertoires. L'option \mintinline{text}|-v|, pour
@@ -643,19 +650,19 @@ mkdir: création du répertoire 'sandbox'
643mkdir: création du répertoire 'sandbox/robert' 650mkdir: création du répertoire 'sandbox/robert'
644\end{minted} 651\end{minted}
645 652
646\paragraph{touch}\index[cmds]{touch|textbf} 653\paragraph{touch}\commande*{touch}
647Sert à créer un fichier vide dont le nom est passé en argument. Cette 654Sert à créer un fichier vide dont le nom est passé en argument. Cette
648commande sert également à modifier les métadonnées de temps associées 655commande sert également à modifier les métadonnées de temps associées
649aux fichiers (date de création et/ou de modification). 656aux fichiers (date de création et/ou de modification).
650 657
651L'exemple suivant montre comment créer un nouveau dossier dans lequel 658L'exemple suivant montre comment créer un nouveau dossier dans lequel
652on crée également un fichier vide \verb|fichier.txt|. Ensuite, on 659on crée également un fichier vide \verb|fichier.txt|. Ensuite, on
653utilise la commande \index[cmds]{mv}\verb|mv| pour \emph{déplacer} ce 660utilise la commande \commande{mv}\verb|mv| pour \emph{déplacer} ce
654fichier vers un autre fichier \verb|fichier-mk2.txt| au même 661fichier vers un autre fichier \verb|fichier-mk2.txt| au même
655endroit. Le résultat de cette action particulière, le 662endroit. Le résultat de cette action particulière, le
656\emph{déplacement au même endroit}, est tout simplement de renommer le 663\emph{déplacement au même endroit}, est tout simplement de renommer le
657fichier. Enfin, la commande % 664fichier. Enfin, la commande %
658\index[cmds]{ls}\verb|ls -l| sert de moyen de contrôle: 665\commande{ls}\verb|ls -l| sert de moyen de contrôle:
659\begin{minted}{text} 666\begin{minted}{text}
660[robert@kiddo courses]$ mkdir -pv sandbox 667[robert@kiddo courses]$ mkdir -pv sandbox
661mkdir: création du répertoire 'sandbox' 668mkdir: création du répertoire 'sandbox'
@@ -669,7 +676,7 @@ total 0
669\subsection{Commandes destructives} 676\subsection{Commandes destructives}
670\label{sec:comm-destr} 677\label{sec:comm-destr}
671 678
672\paragraph{rm}\index[cmds]{rm|textbf} 679\paragraph{rm}\commande*{rm}
673Pour \emph{remove}. Il suffit de passer en argument à cette commande 680Pour \emph{remove}. Il suffit de passer en argument à cette commande
674ce que l'on souhaite détruire. Par défaut, cette commande ne détruit 681ce que l'on souhaite détruire. Par défaut, cette commande ne détruit
675pas les répertoires. Elle accepte une série d'options dont voici les 682pas les répertoires. Elle accepte une série d'options dont voici les
@@ -703,7 +710,7 @@ détruira absolument tout sans demande de confirmation pour ne laisser
703que les fichiers cachés du répertoire courant dont le nom commence 710que les fichiers cachés du répertoire courant dont le nom commence
704par un point. 711par un point.
705 712
706\section{Wildcards} 713\section[Wildcards]{\hypertarget{lnk_wildcards}{Wildcards}}
707\label{sec:wildcards} 714\label{sec:wildcards}
708Les \emph{wildcards}, ou \enquote{métacaractères} sont des caractères 715Les \emph{wildcards}, ou \enquote{métacaractères} sont des caractères
709ou des séquences de caractères qui servent à représenter des séries de 716ou des séquences de caractères qui servent à représenter des séries de
@@ -726,7 +733,9 @@ ls [QGH]*
726 majuscules ou minuscules. 733 majuscules ou minuscules.
727\end{itemize} 734\end{itemize}
728 735
729\section{Redirection et chaînage} 736\section[Redirection et
737chaînage]{\hypertarget{lnk_redirection}{Redirection}
738 et chaînage}
730\label{sec:redir-et-chain} 739\label{sec:redir-et-chain}
731Nous avons vu jusqu'ici que les commandes renvoient normalement leur 740Nous avons vu jusqu'ici que les commandes renvoient normalement leur
732résultat sur le terminal lui-même. On peut cependant rediriger ce que 741résultat sur le terminal lui-même. On peut cependant rediriger ce que
@@ -743,9 +752,9 @@ les commandes renvoient vers un fichier à l'aide des \emph{opérateurs
743\end{enumerate} 752\end{enumerate}
744 753
745Dans l'exemple qui suit, on demande à la commande 754Dans l'exemple qui suit, on demande à la commande
746\index[cmds]{ls}\verb|ls -l| de rediriger son résultat vers un fichier 755\commande{ls}\verb|ls -l| de rediriger son résultat vers un fichier
747\verb|all-files.txt|. On s'assure que ce fichier a bien été créé, puis 756\verb|all-files.txt|. On s'assure que ce fichier a bien été créé, puis
748on demande à la commande \index[cmds]{cat}\verb|cat| d'en afficher le 757on demande à la commande \commande{cat}\verb|cat| d'en afficher le
749contenu au terminal. Les trois commandes sont entrées aux lignes 1, 2 758contenu au terminal. Les trois commandes sont entrées aux lignes 1, 2
750et 4: 759et 4:
751\begin{minted}[escapeinside=||,linenos]{text} 760\begin{minted}[escapeinside=||,linenos]{text}
@@ -791,7 +800,7 @@ caractère \emph{pipe} (\verb+|+).
791Avant d'aller plus loin, étudions rapidement deux nouvelles commandes 800Avant d'aller plus loin, étudions rapidement deux nouvelles commandes
792qui servent à filtrer le contenu des fichiers. 801qui servent à filtrer le contenu des fichiers.
793 802
794\paragraph{head}\label{ref:head-tail}\index[cmds]{head|textbf} 803\paragraph{head}\label{ref:head-tail}\commande*{head}
795\mintinline{text}|head -<num> fichier| affiche au terminal les 804\mintinline{text}|head -<num> fichier| affiche au terminal les
796\verb|<num>| premières lignes d'un fichier. Sans l'option 805\verb|<num>| premières lignes d'un fichier. Sans l'option
797\mintinline{text}|-<num>|, les 10 premières lignes sont 806\mintinline{text}|-<num>|, les 10 premières lignes sont
@@ -803,7 +812,7 @@ affichées. Exemple:
803./_preamble.tex 812./_preamble.tex
804\end{minted} 813\end{minted}
805 814
806\paragraph{tail}\index[cmds]{tail|textbf} 815\paragraph{tail}\commande*{tail}
807\mintinline{text}|tail -<num> fichier| affiche au terminal les 816\mintinline{text}|tail -<num> fichier| affiche au terminal les
808\verb|<num>| dernières lignes d'un fichier. Sans l'option 817\verb|<num>| dernières lignes d'un fichier. Sans l'option
809\mintinline{text}|-<num>|, les 10 dernières lignes sont affichées. 818\mintinline{text}|-<num>|, les 10 dernières lignes sont affichées.
@@ -822,7 +831,7 @@ dernière ligne, \emph{mais en commençant à partir de la ligne}
822Cet exemple reprend des commandes connues. Supposons que l'on veuille 831Cet exemple reprend des commandes connues. Supposons que l'on veuille
823connaître simplement le nombre de fichiers du notre dépôt Git. Nous 832connaître simplement le nombre de fichiers du notre dépôt Git. Nous
824savons produire une liste à l'aide de la commande 833savons produire une liste à l'aide de la commande
825\index[cmds]{ls}\verb|ls -l|. Nous savons également que la commande 834\commande{ls}\verb|ls -l|. Nous savons également que la commande
826\verb|wc -l| compte les lignes. Cependant, la première ligne retournée 835\verb|wc -l| compte les lignes. Cependant, la première ligne retournée
827par la commande \verb|ls -l|, qui donne la somme des \emph{file system 836par la commande \verb|ls -l|, qui donne la somme des \emph{file system
828 blocks} occupés par le contenu du répertoire, doit être exclue du 837 blocks} occupés par le contenu du répertoire, doit être exclue du
@@ -844,15 +853,15 @@ leur contenu.
844 853
845Nous en avons étudié deux plus haut (\vpageref{ref:head-tail}): 854Nous en avons étudié deux plus haut (\vpageref{ref:head-tail}):
846\begin{enumerate} 855\begin{enumerate}
847\item \index[cmds]{head}\verb|head| qui sélectionne les premières 856\item \commande{head}\verb|head| qui sélectionne les premières
848 lignes d'un fichier. 857 lignes d'un fichier.
849\item \index[cmds]{tail}\verb|tail| qui sélectionne les dernières 858\item \commande{tail}\verb|tail| qui sélectionne les dernières
850 lignes d'un fichier. 859 lignes d'un fichier.
851\end{enumerate} 860\end{enumerate}
852 861
853On ajoutera ici les commandes suivantes: 862On ajoutera ici les commandes suivantes:
854 863
855\paragraph{cat}\index[cmds]{cat|textbf} 864\paragraph{cat}\commande*{cat}
856Affiche au terminal tout le contenu d'un fichier: 865Affiche au terminal tout le contenu d'un fichier:
857\begin{minted}{text} 866\begin{minted}{text}
858[robert@kiddo courses]$ cat ls-R 867[robert@kiddo courses]$ cat ls-R
@@ -863,7 +872,7 @@ Affiche au terminal tout le contenu d'un fichier:
863./README.tex 872./README.tex
864\end{minted} 873\end{minted}
865 874
866\paragraph{wc}\label{ref:wc}\index[cmds]{wc|textbf} 875\paragraph{wc}\label{ref:wc}\commande*{wc}
867Pour \emph{word count}. Cette commande a été utilisée plus haut une 876Pour \emph{word count}. Cette commande a été utilisée plus haut une
868fois avec l'option \verb|-l| pour compter les lignes d'un fichier 877fois avec l'option \verb|-l| pour compter les lignes d'un fichier
869(\vpageref{ref:wc-intro}). Utilisée sans option, elle retourne le 878(\vpageref{ref:wc-intro}). Utilisée sans option, elle retourne le
@@ -874,7 +883,7 @@ nombre de lignes (\verb|-l|), de mots (\verb|-w|) et de caractères
874 21 114 627 makefile 883 21 114 627 makefile
875\end{minted} 884\end{minted}
876 885
877\paragraph{cut}\index[cmds]{cut|textbf} 886\paragraph{cut}\commande*{cut}
878Permet de mettre en forme des données. Prenons l'exemple du fichier 887Permet de mettre en forme des données. Prenons l'exemple du fichier
879suivant: \\ \mintinline{text}|etudiants.txt| 888suivant: \\ \mintinline{text}|etudiants.txt|
880\begin{minted}{text} 889\begin{minted}{text}
@@ -909,7 +918,7 @@ forme de façon à placer le prénom avant le nom et avoir les adresses
909email entre crochets pointus? Comment faire aussi pour récupérer les 918email entre crochets pointus? Comment faire aussi pour récupérer les
910données dans un tableur? 919données dans un tableur?
911 920
912\paragraph{awk}\index[cmds]{awk|textbf} 921\paragraph{awk}\commande*{awk}
913Ce programme accessible à la ligne de commande permet d'effectuer ce 922Ce programme accessible à la ligne de commande permet d'effectuer ce
914travail facilement. Il sélectionne les données dans l'ordre que l'on 923travail facilement. Il sélectionne les données dans l'ordre que l'on
915souhaite à l'aide de variables: \verb|$1|, \verb|$2|, \verb|$3|, 924souhaite à l'aide de variables: \verb|$1|, \verb|$2|, \verb|$3|,
@@ -946,7 +955,7 @@ Hector;Pédot;<hector.pedot@ailleurs.org>
946 \end{enumerate} 955 \end{enumerate}
947\end{quoting} 956\end{quoting}
948Pour terminer, il suffit de renommer le fichier \verb|etudiants.txt| 957Pour terminer, il suffit de renommer le fichier \verb|etudiants.txt|
949en \verb|etudiants.csv| par la commande:\index[cmds]{mv} 958en \verb|etudiants.csv| par la commande:\commande{mv}
950\begin{minted}{text} 959\begin{minted}{text}
951mv etudiants.txt etudiants.csv 960mv etudiants.txt etudiants.csv
952\end{minted} 961\end{minted}