Tuesday, June 28, 2016

CentOS - à la ligne de commande - 03 : interfaces réseau

Dans ce billet, je configure certains aspects de la principale interface réseau de ma machine virtuelle exécutant CentOS 7.

Comme sous Windows, nous pouvons modifier les paramètres réseau avec différentes commandes, par exemple...

ifconfig eth0 10.0.0.1

Il s'agit là d'attribuer l'adresse IP 10.0.0.1 à l'interface Ethernet eth0.

Mais à la différence de Windows, ces modifications ne sont pas permanentes. Après un redémarrage, les paramètres précédents sont rétablis. Si nous voulons que nos modifications "tiennent", nous devons plutôt éditer certains fichiers.

En effet, sous Linux, tout est un fichier.

Dans mon cas, j'ai commencé par le fichier suivant : ifcfg-eno16777736

/etc/sysconfig/network-scripts/ifcfg-eno16777736

De quoi s'agit-il d'abord ?

Depuis CentOS 7 (et RHEL 7), les interfaces réseau se nomment selon le système de "noms d'interfaces réseau prévisible" (Predictable Network Interface Names). Ce système existait déjà sous CentOS 6 mais comme une simple option. C'est désormais la règle ( le cas par défaut).

Quel problème ce mécanisme résout-il ?

Autrefois, les interfaces se voyaient attribuer un nom comme eth0 ou eth1 ("eth" pour ethernet) selon l'ordre dans lequel elles étaient détectées au démarrage. Si le hôte en question ne possédait qu'une seule interface, rien n'était à craindre.

Mais si l'hôte possédait plusieurs interfaces (scénario tout à fait plausible s'agissant d'un serveur), celles-ci pouvaient être détectées dans un ordre différent d'un démarrage à l'autre.

Et alors ?

Telle interface pouvait être tantôt eth0 et tantôt eth1. Cela pourrait désorienter l'administrateur mais aussi rendre inefficaces les règles de pare-feu associées à une interface spécifique.

Mon serveur Linux (machine virtuelle) ne possède qu'une seule interface et, pour simplifier la présentation de cette matière, je vais désactiver le nouveau système de nommage (un peu plus loin dans ce texte).

***

En fait, j'ai d'abord cru que le nom d'interface était choisi de façon aléatoire au moment de l'installation (d'une façon comparable à ce qui se passe sous Windows pour le nom de l'ordinateur) et qu'il s'agissait de donner à l'interface un nom de mon choix.

Voici donc ce que j'ai fait (peut-être inutilement à en juger par ce que je sais maintenant) :

En premier lieu, je navigue jusqu'au répertoire "network-scripts" et j'exécute la commande suivante :

mv ifcfg-eno16777736 eth0

Rappel : voici de nouveau le chemin : /etc/sysconfig/network-scripts/

A ce que j'ai compris, eth0 est le nom habituel de la première interface réseau dans le monde Linux. Cela fera mon affaire pour cette première expérience.

En second lieu, je modifie deux paramètres dans le fichier : NAME et DEVICE


Remarque : j'ai fait les modifications avec l'éditeur de texte vi. L'utilisation de cet éditeur dépasse le cadre de ce billet de blogue.

Par ailleurs, j'ai remarqué que, par défaut, CentOS ne semble pas solliciter une adresse IP au moment de démarrage. Il faut que je déclenche le processus moi-même en saisissant la commande "dhclient". Je ne sais pas si cela tient à une fausse manoeuvre de ma part ou si c'est simplement ainsi.

Quoi qu'il en soit, je crois que cela se corrige en changeant la valeur du paramètre ONBOOT à "yes" (c'est "no" par défaut). C'est d'ailleurs ce que j'ai fait (voir la capture d'écran ci-dessus).

Ces modifications faites, je fais redémarrer la machine en exécutant la commande suivante :

shutdown -r

Les changements ont tenu.

Qui plus est, ils n'ont pas cassé la connectivité réseau. Par example, je peux saisir...

ping 8.8.8.8

Et j'ai bien une réponse.

La machine virtuelle obtient donc désormais son adresse IP au démarrage.


***

Je remarque pourtant que la commande ifconfig affiche toujours l'ancien nom de l'interface :


Remarque : vous pouvez agrandir l'image en cliquant dessus.

Si nous voulons que l'interface elle-même soit nommée selon l'ancien protocole, il faut modifier le fichier nommé "grub" qui se trouve à cet emplacement :

etc/default/grub

Voici le fichier avant toute modification :



C'est la ligne GRUB_CMDLINE_LINUX que nous devons changer en ajoutant les éléments suivants, l'un après l'autre, en laissant bien un espace entre eux :

biosdevname=0 net.ifnames=0

Voici la ligne après modification :



Cela fait, nous devons mettre à jour un autre fichier, grub.cfg, avec la commande suivante :

grub2-mkconfig -o /boot/grub2/grub.cfg

Et voilà ce que cela donne :



Remarque : si notre machine utilise EFI au lieu d'un BIOS traditionnel, ce serait plutôt cette commande : grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Je fais redémarrer avec la commande shutdown -r et maintenant, l'interface porte le nom "eth0" :



***

Allons plus loin...

Jusqu'ici, ma machine virtuelle utilise une adresse IP allouée par DHCP. Si elle va tenir un rôle de client (station de travail), cela fera l'affaire.

Par contre, si l'hôte jouera le rôle de serveur, il faut plutôt lui assigner une adresse statique ainsi que des valeurs compatibles pour le masque de réseau, la passerelle par défaut et les serveurs DNS.

Nos accomplissons cela en éditant deux fichiers :
  • etc/sysconfig/network-scripts/ifcfg-eth0
  • etc/sysconfig/network
Remarque : ifcfg-eth0 est le nom de l'interface de ma machine virtuelle après les changements faits plus haut. Bien entendu, le nom de l'interface pourrait être différent.

D'abord, j'ajoute les lignes désignées par un point rouge dans la capture d'écran ci-dessous :


Si je montre le résultat avec "cat ifcfg-eth0", il faut, bien entendu, utiliser vi (ou un autre éditeur de texte) pour effectuer les ajouts.

Remarque ; il va de soi que vous mettrez des valeurs qui conviennent à votre réseau. Celles que j'ai indiquées ci-dessus n'auraient sûrement aucune logique dans un autre environnement. Un mot sur l'adresse du serveur DNS : il s'agit d'un des serveurs d'Open DNS.


Ensuite, j'ajoute les trois lignes suivantes dans le fichier "network" :



En ce qui concerne DNS, la désignation des serveurs se faisait autrefois dans ce fichier directement :

/etc/resolv.conf

Désormais, nous indiquons les adresses IP des serveurs DNS dans le fichier qui correspond à l'interface en question, par exemple "ifcfg-eth0" pour l'interface eth0. Si la valeur du paramètre PEERDNS est égale à "yes", le système ajoute les serveurs DNS au fichier resolv.conf de façon automatique et sous la forme suivante :

nameserver 208.67.220.220

Si la valeur de PEERDNS était égale à "no", nous pourrions éditer le fichier resolv.conf à la main mais a priori je n'en vois pas l'avantage.


***


Voilà qui suffit pour la configuration de base. Et PowerShell dans tout cela (un de mes objectifs pour cette série de billets était de voir quelles commandes Linux pourraient fonctionner dans PowerShell) ?

La composante réseautique se gère de manière tout à fait différente dans Linux et Windows (fichiers pour Linux, le "registre" pour Windows - derrière la GUI) et les commandes ne fonctionnent pas dans l'autre environnement.

Une des rares exceptions, c'est la commande ping. Mais elle non plus ne fonctionne pas de la même façon.

Si je saisis "ping" à la ligne de commande Linux (et appuie sur Retour/Entrée) Linux fera des "pings" tant qu'on ne l'arrête pas en appuyant sur Ctrl+C. Windows (par défaut) arrête après 4 "pings".

Linux se comporte de même si nous saisissons plutôt...

ping -c 4

Quant à traceroute, Windows a une commande comparable mais qui s'épèle tracert.


***


Avant de clore ce billet, je vais mettre an annexe d'autres commandes utiles :
 

ifconfig - montre la configuration des interfaces réseau.

Cet outil ne fait pas partie de l'installation minimale. Nous devons l'ajouter avec la commande :

yum install net-tools


dig - comparable à nslookup. Les deux fonctionnent sous Linux.


host - fait savoir quel nom de hôte correspond à une adresse IP donnée et l'inverse.

Cet outil ne fait pas partie de l'installation minimale non plus. Nous devons l'ajouter avec la commande :

yum install bind-utils


Comment activer ou désactiver une interface sous Linux ? Nous avons deux options :

ifdown eth0
ifup eth0

ou bien...

ifconfig eth0 down
ifconfig eth0 up

Si nous voulons que les deux commandes s'exécutent l'une après l'autre :

ifconfig eth0 down ; ifconfig eth0 up


Comment arrêter / démarrer / désactiver / activer le service "network" (sous RHEL/CentOS 7) ?

systemctl stop network.service

systemctl start network.service

systemctl enable network.service

systemctl disable network.service



Friday, June 24, 2016

CentOS - à la ligne de commande - 02 : gérer répertoires et fichiers

English abstract: in this blog post, I look at the commands ls, cd, mkdir and cp with various parameters. I also verify which combinations function with PowerShell.

Après des expériences touchant surtout aux systèmes Microsoft (Active Directory, Exchange, PKI, Office 365), et un aperçu de certains répartiteurs de charge (Kemp et Citrix), je voulais refaire un effort d'apprendre un peu plus sur Linux, CentOS en particulier. Pour le moment, mon installation de CentOS ne comporte aucune interface graphique. Je n'ai que l'interpréteur de ligne de commande. J'allais me mettre au travail et puis... je me suis souvenu d'une particularité de Windows PowerShell : l'inclusion de commandes Linux.

Je m'explique.

Si nous voulons afficher le contenu d'un répertoire, nous pouvons exécuter la commande - ou "cmdlet" - PowerShell :

Get-ChildItem

Nous pouvons utiliser l'alias:

gci

Nous pouvons aussi recourir aux anciennes commandes dites "DOS" :

dir

Mais ce qui est sans doute plus étonnant, c'est le fait de pouvoir utiliser des commandes Linux, et dans le cas présent :

ls

Toutes ces commandes accomplissent la même tâche : afficher le contenu d'un répertoire.


Et voilà que j'ai décidé de donner une tournure un peu spéciale à mon apprentissage des commandes Linux. Il s'agira non seulement de réviser ces commandes mais aussi de voir jusqu'à quel point elles ont été intégrées dans PowerShell (version 4 dans mon cas).

Je commence par quelques commandes de base et qui, sauf mention contraire, fonctionnent aussi dans PowerShell.

clear

Cette commande efface à l'écran le rendu (l'affichage) de toutes les commandes saisies jusqu'à présent.


pwd

Cette commande montre le chemin du répertoire dans lequel l'on se trouve (ou le répertoire "courant").



ls

Nous savons déjà que cette commande s'exécute dans PowerShell mais en va-t-il de même de toutes ses options ?


ls /

Cela affiche les fichiers (et répertoires) à la racine :



Remarque : selon la taille de l'écran, l'affichage pourrait ressembler plutôt à ceci :




Et cela fonctionne sous Windows (PowerShell) aussi :





Par défaut, Linux affiche les résultats par ordre alphabétique, ligne par ligne. Pour afficher les éléments en une seule colonne, nous devons utiliser le paramètre -1 (le numero 1 - comme 1, 2, 3, etc.). Je vais utiliser l'exemple du répertoire /var.



Il ne faut pas confondre avec l'option -l (la lettre l comme "long") qui affiche de nombreux détails sur les répertoires et fichiers en question.


Quoi qu'il en soit...


Ni

ls /users -l

ni

ls /users -1

n'affichent rien sous Windows (soit un message d'erreur pour le premier, soit rien du tout pour le second).

Remarque : puisque le dossier /var n'existe pas sous Windows, j'ai utilisé à la place le dossiers /users. Il s'agit de simples exemples. Ces deux dossiers n'ont rien de commun quant à leur contenu ou à leur rôle.


ls /users/public -R

Je ne mets pas une capture d'écran pour le paramètre -R (recursive) en raison de la quantité d'éléments qui s'affichent, mais il fonctionne aussi bien sous Linux que sous Windows (et en Windows il n'est pas sensible à la casse).


ls /var -1a

Cette option affiche les éléments en une seule colonne mais le paramètre -a affiche, en plus, les fichiers et les répertoires cachés (le cas échéant) :



Dans ce cas, seul le fichier ".updated" s'ajoute à la liste. Le point "." qui le précède en fait un fichier caché. D'ailleurs, nous pouvons cacher un fichier ou un répertoire en le faisant précéder par un point.

A retenir : le point tout seul "." représente le répertoire courant et les deux points ".." le répertoire parent.


Le paramètre -a (afficher éléments cachés) ne fonctionne pas non plus sous Windows-PowerShell.

En revanche, nous pouvons remonter au répertoire parent en nous servant des deux points comme ceci :

cd /..

cd signifie "change directory"

Et cela fonctionne de la même façon sous Windows (avec ou sans barre oblique) :

PS C:\> cd users
PS C:\users> cd /..
PS C:\>
PS C:\> cd users
PS C:\users> cd ..
PS C:\>

Dans ce cas, pourtant, il s'agit de la commande dite "DOS" qui est la même.

Autres remarques :

ls /var -m affiche les éléments en une seule ligne (horizontale) mais avec une virgule et un espace entre les éléments.

ls /var -X affiche les éléments par extension. -Xr inverse l'affichage. S'il n'y a que des répertoires, c'est l'ordre alphabétique.

Pour afficher selon la taille: -S ("size" en anglais).

Si nous voulions afficher les détails de fichier, les fichiers masqués (ou cachés), la taille des fichiers et en plus, la taille en Ko, Mo ou Go plutôt qu'en simples octets, nous saisirions cette commande (en respectant bien la casse) :

ls -1aSh

Aucune de ces options ne fonctionne sous Windows dans PowerShell.

En outre, sous Linux (mais non pas sous Windows) les éléments affichés se distinguent par couleur. Par example:

Bleu = répertoire
Vert = fichier exécutable



cd

Encore au sujet de la commande "cd", nous pouvons atteindre le répertoire personnel avec le caractère ~

PS C:\> cd users
PS C:\users> cd ~
PS C:\Users\admin-local>

Cependant (et contrairement à cette commande sous Linux), le fait de saisir seulement "cd" ne suffit pas.



mkdir

Nous pouvons passer de répertoire en répertoire avec la commande cd, tant sous Linux que sous Windows, mais comment faire si nous voulons créer un répertoire ?

Il s'agit de recourir à la commande mkdir

Voilà comment j'ai créé plusieurs répertoires (qui serviront plus tard pour d'autres exercices) et les différentes façons dont nous pouvons les afficher avec les options de la commande ls que nous avons vues plus haut :



Précisons tout de suite que mkdir fonctionne aussi sous Windows parce que la même commande existait déjà à l'époque de DOS. Et cela marche toujours :



Remarque : observez bien que nous ne sommes même pas dans PowerShell ci-dessus.



Maintenant je voudrais manipuler les répertoires suivants :



Mais quelques questions d'abord...
  • Comment déplacer Dossier_1-1 et Dossier_1-2 dans le Dossier_1 ?
  • Si les répertoires contiennent des objets enfant (des fichiers par exemple), et que je copie un répertoire, vais-je copier seulement le répertoire ou le répertoire et son contenu ?
  • A ce propos, comment faire pour créer des fichiers ?

A ce sujet, je me permets une petite parenthèse...

Nous pouvons créer des fichiers avec la commande "touch", par exemple :

touch Fichier_1.txt

Je vais même en créer trois :



Pour le moment, ces fichiers sont vides.

Gardons toujours à l'esprit que nous devons respecter la casse quand nous saisissons le nom d'un fichier. A cet égard (dans le monde Linux), fichier_1.txt et Fichier_1.txt sont deux objets distincts. De plus, nous devons mettre l'extension .txt

Dans la capture d'ecran qui suit (voir plus bas), je vais montrer quelques commandes portant sur la manipulation des fichiers :

"cat" est une commande capable d'afficher le contenu d'un fichier texte.

Observons qu'il faut bien indiquer l'extension : "cat Fichier_1" ne donne aucun résultat.

Mais comment ajouter du texte à un fichier (texte) vide ? De nombreux éditeurs de texte existent pour Linux mais pour ce billet, je vais utiliser une autre méthode (qui ne permet pourtant pas de modifier le texte).

Il s'agit d'allier la commande "echo"et le signe " > ".

D'habitude, la commande echo affiche à l'écran ce qu'on vient de taper. Mais si je mets le signe > suivi du nom d'un fichier texte, ce que je tape entre echo et le signe > sera mis dans le fichier texte.

Ensuite, nous pouvons utiliser "cat" pour afficher le texte dans le fichier :



Remarque : si nous tentons d'ajouter encore du texte, nous risquons d'écraser le contenu existant. Pour éviter cela, nous mettons deux signes >>





Mais revenons au déplacement des répertoires et des fichiers.


"mv" et "cp"

Je déplace le Dossier_1-1 dans le Dossier_1 avec la commande mv :

mv Dossier_1-1 Dossier_1




Nous avons donc la structure suivante, soit le répertoire Dossier_1 qui contient le sous-répertoire Dossier_1-1 qui contient à son tour les fichiers Ficher_1.txt, Fichier_2.txt et Fichier_3.txt :




Je déplace aussi le Dossier_2-1, ce qui donne :



Et maintenant, tentons de copier un répertoire sans aucun objet enfant. J'aurais cru que la seule command "cp" aurait suffi mais il paraît qu'il faut mettre -R (R majuscule signifie "récursif").



Remarque : apparemment, la commande "cp" sans -R copie le répertoire seul (quand il s'agit d'un répertoire) mais non pas son contenu. Dans mon cas, cela ne semble pas fonctionner du tout.


Avec le paramètre -R, en tout cas, tant le répertoire que son contenu sont copiés :




***


Je vais m'en tenir là pour le moment. Le fait de mettre des captures d'écran ne me plaît pas comme solution. J'y ai recouru faute de réussir à effectuer des opérations copier/coller entre la machine virtuelle exécutant CentOS 7 (dans VMware Workstation) et l'hôte. Je n'arrive même pas à sélectionner du texte. Je vais donc examiner d'autres options avant de continuer.

Cela dit, les commandes suivantes fonctionnent bien dans PowerShell :

"mv"

"cp"

Avec le paramètre -R cette commande copie le contenu d'un répertoire aussi. Sans le -R, seul le répertoire est copié.

"rm"

Cette commande supprime un fichier (ou des fichiers).

"rmdir"

Cette commande supprime un répertoire. Il y a aussi un paramètre -R.







Saturday, June 18, 2016

CentOS - à la ligne de commande - 01 : premiers pas

My next blog posts will be on two different subjects: CentOS Linux (in French) and, probably a little later, Exchange 2016 (in English).

English abstract: in this first blog post, I address some of the challenges I confronted after installing CentOS 7: no ifconfig, no Perl, installing VMware Tools (yes, these experiences happened in a virtual environment).

***

Après avoir remis sans cesse à plus tard le projet d'apprendre les bases de Linux à la ligne de commande, j'ai enfin installé CentOS 7.0 comme machine virtuelle dans VMware Workstation 11.0. L'installation s'est achevée sans obstacle mais quelques défis se sont présentés ensuite. Nous verrons dans un instant comment je les ai relevés.

Les ressources en ligne consacrées à Linux en général (et même CentOS/Red Hat en particulier) ne manquent pas. Que pourrais-je faire pour donner à ces premiers billets (de blogue) ne serait-ce qu'une ombre d'originalité ?

Je sais que PowerShell incorpore non seulement les anciennes commandes dites "DOS" mais aussi des commandes Linux. Par example, si je veux afficher la liste des éléments présents dans un répertoire (soit des fichiers, soit des sous-répertoires), je peux, avec PowerShell, saisir la commande (dite aussi "cmdlet") suivante:

Get-ChildItem

Nous pouvons abréger avec "l'alias" suivant:

gci

C'est assez concis (et les cmdlets ne sont pas sensibles à la casse - haut de casse, bas de casse, peu importe).

Encore une fois, nous pouvons employer la commande "DOS" comparable...

dir

Et même l'équivalent du monde Linux:

ls


Mais pour construire le texte de mon billet, j'ai découvert que je ne pouvais pas effectuer une opération copier/coller à partir de l'affichage de sortie dans la machine virtuelle CentOS. Cet ennui se recontre aussi dans les machines virtuelles exécutant Windows, et la solution consiste à installer les "Outils VMware" ou "VMware Tools" en version originale.

Installer VMware Tools dans une machine virtuelle Linux s'est révelée assez complexe (en tout cas, de la perspective de quelqu'un qui ne savait pas du tout s'y prendre au début).
  1. Je ne pouvais pas installer les VMware Tools parce que mon installation n'étant pas une installation complète, CentOS a tenté de récupérer les fichiers nécessaires chez une source extérieure. Cette tentative a échoué faute d'une connection à Internet.
  2. Je ne pouvais pas commencer à me dépanner avec la commande ifconfig (facile à retenir en raison de son orthographe presque identique à ipconfig) parce que ifconfig est une commande obsolète chez CentOS 7 et a été retirée. Il est possible de rétablir la commande en installant "Net Tools". Encore fallait-il avoir accès à l'Internet et pour une raison inconnue, il était justement inaccessible.
  3. Même après avoir rétabli mon accès à Internet, je ne pouvais pas exécuter le script qui installe VMware Tools parce que le script en question est un script Perl et les modules permettant d'exécuter de tels scripts n'étaient pas installés.
J'ai pris la décision de faire preuve de concision dans les lignes qui suivent et de ne pas présenter, captures d'écran à l'appui, chaque message d'erreur qui s'est affiché. Comme je ne pouvais pas copier et coller le texte à l'écran, il faudrait que je colle ici des dizaines de captures, ce qui alourdirait le billet. De plus, je suis un peu impatient de passer à l'essentiel, c'est-à-dire l'expérience consistant à voir quelles commandes Linux (autre que ls donné en exemple plus haut) fonctionnent en PowerShell.



Résolution des problèmes de réseau

Je tente d'exécuter les commandes suivantes :

ifconfig (échec)

ping 8.8.8.8 (échec)

Est-ce que j'ai seulement une adresse IP ? Comment savoir sans ifconfig ?

Je saisis...

dhclient

et puis...

ping 8.8.8.8

Et cela marche !

Maintenant, je peux installer Net Tools avec la commande "yum" :

yum -y install net-tools

Le paramètre -y nous évite les confirmations comme "Etes-vous certain de vouloir, etc.". Si ce que nous installons est un programme connu, nous pouvons recourir au paramètre -y. Dans le cas contraire, il serait préférable de passer par les confirmations.

Et maintenant je peux utiliser ifconfig.

Remarque : oui, je sais maintenant que j'aurais pu utiliser la commande "ip addr sh" au lieu de ifconfig.



Résolution des problèmes d'exécution de scripts Perl

Si un message d'erreur s'affiche au sujet de Perl quand nous tentons d'exécuter le script qui installe VMware Tools, c'est sans doute que Perl n'est pas installé et nous devons donc installer les modules Perl avec la commande suivante:

yum install perl

Bien entendu, nous pourrions installer Perl ainsi tout de suite et donc éviter les messages d'erreur.


Installation de VMware Tools

Dans VMware Workstation, nous cliquons sur VM et choisissons l'option "Install VMware Tools" ou "Installer VMware Tools":



Remarque : comme vous l'aurez constaté, j'ai la version anglaise de VMware Tools et par ailleurs, la capture d'écran a été faite alors que VMware Tools était déjà installé.

Le message suivant s'affiche (vous pouvez cliquer dessus pour l'agrandir). Nous devons monter le lecteur de cdrom virtuel, décompresser le programme d'installation et puis exécuter le script Perl, ce que nous pouvons faire maintenant que Perl a été installé :


Mais le message suppose que nous savons comment faire tout cela, ce qui n'était pas mon cas. Après avoir consulté une variété de sources, voilà comment je me suis pris pour y arriver...

Je crée un répertoire pour monter le lecteur de cdrom (voir l'étape suivante - après celle-ci) :

mkdir /mnt/cdrom

Remarque : le lecteur de cdrom est virtuel.


Je monte le lecteur de cdrom dans le répertoire que je viens de créer :

mount /dev/cdrom /mnt/cdrom


Nous pouvons voir le contenu du cdrom que nous venons de monter :

ls /mnt/cdrom



Entre autres, il y a le fichier suivant, une archive compressée d'où nous devons extraire le script d'installation de VMware Tools :

VMwareTools-9.9.2-2496486.tar.gz

Et voilà la commande d'extraction :

tar xzvf /mnt/cdrom/VMwareTools-9.9.2-2496486.tar.gz -C /tmp/

tar effectue l'extraction et le paramètre -C signifie que nous désirons extraire le contenu de l'archive dans un autre répertoire.

Quelques remarques sur les options tar :
  • x = extrait le contenu d'une archive à la différence de "c" qui crée l'archive (en compressant le contenu).
  • z = permet la compression et décompression de fichiers en format "gzip" (je ne sais pas si c'était vraiment nécessaire ici ?).
  • v = affiche les détails de l'opération (mode verbeux).
  • f= ?

Peu importe les options, nous finissons par avoir, dans le répertoire /tmp un sous-répertoire nommé "vmware-tool-distrib" :



Et dans ce sous-répertoire, le script perl "vmware-install.pl" :



Nous pouvons exécuter le script en saisissant ce qui suit (l'option "-d" accepte les paramètres par défaut et nous évite de confirmer chaque fois) :

./vmware-install.pl -d


***


Malgré l'installation de VMware Tools, les opérations copier/coller ne se font toujours pas correctement. Je réussis un peu mieux en ouvrant une session à distance avec PuTTY. Il semble que, par défaut, CentOS (et Red Hat ?) accepte les sessions entrantes. Il suffit de saisir un nom d'utilisateur et un mot de passe. Pour la connection initiale, ces paramètres ont suffi :




Autre chose, j'ai saisi la commande "ls" plusieurs fois ci-dessus, suivie d'une barre oblique et le nom d'un répertoire. Pour mieux se repérer, on aurait avantage à prendre note de la liste des répertoires à la racine du système de fichier Linux :




Sous Windows, ce serait l'ensemble de dossiers se trouvant à la racine du lecteur C: (sauf installation sur un autre lecteur), soit :