Compare commits

...

3 Commits

Author SHA1 Message Date
18d4bab898 Feat: exercice (->6) système d'exploitation
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-03 17:04:01 +01:00
ee647329d7 Feat: début du chapitre sur les système d'expl 2022-10-29 14:06:26 +02:00
c4b9dde671 Feat: déplace premier bilan du template dans commun 2022-10-29 14:05:32 +02:00
16 changed files with 617 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,249 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usepackage{minted}
\author{Bertrand Benjamin}
\title{Système d'exploitation - Cours}
\date{octobre 2022}
\pagestyle{empty}
\begin{document}
\maketitle
\setcounter{section}{1}
\section{Commandes shell}
\begin{definition}[ Commande shell ]
Une commande shell est constituée du nom de la commande suivi dun ou plusieurs arguments. Des options peuvent être ajoutées pour modifier le comportement de la commande
\begin{center}
\begin{minipage}{0.5\linewidth}
\begin{minted}[bgcolor=base3]{bash}
commande -option1 -option2 ... arg1 arg2...
\end{minted}
\end{minipage}
\end{center}
\end{definition}
\subsection*{Mémo des commandes shell}
\setlength{\columnseprule}{0pt}
\begin{multicols}{2}
\begin{encadre}{\mintinline{bash}{ssh}}
\bigskip
\textbf{Description:} \dotfill \\[0.2cm] .\dotfill \\
\textbf{Exemples:}
\dotfill \\[0.2cm]
.\dotfill \\[0.2cm]
.\dotfill \\[0.2cm]
.\dotfill \\
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{pwd}}
\bigskip
\textbf{Description:} \dotfill \\[0.2cm] .\dotfill \\
\textbf{Exemples:}
\dotfill \\[0.2cm]
.\dotfill \\[0.2cm]
.\dotfill \\[0.2cm]
.\dotfill \\
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{cd [DOSSIER]}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{tree [OPTION]... [DOSSIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{cat [OPTION]... [FICHIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{mv [OPTION]... [SOURCE] [CIBLE]}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{cp [OPTION]... [SOURCE] [CIBLE]}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{touch [FICHIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{rm [OPTION]... [DOSSIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{mkdir [OPTION]... [DOSSIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Options courantes:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\end{itemize}
\bigskip
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\begin{encadre}{\mintinline{bash}{nano [FICHIER]...}}
\bigskip
\textbf{Description:}
\dotfill \\[0.2cm]
.\dotfill \\
\textbf{Exemples:}
\begin{itemize}[leftmargin=*]
\item \dotfill
\item \dotfill
\item \dotfill
\item \dotfill
\end{itemize}
\bigskip
\end{encadre}
\end{multicols}
\end{document}

View File

@@ -0,0 +1,2 @@
user@server:$ cd ~/TP_interaction
user@server:$ tree

View File

@@ -0,0 +1,3 @@
user@server:$ ls *.png
user@server:$ ls *.html
user@server:$ ls image1.*

View File

@@ -0,0 +1,2 @@
user@server:$ touch image{1,2,3}.{png,jpg,jpeg}
user@server:$ touch page_{1,2,3,4}.html

View File

@@ -0,0 +1,24 @@
user@server:$ pwd
/home/user
user@server:$ ls
Desktop Documents Download Pictures Scripts
user@server:$ cd Documents
user@server:$ ls -l
drwxr-xr-x 2 user users 4096 3 sept. 17:22 computing-fundamentals1
drwxr-xr-x 2 user users 4096 3 sept. 17:23 computing-fundamentals2
-rwxr-xr-x 2 user users 4096 3 sept. 17:23 notes.txt
user@server:$ cd ../Scripts
user@server:$ ls -l
drwxr-xr-x 2 user users 4096 3 sept. 17:22 beGood
drwxr-xr-x 2 user users 4096 3 sept. 17:23 WinAll
-rwxr-xr-x 2 user users 4096 3 sept. 17:23 cheat.doc
-rwxr-xr-x 2 user users 4096 3 sept. 17:23 ex1.py
-rwxr-xr-x 2 user users 4096 3 sept. 17:23 index.html
user@server:$ cd ../../
user@server:$ ls
Dan Foo user
user@server:$ ls -a user/Pictures/
. .. Vacances Famille 2022star.png
user@server:$ ls -a ~/
. .. .bashrc .cache .config
Desktop Documents Download Pictures Scripts

View File

@@ -0,0 +1,178 @@
\begin{exercise}[subtitle={Classe renversée}, step={1}, origin={Ma tête}, topics={ Système d'exploitation }, tags={ Linux }, mode={\groupMode}]
Faire des recherches, préparer une diapositive puis faire la présentation de votre réponse à une des questions suivantes
\begin{multicols}{2}
\begin{enumerate}
\item À quoi sert un système d'exploitation ?
\item Quels sont les principaux systèmes d'exploitations et quels sont les liens historiques entre eux?
\item Expliquer ce qu'est un logiciel libre, un logiciel propriétaire et un logiciel gratuit.
\item Comment sont organisés les fichiers sous Linux?
\end{enumerate}
\end{multicols}
\end{exercise}
% ----------
% Étape 2
\begin{exercise}[subtitle={TP - navigation}, step={2}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\infoMode}]
Dans ce TP, nous allons nous déplacer et explorer le serveur où vous aviez déposé vos pages webs. Vous profiterez de ce TP pour compléter le mémo du cours.
\begin{enumerate}
\item \textbf{Connexion au serveur}
\item \textbf{Où suis-je ?} La commande \mintinline{bash}{pwd} permet de savoir quel est répertoire nous sommes. Exécuter cette commande, noter le résultat et reconnaître les différents éléments qui le composent.
\item \textbf{Que fais-je ?} Pour obtenir de l'aide, vous pouvez accéder au manuel des commandes. Pour cela, vous avez deux possibilités (qui dépendent de l'environnement Linux) :
\begin{itemize}
\item Exécuter \mintinline{bash}{man command}.
\item Exécuter \mintinline{bash}{command --help}.
\end{itemize}
Aller chercher l'aide de la commande \mintinline{bash}{pwd} pour compléter le mémo. Vous devrez par la suite explorer le manuel des commandes pour chercher le comportement voulu.
\item \textbf{Qu'y a-t-il ?} Pour lister les fichiers et dossiers du répertoire d'un répertoire, on utilise la commande \mintinline{bash}{ls}.
\begin{enumerate}
\item Lister le contenu du répertoire.
\item Lister le contenu du répertoire avec l'option \mintinline{bash}{-a}. Quel différence y a-t-il avec le résultat sans cette option?
\item Lister le contenu du répertoire avec l'option \mintinline{bash}{-l}. Noter les informations obtenus.
\item Lister le contenu du répertoire \texttt{public\_html}.
\end{enumerate}
On peut aussi utiliser la commande \mintinline{bash}{tree} qui liste les fichiers et dossiers sous forme d'arbre.
\begin{enumerate}
\setcounter{enumi}{4}
\item Exécuter la commande \mintinline{bash}{tree}.
\item Exécuter la commande \mintinline{bash}{tree} avec l'option \mintinline{bash}{-L 1} puis \mintinline{bash}{-L 2}. Que permet de faire cette option?
\end{enumerate}
\item \textbf{Où vais-je ?} Pour se déplacer, on utilisera la commande \mintinline{bash}{cd}.
\begin{enumerate}
\item Afficher le répertoire courant. Se déplacer dans le répertoire \texttt{public\_html}. Puis afficher à nouveau le répertoire courant.
\item Exécuter \mintinline{bash}{cd ../} puis afficher le répertoire courant. Que s'est-il passé ?
\item Recommencer l'opération. Afficher le répertoire courant et lister le contenu du répertoire. Que voyez-vous?
\item Recommencer encore une fois l'opération.
\item Exécuter \mintinline{bash}{cd ~}. Où êtes vous?
\item Exécuter \mintinline{bash}{cd ../../}. Où êtes vous?
\end{enumerate}
\end{enumerate}
\end{exercise}
\begin{exercise}[subtitle={Navigation virtuelle}, step={2}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\paperMode}]
Ci-dessous, vous trouverez un enchainement de commandes shells avec les sorties. Vous devrez dessiner l'arborescence correspondante (les dossiers seront dans des rectangles et les fichiers dans des ovales) et indiquer en bleu les déplacements réalisés.
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/nav_virtu.shell}
\end{minipage}
\end{center}
\end{exercise}
% ----------
% Étape 3
\begin{exercise}[subtitle={TP - interaction}, step={3}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\groupMode}]
Dans ce TP, nous allons nous interagir avec le système de fichier. Vous profiterez de ce TP pour compléter le mémo du cours.
\begin{enumerate}
\item Connecter vous au serveur et assurez vous que vous êtes bien dans votre répertoire personnel.
\item \textbf{Créer des dossiers} avec la commande \mintinline{bash}{mkdir}
\begin{enumerate}
\item Créer un dossier \texttt{TP\_interaction} puis se déplacer dedans.
\item Créer les dossiers \texttt{boulot} \texttt{trash} et \texttt{sauvegarde}.
\end{enumerate}
\item \textbf{Créer un fichier (vide)} avec la commande \mintinline{bash}{touch}
\begin{enumerate}
\item Dans le répertoire \texttt{boulot} créer les fichiers vides suivants
\begin{center}
\texttt{ex1.py} \qquad \texttt{index.html} \qquad \texttt{style.css} \qquad ex2.py
\end{center}
\item Dans ce même répertoire, créer un dossier \texttt{assets} pour y placer un fichier nommé \texttt{image.png}
\item Pour vérifier que tout a été bien fait, en exécutant ces deux commandes, vous devriez avoir le résultat suivant:
\begin{center}
\begin{minipage}{0.8\linewidth}
\VerbatimInput{annexes/TP_inter1.shell}
\includegraphics[scale=0.6]{./fig/TP_interaction_tree1}
\end{minipage}
\end{center}
\end{enumerate}
\item \textbf{Supprimer des fichiers} avec la commande \mintinline{bash}{rm}
\begin{enumerate}
\item Supprimer les fichiers \texttt{ex1.py} et \texttt{ex2.py}
\item Supprimer le dossier \texttt{trash}. Pour cela vous aurez besoin de passer l'option \texttt{-r} pour autoriser la suppression de dossiers.
\end{enumerate}
\item \textbf{Copier des fichiers} avec la commande \mintinline{bash}{cp}
\begin{enumerate}
\item Copier le fichier \texttt{index.html} dans le même répertoire avec le nom \texttt{page1.html}
\item Copier le fichier \texttt{index.html} dans le répertoire \texttt{sauvegarde} en conservant le même nom.
\item Copier tout le dossier \texttt{boulot} dans le répertoire \texttt{sauvegarde}. Vous aurez besoin d'ajouter l'option \texttt{-r} pour autoriser la copie de dossier de façon récursive.
\item Pour vérifier que tout a été bien fait, en exécutant ces deux commandes, vous devriez avoir le résultat suivant:
\begin{center}
\begin{minipage}{0.8\linewidth}
\VerbatimInput{annexes/TP_inter1.shell}
\includegraphics[scale=0.6]{./fig/TP_interaction_tree2}
\end{minipage}
\end{center}
\end{enumerate}
\item \textbf{Renommer/déplacer des fichiers} avec la commande \mintinline{bash}{mv}
\begin{enumerate}
\item Déplacer le fichier \texttt{page1.html} vers \texttt{home.html}
\item Renommer le dossier \texttt{boulot} en \texttt{pageweb}
\item Pour vérifier que tout a été bien fait, en exécutant ces deux commandes, vous devriez avoir le résultat suivant:
\begin{center}
\begin{minipage}{0.8\linewidth}
\VerbatimInput{annexes/TP_inter1.shell}
\includegraphics[scale=0.6]{./fig/TP_interaction_tree3}
\end{minipage}
\end{center}
\end{enumerate}
\item \textbf{Éditer un fichier} avec la commande \mintinline{bash}{nano}.
Mettre une balise \texttt{h1} avec le titre de votre choix dans le fichier \texttt{index.html}
\end{enumerate}
\end{exercise}
\begin{exercise}[subtitle={Europe}, step={3}, origin={Parlez-vous Shell ? de Thomas Hugel chez Ellipses}, topics={ Système d'exploitation }, tags={ Linux }, mode={\computerMode}]
On se place dans le répertoire personnel de l'utilisateur représenté par le raccourci ~.
\begin{enumerate}
\item Dans son répertoire personnel, créer le répertoire ̀̀TP-SHELL puis entrer dans ce répertoire.
\item Créer le répertoire Europe et changer de répertoire courant pour Europe.
\item Écrire une suite de commandes qui permet de construire l'arborescence ci-dessous sans quitter le répertoire Europe. Les fichiers apparaissant avec des rectangles sont des répertoires et les autres sont des fichiers.
\begin{center}
\includegraphics[scale=0.4]{./fig/graphe-europe}
\end{center}
\item Créer dans ~/TP-SHELL une copie de tout le répertoire Europe avec ses sous-répertoires et nommer cette copie Vieille-Europe. Les modifications qui suivent devront être faites dans Europe.
\item Appliquons le traité de Francfort de 1871. Se placer dans le répertoire Prusse et déplacer Belfort dans France puis déplacer Alsace dans Prusse. Revenir dans Europe et renommer Prusseen Allemagne.
\item Depuis Europe, afficher le contenu de Bordeaux puis détruire ce fichier.
\item Appliquons le traité de Versailles de 1919. Depuis France, ramener Alsace en France puis détruire Vieille-Europe.
\end{enumerate}
\end{exercise}
\begin{exercise}[subtitle={Expansion des nom, globbing}, step={3}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\computerMode}]
\begin{enumerate}
\item \textbf{Mise en place} créer un dossier \texttt{globbing}, exécuter la commande suivante (vous n'avez pas à la comprendre) puis afficher la liste des fichiers :
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/globbing_consigne.shell}
\end{minipage}
\end{center}
\item Exécuter les commandes suivantes et noter le résultat.
\begin{center}
\begin{minipage}{0.8\linewidth}
\inputminted[bgcolor=base3]{bash}{./annexes/globbing.shell}
\end{minipage}
\end{center}
\item Que représente l'opérateur \texttt{*} ?
\item Écrire une commande qui affiche les éléments suivants
\begin{multicols}{2}
\begin{enumerate}[leftmargin=*]
\item Tous les fichiers qui se terminent pas la lettre g.
\item Tous les fichiers jpg et jpeg.
\item Tous les fichiers avec un 1 dans le nom.
\item Tous les fichiers qui commencent par la lettre p.
\end{enumerate}
\end{multicols}
\end{enumerate}
\end{exercise}
% ----------
% Étape 4
\begin{exercise}[subtitle={Gestion des droits}, step={4}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\groupMode}]
\end{exercise}
% ----------
% Étape 4
\begin{exercise}[subtitle={Hacking}, step={5}, origin={<++>}, topics={ Système d'exploitation }, tags={ Linux }, mode={\groupMode}]
\end{exercise}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,73 @@
Système d'exploitation
######################
:date: 2022-10-29
:modified: 2022-11-03
:authors: Benjamin Bertrand
:tags: Linux
:category: 1NSI
:summary: Les systèmes d'exploitation et ligne de commande
Elements du programme
=====================
.. list-table:: Architectures matérielles et systèmes dexploitation
:header-rows: 1
* - Contenus
- Capacités attendues
- Commentaires
* - Systèmes d'exploitation
- Identifier les fonctions dun système dexploitation. Utiliser les commandes de base en ligne de commande. Gérer les droits et permissions daccès aux fichiers.
- Les différences entre systèmes dexploitation libres et propriétaires sont évoquées. Les élèves utilisent un système dexploitation libre. Il ne sagit pas dune étude théorique des systèmes
Progression
===========
Étape 1: système d'exploitation, classe renversée
-------------------------------------------------
Questions pour les élèves
- À quoi sert un système d'exploitation ?
- Quels sont les principaux systèmes d'exploitations et quels sont leurs liens historiques ?
- Différences entre logiciel libre et logiciel propriétaires.
- Il me faut une 4e question
Les élèves cherchent à la maison des réponses à ces questions. En classe et en groupe, ils font une synthèse, préparent une diapo puis présentent leur réponse à l'oral.
Le bilan se fera à partir des diapos commentées et complétées.
Étape 2: Ligne de commande: Navigation
--------------------------------------
Cours: anatomie d'une commande shell
.. image:: ./1B_command_memo.pdf
:height: 200px
:alt: Commande linux
TP: dans les TPs (navigation, interaction et droits) de découverte de quelques commandes shell, les élèves seront amenés à compléter une fiche mémo sur les commandes: leur fonction, les arguments et quelques options.
Commandes vues dans le TP navigation:
ssh ls pwd tree cd
Bilan: mise en commun du mémo, représentation de l'arborescence de fichiers, système de fichiers Linux.
Exercices techniques sur ordinateur ou au papier.
Étape 3: Ligne de commande: interaction
---------------------------------------
Commandes vues dans le TP navigation:
cat touch mkdir cp mv nano
Bilan: mise en commun de la fiche mémo
Exercices techniques sur ordinateur ou au papier.
Étape 4: Gérer les droits
-------------------------

Binary file not shown.

View File

@@ -0,0 +1,58 @@
\documentclass[a4paper,12pt]{article}
\usepackage{myXsim}
\usepackage{minted}
\author{Benjamin Bertrand}
\title{Système d'exploitation - Plan de travail}
\tribe{1NSI}
\date{octobre 2022}
\pagestyle{empty}
\DeclareExerciseCollection{banque}
\xsimsetup{
}
\begin{document}
\maketitle
% Résumé
\bigskip
Savoir-faire de la séquence
\begin{itemize}
\item Identifier les fonctions dun système dexploitation.
\item Utiliser les commandes de base en ligne de commande.
\item Gérer les droits et permissions daccès aux fichiers.
\end{itemize}
\section{Système d'exploitation}
\listsectionexercises
\section{Navigation en ligne de commande}
\listsectionexercises
\section{Interactions en ligne de commande}
\listsectionexercises
\section{Gestion des droits}
\listsectionexercises
\section{Tout ensemble}
\listsectionexercises
\pagebreak
\input{exercises.tex}
\printcollection{banque}
\end{document}

View File

@@ -0,0 +1,28 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usetikzlibrary{shapes.geometric}
\author{Benjamin Bertrand}
\title{Systeme d'exploitation - Solutions}
\tribe{1NSI}
\date{octobre 2022}
\DeclareExerciseCollection{banque}
\xsimsetup{
exercise/print=false,
solution/print=true,
}
\pagestyle{empty}
\begin{document}
\maketitle
\input{exercises.tex}
%\printcollection{banque}
%\printsolutions{exercises}
\end{document}