====== 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''. Attention, ce qui est visible de l'internet est visible du monde entier ! === 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''. echo 'echo coucou `whoami` !' > salut.sh 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''. Question : Où est placée la commande ''which'' ? 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. 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''. ==== 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 : echo 'print("Salut les 1A !")' > salut.py Vous venez de créer un fichier ''salut.py'' qui sera exécutable par le programme (fichier) ''python3''. 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...) Si vous êtes dans le répertoire //dropbox// la commande : python3 salut.py 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 ?