Commandes De Base De Unix1

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Commandes De Base De Unix1 as PDF for free.

More details

  • Words: 6,179
  • Pages: 21
EDDIE

TIM

MORGAN

2008

Introduction Cet article a été spécialement écris pour les nouveaux utilisateurs de Linux (ou tout autre UNIX bien sûr). Pour les autres, plus expérimentés,il peut être un bénéfique rappel. Parmis nos lecteurs, certains utilisent leur ordinateur à des tâches classiques: écrire du courrier, jouer et même faire la comptabilité de la maison. Pour ces utilisateurs familiaux, les termes "Système d'exploitation" restent plutôt flous, soit parce qu'ils ont eu leur machine avec Windows 95 pré-installé, "pour rien" (comme on dit), soit le plus souvent parce qu'ils ont "empruntés" leurs logiciels au copain ou au copain du copain. Ils désirent que leur ordinateur fasse le travail sans plus de question et deviennent bien embétés quand leur machine leur crache un message de plantage tel que "Memory Protection Error in 0FAG:BD07". En effet, qui peut comprendre ça? Puis, un jour vous entendez parler d'un système d'exploitation qui a la particularité de ne jamais planter, il s'appelle "Linux" et vous décidez de l'essayer en achetant un magazine d'informatique qui en contient une version sur CD. [NdT: pour être précis et comme le rappel très justement Richard STALLMAN fondateur de la FSF, Linux est en fait le noyau du système initié par Linus TORVALDS. Celui-ci ne nous serait pas très utile s'il n'était pas entouré par les outils GNU de la FSF. L'ensemble des deux forme le système d'exploitation. Ainsi, il serait plus juste de parler du système GNU/Linux mais l'usage fait que Linux désigne aussi l'ensemble.] Après une procédure d'installation compliquée durant laquelle le disque dur a été partitionné, une étape pas évidente du tout, vous avez certainement conservez la majorité de la place du disque pour Windows et une plus petite pour Linux. Lorsque vous relancer la machine sous le nouveau système d'exploitation, vous obtenez quelque chose comme ça : LILO: _

C'est le moment de taper le nom saisi lors de l'installation du sélecteur de partition de boot de Linux. Ensuite, défilent plusieurs écrans remplis de messages étranges et finalement un prompt de login apparaît: Red darkstar login: _

Hat

linux

2.0.32

À cette étape, vous devez taper "root" suivi du mot de passe donné durant l'installation. En réponse, vous obtiendrez un résultat similaire à celui-ci: root@darkstar:~# _

1

[email protected]

EDDIE

TIM

MORGAN

2008

Et maintenant, que faire?

Utiliser Linux Maintenant que vous êtes arrivé à cet écran, vous vous demandez si tant d'efforts étaient bien utiles. A première vue, Linux ne semble pas présenter une belle interface graphique avec un système de fenêtrage digne de ce nom. La voie la plus simple vers le gestionnaire de fenêtre de base de Linux est de taper la commande : startx Bien sûr, je considère que durant l'installation les paramètres de la carte vidéo ont été saisis correctement. Sinon, startx générera une erreur. L'étape suivante est de faire quelque chose de productif après tant d'efforts. Je recommande de tester StarOffice. C'est une suite bureautique comme celle de Microsoft avec de nombreux outils. Vous trouverez dans ce magazine, plusieurs articles consacrés à l'installation de StarOffice ainsi qu'à des initiations (text processor, presentation creation). Une version de démonstration de StarOffice est disponible à l'adresse http://www.stardivision.com/. Cet ensemble d'outils répond aux besoins de la majorité des utilisateurs. Toute distribution décente du système d'exploitation Linux contient de nombreux logiciels très intéressants et très puissant, parmi eux : • • • • •

des éditeurs de texte (jeo, vi, emacs, ...) des jeux de toutes sortes (il existe même une version libre de Doom !) des visualisateurs d'images de tout format (xview, xdvi, xgv, ...) des lecteurs de CD, de fichiers Midi, de films MPEG (cdp, xmpeg) des calculatrices, programmes de dessins, ...

En plus des logiciels classiques, il y a beaucoup d'autres outils spécialisés pour le développement d'applications, pour la CAO, l'analyse mathématique, les applications scientifiques, etc ... La plupart d'entre eux fonctionnent sous X Window, mais les autres utilisent des interpréteurs de commande en ligne (shell) fournis avec le système d'exploitation. Linux, comme tous les UNIX, utilise ces fameuses lignes de commandes car il peut très efficacement traiter des demandes de calculs qu'un fenêtrage ralentirait. De plus, pour certains travaux, l'environnement d'un shell est plus efficace.

Les bases de l'administration système Tout utilisateur doit se familiariser avec l'organisation de l'espace disque de sa machine et doit savoir le gérer au delà de l'installation du système. La solution de l'interpréteur de commande en ligne est plus pratique et plus souple que la plupart des lourdes solutions graphiques. 2

[email protected]

EDDIE

TIM

MORGAN

2008

A partir de maintenant, je considèrai que l'utilisateur à un minimum de connaissances de MS-DOS ou d'un autre système d'exploitation utilisant un shell équivalent. Sous Linux, les disques sont organisés en fichiers. Les types de fichiers sont nombreux : Les fichiers ordinaires: ils contiennent les données de votre dure journée de labeur ; Les répertoires : ce sont des fichiers qui fonctionnent comme des dossiers en conservant d'autres fichiers, qui peuvent eux même être d'autres répertoires créant ainsi une structure hiérarchique (arborescente). Les liens : C’est un fichier qui peut avoir plusieurs noms et est accessible depuis plusieurs répertoires. Les liens sont des références ou des "raccourcis" d'autres fichires. Les fichiers de périphériques : Ces fichiers sont associés à des périphériques de votre ordinateur (écran, lecteur de disquette, disque dur, lecteur de CD, ...) de façon à ce que si un programme veut y accéder, il passera par ces fichiers. Les tubes et les files : Ce sont des fichiers spéciaux utilisés par les programmes pour communiquer. Si vous tapez maintenant la commande pwd, vous devriez obtenir ceci : /root

C'est le répertoire courant, le répertoire personnel du super-utilisateur. Soyons un peu curieux et allons sous le répertoire racine - il est appelé ainsi car il est le père de tous les répertoires et de tous les fichiers - avec la commande : cd / Et maintenant, regardons ce que nous y trouvons en utilisant la commande qui permet de faire afficher le contenu du répertoire : ls # ls dev var sbin lib

Tous

home bin boot proc

ces

répertoires

lost+found dosc etc usr

ont

un

rôle

root mnt tmp

dans

le

système

de

fichier

UNIX

:

Répertoire Rôle dev

Contient tous les fichiers de périphériques.

home

C'est le répertoire père des comptes des utilisateurs. Oui, Linux possède la capacité de faire travailler plusieurs personnes en même temps sur le même ordinateur sans interférences entre eux (Linux est un vrai système d'exploitation multi-utilisateurs). Un nouvel utilisateur peutêtre crée avec la commande : adduser [username] (où username est un nom quelconque comme bob). Je vous recommande d'en créer un pour faire les travaux courants et de garder le compte de root uniquement

3

[email protected]

EDDIE

TIM

MORGAN

2008

pour les tâches d'administration, ainsi vous n'aurez pas la désagréable surprise d'effacer accidentellement tous les fichiers du disque parce que vous êtes root, alors qu'en étant un simple utilisateur (disons "bob"), cela est impossible. lost+found

Vous avez certainement déjà utilisé une fois Norton Utilities pour récupérer un fichier dans des secteurs défectueux de votre disque. Ne vous prenez plus la tête, si votre disque dur a un raté, le système luimême s'occupera de regénérer le fichier, et quand il ne réussi pas à savoir d'où vient le bloc, il le place dans ce répertoire. C'est une des raisons qui fait que Linux est bien meilleur que n'importe quel système d'exploitation Microsoft.

root

C'est le répertoire de travail du super-utilisateur, par opposition /home est réservé aux utilisateurs courants.

var

Il contient de nombreux fichiers temporaires contenant les messages du système, le courrier des utilisateurs, les tâches d'impressions, ...

bin

Ici sont rangées les commandes système les plus importantes.

dosc

Sur votre ordinateur, ce répertoire porte peut-être un autre nom. C'est l'accès aux partitions Windows (ou MS-DOS) de votre machine (si vous l'avez).

mnt

Si vous voulez accéder à un lecteur de cd-rom, et bien vous utiliserez ce répertoire pour faire un "montage". Pour rendre lisible le contenu du cd-rom dans le répertoire /mnt, exécutez mount -t iso9660 /dev/cdrom /mnt. Il est possible que cette commande diffère légèrement suivant votre configuration.

sbin

C'est ici que les commandes avancées pour l'admnistration système sont rangées et pour des raisons de sécurité, elles ne doivent être ni lancées ni accédées par les utilisateurs standarts mais uniquement par l'administrateur (root).

boot

C'est un espace prévu pour accueillir le noyau du système. Malgré tout, plusieurs distributions choisissent de le placer dans /.

etc

Ce répertoire contient les fichiers de configuration système, c'est à dire les fichiers responsables du lancement du système ou des paramètres du système graphique (cela ressemble aux fichiers CONFIG.SYS et AUTOEXEC.BAT).

tmp

Les programmes utilisent ce répertoire comme espace préféré pour les fichiers intermédiaires ou comme poubelle. En général, le système efface automatiquement les fichiers lors de son lancement.

lib

C'est le répertoire des librairies de base du système. Linux est un système qui économise la mémoire de l'ordinateur en mettant le code partagé par plusieurs programmes dans un seul et même fichier, appelé librairie. Ainsi, une seule copie sera faite lorsqu'il sera utilisé.

4

[email protected]

EDDIE

TIM

MORGAN

2008

proc

Ce répertoire représente l'image des programmes en mémoire. Il est utilisé par des programmes comme ps, top ou kill qui nous renseignent sur les programmes en cours d'exécution sur le système et (si certains sont suspendus) les tuent. Ceci évite de faire comme sous Windows lorsqu'on relance le système et perdons ainsi toutes le travail fait dans les autres applications en cours.

usr

C'est ici que les exécutables des applications ainsi que leurs documentations et leurs librairies sont rangées.

En général, vous n'aurez besoin de gérer que les fichiers du répertoire root ou bien ceux d'utilisateur créés pour des besoins particuliers.

Quelques commandes de base Linux est typiquement un système d'exploitation qui favorise l'usage de la commande en ligne en dépit de l'existence d'un environnement de fenêtrage appelé le systême X Window (celui lancé avec la commande startx). Quand un utilisteur rentre sur le système, il est immédiatement face à un prompt qui ressemble beaucoup à ça : root@darkstar: ~# _

un prompt typique d'un interpréteur en ligne - la forme et la structure du prompte peuvent être configurées selon les désirs de l'utilisateur. Dans notre exemple, ce qui est avant le "@" donne le nom de l'utilisateur courant (root) et darkstar est le nom du système. Ensuite, le caractère ~ indique que le répertoire courant est le répertoire personnel de l'utilisateur ; dans le cas de l'administrateur du système, ce sera /root. Enfin, un "#" indique que ce compte très particulier a les privilèges du super-utilisateur. L'utilisateur est maintenant libre de saisir des commandes après le curseur clignotant. Par exemple : root@darkstar:~# ls -l bobby_

Dans cet exemple, nous allons voir ce qu'il se passe lorsque l'utilisateur exécute la commande (ls), une option (-l) et un paramètre (bobby). Quand l'utilisateur appuie sur entrée, Linux liste le fichier bobby (i.e. cela va afficher des informations telles que la taille, la date de création et quelques autres petites choses qui seront abordées en détail plus tard (in details later)), Evidement, ceci arrivera si le fichier existe. La syntaxe classique d'un shell est un nom de commande suivi par des optionss séparées par des espaces : ls -l -a bobby

Mais, les options peuvent aussi être utilisées de la façon suivante : ls -la bobby

5

[email protected]

EDDIE

TIM

MORGAN

2008

Autre possibilité, mettre plus d'un nom de fichier comme filtre de la liste, eux aussi séparés par des espaces ls bobby joe maria

Ceci nous affichera les fichiers bobby, joe et maria sans détails. Pour obtenir plus d'informations sur ces fichiers, on peut mettre l'option -l avant. ls -l bobby joe maria

Où trouver plus d'aide Linux offre de nombreuses sources d'information sur le système. Si vous connaissez le nom d'une commande et que vous voulez connaître son mode d'emploi, essayez : man [commande]

Cela va générer la page de manuel de la commande. Il y une page de manuel en ligne pour la plupart des commandes du système. De plus, pour connaître le mode d'emploi de la commande man elle-même, tapez simplement man man. Ainsi, il n'est jamais nécessaire d'apprendre par coeur toutes les options des commandes UNIXcar le manuel en ligne est toujours à disposition et rapide d'accès pour vous rafraîchir la mémoire.

6

[email protected]

EDDIE

TIM

MORGAN

2008

D'un autre côté, si seul le sujet vous est connu ou alors seuleme nt un mot-clé, alors essayez : apropo s [sujet ]

cela vous montrer Mode d'emploi de la commande man : man man a une liste de commandes en relation avec ce sujet. La majorité des commandes vous donne une courte description des options possibles et de la façon de s'en servir lorque vous les exécutez avec le paramètre --help. Par exemple, avec la commande ls ls --help

Si la sortie de la commande remplie plus d'un écran, aucune inquiétude à avoir, l'utilisation des touches de déplacement du curseur de votre clavier permet de la parcourir dans son ensemble. La plupart des distributions Linux contiennent un large panel de documentations sur les programmes et les utilitaires qui les composent. Ces documentations sont localisées dans le répertoire /usr/doc directory. Pour trouver de la lecture sur tetex, par exemple, il suffit de se rendre dans ce répertoire et de taper more tetex. La plupart des fichiers présent dans le répertoire /usr/doc sont en caractères ASCII. Et ce n'est pas fini. Les pages info contiennent une description des commandes et des applications que nous pouvons aussi trouver dans les page info, lesquelles sont facilement accessibles avec l'éditeur emacs gràçe à la séquence de touche suivant : [Control+h][Control+i].

7

[email protected]

EDDIE

TIM

MORGAN

2008

Si cela ne suffit encore pas, vous trouverez plus d'information peut-être sur le web, essayez à ces adresses : http://slug.ctv.es http://www.linux.org http://www.cs.us.es http://www.redhat.com http://www.debian.org N'oublions pas aussi les newsgroups sous le protocole nntp où les forum de discussions sur Linux sont nombreux et très variés : news:es.comp.os.linux : un groupe de discussion espagnol news:comp.os.linux.software : pour les questions sur les logiciels news:comp.os.linux.hardware : pour les questions sur le matériel et leur configuration news:comp.os.linux.development : les questions sur la programmation Et finalement, parmi les nombreux canaux d'IRC, vous trouverez #linux

Commandes pour manipuler des fichiers Si vous connaissez MS-DOS, vous vous souvenez certainement des commandes dir, cd, rd, md et d'autres encore. Maintenant, nous allons en voir d'équivalentes pour la façon de manipuler des fichiers créés. Bien entendu, vous avez la possibilité d'obtenir plus de détails à propos de chacune d'entre elles en faisant man [command]. ls:

liste le contenu d'un répertoire

Nous avons déjà utilisé cette commande précédement. Allons un peu plus loin avec. Si vous tapez la commande :

$ ls -l drwxr-xr-x drwx-----drwx-----drwxrwxr-x lrwxrwxrwx drwxrwxr-x lrwxrwxrwx -rw------lrwxrwxrwx

8

3 5 2 2 1 2 1 1 1

fenix fenix fenix fenix root fenix root fenix root

fenix fenix fenix fenix root fenix root fenix root

1024 1024 1024 1024 11 1024 9 868352 12

Jun Nov May Mar Mar Mar Mar Apr Mar

15 6 16 10 13 10 13 7 13

1997 19:35 1997 00:28 20:53 00:28 20:53 21:19 20:53

Calendar Desktop Mail X11 ada -> private/ada bin c -> private/c core lisp -> private/lisp

[email protected]

EDDIE

TIM

drwx-----2 fenix fenix -rw-rw-r-1 fenix fenix drwxrwxr-x 2 fenix fenix drwxr-xr-x 2 fenix fenix drwx-----2 fenix fenix drwxrwxr-x 2 fenix fenix drwxrwxr-x 8 fenix fenix lrwxrwxrwx 1 root root private/prolog -rw-r--r-1 fenix fenix drwxrwxr-x 4 fenix fenix lrwxrwxrwx 1 root root -rwxr-xr-x 1 fenix fenix

MORGAN

1024 302 1024 1024 1024 1024 1024

23051 1024 11 1239

Jun 13 Apr 7 Mar 10 Nov 6 Mar 12 Feb 17 Mar 12 14

1997 20:30 00:28 18:59 18:05 21:27 23:04 Mar

2008 mail mine.bmp mydocuments nhs nsmail odd private 13 20:53 prolog

->

Jan 27 21:14 system.fvwm2rc Mar 22 15:36 tmp Mar 13 20:53 www -> private/www Nov 6 19:46 xinitrc.bak

C'est ce qu'il s'appelle une longue liste, laquelle nous donne un grand nombre d'informations sur le répertoire. Nous pouvons distinguer 6 colonnes différentes.

La première nous donne des informations sur le fichier ; permissions. Elle est composée de 10 lettres divisée en 3 groupes de 3 auquels s'ajoute une première lettre. La première lettre en question nous informe du type du fichier : fichier ordinaire dossier (répertoire) lien fichier spécial, périphérique en mode caractère : cela veut dire que vous pouvez envoyez ou recevoir des octets 1 par 1 mais sans possibilité de revenir en arrière. fichier spécial, périphérique en mode bloc : ce périphérique permet d'accéder de façon aléatoire aux informations. tube file

d L C B P F

Les autres lettres groupées trois par trois indiquent par qui et comment un fichier peutêtre utilisé. Le premier groupe est pour le propriétaire, le second correspond aux droits des membres du groupe (un utilisateur intègre un groupe de travail sous-entends que les fichiers de ce groupe puissent être partagés) et enfin le troisième est pour les autres utilisateurs du système (ou du monde). Voyons la signification de chacune des lettres d'un groupe. La première peut prendre les valeurs suivantes : - ne peut pas lire le fichier et si c'est un répertoire, la liste de son contenu n'est pas lisible ;

9

[email protected]

EDDIE

TIM

MORGAN

2008

r peut-être lu (NdT.: 'r' comme 'read', lire). La seconde : - ne peut pas écrire sur le fichier (ajouter des données non plus) et si c'est un répertoire, aucun fichier ne peut-être créé ou effacé de celui-ci ; w on peut écrire (NdT.: 'w' comme 'write', écrire) dedans (créer et effacer des fichiers s'il s'agit d'un répertoire). Le troisième : - le fichier ne peut-être exécuter et si c'est un répertoire, il ne sera pas accessible (c'est à dire qu'il ne sera pas possible de descendre dedans avec la commande cd) ; peut-être exécuté (NdT.: 'x' comme ?, jamais compris mais ça fait joli ;-) x s cette attribut n'a de sens qu'avec les fichiers exécutables. Quiconque lancera le programme, aura les droits ... Whoever runs this program, il tournera avec les droits du propriétaire du fichier à la place des permissions de celui qui l'a lancé. Ne vous inquiétez pas si vous ne comprenez pas l'utilité de cet attribut, il ne sert que pour les utilisateurs avertis. On l'appelle le bit "SetUID". t permet de conserver le code du programme en mémoire de swap afin de pouvoir rapidement y accéder la fois d'après (NdT.: utilisé pour les programmes très demandés). Ces droits peuvent être modifiés avec la commande chmod comme nous le verrons plus tard. La colonne suivante est le nombre de liens pointant sur ce fichier. La suivante donne le nom du propriétaire du fichier. La quatrième indique le nom du groupe qui peut accéder au fichier selon les actions autorisées par le propriétaire (celles-ci sont précisées dans le second triplet des permissions). The fourth one denotes the group which pertains, in a way that anybody belong to this group can access to it accordly to assigned group permissions (second permissions triplet). La cinquième nous donne la taille du fichier en octets. La sixième donne la date et l'heure de la dernière modification du fichier. Et enfin vient le nom du fichier. S'il s'agit d'un lien, la référence du fichier est indiqué par un -> [source] Il y a aussi des fichiers cachés sous Linux. La première lettre de ces fichiers est un (.). Nous pouvons lister les fichiers cachés avec l'option -a : $ ls -a .profile

10

.bash_profile

.bashrc

.xinitrc

[email protected]

EDDIE

mmime.bmp

cp:

TIM

MORGAN

2008

misdocumentos

copier des fichiers (CoPy, copier)

Cette commande permet de copier des fichiers de façon à ce qu'ils aient un autre nom ou qu'ils soient présent aussi dans un autre répertoire. cp [fichier] [destination]

Si la destination n'est pas un répertoire existant, la commande sera interprétée comme si vous vouliez copier le fichier sous un autre nom. mv:

déplacer un fichier (MoVe, déplacer)

Avec cette commande, nous pouvons renommer un fichier ou le déplacer dans un autre répertoire. mv [fichier] [destination]

Si la destination n'est pas un répertoire existant, cela sera interprété comme si vous vouliez renommer le fichier. cd

: changer de répertoire (Change Directory)

C'est presque la même que sous MS-DOS. Notons quelques différences : It's almost the same of MSDOS. cd sans arguments vous place dans le répertoire par défaut de l'utilisateur. Si vous êtes le super-utilisateur, cela vous placera dans le répertoire /root ; si vous êtes bob, cela vous placera dans /home/bob.

Comme vous pouvez le constater, ici les répertoires ont la bar inclinée vers la droite (et non vers la gauche comme sous MS-DOS). Enfin, /home /home/pepe. mkdir

peut-être remplacé par le caractère ~ . Ainsi cd ~pepe vous placera dans

: créer un répertoire (MaKe DIRectory)

Taper mkdir[nom_du_repertoire] et cela vous créera tout simplement un répertoire avec ce nom. rmdir

11

: détruire un répertoire vide (ReMove DIRectory)

[email protected]

EDDIE

TIM

MORGAN

2008

Si vous voulez détruire un répertoire vide de fichiers, tapez rmdir [nom_du_fichier]. Si vous voulez détruire un répertoire contenant des fichiers (ou d'autres répertoire), aller voir la commande rm. rm

: détruire des fichiers (ReMove files)

Détruit tout type de fichier en tapant rm [nom_du_fichier]. Les options utiles sont : -i pour avoir une demande de confirmation pour chaque fichier ; -r pour détruire fichiers et répertoires de façon récursive ; - pour détruire fichiers et répertoires de façon récursive et sans demander de rf confirmation ni donner d'informations. ln

: créer un lien vers un autre fichier (LiNk, associer)

Linux permet qu'un fichier possède des noms différents et qu'ils soient accessibles depuis des répertoires différents. C'est ce que font les liens. Il sont de deux types : •



dur : fait une copie complète du contenu du fichier dans le lien, et quand le fichier source est modifié, le lien est modifié aussi et vice-versa. (NdT.: en fait, fait 'comme si' car le contenu est bien le même et non une copie maintenue à jour) symbolique : ne fait pas de copie, il travaille comme si c'était le fichier source. De cette façon, il n'y a pas de copie du fichier et ainsi de l'espace disque est préservé. De nos jours, c'est pratiquement le seul type de liens utilisé. En passant, noter que les répertoires peuvent avoir uniquement des liens symboliques.

Les liens durs se font comme avec : ln Et les liens symboliques avec : ln -s [fichier_source] [fichier_cible] cat

: afficher le contenu d'un fichier (?)

Cette commande affiche le contenu d'un fichier à l'écran. cat [nom_fichier] more

: afficher le contenu d'un fichier dans un format de page

Si le fichier que vous regardez est trop long (avec plus de ligne que votre écran, vous allez perdre les premières lignes, en haut. Une solution est d'utiliser une console (ou xterm) avec un tampon, dans lequel vous vous déplacerez pour visualiser toutes les lignes avec Shift+Repag. Mais ce tampon a une taille limitée et la plupart du temps elle ne suffira pas. La commande more permet de voir le fichier dans un format de page. Sa syntaxe est :

12

[email protected]

EDDIE

TIM

MORGAN

2008

more [nom_fichier]

C'est un programme interactif. Les "touches" (commandes intéractives) les plus intéressantes sont :

Key

Function

la d'espace

barre

avancer d'une page

b

revenir une page en arrière

retour chariot

avancer d'une ligne

/[chaîne]

chercher dans le texte la prochaine occurence de la chaîne dans le fichier

?[chaîne]

cherche la dernière occurence de la chaîne dans le fichier

q

quitter

Il existe un équivalent plus développé de ce programme, il s'appelle less. chmod

: modifier les droits d'un fichier (CHange file MOD, ?)

Avec cette commande, nous allons pouvoir modifier les possibilités d'accès aux fichiers. Un utilisateur standart peut seulement modifier les droits des fichiers dont il est le propriétaire. Le "super" utilisateur root peut lui tout faire. Cette commande s'utilise avec 2 paramètres séparés par un espace. chmod [qui][+/-/=] [nouveaux-droits] [fichiers]

Ici,

qui

fait

référence

à

:

Qui Description u

l'Utilisateur propriétaire du fichier

g

Groupe associé au fichier

o

le reste des utilisateurs (NdT.: Other, autres)

a

tous les utilisateurs (le propriétaire, ceux du groupe, les autres)(NdT.: All, tous)

Avec + nous ajoutons des droits, avec - nous en retirons et avec = nous les mettons exactement.

13

[email protected]

EDDIE

TIM

MORGAN

2008

Dans nouveaux-droits, nous indiquons quels sont les droits à ajouter ou retirer. Ceux-ci sont décrit dans les lettres du premier champ du format long de la commande ls (pour rappel, r : lecture, w : écriture, x : exécution ou accès, s : SetUID) Voyons un exemple pour que les choses soient clairs : chmod u+rw moi

Avec cette ligne de commande, nous ajoutons à l'utilisateur, actuellement vous, le droit de lire et de modifier le fichier dont le nom est moi. chmod a-x répertoire

Avec celle-ci, nous annulons le droit à tous les utilisateurs (vous y compris, le propriétaire) d'entrer dans le répertoire répertoire a d'autres options avancées que nous ne verrons pas ici, mais vous pouvez regarder dans les pages du manuel avec la commande :

chmod

man chmod

Jokers pour les noms de fichiers : Linux permet d'agir sur les fichiers un par un. Mail il permet de faire référence à un fichier de part certains caractéristiques de son nom. Cela se fait en utilisant des jokers dans les arguments. Certains sont communs avec ceux du monde MS-DOS :

*

: fait référence à toute chaîne de caractère (vide ou pas)

Ainsi, nous pouvons avoir : rm *

pour effacer tous les fichiers d'un répertoire rm a*

pour effacer tout ceux commencant par la lettre a rm bet*as

pour effacer tous les fichiers commencant par bet et finissant par as

14

[email protected]

EDDIE

?

TIM

MORGAN

2008

: toute lettre (mais une seule)

Ainsi nous pouvons faire : cat c?t

pour afficher le contenu de tous les fichiers qui commencent par c, qui n'ont que trois lettres et dont la dernière est un t.

[ ] group

: tout caractère appartenant à liste placée entre les crochets.

Par exemple : more [tp]erez

affiche les fichiers terez et perez, s'ils existent. cp c[AEIOU]endo directory

copie tous les fichiers commencant par un c suivi par une voyelle en majuscule et finissant par endo vers le répertoire directory. Nous pouvons aussi utiliser "-" pour créer des intervales : mv *[a-z] trash

déplace tous les fichiers dont les noms sont en minuscules vers le répertoire trash. Toujours plus fort, nous pouvons aussi rejeter un intervale : ls [!a-zA-Z]*

liste les fichiers dont le nom ne commence pas par une lettre de l'alphabet minuscule ou majuscule.

Les redirections Linux est très puissant pour de nombreuses raisons mais l'une des plus parlantes est la redirection dans les lignes de commandes.

15

[email protected]

EDDIE

TIM

MORGAN

2008

Les redirections permettent de rediriger la sortie d'une commande ou d'un programme ailleurs que vers l'écran, c'est à dire dans un fichier ou vers un autre programme. Ainsi, nous pouvons envoyer un fichier dans l'entrée d'une commande, mettre l'affichage d'une commande dans un fichier et même envoyer l'affichage d'une commande dans l'entrée d'une autre. Enfin, mais cela sert moins, nous pouvons envoyer un fichier dans un autre.

>

(supérieur) : right redirecting

Avec ce symbole, nous pouvons rediriger la sortie d'un programme vers un fichier. Par exemple : cal > février

Ici, nous envoyons l'affichage de la commande cal - la calendrier pour le mois en cours dans le fichier février.

<

(inférieur) : left redirecting

Avec ce symbole, nous redirigerons le contenu d'un fichier vers l'entrée d'une commande. mail marc < courrier

Cela va envoyer par courrier électronique à marc le fichier courrier

>>

(supérieur supérieur) : ajoute à la fin

Cela nous permet d'ajouter l'affichage d'une commande à la fin d'un fichier, sans pour autant écraser ce qu'il y avait déjà dans le fichier. Avec un seul supérieur, le contenu du fichier serait remplacé par la sortie de la commande et donc ce contenu aurait été perdu. cat fichier1 fichier2 fichier3 >> fichier_complet

Nous ajoutons à la fin (concaténons) du fichier fichier_complet le contenu des fichiers fichier1, fichier2 et fichier3.

|

(barre): tube entre deux commandes

16

[email protected]

EDDIE

TIM

MORGAN

2008

Ce symbole permet de faire en sorte que l'affichage d'une commande soit dirigé dans l'entrée d'une autre commande. Ne pas confondre avec cette redirection avec les fichiers spéciaux dont certains sont aussi des tubes. Voyons un exemple : who | grep "marc"

: ("qui" en français) affiche la liste des utilisateurs connectés sur le système, quel terminal ils utilisent et depuis combien de temps. grep : imaginons que nous voulions filtrer la sortie de la commande précédente pour ne voir que les lignes contenant marc. Nous savons que marc est le nom d'un utilisateur à qui nous voulons parler et dans notre système, il n'y a pas de terminal appelé marc, ainsi nous savons si marc est présent sur le système. who

Allons-y par étapes. D'abord, lançons la commande who et ensuite utilisons une tube pour envoyer la liste des utilisateurs à la commande grep avec en paramètre le nom d'un utilisateur. Pour un résultat plus parlant qui afficherait les noms de plusieurs utilisateurs différents, utilisons le concept de console. Linux offre 7 consoles en standart sur votre clavier. De plus, Linux permet de se connecter à d'autres ordinateurs avec du matériel ordinaire par l'ajout de matériel réseau comme une carte token-ring, une carte ethernet, un modem, ... L'utilisateur accède aux différentes consoles de l'ordinateur par les combinaisons de touches Alt+F1 (pour la première), Ctrl+Alt+F2 (pour la deuxième), Ctrl+Alt+F3, Ctrl+Alt+F4, Ctrl+Alt+F5 and Ctrl+Alt+F6. Ctrl+Alt+F7 et Ctrl+Alt+F8 sont les terminaux graphiques, activé par startx. Les précédentes combinaisons permettent donc de passer d'une console texte à une console graphique sans problème.

Les éditeurs de texte Pour la dernière partie, nous avons besoin d'un éditeur de texte. Ce sont des programmes qui permettent de saisir du texte, en caractères ASCII, dans un fichier. Attention, le choix d'un éditeur de texte a fait et fait encore l'objet de long débats pour beaucoup d'utilisateurs que je respecte et entraine quasiment des guerres de religions pour savoir lequel est le plus ergonomique :-) •

cat : cette commande sert à visualiser un fichier mais aussi à en créer et écrire dedans. Aucun paramètre n'est indispensable, il suffit de rediriger l'affichage dans le fichier. Voyons par l'exemple suivant : $ cat > carta Cher Bob :

Je voulais te dire que ...

Pour sortir de la saisie, utiliser la séquence [Ctrl]+[d].

17

[email protected]

EDDIE







18

TIM

MORGAN

2008

ed, ex : sont des éditeur de lignes de texte comme edlin sous MS-DOS. Malgré le fait qu'ils soient très anciens, ils sont très utiles et leurs fonctions peuvent être appelé depuis d'autres programme facilement. vi : c'est l'éditeur de texte standart par mauvaise habitude dans le monde Unix. Sa présence est garantie dans tous les Unix sur lesquels vous vous connectez. C'est un éditeur plein écran très compliqué et avec une facilité d'apprentissage qui le fait détester par beaucoup de gens. D'un autre côté, il est indispensable d'en connaître quelques commandes pour pouvoir se débrouiller sur n'importe quel Unix où que l'on soit et cela dépanne bien lorsqu'on fait de l'installation ou de la configuration car alors vous ne pourrez compter que sur vi. Dans les prochains chapîtres de cette série, nous étudierons plus en détail cet étideur. joe : est le plus commode éditeur de texte que je connaisse. Il est inspiré de l'éditeur Word-Star ou des éditeurs Turbo BORLAND (Turbo C, Turbo Pascal, etc). Cependant, il a de sérieux problème de compatiblité avec les claviers et les écrans entraînant de mauvaises conditions de travail avec quelques terminaux, l'empêchant de fait de devenir un standart. Remerciez sa simplicité d'utilisation, je vous recommande de commencer avec celui-ci.

[email protected]

EDDIE



TIM

MORGAN

2008

Une version graphique du populaire EMACS (XEMACS). emacs: cette éditeur est le premier logiciel GNU, écris par Richard STALLMAN avec l'idée derrière de créer un logiciel libre accessible à tous sans restriction, d'avoir le droit de faire des copies des programmes. Ce furent les bases de ce qui devint très vite le système GNU (compilateur, utilitaires de fichiers (gestionnaire de fichiers), deboggeurs, ...) et plus tard de ce qui devint une part fondamentale de Linux.

Dans les prochains numéros de cette série, nous allons découvrir les outils de manipulations des fichiers (the GNU file utilities). Emacs est probablement le plus grand éditeur de texte connu pour savoir tout faire : ide, debogguer, gérer le courrier électronique, surfer sur le web, lire les newsgroups, le jeu de la tour de Hanoi, calendrier avec les phases de la lune et même psychanalyste. C'est difficile pour les utilisateurs habitués à d'autres éditeurs, surtout venant du monde MSDOS (joe est plus utilisé), d'autre part il utilise pas mal de mémoire et devient désespérément lent sur des systèmes qui n'ont pas assez de mémoire ou très chargés. Il existe aussi une version très orientées X comme xemacs. Voici, c'est la fin de ce premier article d'initiation à l'administration système. Dans le prochain, nous allons voir en détail les outils GNU de gestion de fichier et ensuite je parlerai d'éditeurs trèsf utilisés sous Linux (vi et joe).

Droits d'accès aux fichiers Chaque fichier ou dossier a également un uid et un gid. Unix gère pour chaque fichier les droits d'accès par: • • •

son propriétaire (owner) les utilisateurs appartenant à son groupe les autres utilisateurs (world, le reste du monde)

Les droits d'accès sont représentés par 1 bit chacun, soit: • • •

lecture ("r") écriture ("w") exécution ("e")

Cela fait donc 3 groupes de 3 bits pour gérer ces droits d'accès, affichés par exemple par: ti_public jmenu /home/jmenu > ls -l .ssh total 16 -rw-r--r-1 jmenu users 625 Mar 17 00:12 authorized_keys2 -rw------1 jmenu users 736 May 9 22:33 id_dsa -rw-r--r-1 jmenu users 605 May 9 22:33 id_dsa.pub -rw-r--r-- 1 jmenu users 1162 May 20 15:15 known_hosts 19

[email protected]

EDDIE

TIM

MORGAN

2008

On voit là l'accès très restreint à la clé privée SSH "id_dsa", et l'accès en lecture généralisé à la clé publique "id_dsa.pub"! Un tiret "-" désigne une absence de droit. Le tout premier caractère précise la nature du fichier, en particulier: • • •

"d" pour un dossier (directory) "l" pour un lien vers un autre fichier (link) "c" pour un périphérique attaché à la machine (character device)

Exemple: ti_public jmenu total 0 drwxr-xr-x 1 root root 4 drwxr-xr-x 29 root root 0 lr-xr-xr-x 1 root root 13 May 12 0 crw------1 root root 5, ... ... ... ... ...

/dev

>

ll 4 0 Jan 1 1970 ./ 4096 Jun 11 06:49 ../ 00:15 apm_bios -> misc/apm_bios 1 May 12 00:16 console

Pour faire que le fichier /tmp/bonjour aie comme seuls droits d'accès la lecture et l'écriture par lui-même, l'utilisateur "root" peut utiliser "chmod" en écrivant chaque groupe de 3 bits en octal (6 pour "rw-" par exemple): ti_public root - /tmp > chmod 600 bonjour ti_public root /tmp 4 -rw------- 1 root root 41 Jun 29 17:17 bonjour

>

ls

-sal

bonjour

L'utilisateur "jmenu" peut à son tour créer un fichier dans le même dossier, y ajouter le droit d'écriture pour le membres du groupe du fichier et essayer d'afficher le contenu des deux fichiers: ti_public jmenu Fichier appartenant ti_public jmenu - /tmp >

/tmp

> a

ti_public jmenu /tmp > 4 -rw-r--r-- 1 jmenu users 42 Jun 29 17:25 bonsoir ti_public jmenu /tmp > ti_public jmenu /tmp > 4 -rw-rw-r-- 1 jmenu users 42 Jun 29 17:25 bonsoir

20

cat > l'utilisateur

ls

chmod ls

bonsoir jmenu

-sal

bonsoir

g+w -sal

bonsoir bonsoir

[email protected]

EDDIE

TIM

MORGAN

ti_public jmenu /tmp 4 -rw------1 root root 41 4 -rw-r--r-- 1 jmenu users 42 Jun 29 17:25 bonsoir ti_public jmenu cat: bonjour: Fichier appartenant a l'utilisateur jmenu

/tmp

> Jun

2008 ls 29

> Permission

-sal 17:17

bon* bonjour

cat

bon* denied

Touche "contrôle" (Ctrl) Au clavier: • • •

ctrl-c interrompt la commande en cours d'exécution; ctrl-u fait renoncer à la commande en cours de saisie ; ctrl-s fait stopper le défilement à l'écran et ctrl-q le fait reprendre (voir aussi more).

Commandes utiles Citons: • • • • • •

• • •

21

"who", "who -a" et "who am i" pour savoir qui travaille sur la machine, et depuis où "ls -sal" pour voir des détails sur les fichiers "df" pour affichier les volumes disques montés et leur point de montage "du -sk" pour afficher la taille en kilo-octets des dossiers et fichiers grep -i" pour ignorer les différences entre majuscules et miniscules dans la mise en correspondance par expressions régulières "more" et "less" pour afficher de grandes quantités d'information pas à pas, on peut rechercher une chaîne avec "/", et même revenir en arrière dans le cas de "less" "cat différents_fichiers" pour mettre bout à bout le contenu de ces fichiers "ps -ef" pour afficher les processus tournant sur la machine, pensez à faire un pipe sur grep! "top" pour afficher les processus par consommation décroissante de ressource processeur

[email protected]

Related Documents