You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15 KiB

TP 1

Prenez le temps de découvrir votre environnement. Vous êtes connecté sous un gestionnaire de fenêtre qui s'appelle Gnome. Sous Linux, les gestionnaires de fenêtre sont légion. Quelques-uns sont disponibles à l'IUT. Nous vous conseillons d'essayer Xfce, et pour ceux qui connaissent déjà Linux, i3.

On peut changer le gestionnaire de fenêtre sur l'écran de connexion, après avoir entré son login.

Gameshell

Gameshell est un petit jeu pour apprendre les bases de la ligne de commande.

Installation

Cette étape est à faire une seule fois. GameShell est un projet libre. Nous allons le récupérer avec git.

Ouvrez un terminal et copiez-collez la ligne suivante (Vous pouvez simplement la sélectionner avec la souris puis la coller avec le bouton du milieu dans votre terminal).

git clone https://github.com/phyver/GameShell.git

Lancement du jeu

cd GameShell
./start.sh

Application directe du cours

Faites les missions de 1 à 11.

Il faut réfléchir un peu plus

Avancez jusqu'à la mission 20. N'hésitez pas à ouvrir un autre terminal pour faire du man sur les commandes présentées.

Un peu plus classique comme sujet

1 - utilisation du mode graphique

Quelques précisions utiles :

  • Linux est le nom du noyau, GNU est le projet qui est à l'origine de l'essentiel de l'écosystème de logiciels autour du noyau (dont le shell et les commandes de base). Les contributeurs à l'ensemble du parc logiciel sont nombreux.
  • Il existe souvent beaucoup de logiciels candidats à la réalisation d'une même tâche. Ainsi, on peut choisir son gestionnaire de bureau parmi de nombreux candidats (Gnome3 par défaut sous debian stable, mais aussi kde, xfce, enlightenment, icewm, fvwm, fluxbox...) qui n'auront pas tous la même apparence. De même, la plupart des outils sont disponibles sous plusieurs formes. Choisissez ce qu'il vous plait.

GNU/Linux offre évidemment des outils permettant de naviguer dans l'arborescence des fichiers. Selon votre environnement graphique ces outils porteront des noms différents. Si vous utilisez l'environnement graphique Gnome, il s'agit de nautilus pour la navigation dans les fichiers (vous pouvez y accéder en cliquant, par exemple, sur l'icône poste de travail) et par exemple gedit pour l'édition de fichiers textes.

A - Dans un premier temps, naviguez dans l'arborescence des fichiers de votre ordinateur et repérez qu'il n'y a pas de notion de partition apparente comme sous Windows (Exemple; "C:", "D:"). Jetez un œil particulier au répertoire /home qui contient les répertoires des utilisateurs, dont votre répertoire personnel dans /home/UCA.

B - Dans un second temps, à l'aide de l'interface graphique vous allez créer l'arborescence suivante dans votre répertoire home.

  • systeme
    • tp1
      • question1
      • question2

C - Utilisez ensuite un éditeur de texte de votre choix (geany par exemple) pour créer 2 fichiers textes que vous sauvegarderez dans le répertoire question1 précédemment créé. Le premier fichier (fichier1.txt) va contenir le texte suivant:

UNIX : Système d'exploitation multi-utilisateur et multitâche mis au point en 1969 par Ken Thompson et Dennis Ritchie, au sein des laboratoires Bell, entité possédée à l'époque par AT&T et sa filiale Western Electric.

Ce système a subi de nombreuses évolutions, dont la principale a été son écriture en langage C dans la première moitié des années 1970, ce qui a facilité son portage sur tout type de processeur. La plupart des grands constructeurs ont ensuite offert leur propre version d'Unix: AIX chez IBM, HP-UX chez Hewlett-Packard, Solaris chez Sun, etc.

Il a inspiré le développement du système libre Linux. Le nom Unix serait un clin d'oeil à son prédécesseur, MULTICS (Multiplexed Information and Computing Service), développé à la fin des années 1960 au Massachusetts Institute of Technology.

Celui-ci mettait en oeuvre pour la première fois le modèle de système d'exploitation en couches, encore en vigueur aujourd'hui. Pour afficher ses origines, Unix s'est d'abord écrit UNICS, pour UNiplexed Information and Computing Service.

Dans le second fichier (fichier2.txt) vous copierez 10 fois le texte ci-dessus. Pour ce faire, essayez la méthode usuelle (CTRL+C / CTRL+V) mais essayez aussi la méthode avec uniquement la souris, utilisable partout sous Linux : sélectionnez à la souris votre texte à copier (juste en surlignant le texte), puis placez votre curseur sur l'endroit où coller et pressez sur le bouton central de la souris (ou la molette) pour réaliser le « coller ».

2- utilisation du mode texte pour la gestion des fichiers

Ouvrez un terminal (que nous appellerons parfois abusivement shell ). Par défaut le terminal s'ouvre en vous positionnant dans votre répertoire personnel, appelé « home directory ». Vous pourrez à tout moment vous y replacer en tapant la commande « cd » sans argument.

A - Situez votre répertoire personnel en essayant la commande « pwd »

B - En utilisant la commande « cd », rendez vous dans les répertoires suivants et visualisez leur contenu : / puis /etc puis /etc/init.d puis /var/log et enfin revenez dans votre home. Réalisez ces opérations en utilisant des chemins absolus et relatifs.

C - Revenez dans votre home puis entrez dans le répertoire systeme précédemment créé

<note tip> La commande cd - permet de revenir dans le dernier répertoire quitté.</note>

D - Essayez la commande « ls » qui permet de lister le contenu du répertoire, vous devriez voir apparaître le répertoire tp1 à l'écran. Affichez ensuite l'arborescence de ce répertoire en utilisant la commande « tree » ; Une autre façon d'effectuer cela est d'utiliser la commande ls en ajoutant l'option -R « ls -R »

E - Déplacez vous dans le répertoire question1 et affichez le contenu des deux fichiers que vous avez créé en question n°1 ; pour le premier, la commande « cat » sera suffisante (mettez le nom de fichier en argument); pour le second, essayez avec les commandes « cat, more ou less » (tapez 'q' pour quitter less).

F - D'autres commandes permettent un affichage sélectif d'un fichier, regardez les pages de manuel (commande man commande) de « tail » et « head ». A quoi servent ces commandes ? Affichez les 8 premières lignes et les 8 dernières lignes du second fichier.

G - Déplacez vous maintenant dans le répertoire question2 précédemment créé. La commande « mkdir » permet de créer un répertoire. Vous allez créer 6 sous répertoires appelés reponseA, reponseB, ..., reponseF ; pour ce faire, vous utiliserez le rappel des commandes précédentes en utilisant les flèches haut et bas du clavier.

H Créez un répertoire supplémentaire : reponseH/solution1 avec la commande suivante : « mkdir [option à trouver] reponseH/solution1 » Pour ce faire vous devez trouver l'option permettant de créer à la fois le répertoire reponseH et le répertoire solution1 sans quoi la commande vous renverra une erreur. Utilisez le manuel pour cela.

I Cherchez la commande permettant de supprimer un répertoire vide à l'aide de la commande "apropos". Utilisez les mots clefs directory ou répertoire selon la langue de vos pages de manuel. Supprimez le répertoire reponseA.

J La commande « cp » permet de copier des fichiers ; les pages de manuel vous indiqueront comment l'utiliser. A l'aide de cette commande, copiez les fichiers fichier1.txt et fichier2.txt dans le répertoire reponseB ; vérifiez que votre arborescence est bonne à l'aide de la commande (non standard) « tree » et éventuellement du navigateur graphique.

K Copiez maintenant le fichier fichier1.txt dans le répertoire reponseB, en le nommant .fichier1.txt (attention il y a un « . » devant le nom du fichier. Listez ensuite les fichiers du répertoire responseB ; voyez vous votre fichier ? essayez avec l'option « -a » qui permet d'afficher les fichiers cachés. Qu'en concluez vous ?

L La commande « rm » permet de supprimer des fichiers, essayez la pour supprimer le fichier1.txt qui se trouve dans le répertoire question1.

M Cette commande ne permet pas de supprimer un répertoire : faites l'essai en essayant de supprimer le répertoire reponseH ; cherchez dans le manuel quelle option doit alors être utilisée pour effacer les sous-répertoires.

3 - utilisation des alias

Un alias est une commande stockée dans une variable. L'usage principal est de personnaliser ses commandes en ajoutant des options ou en définissant ses propres commandes. Les alias sont gérés directement par le shell lui même, vous trouverez donc plus de documentation dans la page de man de bash.

<note tip> Il est possible de faire des recherches dans les pages de manuel en tapant '/unMot' (pas d'espace sauf à condition de le faire précéder par un anti-slash '\'), l'occurrence suivante sera atteinte en tapant simplement « n » . Pour "remonter" d'une occurrence 'p'. Pour revenir en début 'Home' et pour aller à la fin 'Fin'. Pour quitter le man tapez "q".</note>

A Vous allez créer des alias de commande. Commençons par des choses inutiles : créez un alias appelé bonjour qui exécutera la commande suivante « echo bonjour à toi xxxxx » où xxxx est votre prénom. Exécutez ensuite la commande bonjour.

B Supprimez cet alias décidément inutile.

C Passez en revue les options de la commande « ls » à partir du manuel et créez des alias sur les options vous semblant intéressantes (3 options différentes de votre choix).

D Ouvrez une seconde fenêtre de terminal, vous constaterez que vos alias ne fonctionnent pas dans cette nouvelle fenêtre. Pour les rendre permanents, vos alias doivent être exécutés à chaque lancement de nouveau shell. Avec le navigateur graphique, éditez le fichier .bashrc situé dans votre répertoire home (Si vous ne le trouvez pas, copier /etc/skel/.bashrc dans votre ~). Ce fichier contient une liste de commandes qui seront exécutées par chaque nouveau shell. Ajoutez en fin de fichier vos alias, sauvegardez, ouvrez un nouveau shell et testez.

4 - Quelques questions en plus

A Quelle commande permet de déplacer des fichiers ? illustrez.

B Quelle commande permet de renommer un fichier ? illustrez.

C Comment afficher le manuel de la commande en langage C printf au lieu de celui de la commande Unix printf ? (regardez dans man man et choisissez la bonne section)

D Où se trouve le programme correspondant à la commande ls ? (commande which)

E Quel type de données contiennent les fichiers suivants ? /sbin/ifconfig et /etc/hosts ? (commande file)

F Quelle est la taille occupée par votre répertoire home et ses sous répertoires ? (commandes « du » et « quota » )

5 - Personnalisation de votre environnement

La personnalisation de votre environnement utilisateur sous Unix passe principalement par deux aspects: personnaliser son gestionnaire de fenêtre et personnaliser son shell.

Si vous êtes responsable de votre compte (cf. la charte informatique que vous devez avoir validé), vous en êtes aussi le gestionnaire et vous êtes en droit d'en faire un outil agréable pour travailler.

Personnaliser son shell

Certaines variables permettent de configurer le shell. Elles sont définies dans les pages de manuel du shell, c'est à dire bash dans votre cas. Etudiez les valeurs que peut prendre la variable PS1. A quoi sert PS1 ? Essayez de modifier cette valeur dans votre shell en lui affectant une nouvelle valeur : PS1=... Remarque : attention à ne pas mettre d'espace avant et après le symbole « = »

Fichier de configuration du shell
  • Chargé à chaque lancement du shell: .bashrc . Si ce fichier n'existe pas chez vous, copiez en une copie depuis '/etc/skel/: cp /etc/skel/.bashrc ~
  • Chargé à chaque connexion: .bash_profile
  • Chargé à chaque déconnexion: .bash_logout
Choisir son shell

Au passage, vous avez aussi le choix dans les shell: nous utilisons bash, le shell utilisateur par défaut sous debian. Nous essayons néanmoins de nous restreindre à la partie normalisée (Posix) de bash. Vous pouvez aussi essayer zsh, un shell avec plein de fonctionnalités supplémentaires, ou dash, un shell simple, Posix, destiné à l'exécution rapide de scripts.

Personnaliser son gestionnaire de fenêtre

Paramétrer Gnome3

Gnome3 est le gestionnaire de fenêtre par défaut sous Debian. Voici quelques liens pour vous aider à le configurer un peu plus que ce qui est possible avec une installation de base.

Changer de gestionnaire de fenêtre

Les goûts pour les gestionnaires de fenêtre/bureau, ça ne se discutent pas! À vous de trouver celui qui vous plaît le plus! Voici un liste de ce qui est disponible à l'IUT, avec plein de parti pris :

  • gnome3 : + ergonomie novatrice, + plein de gadgets, - gros consommateur de ressources, - ergonomie en rupture avec nos habitudes, - besoin de 3d pour fonctionner.
  • kde : + beaucoup de fonctionnalités, + plein de gadgets, + grande intégration des applications entre elles, - gros consommateur de ressources.
  • xfce: + simple et efficace, + consomme peu de ressources & rapide, - pas le truc pour frimer (sobre).
  • windowmaker: + assez joli bien que simple, + consommation de ressources raisonnable, - évolution lente et WM vieillissant.
  • enlightenment: + consommation de ressources très faible, + très versatile, - manque d'utilitaires.

Saines lectures linuxiennes ou libristes (et francophones... pour commencer)

  • linuxfr, forum d'utilisateurs de logiciel libre.
  • Linux Arverne, un GULL (Groupe d'Utilisateurs de Logiciels Libres) auvergnat (Association + mailing list).
  • Lea Linux, un site de présentations de logiciels libres avec pas mal de doc vraiment très simples.
  • Framasoft, une association de promotion du libre avec pas mal de services proposés (livres en ligne, annuaire de logiciel, forums...)