Linux introduction/fr: Difference between revisions
(Created page with "Il est important de noter que pour pouvoir lire ou écrire dans un répertoire, il est nécessaire d'avoir l'accès en exécution (<tt>x</tt>) dans tous les répertoires paren...") |
(Created page with "La commande <tt>ls -la</tt> donne ensuite un nombre, suivi du nom du propriétaire du fichier, du nom du groupe du fichier, de la taille du fichier, de la date de sa dernière...") |
||
Line 92: | Line 92: | ||
Il est important de noter que pour pouvoir lire ou écrire dans un répertoire, il est nécessaire d'avoir l'accès en exécution (<tt>x</tt>) dans tous les répertoires parents, jusqu'à la racine '''<tt>/</tt>''' du système de fichiers. Ainsi, si votre répertoire personnel a les permissions <tt>drwx------</tt> et qu'il contient un sous-répertoire avec les permissions <tt>drwxr-xr-x</tt>, les autres usagers ne pourront pas lire le contenu de ce sous-répertoire, car ils n'ont pas l'accès en exécution au répertoire parent. | Il est important de noter que pour pouvoir lire ou écrire dans un répertoire, il est nécessaire d'avoir l'accès en exécution (<tt>x</tt>) dans tous les répertoires parents, jusqu'à la racine '''<tt>/</tt>''' du système de fichiers. Ainsi, si votre répertoire personnel a les permissions <tt>drwx------</tt> et qu'il contient un sous-répertoire avec les permissions <tt>drwxr-xr-x</tt>, les autres usagers ne pourront pas lire le contenu de ce sous-répertoire, car ils n'ont pas l'accès en exécution au répertoire parent. | ||
La commande <tt>ls -la</tt> donne ensuite un nombre, suivi du nom du propriétaire du fichier, du nom du groupe du fichier, de la taille du fichier, de la date de sa dernière modification et de son nom. | |||
The <tt>chmod</tt> command allows you to change file permissions. The simple way to use it is to specify which permissions you wish to add or remove to which type of user. To do this, you specify the list of users (<tt>u</tt> for the owner, <tt>g</tt> for the group, <tt>o</tt> for other users, <tt>a</tt> for all), followed by a <tt>+</tt> to add permissions or <tt>-</tt> to remove permissions, which is then followed by a list of permissions to modify (<tt>r</tt> for read, <tt>w</tt> for write, <tt>x</tt> for execute). Non-specified permissions are not affected. Here are a few examples: | The <tt>chmod</tt> command allows you to change file permissions. The simple way to use it is to specify which permissions you wish to add or remove to which type of user. To do this, you specify the list of users (<tt>u</tt> for the owner, <tt>g</tt> for the group, <tt>o</tt> for other users, <tt>a</tt> for all), followed by a <tt>+</tt> to add permissions or <tt>-</tt> to remove permissions, which is then followed by a list of permissions to modify (<tt>r</tt> for read, <tt>w</tt> for write, <tt>x</tt> for execute). Non-specified permissions are not affected. Here are a few examples: |
Revision as of 18:25, 24 May 2016
Cet article s'adresse aux utilisateurs de systèmes Windows ou Mac ayant peu ou pas d'expérience sous environnement UNIX. Il devrait vous donner les bases nécessaires pour accéder aux serveurs de calcul et être rapidement capable de les utiliser.
La connexion aux serveurs utilise le protocole SSH en mode texte. Vous ne disposez pas d'une interface graphique, mais d'une console. Notez que les exécutables Windows ne fonctionnent pas sur nos serveurs, à moins d'utiliser un émulateur.
Obtenir de l'aide
En général, les commandes sont documentées dans les manuels de référence disponibles sur les serveurs. Vous pouvez y accéder à partir du terminal :
[nom@serveur ~]$ man command
man utilise less (voir section Visualiser et éditer des fichiers); il faut appuyer sur q pour quitter le programme.
Pour trouver des pages de manuel se rapportant à un sujet ou mot-clé, vous pouvez taper :
[nom@serveur ~]$ apropos sujet
Par convention, les exécutables contiennent eux-mêmes une aide sur la façon dont ils doivent être utilisés
En général, on invoque cette aide en passant -h ou --help en argument à la commande et, dans certains cas, -help.
S'orienter sur le système
Au moment de la connexion, vous serez dirigé dans le répertoire $HOME (terme UNIX pour dossier ou répertoire) de votre compte utilisateur. Lors de la création d'un compte, le $HOME ne contient rien d'autre que des fichiers de configuration qui sont cachés (fichiers préfixés par un « . »).
Dans un système Linux, il est fortement déconseillé de créer des fichiers ou répertoires dont les noms contiennent des espaces ou des caractères spéciaux; ces caractères spéciaux incluent les accents.
Lister le contenu d'un répertoire
Pour lister les fichiers d'un répertoire dans un terminal, on utilise la commande ls (list) :
[nom@serveur ~]$ ls
Pour inclure les fichiers cachés :
[nom@serveur ~]$ ls -a
Pour trier les résultats par date (du plus récent au plus ancien) plutôt qu'en ordre alphabétique :
[nom@serveur ~]$ ls -t
Pour obtenir des informations détaillées sur les fichiers (permissions d'accès, propriétaire, groupe, taille et date de dernière modification) :
[nom@serveur ~]$ ls -l
L'option -h donne la taille des fichiers dans un format aisément lisible par les humains.
Les options peuvent être combinées, par exemple :
[nom@serveur ~]$ ls -alth
Pour se déplacer dans le système de fichiers, on utilise la commande cd (change directory).
Ainsi, pour se déplacer dans mon_répertoire, on tapera :
[nom@serveur ~]$ cd mon_répertoire
Pour revenir au dossier parent, on tapera :
[nom@serveur ~]$ cd ..
Enfin, pour revenir à la racine de son compte utilisateur ($HOME) :
[nom@serveur ~]$ cd
Créer et supprimer des répertoires
Pour créer un répertoire, on utilise la commande mkdir (make directory) :
[nom@serveur ~]$ mkdir mon_répertoire
Pour supprimer un répertoire, on utilise la commande rmdir (remove directory) :
[nom@serveur ~]$ rmdir mon_répertoire
La suppression d'un répertoire avec cette méthode ne fonctionnera que si celui-ci est vide.
Supprimer des fichiers
On efface des fichiers grâce à la commande rm (remove) :
[nom@serveur ~]$ rm mon_fichier
On peut effacer un répertoire récursivement :
[nom@serveur ~]$ rm -r mon_répertoire
TRANSLATOR'S NOTE maybe this command belongs in the previous section on folders??
L'option (potentiellement dangereuse!) -f peut être utile pour passer outre les demandes de confirmation de suppression et poursuivre l'opération après une erreur.
Copier et renommer des fichiers ou répertoires
Pour copier un fichier on utilise la commande cp (copy) :
[nom@serveur ~]$ cp fichier_source fichier_destination
Pour copier récursivement un répertoire :
[nom@serveur ~]$ cp -R dossier_source dossier_destination
Pour renommer un fichier ou un dossier, on utilise la commande mv (move) :
[nom@serveur ~]$ mv fichier_source fichier_destination
Cette commande permet aussi de déplacer un dossier. Remplacez alors fichier_source par dossier_source et fichier_destination par dossier_destination.
Permissions associées aux fichiers
Un système UNIX comporte trois niveaux de permission : lecture (r), écriture (w) et exécution (x). Pour un fichier, il faut que le fichier soit accessible en lecture pour être lu, en écriture pour qu'on puisse le modifier et en exécution pour l'exécuter (si c'est un exécutable ou un script). Pour un répertoire, il faut la permission de lecture pour en lister le contenu, la permission d'écriture pour en modifier le contenu (ajouter ou supprimer un fichier) et la permission d'exécution pour modifier le répertoire.
Les permissions s'appliquent à trois types d'utilisateurs : le propriétaire (u), le groupe (g) et les autres personnes (o). Pour connaitre les permissions associées aux fichiers et sous-répertoires du répertoire courant, on utilise la commande :
[nom@serveur ~]$ ls -la
Les 10 caractères au début de chaque ligne indiquent les permissions. Le premier caractère indique le type de fichier :
- - : un fichier normal
- d : un répertoire
- l : un lien symbolique
Ensuite, de gauche à droite, on trouve les permissions en lecture, en écriture et en exécution du propriétaire, du groupe et des autres utilisateurs. Voici quelques exemples :
- drwxrwxrwx : un répertoire accessible en lecture et en écriture par tous
- drwxr-xr-x: un répertoire qui peut être listé par tous, mais où seul le propriétaire peut ajouter ou supprimer des fichiers
- -rwxr-xr-x: un fichier exécutable par tous, mais qui ne peut être modifié que par son propriétaire
- -rw-r--r-- : un fichier lisible par tous, mais qui ne peut être modifié que par son propriétaire
- -rw-rw---- : un fichier qui peut être lu et modifié par son propriétaire ou par son groupe
- -rw------- : un fichier qui ne peut être lu ou modifié que par son propriétaire
- drwx--x--x : un répertoire qui ne peut être listé ou modifié que par son propriétaire, mais par lequel tous peuvent passer pour se rentre à un sous-répertoire plus profond
- drwx-wx-wx : un répertoire dans lequel tous peuvent écrire, mais dont seul le propriétaire peut lister le contenu
Il est important de noter que pour pouvoir lire ou écrire dans un répertoire, il est nécessaire d'avoir l'accès en exécution (x) dans tous les répertoires parents, jusqu'à la racine / du système de fichiers. Ainsi, si votre répertoire personnel a les permissions drwx------ et qu'il contient un sous-répertoire avec les permissions drwxr-xr-x, les autres usagers ne pourront pas lire le contenu de ce sous-répertoire, car ils n'ont pas l'accès en exécution au répertoire parent.
La commande ls -la donne ensuite un nombre, suivi du nom du propriétaire du fichier, du nom du groupe du fichier, de la taille du fichier, de la date de sa dernière modification et de son nom.
The chmod command allows you to change file permissions. The simple way to use it is to specify which permissions you wish to add or remove to which type of user. To do this, you specify the list of users (u for the owner, g for the group, o for other users, a for all), followed by a + to add permissions or - to remove permissions, which is then followed by a list of permissions to modify (r for read, w for write, x for execute). Non-specified permissions are not affected. Here are a few examples:
- Prevent group members and all others to read or modify the file secret.txt:
[name@server ~]$ chmod go-rwx secret.txt
- Allow everybody to read the file public.txt:
[name@server ~]$ chmod a+r public.txt
- Make the file script.sh executable:
[name@server ~]$ chmod a+x script.sh
- Allow group members to read and write in the directory shared:
[name@server ~]$ chmod g+rwx shared
- Prevent other users to read or modify your home directory:
[name@server ~]$ chmod go-rw ~
Viewing and editing files
Viewing a file
To view a file read-only, use the less command:
[name@server ~]$ less file_to_view
You can then use the arrow keys or the mouse wheel to navigate the document. You can search for something in the document by typing /what_to_search_for. You can quit less by pressing the q key.
Comparing two files
The diff command allows you to compare two files:
[name@server ~]$ diff file1 file2
The -y option shows both files side by side.
Searching within a file
The grep command allows you to look for a given expression in one
[name@server ~]$ grep 'tata' file1
or multiple files.
[name@server ~]$ grep 'tata' fil*
.
Note that, in Linux, the "*" wildcard matches zero or more characters. The "?" wilcard matches exactly one character.
The text to be searched for can also be variable. For example, to look for the text "number 10 » or "number 11", etc. with any number between 10 and 29, the following command can be used:
[name@server ~]$ grep 'number [1-2][0-9]' file
A regular expression must be used for the search text. To learn more about regular expressions,
look at the following sites:
A very complete list of regular expressions