Vous êtes sur la page 1sur 36

Linux

PRESENTATION ET UTILISATION DU S YSTEME

www.onlineformapro.com
Table des matières
Table des matières ..................................................................................... 2
Présentation de LINUX .............................................................................. 4
I. Historique ................................................................................................................ 4
II. Distributions et familles ....................................................................................... 6
III. Licences et support .............................................................................................. 7
IV. Composants de Linux ........................................................................................ 10
V. Configuration minimale ..................................................................................... 11
Utilisation de Linux .................................................................................. 12
I. Débuter avec les commandes ........................................................................... 12
A. Commandes de connexion, de déconnexion et d’arrêt ............................................. 12
B. Autocomplétion et rappel de commandes ................................................................ 12
C. Commandes d’information de la session en cours .................................................... 13
D. Date et heure ........................................................................................................... 14
II. Utilisation de l’aide ............................................................................................. 15
A. Obtenir de l’aide localement .................................................................................... 15
B. Obtenir de l’aide avec MAN ...................................................................................... 15
C. Obtenir de l’aide sur internet ................................................................................... 16
III. Manipuler et naviguer dans les répertoires ................................................. 17
A. Afficher le chemin du répertoire courant.................................................................. 17
B. Changer de répertoire courant ................................................................................. 17
C. Lister le contenu d’un répertoire .............................................................................. 17
D. Manipulation des fichiers et répertoires ................................................................... 18
IV. Afficher du texte ................................................................................................ 18
A. Afficher et concaténer du texte - cat ........................................................................ 18
B. Afficher le début ou la fin d’un fichier ....................................................................... 19
C. Afficher le contenu d’un fichier avec pause à chaque page d’écran .......................... 19
D. Autres commandes utiles ......................................................................................... 20
V. Commandes de recherche ................................................................................ 20
A. Recherche d’expression dans les fichiers - grep ........................................................ 20

Page 2 sur 36
B. Recherche sur les noms de fichiers et de répertoires – find ...................................... 20
VI. Editer du texte - vi ................................................................................... 21
VII. Permissions Unix .................................................................................... 25
A. Valeurs des droits ..................................................................................................... 25
B. Lecture des droits ..................................................................................................... 25
C. umask : masque des droits par défaut ...................................................................... 26
D. chown – Changer l’utilisateur propriétaire ............................................................... 26
E. chgrp – Changer le groupe propriétaire .................................................................... 26
F. chmod – Gestion des droits ...................................................................................... 27
VIII. Archivage et compression .................................................................... 28
A. Tar – Archivage......................................................................................................... 28
B. Compression gzip ..................................................................................................... 29
C. Compression bzip2 ................................................................................................... 29
D. Décompression (gunzip, bunzip, zcat, bzcat) ............................................................ 29
IX. Redirections............................................................................................. 30
A. Redirection des flux .................................................................................................. 30
B. Pipelines ................................................................................................................... 31
C. Redirection double en sortie..................................................................................... 31
X. Gestion des processus .............................................................................. 31
A. Commande de gestion des processus ....................................................................... 31
B. Gestion des processus en arrière-plan ...................................................................... 33
XI. Divers....................................................................................................... 33
A. Screen - Multiplexeur de terminaux ......................................................................... 33
B. Gestion des variables ................................................................................................ 34
C. Alias .......................................................................................................................... 36

Page 3 sur 36
Présentation de LINUX
Unix est le premier OS à ne pas avoir été conçu par un équipementier, il a ouvert une brèche dans un domaine
jusque-là propriétaire et réservé. Linux ou GNU/Linux est une famille de systèmes d'exploitation open source de
type Unix fondée sur le noyau Linux, créé en 1991 par Linus Torvalds. De nombreuses distributions ont depuis
vu le jour et constituent un important vecteur de popularisation du mouvement du logiciel libre.

I. Historique

• 1971 : Première version d’UNIX sur un PDP 11/20 (Programmable Data Processor), un ordinateur doté
de 24Ko de RAM (16 occupés par le noyau UNIX) et de 512Ko de disque dur…
• 1973 : Réécriture du noyau UNIX puis des autres outils UNIX en langage C par Ken Thompson, l’université
de Berkeley en Californie étant la première à disposer d’UNIX et de ses sources
• 1976 : Sortie d’Unix Time-Sharing System V6 (premier protocole d’échange de données très utilisé avant
l’arrivée de TCP/IP)
• 1982 : SunOs 1.0
• 1983 : Lancement du projet GNU
• 1991 : Naissance du noyau Linux et distribution par le biais des premiers serveurs FTP
• 1996 : Sortie de l’environnement graphique de bureau KDE
• 1997 : Sortie de l’environnement graphique de bureau GNOME

Par la suite, de nombreuses versions et systèmes différents sont apparus.

Page 4 sur 36
Page 5 sur 36
II. Distributions et familles
Distributions
Une distribution GNU/Linux est un ensemble cohérent de logiciels rassemblant un OS composé d'un noyau Linux,
de logiciels issus du projet GNU et de logiciels tiers.

Certaines distributions sont orientées poste de travail comme Ubuntu car plus simples à mettre en œuvre,
d’autres plutôt orientées serveur comme RedHat.

Il y a plus de 500 distributions GNU/Linux à être listées, une timeline complète des versions est disponible au lien
suivant : http://futurist.se/gldt.

Parmi les distributions les plus connues figurent :

• Debian
• Ubuntu
• RedHat
• Fedora
• CentOs
• Mageia
• Mandrake
• Mandriva
• SuSe

Et bien d’autres… Certaines distributions sont commerciales, comme RedHat, Mandriva ou Novell/Suse, alors
que d'autres sont à but non lucratif comme Debian.

Familles de distributions
De nombreuses distributions linux sont dérivées d’autres distributions existantes :

• Knoppix et Ubuntu sont dérivées de Debian


• Linux Mint est dérivée d’Ubuntu
• Fedora et CentOs sont dérivées de RedHat
• Chromium OS dérivée de Gentoo

Les principales familles sont :

• Debian
• Red Hat
• Slackware
• Gentoo
• Arch Linux
Distributions adaptées à une utilisation en entreprise
Les distributions les plus populaires en entreprise pour l’installation de serveurs Linux sont les suivantes :

• Red Hat
• CentOS (dérivé de Red Hat)

Page 6 sur 36
• Debian

• Ubuntu Serveur (dérivé de Debian)


Concernant les postes client en entreprise, Ubuntu Desktop est très populaire.

Comparatif entre Red Hat et Debian.

RedHat Debian

Distribution commerciale Open Source


Distribution non commerciale, Open Source et
gratuite

Développée par RedHat Inc., société multinationale Développée par Project Debian, organisation à but
faisant du profit sur la vente de paquets non lucratif développant des logiciels d’intérêt public

Plus adaptée aux serveurs Plus adaptée aux postes de travail

Contient 3000 paquets Contient plus de 38000 paquets

Pas de mise à jour de package entre deux versions Mises à jour constantes des packages

Correction des bogues longue car contrôlée par un Correction de bogues très rapide car la communauté
petit groupe de personnes Debian est nombreuse et très active

Mises à jour quotidienne facilement réalisable


Mise à jour majeure uniquement tous les 6 mois et
complexe à réaliser

Gestion des paquets : Gestion des paquets :


- Paquets RPM - Paquets deb
- Gestionnaire de paquets RPM - Gestionnaire de paquets dpkg
- Résolveur de dépendance yum - Résolveur de dépendances apt-get

Gestionnaire de paquets mature et résolvant le plus


Gestionnaire de paquets moins mature et nécessitant souvent les dépendances automatiquement
d’avantage d’interventions humaine pour résoudre
les dépendances

III. Licences et support


GNU
En 1984, Richard Stallman (chercheur au MIT) lance le projet GNU : un projet pour le développement des logiciels
libres de droits.

Ce projet consistait à réécrire un OS libre en se basant sur UNIX et porte comme nom GNU (GNU’s Not UNIX). De
nombreuses applications UNIX ont été réécrites en partant de zéro « from scratch ». Le développement du noyau
fût la partie la plus longue et la plus compliquée et c’est en 1991 que le noyau Linux vît le jour. Créé par Linus

Page 7 sur 36
Torvalds (qui a inspiré le nom de Linux), ce noyau est la pierre angulaire qui rendît possible la création et la
diffusion des systèmes Linux.

Free Software Foundation


En 1985 la FSF, une association à but non lucratif a été fondée par Richard Stallman. Son objectif était d’assurer
le financement des logiciels libres dont le projet GNU. Aujourd’hui cette association a pour objectifs de défendre
les logiciels libres et leurs utilisateurs. Pour Stallman, libre désigne la liberté et non le prix.

Licence GPL et Copyleft


La licence GNU GPL (General Public Licence ou plus familièrement Guaranteed Public for Life) protège les logiciels
libres afin de les prémunir contre la mise en place d’un copyright concernant le code source d’un logiciel.

Le terme et le logo Copyleft sont également employées pour désigner les licences respectant ce principe.

Les objectifs sont de garantir les libertés suivantes :

• Liberté d’exécution du logiciel pour n’importe quel usage


• Liberté d’accès aux codes sources
• Liberté d’étudier le fonctionnement d’un logiciel
• Liberté de modifier un logiciel pour l’adapter à ses besoins
• Liberté de diffuser des copies originales du logiciel en question
• Obligation de faire bénéficier à la communauté des versions modifiées du logiciel en question

Licences libres
Les logiciels libres sont une alternative à ceux qui ne le sont pas (qualifiés de propriétaires). Ces derniers sont
considérés par les plus fervent représentants de la communauté du logiciel libre comme étant un instrument de
pouvoir injuste permettant au développeur de contrôler l’utilisateur.

Le logiciel libre et souvent confondu avec :

• Le gratuiciel (freeware) qui est un logiciel gratuit propriétaire tandis que le logiciel libre est défini par les
libertés accordées à l’utilisateur. La gratuité va souvent de pair avec le logiciel libre de par sa nature
d’ouverture au partage cependant elle ne s’oppose pas à la notion de rentabilité liée à des services
associés comme le support
• L’open-source qui s’apparente à une méthode de développement au travers de la réutilisation du code
source
Licence LGPL
Cette licence limitée est moins restrictive que la licence GPL dont elle découle, a été créée pour permettre à
certains logiciels libres de pénétrer tout de même certains domaines où le choix d'une publication entièrement
libre de toute l'offre était impossible.

Cette licence s'applique souvent aux bibliothèques. La signification originale du sigle LGPL étant Library General
Public License. Le sens du L de LGPL a été modifié de Library en Lesser afin d'éviter les nombreuses inductions
en erreurs.

Page 8 sur 36
Licence BSD
La
licence BSD (Berkeley Software Distribution License) est une licence libre utilisée pour la distribution de logiciels
permettant de réutiliser tout ou partie du logiciel sans restriction, qu'il soit intégré dans un logiciel libre ou
propriétaire.

La version originale de la licence BSD incluait une clause de publicité particulièrement contraignante qui obligeait
la mention du copyright dans toute publicité ou document fourni avec le logiciel, ce qui pouvait provoquer
quelques problèmes en cas d'utilisation d'un grand nombre de composants sous cette licence. La nouvelle
version de cette licence ne contient plus cette clause de publicité.

Différence entre licence et support


A la différence d’une licence, le support désigne un contrat de service comme le support technique ou l’accès à
des ressources en ligne de type Cloud.

Ainsi, il est possible d’utiliser un logiciel ayant un type de licence libre et gratuite et un support payant.

Page 9 sur 36
IV. Composants de Linux
Noyau
Le noyau est le cœur (programme principal) du système. Il est généré à l’installation et ses rôles sont les suivants
:

• Gérer les ressources de l’ordinateur via la couche logicielle (périphériques, stockage, CPU, mémoire…)
• Mettre à disposition ces ressources aux utilisateurs
• Ordonnancer les processus (tâches)

Langages Shell
Une commande peut être représentée par une suite de mots séparés par des espaces, le premier mot étant le
nom de la commande et les mots suivants les arguments.

Une commande est analysée puis interprétée par un programme interpréteur de commandes nommé shell
pouvant également être assimilé à un langage complet permettant d’enregistrer et d’exécuter des fichiers de
commandes (scripts shell).

Un shell traite des informations saisies en entrée (flux stdin – le clavier ou ce qui s’y assimile), les restitue en
sortie (flux stdout – l’écran, le fichier ou ce qui s’y assimile) et écrit les erreurs éventuelles (stderr – écran, fichier
ou assimilé).

Les principaux shells sont :

• sh (Bourne Shell) – Originaire d’AT&T


• csh (C Shell) : originaire d’UNIX BSD, syntaxe proche du C
• ksh (Korn Shell) – Originaire d’AT&T, c’est un sur-ensemble du sh ( avantages du csh et syntaxe du csh)
• bash (Bourne-Again Shell) - Fondé sur un base de Bourne-Shell et shell des distributions GNU / Linux

Arborescence de fichiers
Dans la philosophie Linux, tout est fichier. Ceci signifie que tout est vu par le système comme étant un fichier
(répertoires, scripts, logiciels, périphériques, programmes et fichiers eux-mêmes sont vus et représentés comme
des fichiers…).

GNU/Linux dispose d’une norme d'organisation des systèmes de fichiers pour le nommage des répertoires et des
fichiers, cette norme permettant aux utilisateurs et aux auteurs de logiciel de prévoir leurs emplacements.

Le répertoire racine est représenté par la barre oblique « / ».

Les règles concernant la désignation des fichiers sont les suivantes :

• Pas de notion d’extension (contrairement à Windows), mettre .txt à la fin d’un fichier sert uniquement
pour faciliter la reconnaissance de celui-ci à l’utilisateur
• Pas de caractères interdits hormis « / » (désignant la racine), il convient tout de même d’éviter les
caractères spéciaux qui peuvent s’avérer difficiles à manipuler
• Sensibilité à la casse, « BONJOUR » est différent de « bonjour » ou de « Bonjour »

Page 10 sur 36
• Les fichiers cachés commencent par un point « . »

• La longueur d’un nom de fichier peut atteindre 255 caractères


Sous la racine, les systèmes Linux incluent généralement les répertoires suivants :

/bin Binaires (exécutables) des commandes essentielles

/boot Fichiers statiques pour le programme d'amorçage

/dev Fichiers des pilotes de périphériques

/etc Configuration système propre à la machine

/home Répertoires personnels des utilisateurs

/lib Bibliothèques partagées et modules noyaux essentiels

/media Points de montage pour les supports amovibles


/mnt Point de montage pour les montages temporaires

/proc Répertoire virtuel pour les informations système

/root Répertoire personnel de l'utilisateur root

/run Données variables d'exécution

/sbin Exécutables système essentiels

/sys Répertoire virtuel pour les informations système

/tmp Fichiers temporaires

/usr Hiérarchie secondaire

/var Données variables


/srv Données pour les services fournis par le système

/opt Répertoire pour d'autres logiciels

V. Configuration minimale

La configuration minimale pour installer Linux (Debian/Ubuntu) en version Desktop est la suivante :
• Processeur : Processeur Pentium 4 de 1 GHz ou supérieur
• RAM : 512 Mo minimum, ou 1 Go recommandé
• Espace disque : 20 Go minimum

Page 11 sur 36
Utilisation de Linux

I. Débuter avec les commandes

A. Commandes de connexion, de déconnexion et d’arrêt


Se connecter
A l’ouverture d’une session ssh avec un outil comme Putty ou MobaXterm saisir le login puis le mot de passe
pour se connecter

Se connecter en tant qu’un autre utilisateur


# su [login]

Se connecter en tant que root


# su –

Changement de mot de passe


# passwd [login]
Si le login n’est pas fourni cette commande change le mot de passe de l’utilisateur courant.

Alternative (utile dans les scripts ou les changements de mot de passe en masse) :
# echo "login:nouveau_mdp" | sudo chpasswd

Se déconnecter
# exit

Eteindre la machine
# shutdown

Pour annuler le redémarrage


# shutdown -c

Redémarrer la machine
# reboot

B. Autocomplétion et rappel de commandes


Le shell dispose de fonction d’auto complétion et de rappel de commandes. L’autocomplétion fonctionne sur les
chemins d’accès, les noms de fichiers, les commandes et les variables. Il suffit pour cela d’utiliser la touche TAB.

Page 12 sur 36
Les fonctions de rappel de commandes principales sont les suivantes :

• history Afficher l’historique


• ↑ Rappeler les commandes précédentes
• ↓ Rechercher dans l’ordre inverse
• !! Rappeler la dernière commande exécutée
• !com Rappeler la dernière commande exécutée commençant par “com”
• !?com Rappeler la dernière commande exécutée contenant la chaine “com”
• !118 Rappeler la commande numérotée 118

C. Commandes d’information de la session en cours


Afficher le nom du terminal
# tty

Afficher le login de connexion


# logname

Qui-suis-je ?
# whoami

Afficher la/les session(s) en cours


# w
Ou bien
# who
Options de la commande :
• -H Entête de colonnes
• -q Liste abrégée (nom et nombre d’utilisateurs connectés)
• -u Informations complémentaires

Afficher les noms et identificateurs de l’utilisateur et de ses groupes


# id

Le résultat retourne les informations suivantes :

• UID de l’utilisateur
• Login de l’utilisateur
• GID du groupe principal de l’utilisateur
• Nom du groupe principal de l’utilisateur
• GID et noms des autres groupes de l’utilisateur

Exemple :
uid=1000(yafendou)gid=1000(yafendou)groupes=1000(yafendou),4(adm),24(cdrom)
,27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare)

Page 13 sur 36
D. Date et heure
Afficher la date et l’heure
# date

Générer un calendrier
# cal

Page 14 sur 36
II. Utilisation de l’aide

Les commandes Linux comportent un grand nombre d’option difficiles à mémoriser (et parfois même à
comprendre). Il est donc important d’accéder à de la documentation afin de trouver les options qui nous seront
utiles, il y a plusieurs manières d’utiliser l’aide.

A. Obtenir de l’aide localement


La plupart des commandes possède des options permettant d’afficher une aide rapide. Généralement il s’agit de
l’option –help.

Exemple :
# date --help

B. Obtenir de l’aide avec MAN


La commande MAN est disponible sur les systèmes d'exploitation Linux. Elle permet visionnage de contenus
d’aide formatés pour être exploitable en CLI. MAN fournit une aide précieuse et intégrée (en anglais) sur les
commandes UNIX.

Sections
Les pages MAN sont organisées en différentes sections :

1. Commandes utilisateur
2. Appels système
3. Fonctions de bibliothèque
4. Fichiers spéciaux
5. Formats de fichier
6. Jeux
7. Divers
8. Administration système
9. Interface du noyau Linux

Obtenir l’aide sur une commande avec MAN


# man [commande]

Obtenir l’aide sur le fichier de commande


On appelle ici la section 5.
# man -s 5 [commande]

Page 15 sur 36
Obtenir l’aide sur sur la commande MAN
# man man

C. Obtenir de l’aide sur internet


Internet regorge d’informations sur Linux. Les différentes distributions bénéficient de l’activité de l’ensemble de
la communauté utilisateurs (forums, blogs, tutoriels, sites web…) et la consultation des sites des éditeurs apporte
de nombreuses informations.

Il est pour cela nécessaire de maîtrise les techniques de recherches sur internet afin de cibler de manière précise
les résultats qui nous seront utiles. Analyser les informations trouvées et les adapter à notre contexte est
essentiel car de nombreuses informations disponibles sur le net sont erronées ou obsolètes.

Page 16 sur 36
III. Manipuler et naviguer dans les répertoires

Afficher le chemin du répertoire courant


Permet d’afficher le répertoire dans lequel l’utilisateur se trouve au moment de l’exécution de la commande.
# pwd

B. Changer de répertoire courant


Commande
# cd [chemin]
Sans indication du chemin, la commande renvoie au répertoire de connexion (généralement /home/[login])

Chemin absolu et relatif


Le chemin peut être donné en absolu ou en relatif :

• Chemin absolu : chemin commençant par / (la racine)


• Chemin relatif : chemin donnée à partir du répertoire courant
- « . » désigne le répertoire courant
- « .. » désigne le répertoire parent

Exemple (chemin absolu) :


# cd /etc/network

Exemple chemin relatif


# cd ..

C. Lister le contenu d’un répertoire


Lister
# ls [chemin_répertoire]
Options utiles de la commande :
• -a Lister tous les fichiers, y compris ceux commençant par « . »
• -l Afficher les informations (types, permissions, utilisateurs et groupes propriétaires, droits...)
• -r Tri inversé
• -t Tri par date de dernière modification+

Disk usage
Permet de connaître l’espace utilisé par des fichiers.
# du [chemin_répertoire]
Options utiles de la commande :
• -h Human-readeable : permet d’afficher la taille de manière lisible (Ko, Mo, Go, To, Po)

Page 17 sur 36
A.
• -s Summarize : permet de faire la somme des fichiers et sous répertoires présents

D. Manipulation des fichiers et répertoires


Créer un répertoire
# mkdir [nom_répertoire]

Supprimer un répertoire
# rmdir [nom_répertoire]

Créer un fichier vide / Modifier la date d’un fichier


Permet de créer le fichier spécifié (s’il n’existe pas), autrement, modifie l’horodatage du fichier.
# touch [fichier]

Copier un fichier
# cp [fichier_source] [fichier_cible]

Déplacer un fichier / Renommer un fichier


Permet de déplacer le fichier spécifié (si le répertoire cible est différent du répertoire source), sinon de renommer
le fichier.
# mv [fichier_source] [fichier_cible]

Supprimer un fichier
# rm [fichier]

Déterminer le type d’un fichier


# file [fichier]

IV. Afficher du texte

Afficher et concaténer du texte - cat


Afficher le contenu d’un fichier
# cat [fichier]
Options utiles de la commande :

Page 18 sur 36
• -n Afficher le numéro des lignes
• -b Afficher le numéro des lignes non vides
• -s Ne pas afficher les lignes vides consécutives

Créer un fichier contenu et renseigner son contenu


# cat > [nom_fichier]
Saisir ensuite le contenu souhaité puis terminer par « Entrée » puis CTRL+D

Concaténer le contenu de deux fichiers


# cat [fichier1] [fichier2] > [fichier3]

B. Afficher le début ou la fin d’un fichier


Afficher le début d’un fichier
# head [fichier]
Options utiles de la commande :
• -n Nombre de lignes à afficher (fonctionne également en précisant le nombre après «-»)
• -c Nombre d'octets à afficher

Afficher la fin d’un fichier


# tail [fichier]
Par défaut, tail affiche les 10 dernières lignes du fichier.

Options utiles de la commande :


• -[nb] Position du début d’affichage (depuis la fin du fichier)
• -n [+nb] Position du début d’affichage (depuis le début du fichier)

C. Afficher le contenu d’un fichier avec pause à chaque page


d’écran
Commande more #
more [fichier]

Commande less
# less [fichier]
Similaire à more mais permet de ne pas quitter la lecture lorsque le curseur arrive à la fin du fichier

Commandes utiles lors de la lecture:


• h Accéder à l’aide
• q Quitter le fichier ou l’aide
• G Se positionner en fin de fichier
• gg Se positionner en début de fichier
• /[texte] Rechercher la suite de caractères « texte »
- n Occurrence suivante -
N Occurrence précédente

Page 19 sur 36
A.
D. Autres commandes utiles
Compter lignes, mots et caractères d’un fichier
# wc [fichier]
Options de la commande :
• -l Affiche le nombre de lignes
• -w Affiche le nombre de mots
• -c Affiche le nombre de caractères

Lister les différences entre deux fichiers


# diff [fichier1] [fichier2]

V. Commandes de recherche

Recherche d’expression dans les fichiers - grep


# grep [options] ‘expression’
Options de la commande :
• -c Nombre de lignes contenant l’expression
• -h Supprimer le nom de fichier dans le résultat lorsque la recherche concerne plusieurs fichiers
• -i Ignorer la casse
• -l Afficher uniquement le nom des fichiers contenant l’expression
• -n Faire précéder chaque ligne de son numéro dans son fichier respectif
• -v Afficher uniquement les lignes ne contenant pas l’expression

Grep utilise des expressions régulières (regex), il convient donc d’utiliser les simples quotes (‘ ‘) pour protéger
l’expression recherchée.

B. Recherche sur les noms de fichiers et de répertoires – find


Commande find
# find <chemin> [options] [actions]
Options de la commande :
• -name [nom] Recherche en fonction du nom
• -user [nom] Recherche en fonction du propriétaire
• -group [nom] Recherche en fonction du groupe propriétaire
• -type Recherche en fonction du type de fichier
- f Fichier standard

Page 20 sur 36
- d Répertoire
• -size nb [c] Recherche en fonction de la taille des fichiers (en blocs de 512 octets) ou en
octets si nb est suivi du caractère « c »
• -ctime <nb> Recherche en fonction de la date de création ou de dernière modification
• -mtime <nb> Recherche en fonction de la date de dernière modification

Les actions peuvent être exécutées à chaque occurrence trouvée par find.
• -print Afficher les noms de fichiers trouvés au fur et à mesure
• -exec cmd {} \ Exécuter la commande stipulée pour chaque fichier trouvé
- « {} » symbolise le nom de chaque fichier
- « \ » termine la commande
• -ok cmd {} \ Similaire à -exec avec une demande de confirmation à chaque occurrence

Regroupement des critères de recherche et opérateurs de la commande find


Il est possible de regrouper des critères de recherche et d’ajouter des opérateurs de sélection. Il est nécessaire
pour cela encadrer les regroupements de la manière suivante : \( critère \)

Les opérateurs sont les suivants :

• ! Opérateur de négation
• -o Opérateur OU (or)
• -a Opérateur ET (and)

VI. Editer du texte - vi

Vi est l’éditeur de texte standard d’Unix. Sous GNU/Linux, vim est utilisé (il s’agit d’un éditeur reprenant les
principes de vi et apportant des améliorations.

Mode compatible et non-compatible


Il est possible d’utiliser vim de deux manières :

• En mode compatible : permet de travailler de manière unifiée en respectant les standards Unix de vi
• En mode non-compatible : permet d’utiliser les fonctionnalités améliorées de vi mais ne respecte pas
les standards Unix

Il est préférable d’utiliser vim en mode non-compatible pour profiter des fonctionnalités mais il faut être
conscient que sur un système de type Unix, vous serez obligés d’utiliser l’équivalent du mode compatible car
vous aurez vi entre les mains.

Modes de travail
Il existe deux modes de travail :

• Mode insertion : saisie de texte dans le fichier


• Mode commande : les caractères saisis sont interprétés en tant que commandes
- Ce mode comprend un sous-mode permettant l’exécution de commandes précédées du
caractère « : »

La touche ESC permet de quitter le mode de saisie afin de retourner dans le mode commande

Page 21 sur 36
A.
Ouvrir vi
# vi [fichier]
Options de la commande :
• -R En mode lecture seule
• +n Se positionner à la ligne n
• +/CHAINE Se positionner à la première occurrence de la chaîne

Quitter vi
Passer en mode commande avec ESC puis :
• :wq Sauvegarder et quitter
• :q Quitter sans sauvegarder
• ! Forcer l’exécution de la commande précédente

Exécuter une commande sans quitter vim


Passer en mode commande avec ESC puis :
• ![cmd] Exécute la commande cmd depuis le shell sans quitter vim (exemple :!date)

Annuler / refaire
Passer en mode commande avec ESC puis :
• u Annuler l'action précédente
• CTRL+R Répéter l'action annulée

Page 22 sur 36
Navigation
Passer en mode commande avec ESC puis :
• gg Se déplacer au début du fichier
• G Se déplacer à la fin du fichier
• :n Se déplacer à la ligne n
• :$ Se déplacer à la dernière ligne
Recherche
Passer en mode commande avec ESC puis :
• / Rechercher
• n Occurrence suivante
• N Occurrence précédente
• :%s/CHAINE//ng Compter le nombre d’occurrences de CHAINE
Insertion de texte
Passer en mode commande avec ESC puis :
• i Passage en insertion avant le caractère courant
• a Passage en insertion après le caractère courant
• A Passage en insertion après la fin de la ligne courante
• I Passage en insertion avant le premier caractère significatif de la ligne
• s Substituer le caractère en surbrillance et passage en insertion
• o Ajout d'une ligne vide après la ligne courante et passage en insertion
• O Ajout d'une ligne vide avant la ligne courante et passage en insertion

Couper
Passer en mode commande avec ESC puis :
• x Couper le caractère courant
• dd Couper la ligne actuelle
• [n]d Couper n lignes

Copier
Passer en mode commande avec ESC puis :
• yy Copie la ligne courante
• [n]y Copie n lignes à partir de la ligne courante

Coller
Passer en mode commande avec ESC puis :
• p Coller le contenu du tampon après la ligne courante
• P Coller le contenu du tampon avant la ligne courante
• [n]p Coller n fois le contenu du tampon

Substituer
Passer en mode commande avec ESC puis :
• cw Substituer le mot courant (change word)
• s/[MOT1]/ [MOT2] Substituer MOT1 de la ligne en cours avec MOT2 •
g/[MOT1]/s//[MOT2] Substituer toutes les occurrence de MOT1 par MOT2 :q !

Page 23 sur 36
Personnaliser vim
En mode commande (configuration temporaire) :
• :set opt Activer l’option opt (exemple :set number pour afficher les lignes)
• :set opt! Désactiver l’option opt (exemple :set number! pour afficher les lignes)

En modifiant le fichier de configuration .vimrc disponible dans le home de l’utilisateur (modification permanente)
# cd
# vi .vimrc

Exemple de contenu du fichier :


"Fichier de configuration de profil vim"
set number "Affiche les numéros de
ligne" set autoindent "Identation
automatique"
set ignorecase "Ignore la casse lors des recherches"
set showmode "Affiche le mode de travail sur la ligne de statut"
set compatible "Active le mode compatible"

Page 24 sur 36
VII. Permissions Unix

A chaque fichier est lié un utilisateur propriétaire et un groupe propriétaire, les permissions sont appliquées à
ces entités ainsi qu’aux « autres ».

Lors de la création d’un fichier, les permissions sont positionnées à partir de la valeur du umask permettant la
gestion du masque de droits par défaut.

Dans le cas d’un fichier, la lecture des permissions permet de déterminer directement les accès possibles. Dans
le cas d’un répertoire, il faut interpréter les permissions afin de déduire les droits d’accès de ce dernier.

A. Valeurs des droits


Droit d’accès Valeur octale Permissions sur fichier Permissions sur répertoire

Lecture du contenu du répertoire


(nécessaire pour la commande ls et
les recherches sur les noms de
r 4 Lecture fichier)

Création ou suppression des fichiers


et répertoires contenus dans le
w 2 Ecriture répertoire concerné

Positionnement dans le répertoire


(cd)
Apparition du répertoire dans un
x 1 Exécution chemin d’accès
B. Lecture des droits
Les droits sont décomposés en 3 groupes de 3 positions et se lisent de la manière suivante :

• Position 1 Droit de lecture


• Position 2 Droit d’écriture
• Position 3 Droit d’exécution
• Toutes les positions Le tiret indique que le droit pour la position n’est pas alloué

Utilisateur propriétaire Groupe propriétaire Tout le monde


Owner Group owner Other
Position 1 Position 2 Position 3 Position 1 Position 2 Position 3 Position 1 Position 2 Position 3
Positions Lecture Ecriture Exécution Lecture Ecriture Exécution Lecture Ecriture Exécution

Exemple : Permissions
symboliques r w x r w - r - -

Exemple : Permissions
binaires 1 1 1 1 1 0 1 0 0

Exemple : Permissions
octales 7 6 4

Page 25 sur 36
C. umask : masque des droits par défaut
L’umask est un outil de gestion des droits lors de la création de fichiers permettant de gérer les droits par défaut.
En définissant un nouvel umask, on retire automatiquement l’umask actuel pour la création des futurs fichiers
ou répertoires.
# umask [-S] [masque]
Options de la commande :
• -S Visualiser en notation symbolique les privilèges d’un répertoire en fonction du
masque
• Masque Valeur octale (exemple : 0000) ou symbolique (exemple : u=rwx,g=rwx,o=rwx)
Si le masque n’est pas renseigné dans la commande :

• umask retourne la valeur actuelle du masque en valeur octale


• umask -S retourne la valeur actuelle du masque en notation symbolique (ex : u=rwx,g=rwx,o=rwx).
Par défaut lors de la création d’un fichier, les droits appliqués sont les suivants : -rw-rw-rw- (666). Ils sont alors
modifiés par retranchement de la valeur du masque. Si nous souhaitons modifier les droits appliqués par défaut
il est possible d’utiliser un umask modifié.

Il faut tenir compte des trois points suivants :

• Le droit d’exécution ne peut pas être positionné par défaut lors de la création d’un fichier
• La valeur maximale des droits d’un fichier est -rw-rw-rw- (666)
• La valeur maximale des droits d’un répertoire est -rwxrwxrwx (777)

D. chown – Changer l’utilisateur propriétaire


La commande chown permet de changer l’utilisateur propriétaire d’un fichier.

Cette commande nécessite des privilèges, autrement seul le groupe propriétaire peut être modifié par
l’utilisateur propriétaire avec la commande chgrp.
# chown [nom_user] :[nom_grp] [nom_fichier]
Arguments de la commande :
• nom_user Nouvel utilisateur propriétaire
• nom_grp Nouveau groupe propriétaire
• nom_fichier Nom du fichier à modifier

E. chgrp – Changer le groupe propriétaire


La commande chgrp permet de changer le groupe propriétaire d’un fichier. Seul le propriétaire du fichier ou du
répertoire (ou bien root) peut modifier le groupe propriétaire.
# chgrp [-R] [nom_grp] [nom_fichier / nom_repertoire]
Arguments de la commande :
• -R Modification récursive (pour un ou plusieurs répertoires)
• nom_grp Nouveau groupe propriétaire
• nom_fichier Nom du fichier à modifier
• nom_repertoire Nom du répertoire à modifier

Page 26 sur 36
F. chmod – Gestion des droits
Les droits d’un fichier ou d’un répertoire peuvent être définis manuellement en absolu ou en relatif.

Modification absolue
Cette méthode est à utiliser avec précaution car elle implique d’écraser les droits en cours.
# chmod [-droits] [nom_fichier / nom_repertoire]
Arguments de la commande :
• -droits Valeur octale comprise entre 000 et 777 (exemple : 764 = rwxrw-r--)
• nom_fichier Nom du fichier à modifier
• nom_repertoire Nom du répertoire à modifier

Modification relative
# chmod [Qui Comment Quoi] [nom_fichier / nom_repertoire]
Arguments de la commande :
• Qui Pour qui positionner le ou les droits
- u Utilisateur propriétaire
- g Groupe propriétaire
- o Tout le monde (other)
- a Tous les groupes (all)
• Comment Opérateur d’affectation du ou des droits
- + Ajouter le ou les droits aux droits existant(s)
- - Retirer le ou les droits aux droits existant(s)
- = Remplacer le ou les droits aux droits existant(s)
• Quoi Droit ou droits à positionner
- r Droit de lecture
- w Droit d’écriture
- x Droit d’exécution

Page 27 sur 36
VIII. Archivage et compression
L’archivage désigne la concaténation de plusieurs fichiers et répertoires en un seul fichier et ne diminuant pas
spécifiquement la taille totale. L’intérêt est de permettre une manipulation simplifiée de toute une arborescence
lors d’envoi de fichiers ou de téléchargements.

La compression agit fichier par fichier et a pour but de réduire la taille des fichiers. L’intérêt est de réduire
l’espace disque lors des sauvegardes et de réduire l’impact sur le réseau lors des transferts.

Ces deux mécanismes sont couramment utilisés de manière conjointe afin de cumuler leurs avantages.

A. Tar – Archivage
La commande tar permet d’archiver des répertoires et des fichiers (l’archivage d’un répertoire implique
l’inclusion de son contenu : sous-répertoires et fichiers).
# tar [options] [arguments]
Les arguments sont les noms de la future archive et des fichiers ou répertoires devant être archivés

Options de la commande (la commande doit obligatoirement contenir une des options suivantes : Acdrtux) :

Les plus courantes (se place en début de commande) :


• -c --create Créer une nouvelle archive
• -u --update Mettre à jour une archive avec les fichiers/répertoires plus récents
• -t --list Lister le contenu d’une archive
• -x --extract / --get Extraire le contenu d’une archive
Les moins courantes (se place en début de commande) :
• -d --diff / --compare Comparer une archive avec les fichiers indiqués
• -r --append Ajouter des fichiers à la fin d’une archive
• -A --concatenate Ajouter des fichiers d’archive à une archive

Options additionnelles :
• -C [repertoire] Extraire dans le répertoire spécifié (se place en fin de commande)
• -f [archive.tar] Utiliser le fichier spécifié
• -v --verbose Afficher de manière détaillée les fichiers traités
• --exclude [fichier] Exclure le fichier/répertoire spécifié
• -z --gzip Compression avec gzip (se place en fin de commande)
• -j Compression avec bzip2 (se place en fin de commande)
Exemples :
tar -cvf ARCHIVE.tar DIR Archivage de DIR dans ARCHIVE.tar tar -
uvf ARCHIVE.tar DIR Mise à jour de l'archive tar -cvf
ARCHIVE.tar.gz -z DIR Archivage et compression gzip tar -cvf
ARCHIVE.tar.bz2 -j DIR Archivage et compression bzip2 tar -xvf
ARCHIVE.tar.gz -C DIR Restauration de l'archive dans DIR
tar -cvf ARCHIVE.tar --exclude=DIR/SSDIR DIR Archivage avec exclusion de répertoire
tar -tvf ARCHIVE.tar Lecture contenu archive

Page 28 sur 36
B. Compression gzip
La compression gzip permet de réduire la taille d’un ou plusieurs fichiers. Après compression, l’extension .gz est
attribuée au fichier (utile afin de reconnaître le fichier).
# gzip [options] [nom_fichier]
Options de la commande :
• -c --stdout Ecriture sur la sortie standard en conservant le fichier d’origine
• -f --force Force la compression si un fichier compressé existe déjà
• -v --verbose Affiche les informations de compression de chaque fichier
• -l --fast Compression rapide

C. Compression bzip2
La compression bzip2 permet de réduire la taille d’un ou plusieurs fichiers de manière plus efficace mais plus
lente que gzip. Après compression, l’extension .bz2 est attribuée au fichier (utile afin de reconnaître le fichier).
# bzip2 [options] [nom_fichier]
Options de la commande :
• -d --decompress Décompresser
• -k --keep Conserver le fichier d’origine lors de la compression
• -f --force Force la compression si un fichier compressé existe déjà
• -c --stdout Ecriture sur la sortie standard en conservant le fichier d’origine
• -v --verbose Affiche les informations de compression
• -1 […] 9 Précise la taille de blocks de 100k à 900k
• --fast Correspond à -1
• --best Correspond à -9

D. Décompression (gunzip, bunzip, zcat, bzcat)


La compression bzip2 permet de réduire la taille d’un ou plusieurs fichiers de manière plus efficace mais plus
lente que gzip. Après compression, l’extension .bz2 est attribuée au fichier (utile afin de reconnaître le fichier).
# gunzip [options] [nom_fichier]
Décompresser une archive .gz
# zcat [options] [nom_fichier]
Décompresser une archive .gz
# bunzip2 [options] [nom_fichier]
Décompresser une archive .bz2
# zcat [options] [nom_fichier]
Décompresser une archive .bz2

Page 29 sur 36
IX. Redirections
Il existe 3 flux d'entrée/sortie qu’il est possible de rediriger chacun de ces flux en fonction du besoin.

• 0 : flux d'entrée Par défaut : clavier Autre : fichier


• 1 : flux de sortie standard Par défaut : écran Autre : fichier
• 2 : flux d'erreur Par défaut : écran Autre : fichier

Sortie
stdout : flux 1

Entrée
Exécution de la commande
stdin : flux 0

Sortie erreur
stdout : flux 2

A. Redirection des flux


Redirection du flux d’entrée
Fournir à la commande le contenu du fichier :
# cmd < fichier

Fournir à la commande le flux d’entrée saisi au clavier et informer de la fin de saisie avec MOTCLE (il est possible
de choisir le mot clé). La commande affiche le résultat à la fin de la saisie.
# cmd << MOTCLE

Redirection du flux de sortie standard


Redirection du flux de sortie standard vers un fichier (écrasement du fichier si existant) :
# > fichier
Ou :
# 1> fichier

Redirection du flux de sortie standard vers un fichier par concaténation (ajout en fin du fichier si existant) :
# >> fichier
Ou :
# 1>> fichier

Redirection du flux de sortie d’erreur


Redirection du flux de sortie erreur vers un fichier (écrasement du fichier si existant) :
# 2> fichier

Redirection du flux de sortie erreur vers un fichier (écrasement du fichier si existant) :


# 2>> fichier

Page 30 sur 36
/dev/null
Il est possible de désigner /dev/null si l’on ne souhaite pas conserver le contenu généré en flux de sortie. Ce
chemin désigne le « trou noir » du système, ce qui y entre n’en ressort jamais…

B. Pipelines
Un « pipeline » ou « pipe » est symbolisé par le caractère « | ». Son utilisation permet de rediriger le flux de
sortie stdout d’une commande au flux d’entrée stdin d’une autre commande.
Commande 1 Commande 2

Sortie standard Entrée


stdout : flux 1 | stdin : flux 0

Il est possible d’enchainer plusieurs pipelines dans une commande, ceci permet de combiner les possibilités de
commandes différentes.
# cmd1 | cmd2 | cmd3

C. Redirection double en sortie


Rediriger le résultat d’une commande dans un fichier tout en conservant la sortie par défaut à l’écran
# cmd | tee fichier

Idem avec concaténation si le fichier existe déjà


# cmd | tee -a fichier

X. Gestion des processus


Commande 1 Commande 2
fichier
Sortie standard Entrée
stdout : flux 1 | stdin : flux 0
stdout

Un processus est l’image d’un fichier contenant du code exécutable et en cours d’exécution.

Les utilisateurs peuvent lancer plusieurs processus simultanément, en avant plan ou en arrière-plan. L’ouverture
d’une session ou l’exécution d’une commande génère un processus. Un processus peut être identifié par son
nom et son PID (Process Identifier).

A. Commande de gestion des processus


ps – Affichage du statut des processus
Cette commande permet d'afficher les processus actifs ainsi que les ressources utilisées à un instant t. Par défaut
ps affiche les informations PID, TTY, TIME et COMMAND.

Page 31 sur 36
# ps [options]
Options utiles de la commande :
• -a All users (tous les utilisateurs)
• -e Afficher l’information pour tous les processus
• -f Affichage en format long (ajoute UID, PPDI, STIME)
• -u [nomuser] Spécifier l’utilisateur
• -x Afficher les processus qui n'ont pas de terminal de contrôle pstree – Affichage du statut

des processus sous la forme d’un arbre

# pstree [options]
Options utiles de la commande :
• -u Lister par utilisateur
• -p Afficher depuis un PID top – Affichage en

temps réel des processus

Cette commande fournit une vue dynamique temps réel des processus en cours d'exécution.
# top [options]
Afficher les raccourcis de la commande : h

pgrep
Cette commande permet de rechercher ou d’envoyer un signal à des processus en fonction de leur nom ou
d'autres propriétés.
# pgrep [options]
Options utiles de la commande :
• -l En fonction du nom
• -u En fonction de l’utilisateur

kill – Interrompre un processus


Cette commande permet de demander l'arrêt d'un processus en cours d'exécution en l’identifiant par son PID.
Seul l’utilisateur propriétaire du processus (et root) peut faire une demande de terminaison du processus en
question.
# kill [-signal] PID
Valeurs de signal (15 par défaut) :
• 15 Terminaison logicielle
• 2 Interruption (équivaut à CTRL+C) • 9 Arrêt

inconditionnel time

Cette commande permet d’afficher le temps d’exécution d’un processus.

Les temps d’exécution suivants sont alors affichés :

• real Temps réel écoulé depuis le lancement de la commande


• user Temps d’exécution de la commande en mode utilisateur
• sys Temps d’exécution de la commande en mode système
# time [cmd]

Page 32 sur 36
B. Gestion des processus en arrière-plan
Lancer des processus en arrière-plan permet de conservant le contrôle sur la session en cours pendant que le
processus tourne. Il est pertinent de rediriger les flux de sortie afin de pouvoir avoir un compte rendu des sorties
standard et/ou des erreurs.

Exécuter une commande en arrière-plan


Pour exécuter une commande en arrière-plan, il faut ajouter le caractère & à la fin de la ligne de commande.
# [cmd] &

jobs - Afficher les jobs (processus en arrière-plan)


Les processus lancés en arrière-plan (background) peuvent être affichés à l’aide de la commande jobs
# jobs
Option utile de la commande :
• -l Afficher les jobs et leur PID

Informations retournées :
• [n] Numéro de job
• + Job le plus récent
• - Job précédant directement le plus récent
• PID Numéro de processus
• Etat du job En cours d’exécution / terminé

Pour arrêter un job il suffit d’utiliser la commande kill.

XI. Divers

A. Screen - Multiplexeur de terminaux


Screen permetGarder.

Screen est un multiplexeur de terminaux permettant de garder une session "ouverte" en cas de coupure de
connexion SSH et d'ouvrir plusieurs terminaux dans une console afin de pouvoir passer de l'un à l'autre puis les
récupérer plus tard.

La mise en place se fait depuis un fichier de configuration nommé .screenrc à placer dans le répertoire personnel
de l'utilisateur.

Page 33 sur 36
# Exemple de fichier de configuration .screenrdc

startup message
off deflogin on
vbell off vbell
msg " !!! "
hardstatus off
hardstatus string "%h%? users: su%?"
caption always "%(+u wk)%?%-w%?%(+b rk)/sn:&t\&(-b wK)?+?{)={+
%(yk)%d/Sm/&1%-0=%(wk)"
termcapinfo xterm tiQ:tea
bindkey -k k8 prev
bindkey -k k9 next

Sur une même session, il devient possible d’exécuter plusieurs traitements en parallèle. Contrairement à un
terminal standard, il n’est pas possible de scroller dans la console mais un raccourci clavier permet de se mettre
en mode copie et de pouvoir parcourir la fenêtre active.

Raccourcis d’utilisation de screen :


• Ctrl+a+c Créer une fenêtre
• Ctrltatk Fermer une fenêtre
• Ctrlta+" Lister les fenêtres
• F8 Fenêtre précédente (setting : bindkey -k k8 prev)
• F9 Fenêtre suivante (setting : bindkey -k k9 next)
• Ctrl+a+Echap Mode copie
• Echap Sortie du mode copie
• Ctrlta+S Découper l'écran
• Ctrl+a+Tab Se déplacer entre zone
• Ctrl+a+X Fermer la zone active

B. Gestion des variables


Les variables sont de deux sortes :

• Variables locales : accessibles exclusivement dans le shell courant


• Variables d’environnement : définies depuis un shell père et accessibles depuis n’importe quel sousshell
grace à la fonction export

Affecter une variable #


nom_var=”valeur_var”

Exporter une variable


Permet de rendre la variable disponible à tous les sous-shell.
# export var
# export var=valeur_var

Utiliser une variable


# $nom_var

Page 34 sur 36
Détruire une variable
#
unset nom_var

Visualiser les variables


# set Toutes les variables utilisateur et d’environnement
# env Toutes les variables d’environnement
# echo $var Afficher valeur d’une variable

Page 35 sur 36
Variables d’environnement principales
Le nom des variables d'environnement est en majusc.ules
• LOGNAME Nom du user de connexion
• MAIL Chemin d'accès au fichier boite aux lettres
• PATH Chemin de recherche des exécutables (séparés par des ":")
• PS1 Prompt du shell
• PS2 Prompt de continuation
• SHELL Shell de connexion
• TERM Type du terminal utilisé
• HOME Répertoire de connexion
• ~ Répertoire de connexion
• HISTCMD Dernier numéro de commande utilisé
• HISTFILE Chemin et nom du fichier de rappel
• HISTFILESIZE Taille du nombre de rappels possibles
• HISTSIZE Taille du nombre de commandes en mémoire
• HISTCONTROL Liste des options au rappel de commande
- ignoreboth : ignorer les doublons de commandes
• HISTTIMEFORMAT Horodater les commandes saisies (généralament pas présent par défaut)
On pourra par exemple pour le compte root, par mesure de sécurité, passer dans le fichier de configuration
.bashrc déclarer la variable comme ceci :

export HISTTIMEFORMAT="%Y/%m/%d @ %T"

C. Alias
Un alias est un mot auquel on peut associer une commande avec ou sans arguments. Il peut être défini en ligne
de commande (il sera valable uniquement lors de la session en cours) ou bien de manière permanente dans un
fichier d’initialisation d’environnement (.profile ou .bashrc).

Afficher les alias définis


# alias

Créer un alias #
alias ll=’ls -l’

Supprimer un alias
# unalias ll

Page 36 sur 36

Vous aimerez peut-être aussi