Cours Info Revest

Accueil

Menu Linux

Menu Windows

I- Partie LINUX

Introduction Linux

LiveCD Linux

  • Installation

LiveCD Ubuntu

Installation Ubuntu

Ubuntu Studio

Cubuntu

Ubuntu sur Netbook

Installation sur support USB

Installation sans CD-ROM

Installation Second Ubuntu

Installations, mises à jour

Réinstallation/Migration version Ubuntu

Applications Ubuntu

Documentation-Aides

  • Aller plus loin

Arborescence Ubuntu

Recherche Ubuntu

Edition Linux

Shell/Terminal/Super Utilisateur

Commandes Linux (1)

Commandes Linux (2)

Utilisateurs, groupes, droits

Imprimante/Scanner Linux

Gravure Linux

Compression-Archivage

Déplacer le /home

Fusion de deux /homes

Bureau-Gnome

Environnement graphique

Imagemagick

Dokuwiki

  • Réseau

Connexion Linux

Réseau Linux

Paramétrage routeur

Contrôle à distance

Partages Linux

Fichier partage Samba

Partage anonyme Samba

Exemple Partage Samba

Exemple Réseau NFS

Webmin

Usermin

Transferts Linux

Ajaxplorer

Analyse Réseau - Gestion parc

Inventaire informatique

Disque-Réseau

Disque USB

Serveur NAS DNS320

Serveur Linux

Serveur Ubuntu

Changement de serveur

Diffusion Multmedia

Management serveur HP Proliant

OpenVPN

Sécurité Linux

Serveur Proxy

Wake-on-LAN

Ubuntu One

Migration Linux Petite entreprise

* Courrier

Courrier en Terminal

* Utiliser des applications Windows

Virtualisation (1): Virtualbox

Virtualisation (2): Proxmox

Wine: Applications Windows sous Linux

* Téléphonie VOIP

Asterisk, TrixBox

Elastix

Routeur double Wan

* Maintenance, dépannage

Sauvegarde

Sauvegarde Linux(1): Backup-Manager

Sauvegarde Linux(2)

Sauvegarde Partitions

Sauvegarde Nuage

Synchronisation Linux

Automatisation tâches cron

Rsyncd

Dépannage Ubuntu

Antivirus Linux

Spam & Publicité

Grub

Grub2

Grub-rescue

Partitions Linux

Fichier fstab

LVM

RAID

Installation RAID1

Installation RAID sur installation Ubuntu

Récupération de fichiers, partitions

  • BDD

BDD Linux

Access/MySQL

Talend Open Studio

  • Raspberry

Raspberry

II. Partie commune

Présentation

  • Internet/Réseau

Navigation Internet

Thunderbird (1)

Thunderbird (2)

Thunderbird (3)

Courrier GMail

Jabber

Fonctions Freebox

  • Création de site/blog

Joomla

Blog: Dotclear

Dreamweaver

  • Bureautique

OpenOffice/LibreOffice

  • Graphisme

Picasa

  • Photo

Photo: Théorie

Photo: Pratique

Diaporama, site photos

Retouche: Gimp

  • Gravure

Gravure CD

  • Vidéo

YouTube

  • BDD

BDD

Access/MySQL

Logiciels Bibliothèque/Archives

Généalogie

Redmine

III. Partie WINDOWS

  • Préliminaire

Logiciels Windows

Utilitaires Windows

  • Internet

Connexion Internet

Export OutlookExpress

Changement d'ordinateur

Agenda

Exploration/Dépannage Internet

  • Réseau

Partage Connexion

Partage Fichiers

Partage Imprimante

Transfert Fichiers

  • Dépannage

Prévention-dépannage Windows

  • Divers

Anti-virus

Installation périphérique Windows

Partitions Windows

Organisation disque dur

Sauvegarde-Synchronisation Windows

Putty

Contrôle à distance

BDD Windows

Commandes Linux - Partie 2

Nota important sur les espaces et noms utilisés

  • Pour nommer les fichiers ou répertoires, il est préférable de se limiter aux caractères alphabétiques minuscules et majuscules (de A-a à Z-z), aux chiffres (de 0 à 9), au point (.), au tiret (-) et au caractère de soulignement (_).
  • Eviter d’utiliser un espace qui est mal interprété par Linux.
  • Exemple: Répertoire “Dossier Nouveau”. Pour tenir compte de l’espace, deux solutions:
    • entourer le nom du répertoire avec des guillemets
      ls "Dossier nouveau"
    • ajouter devant l’espace un back-slash:
      ls Dossier\ nouveau
  • Le système Linux différencie les majuscules des minuscules. Cela signifie qu’un fichier dont le nom contient des majuscules est différent d’un fichier contenant des minuscules : “Essai” et “essai” sont deux fichiers distincts !

Attention ! Les caractères accentués peuvent provoquer des erreurs d’interprétation. Ce problème apparaît régulièrement lors d’échanges de fichiers entre deux ordinateurs utilisant des tables de codages ASCII distinctes (PC Windows, Mac et Linux)…




Navigation

  • La première commande est pwd (Print Working Directory) pour connaître sa position absolue dans le répertoire , et son équivalent whoami (Who Am I ?) qui affiche le nom de l’utilisateur courant, identique à logname et proche de who qui donne la liste des utilisateurs connectés.
  • La seconde commande est cd (change directory).
cd          # sans argument, ramène au répertoire personnel /home/login
cd ..       # pour remonter d'un cran dans l'arborescence
cd /        # pour remonter à la racine
cd -        # pour revenir au répertoire précédent. Avantage: indique le chemin absolu ensuite
cd /repertoire/ss-répertoire/ss-ss-répertoire  # adressage en navigation absolue (à partir de la racine)
cd repertoire/ss-répertoire/ss-ss-répertoire  # adressage en navigation relative (à partir du répertoire courant)
* La troisième est **ls** pour lister les fichiers du répertoire courant. Plusieurs options utiles:
ls           # liste simple du contenu du répertoire courant 
ls -l        # affiche les propriétés des fichiers en colonne, un fichier par ligne
ls -A        # affiche les fichiers cachés du répertoire
ls -a        # affiche l'ensemble des fichiers cachés ou non
ls -la       # affiche les propriétés des fichiers cachés ou non
ls -R        # affiche l'arborescence de façon récursive
ls -sh       # affiche les tailles et noms des fichiers
ls -sh       # affiche les droits, tailles et noms des fichiers
ls -t        # affiche par ordre de date de modification
ls -lct      # affiche en colonne par ordre de date de modification
ls <chemin>  # liste le répertoire indiqué par le chemin 

Exemple de réponse

drwxrwxr-x 2 guy Direction 4096 2007-09-04 10:45

Ces informations comportent:

  • d pour répertoire (directory), - pour un fichier
  • suivants: droits de lecture, d’écriture et d’exécution pour le propriétaire, le groupe et les autres utilisateurs (voir le § Attribution des droits du chapitre Serveur Linux)
  • un chiffre: 1 pour un fichier, supérieur à 1 pour un dossier
  • ensuite, le propriétaire, le groupe, la taille la date de dernière modification et le nom.
ls -F        # affiche plus d'informations: (*) fichier éxécutable, (/) répertoire, fichier classique 

Exemple

ls -F *
examples.desktop  Wifi.txt*

Bureau:
ls: ne peut ouvrir le répertoire Desktop: Permission non accordée

Documents:
RV082_User-Guide.pdf

Images:

Modèles:

Musique:

PDF:
RV016_-_Cisco_Systems.pdf

Public:

Telechargement:
autoscan-network-1.42-Linux-x86-Install*
autoscan-network-1.42-Linux-x86-Install.tar.gz
cupswrapperMFC7840W-2.0.2-1.i386.rpm
cupswrappermfc7840w_2.0.2-2_i386.deb

Vidéos:
  • la commande tree -d donne l’arborescence
guy@porthos:~$ tree -d /var
/var
|-- backups
|-- cache
|   |-- apache2
|   |   `-- mod_disk_cache
|   |-- apt
|   |   `-- archives
|   |       `-- partial
|   |-- cups
|   |   |-- ppd
|   |   `-- rss
|   |-- debconf
|   |-- hald
  • ncdt donne également l’arborescence (l’option d limite aux répertoires)
$ ncdt  /etc/smokeping/
`-- [     10,940] /etc/smokeping/
   |-- [        203] apache2.conf
   |-- [        290] config
   |-- [      1,563] smokemail
   |-- [      2,994] config.d
   |  |-- [        876] Presentation
   |  |-- [        511] Alerts
   |  |-- [        455] Targets
   |  |-- [        423] General
   |  |-- [        155] Slaves
   |  |-- [         50] Probes
   |  |-- [        287] pathnames
   |  `-- [        237] Database
   |-- [      2,075] basepage.html
   `-- [      3,815] tmail
  • La commande sort affiche les lignes en ordre alphabétique ou selon tri spécifié (-r pour ordre inverse). Exemple:
§cat mon_fichier # affichage sans tri
def
xyz
abc
§sort mon_fichier  # affichage avec tri
abc
def
xyz

Chemin relatif/absolu

Pour naviguer, deux possibilités pour donner le chemin:

  • chemin absolu. Il est basé sur la racine de l’arborescence et commence par ”/” :
guy@Athos9:/boot/grub$ pwd
/boot/grub    # on est actuellement en /boot/grub
guy@Athos9:/boot/grub$ cd /home/guy/
guy@Athos9:~$ pwd
/home/guy     # on est arrivé dans /home/guy
  • chemin relatif. Le chemin relatif dépend du répertoire courant où se trouve l’utilisateur. Pour se déplacer dans un dossier de l’emplacement courant (par défaut home/utilisateur), vous employer cd suivi du nom du dossier : cd <dossier>. Pour aller plus vite, utiiser la complétion, taper le début de son nom puis appuyer sur la touche Tabulation. Exemple pour se rendre dans le bureau (Desktop).
~$ ls
Bureau        Documents         Images   Public  Telechargement
Copies_Ecran  examples.desktop  Modèles  Vidéos
Desktop       hud.workspace     Musique  
~$ cd Documents/
guy@Athos9:~/Documents$ 

Pour remonter d’un répertoire (aller à son parent), on utilise “..” derrière certaines commandes comme cd, ls….

guy@Athos9:~$ pwd
/home/guy     # on est actuellement dans /home/guy
guy@Athos9:~$ cd ..
guy@Athos9:/home$ pwd
/home         # on est remonté d'un cran dans /home
guy@Athos9:/home$ 

Recherche

Trois méthodes sont disponibles selon besoin (Pour plus de précision, se reporter au chapitre Recherche):
  • locate. Permet de rechercher un fichier. Peut nécessiter d’avoir, auparavant, fait la mise à jour de l’index par la commande updatedb en root (pour tenir compte des derniers changements).
sudo updatedb
locate fichier-truc
  • find. Commande plus complexe, mais offrant plus d’options. Voir Find
find <chemin> -name <fichier>
  • grep. Recherche d’un motif dans un fichier.
grep <motif> fichier

Pour rechercher dans la liste des fichiers ou répertoires du répertoire courant, utiliser “*”:

grep Mathieu *

Pour plus de précisions, consulter le chapitre Recherche Ubuntu

Création d'un fichier

La commande touch permet de créer un fichier vide de même que le commande > dans certains shells.

touch nouveau-fichier  # ou > nouveau-fichier

On peut écrire dans un nouveau fichier avec la commande echo suivie d’une redirection.

 echo toto > nouveau-fichier  # va écrire "toto" dans nouveau-fichier

Utilisé aussi pour enregistrer des informations ou créer un fichier log.

last > last.log  # pour garder une trace des derniers logs sur un ordinateur

Affichage du contenu d'un fichier

  • Pour consulter le contenu d’un fichier, sans pouvoir le modifier, une commande simple est cat (lit ou “concatène”). Aprés l’affichage, le shell reprend la main. Exemple:
cat /etc/fstab

L’option -n affiche en même temps les numéros de ligne.

~$ cat -n /etc/apt/sources.list
     1	# deb cdrom:[Ubuntu 12.10 _Quantal Quetzal_ - Release i386 (20121014)]/ quantal main restricted
     2	
     3	# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
     4	# newer versions of the distribution.
     5	deb http://fr.archive.ubuntu.com/ubuntu/ quantal main restricted
     6	deb-src http://fr.archive.ubuntu.com/ubuntu/ quantal main restricted
     ......
  • Quand le fichier est trop long pour être affiché en entier, deux programmes sont disponibles pour pallier à cette difficulté: more et less.
more <nom_fichier>          # permet de faire défiler page par page
less <nom_fichier>          # permet en plus de revenir en arrière

On passe à la page suivante par la barre d’espace, on remonte par la flèche Page précédente. Les deux se quittent par q.

  • La commande tail permet de n’afficher que les 10 dernières lignes d’un fichier. Très utile pour un fichier log toujours très long et dont la partie intéressante est en finale.

L’option -f (follow) affiche les lignes et réactualise ensuite. On peut ainsi observer les changements.

tail -f /var/log/messages  

On peut paramétrer le nombre de lignes à faire apparaître avec l’option -nxxx ou -n xxx. Exemple:

tail -n25 nmap.log  # ou -n 25. Très utile pour avoir les n dernières informations d'un fichier log
  • A l’opposé, la commande head affiche les 10 premières lignes d’un fichier. Le nombre de lignes se paramètre de la même façon que pour tail:
head -n25 nmap.log  # utile pour vérifier le fonctionnement
  • La commande nl visualise les fichiers avec numérotation des lignes.
guy@Astserv:~$ nl /etc/fstab
     1  # /etc/fstab: static file system information.
     2  #
     3  # Use 'vol_id --uuid' to print the universally unique identifier for a
     4  # device; this may be used with UUID= as a more robust way to name devices
     5  # that works even if disks are added and removed. See fstab(5).
     6  #
     7  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
     8  proc            /proc           proc    defaults        0       0
     9  # / was on /dev/sda6 during installation
    10  UUID=dd8785e1-8e97-4c27-85eb-3f2b5a60e207 /               ext3    relatime,errors=remount-ro 0       1
    11  # /home was on /dev/sda7 during installation
    12  UUID=46d8f89a-6dea-4ee4-87b8-ee37fe11567c /home           ext3    relatime        0       2
    13  # swap was on /dev/sda5 during installation
    14  UUID=7173c442-20a9-4b74-bf2a-bd547a690251 none            swap    sw              0       0

Mais, s’il y a besoin d’éditer pour faire la correction, rien ne vaut Gedit avec affichage des numéros de ligne. Voir chapitre Edition Linux

Si besoin, compléter par more pour faire défiler page par page.

nl /etc/asterisk/extensions.conf | more

Affichage du contenu d'un répertoire

1- Pour lister un répertoire, utiliser ls ou dir. De nombreuses options sont disponibles: -t par ordre chronologique…

ls /home/login/repertoire-1  # liste le contenu de repertoire-1

2- Pour lister le contenu d’un répertoire chargé (ici /dev), on utilise la commande ls avec l’opérateur pipe (|) (ou “tube”), accessible par la combinaison de touches AltGr+6, accompagné de more ou de less.

ls /dev | more       # permet de visualiser calmement le répertoire. Page suivante par touche Espace. Sortie par Ctl+C/dev

Les options suivantes peuvent être utilisées:

  • -a affiche aussi les fichiers cachés (commençant par .)
  • -l afficage détaillé: permissions, propriétaire, groupe, taille (octets), date modif, nom
  • -lh (human) idem avec taille en ko, Mo, Go
  • –sort=time par ordre chronologique
guy@Athos:~$ ls -l /home/guy/Musique/
total 24152
drwxr-xr-x 2 guy guy    4096 2008-11-04 10:57 Concerto-n°27-Mozart
-rw-r--r-- 1 guy guy 8962090 2007-08-26 21:43 Do_You_Know-E.Iglesias.mp3
-rw-r--r-- 1 guy guy 9484770 2007-08-27 16:14 Incubus - Love Hurts.mp3
drwxr-xr-x 2 guy guy    4096 2008-11-22 20:49 La_fete_polonaise
-rw-r--r-- 1 guy guy 6211899 2007-08-27 16:25 Paralyser - Finger Eleven.mp3
-rw-r--r-- 1 guy guy    6447 2008-11-22 20:38 tm081103.aup~
drwxrwxr-x 3 guy guy    4096 2008-11-22 20:38 tm081103_data

3- Pour lister le niveau moins un d’un répertoire, rajouter (*). On a alors le contenu de chaque répertoire auquel on a accès.

guy@Ubuntu:/home$ ls *
guy:
Bureau        Documents         Modèles  Public          Wifi.txt
Copies_Ecran  examples.desktop  Musique  Telechargement
Desktop       Images            PDF      Vidéos

jericho:
examples.desktop
ls: ne peut ouvrir le répertoire lost+found: Permission non accordée

4- Pour lister le contenu d’un répertoire, on peut aussi utiliser la commande dir (directory):

~$ dir /var/www                                       
apache2-default  index.html  info.php  munin  ocsreports  smokeping
~$ dir -l
total 36
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Bureau
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Documents
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Downloads
-rw-r--r-- 1 guy guy  357 2009-10-24 16:11 examples.desktop
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Images
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Modèles
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Musique
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Public
drwxr-xr-x 2 guy guy 4096 2009-10-24 17:09 Vidéos
 

Type de fichier

Pour visualiser le type d’un fichier, utilser la commande file suivie du fichier (chemin relatif ou absolu).

 file /home/<login>/essai.doc
/home/<login>/essai.doc: Microsoft Office Document

Edition de texte

L’édition permet de modifier un fichier, à condition de l’ouvrir avec les droits d’administration (sudo, gksu ou gksudo).

  • L’éditeur de texte en ligne de commande d’Ubuntu par défaut est nano, le plus simple d’emploi. Pour pouvoir faire des corrections, il faut être en root. Exemple pour l’édition du “Grub”:
sudo nano /boot/grub/menu.lst

On passe de page en page par les commandes correspondantes, on quitte par CTL+X, on enregistre par Y (yes) et Enter.

  • NB: Si on préfère passer en mode graphique, utiliser Gedit qui offre un mode de coloration parlant et qui peut afficher les numéros de ligne (très commode pour les corrections):
gksu gedit /boot/grub/menu.lst
  • La commande tail permet de n’afficher que les 10 dernières lignes d’un fichier. Très utile pour un fichier log toujours très long et dont la partie intéressante est en finale.

L’option -f (follow) affiche les lignes et réactualise ensuite. On peut ainsi observer les changements.

tail -f /var/log/messages  

On peut paramétrer le nombre de lignes à faire apparaître avec l’option -nxxx ou -n xxx. Exemple:

tail -n25 nmap.log  # ou -n 25. Très utile pour avoir les n dernières informations d'un fichier log
  • A l’opposé, la commande head affiche les 10 premières lignes d’un fichier. Le nombre de lignes se paramètre de la même façon que pour tail:
head -n25 nmap.log  # utile pour vérifier le fonctionnement
  • La commande nl visualise les fichiers avec numérotation des lignes. Commande très utile quand on a un message d’erreur avec indication du numéro de ligne.
  • L’éditeur emacs est le plus répandu, outil extrêmement puissant avec toute une panoplie de commandes-clavier. Nécessite un apprentissage de même que pour vim. Attention, les conventions ne sont pas les mêmes. Se reporter au chapitre Edition Linux.
Une partie spécifique à l’édition Linux du Dokuwiki est sur Edition Linux. Elle présente différentes solutions d’éditeur Linux

Compter les lignes

La commande wc (Word Count) permet de compter le nombre de lignes d’un fichier, mais aussi le nombre de mots ou de caractères. Option -l pour les lignes:

wc -l mon-fichier

Cette commande va donner le nombre de lignes contenues dans le fichier mon-fichier. Pour avoir le nombre de mot l’option est -w (word), l’option -c compte le nombre de caractères.

La commande wc sans option donne à la fois le nombre de lignes, le nombre de caractères et le nombre de mots.

guy@Athos-U9:~$ echo -n toto | wc
      0       1       4

Pour connaître le nombre de fichiers dans un répertoire, la commande sera donc :

ls -1 | wc -l  # on liste d'abord en colonne et on compte les lignes

Statut d'un fichier

La commande stat montre les derniers changements sur un fichier.

root@promoserv/var/www/freepbx/admin/cdr >stat call-log.php           15:45 #821
  File: `call-log.php'
  Size: 42522     	Blocks: 88         IO Block: 4096   regular file
Device: 801h/2049d	Inode: 475823      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  111/asterisk)   Gid: (  119/asterisk)
Access: 2009-08-04 13:11:53.000000000 +0200
Modify: 2009-07-31 21:43:11.000000000 +0200
Change: 2009-08-04 08:25:02.000000000 +0200

Browser en ligne de commande

Trois solutions: links, lynx ou w3m.

Exemple

w3m free.fr

Selon les applications, on sort par Q ou par Ctl+C.

Opérations sur les fichiers/répertoires




Nota important sur les baptêmes

  • Pour nommer les fichiers ou répertoires, il est préférable de se limiter aux caractères alphabétiques minuscules et majuscules (de A-a à Z-z), aux chiffres (de 0 à 9), au point (.), au tiret (-) et au caractère de soulignement (_).
  • Eviter d’utiliser un espace qui est mal interprété par Linux.
  • Le système Linux différencie les majuscules des minuscules. Cela signifie qu’un fichier dont le nom contient des majuscules est différent d’un fichier contenant des minuscules : “Essai” et “essai” sont deux fichiers distincts !
  • Attention ! Les caractères accentués peuvent provoquer des erreurs d’interprétation. Ce problème apparaît lors d’échanges de fichiers entre deux ordinateurs utilisant des tables de codages ASCII distincts (PC Windows, Mac et Linux)…



Copie

La commande est cp. La copie d’un fichier se fait par

cp fichier fichier-copy       # en ajoutant si nécessaire le chemin du nouveau fichier-copy
  • Pour copier plusieurs fichiers dans un même répertoire
cp fichier1 fichier2 fichier3 /repertoire-arr
  • Pour les répertoires, ajouter l’option -R pour copie récursive
cp -R repert_n repert_destination_n-copy       # en ajoutant si nécessaire le chemin du nouveau repertoire-copy

Pour éviter la copie du répertoire, y compris le nom, utiliser ”.*” derrière le chemin-origine:

sudo cp -aR rep_origine/.* /rep_destination

  • Selon les besoins, utiliser cp -dpR (qui préserve les liens, les droits, les dates et la récursivité.
  • Retenir également cp -dpRu (u pour update) qui préserve les liens, les droits, les dates, la récursivité et ne copie que les éléments changés.

Renommer/Déplacer

La commande mv permet de:

  • renommer un fichier
mv fichier fichier.old
  • renommer un répertoire (sur place)
mv repertoire1 repertoire2
  • déplacer des fichiers/répertoires vers un répertoire d’arrivée
mv fichier1 fichier2 fichier3 /repertoire_arr  # les fichiers sont déplacés au nouveau répertoire

mv ne sait pas déplacer un dossier qui ne soit pas vide

Création de fichier vide

Pour créer un fichier vide, deux commandes équivalentes:

  • touch
  • >
touch dossier_1/fichier_x  
> dossier_1/fichier_x  

Suppression de fichiers/répertoires

  • La commande rm (remove) permet de supprimer des fichiers ou des répertoires. Condition: en être propriétaire ou être en root.
sudo rm -i fichier

Les options sont:

  1. -d directory
  2. -f force
  3. -i interactive
  4. -r remove directories and their contents recursively
  • La suppression d’un répertoire vide se fait par rmdir.
  • Pour supprimer un répertoire non vide, utiliser rm avec les options suivantes possibles:
rm -ri repertoire   # suppression des fichiers interactive
rm -rf repertoire   # sans message d'erreur, ni confirmation

Comparaison de répertoires

La commande diff permet de comparer des répertoires (c’est à dire de voir les différences).

diff repertoire1 repertoire2

Création de répertoire

  • La commande mkdir (make directory) permet de créer un ou des répertoires:
mkdir rep1 rep2 rep3      # créera les 3 répertoires
  • L’option -v affiche les étapes de création
 ~$ sudo mkdir -v /home/rep1 /home/rep2 
mkdir: création du répertoire `/home/rep1'
mkdir: création du répertoire `/home/rep2'
  • L’option -p permet de créer l’arborescence si elle n’existe pas (on ajoute -v pour l’affichage:
~$ sudo mkdir -pv /rep1/rep2/rep3
mkdir: création du répertoire `/rep1'
mkdir: création du répertoire `/rep1/rep2'
mkdir: création du répertoire `/rep1/rep2/rep3'

Opérations sur les disques

Monter un périphérique

La commande pour monter un périphérique est mount.

sudo mount <Source> <MountPoint>

Exemple:

sudo mount /dev/sdb1 /media/sdb1  # il faut naturellement que le répertoire sdb1 existe déjà ou ait été créé dans /media par mkdir

Mount lit le fichier /etc/fstab, la commande indique la source et le point de montage, nécessite le mode adminisrateur.

sudo mount /dev/sdc /media/cdrom0

Pour connaître l’état des partitions montées, taper:

sudo mount

Pour démonter le périphérique, c’est la commande umount. Pour démonter le CD, on indique

  • soit le périphérique
sudo umount /dev/sdc
  • soit le point de montage.
sudo umount /media/cdrom0

Le tiroir du CD est maintenant débloqué.

Pour démonter l’ensemble des périphériques montés:

sudo umount -a

Nota En cas de problème avec umount (réponse: device is buzy):

  • vérifier que l’un des fichiers de la partition n’est pas ouvert
  • trouver la ressource qui occupe la partition par lsof (List Open Files) et la tuer par kill avec l’option -KILL (commande impossible de bloquer)
sudo lsof | grep sdax
xmms      4848    login    9r   REG        3,6 3430341     
login@ubuntu:login$ kill -KILL 4848
sudo umount /dev/sdax

Formater un volume

Plusieurs solutions utilisables:

  • gparted qui lance l’éditeur de partitions en mode graphique
  • cfisk avec un interface proche du fdisk du DOS. Le choix des options se fait par les flèches.
  • mkfs (MaKe File System) qui formate des volumes au système de fichiers voulu (par défaut ext2, si non précisé). Exemple:
sudo umount /dev/sda1          # pour démonter au préalable sda1
sudo mkfs -t ext3 /dev/sda1    # pour formater le disque externe USB sda1 en ext3

Ne pas oublier de l’ajouter dans le fichier /etc/fstab pour que partition de disque soit prise en compte au démarrage.

Espace disponible, espace occupé

df

  • df (disk free), pour connaître la taille des partitions et l’espace disponible sur les systèmes de fichiers montés.
df -h      # L'option -h (human) affiche les réultats sous forme plus compréhensible
root@jeriserv/home >df -h                                             18:39 #99
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              19G  1,9G   16G  11% /
varrun                474M  260K  474M   1% /var/run
varlock               474M     0  474M   0% /var/lock
procbususb            474M  104K  474M   1% /proc/bus/usb
udev                  474M  104K  474M   1% /dev
devshm                474M     0  474M   0% /dev/shm
/dev/hda3             210G   39G  161G  20% /home
  • df -kTh donne des informations plus complètes
~$ df -kTh
Sys. de fich. Type    Tail. Occ. Disp. %Occ. Monté sur
/dev/sdb3     ext3     39G  5,9G   32G  16% /
tmpfs        tmpfs    1,8G     0  1,8G   0% /lib/init/rw
varrun       tmpfs    1,8G  384K  1,8G   1% /var/run
varlock      tmpfs    1,8G     0  1,8G   0% /var/lock
udev         tmpfs    1,8G  2,9M  1,8G   1% /dev
tmpfs        tmpfs    1,8G   12K  1,8G   1% /dev/shm
lrm          tmpfs    1,8G  2,0M  1,8G   1% /lib/modules/2.6.27-11-generic/volatile
/dev/sdb5     ext3    219G   82G  127G  40% /home
/dev/sda1  fuseblk    167G   37G  130G  23% /media/DONNEES_200
/dev/sdb2  fuseblk    118G  108G  9,4G  93% /media/DONNEES_500
/dev/sdb1  fuseblk     59G  6,6G   53G  12% /media/Disque_C
/dev/sdb6     ext3     28G  4,1G   23G  16% /media/U8.04
/dev/sda2     ext3     21G   14G  5,9G  70% /media/sdb2
  • Commande plus complète combinant fdisk pour voir les disques et partitions, la commande df et la liste des partitions montées:
sudo fdisk -l ; echo "--------------------------" ; df -kTh ; echo "--------------------------" ; ls -l /dev/disk/by-label/ 

du

  • du (disk usage) calcule l’espace utilisé dans le répertoire local du moment.
du -ch  # pour avoir tous les fichiers et le total sous forme parlante

L’option -s ne fait apparaître que la somme:

On retrouve les 39 Go occupés sur /dev/hda3 qui est la partition du home (voir commande df -h).

  • du donne aussi bien la taille d’un répertoire que celle d’un fichier
du -h Promoserv3-home-PS-SecDir.20130727.master.tar.gz
1,9G	Promoserv3-home-PS-SecDir.20130727.master.tar.gz

ncdu

ncdu (NCurses Disk Usage) calcule les espaces occupés dans les répertoires.

~$ ncdu /
. 638,4GiB [#######] /media 
                                                                                                             .  . .  10,3GiB [          ] /home
    2,9GiB [          ] /usr
.   1,0GiB [          ] /var
  345,6MiB [          ] /lib
   45,4MiB [          ] /boot
.  14,0MiB [          ] /etc
   10,4MiB [          ] /sbin
    8,8MiB [          ] /bin
.   1,4MiB [          ] /run
.  60,0kiB [          ] /tmp
!  16,0kiB [          ] /lost+found
    4,0kiB [          ] /dev
    4,0kiB [          ] /lib64
e   4,0kiB [          ] /srv
e   4,0kiB [          ] /selinux
!   4,0kiB [          ] /root
e   4,0kiB [          ] /opt
e   4,0kiB [          ] /mnt
e   4,0kiB [          ] /cdrom
.   0,0  B [          ] /proc
.   0,0  B [          ] /sys
@   0,0  B [          ]  initrd.img
@   0,0  B [          ]  initrd.img.old
@   0,0  B [          ]  vmlinuz.old
@   0,0  B [          ]  vmlinuz

On sort en entrant q (quit).

parted

Autre commande, parted avec une autre présentation.

  • avec l’option -l, donne directement les partitions de tous les disques
~$ sudo parted -l
Modèle: ATA Hitachi HTS54321 (scsi)
Disque /dev/sda : 160GB
Taille des secteurs (logiques/physiques): 512B/512B
Table de partitions : msdos

Numéro  Début   Fin     Taille  Type      Système de fichiers  Fanions
 2      32,3kB  10,6GB  10,6GB  primary   ext4                 démarrage
 3      10,6GB  21,2GB  10,6GB  primary   ext3
 4      21,2GB  159GB   138GB   extended
 5      21,2GB  90,1GB  68,9GB  logical   ext3
 6      90,1GB  159GB   68,9GB  logical   ext3
 1      159GB   160GB   1078MB  primary   linux-swap(v1)

Opérations sur les partitions

Liste des partitions

La commande lsblk est intéressante pour afficher les partitions existantes. Exemple:

sudo lsblk --o size -f
  SIZE NAME    FSTYPE   LABEL                  MOUNTPOINT
698,7G sda                                     
  199M ├─sda1  ntfs     SYSTEM                 
300,3G ├─sda2  ntfs     Seven.1                
 69,9G ├─sda3  ext3     Libre                  
    1K ├─sda4                                  
  3,9G ├─sda5  ntfs     HP-Tools               
  9,9G ├─sda6  ext4     13.04                  
    2G ├─sda7  swap                            [SWAP]
278,1G ├─sda8  ext4     home12.04              /media/ubuntu/home12.04
  9,8G ├─sda9  ext4     12.04                  
 24,6G └─sda10 ext4     h13.04                 
  932M sr0     iso9660  Ubuntu 14.04 LTS amd64 /cdrom
890,3M loop0   squashfs                        /rofs

Vérification/Réparation d'une partition

  • La commande fsck (File System CHeck) permet de vérifier le bon état d’une partition Linux et si besoin, réparer automatiquement les erreurs qu’elle y trouve. Elle est lancée automatiquement à chaque démarrage où le système a détecté un arrêt anormal.

Il est obligatoire de démonter une partition avant de lancer fsck ou e2fsck. Passer par un LiveCD pour vérifier la racine ou /home.

Options utiles:

  • -A vérifier toutes les partitions présentes dans /etc/fstab
  • -r réparer les erreurs de façon interactive
sudo umount /dev/sda10
sudo fsck -r /dev/sda10
  • La commande tune2fs permet notamment de configurer la fréquence de lancement de fsck.
sudo tune2fs -c 30 /dev/sda7    # pour une vérification de sda7 tous les 30 jours

Pour plus de détails, consulter http://doc.ubuntu-fr.org/fsck

Copie d'une partition

Pour copier le contenu d’une partition sur une autre, entrer la commande:

cp -dpr /source. /cible  # ou commande cp -a qui est équivalente

Exemple: voir Déplacer le /home

Mémoire

Pour voir l’occupation de la mémoire, utiliser la commande free.

guy@Athos10:~$ free
             total       used       free     shared    buffers     cached
Mem:       4119828    1241084    2878744          0     114940     609596
-/+ buffers/cache:     516548    3603280
Swap:      2096476          0    2096476

Utilisation machine

Plusieurs commandes:

  • top. Commande Linux qui permet de voir la consommation en temps machine, mémoire et processeur, en gros la charge de du système.
top - 19:15:36 up 59 min,  2 users,  load average: 0.00, 0.00, 0.02
Tasks: 237 total,   1 running, 236 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.9%us,  0.6%sy,  0.0%ni, 98.4%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8117496k total,  3150884k used,  4966612k free,    30108k buffers
Swap:  7340024k total,        0k used,  7340024k free,  2805256k cached
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
   3997 root      20   0 67368 4404 2444 S   10  0.1   2:33.26 sshd: root@notty 
   3999 root      20   0 43000 2780 1404 S    2  0.0   0:23.16 /usr/lib/openssh/
      1 root      20   0 10320  748  616 S    0  0.0   0:00.81 init [2]         
      2 root      20   0     0    0    0 S    0  0.0   0:00.00 [kthreadd]       
      3 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/0]    
      4 root      20   0     0    0    0 S    0  0.0   0:00.00 [ksoftirqd/0]    
      5 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/0]    
      6 root      RT   0     0    0    0 S    0  0.0   0:00.00 [watchdog/0]     
      7 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/1]    
      8 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/1]     

Pour “tuer” un processus, appuyer sur la touche k (kill). En réponse, s’affiche

PID to kill :

Saisir le PID du processus. En réponse

kill PID 8026 with signal [15] :

Entrer le code 15 proposé.

  • htop, assez semblable. Permet en outre de se déplacer verticalement et latéralement avec les flèches. Un menu des commandes apparaît en bas de page.

  • dstat. Dstat est un utilitaire écrit en python qui fournit statistiques et données sur l’utilisation d’un système et peut remplacer avantageusement à lui seul vmstat, iostat, netstat, nfsstat et ifstat. En absence d’option, il prend -c (cpu), -d (disk), -n (net), -g (page), -y (syst stats). On peut choisir le choix des ressources à visualiser avec ces options.
~$ dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  1   0  99   0   0   0|  32k   39k|   0     0 |   0     0 | 323   208 
 13   3  84   0   0   0|   0     0 |   0     0 |   0     0 |2297  3897 
 22   3  74   0   0   0|   0     0 |2580B  132B|   0     0 |1136  1156 
 18   5  78   0   0   0|   0  4096B|  60B    0 |   0     0 |1756  2057 
 11   4  85   0   0   0|   0  4096B|  60B    0 |   0     0 |1628  1741 
 17   6  77   0   0   0|   0  4096B|2722B  246B|   0     0 |1965  2469 
 14   3  80   3   0   0|   0  1056k|   0     0 |   0     0 |3084  4895 
 35   7  58   0   0   0|   0   288k|   0     0 |   0     0 |1105  1202 
 59  11  30   0   0   1|   0   792k|6906B  132B|   0     0 |1374  1332 
 17   3  79   0   0   0|   0   348k|   0     0 |   0     0 | 976  1140 
  8   1  91   0   0   0|   0     0 |  60B   60B|   0     0 | 611   929 
 18   1  80   0   0   0|   0    22M|6906B  132B|   0     0 |2880  4763 
  8   2  90   0   0   0|   0     0 |  60B    0 |   0     0 | 641   937 
  7   1  92   0   0   0|   0     0 |  60B    0 |   0     0 | 743  1060 
  8   1  91   0   0   0|   0     0 |6966B  132B|   0     0 | 648   970 
  8   1  91   0   0   0|   0     0 |   0     0 |   0     0 | 723  1086 
 18   1  80   1   0   0|   0    64k|   0     0 |   0     0 |2166  3597 
 10   1  88   0   0   0|   0     0 |6906B  132B|   0     0 | 952  1371 
  7   1  92   0   0   0|   0     0 |   0     0 |   0     0 | 619   959

On quitte dstat par Ctl+C.

Lien symbolique

  • Pour créer un lien symbolique à un endroit (Lien en Linux ou Raccourci en Win ou alias sur Mac), on utilise la commande ln -s
sudo ln -s chemin_origine chemin_alias
  • Si on est déjà dans le répertoire d’arrivée, on n’a plus besoin de l’écrire.
root@jeriserv:/var/www/freepbx# ln -s ../munin  # on crée un lien avec le répertoire munin qui est à un niveau au-dessus
root@jeriserv:/var/www/freepbx# ll
total 28
drwxrwx--- 8 asterisk asterisk 4096 2009-09-15 21:14 admin
drwxr-x--- 2 asterisk asterisk 4096 2009-07-21 14:27 _asterisk
-rw-r--r-- 1 root     root      602 2009-07-21 14:27 index.html
lrwxrwxrwx 1 root     root        8 2009-11-16 20:07 munin -> ../munin  # on voit ici le lien créé
drwxrwx--- 2 asterisk asterisk 4096 2009-07-21 14:41 panel
drwxrwx--- 7 asterisk asterisk 4096 2009-07-21 14:27 recordings
  • On peut plus facilement déceler les liens symboliques avec la commande ls -F, ils apparaissent avec un @ à la fin:

  • Pour supprimer un lien symbolique:
sudo rm -i <chemin lien_symbolique_apparu_avec_@>

Exemple: "HOME commun à plusieurs distributions

Le lien symbolique est très puissant. On peut s’en servir par exemple pour configurer son /home si on a plusieurs versions Linux installées et avoir une seule partition Documents ou Images… qui soit commune aux différents Linux.

  • On crée une partition DATA de taille importante séparée de son /home et on la monte dans /media/Data. Cette partition contiendra les fichiers importants du HOME. Ces fichiers sont alors uniques pour toutes les distributions.
sudo mkdir /dev/sdb7 /media/Data
sudo chown <login> -R /media/Data
sudo chmod 750 -R /media/Data
  • On y crée ensuite des sous-répertoires Documents, Images, Musique, Vidéos, Téléchargements
sudo mkdir /media/Data/Documents /media/Data/Images /media/Data/Musique /media/Data/Videos /media/Data/Téléchargements
  • On copie les dossiers du /home dans Data
sudo cp -dpr /home/<login>/Documents /media/Data/Documents
sudo cp -dpr /home/<login>/Images /media/Data/Images
sudo cp -dpr ...  # et ainsi de suite
  • On crée ensuite les liens à partir de son home vers les sous-répertoires de la partition DATA
cd /home/<login>/
sudo ln -s /media/Data/Documents
sudo ln -s /media/Data/Images
....

On a ainsi un seul répertoire indépendant de son /home et des versions Ubuntu installées par ailleurs

  • Supprimer les dossiers originaux du HOME
    • les déplacer les sous /media/data.
    • vérifier que les dossiers sont vides avant de les supprimer.
    • maintenant supprimer les dossiers pour que les liens symboliques marchent.

Exemple de suppression du dossier Documents dans le HOME:

$ sudo rm -ri /home/<login>/Documents

Exemple pour le courrier

Si sur une même machine, on a plusieurs versions d’Ubuntu installées, on a tout intérêt d’utiliser des liens pour ne pas avoir plusieurs dossiers .thunderbird pour éviter de consulter plusieurs fois les mêmes courriers.

  • Ajouter dans /etc/fstab, le /home de l’autre installation
  • Supprimer dans cette partition, le fichier caché .thunderbird
  • Créer un lien entre la partition de référence et l’autre
sudo ln -s /home/login/.thunderbird /media/<partition-destination>/login/
  • Démarrer l’autre installation et corriger si besoin les réglages Thunderbird (Edition/Paramétres des comptes/Paramétres Serveur/Stockage des messages/Répertoire local pour donner la bonne adresse du type /home/login/.thunderbird/w5kk1ufy.default/Mail/pop.free.fr).

Exemple graphique

On peut aussi opérer en mode graphique. Exemple pour un des répertoires:

  • Ouvrir Nautilus en root
gksu nautilus
  • Copier le répertoire de /home/<login>/Vidéos avec son contenu vers la partition DATA
  • Supprimer ensuite le répertoire Vidéo de son /home
  • Créer le lien dans DATA par clic droit sur Vidéos–>Créer un lien
  • En finale, copier ce lien dans le /home
  • Fermer Nautilus pour quitter le mode admin.

Réseaux

  • ifconfig : configure et affiche les paramètres d’une interface réseau, la deuxième ligne contient l’adresse IP de la machine (inet addr.).
~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 1c:c1:de:cc:bb:c5  
          inet adr:192.168.1.250  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::1ec1:deff:fecc:bbc5/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:10573603 erreurs:0 :0 overruns:0 frame:0
          TX packets:11508450 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:2763775487 (2.7 GB) Octets transmis:5630675298 (5.6 GB)
          Interruption:19 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:239331 erreurs:0 :0 overruns:0 frame:0
          TX packets:239331 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:51346454 (51.3 MB) Octets transmis:51346454 (51.3 MB)

On peut spécifier un réseau spécifique eth0, eth1, wlan0… ou au contraire, demander tous les réseaux (option -a).

ifconfig eth0
  • ping : effectue un ping sur une machine distante.
  • traceroute : trace la route vers une machine distante routeur par routeur.
  • hostname : affiche le nom de la machine.
  • whois : donne les informations sur l’enregistrement des noms de domaine Internet.

Généralités Réseau

Se reporter également aux chapitres Connexion Linux, Réseau Linux, Analyse-Gestion Réseaux, Partage Fichiers, Transferts et suivants…

Protocole FTP

  • lftp : client FTP en ligne de commande (Non sécurisé, donc exclure son utilisation hors réseau local).

Pour démarrer une liaison FTP avec un ordinateur à adresse donnée sous un login déterminé

lftp login@adresse_serveur   # Répondre au mot de passe (Faire ensuite ls pour se situer)
ls
  • put : envoie le fichier local désigné vers la machine distante dans le répertoire courant
  • get ou wget (Www GET) : télécharge le fichier distant désigné vers la machine locale
  • quit : quitte le FTP

Protocole SFTP

  • sftp (secure file transfer program) : programme de transfert de fichiers sécurisé
sftp serveur_distant         # le serveur demande le mot de passe de l'utilisateur courant

Si le nom d’utilisateur distant est différent de l’utilisateur local actuel mettre l’argument login@serveur

sftp login@serveur_distant   # répondre au mot de passe

Pour afficher la liste des fichiers du répertoire courant, les commandes sont ls pour le distant et lls pour le local.

Pour afficher le répertoire courant, les commandes sont pwd pour le distant et lpwd pour le local.

Pour aller au répertoire <rep>, les commandes sont cd rep en distant et lcd rep en local.

Host

La commande host est utilisée pour trouver l’adresse IP du nom de domaine donné et imprime aussi le nom de domaine pour l’IP donné.

~$ host free.fr
free.fr has address 212.27.48.10
free.fr has IPv6 address 2a01:e0c:1:1599::1
free.fr mail is handled by 20 mx2.free.fr.
free.fr mail is handled by 10 mx1.free.fr.

Réglages clavier

Si par hasard on se retrouve en lignes de commande avec un clavier mal réglé, il y a moyen d’intervenir sur la configuration par la commande kbdrate.

sudo kbdrate -s(silence) -r[rate, ç'est à dire caract/sec] -d[delay]

Pour plus d’information sur les paramètres utilisés, faire un man kbdrate.

Environnement - Langues

  • La commande locale seule récupère des informations des paramétres regionaux.
~$ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
  • la commande env affiche les variables d’environnement. Pour connaître par exemple la langue par défaut, entrer:
~$ env | grep -i lang
LANG=fr_FR.UTF-8
  • pour configurer la langue française
sudo dpkg-reconfigure locales

Choisir dans le menu déroulant des langues fr_FR.UTF-8.

Synchronisation du temps

Le protocole NTP (Network Time Protocol) permet de synchroniser par Internet des postes sur des serveurs de temps. L’application ntpdate assure cette fonction, elle est installée de base, elle doit être lancée en sudo en ajoutant l’adresse du serveur NTP.

sudo ntpdate ntp.ubuntu.com  

Pour les serveurs NTP, on peut choisir parmi fr.pool.ntp.org, pool.ntp.org, ntp.unice.fr, ntp.ubuntu.com, ntp.univ-tln.fr, etc…

Aide à la programmation

echo

La commande echo permet d’imprimer à l’écran des informations, elle imprime ses arguments sur la sortie standard.

§ echo Bonjour, le monde
Bonjour, le monde

Options utilisables:

-e Reconnaître les caractères d’échappement

Ce qui permet d’utiliser des caractères d’échappement:

- \n Retour à la ligne

- \t Tabulation horizontale

- \\ Anti-slash

- \’ Guillemet simple

- \” Guillemet double

Exemple:

guy@Athos:~$ echo -e 'auto lo\niface lo inet loopback\n\nauto eth0\niface eth0 inet dhcp'
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

tee

Sert à écrire des données intermédiaires dans un fichier. Exemple:

echo -e 'auto lo\niface lo inet loopback\n\nauto eth0\niface eth0 inet dhcp' | sudo tee /etc/network/interfaces  # met les nouveaux paramétres dans le fichier interfaces

Autre exemple, pour ajouter un module ath5k (Wifi):

echo ath5k | sudo tee -a /etc/modules  # va ajouter une ligne dans le fichier

Exécution automatique de commandes

cron

cron est un service ou daemon pour programmer des actions à un moment défini. L’équivalent graphique est gnome-schedule.

  • Ainsi, on peut facilement automatiser des tâches à effectuer de façon régulière en ajoutant une entrée dans le fichier crontab.

Pour lister les tâches enregistrées, faire crontab -l.

crontab -l

Pour éditer le fichier crontab, faire crontab -e.

crontab -e

La syntaxe est de la forme:

m h dom mon dow [nom_utilisateur] commande > <fichier_log>   # pour créer un fichier log
m h dom mon dow [nom_utilisateur] commande >> <fichier_log>  # pour ajouter à la fin du fichier

dans laquelle

  • m (min) indique les minutes
  • h (hour) indique les heures
  • dom (day of month) indique le numéro du jour du mois
  • mon (month) indique le numéro du mois
  • dow (day of week) indique le jour de la semaine (0 à 6)
  • commande représente la commande à lancer

La commande doit être écrite avec son chemin complet

  • <fichier_log> représente le nom du fichier où enregistrer le résultat.

Pour indiquer que la tâche s’effectue toutes les 15 minutes de 8h00 à 20h00 du lundi au vendredi, on écrit

0,15,30,45 8-20 * * 1-5 [nom_utilisateur] <commande> > <fichier_log>

On peut également utiliser la syntaxe

*/15 8-20 * * 1-5 [nom_utilisateur] <commande> > <fichier_log>  # pour une commande toutes les 15 minutes

Les différents raccourcis crontab sont les suivants:

Raccourci Fréquence
@reboot Au démarrage
@yearly Tous les ans, “0 0 1 1 *”
@monthly Tous les mois, “0 0 1 * *”
@weekly Toutes les semaines, “0 0 * * 0”
@daily Tous les jours, “0 0 * * *”
@midnight A minuit, “0 0 * * *”
@hourly Une fois par heure, “0 * * * *”

Pour une synchronisation de l’horloge de l’ordinateur toutes les 3 heures sur le serveur de temps de l’Université de Nice, on utilise la commande ntpdate avec la ligne suivante au crontab:

30 9,15,21 * * * /usr/sbin/ntpdate -s ntp.unice.fr
  • Il faut savoir que si l’ordinateur est utilisé par plusieurs personnes, la tâche cron est effectuée par la personne qui l’a écrite par la commande crontab -e. Pour rendre la tâche indépendante de l’utilisateur, lancer crontab -e en root ou indiquer root comme l’utilisateur.

/etc/crontab

  • Pour qu’une tâche soit réalisée quelque soit le login, il faut éditer etc/crontab et ajouter, par exemple, la ligne:
0 18 * * * root ntpdate /usr/sbin/ntpdate pool.ntp.org  # pour le faire en root

Exemple, pour lancer un backup tous les jours à 4h00, ajouter la ligne:

0 4    * * *   root test -x /usr/sbin/backup-manager && /usr/sbin/backup-manager 

Bien vérifier les droits d’exécution du fichier /etc/crontab

Relancer ensuite cron

sudo restart cron  " ou "service cron start"
  • Exemple: Sauvegarde journalière d’un site à 03h00. Ajouter:
# Chaque jour à 03h00
0 3 * * * wget -O - -q -t 1 h**p://Adresse_Site/cron.php

/etc/cron.daily

Pour qu’une tâche soit exécutée tous les jours,

  • on ajoute un script adapté dans le répertoire /etc/cron.daily. Exemple pour un backup tous les jours:
~$ nano /etc/cron.daily/backup-manager
#!/bin/sh
# cron script for backup-manager
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager >> /home/<login>/backup.log
  • rendre le fichier éxécutable
~$ sudo chmod +x /etc/cron.daily/backup-manager
  • relancer cron
~$ sudo service cron restart

anacron

anacron offre l’avantage de pouvoir effectuer des tâches périodiquement. Il est particulièrement adapté pour des postes qui ne sont pas allumés en permanence. Pour anacron, on paramètre le fichier /etc/anacron.

Très utile par exemple, pour faire des sauvegardes différentielles rdiff-backup ou des synchronisations par rsync ouGrsync.

Divers

Penser également à la programmation via le fichier /etc/rc.local.

Symbôles supplémentaires

Point-virgule

Le point-virgule ; marque la fin d’une commande et le commencement d’une autre. Les commandes seront éxécutées de manière inconditionnelle. La première qui échoue, n’empêche pas la suite d’être éxecutée.

echo a; sleep 5; echo b

Ici, on affiche a, on attend 5 secondes et on affiche b.

Simple supérieur

Après chaque commande, la console réagit la plupart du temps avec un message de réponse type standard (canal STDOUT) ou un message d’erreur (canal STDERR). Il est possible de rediriger la sortie vers un fichier pour en garder trace avec le symbôle >. Si ce fichier n’existe pas, il est créé. S’il existe, il est écrasé.

<commande> > fichier_sortie     # crée ou écrase  fichier_sortie

Il est possible de rediriger la sortie d’une commande qui écrit l’erreur standard vers un fichier.

<commande-c> 2> fichier_erreur  # crée ou écrase fichier_erreur

Pour rediriger à la fois la sortie standard et l’erreur standard vers des fichirs, deux solutions:

  • <commande> > fichier_sortie 2> fichier_erreur  # fichiers séparés
  • <commande> > fichier_sortie-erreur 2>&1        # fichier commun

Double supérieur

Le symbôle double supérieur » permet de rediriger à la fin du fichier de sortie, sans écraser le précédent.

ps -A > /tmp/ps.log; dmesg >> /tmp/ps.log  # stocke le résultat de ps -a puis ajoute celui de dmesg

Pense-bête commandes Linux

Le tableau suivant constitue une bonne récapitulation de commandes courantes: http://media.biologeek.com/realisations/doc_ubuntu_fr/ubuntu_fr_carte_reference3.pdf

Arrêt serveur X

Pour installer, par exemple, le pilote NVIDIA correspondant à une carte graphique GeForceFX5700, la procédure impose d’arrêter le serveur X qui pilote l’interface graphique de Linux:

- A partir d’Ubuntu, faire Ctl+Alt+F1, l’affichage passe en console.

- Passer en super-utilisateur et arrêter le daemon corrspondant:

su
/etc/init.d/gdm stop  # ou sudo service stop

Le serveur X s’arrête, faire l’installation.

- Relancer le serveur X par la commande inverse:

/etc/init.d/gdm start  # ou sudo service start

Solution alternative

Au lieu d’arrêter le serveur X, il suffit de ne pas le démarrer. Pour cela, au moment du démarrage, choisir dans le menu Grub, l’option Ubuntu (Recovery mode). On se retrouve alors en mode console pour procéder à l’installation.

 
 
/homez.462/coursinfy/www/dokuwiki/data/pages/commandes_linux_2.txt · Dernière modification: 2014/04/07 18:43 par guy
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki