\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{ven. juin 4 22:16:31 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={coreutils},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Options Communes},
CreationDate={D:20100604221631},
ModDate={D:20100604221631},
Keywords={coreutils;GNU}
}}
\begin{document}
 
\begin{center}
{\Huge coreutils }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Options Communes}
 
\vspace{10mm}
 
\hspace{1mm}  Certaines options sont disponible pour tous les programmes. Elle sont décrites ici. Tout programme GNU accepte ces options.
\vspace{5mm} \\
\hspace{1mm}  Normalement les options et opérandes peuvent apparaître dans n'importe quel ordre, et les programmes agissent comme si toutes les options apparaissaient avec les opérandes. Beaucoup de programmes qui acceptent les options longues, reconnaissent l'abréviation non-ambigu de ces options.Certains de ces programmes reconnaissent les options \textbf{--help} et \textbf{--version} seulement si l'option est la seule de la ligne de commande.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} --help]{Affiche une aide sur l'utilisation du programme, et quitte.}
\item[\hspace{1mm} --version]{Affiche la version du programme, puis quitte.}
\item[\hspace{1mm} --]{délimite la liste d'options. les arguments suivants, s'il y'en a, sont traités comme opérande même s'ils commence avec '-'.}
\end{description}
 
\vspace{1cm}{\huge Code de sortie }
 
\
 
\hspace{1mm}  Les programmes renvoient généralement \textbf{0} en cas de succès, et une valeur différente (typiquement 1) dans le cas contraire. Cependant il y'a quelques programmes qui produisent d'autres code de sortie : \textbf{chroot, env, expr, nice, nohup, printenv, sort, su, test, timeout, tty}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Options de backup }
 
\
 
\hspace{1mm}  Certains programmes (\textbf{cp}, \textbf{install}, \textbf{ln} et \textbf{mv}) peuvent créer une copie des fichiers avant d'écrire les nouvelles versions. Ces options contrôlent les détails de ces backups.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -b, --backup\texttt{[}=METHOD\texttt{]}]{Crée un backup de chaque fichier qui va être écrasé ou supprimé. Sans cette option, les versions originales sont détruites. l'option \textbf{METHOD}, si non spécifiée, utilise la variable d'environnement VERSION\_CONTROL, et si elle n'est pas définie, utilise '\textbf{existing}' par défaut. Les valeurs valides sont :}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} none]{}
\item[\hspace{6mm} off]{ne jamais faire de backup}
\item[\hspace{6mm} numbered]{}
\item[\hspace{6mm} t]{Toujours créer des backups numérotées}
\item[\hspace{6mm} existing]{}
\item[\hspace{6mm} nil]{Toujours créer desbackup numérotées des fichiers qui en ont déjà un, simple backup pour les autres.}
\item[\hspace{6mm} simple]{}
\item[\hspace{6mm} never]{Toujours créer des backups simple.}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{1mm} -S --suffix=SUFFIX]{Ajoute \textbf{SUFFIX} à chaque backup crée avec l'option \textbf{-b}. Si cette option n'est pas spécifiée, la valeur de la variable d'environnement \textbf{SIMPLE\_BACKUP\_SUFFIX} est utilisée, et si elle n'est pas définie le défaut est ' ', comme dans Emacs.}
\end{description}
 
\vspace{1cm}{\huge Taille de block }
 
\
 
\hspace{1mm}  Certains programmes (\textbf{df}, \textbf{du} et \textbf{ls}) affichent les tailles en blocks. On peut utiliser la taille de block et la méthode d'affichage. La taille de block utilisée pour l'affichage est indépendant de la taille de block des systèmes de fichiers. La taille de block par défaut est choisie en examinant les variables d'environnement. La première qui est définie détermine la taille de block.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} DF\_BLOCK\_SIZE]{Spécifie la taille de block par défaut pour df}
\item[\hspace{6mm} DU\_BLOCK\_SIZE]{Spécifie la taille de block par défaut pour du}
\item[\hspace{6mm} LS\_BLOCK\_SIZE]{Spécifie la taille de block par défaut pour ls}
\item[\hspace{6mm} BLOCK\_SIZE]{Spécifie la taille de block par défaut pour les 3 commandes}
\end{description}
 
\hspace{1mm}  \textbf{BLOCKSIZE} Spécifie le taille de block par défaut pour toutes les valeurs qui sont normalement affichées comme block, si \textbf{[XX\_]BLOCK\_SIZE} ne sont pas définies.
\vspace{5mm} \\
\hspace{1mm}  \textbf{POSIXLY\_CORRECT} si aucune des variables ci-dessus ne sont définies, la taille de block par défaut est 512.
\vspace{5mm} \\
\hspace{1mm}  Si aucune variable n'est définie, la taille de block par défaut est \textbf{1024} la plupart du temps. Pour les tailles de fichiers de \textbf{ls}, la taille de block par défaut est 1 octet.
\vspace{5mm} \\
\hspace{1mm}  Une taille de block peut être spécifié par un nombre entier spécifiant le nombre d'octets par block, ou peut être au format '\textbf{human-readable}'. Une spécification de taille de block précédée par "\textbf{'}" affiche les sorties avec les séparateurs de milliers. ex : \textbf{--block-size="'1kB"} n'affichera pas 1234000 octets, mais 1,234.
\vspace{5mm} \\
\hspace{1mm}  Une taille de block peut être suivie par un multiple de la taillee. Par ex, 1M, 1MiB sont équivalent à 1048576, et 1MB vaut 1000000.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} kB]{KiloOctets : 10\textasciicircum 3 = 1000}
\item[\hspace{6mm} k, KiB]{KibiOctets : 2\textasciicircum 10 = 1024}
\item[\hspace{6mm} MB]{MegaOctets : 10\textasciicircum 6 = 1,000,000}
\item[\hspace{6mm} M, MiB]{MebiOctets : 2\textasciicircum 20 = 1,048,576}
\item[\hspace{6mm} GB]{GigaOctets : 10\textasciicircum 9 = 1,000,000,000}
\item[\hspace{6mm} G, GiB]{GibiOctets : 2\textasciicircum 30 = 1,073,741,824}
\item[\hspace{6mm} TB]{TeraOctets : 10\textasciicircum 12 = 1,000,000,000,000}
\item[\hspace{6mm} T, TiB]{TebiOctets : 2\textasciicircum 40 = 1,099,511,627,776}
\item[\hspace{6mm} PB]{PetaOctets : 10\textasciicircum 15 = 1,000,000,000,000,000}
\item[\hspace{6mm} P, PiB]{PetaOctets : 2\textasciicircum 50 = 1,125,899,906,842,624}
\item[\hspace{6mm} EB]{ExaOctets : 10\textasciicircum 18 = 1,000,000,000,000,000,000}
\item[\hspace{6mm} E, EiB]{ExbiOctets : 2\textasciicircum 60 = 1,152,921,504,606,846,976}
\item[\hspace{6mm} ZB]{ZettaOctets : 10\textasciicircum 21 = 1,000,000,000,000,000,000,000}
\item[\hspace{6mm} Z, ZiB]{2\textasciicircum 70 = 1,180,591,620,717,411,303,424.}
\item[\hspace{6mm} YB]{YottaOctets : 10\textasciicircum 24 = 1,000,000,000,000,000,000,000,000}
\item[\hspace{6mm} YiB]{2\textasciicircum 80 = 1,208,925,819,614,629,174,706,176}
\end{description}
 
\hspace{6mm}  Pour spécifier la taille par défaut, utiliser \textbf{--block-size=SIZE}. L'option \textbf{-k} est équivalent \textbf{--block-size=1K}. L'option \textbf{-h} ou \textbf{--human-readable} est équivalent à \textbf{--block-size=human-readable}. \textbf{--si} est équivalent à \textbf{--block-size=si}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Spécification de signal }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} `HUP' 1]{Hangup.}
\item[\hspace{1mm} `INT' 2]{Terminal interrupt.}
\item[\hspace{1mm} `QUIT' 3]{Terminal quit.}
\item[\hspace{1mm} `ABRT' 6]{Process abort.}
\item[\hspace{1mm} `KILL' 9]{Kill (cannot be caught or ignored).}
\item[\hspace{1mm} `ALRM' 14]{Alarm Clock.}
\item[\hspace{1mm} `TERM' 15]{Termination.}
\item[\hspace{1mm} `BUS']{Access to an undefined portion of a memory object.}
\item[\hspace{1mm} `CHLD']{Child process terminated, stopped, or continued.}
\item[\hspace{1mm} `CONT']{Continue executing, if stopped.}
\item[\hspace{1mm} `FPE']{Erroneous arithmetic operation.}
\item[\hspace{1mm} `ILL']{Illegal Instruction.}
\item[\hspace{1mm} `PIPE']{Write on a pipe with no one to read it.}
\item[\hspace{1mm} `SEGV']{Invalid memory reference.}
\item[\hspace{1mm} `STOP']{Stop executing (cannot be caught or ignored).}
\item[\hspace{1mm} `TSTP']{Terminal stop.}
\item[\hspace{1mm} `TTIN']{Background process attempting read.}
\item[\hspace{1mm} `TTOU']{Background process attempting write.}
\item[\hspace{1mm} `URG']{High bandwidth data is available at a socket.}
\item[\hspace{1mm} `USR1']{User-defined signal 1.}
\item[\hspace{1mm} `USR2']{User-defined signal 2.}
\item[\hspace{1mm} `POLL']{Pollable event.}
\item[\hspace{1mm} `PROF']{Profiling timer expired.}
\item[\hspace{1mm} `SYS']{Bad system call.}
\item[\hspace{1mm} `TRAP']{Trace/breakpoint trap.}
\item[\hspace{1mm} `VTALRM']{Virtual timer expired.}
\item[\hspace{1mm} `XCPU']{CPU time limit exceeded.}
\item[\hspace{1mm} `XFSZ']{File size limit exceeded.}
\end{description}
 
\vspace{1cm}{\huge chown et chgrp : ID et noms utilisateur ambigües }
 
\
 
\hspace{1mm}  Vu que les arguments \textbf{OWNER} et \textbf{GROUP} de \textbf{chown} et \textbf{chgrp} peuvent être spécifiés soit pas le nom soit pas l'ID, il y'a une ambiguitée. POSIX requière que \textbf{chown} et \textbf{chgrp} tentent d'abord de résoudre la chaîne spécifiée comme nom, et seulement s'ils échouent, ils réessayent en l'interprétant comme ID. Pour forcer un ID à être interprété comme tel, le précéder par un '\textbf{+}'.
\vspace{5mm} \\
 
 
\hspace{1mm} exemples : \\
\hspace{1mm} \textbf{chown +42 F} \\
\hspace{1mm} \textbf{chgrp +\$numeric\_group\_id another-file} \\
\hspace{1mm} \textbf{chown +0 :+0 /} \\
 
\vspace{1cm}{\huge Sources de données aléatoire }
 
\
 
\hspace{1mm}  Les commandes \textbf{shuff}, \textbf{shred} et \textbf{sort} ont parfois besoin de données aléatoires. Par défaut ces commandes utilisent un générateur pseudo-aléatoire interne, mais peut être redirigés pour utiliser une source externe avec l'option \textbf{--random-source=FILE}. Une erreur est reportée si \textbf{FILE} ne contient pas suffisamment d'octets. Par exemple, le fichier \textbf{/dev/urandom} peut être utilisé. Les applications qui nécessitent un haut niveau de sécurité à long terme peuvent utiliser \textbf{/dev/random} ou \textbf{/dev/arandom}.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Dossier cible }
 
\
 
\hspace{1mm}  Les commandes \textbf{cp}, \textbf{install}, \textbf{ln} et \textbf{mv} traitent la dernière opérande spécialement quand il s'agit d'un répertoire ou un lien symbolique vers un répertoire. Par exemple \textbf{cp source dest} est équivalent à \textbf{cp source dest/source} si \textbf{dest} est un répertoire. Parfois ce mode de fonctionnement n'est pas ce que l'on souhaite, donc pour outrepasser ce mode :
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} -T, --no-target-directory]{Ne traite pas la dernière opérande spécialement}
\item[\hspace{6mm} -t DIRECTORY, --target-directory=DIRECTORY]{Utilise \textbf{DIRECTORY} comme répertoire de destination de tous les fichiers. Permet notamment à xarg d'être utilisé convenablement.}
\end{description}
 
\hspace{1mm} exemples: \\
\hspace{1mm} \textbf{ls | xargs mv -t ../d --} \\
\hspace{1mm} Cette commande ne permet pas de déplacer les fichiers commençant par '.' \\
\hspace{1mm} \textbf{find . -mindepth 1 -maxdepth 1 | xargs mv -t ../d} \\
\hspace{1mm} les 2 commandes précédantes échouent s'il n'y a aucun fichier dans le répertoire courant ou si aucun nom de fichier ne contient un blanc ou autre caractère spécial \\
\hspace{1mm} \textbf{find . -mindepth 1 -maxdepth 1 | xargs --null --no-run-if-empty mv -t ../d} \\
 
\vspace{1cm}{\huge Slashs }
 
\
 
\hspace{1mm}  Certains programmes comme \textbf{cp} et \textbf{mv} permettent de supprimer les slashs de chaque argument \textbf{SOURCE} avant de les traiter. l'option \textbf{--strip-trailing-slashes} autorise ce mode.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Traverser les liens }
 
\
 
\hspace{1mm}  Les options suivantes modifient la manière dont \textbf{chown} et \textbf{chgrp} traversent une hiérarchie quand l'option \textbf{--recursive} ou \textbf{-R} est spécifié. Si plus d'une options suivante est spécifiée, seule l'option final prend effet. Ces options spécifient si le traitement d'un lien symbolique vers un répertoire entraine l'opération sur le lien uniquement ou sur tous les fichiers dans ce répertoire.
\vspace{5mm} \\
\hspace{1mm}  Ces options sont indépendantes de \textbf{--dereference} et \textbf{--no-dereference}, qui contrôle si on modifie un lien ou sa référence.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{6mm} -H]{Si --recursive ou -R est spécifié et un argument est un lien vers un répertoire, le traverser}
\item[\hspace{6mm} -L]{Traverse tous lien vers un répertoire qui est rencontré.}
\item[\hspace{6mm} -P]{Ne traverse aucun lien symbolique. (par défaut si -H, -L ou -P ne sont pas spécifiés)}
\end{description}
 
\vspace{1cm}{\huge Traiter '/' spécialement }
 
\
 
\hspace{1mm}  Certaines commandes peuvent opérer de manière destructive sur une hiérarchie entière. Par exemple \textbf{rm -rf /}. Si on veut vraiment détruire tous les fichiers d'un système, on peut utiliser \textbf{--no-preserve-root}, mais le mode par défaut (\textbf{--preserve-option}) est plus sûr. Les commandes \textbf{chgrp}, \textbf{chmod} et \textbf{chown} peuvent aussi être destructeur sur une hiérarchie, ils peuvent donc supporter ces options également.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Utilitaires intégrés }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ]{\textbf{. : break continue eval exit export readonly return set shift times trap unset}<br>Il s'agit d'utilitaires intégrés qui sont standardisés par POSIX. Bash en contient d'autres. Tenter de les lancer via un autre programme comme nice, générera une erreur.}
\end{description}
 
\vspace{1cm}{\huge Conformité des standards }
 
\
 
\hspace{1mm}  Dans certains cas, les utilitaires GNU en mode par défaut sont incompatibles avec le standard posix. Pour supprimer ces incompatibilités, définir la variable \textbf{POSIXLY\_CORRECT}. Les utilitaires GNU sont normalement conforme avec la version \textbf{POSIX} de votre système. Pour les forcer à se conformer à une version \textbf{POSIX} différente, définir la variable d'environnement \textbf{\_POSIX2\_VERSION} à une valeur sous la forme \textbf{YYYYMM} spécifiant l'année et le mois où le standard à été adopté. 2 valeurs sont actuellement supportées : \textbf{199209} et \textbf{200112}
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
