Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:unix:fichiers [2016/10/04 15:03] fbruckerpublic:unix:fichiers [2016/10/11 10:10] (Version actuelle) pprea
Ligne 1: Ligne 1:
 +====== Fichiers ======
 +
 +===== les droits =====
 +
 +Chaque fichier unix (c'est à dire à peu près tout) possède des droits d'utilisation. Cet [[http://www.tuteurs.ens.fr/unix/droits.html|article]] expose en détail la gestion des droits. 
 +
 +==== Catégories de droits ==== 
 +
 +Il existe trois catégories de droits :
 +  - ceux liés à l'utilisateur (''**u**ser''),
 +  - ceux liés à son (ou ses) groupes (''**g**roup''),
 +  - les autres utilisateurs (''**o**ther'').
 +
 +Et trois possibilités :
 +  - lire (''**r**ead'') son contenu,
 +  - écrire (''**w**rite'') ou effacer,
 +  - exécuter (''e**x**ecute''). Si le fichier est un programme on peut l'exécuter et si c'est un dossier on peut y accéder.
 +
 +On peut connaitre les droits d'un dossier ou de fichiers en :
 +  * accédant à la partie **propriétés... > permissions** en cliquant droit sur un élément du **gestionnaire de fichiers**
 +  * en utilisant l'argument ''-l'' de la commande ''ls''.
 +
 +==== A faire ====
 +
 +=== Quels sont vos droits ? ===
 +
 +  - En utilisant un **gestionnaire de fichier**, regardez les permissions de votre dossier html par exemple, ou bien du fichier ''index.html'' placé dans le dossier ''html'' de votre voisin .
 +  - Testez les commandes ''whoami'' et ''groups'' dans un **émulateur de terminal**. A quoi servent-elles ?
 +
 +=== Changeons les droits ! ===
 +
 +Créez un répertoire que vous nommerez //dropbox//, choisissez une image de l'internet et sauvegardez la dans le repertoire créé. 
 +
 +  - //Je te vois//. Par défaut, votre voisin peu cliquer sur l'image pour la voir. Testez le.
 +  -//Je ne te vois plus//. Modifiez les droits pour que seul vous puissiez voir l'image.
 +
 +=== Ligne de commande ===
 +
 +Pour voir les droits des fichiers, on utilisera l'argument ''-l'' de ''ls''. La commande pour changer les droits est ''chmod''. Utilisez cet [[http://www.tuteurs.ens.fr/unix/droits.html|article]] pour refaire ce que vous avez fait précédemment en utilisant l'**émulateur de terminal**.
 +
 +
 +==== Fichiers visible de l'internet ====
 +
 +Vous pouvez mettre à disposition de l'internet des fichiers (attention à ce que vous faites...). Vous pouvez voir les fichiers que vous mettez à disposition là : [[http://monlogin.perso.centrale-marseille.fr/visible/]]. Il faut bien sur changer //monlogin// en //votre login//.
 +
 +Le dossier visible de l'internet est dans le dossier : ''html/visible''. Pour rendre un fichier non téléchargeable il faut modifier les droits pour ''**o**ther''
 +
 +<note>
 +Attention, ce qui est visible de l'internet est visible du monde entier ! 
 +</note>
 +
 +=== A faire === 
 +
 +Testez cette fonctionnalité en mettants deux images dans votre visible, une visible de tout le monde, et une uniquement visible pour vous.
 +
 +Tout marche-t-il correctement ?
 +
 +
 +===== Compression et décompressions de fichiers =====
 +
 +Il est d'usage de transmettre les dossiers ou les fichiers volumineux en les compressant. Dans le monde unix 2 formats sont communément utilisés :
 +  - le format ''zip'' (permet de compresser tout un dossier)
 +  - le format ''tar.gz'' (on commence par utiliser l'utilitaire tar qui rassemble tout en un seul fichier, que l'on compresse ensuite)
 +
 +
 +==== A faire ==== 
 +
 +  - En utilisant le **gestionnaire de fichier** compressez le répertoire //dropbox// de la partie précédente des deux façons (cliquez droit sur le répertoire puis ''créer une archive''). Placez ces deux fichiers sur votre visible.
 +  - récupérez ces deux fichiers depuis le visible de votre voisin et décompressez les dans un dossier ''temp'' que vous aurez créé dans votre répertoire racine (votre maison).
 +  - refaire tout ça en utilisant les lignes de commandes :
 +    - commandes ''zip'' (lisez le **man**, il faut utiliser l'argument -r) et ''unzip''
 +    - commandes ''tar czvf'' et ''tar xzvf'' (que signifient les arguments ?)
 +
 +===== Fichiers exécutables =====
 +
 +
 +==== Un exemple ====
 +
 +Copiez-coller la ligne suivante dans un **terminal**. Puis appuyez sur la touche ''enter''.
 +
 +<code bash> 
 +echo 'echo coucou `whoami` !' > salut.sh
 +</code>
 +
 +
 +Vous venez de créer un fichier nommé  ''salut.sh'' dans le repertoire courant. Vérifiez-le (en utilisant la commande ''ls'').
 +
 +Ce fichier est un script qui peut être exécuté. 
 +
 +  - Commencez par voir l'intérieur du fichier (vous pourrez par exemple utiliser la commande ''cat salut.sh'' dans un **terminal**, ou afficher le contenu du fichier en utilisant le **gestionnaire de fichier**) 
 +  - puis permettez à tout le monde de l'exécuter en changeant ses droits),
 +  - enfin exécuter le fichier en tapant la commande ''./salut.sh'' (qui va exécuter le fichier nommé ''salut.sh'' présent le répertoire courant ''./'').
 +  - méditez sur le résultat obtenu.
 +
 +
 +==== Les chemins d'accès ==== 
 +
 +Dans le monde unix, rien n'est magique. Tout ce qui est tapé dans un **émulateur de terminal** est un fichier placé dans un dossier. La commande ''cat'' de tout à l'heure est un fichier par exemple. Pour savoir où est ce fichier, on pourra utiliser la commande ''which''
 +
 +Si vous tapez ''which cat'' puis ''enter'', on vous indiquera où est placé la commande ''cat''
 +
 +<note> Question : Où est placée la commande ''which''
 +</note>
 +
 +Seule une petite quantité de dossiers est scanné pour savoir s'il contient une commande. Ces dossiers sont visible dans la variable ''PATH''. Tapez ''echo $PATH'' pour connaitre ces répertoires.
 +
 +<note> 
 +Vous remarquerez que votre répertoire n'y apparait pas. C'est pourquoi il a fallut taper ''./salut.sh'' pour exécuter le fichier ''salut.sh'' et pas juste ''salut.sh''
 +</note>
 +
 +==== A faire ==== 
 +
 +=== Les commandes === 
 +
 +Trouvez où est placé le fichier ''python3'' et ''pycharm.sh'' que vous utiliserez dans le module algorithmie.
 +
 +=== les fichiers de données === 
 +
 +Dans votre répertoire //dropbox// exécutez le code suivant : 
 +
 +<code bash> 
 +echo 'print("Salut les 1A !")' > salut.py
 +</code>
 +
 +Vous venez de créer un fichier ''salut.py'' qui sera exécutable par le programme (fichier) ''python3''.
 +
 +<note>
 +Il existe des éditeurs pour terminal performant et plus ou moins user friendly comme ''pico'', ''nedit'' ou encore  l'inusable ''vim'' (attention, lisez le manuel avant de vous en servir...)
 +</note>
 +
 +Si vous êtes dans le répertoire //dropbox// la commande : 
 +
 +<code bash> 
 +python3 salut.py
 +</code>
 +
 +Doit fonctionner. Que fait-elle ?
 +
 +Placez vous maintenant dans votre répertoire racine. Retapez la commande précédente. Il doit y avoir une erreur. Pourquoi ?
 +
 +