Différences entre versions de « Introduction au système d'exploitation UNIX/LINUX »
Ligne 388 : | Ligne 388 : | ||
− | ;''ln -s rep lien'':Créer un lien symbolique ''lien'' qui pointe vers le répertoire ''rep''. (Voir la commande ln pour plus d'information concernant les fichiers) | + | ;''ln -s rep lien'':Créer un lien symbolique ''lien'' qui pointe vers le répertoire ''rep''. Lorsqu'on veut créer un lien vers un répertoire, ce lien doit nécessairement être symbolique. Le commutateur ''-s'' est donc obligatoire. (Voir la commande ln pour plus d'information concernant les liens vers des fichiers) |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Manipulation de fichiers === | ||
+ | |||
+ | Toutes les commandes présentées ici peuvent prendre en paramètre aussi bien un répertoire qu'un fichier. | ||
+ | |||
+ | |||
+ | |||
+ | ;''ls [-alrt] [rep | fic] ...'':Afficher les informations concernant le fichier ''fic'' ou les fichiers contenus dans le répertoire ''rep'' Si ''rep'' n'est pas indiqué, on utilise le répertoire de travail courant. | ||
+ | |||
+ | |||
+ | ;-a :Afficher l'information de tous les fichiers, y compris les fichiers cachés | ||
+ | ;-l :Afficher toute l'information concernant les fichiers: permissions, date de modification, grosseur | ||
+ | ;-t :Afficher l'information en triant en fonction de la date de modification des fichiers, du plus récent au plus vieux | ||
+ | ;-r :Inverser le mode de trie pour l'affichage | ||
+ | |||
+ | Exemple: | ||
+ | |||
+ | Afficher le contenu du répertoire ../src par date de modification croissante: | ||
+ | ls -alrt ../src | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''touch fich | rep ...'':Créer le fichier ''fich'' s'il n'existe pas ou changer la date de modification du fichier ''fich'' (ou du répertoire ''rep'') si celui-ci existe. | ||
+ | |||
+ | Exemple: | ||
+ | touch fic1 fic2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''rm [-rf] fich ...'':Détruire le fichier ''fich''. | ||
+ | |||
+ | ;-r: Pour détruire de façon récursive un répertoire et tout son contenu | ||
+ | ;-f : Pour forcer la destruction sans demande de confirmation | ||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Effacer le répertoire projets et tout son contenu: | ||
+ | rm -rf projets | ||
+ | |||
+ | Effacer les fichiers fic1 et fic2: | ||
+ | rm fic1 fic2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''cp [-Rp] fich ... dest'': Copier le fichier ''fich'' vers ''dest''. Si ''dest'' est un répertoire le fichier ''fich'' est copié dans le répertoire ''dest'' | ||
+ | |||
+ | ;-R : Copie récursive d'un répertoire et de son contenu | ||
+ | ;-p : Appliquer les permissions de fich à dest | ||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Copier le répertoire projets/doc et tout son contenu dans le répertoire projets/web en conservant les permissions | ||
+ | cp -Rp projets/doc projets/web | ||
+ | |||
+ | Copier le fichier fic1 dans fic2 | ||
+ | cp fic1 fic2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''mv source ... dest'': Déplacer le fichier ou répertoire ''source'' vers ''dest''. Si ''dest'' est un répertoire le fichier ''source'' est déplacé dans le répertoire ''dest''. | ||
+ | Si ''source'' est un répertoire, il est déplace vers ''dest''. | ||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Déplacer (renommer) le fichier fic1 vers fic2 | ||
+ | mv fic1 fic2 | ||
+ | |||
+ | Déplacer (renommer) le répertoire rep1 vers rep2 | ||
+ | mv rep1 rep2 | ||
+ | |||
+ | Déplacer tous les fichier du répertoire rep1 vers rep2 | ||
+ | mv rep1/* rep2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''ln [-s] source dest'': Créer un lien ''dest'' qui pointe vers ''source''. On peut ainsi avoir un même fichier qui porte plusieurs noms. Si l'option ''-s'' n'est pas utilisée, on crée un lien réel vers ''source'' (hard link). Tant qu'il existe un lien réel vers un fichier, ce fichier existe et son contenu est accessible. Lorsqu'on utilise l'otion ''-s'', on crée un lien symbolique vers ''dest''. Si on supprime ''dest'', son contenu est perdu bien que le lien symbolique toujours existant. Le lien pointe alors vers un fichier (ou répertoire) inexistant. | ||
+ | |||
+ | ;-s : Créer un lien symbolique (soft link). L'option ''-s'' est obligatoire lorsque ''source'' est un répertoire ou lorsque ''source'' et ''dest'' résident sur des systèmes de fichiers différents. | ||
+ | |||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Créer un lien fic2 qui pointe vers le fichier fic1. I faut détruire fic1 et fic2 pour effacer le fichier | ||
+ | ln fic1 fic2 | ||
+ | |||
+ | Créer un lien symbolique (racourci) fic2 qui pointe vers fic1. Si fic1 est effacé, le lien fic2 pointe vers un fichier inexistant. | ||
+ | ln -s fic1 fic2 | ||
+ | |||
+ | Créer un lien symbolique (racourci) rep2 qui pointe vers rep1. Si rep1 est effacé, le lien rep2 pointe vers un répertoire inexistant. | ||
+ | ln -s rep1 rep2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''file fich ...'' : Obtenir de l'information concernant le type du fichier ''fich'': texte, binaire, data,... | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''chown [-R] usager[:groupe] fic ...'' | ||
+ | ;''chown [-R] :groupe fic ...'' :Modifier les paramètres d'apartenance du fichier ou répertoire ''fic''. | ||
+ | |||
+ | ;-R : Modifier le rértoire ''fic'' et tout son contenu (comportement récursif) | ||
+ | |||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Donner le fichier à l'usager caveenj | ||
+ | chown caveenj fic | ||
+ | |||
+ | Donner les fichiers fic1 et fic2 à l'usager sennevil et à tous les membres du groupe climat | ||
+ | chown sennevil:climat fic1 fic2 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ;''chmod [-R] mode fic ...'' : Modifier les droits d'accès fichier ou répertoire ''fic''. Pour qu'un usager puisse lire ou modifier un fichier (ou répertoire) ou bien exécuter un programme, il faut que des droits d'accès lui aient été attribués. Chaque fichier possède des droits d'accès pour le propriétaire, le groupe et tous les autres utisateurs. On peut visualiser ces permissions au moyen de la commande ''ls -l''. | ||
+ | |||
+ | |||
+ | ;-R : Modifier le rértoire ''fic'' et tout son contenu (comportement récursif) | ||
+ | |||
+ | |||
+ | Exemples de permissions: | ||
+ | |||
+ | ls -l XWin.log <br /> | ||
+ | -rw-r--r-- 1 pscavj01 Administ 3215 Jan 27 18:56 XWin.log <br /><br /> | ||
+ | indique que le fichier est en mode lecture-écriture (rw-) pour le propriétaire pscavj01, en mode lecture pour le groupe Administ (r--) et en mode lecture pour tous les autres usagers (r--). | ||
+ | |||
+ | ls -l XWin <br /> | ||
+ | drwxr-xr-- 1 pscavj01 Administ 3215 Jan 27 18:56 XWin <br /><br /> | ||
+ | indique qu'il s'agit d'un réertoire (le d en début de ligne) et qu'il est en mode lecture-écriture-exécution (rwx) pour le propriétaire pscavj01, en mode lecture-exécution pour le groupe Administ (r-x) et en mode lecture pour tous les autres usagers (r--). | ||
+ | |||
+ | Pour pouvoir consulter le contenu d'un répertoire, il faut avoir des droits d'exécution pour celui-ci. Donc dans cet exemple, seuls l'usager pscavj01 et les membres du groupe Administ peuvent consulter les fichiers du répertoire XWin. | ||
+ | |||
+ | La modification des permissions se fait au moyen d'une séquence des mots clefs u (usager), g (groupe), o (others), a (all), des opérateurs + (ajouter), - (enlever), = (mettre égal à) et des permissions r (read), w (write), x (execute). | ||
+ | |||
+ | On peut aussi attribuer les permissions au moyen des valeurs numériques 1 (execute), 2 (write) et 4 (read) que l'on peut additionner entre elles pour obtenir, par exemple, 6 (4 + 2) pour read-write. | ||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Donner au propriétaire le droit d'exécuter le programme prog (i.e., rendre prog exécutable): | ||
+ | chmod u+x prog | ||
+ | |||
+ | Donner les droits de lecture et d'écriture à tous les utilisateurs pour le fichier fic: | ||
+ | chmod a+rw fic | ||
+ | |||
+ | Supprimer le droit d'exécution (consultation) pour tous les autres usagers pour le répertoires rep. Tous les autres usagers fait référence à tous les usagers qui ne sont pas l'usager propriétaire du répertoire ou qui ne font pas partie du groupe auquel appartient le répertoire rep: | ||
+ | chmod o-x rep | ||
+ | |||
+ | Rendre le programme prog exécutable et lisible pour tous et permettre au propriétaire de le modifier: | ||
+ | chmod 755 prog | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | lpr [-P imprimante] [fichier] ... | ||
+ | Imprimer le contenu de fichier. Si on ne donne pas de nom de fichier, lpr utilise l'entrée standard. Si on ne donne pas de nom d'imprimante, la tâche est acheminée vers l'imprimante par défaut du système. | ||
+ | |||
+ | |||
+ | |||
+ | Exemples: | ||
+ | |||
+ | Imprimer fic1 et fic2 sur l'imprimante par défaut: | ||
+ | lpr fic1 fic2 | ||
+ | |||
+ | Imprimer l'entrée standard (sortie de la commande cat) vers l'imprimmante impcmo: | ||
+ | cat fic1 | lpr -P impcmo |
Version du 22 février 2013 à 10:18
Introduction
UNIX est un système d'exploitation multi-tâches et multi-usagers qui a été créé à la fin des années 1960 par Ken Thompson et Dennis Ritchie des Laboratoires Bell. Aujourd'hui, UNIX se décline en plusieurs saveurs: LINUX, HPUX, AIX, FreeBSD, Solaris, etc. Toutes ces versions offrent les fonctionnalitées suivantes:
- Accès simultané de la machine par plusieurs utilisateurs
- Support pour la création, la modification et la destruction de programmes, processus et fichiers
- Des systèmes de fichiers composés d'une hiérarchie de répertoires où résident les fichiers et processus
- Le partage équitable du processeur, de la mémoire et des disques parmis les processus
- Une méthode permettant aux processus et périphériques de communiquer entre eux, même s'ils sont sur des machines différentes
- Une multitude de programmes et utilitaires
Nous ne présentons ici que les concepts et commandes de bases nécessaires pour qu'un utilisateur puisse faire ses premiers pas en UNIX. Le lecteur y trouvera, entre autres, de l'informations sur l'interpréteur de commande et les variables d'environnement, les commandes essentielles permettant de manipuler les répertoires et les fichiers ansi que leur contenu, les expressions régulières et l'éditeur vi. Mentionons que pour certaines des commandes présentées, seules les options les plus utilisées sont décrites . Le lecteur est donc invité à consulté la documentation en ligne (manpages) pour connaitre toutes les options disponibles pour chacune des commandes.
L'interpréteur de commandes
L'interpréteur de commande ou shell a pour fonction de traduire les commandes de l'utilisateur et de les acheminer au système d'exploitation pour qu'elles y soient exécutées. Il existe plusieurs interpréteurs de commandes sous UNIX: sh (Bourne shell), csh (C shell), ksh (Korn shell), bash (Bourne Again shell),...
Tous les interpréteurs de commandes peuvent prendre les directives de l'utilisateur à partir du clavier ou à partir de fichiers, nommées scripts, dans lesquels on regroupe un ensemble d'instructions.
L'interpréteur utilisé par la majorité des usagers du LASSO est le Bourne Again shell ou bash.
Les fichiers standard
L'interpréteur de commandes utilise automatiquement trois fichiers dits standard:
- Entrée standard
- Fichier à partir duquel les directives sont lues; habituellement le clavier. Unité 0
- Sortie standard
- Fichier dans lequel les résultats des commandes sont écrits; habituellement l'écran. Unité 1
- Erreur standard
- Fichier dans lequel les erreur sont rapportées; habituellement l'écran. Unité 2
Redirection des fichiers standard
Il est possible de rediriger vers un autre fichier les fichiers standard:
- <fichier
- Rediriger l'entrée standard de telle sorte que son contenu provienne de fichier plutôt que du clavier
- >fichier
- Rediriger la sortie standard vers fichier plutôt que vers l'écran. Si fichier existe déjà, son contenu est remplacé.
- >> fichier
- Rediriger la sortie standard vers fichier plutôt que vers l'écran. Si fichier existe déjà on ajoute à la suite du contenu déjà present.
- 2> fichier
- Rediriger l'erreur standard vers fichier plutôt que vers l'écran. Si fichier existe déjà, son contenu est remplacé.
- 2>> fichier
- Rediriger l'erreur standard vers fichier plutôt que vers l'écran. Si fichier existe déjà, on ajoute à la suite du contenu déjà présent.
Il est possible de rediriger la sortie et l'erreur standard dans le même fichier en utilisant la syntaxe 2>&1 de la façon suivante :
commande > fichier 2>&1 ( et non pas commande 1>&2 > fichier)
Exemples de redirection:
Écrire la liste des fichiers du répertoire courant et les messages d'erreur dans liste_fichiers
ls -al * > liste_fichiers 2>&1
Ecrire les résultatst du programme mon_script dans le fichier resultats et les erreurs d'exécution dans le fichier erreurs.log:
mon_script > reslutats 2> erreurs.log
Enchaînement de commandes ou pipeline
L'enchaînement de commandes ou pipeline est un mécanisme par lequel la sortie standard d'une commande est connectée à l'entrée standard d'une autre commande. Le pipeline se fait au moyen de l'opérateur barre verticale |. Chacun des programmes composant le pipeline agit alors comme un filtre et le résultat final de l'enchaînement de commandes s'affiche sur la sortie standard. Exemples de pipelines:
Afficher une liste du nom de tous les usagers présentement sur le système. La liste est triée et sans doublons:
who | cut -d' ' -f 1 | sort -u
Afficher la liste de tous les utilisateurs qui ont des processus actifs sur le système. La liste est triée et sans doublons:
ps -ef | cut -d' ' -f 1 | sort -u
Rechercher la chaîne ERREUR parmis les 500 dernières lignes du fichier journal et afficher les résultat un écran à la fois:
tail -500 journal | grep ERREUR | more
Substitution de commande
Les caractères accent grave `commande ` ou la syntaxe $(commande) offrent un mécanisme permettant de substituer le résultat d'une commande à la commande elle-même. On peut ainsi provoquer l'exécution d'une commande et faire en sorte que son résultat serve de paramètre à une autre commande. Quelques exemples:
Ajouter la date système à la fin du fichier mon_journal:
echo `date` >> mon_journal #(équivalent à date >> mon_journal)
ou encore:
echo $(date) >> mon_journal
Editer avec l'éditeur gedit tous les fichiers contenant le chaîne ERREUR:
gedit `grep -l ERREUR *`
ou
gedit $(grep -l ERREUR) *`
Variables d'environnement
L'interpréteur de commande utilise plusieurs variables dites d'environnement pour pouvoir fonctionner correctement. Par exemple, lorsque l'utilisateur tape la commande ls, l'interpréteur consulte la variable PATH pour localiser la commande à exécuter. L'utilisateur peut visualiser l'ensemble de ses variables d'environnement au moyen de la commande env.
Pour récupérer la valeur d'une variable d'environnement on précède son nom du signe $ . Il est facile d'ajouter, d'éliminer ou de modifier des variables d'environnement en éditant le fichier .bash_profile qui se trouve de le répertoire HOME de chaque usager. Pour ajouter une nouvelle variable d'environnement, il suffit de la définir dans le fichier .bash_profile puis de l'exporter pour la rendre disponible à l'interpréteur de commandes. On peut par exemple, définir la variable d'environnement MONTEMP qui représente un répertoire servant à contenir des fichiers temporaires de la façon suivante:
- Editer le fichier .bash_profile et y ajouter
MONTEMP=/home/caveenj/temp export MONTEMP
On pourra par la suite conserver des fichiers temporaires dans ce répertoire:
Obtenir la date du système et la sauvegarder dans le fichier MONTEMP/date_courante:
date > $MONTEMP/date_courante
On peut ajouter un nouveau chemin /home/caveenj/bin à la variable PATH de la façon suivante:
Editer le fichier .bash_profile et y modifier la variable PATH
PATH=$PATH:/home/caveenj/bin
Si on désire que les changements apportés au fichier .bash_profile affectent immédiatement notre environnement, il faut exécuter le fichier .bash_profile à partir de son shell en utilisant l'opérateur point . (point) ou à l'aide de la commande source:
cd . ./.bash_profile
ou:
cd source ./.bash_profile
sinon, les changements ne seront appliqués qu'à la prochaine session de travail de l'usager.
Variables d'environnement les plus courantes
Variable | Valeur |
---|---|
HOME | Chemin vers le répertoire HOME de l'usager |
USER | Nom de l'usager |
PATH | Liste des chemins fouillés par le shell pour trouver les commandes à exécuter |
SHELL | Nom de l'interpréteur de commande |
PAGER | Nom du programme à utiliser pour l'affichage un écran à la fois (more ou less) |
EDITOR | Éditeur préféré de l'usager (vi (?), emacs, xemacs, gedit, pico,...) |
MANPATH | Liste des répertoires fouillés par la commande man pour trouver la documentation |
DISPLAY | Nom du visuel et de l'écran à utiliser pour l'affichage des fenêtres des applications X |
PWD | Nom du répertoire de travail courant |
LANG | Langue utilisée par l'usager |
HOSTNAME | Nom de la machine |
MACHTYPE | Nom du système d'exploitation |
Commandes de base
Conventions typographiques
Les conventions typographiques suivantes ont été utilisées pour la section traitant des commandes de base:
- L'utilisation de chaque commande est écrite en italique
- La description des commandes est écrite en utilisant une police régulière
- Les paramètres entre crochets [] sont facultatifs
- La barre verticale | sert à indiquer un OU logique
- Les caractères ... indiquent qu'un paramètre peut être répété à volonté
Par exemple, la séquence d'appel de la commande ls est présentée comme suit:
- ls [-alrt] [rep | fic] ...
- Les paramètres a,l,r et t ainsi que que rep et fic sont facultatifs. De plus, la commande ls peut prendre en paramètre, aussi bien un ou plusieurs répertoires rep ou fichiers fic.
- Les appels suivants à la commande ls sont donc tous valables:
ls ls -a -l ls -al ls fic1 fic2 ls -lt rep1 rep2 ls -alrt *
Commandes informatives
Toutes les commandes UNIX sont documentées par le système des manpages. Un certain nombre de commandes UNIX permettent de fouiller cette documentation et d'obtenir la documentation recherchée. Il existe en plus, d'autres formats de documentation disponibles.
- man [chapitre] com
- Afficher le manuel de la section chapitre pour la commande com. Si on ne donne pas de chapitre, man retourne le premier manuel trouvé. man fait sa recherche de documents en utilisant les répertoires de la variable d'environnement MANPATH.
Exemples:
Afficher la documentation de la commande ls
man ls
Afficher le manuel pour la fonction Fortran open
man 3F open
- man -k sujet
- apropos sujet
- Afficher la liste des manuels traitant du sujet sujet.man et apropos font leur recherche de documents en utilisant les répertoires de la variable d'environnement MANPATH.
Exemples:
La liste de manpages traitant d'images
man -k image
ou
apropos image
- info com
- Afficher la documentation en format info de GNU de la commande com. L'utilitaire info permet de naviguer dans les documents grâce à des hyperliens et des menus.
Exemples:
Afficher la documentation du compilateur g77
info g77
- which com
- Trouver l'emplacement du programme associé à la commande com. which fait sa recherche en fouillant les répertoires de la variable d'environnement PATH.
Exemples:
Trouver l'emplacement de la commande man:
which man
Systèmes de fichiers
Tous les systèmes UNIX sont composés d'un ensemble de systèmes de fichiers dans lesquels sont conservés tous les fichiers nécessaires au système d'exploitation ainsi que tous les fichiers de chacun des usagers de la machine.
Sur chacun de ces systèmes de fichiers UNIX (plus ou moins équivalent à une partition sous WINDOWS) réside une arborescence de répertoires (équivalent aux dossiers sous WINDOWS). Par exemple, le système de fichiers / situé à la racine peut contenir une arborescence telle que:
/ ---bin ---dev ---var ---adm ---cache ---db ---usr ---local ---bin ---include ---lib ---man ---man1 ---man2 ...
Chaque répertoire ou fichier contenu dans l'arborescence est accessible soit par le biais d'un chemin absolu ou relatif.
Chemin absolu
Pour travailler avec un fichier en utilisant son chemin absolu, on doit nécessairement indiquer toute l'arborescence:
Exemples:
Afficher le contenu du répertoire /usr/local/bin:
ls /usr/local/bin
Afficher le contenu du fichier passwd du répertoire /etc:
cat /etc/passwd
Chemin relatif
Pour travailler avec un fichier en utilisant son chemin relatif, on doit indiquer l'arborescence à partir du répertoire dans lequel nous sommes présentement positionné. On utilise alors les conventions suivantes: ./ indique le répertoire courant (répertoire de travail) alors que ../ indique le répertoire parent du répertoire courant. Dans plusieurs cas,on peut omettre la syntaxe ./.
Exemples:
Se déplacer dans le répertoire /usr/local/bin et afficher son contenu:
cd /usr/local/bin ls ./
Se déplacer dans le répertoire /usr/local/bin et afficher le contenu de /usr/local (répertoire parent):
cd /usr/local/bin ls ../
Afficher le contenu de /usr/local/lib (même niveau que bin):
ls ../lib
Afficher le contenu de /usr (deux répertoires au-dessus de bin):
ls ../..
Les formats des systèmes de fichiers les plus utilisés sous LINUX sont Ext3 et Ext4 alors que sous d'autres systèmes d'exploitation, on utilisera les format UFS (Unix File System), SYSV, HPFS, MSDOS, FAT32, NTFS, etc. Pour que le contenu d'un système de fichiers soit accessible, il doit être attaché à un point d'ancrage (mount point).
En plus d'avoir des systèmes de fichiers crées directements sur les disques locaux, il est possible d'importer par réseau des systèmes de fichiers en provenance d'autres serveurs. On dit alors de ces fichiers qu'ils sont montés via NFS (Networked File System) ou SAMBA.
Certaines commandes permettent aux usagers d'obtenir de l'information sur les types de systèmes de fichiers qui sont disponibles sur leur machine.
Manipulation de répertoires
Certaines des commandes présentées ici peuvent prendre en paramètre aussi bien un répertoire qu'un fichier. La variante fichier est présentée sous la rubrique Manipulation de fichiers
- pwd
- Afficher le répertoire de travail courant
- cd [rep]
- Changer le répertoire de travail courant pour rep. Si rep n'est pas spécifié ou s'il est égal à ~, le répertoire courant devient $HOME
Exemples:
Aller au répertoire projets:
cd ~/projets
Remonter de un répertoire et aller dans src:
cd ../src
- mkdir rep ...
- Créer le répertoire rep.
Exemple: Créer trois répertoires
mkdir dir1 dir2 dir3
- rmdir rep ...
- Détruire le répertoire rep. Le répertoire doit être vide (Voir la commande rm pour effacer un répertoire et son contenu).
Exemple: Détruire trois répertoires:
rmdir dir1 ../dir2 /home/james/dir3
- ln -s rep lien
- Créer un lien symbolique lien qui pointe vers le répertoire rep. Lorsqu'on veut créer un lien vers un répertoire, ce lien doit nécessairement être symbolique. Le commutateur -s est donc obligatoire. (Voir la commande ln pour plus d'information concernant les liens vers des fichiers)
Manipulation de fichiers
Toutes les commandes présentées ici peuvent prendre en paramètre aussi bien un répertoire qu'un fichier.
- ls [-alrt] [rep | fic] ...
- Afficher les informations concernant le fichier fic ou les fichiers contenus dans le répertoire rep Si rep n'est pas indiqué, on utilise le répertoire de travail courant.
- -a
- Afficher l'information de tous les fichiers, y compris les fichiers cachés
- -l
- Afficher toute l'information concernant les fichiers: permissions, date de modification, grosseur
- -t
- Afficher l'information en triant en fonction de la date de modification des fichiers, du plus récent au plus vieux
- -r
- Inverser le mode de trie pour l'affichage
Exemple:
Afficher le contenu du répertoire ../src par date de modification croissante:
ls -alrt ../src
- touch fich | rep ...
- Créer le fichier fich s'il n'existe pas ou changer la date de modification du fichier fich (ou du répertoire rep) si celui-ci existe.
Exemple:
touch fic1 fic2
- rm [-rf] fich ...
- Détruire le fichier fich.
- -r
- Pour détruire de façon récursive un répertoire et tout son contenu
- -f
- Pour forcer la destruction sans demande de confirmation
Exemples:
Effacer le répertoire projets et tout son contenu:
rm -rf projets
Effacer les fichiers fic1 et fic2:
rm fic1 fic2
- cp [-Rp] fich ... dest
- Copier le fichier fich vers dest. Si dest est un répertoire le fichier fich est copié dans le répertoire dest
- -R
- Copie récursive d'un répertoire et de son contenu
- -p
- Appliquer les permissions de fich à dest
Exemples:
Copier le répertoire projets/doc et tout son contenu dans le répertoire projets/web en conservant les permissions
cp -Rp projets/doc projets/web
Copier le fichier fic1 dans fic2
cp fic1 fic2
- mv source ... dest
- Déplacer le fichier ou répertoire source vers dest. Si dest est un répertoire le fichier source est déplacé dans le répertoire dest.
Si source est un répertoire, il est déplace vers dest.
Exemples:
Déplacer (renommer) le fichier fic1 vers fic2
mv fic1 fic2
Déplacer (renommer) le répertoire rep1 vers rep2
mv rep1 rep2
Déplacer tous les fichier du répertoire rep1 vers rep2
mv rep1/* rep2
- ln [-s] source dest
- Créer un lien dest qui pointe vers source. On peut ainsi avoir un même fichier qui porte plusieurs noms. Si l'option -s n'est pas utilisée, on crée un lien réel vers source (hard link). Tant qu'il existe un lien réel vers un fichier, ce fichier existe et son contenu est accessible. Lorsqu'on utilise l'otion -s, on crée un lien symbolique vers dest. Si on supprime dest, son contenu est perdu bien que le lien symbolique toujours existant. Le lien pointe alors vers un fichier (ou répertoire) inexistant.
- -s
- Créer un lien symbolique (soft link). L'option -s est obligatoire lorsque source est un répertoire ou lorsque source et dest résident sur des systèmes de fichiers différents.
Exemples:
Créer un lien fic2 qui pointe vers le fichier fic1. I faut détruire fic1 et fic2 pour effacer le fichier
ln fic1 fic2
Créer un lien symbolique (racourci) fic2 qui pointe vers fic1. Si fic1 est effacé, le lien fic2 pointe vers un fichier inexistant.
ln -s fic1 fic2
Créer un lien symbolique (racourci) rep2 qui pointe vers rep1. Si rep1 est effacé, le lien rep2 pointe vers un répertoire inexistant.
ln -s rep1 rep2
- file fich ...
- Obtenir de l'information concernant le type du fichier fich: texte, binaire, data,...
- chown [-R] usager[:groupe] fic ...
- chown [-R] :groupe fic ...
- Modifier les paramètres d'apartenance du fichier ou répertoire fic.
- -R
- Modifier le rértoire fic et tout son contenu (comportement récursif)
Exemples:
Donner le fichier à l'usager caveenj
chown caveenj fic
Donner les fichiers fic1 et fic2 à l'usager sennevil et à tous les membres du groupe climat
chown sennevil:climat fic1 fic2
- chmod [-R] mode fic ...
- Modifier les droits d'accès fichier ou répertoire fic. Pour qu'un usager puisse lire ou modifier un fichier (ou répertoire) ou bien exécuter un programme, il faut que des droits d'accès lui aient été attribués. Chaque fichier possède des droits d'accès pour le propriétaire, le groupe et tous les autres utisateurs. On peut visualiser ces permissions au moyen de la commande ls -l.
- -R
- Modifier le rértoire fic et tout son contenu (comportement récursif)
Exemples de permissions:
ls -l XWin.log
-rw-r--r-- 1 pscavj01 Administ 3215 Jan 27 18:56 XWin.log
indique que le fichier est en mode lecture-écriture (rw-) pour le propriétaire pscavj01, en mode lecture pour le groupe Administ (r--) et en mode lecture pour tous les autres usagers (r--).
ls -l XWin
drwxr-xr-- 1 pscavj01 Administ 3215 Jan 27 18:56 XWin
indique qu'il s'agit d'un réertoire (le d en début de ligne) et qu'il est en mode lecture-écriture-exécution (rwx) pour le propriétaire pscavj01, en mode lecture-exécution pour le groupe Administ (r-x) et en mode lecture pour tous les autres usagers (r--).
Pour pouvoir consulter le contenu d'un répertoire, il faut avoir des droits d'exécution pour celui-ci. Donc dans cet exemple, seuls l'usager pscavj01 et les membres du groupe Administ peuvent consulter les fichiers du répertoire XWin.
La modification des permissions se fait au moyen d'une séquence des mots clefs u (usager), g (groupe), o (others), a (all), des opérateurs + (ajouter), - (enlever), = (mettre égal à) et des permissions r (read), w (write), x (execute).
On peut aussi attribuer les permissions au moyen des valeurs numériques 1 (execute), 2 (write) et 4 (read) que l'on peut additionner entre elles pour obtenir, par exemple, 6 (4 + 2) pour read-write.
Exemples:
Donner au propriétaire le droit d'exécuter le programme prog (i.e., rendre prog exécutable):
chmod u+x prog
Donner les droits de lecture et d'écriture à tous les utilisateurs pour le fichier fic:
chmod a+rw fic
Supprimer le droit d'exécution (consultation) pour tous les autres usagers pour le répertoires rep. Tous les autres usagers fait référence à tous les usagers qui ne sont pas l'usager propriétaire du répertoire ou qui ne font pas partie du groupe auquel appartient le répertoire rep:
chmod o-x rep
Rendre le programme prog exécutable et lisible pour tous et permettre au propriétaire de le modifier:
chmod 755 prog
lpr [-P imprimante] [fichier] ... Imprimer le contenu de fichier. Si on ne donne pas de nom de fichier, lpr utilise l'entrée standard. Si on ne donne pas de nom d'imprimante, la tâche est acheminée vers l'imprimante par défaut du système.
Exemples:
Imprimer fic1 et fic2 sur l'imprimante par défaut: lpr fic1 fic2
Imprimer l'entrée standard (sortie de la commande cat) vers l'imprimmante impcmo: cat fic1 | lpr -P impcmo