TP2 Unix / Linux. Ce TP sera réalisé sur Linux distribution Suse 10, version serveur d'entreprise (Suse ES10)

Documents pareils
TP1 - Prise en main de l environnement Unix.

sshgate Patrick Guiran Chef de projet support

Le système GNU/Linux IUP NTIC /11/05

TP 4 de familiarisation avec Unix

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

2011 Hakim Benameurlaine 1

TP 1 Prise en main de l environnement Unix

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Aide-Mémoire unix. 9 février 2009

Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

Shell Bash Niveau débutant

La Comptabilité UNIX System V Acctcom

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

1 Démarrage de Marionnet

Architecture de la plateforme SBC


Projet Administration Réseaux

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Instructions Mozilla Thunderbird Page 1

Les différentes méthodes pour se connecter

Outils pour la pratique

Bon ben voilà c est fait!

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Vanilla : Virtual Box

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

Le service FTP. M.BOUABID, Page 1 sur 5

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

INFO-F-404 : Techniques avancées de systèmes d exploitation

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

L'accélération 3D sous Linux

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

TP N 1 : Installer un serveur trixbox.

Couche application. La couche application est la plus élevée du modèle de référence.

Table des matières Hakim Benameurlaine 1

Installation d'un serveur FTP géré par une base de données MySQL

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Système et réseaux (SR1) Gestion des utilisateurs

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

TP1 : Initiation à l algorithmique (1 séance)

Programmation C. Apprendre à développer des programmes simples dans le langage C

D r o i t s D r o i t s Q u i z z : i n t e r n e t t e x t e

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

1. Warm up Activity: Single Node

Premiers pas en Linux

Séance 0 : Linux + Octave : le compromis idéal

Service FTP. Stéphane Gill. Introduction 2

ftp & sftp : transférer des fichiers

Sauvegardes par Internet avec Rsync

Administration Linux - FTP

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6

TP SECU NAT ARS IRT ( CORRECTION )

DOCKER MEETUP. Christophe Labouisse

Serveur de sauvegardes incrémental

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Once the installation is complete, you can delete the temporary Zip files..

MEDIAplus elearning. version 6.6

Sauvegarde sous MAC avec serveur Samba

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Cours Programmation Système

LINUX REMPLAÇANT WINDOWS NT

Client windows Nagios Event Log

TP : Introduction à TCP/IP sous UNIX

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

Séance n o 5 : Alternatives, gestion des utilisateurs et des processus

Cloner un disque dur

Chapitre 4 : Édition de fichiers texte - Vi

Les commandes relatives aux réseaux

I. Présentation du serveur Samba

UBUNTU Administration d'un système Linux (4ième édition)

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

Chapitre IX : Virtualisation

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Python Les fondamentaux du langage

SOMMAIRE. Travailler avec les requêtes... 3

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Installation d un serveur de messagerie en local. Télécommunications & réseaux. Nom-prénom: Fiche contrat

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Ajout et Configuration d'un nouveau poste pour BackupPC

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

1 Configuration réseau des PC de la salle TP

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

C.M. 1 & 2 : Prise en main de Linux

Atelier La notion de session utilisateur sous Linux

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Transcription:

TP2 Unix / Linux Redirection des entrées/sorties Commandes find, grep, sort, wc, head, tail, less Gestion des Processus et communications par signaux Session utilisateur : variables d'environnement et fichier.profile Ce TP sera réalisé sur Linux distribution Suse 10, version serveur d'entreprise (Suse ES10) Les modes opératoires, et les commandes utilisées sont souvent semblables sur d'autre distributions Linux et même d'autres systèmes Unix. Par contre, l'outil d'administration Yast est spécifique à la distribution Suse Yast 1 = Yet another Setup Tool Ouvrir une session Unix sous son nom personnel On travaillera en mode texte, soit directement dans la fenêtre courante si la session est en mode texte, soit dans une fenêtre de "Terminal" si la session est une session graphique. Créer un dossier ~/TP2 par mkdir ~/TP2 Les fichiers et dossiers qui seront créés dans le cadre de ce TP seront systématiquement créés dans le dossier ~/TP2 Table des matières Redirection des entrées/sorties... 2 Redirection simple des sorties " >"...2 Redirection des sorties en complémentarité: ">>"... 2 Redirection des entrées... 2 Enchaînement des commandes par "tube" ou "pipe" : " " (Alt Gr + 6)... 3 Alias de commandes...3 Modifier le fichier de configuration ~/.profile... 3 Commandes de traitement des fichiers de texte... 4 recherche de texte par grep... 4 Visualiser ou compter les lignes d'un fichier de texte... 4 Trier un fichier de texte... 5 Exemples d'enchaînement de commandes... 5 Commande find... 5 Gestion des processus...6 Liste des processus...6 Description d'un processus... 6 Communications interprocessus par signaux...7 Notes...8 1 cf Yac : Yet another Compiler TP N 2 Unix / Linux ICASE 1 / 9 Groupe esaip

Redirection des entrées/sorties Redirection simple des sorties " >" Faire de ~/TP2 de répertoire courant cd ~/TP2 Créer un fichier en utilisant la commande echo Bonjour > bonjour.txt Afficher le contenu de bonjour.txt par la commande cat Vérifier la taille de ce fichier en utilisant les commandes ls et du Quels sont les droits d'accès à ce fichier? Donner les droits d'accès 0660 à ce fichier (commande chmod) A quoi correspondent les droits d'accès 0660? r et w pour le propriétaire et le groupe que fait la commande >bonjour.txt? vide le fichier sans changer les droits d'accès quelle différence avec la commande rm bonjour.txt; touch bonjour.txt? les droits d'accès sont changés car un nouveau fichier est créé Redirection des sorties en complémentarité: ">>" Quelle différence entre les 2 lignes de commandes suivantes? echo Bonjour > bonjour.txt; echo Bonjour > bonjour.txt 1 seule ligne dans le fichier echo Bonjour > bonjour.txt; echo Bonjour >> bonjour.txt 2 lignes dans le fichier Redirection des entrées Que fait la commande cat < bonjour.txt? affiche le contenu du fichier Quelle différence avec cat bonjour.txt? aucune taper la commande cat puis les entrées suivantes Bonjour Aurevoir ^D 2 Comment interpréter ce qui s'est passé? l'entrée standard de cat est le clavier, la sortie standard est la console ^D indique la fin du fichier d'entrée, donc arrêt de la commande cat 2 CTRL + d (Sous Unix le caractère de code ascii 04 = EOT, produit par CTRL+D est le code " fin de fichier texte) voir http://www.commentcamarche.net/base/ascii.php3 TP N 2 Unix / Linux ICASE 2 / 9 Groupe esaip

Enchaînement des commandes par "tube" ou "pipe" : " " (Alt Gr + 6) On peut faire en sorte que les sorties écran d'une commande deviennent les entrées d'une autre commande en réunissant ces commandes par le caractère "pipe" " " que fait la commande wc -l /etc/passwd (voir man wc) compte les lignes du fichier quelle différences avec cat /etc/passwd wc -l? aucune Alias de commandes la commande dir produit le même résultat que la commande ls -l on peut vérifier en effet que alias dir signale que dir est un alias de ls -l Supprimer l'alias par unalias dir Que produit alors la résultat de la commande dir? un affichage différente de la liste des fichiers Quelle commande est alors exécutée? le rechercher par whereis dir /usr/bin/dir redéfinir l'alias par alias dir='ls -l' Quelle commande taper pour obtenir le même résultat que dir lorsque l'alias n'est pas défini? /usr/bin/dir Afficher tous les alias définis pour votre session en tapant alias (On pourra éventuellement rechercher l'intérêt de ces alias) cd..='cd..' corrige automatiquement une écriture correcte sous Windows mais erronée sous unix md='mkdir -p' définit une commande Unix md analogue à la commande md de Windows Définir clrscr comme alias de clear et vérifier que clrscr efface l'écran, comme clear Ouvrir une autre fenêtre de commande : est-ce que la commande clrscr est définie dans cette nouvelle session? Conclusion? les alias sont spécifiques à chaque session, et devront donc être redéfinis à chaque ouverture de session Modifier le fichier de configuration ~/.profile en utilisant un éditeur 3 de texte modifier le fichier ~/.profile pour ajouter les lignes suivantes à la fin de ce fichier : unalias dir alias clrscr='clear" Ouvrir une nouvelle fenêtre (nouvelle session) et vérifier les commandes dir et clrscr Conclusion: quand le fichier.profile est-il exécuté? à l'ouverture de la session voir man bash et rechercher.bash_profile dans ce document i 3 Utiliser l'éditeur gedit ou kwrite ou kate en mode graphique; utiliser joe ou vi en mode texte. Avec joe, taper ctrl+k et ensuite h pour afficher une fenêtre d'aide. Pour utiliser vi, on pourra se référer au document suivant : "http://doc.esaip.org/~ptregouet/cours/puse Pratique Unix des Systemes d'exploitation/utiliser vi.htm" TP N 2 Unix / Linux ICASE 3 / 9 Groupe esaip

Commandes de traitement des fichiers de texte 4 recherche de texte par grep Nous allons rechercher où est défini l'alias de dir à l'ouverture de notre session. Lorsqu'on ouvre une session 2 scripts sont exécuté : 1. le script système /etc/profile 2. le script utilisateur ~/.profile 5 En utilisant grep : Rechercher "alias" dans ~/.profile. Résultat? grep alias ~/.profile résultat : rien Rechercher "alias" dans /etc/profile. Résultat? grep alias /etc/profile résultat : rien Rechercher "alias" dans /etc/*. Résultat?grep "alias dir" /etc/* 2>/dev/null résultat : /etc/bash.bashrc Conclusion? on peut vérifier (par less) que le script /etc/profile lance l'exécution de /etc/bash.bashrc Visualiser ou compter les lignes d'un fichier de texte Que permet less /etc/passwd? voir le contenu du fichier sous less, taper h ii pour avoir l'aide (help) Comment atteindre la dernière ligne? G Comment revenir à la dernière ligne? g Comment afficher les numéros de lignes? -M ce qui est sans doute une des options définies pas la variable LESS (vérifier en tapant echo $LESS) Quelles différences entre less /etc/passwd et more /etc/passwd? il est possible de revenir en arrière avec less Comment afficher numéroter les lignes en utilisant cat et less? cat -n /etc/passwd less Comment compter les lignes en utilisant wc? cat /etc/passwd wc -l Comment afficher les 3 première lignes avec head? head -3 /etc/passwd Comment afficher les 3 dernières lignes avec tail? cat -n /etc/passwd tail -3 Comment afficher les lignes 5 à 10 avec head et tail? cat -n /etc/passwd head -10 tail -6 4 Pour une document plus précise sur ces commandes, utiliser man ou se reporter aux documents suivants : http://doc.esaip.org/~ptregouet/_promo/cpi1/icase/cours Unix 2 - esaip Tregouet.pdf http://doc.esaip.org/~ptregouet/_promo/cpi1/icase/cours Unix 2 - esaip Tregouet.rtf 5 Ce peut être aussi ~/.bash_profile ou ~/.login si.profile n'existe pas (voir man bash) TP N 2 Unix / Linux ICASE 4 / 9 Groupe esaip

Trier un fichier de texte Que fait la commande sort /etc/passwd -t: -k3nr? trie /etc/passwd dans l'ordre descendant du 3ème champ (UID) Comment trier le fichier /etc/passwd 1. sur le numéro du groupe principal de l'utilisateur (ordre croissant) 2. sur le nom de l'utilisateur (ordre décroissant) sort /etc/passwd -t: -k4n -k3nr less Exemples d'enchaînement de commandes 1. Que font les commandes suivantes? /sbin/ifconfig grep adr: grep -v 127 ls -l /etc grep ^- sort -k5 affichage de la configuration des cartes réseau recherche des lignes contenant :adr à l'exclusion de celles qui contiennent 127 (interface LO) liste des fichiers de /etc recherche des lignes content "-" au début (fichiers ordinaires) tri selon le nombre d'octets du fichier 2. Comment modifier la dernière commande pour que le tri donne quelque chose d'utile? ls -l /etc grep ^- sort -k5n car le nombre d'octets est un champ numérique 3. La commande cat /etc/services affiche la liste des services réseau connus de votre systèmes. Comment compléter cette commande pour ne garder de cette liste que les services TCP (en mode connexion) ayant un rapport avec ftp. On souhaite aussi que cette liste soit triée dans l'ordre décroissant des numéros de port. cat /etc/services grep ftp grep tcp sort -k2nr Commande find Expliquer les paramètres des commandes suivantes : 1. find /etc -maxdepth 1 -name "*conf*" un seul niveau d'arborescence le nom de fichier est comme "*conf*" 2. find /etc -type f -name "*.conf" grep Perm fichiers ordinaires nom comme "*.conf" ligne contient Perm (erreurs) 3. find /etc -type f -name "*.conf" 2>/dev/null grep Perm supprimer les messages d'erreur (sortie 2=stderr) 4. find /etc -type f -name "*.conf" -ok less {} \; 2>/dev/null pour chaque fichier trouvé, proposer de voir son contenu En utilisant la commande find rechercher dans /var tous les fichiers modifiés depuis le démarrage 6 de votre ordinateur. find /var -newer /var/log/boot.msg 2> /dev/null on pourra utiliser ls -lt pour voir ensuite le contenu d'un répertoire trié par date de modification 6 On utilisera le paramètre -newer de find, en tenant dompte du fait que le fichier /var/log/boot.msg a été créé au démarrage du système. On peut vérifier que l'âge de ce fichier correspond au temps écoulé depuis le démarrage du système: ce temps est donné par la commande uptime. TP N 2 Unix / Linux ICASE 5 / 9 Groupe esaip

Gestion des processus Liste des processus Les processus de votre ordinateur sont visibles en utilisant par exemple les commandes ps auxf, ou pstree (ou pstree -p) ou top En utilisant ces 2 commandes, répondre aux questions suivantes: Combien y a-t-il de processus actuellement présents sur votre ordinateur? voir commande top Combien sont prêts (état running )?voir commande top Combien sont bloqués (état sleeping)?voir commande top Combien de processus appartiennent au superviseur 7 (root)? ps auxf grep ^root wc -l Combien appartiennent à l'utilisateur propriétaire de votre session? ps auxf grep ^$LOGNAME wc -l Quel le processus ancêtre de tous les autres? init (utiliser pstree) Quel est le numéro de ce processus? 1 (utiliser pstree -p) Pouvez-vous retrouver toutes ces informations en mode mode graphique en utilisant le moniteur système (Ksysguard)? Description d'un processus Parmi les les informations qui décrivent un processus à quoi correspondent les champs suivants affichés par la commande top 8 : PID USER PR NI numéro du processus nom du propriétaire du processus priorité du processus "nice" = courtoisie du processus (effet inverse de la priorité) VIRT taille de la mémoire virtuelle utilisée par le processus (VIRT=SWAP+RES) RES SHR taille de la mémoire réelle (RAM) utilisée par le processus taille de la mémoire partagée (utilisable par d'autres processus) S S -- Process Status 'D' = uninterruptible sleep 'R' = running 'S' = sleeping 'T' = traced or stopped 'Z' = zombie %CPU %MEM % du temps processeur consommé par ce processus depuis le dernier affichage de top (temps de rafraîchissement = 3 secondes, par défaut?) % de la mémoire réelle (RAM) utilisée par ce processus TIME+ Temps processeur en 1 / 100 sec consommé depuis le démarrage du processus COMMAND Nom du programme exécuté par ce processus 7 Utiliser pas auxf, grep et wc -l 8 Voir le cours page 24 ou man top TP N 2 Unix / Linux ICASE 6 / 9 Groupe esaip

Communications interprocessus par signaux La commande kill sert à envoyer un signal à un processus (et éventuellement à le tuer) Ouvrir 2 fenêtres de commandes qui correspondront à 2 processus shell différents, chacun ayant un numéro de processus qui l'identifie de manière unique. 1. Il est possible d'afficher le numéro du processus shell associé à une fenêtre en tapant l'une des commandes suivantes : ps (sans paramètres) : on voir l'identification du processus bash (le shell) et l'identification du processus qui vient de réaliser la commande ps echo $$ : la variable $$ du shell contient le numéro du shell courant 2. Envoyer 9 le signal 1 à l'une des fenêtres, à partir de l'autre : kill -1 < No du processus visé > Que se passe-t-il? le processus est tué 3. Modifier le comportement du processus bash à la réception du signal 1 en tapant la commande suivante : trap 'uptime' 1 La commande trap (sans paramètres) permet de voir les actions associées aux signaux 10 4. Envoyer le signal 1 à la fenêtre dans laquelle on a tapé la commande trap précédente, soit à partir d'une autre fenêtre: kill -1 < No du processus visé > soit à partir de la fenêtre courante : kill -1 $$ Que se passe-t-il? la commande uptime est exécutée 5. Comment faire pour que le processus shell écrive "j'ai reçu le signal 3" dans le fichier ~/signal3 à chaque fois qu'il reçoit ce signal? On souhaite voir, dans ce fichier, autant de lignes que de signaux 3 reçus. On souhaite aussi que les lignes soient datées (utiliser le résultat 11 de la commande date) trap 'echo " `date` : signal 3 reçu " >>~/signal3' 3 6. Est-il possible de redéfinir l'action associée au signal 9? essayer en utilisant trap 'ls -l' 9 ; trap et envoyer le signal 9 au processus Que se passe-t-il? le processus est tué, donc le signal 9 n'a pas été véritablement redéfini Interprétation 12? Les signaux SIGKILL=9 et SIGSTOP=19 ne peuvent être redéfinis 9 Attention : si vous n'êtes pas superviseur (root ) vous ne pouvez pas envoyer de signaux aux processus qui ne vous appartiennent pas 10 Les signaux sont ici définis non par leur numéro mais par la constante associée. La liste des constantes représentant les numéros de signaux est donnée par la commande kill -l 11 Le shell permet de "capturer" la sortie écran d'une commande en encadrant cette commande par les caractères `` obtenus au clavier par Alt Gr + 7. La commande echo " aujourd'hui `date` " > /tmp/bonjour permet ainsi d'écrire le mot aujourd'hui suivi de la date du jour dans le fichier /tmp/bonjour 12 voir man 2 signal et rechercher dans la page SIGKILL et SIGSTOP TP N 2 Unix / Linux ICASE 7 / 9 Groupe esaip

Notes i When bash is invoked as an interactive login shell, or as a noninteractive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior. ii JUMPING g < ESC-< * Go to first line in file (or line N). G > ESC-> * Go to last line in file (or line N). 25p * Go to 25 percent into file TP N 2 Unix / Linux ICASE 8 / 9 Groupe esaip