Вы находитесь на странице: 1из 24

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers

Par exemple, comment faire pour afficher le contenu d'un fichier ? Comment le dplacer, le copier, le supprimer ?

cat & less : afficher un fichier


Nous allons d'abord voir comment afficher le contenu d'un fichier. Il y a en gros 2 commandes basiques sous Linux qui permettent de faire cela : cat less Aucune de ces commandes ne permet d'diter un fichier, elles permettent juste de le voir. Nous tudierons l'dition plus tard. Mais... pourquoi 2 commandes pour afficher un fichier ? En fait, chacune a ses spcificits ! Nous allons les voir dans le dtail.
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier


Pour nos exemples, nous allons travailler sur un fichier qui existe dj : syslog. Il se trouve dans le dossier /var/log. Commencez par vous y rendre : samir@samir-desktop:~$ cd /var/log trace ls : Ce dossier contient plusieurs fichiers de log, c'est--dire des fichiers qui gardent une de l'activit de votre ordinateur. Vous pouvez faire la liste si vous voulez, en tapant samir@samir-desktop:/var/log$ ls acpid daemon.log.0 kern.log.0 acpid.1.gz daemon.log.1.gz kern.log.1.gz acpid.2.gz daemon.log.2.gz kern.log.2.gz acpid.3.gz daemon.log.3.gz kern.log.3.gz acpid.4.gz debug lastlog scrollkeeper.log.2 syslog syslog.0 syslog.1.gz syslog.2.gz

de ce

* Le fichier sur lequel nous allons travailler, syslog, contient des informations de log

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier


samir@samir-desktop:/var/log$ ls de ce Le fichier sur lequel nous allons travailler, syslog, contient des informations de log qui s'est pass rcemment sur l'ensemble de votre ordinateur. Vous noterez qu'il est frquent de voir des fichiers sans extension sous Linux. Notre fichier s'appelle syslog tout court, et non pas syslog.txt ou syslog.log comme pourrait avoir l'habitude de le voir sous Windows.

on

Un fichier sans extension peut tre ouvert et lu sans aucun problme comme n'importe quel autre fichier.

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier cat : afficher tout le fichier
coup. dans La commande cat permet d'afficher tout le contenu d'un fichier dans la console d'un Il vous suffit d'indiquer en paramtre le nom du fichier que vous voulez afficher, notre cas syslog samir@samir-desktop:/var/log$ cat syslog Nov 14 00:44:23 samir-desktop syslogd 1.4.1#21ubuntu3: restart. Nov 14 00:44:23 samir-desktop anacron[6725]: Job `cron.daily' terminated Nov 14 00:44:23 samir-desktop anacron[6725]: Normal exit (1 job run) Nov 14 00:44:25 samir-desktop NetworkManager: <info> eth1: link timed out. Nov 14 00:44:51 samir-desktop NetworkManager: <info> eth1: link timed out.

En fait, le fichier est assez long et du coup on na pas afficher toutes les lignes apparus dans la console. Donc la commande cat envoie tout le fichier la figure. * Elle est plus adapte lorsqu'on travaille sur des petits fichiers que sur des gros, car dans un

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier cat : afficher tout le fichier
On notera quand mme le paramtre -n qui permet d'afficher les numros de ligne : samir@samir-desktop :/var/log$ cat -n syslog 1 Nov 14 00:44:23 samir-desktop syslogd 1.4.1#21ubuntu3: restart. 2 Nov 14 00:44:23 samir-desktop anacron[6725]: Job `cron.daily' terminated 3 Nov 14 00:44:23 samir-desktop anacron[6725]: Normal exit (1 job run) 4 Nov 14 00:44:25 samir-desktop NetworkManager: <info> eth1: link timed out.

less : afficher le fichier page par page

La commande cat est trop rapide. Tout le fichier est lu et affich d'un coup dans la console, ce qui fait qu'on n'a pas le temps de le lire s'il est trs gros. C'est l qu'une autre commande comme less devient vraiment indispensable. La grosse diffrence entre less et cat, c'est que less affiche progressivement le * contenu du fichier, page par page. Ca vous laisse le temps de le lire dans la console.

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier less : afficher le fichier page par page
Notez qu'il existe aussi une commande trs proche : more. La diffrence entre more et less c'est que more est vieux et possde peu de fonctionnalits, tandis que less est beaucoup plus puissant et rapide. Pour utiliser cette commande,il sufit de taper less nomdufichier. samir@samir-desktop :/var/log$ less syslog Le plus intressant ici, c'est que la commande less a arrt la lecture du fichier au bout de quelques lignes (la taille d'un cran de console). Cela vous laisse le temps de lire le dbut du fichier. Et puis comment passer la suite ? L encore ,il y a quelques raccourcis clavier connatre.
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier less : afficher le fichier page par page
Certaines touches de clavier servent aux combinaisons avec less . Espace: Affiche la suite du fichier. Elle dfile le fichier vers le bas d'un "cran" de console. Vous pouvez aussi utiliser la touche "Page Down". Entre: Affiche la ligne suivante. Cela permet donc de faire dfiler le fichier vers le bas ligne par ligne. Vous pouvez aussi utiliser la touche "Flche vers le bas ". d: Affiche les 11 lignes suivantes (soit une moiti d'cran). C'est un peu l'intermdiaire entre Espace (tout un cran) et Entre (une seule ligne). b: Retourne en arrire d'un cran. Vous pouvez aussi appuyer sur la touche "Page Up". y:Retourne d'une ligne en arrire. Vous pouvez aussi appuyer sur la touche "Flche vers le haut". u:Retourne en arrire d'une moiti d'cran (11 lignes). q:Arrte la lecture du fichier. Cela met fin la commande less.
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cat & less : afficher un fichier less : afficher le fichier page par page
Quelques raccourcis plus =: Indique o vous en tes dans le fichier(numro des lignes affiches et pourcentage). h: Affiche l'aide (toutes les commandes que je vous apprends ici, je les tire de l ). Tapez "q" pour sortir de l'aide. /: Tapez "/" suivi du texte que vous recherchez pour lancer le mode recherche. Faites Entre pour valider. Pour ceux qui savent s'en servir, sachez que les expressions rgulires sont acceptes (je ne vais pas vous faire un cours sur les expressions rgulires ici, ce serait trop long, mais il y en a un dans le cours PHP). n: Aprs avoir fait une recherche avec "/", la touche "n" vous permet d'aller la prochaine occurence de votre recherche. C'est un peu comme si vous cliquiez sur le bouton "Rsultat suivant" N:Pareil que "n", mais pour revenir en arrire.
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers head : afficher le dbut du fichier head : afficher le dbut du fichier
La commande head ("tte" en anglais) affiche seulement les premires lignes du fichier. Elle ne permet pas de se dplacer dans le fichier comme less, elle permet juste de rcuprer les premires lignes. samir@samir-desktop :/var/log$ head syslog Si vous ne voulez afficher que les 3 premires lignes, utiliser le paramtre n en tapant: samir@samir-desktop :/var/log$ head -n 3 syslog

tail : afficher la fin du fichier


la commande tail vous renvoie la fin du fichier, donc les dernires lignes. samir@samir-desktop :/var/log$ tail syslog On peut l encore utiliser -n suivi d'un nombre pour afficher les X dernires lignes samir@samir-desktop :/var/log$ tail -n 3 syslog
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers tail : afficher la fin du fichier


Un autre paramtre qui est trs important : -f (f pour "follow", "suivre" en anglais). Ce paramtre ordonne tail de "suivre" la fin du fichier au fur et mesure de son volution. C'est extrmement utile pour suivre un fichier de log qui volue souvent. Vous pouvez tester sur syslog par exemple : samir@samir-desktop :/var/log$ tail -f syslog

touch : crer un nouveau fichier

En fait, aucune commande nest spcialement faite pour crer un nouveau fichier vide sous Linux (ce n'est pas trs utile). En gnral, on se sert d'ouvrir un diteur de texte et d'enregistrer, ce qui provoque la cration d'un nouveau fichier comme sous Windows. La commande touch est la base faite pour modifier la date de dernire modification d'un fichier. D'o son nom : on "touche" le fichier pour faire croire l'ordinateur qu'on vient * de

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers touch : crer un nouveau fichier


L'intrt de touch pour nous, c'est que si le fichier n'existe pas, il sera cr ! On peut donc aussi utiliser touch pour crer de nouveaux fichiers, mme s'il n'a pas vraiment t fait pour a la base. La commande attend un paramtre : le nom du fichier crer. Mettez vous tout dabord dans votre dossier personnel.Il suffit de taper cd : samir@samir-desktop :/var/log$ cd samir@samir-desktop :~$ samir@samir-desktop :~$ ls F Desktop/ Examples@ Images/ samir@samir-desktop :~$ touch perso Desktop/ Examples@ Images/ perso Mon fichier perso est bien cre, on peut crer un fichier de l'extension quon veut samir@samir-desktop :~$ touch test.txt samir@samir-desktop :~$ ls F Desktop/ Examples@ Images/ perso test.txt

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers touch : crer un nouveau fichier


Vous pouvez crer plusieurs fichiers en une seule commande. Il vous suffit de les lister l'un aprs l'autre, spars par des espaces. Ainsi, on aurait pu crer nos 2 fichiers comme ceci : samir@samir-desktop :~$ touch perso test.txt Et si on veux que notre fichier contient un espace? Comment faire? Il faut juste lentourer de guillemets ! samir@samir-desktop :~$ touch "mon dossier "

mkdir : crer un nouveau dossier


La commande mkdir est faite pour crer un nouveau dossier. Elle fonctionne de la mme manire que touch samir@samir-desktop :~$ mkdir mondossier On peut crer 2 dossiers (ou plus !) en mme temps en les sparant l aussi par des * espaces. samir@samir-desktop :~$ mkdir mondossier autredossier

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers mkdir : crer un nouveau dossier


Si vous faites un ls, vous verrez que les dossiers ont bien t crs. Il y a un paramtre utile avec mkdir : -p. Il sert crer tous les dossiers intermdiaires. Par exemple : samir@samir-desktop :~$ mkdir -p fst/departement/math crera le dossier fst, puis l'intrieur le sous-dossier departement, puis l'intrieur encore le sous-dossier math !

cp : copier un fichier
La commande cp (abrviation de "CoPy", "copier" en anglais) vous permet comme son nom l'indique de copier un fichier... mais aussi de copier plusieurs fichiers la fois, et mme de copier des dossiers ! Si on essayait de copier le fichier mondossier qu'on a cr tout l'heure ? Ca fonctionne comme ceci : * samir@samir-desktop :~$ cp perso persocopie

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cp : copier un fichier


Si on essayait de copier le fichier mondossier qu'on a cr tout l'heure ? Ca fonctionne comme ceci : samir@samir-desktop :~$ cp perso persocopie du Le premier paramtre est le nom du fichier copier, le second est le nom de la copie

fichier crer. En faisant cela, on aura donc 2 fichiers identiques dans le mme rpertoire : mondossier et mondossiercopie.

Copier dans un autre dossier


On n'est pas oblig de copier le fichier dans le mme dossier bien sr. On peut trs bien utiliser le systme de rpertoires relatifs et absolus qu'on a vu dans le chapitre prcdent. Par exemple, si je veux copier perso dans le sous-dossier "mondossier" que j'ai cr * tout l'heure :

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cp : copier un fichier


Copier dans un autre dossier
Si vous voulez copier perso dans mondossier sous un autre nom, faites comme ceci samir@samir-desktop :~$ cp perso mondossier/fichiercopie avec cette commande, on aura cr une copie de perso dans "mondossier" sous le nom "fichiercopie" ! Enfin, l j'utilise des rpertoires relatifs, mais je peux aussi crire un rpertoire en absolu : samir@samir-desktop :~$ cp perso /var/log/ ... copiera perso dans le dossier /var/log. Copier des dossiers Avec l'option -R (un R majuscule !), vous pouvez copier un dossier, ainsi que tous les sousdossiers et fichiers qu'il contient ! Tout l'heure, on a cr un dossier "fst" qui contenait un autre dossier "departement",
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Manipuler les fichiers cp : copier un fichier


Copier des dossiers
Avec l'option -R (un R majuscule !), vous pouvez copier un dossier, ainsi que tous les sousdossiers et fichiers qu'il contient ! Tout l'heure, on a cr un dossier "fst" qui contenait un autre dossier "departement", qui lui-mme contenait le dossier "math". Si vous tapez cette commande : samir@samir-desktop :~$ cp -R fst autrefac Cela aura pour effet de copier fst et tous ses sous-dossiers sous le nom "autrefac". Faites des ls aprs pour vrifier que les sous-dossiers sont bien l.

Utiliser le joker *
Le symbole * est appel joker, ou encore wildcard en anglais sous linux. Il vous permet de copier par exemple tous les fichiers image .jpg dans un sous*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

cp : copier un fichier
Copier des dossiers Utiliser le joker *
Le symbole * est appel joker, ou encore wildcard en anglais sous linux. Il vous permet de copier par exemple tous les fichiers image .jpg dans un sousdossier : samir@samir-desktop :~$ cp *.jpg mondossier/ Vous pouvez aussi vous en servir pour copier tous les fichiers dont le nom commence par "so" : samir@samir-desktop :~$ cp so* mondossier/ Le joker est un atout trs puissant, n'hsitez pas l'utiliser ! C'est avec des outils comme le joker que la console devient progressivement plus puissante

mv : dplacer un fichier
Trs proche de cp, la commande mv (MoVe, "dplacer" en anglais) a en fait 2 utilits :
*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

mv : dplacer un fichier
Dplacer un fichier
La commande mv s'utilise pratiquement comme cp :

mv testfichier mondossier/ Au lieu de copier testfichier dans mondossier comme on l'a fait tout l'heure, ici on a juste dplac le fichier. Il n'existe plus dans son dossier d'origine. Vous pouvez galement dplacer des dossiers aussi simplement : mv fst/ mondossier/ Cette dernire commande dplacera le dossier fst (et tous ses sous-dossiers) dans mondossier. Vous pouvez aussi utiliser les jokers :mv *.jpg mondossier/

Renommer un fichier
La commande mv permet de faire quelque chose d'assez tonnant : renommer un fichier. * En effet, il n'existe pas de commande spciale pour renommer un fichier en console sous

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

Dplacer et renommer un fichier la fois


Vous pouvez aussi dplacer fichiertest dans "mondossier" tout en lui affectant un nouveau nom et ceci laide de la commande :mv fichiertest mondossier/superfichier

rm : supprimer des fichiers et dossiers


La commande rm (pour "ReMove", "supprimer" en anglais) peut supprimer un fichier, deux fichiers, plusieurs fichiers, des dossiers Au dbut,on commence par des choses simples, supprimons ce fichiertest :rm fichierbidon Notez bien quon ne vous demande pas de confirmation, on ne vous affiche rien. Le fichier est supprim sans autre forme d'avertissement.il faut faire attention? Vous pouvez aussi supprimer plusieurs fichiers en sparant leurs noms par des espaces : rm fichiertest fichiercopie

-i : demander confirmation

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

rm : supprimer des fichiers et dossiers


-i : demander confirmation
La commande -i permet de vous demander une confirmation pour chacun des fichiers : samir@samir-desktop :~$ rm -i fichiertest rm: dtruire fichier rgulier vide `fichiertest'? Lorsqu'on vous demande une confirmation de type oui/non comme ici, vous devez rpondre par une lettre : o : signifie Oui. Sur certains systmes anglais, il faudra peut-tre utiliser "y" de Yes. n : signifie Non. Tapez ensuite sur Entre pour valider.

-f : forcer la suppression, quoiqu'il arrive


de -f, c'est un peu le contraire de -i .Ce paramtre force la suppression, ne demande pas confirmation, mme s'il y a un problme potentiel. En raison des risques que cela comporte, utilisez-le aussi rarement que possible rm -f fichierbidon

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

rm : supprimer des fichiers et dossiers


-v : dis-moi ce que tu fais
Le paramtre -v ("Verbose", verbeux en anglais, c'est--dire "parler beaucoup") est un paramtre que l'on retrouve dans beaucoup beaucoup de commandes sous Linux. Il permet de demander la commande de dire ce qu'elle est en train de faire. Comme vous l'avez vu, par dfaut la commande rm est silencieuse. Si vous supprimez trs nombreux fichiers, a peut prendre du temps. Pour viter que vous vous impatientiez, pensez utiliser -v : samir@samir-desktop :~$ rm -i fichiertest fichiercopie dtruit `fichiertest' dtruit `fichiercopie Vous voyez au fur et mesure de l'avancement ce qui est en train d'tre fait. Cest trs pratique !
*

de

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

rm : supprimer des fichiers et dossiers


-r : supprimer un dossier et son contenu
Le paramtre -r peut tre utilis pour supprimer un dossier (au lieu d'un fichier) ainsi que tout ce qu'il contient : fichiers et dossiers ! C'est un paramtre assez dangereux, donc faites bien attention de l'utiliser sur un dossier dont vous ne voulez vraiment plus, car tout va disparatre l'intrieur : samir@samir-desktop :~$ rm -r fst/ Cett dernire commande supprime le dossier "fst" ainsi que tout ce qu'il contenait (sousdossiers " departements", et " math"). Notez qu'il existe aussi la commande rmdir. La grosse diffrence avec rm -r, c'est que rmdir ne peut supprimer un dossier que s'il est vide ! * Il faudra avoir fait le mnage dedans auparavant

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

rm : supprimer des fichiers et dossiers


rm et le joker de la Mort (qui tue)
Dans tout les cas ,la commande rm est vraiment dangereuse. Trs dangereuse. Vous pouvez potentiellement perdre tout votre systme avec ! Atention la commande qui tue: attention attention En fait comment ragit cette commande: rm : commande la suppression -r : suppression rcursive de tous les fichiers et dossiers -f : force la suppression sans demander la moindre confirmation /* : supprime tous les fichiers et dossiers qui se trouvent la racine (/) quel que soit leur nom (joker *). En clair, cette commande supprime tout votre disque dur depuis la racine, sous-dossiers compris, et ne demande aucune confirmation. Aucune possibilit de rcupration, votre PC est foutu. Prparez vous une * rinstallation complte du systme.

rm -rf /*

Universit Cadi Ayyad Facult des Sciences et Techniques Marrakech

Anne universitaire 2010/2011 IAFCS Systmes dexploitation Initiation linux

rm : supprimer des fichiers et dossiers


rm et le joker de la Mort (qui tue)
Mais pourquoi autoriser de faire une chose aussi risque ? En fait, il y a plusieurs mcanismes de protection. On verra a en dtails. Par exemple, les fichiers la racine ne vous "appartiennent" pas, ils appartiennent au super-utilisateur "root". Moi je me suis logg en tant que samir, je n'ai donc thoriquement pas le droit de supprimer ces fichiers. La suppression sera refuse. Seulement, pour peu que vous soyez logg en tant que root (on verra comment le faire par la suite), vous aurez le droit de le faire, et l plus rien ne vous arrtera ! On apprendra plus tard comment utiliser les alias de commande pour viter qu'une commande aussi dangereuse ne s'excute. Soyons donc attentif.