#### complément au cours 1 de débrouille informatique pour les masters IPGP LinuX : c'est le système, c'est à dire l'organisation imposée à votre ordinateur lors de l'installation (expl. Ubuntu, Centos, Red Hat ...) UNIX : c'est un ensemble de commandes utilisé par LinuX et Mac développées en langage sh, bash, csh, tcsh. Il s'agit globalement du langage "shell script". CPU : Central Processing Unit, ou Processeur. Unité de calcul d'un ordinateur, unité de mémoire vive Terminal : interface graphique qui tient lieu d'espace de dialogue entre l'utilisateur et l'ordinateur. Home : c'est mon dossier personnel sur Linux ## Naviguer dans l'arborescence : Sous windows, l'interface pour naviguer et passer les commandes, c'est le "clic". Double-clic ouvre ou exécute, clic sur la croix ferme etc. Sous Linux, on peut aussi utiliser le clic car des interfaces graphiques de simplification ont été mise au point. Mais, on peut aussi "parler" avec l'ordinateur via le Terminal nautilus & ls = "qu'est ce qu'il y a dans ce dossier ? " cd XXX = "je vais dans le dossier XXX" pwd : "où suis-je ?" Chaque dossier ou fichier est localisé dans l'ordinateur par ce qu'on appelle son "chemin", c'est à dire là où il est rangé dans l'arboresence. ../ = "le dossier général juste avant là où je suis" Quand vous ouvrez un terminal, vous vous retrouvez par défaut dans votre "home". C'est l'équivalent du "dossier personnel" sous windows. c'est chez vous. ~ = "mon dossier personnel, mon home" cd ~ = "ramène moi chez moi" Si vous avez un doute sur votre identité telle que détectée par l'ordinateur la commande "whoami" ou "who -m " vous donnera votre identité. Linux est conçu pour travailler à plusieurs sur la même machine. C'est pour ça qu'il est très employé dans les laboratoires. On installe Matlab par exemple ou un programme libre compliqué sur une machine accessible à tous et chacun peut venir y travailler. Du coup, vous n'êtes pas seuls sur la machine, et cela se traduit dans l'organisation de l'arborescence. La commande "who" vous donnera l'identité de l'ensemble des utilisateurs présents à ce moment là sur la machine. / = "le dossier de base, dit racine" Dans cette racine commune à tous, il y a les différents programmes de l'ordinateur et sa configuration rangés dans différents dossier. Vous devriez retrouver les dossiers : home : l'ensemble des utilisateurs hébergés par votre ordinateur bin : l'ensemble des exécutables écrits en langage binaire (suite de 1 et de 0) media : l'ensemble des médias montés sur l'ordinateur (clé usb, lecteur cd ou dvd, disque dur externe etc) dev : l'ensemble des ports de l'ordinateurs c'est à dire de ses constituants, connectés ou non à un média. lib : ensemble des librairies de commandes installées sur l'ordinateur. ## Que fait l'ordinateur ? Sous Windows, impossible de savoir ce que l'ordinateur est en train de faire effectivement. Souvent, votre ordi plante parcequ'il est en train d'exécuter des programmes en secret (antivirus, mises à jour automatiques etc) et que vous lui demandez en plus de faire quelquechose d'un peu long. Du coup il explose. Sous Linux, on peut savoir ce que fabrique son ordinateur, qui a lancé quel programme dessus et quand, et quelle mémoire est disponible encore pour travailler. ps PID TTY TIME CMD ID du processus - numéro du périphérique - depuis quand est-il en train de tourner ? - commande l'ayant lancé ps -u donne le % de CPU utilisés par chaque commande ps -au donne le % de CPU utilisés par chaque commande lancée par l'ensemble des utilisateurs ## Agir sur l'ordinateur : les commandes, organiser son arborescence, générer, ouvrir et gérer des fichers. Nous avons vu qu'il existe un certain nombre de commandes qui permettent de se déplacer dans l'ordinateur. Chaque commande a une synthaxe propre qu'il faut respecter si on veut obtenir le résultat souhaité. De façon générale, la syntaxe classique est : commande -OPTIONS ARGUMENT Chaque commande possède une page de manuel sur l'ordinateur. On peut la lire directement dans le terminal en tapant : "man nomdelacommande" Par exemple, nous allons créer un fichier de texte avec la commande "gedit" ou "edit" selon les machines. tapez "gedit" puis entrée. tapez une phrase de texte dans la fenêtre qui vient de s'ouvrir et enregistrez votre document sous le titre truc.txt essayez d'utiliser le terminal pour lui demander qui vous êtes. A priori, vous ne pouvez pas. L'ordinateur est dévoué à la tâche gedit que vous lui avez donné. Il existe deux solutions pour "reprendre la main" : - CTRL Z pour suspendre la commande puis "bg" dans le terminal qui veut dire "la commande lancée s'effectue en background de mon travail sur le terminal". - relancer la commande gedit en ajoutant le symbole & : "gedit &" puis entrée. quittez gedit. man gedit ouvrez à nouveau test.txt gedit test.txt & %%% lire un fichier texte : voir l'ensemble des fichiers simples en .txt : gedit, edit, nedit faire dérouler un fichier .txt : more voir la fin du fichier .txt : tail, tail -n 2 ouvrir un fichier open office ou word : oowriter (et ses copains oocalc, oodraw, ooffice : tapez oo et tabulation pour les voir) %%% voir une image : mozilla & : ouvre le navigateur internet. allez chercher l'image que vous voulez et enregistrez là dans votre home si c'est une image en .pdf : acroread, kpdf, xpdf ... si c'est une image en .ps ou .eps : evince, display, gv, ggv ... si c'est une image en .jpg ou .png : display, gimp ... Qu'est ce que c'est que tous ces formats ? Les extensions vous précisent la nature de l'image que vous avez téléchargée. Essayez de faire "more fichierimage" Parfois, vous allez avoir des signes bizarres qui s'affichent car vous avez essayé d'ouvrir un fichier codé en binaire. tapez "reset" Si votre image était un fichier .ps ou .eps, vous allez voir défiler le code source de l'image écrit dans le langage post script. L'image est une suite de commande. Les programmes de visualisations savent lire ce code pour le transformer en support graphique. Certaines images sont dites "vectorielles" par opposition aux images "matricielles", c'est à dire qu'elles sont codées comme une multitude de formes de base qui peuvent être individualisées et modifiées une par une si on a le logiciel qui convient pour les lire (Postscript, PDF, Adobe Flash, Illustrator ou le SVG). C'est un format très utile, mais très lourd qui permet d'avoir une résolution parfaite. Les images "matricielles" ou bitmap, ne sont pas découpables en petites unités de forme et ont une précision moindre, mais sont nettement plus légères. Elles sont composées de pixels qui limitent la résolution. Logiciels créateurs d'images vectorielles : illustrator (non libre), inkscape... Logiciels créateurs d'images matricielles : open office draw, paint (non libre), gimp... Maintenant qu'on sait créer des fichiers texte ou des images, on peut jouer avec. mkdir images : créé un dossier "image" mv XXX ../. : déplace le fichier XXX dans le répertoire juste au dessus mv XXX images/. : déplace le fichier XXX dans le dossier images. mv *.jpg images/. : dépace tous les fichiers qui sont des .jpg dans images. mv r*.jpg images/. : dépace tous les fichiers qui commencent par "r" et qui sont des .jpg dans images. mkdir sauvegardes : créé le dossier "sauvegarde" cp images/XXX sauvegardes/. : copie le fichier XXX situé dans images dans le fichier sauvegarde. cp images/* sauvegardes/. : copie tous les fichiers du dossier images dans le fichier sauvegarde. cp -r images sauvegardes/. : copie le dossier "images" à l'intérieur du dossier "sauvegarde". rm XXX : "rm" est la commande "remove" qui supprime les fichiers XXX ou les dossiers si on lui ajoute l'option -r (rm -r XXX) rm -r images : supprime l'intégralité du dossier images. ### Les permissions : contrôler qui a le droit de faire quoi. Linux permet d'établir des contrôles sur l'accessibilité de vos fichiers et de vos données, et protège aussi le système d'un utilisateur malveillant ou maladroit. Dans votre home, tapez "ls" puis "ls -l" L'option "-l" ou "long" vous donne une description longue des fichiers présents dans votre home. Notamment, les droits d'accès, de modification et d'exécution de chaque fichier, sur la gauche de la ligne pour l'utilisateur, le groupe et le propriétaire. Puis, le nom du propriétaire du fichier et la taille du fichier et enfin la date de création du fichier. rwxrwxrwx : tout le monde à le droit de lire (read), de modifier (write) et d'exécuter (x) le fichier rwx------ : seul le propriétaire et le super utilisateur (le root) ont le droit de lire, d'écrire et d'exécuter le fichier. rwxr--r-- : les autres utilisateurs que le root ou le propriétaire ont uniquement le droit de consulter le fichier. "ls -la" : affiche les propriétés de tous les fichiers y compris les fichiers "cachés". Ces fichiers sont les fichiers de configuration de l'environnement et certains raccourcis dont le nom commence par un "." . -rw-r--r-- 1 marianne marianne 1592 Feb 8 2011 .bashrc Ce fichier .bashrc est mon fichier personnel de configuration. Je l'ai modifié selon ce qui m'étais utile et ce que je préferais (par exemple, écrire sur mon terminal en vert fluo). Je ne veux pas que quelqu'un d'autre que moi y touche. Je suis donc propriétaire de mon fichier et vous n'avez pas le droit d'y toucher. Par contre, je veux bien que vous alliez le lire (r--). On peut changer les permissions de ses fichiers (évidemment pas de ceux des autres s'ils ont été bien protégés sinon ça serait trop facile...) grâce à la commande "chmod" (change mode). Pour un fichier : chmod [u g o a] [+ - =] [r w x] nom_du_fichier Pour le contenu d'un répertoire (de façon récursive) : chmod -R [u g o a] [+ - =] [r w x] nom_du_répertoire * u propriétaire (user) * g groupe (group) * o les autres (other) * a tous (all) Les abréviations rwx peuvent être remplacées par leur valeur "octale" : Droit Valeur alphanumérique Valeur octale aucun droit --- 0 exécution seulement --x 1 écriture seulement -w- 2 ecriture et exécution -wx 3 lecture seulement r-- 4 lecture et exécution r-x 5 lecture et écriture rw- 6 tous les droits rwx 7 Ainsi, si je voulais que tout le monde puisse lire, écrire et éxécuter mon .bashrc : chmod a+rwx .bashrc ou chmod a+777 .bashrc Et si je me rends compte que je me suis trompée et que je veux que les autres utilisateurs ne puissent que lire mon fichier chmod o-wx .bashrc Pour changer les permissions d'un dossier, il faut utiliser "chdir" (change directory). Pour changer le propriétaire d'un fichier, utiliser "chown" (change owner). Attention à utiliser avec modération. ### Trouver sur l'ordinateur locate matlab : recherche l'exécutable matlab dans l'ordinateur et sort le chemin d'accès à cet exécutable. find . -name "test.txt" : recherche à partir du répertoire courant "." le fichier dont le nom est test.txt. et aussi : grep, whereis, which ... ### Mon environnement personnalisé... env : vous donne l'ensemble des "variables" qui décrivent l'endroit où vous êtes dans l'ordinateur. Ses caractéristiques, vos droits à l'intérieur etc. regarder par exemple la variable PWD. Elle change selon l'endroit où vous exécutez la commande env. $$$ Pour retrouver l'ensemble des commandes que vous avez tapées lors de ce cours, utilisez la commande "history" $$$$$$$