%% licence RAFRAB(*)
%%
%% RAFRAB : rien à f**tre, rien à battre, fais ce qu'il te plait dans la vie
%%

\documentclass[french]{beamer}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usetheme{Warsaw}

\title{Rappels sur Linux (Unix)}
\author{}\institute{Agence universitaire de la Francophonie}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section{Généralités}
\frame{\tableofcontents[current]}

\begin{frame}
Linux est un noyau de la «famille» Unix.
\begin{itemize}
\item multi-tâches (processus) et multi-utilisateurs
\item «tout» est fichier
\item particularité de Linux : licence GPL
\end{itemize}

Une distributions «Linux» c'est :
\begin{itemize}
\item le noyau Linux
\item entouré de beaucoup de logiciels GNU, d'où le nom GNU/Linux
\item mais aussi d'autres systèmes, outils et licences (X11, Gnome, KDE, Mozilla, Apache, BSD, Artistic, ...)
\item un installateur et un système de gestion de \textit{paquets logiciels} pour uniformiser le tout.\end{itemize}
\end{frame}

\section{Commandes de base}
\frame{\tableofcontents[current]}


\begin{frame}
Utilisation en ligne de commande :
\begin{itemize}
\item On se \textit{loggue} (identification puis authentification)
\item On obtient alors un terminal ... (\textit{tty})
\item ... sur lequel un interpréteur de commandes (\textit{shell}) attend les ordres.
\end{itemize}

\begin{center}
Format classique d'une commande : \\
\texttt{nom [-options] [arguments]}
\end{center}
\end{frame}

\begin{frame}
Se déplacer dans l'arborescence
\begin{itemize}
\item \texttt{pwd} : afficher le répertoire courant
\item \texttt{cd} : changer de répertoire
\item écriture absolue et relative des fichiers
\item \texttt{cd ~}, \texttt{cd}, \texttt{cd ..} 
\end{itemize}
\end{frame}

\begin{frame}
Voir le contenu d'un répertoire
\begin{itemize}
\item \texttt{ls} : liste les fichiers
\item \texttt{ls -l}, \texttt{ls -a}, \texttt{ls -la} 
\item trop d'options ? \texttt{man ls} !
\end{itemize}
\end{frame}

\begin{frame}
Quelques manipulations sur les fichiers
\begin{itemize}
\item \texttt{cp}, \texttt{mv}, \texttt{ln} : \textit{source destination}
\item \texttt{rm} : attention, quand ça efface c'est effacé
\item les «jokers» \texttt{?} et \texttt{*}
\item \texttt{rm} et le fameux \texttt{rm -rf /}
\end{itemize}
\end{frame}

\begin{frame}
Le contenu des fichiers (uniquement fichiers textes)
\begin{itemize}
\item voir : \texttt{cat}, \texttt{more}, \texttt{less}, ...
\item modifier : \texttt{vi}(\texttt{m}), \texttt{emacs}, \texttt{nano}, ...
\item attention à l'encodage : éviter les accents sur les fichiers systèmes,
essayer de rester en ASCII 7bits
\end{itemize}
\end{frame}

\section{Tubes et redirections}
\frame{\tableofcontents[current]}



\begin{frame}
Tubes : le symbole \texttt{|} (\textit{pipe})
\begin{itemize}
\item \texttt{less} 
\item \texttt{ls -lRat /}
\item \texttt{ls -lRat / | less}
\item on envoie le résultat d'une commande dans l'entrée d'une autre
\end{itemize}
\end{frame}

\begin{frame}
Redirections : \texttt{> >> < << \textit{n}> >\& }
\begin{itemize}
\item \texttt{commande > fichier} et \texttt{commande >> fichier}
\item \texttt{commande < fichier}
\item \texttt{commande < fichier1 > fichier2}
\item subtil mais utile : \texttt{commande > fichier 2>\&1}
\item utilisation du trou noir \texttt{/dev/null}
\end{itemize}
\end{frame}

\section{Utilisateurs, processus, fichiers}
\frame{\tableofcontents[current]}


\begin{frame}
Les utilisateurs
\begin{itemize}
\item Qui suis-je ? \texttt{id}
\item Les fichiers \texttt{/etc/passwd}, \texttt{/etc/group}
\item \texttt{adduser} et \texttt{addgroup}
\item \texttt{/etc/shadow} et associés
\end{itemize}
\end{frame}


\begin{frame}
Les processus
\begin{itemize}
\item \texttt{ps} et \texttt{top}
\item anatomie d'un processus : PID, PPID, UID, GID, code, données, i/o, ...
\item ce que peut faire un processus (\textit{syscall}), notion de contexte
\item \texttt{kill} : les signaux
\item \texttt{/proc}
\end{itemize}
\end{frame}

\begin{frame}
Les fichiers (permissions)
\begin{itemize}
\item droits sur les fichiers
\item \texttt{chown} et \texttt{chmod}
\item différents types de fichiers (notammment les répertoires : signification des droits)
\end{itemize}

Les permissions sur les fichiers sont vues au travers des processus car chaque
processus appartient à un utilisateur. C'est en fonction de ce propriétaire que
le noyau sait ce qu'un processus a le droit de faire sur un fichier donné.
\end{frame}

\section{Petites notions autour du noyau}
\frame{\tableofcontents[current]}


\begin{frame}

Au passage, quelques petites notions autour du noyau...

\begin{itemize}
\item notion d'espace utilisateur \textit{vs} espace noyau
\item contexte et gestion de MMU
\item les divers grands rôle du noyaux : mm, fs (réels et virtuels), net, drivers
\end{itemize}
\end{frame}

\end{document}
