%===============================================================================
%   CLASSE ET PACKAGES                                                         %
%========================                                                      %
	\documentclass[11pt,oneside,french,a4paper]{article}                       %
%===============================================================================
%	\usepackage{amsfonts}       % Ens. Math. : $\mathbb{R}$ = ens. des réels   %
%	\usepackage{amsmath}        % Mathématiques                                %
%	\usepackage{amssymb}        % Symbols, grec ; O de complex. : $\mathcal{O}$%
%	\usepackage{array}          % Tableaux                                     %
%	\usepackage{booktabs}       % Tableaux pro                                 %
	\usepackage{color}          % Pour utiliser les couleurs                   %
	\usepackage{colortbl}       % Tableaux en couleur                          %
	\usepackage[left=1cm,top=1cm,right=1cm,bottom=1cm]{geometry}               %
%	\usepackage{graphicx}       % Inclusion graphiques                         %
	\usepackage{multicol}       % Édition sur plusieurs colonnes               %
%	\usepackage{multirow}       % Cellules tableaux sur plusieurs lignes       %
%	\usepackage{numprint}       % Nb avec espacements (\numprint{+-4,5e6,7})   %
	\usepackage{setspace}       % Gestion interlignes                          %
	\usepackage{tabularx}       % Encore des tableaux                          %
	\usepackage[normalem]{ulem} % \u(u)line \uwave \(s|x)out \(dash|dot)uline  %
	\usepackage{xcolor}         % Texte en couleur                             %
	\usepackage{xspace}         % Espaces après macros                         %
	\usepackage[unicode]{hyperref} % Liens hypertextes                         %
%===============================================================================
	\begingroup\expandafter\expandafter\expandafter\endgroup                   %
	\expandafter\ifx\csname directlua\endcsname\relax% compilé avec LuaTeX ?   %
	    \usepackage[french]{babel}  % Langue                                   %
	    \usepackage[utf8]{inputenc} % Encodage                                 %
	    \usepackage[T1]{fontenc}    % Encodage : T1 = Norme Latex              %
	    \usepackage{lmodern}        % Fontes                                   %
%	    \usepackage{mathptmx}       % Fontes Adobe Times Roman                 %
%	    \usepackage{mathrsfs}       % Fontes amstex                            %
	    \renewcommand{\familydefault}{\sfdefault}                              %
	\else                                                                      %
	    \usepackage{luatextra}              % Paquet pour LuaTeX               %
	    \defaultfontfeatures{Ligatures=TeX} % Conserver les ligatures          %
		%\setmainfont{Linux Libertine O}
		\setmainfont{Linux Biolinum O}
		%\setsansfont{Linux Biolinum O}
		%\setmonofont{Inconsolata}
	    \usepackage{polyglossia}                                               %
	    \setdefaultlanguage{french}                                            %
		\newcommand\og{« }
		\newcommand\fg{ »\xspace}
	\fi                                                                        %
%===============================================================================
%   OPTIONS, COULEURS, MACROS                                                  %
%=============================                                                 %
	\hypersetup{                                                               %
	    linktoc=all,                                                           %
	    breaklinks,                                                            %
	    colorlinks,                                                            %
	    linkcolor=black,                                                       %
	    citecolor=black,                                                       %
	    urlcolor=blue,                                                         %
	    baseurl       = http://,                                               %
	    pdfpagelayout = OneColumn, % pdfpagelayout=SinglePage                  %
	    pdfstartpage  = 1,                                                     %
	    pdfcreator    = {\LaTeX{}},                                            %
%	    pdfproducer   = {\LaTeX{}},% Contient automatiquement le compilateur   %
	    bookmarksopen = true,                                                  %
	    bookmarksdepth= 2,% montrer les sections et sous-sections              %
	    pdfauthor     = {Quentin MONNET},
	    pdftitle      = {Commandes de base en console sous Linux},
	    pdfsubject    = {unix cheat sheet},
	    pdfkeywords   = {unix, console, linux, refcard}
	}                                                                          %
%===============================================================================
\newcommand\apriori{\textit{a~priori}\xspace}                                           %
\newcommand\aposteriori{\textit{a~posteriori}\xspace}                                   %
\newcommand\defacto{\textit{de~facto}\xspace}                                           %
\newcommand\eg{\textit{e.g.}\xspace}                                                    %
\newcommand\ie{\textit{i.e.}\xspace}                                                    %
\newcommand\via{\textit{via}\xspace}                                                    %
\newcommand\etc{\textit{et~cætera}\xspace}                                              %
%===============================================================================
%   META                                                                       %
%==========                                                                    %
\title{Commandes de base en console sous Linux\\\normalsize\textit{version~1.2}}
\date{}
\pagestyle{empty}
%===============================================================================
%===============================================================================
%   START
%===========
\begin{document}
\renewcommand{\labelitemi}{\textbullet}
\newcommand{\hd}{\raise.17ex\hbox{$\scriptstyle\mathtt{\sim}$}}
\renewcommand{\hline}{\noalign{\hrule height .6px}}
%===============================================================================
\maketitle
\thispagestyle{empty}
%===============================================================================
\vspace{-1em}
\noindent Dans les exemples qui suivent, \textit{foo} est un nom de fichier; \textit{dir} est un nom de dossier; \textit{cmd} est une commande.
\vfill
\begin{multicols}{2}
    \noindent \textbf{Commandes de base \uuline{à connaître}}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{red!40!white}}l|>{\small}X|}
        \hline
        \texttt{man} \textit{cmd}       & obtenir de l'aide sur \textit{cmd}\\
        \texttt{man man}                & obtenir de l'aide sur l'utilisation du manuel\\
        \hline
        \texttt{help} \textit{cmd\_sh}   & obtenir de l'aide sur une commande interne du shell (exemples: \texttt{pwd}, \texttt{cd}, \texttt{if}, \texttt{for}, \texttt{while}, \texttt{jobs}, \texttt{test})\\
        \hline
        \texttt{pwd}                    & afficher le nom du répertoire de travail\\
        \hline
        \texttt{cd} \textit{dir}        & se rendre dans \textit{dir}\\
        \texttt{cd}                     & se rendre dans son répertoire principal\\
        \texttt{cd \hd}                 & idem\\
        \texttt{cd ..}                  & se rendre dans le répertoire parent\\
        \texttt{cd -}                   & retourner dans le répertoire précédent\\
        \hline
        \texttt{ls}                     & lister les éléments du répertoire de travail\\
        \texttt{ls} \textit{dir}        & lister les éléments de \textit{dir}\\
        \texttt{ls -a} \textit{dir}     & idem (+ fichiers cachés)\\
        \texttt{ls -l} \textit{dir}     & idem (+ d'info)\\
        \hline
        \textit{programme} \texttt{\&}  & lancer \texttt{programme} (exemple: \texttt{gedit \&})\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Gestion des fichiers}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{green!40!white}}l|>{\small}X|}
        \hline
        \texttt{cp}    \textit{foo dir}         & copier \textit{foo} dans \textit{dir}\\
        \texttt{cp -r}    \textit{dir1 dir2}    & copier \textit{dir1} dans \textit{dir2}\\
        \hline
        \texttt{mv}    \textit{foo1 foo2}       & renommer \textit{foo1} en \textit{foo2} (écrase si \textit{foo2} existe déjà)\\
        \texttt{mv}    \textit{foo dir}         & déplacer \textit{foo} dans \textit{dir} (écrase si \textit{dir/foo} existe déjà)\\
        \hline
        \texttt{rm}    \textit{foo}             & supprimer \textit{foo} définitivement\\
        \texttt{rm -i} \textit{foo}             & idem, avec confirmation\\
        \texttt{rm -r} \textit{dir}             & supprimer \textit{dir} (et contenu)\\
        \hline
        \texttt{mkdir} \textit{dir}             & créer \textit{dir} dans le répertoire de travail\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Lecture, affichage des fichiers}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{blue!40!white}}l|>{\small}X|}
        \hline
        \texttt{touch} \textit{foo} & créer \textit{foo}\\
        \texttt{cat}   \textit{foo} & afficher le contenu de \textit{foo}\\
        \texttt{head}  \textit{foo} & afficher les 10 premières lignes de \textit{foo}\\
        \texttt{tail}  \textit{foo} & afficher les 10 dernières lignes de \textit{foo}\\
        \texttt{less}  \textit{foo} & lire \textit{foo} (touche \texttt{q} pour quitter)\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Recherche}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{orange!40!white}}l|>{\small}X|}
        \hline
        \texttt{grep} \textit{motif} \textit{foo}               & chercher \textit{motif} dans \textit{foo}\\
        \texttt{locate} \textit{foo}                            & chercher \textit{foo}\\
        \texttt{find} \textit{dir} \texttt{-name} \textit{foo}  & chercher \textit{foo} dans \textit{dir}\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Redirection}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{cyan!40!white}}l|>{\small}X|}
        \hline
        \textit{cmd} \texttt{\textgreater} \textit{foo}                 & rediriger la sortie de \textit{cmd} dans \textit{foo} (écraser \textit{foo} s'il existe)\\
        \textit{cmd} \texttt{\textgreater{\textgreater}} \textit{foo}   & rediriger la sortie de \textit{cmd} dans \textit{foo} (à la suite du contenu existant)\\
        \textit{cmd} \texttt{\textless} \textit{foo}                    & prendre les arguments de \textit{cmd} dans \textit{foo}\\
        \hline
        \textit{cmd1} \texttt{|} \textit{cmd2}                          & donner le résultat de \textit{cmd1} en argument à \textit{cmd2} (exemple: \texttt{head foo | grep azerty}: rechercher \og azerty\fg dans les 10 premières lignes de \textit{foo})\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Gestion des processus}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{blue!30!green!40!white}}l|>{\small}X|}
        \hline
        \texttt{ps}         & afficher la liste des processus en cours\\
        \texttt{ps auxf}    & idem (+ d'info)\\
        \hline
        \texttt{top}        & affichage dynamique des informations sur les processus\\
        \hline
        \texttt{su}         & démarrer une session administrateur\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Connexion en ssh}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{yellow!40!white}}l|>{\small}X|}
        \hline
        \texttt{ssh} \textit{login}\texttt{@}\textit{serveur}       & se connecter sur \textit{serveur} avec le compte \textit{login}\\
        \texttt{ssh} \textit{serveur} \texttt{-l} \textit{login}    & idem\\
        \texttt{ssh -X} \textit{login}\texttt{@}\textit{serveur}    & idem, avec session graphique\\
        \hline
    \end{tabularx}

    \bigskip
    \vfill
    \noindent \textbf{Raccourcis clavier}\vspace{3pt}\\
    \begin{tabularx}{\linewidth}{|>{\columncolor{purple!40!white}}l|>{\small}X|}
        \hline
        \texttt{TAB}            & complétion automatique\\
        \texttt{TAB TAB}        & complétion automatique (plusieurs choix)\\
        \texttt{flèche haut}    & répéter la dernière commande\\
        \texttt{CTRL+C}         & arrêter le processus en cours\\
        \texttt{CTRL+D}         & fin de session\\
        \hline
    \end{tabularx}

\end{multicols}
\vfill

Ne pas hésiter à consulter les pages du manuel Linux pour obtenir plus d'informations sur ces commandes.
De nombreuses commandes affichent aussi une aide simplifiée si elles sont appelées sans argument, ou alors avec les options \texttt{-h} ou \texttt{-{-}help} en guise d'argument.

On trouve sur Internet de nombreux documents plus élaborés, le plus souvent en anglais (des \textit{refcards} ou bien des \textit{cheat sheets}).
Quelques exemples:
\begin{itemize}
    \item \url{http://steve-parker.org/sh/cheatsheet.pdf}
    \item \url{http://files.fosswire.com/2007/08/fwunixref.pdf}
\end{itemize}
\vfill

%===============================================================================
%===============================================================================

\end{document}
