From f0cf5408a3d04143ab3c531e1ec0e0caf7f8e4d8 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Wed, 12 Sep 2018 22:14:03 +0200 Subject: still writing fichiers/01-ligne-de-commande.tex --- fichiers/01-ligne-de-commande.tex | 204 ++++++++++++++++++++++---------------- 1 file changed, 121 insertions(+), 83 deletions(-) diff --git a/fichiers/01-ligne-de-commande.tex b/fichiers/01-ligne-de-commande.tex index d4a670f..94f7884 100644 --- a/fichiers/01-ligne-de-commande.tex +++ b/fichiers/01-ligne-de-commande.tex @@ -12,8 +12,11 @@ breaklines, breaksymbolright=\small\carriagereturn} \setmintedinline{bgcolor=Lavender} +\usepackage{soul} \begin{document} \maketitle +\renewcommand{\contentsname}{Sommaire} +\tableofcontents \chapter{Introduction} \label{cha:introduction} @@ -48,10 +51,10 @@ Pour réaliser les mêmes opérations à la ligne de commande, il aurait fallu saisir les lignes suivantes: \begin{enumerate} \item création du dossier \emph{travail}:\\ - \mintinline{bash}{mkdir travail} + \mintinline{text}{mkdir travail} \item déplacement du fichier \emph{exemple.pdf} dans le dossier travail: \\ -\mintinline{bash}{mv exemple.pdf travail} +\mintinline{text}{mv exemple.pdf travail} \end{enumerate} \paragraph{Commentaire} @@ -61,21 +64,21 @@ l'aide de la souris. Reprenons à présent les deux dernières lignes de commande pour mieux les comprendre: \label{sec:commentaire} \begin{enumerate} -\item dans \og\mintinline{bash}{mkdir travail}\fg, - \mintinline{bash}{mkdir} est le nom d'un programme fait pour créer - des répertoires; \mintinline{bash}{mkdir} est en effet pour +\item dans \og\mintinline{text}{mkdir travail}\fg, + \mintinline{text}{mkdir} est le nom d'un programme fait pour créer + des répertoires; \mintinline{text}{mkdir} est en effet pour l'anglais \emph{make directory}. Quant à \emph{travail}, c'est tout simplement le nom du répertoire qu'on veut faire créer par le - programme \mintinline{bash}{mkdir}. La terminologie est la suivante: - \mintinline{bash}{mkdir} est le nom du programme, et - \mintinline{bash}{travail} est \emph{l'argument} que l'on passe à - \mintinline{bash}{mkdir}. Remarquez que l'on doit séparer l'argument + programme \mintinline{text}{mkdir}. La terminologie est la suivante: + \mintinline{text}{mkdir} est le nom du programme, et + \mintinline{text}{travail} est \emph{l'argument} que l'on passe à + \mintinline{text}{mkdir}. Remarquez que l'on doit séparer l'argument du nom du programme par un espace. Pour terminer, on appuie sur la touche \emph{Entrée} pour commander l'exécution du programme. -\item dans \og\mintinline{bash}{mv exemple.pdf travail}\fg, le nom du - programme est \mintinline{bash}{mv}, pour l'anglais \emph{move}; sa +\item dans \og\mintinline{text}{mv exemple.pdf travail}\fg, le nom du + programme est \mintinline{text}{mv}, pour l'anglais \emph{move}; sa fonction est de déplacer des fichiers ou des répertoires. Comme son - comportement, par rapport au programme \mintinline{bash}{mkdir}, est + comportement, par rapport au programme \mintinline{text}{mkdir}, est différent, il accepte non pas un, mais deux arguments, chacun séparé par des espaces. Observez de nouveau cette ligne de commande: tandis que le premier argument est le nom du fichier que l'on @@ -105,16 +108,16 @@ fait à l'aide de la souris. En voici les principales raisons: des commandes auxquelles l'interface graphique ne permet pas d'accéder.}; \item les lignes de commande peuvent être chaînées. Ainsi, par la - simple ligne\\ \mintinline{bash}{mkdir travail ; mv exemple.pdf + simple ligne\\ \mintinline{text}{mkdir travail ; mv exemple.pdf travail} on peut réaliser en une seule fois toutes les opérations décrites pré\-cé\-dem\-ment. Il suffit, comme on le voit ici, de - séparer les commandes par un point-virgule \mintinline{bash}{;}; + séparer les commandes par un point-virgule \mintinline{text}{;}; \item les lignes de commande acceptent des caractères appelés \emph{jokers} à l'aide desquels on peut déclencher des opérations complexes, portant sur un très grand nombre de fichiers. Par - exemple, le caractère \mintinline{bash}{*} peut se substituer à + exemple, le caractère \mintinline{text}{*} peut se substituer à n'importe quelle chaîne de caractères. Ainsi, pour reprendre ce qui - précède, la commande\\ \mintinline{bash}{mv *.pdf travail} aura pour + précède, la commande\\ \mintinline{text}{mv *.pdf travail} aura pour effet de déplacer automatiquement tous les fichiers au format \verb|PDF| dans le répertoire \emph{travail}. \end{itemize} @@ -157,24 +160,24 @@ répertoire personnel, appelé le \emph{home directory}. Le nom de votre répertoire personnel est le même que celui de l'identifiant sous lequel vous vous êtes connecté. Par ailleurs, tous les répertoires des différents utilisateurs sont situés à la racine du disque dur dans un -répertoire fondamental appelé \mintinline{bash}{home}. +répertoire fondamental appelé \mintinline{text}{home}. -Supposons que votre identifiant soit \mintinline{bash}{jacques}; votre +Supposons que votre identifiant soit \mintinline{text}{jacques}; votre répertoire personnel sera donc: -\begin{minted}{bash} +\begin{minted}{text} /home/jacques \end{minted} Obervez attentivement cette ligne. Vous remarquez que les noms des -répertoires sont séparés par le caractère \mintinline{bash}{/}. Cela -veut dire que le signe \mintinline{bash}{/} est utilisé pour indiquer +répertoires sont séparés par le caractère \mintinline{text}{/}. Cela +veut dire que le signe \mintinline{text}{/} est utilisé pour indiquer que l'on passe d'un répertoire donné à l'un de ses sous-répertoires. Dans notre exemple, le répertoire -\mintinline{bash}{jacques} est donc inclus dans le répertoire -\mintinline{bash}{home}. +\mintinline{text}{jacques} est donc inclus dans le répertoire +\mintinline{text}{home}. -Remarquez encore le \mintinline{bash}{/} qui est placé \emph{devant} -\mintinline{bash}{home}: comme il n'est lui-même précédé de rien, il -indique que le répertoire \mintinline{bash}{home} est placé \emph{à la +Remarquez encore le \mintinline{text}{/} qui est placé \emph{devant} +\mintinline{text}{home}: comme il n'est lui-même précédé de rien, il +indique que le répertoire \mintinline{text}{home} est placé \emph{à la racine du disque dur}. \paragraph{Definition: chemins absolus, chemins relatifs} @@ -182,18 +185,18 @@ indique que le répertoire \mintinline{bash}{home} est placé \emph{à la Un chemin d'accès est dit \emph{absolu} quand il est donné à partir de la racine du disque dur. Il est \emph{relatif} quand il est donné à partir de tout autre endroit du disque dur. Soit par exemple le -répertoire \mintinline{bash}{travail} créé par l'utilisateur -\mintinline{bash}{jacques} dans son répertoire personnel. À partir de +répertoire \mintinline{text}{travail} créé par l'utilisateur +\mintinline{text}{jacques} dans son répertoire personnel. À partir de ce répertoire, le chemin d'accès absolu sera -\begin{minted}{bash} +\begin{minted}{text} /home/jacques/travail/ \end{minted} tandis que le chemin relatif sera -\begin{minted}{bash} +\begin{minted}{text} travail/ \end{minted} Corrolaire: tout chemin d'accès absolu commence nécessairement par le -caractère \mintinline{bash}{/}; quand ce n'est pas le cas, le chemin +caractère \mintinline{text}{/}; quand ce n'est pas le cas, le chemin d'accès est nécessairement relatif. \paragraph{Conventions} @@ -204,20 +207,20 @@ pour le moment: \begin{itemize} \item \emph{home directory}: depuis tout endroit du disque dur, tout utilisateur peut accéder à son répertoire personnel par le raccourci -\begin{minted}{bash} +\begin{minted}{text} ~/ \end{minted} - Ainsi, pour l'utilisateur \mintinline{bash}{jacques}, - \mintinline{bash}{~/travail} est l'équivalent de \\ - \mintinline{bash}{/home/jacques/travail}. + Ainsi, pour l'utilisateur \mintinline{text}{jacques}, + \mintinline{text}{~/travail} est l'équivalent de \\ + \mintinline{text}{/home/jacques/travail}. \item répertoire parent: quel que soit le répetoire dans lequel on se - trouve, la séquence \mintinline{bash}{..} désigne le + trouve, la séquence \mintinline{text}{..} désigne le \emph{répertoire parent}, c'est-à-dire le répertoire qui le contient, ou bien qui est situé au niveau supérieur dans l'arborescence du disque dur. Par exemple, à partir du répertoire - \mintinline{bash}{/home/jacques/travail}, \mintinline{bash}{..} - désigne le répertoire \mintinline{bash}{/home/jacques}. -\item répertoire courant: Quant au signe \og\mintinline{bash}{.}\fg, + \mintinline{text}{/home/jacques/travail}, \mintinline{text}{..} + désigne le répertoire \mintinline{text}{/home/jacques}. +\item répertoire courant: Quant au signe \og\mintinline{text}{.}\fg, il désigne tout simplement le répertoire dans lequel on se trouve. \end{itemize} @@ -229,33 +232,33 @@ pour le moment: Signifie \emph{print working directory}. Cette commande vous retourne tout simplement le chemin d'accès absolu du répertoire dans lequel vous vous trouvez. Très utile pour ne pas se perdre! Exemple: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ pwd /home/robert \end{minted} \begin{quoting}\footnotesize - La séquence \mintinline{bash}+[robert@kiddo ~]$+ est \emph{l'invite + La séquence \mintinline{text}+[robert@kiddo ~]$+ est \emph{l'invite de commande} (anglais \emph{prompt}). C'est à la suite de cette invite que l'on entre les commandes. Nous y reviendrons. Observez pour le moment quelques unes des informations données par cette - invite: l'utilisateur \mintinline{bash}{robert} est connecté sur - l'ordinateur \mintinline{bash}{kiddo}; ensuite, le signe - \mintinline{bash}+~+ indique qu'il se trouve dans son \emph{home + invite: l'utilisateur \mintinline{text}{robert} est connecté sur + l'ordinateur \mintinline{text}{kiddo}; ensuite, le signe + \mintinline{text}+~+ indique qu'il se trouve dans son \emph{home directory}, ce que retourne en effet la commande - \mintinline{bash}+pwd+ qui a été entrée ici. Enfin, le signe - \mintinline{bash}|$| indique que l'utilisateur - \mintinline{bash}|robert| n'est pas l'administrateur du système. En + \mintinline{text}+pwd+ qui a été entrée ici. Enfin, le signe + \mintinline{text}|$| indique que l'utilisateur + \mintinline{text}|robert| n'est pas l'administrateur du système. En effet, le \emph{prompt} de l'administrateur du système, que l'on appelle \emph{root}, se termine par le signe - \mintinline{bash}|#|. Exemple: -\begin{minted}{bash} + \mintinline{text}|#|. Exemple: +\begin{minted}{text} [root@kiddo ~]# pwd /root [root@kiddo ~]# \end{minted} Remarquez que le \emph{home directory} de l'utilisateur - \mintinline{bash}|root| n'est pas situé dans le répertoire - \mintinline{bash}|/home| qui est réservé aux utilisateurs non + \mintinline{text}|root| n'est pas situé dans le répertoire + \mintinline{text}|/home| qui est réservé aux utilisateurs non privilégiés. \end{quoting} @@ -263,29 +266,29 @@ vous vous trouvez. Très utile pour ne pas se perdre! Exemple: \label{sec:mv} Signifie \emph{move}. Cette commande déplace les fichiers d'un endroit vers un autre. La syntaxe est la suivante: -\begin{minted}[showspaces]{bash} +\begin{minted}[showspaces]{text} mv \end{minted} \begin{quoting}\footnotesize Par convention, le signe \verb*+ + marque l'espace. \end{quoting} -Exemple: déplacement du fichier \mintinline{bash}{trachiniennes.pdf} -dans le répertoire \mintinline{bash}{travail}: -\begin{minted}{bash} +Exemple: déplacement du fichier \mintinline{text}{trachiniennes.pdf} +dans le répertoire \mintinline{text}{travail}: +\begin{minted}{text} [robert@kiddo ~]$ mv trachiniennes.pdf travail/ \end{minted} -Déplacement du fichier \mintinline{bash}{trachiniennes.pdf} depuis le -répertoire \mintinline{bash}{travail} vers le répertoire courant -(désigné par le raccourci \mintinline{bash}|.|): -\begin{minted}{bash} +Déplacement du fichier \mintinline{text}{trachiniennes.pdf} depuis le +répertoire \mintinline{text}{travail} vers le répertoire courant +(désigné par le raccourci \mintinline{text}|.|): +\begin{minted}{text} [robert@kiddo ~]$ mv travail/trachiniennes.pdf . \end{minted} Déplacement avec indication des chemins absolus: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ mv /home/robert/trachiniennes.pdf /home/robert/travail/ \end{minted} Utilisation de raccourcis: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ mv ~/trachiniennes.pdf ~/travail/ \end{minted} @@ -293,27 +296,27 @@ Utilisation de raccourcis: \label{sec:cp} Signifie \emph{copy}. Cette commande copie des fichiers depuis un endroit vers un autre. La syntaxe est comparable à celle de la -séquence \mintinline{bash}{mv}. -\begin{minted}[showspaces]{bash} +séquence \mintinline{text}{mv}. +\begin{minted}[showspaces]{text} cp \end{minted} -Exemple: copie du fichier \mintinline{bash}{trachiniennes.pdf} dans le -répertoire \mintinline{bash}{travail}: -\begin{minted}{bash} +Exemple: copie du fichier \mintinline{text}{trachiniennes.pdf} dans le +répertoire \mintinline{text}{travail}: +\begin{minted}{text} [robert@kiddo ~]$ cp trachiniennes.pdf travail/ \end{minted} -Copie du fichier \mintinline{bash}{trachiniennes.pdf} depuis le -répertoire \mintinline{bash}{travail} vers le répertoire courant -(désigné par le raccourci \mintinline{bash}|.|): -\begin{minted}{bash} +Copie du fichier \mintinline{text}{trachiniennes.pdf} depuis le +répertoire \mintinline{text}{travail} vers le répertoire courant +(désigné par le raccourci \mintinline{text}|.|): +\begin{minted}{text} [robert@kiddo ~]$ cp travail/trachiniennes.pdf . \end{minted} Copie avec indication des chemins absolus: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ cp /home/robert/trachiniennes.pdf /home/robert/travail/ \end{minted} Utilisation de raccourcis: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ cp ~/trachiniennes.pdf ~/travail/ \end{minted} @@ -322,12 +325,12 @@ Utilisation de raccourcis: Signifie \emph{change directory}. Permet de changer de répertoire courant, par exemple pour travailler sur les fichiers d'un répertoire différent de son \emph{home directory}. La syntaxe est la suivante: -\begin{minted}[showspaces]{bash} -cd <"chemin_d'accès_du_nouveau_répertoire"> +\begin{minted}[showspaces]{text} +cd \end{minted} -Exemple: changement vers le répertoire \mintinline{bash}|/usr/bin|: -\begin{minted}{bash} +Exemple: changement vers le répertoire \mintinline{text}|/usr/bin|: +\begin{minted}{text} [robert@kiddo ~]$ cd /usr/bin [robert@kiddo /usr/bin]$ \end{minted} @@ -335,14 +338,14 @@ Exemple: changement vers le répertoire \mintinline{bash}|/usr/bin|: Remarquez le changement de l'invite après l'exécution de la commande. L'invite nous donne l'indication du nouveau répertoire. \end{quoting} -Confirmation par la commande \mintinline{bash}{pwd}: -\begin{minted}{bash} +Confirmation par la commande \mintinline{text}{pwd}: +\begin{minted}{text} [robert@kiddo /usr/bin]$ pwd /usr/bin [robert@kiddo /usr/bin]$ \end{minted} \begin{quoting}\footnotesize - NB: la commande \mintinline{bash}{cd} seule fait revenir l'utilisateur + NB: la commande \mintinline{text}{cd} seule fait revenir l'utilisateur directement dans son \emph{home directory}. \end{quoting} @@ -352,19 +355,54 @@ Signifie \emph{list}. Affiche à l'écran tous les fichiers et les répertoires contenus dans un répertoire donné. Si on ne précise pas le répertoire dont il faut lister les fichiers, la commande liste les fichiers du répertoire courant. Exemple: on vérifie que le fichier -\mintinline{bash}{trachiniennes.pdf} se trouve bien dans le répertoire +\mintinline{text}{trachiniennes.pdf} se trouve bien dans le répertoire travail: -\begin{minted}{bash} +\begin{minted}{text} [robert@kiddo ~]$ ls travail/ trachiniennes.pdf \end{minted} \begin{quoting}\footnotesize Comme on le voit, la commande retourne le nom du seul fichier qui se - trouve dans le répertoire \mintinline{bash}{travail}.\\ - La commande \mintinline{bash}{ls} est l'une des plus importantes; + trouve dans le répertoire \mintinline{text}{travail}.\\ + La commande \mintinline{text}{ls} est l'une des plus importantes; elle admet de nombreuses options que nous détaillerons plus loin dans ce cours. \end{quoting} +\section{Options} +\label{sec:options} +On a donné plus haut l'exemple de la commande \mintinline{text}|ls| +qui affiche à l'écran tous les fichiers contenus dans un répertoire +donné. Voici ce que retourne cette commande lancée sur notre dépôt +Git: +\begin{minted}{text} +[robert@kiddo courses]$ ls +fichiers ls-R makefile _preamble.tex README.md README.pdf README.tex texfiles +\end{minted} +Mais on peut souhaiter recueillir davantage d'informations. Par +exemple, dans la liste ci-dessus, on ne peut pas distinguer les +fichiers des répertoires. Heureusement, les commandes peuvent recevoir +des \emph{options}. Celles-ci sont de deux types: +\begin{enumerate} +\item Les options \enquote{longues}, qui sont préfixées par + \mintinline{text}|--| et suivies de noms entiers. +\item Les options \enquote{courtes}, qui sont préfixées par + \mintinline{text}|-| et suivies d'abréviations. +\end{enumerate} +Voici donc ce que donne la même commande \mintinline{text}|ls|, suivie +de l'option \mintinline{text}|-l| pour \enquote{use a \ul{l}ong + listing format} et de l'option \mintinline{text}|--color|: +\begin{minted}[escapeinside=||]{text} +[robert@kiddo courses]$ ls -l --color +total 56 +drwxr-xr-x 3 robert robert 4096 12 sept. 21:52 |\textcolor{blue}{fichiers}| +-rw-r--r-- 1 robert robert 88 12 sept. 20:57 ls-R +-rw-r--r-- 1 robert robert 627 12 sept. 15:11 makefile +-rw-r--r-- 1 robert robert 558 12 sept. 11:20 _preamble.tex +-rw-r--r-- 1 robert robert 1254 12 sept. 20:57 README.md +-rw-r--r-- 1 robert robert 27345 12 sept. 20:58 README.pdf +-rw-r--r-- 1 robert robert 1570 12 sept. 12:13 README.tex +-rw-r--r-- 1 robert robert 49 12 sept. 20:57 texfiles +\end{minted} \end{document} -- cgit v1.2.3