0% ont trouvé ce document utile (0 vote)
251 vues78 pages

NDG Linux Unhatched

Transféré par

abdoyoussouf126
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
251 vues78 pages

NDG Linux Unhatched

Transféré par

abdoyoussouf126
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Bienvenue !

Bonjour, et bienvenue dans le module NDG Linux Unhatched ! Nous sommes heureux de vous offrir
cette brève introduction au monde de Linux. Avant de commencer, nous aimerions profiter de l'occasion
pour vous expliquer l'intention et les objectifs de ce module.
Ne vous inquiétez pas si vous avez peu ou pas d'expérience Linux. Ce module est une introduction
s’adressant aux débutants qui n’ont aucune expérience ou formation sur Linux. Si vous trouvez ce
matériel utile, vous pouvez envisager de continuer avec nos cours NDG Linux Essentials ou NDG
Introduction to Linux pour aller plus loin et développer des connaissances supplémentaires. Des
informations sur ces cours sont disponibles à la fin de ce module.
Comme vous le savez peut-être déjà, Linux est présent dans un grand nombre de systèmes
informatiques. Il est présent dans les automobiles, les satellites, les montres, les téléviseurs. On le
retrouve également dans les superordinateurs. Quoique linux soit peu utilisé dans les ordinateurs de
bureau comme système d’exploitation principal, il a su faire ses preuves dans les serveurs, les objets
connectés (ou Internet des Objets (IdO)), les équipements de mise en réseau, les smartphones et de
nombreux autres appareils qui nous entourent. Depuis le routeur domestique fournissant votre
connexion Internet au serveur sur lequel ce cours est hébergé, il est probable que plusieurs autres
périphériques Linux vous permettent actuellement de lire cette page.
Nous espérons que le module NDG Linux Unhatched vous sera utile et félicitations pour vos premiers
pas dans le monde de Linux !
Pourquoi devrais-je apprendre Linux ?
Le domaine des technologies de l'information (TI) regorge d'opportunités. Pour les personnes qui
souhaitent poursuivre une carrière dans le domaine de l'informatique, l'un des plus grands défis est de
savoir par ou commencer. Souvent, acquérir de nouvelles compétences permettant de saisir de
meilleures opportunités dans la vie personnelle et professionnelle est une vraie motivation. Apprendre
une nouvelle compétence nécessite du temps et de la discipline, et la motivation est essentielle pour
réussir. Dans cette section, nous allons discuter pourquoi le temps et les efforts que vous investissez
dans l'apprentissage de Linux vous seront bénéfiques ; et rappelez-vous que tous ceux qui travaillent
dans l’informatique ont commencé quelque part.
Apprendre Linux est une excellente façon de commencer ! Pourquoi Linux est-il une compétence
importante à acquérir dans le monde technologique d'aujourd'hui ?
Qu'est-ce que Linux ?
Avant de déterminer ce qui fait de Linux un atout si important, commençons par le définir. Linux un
système d'exploitation qui s'exécute sur un système informatique matériel. Un système d'exploitation est
un logiciel qui permet d'installer et d'exécuter d'autres programmes comme des éditeurs de texte et des
navigateurs web.
Votre téléphone portable, votre tablette, votre ordinateur portable et votre ordinateur de bureau ont tous
besoin d'un système d'exploitation pour exécuter les logiciels (souvent appelés applications) que vous
utilisez. Cela signifie que Linux ne se limite pas aux ordinateurs de bureau et aux ordinateurs portables.
Nous approfondirons cette question au fur et à mesure de notre discussion.
La principale raison pour laquelle l'apprentissage de Linux est utile est que Linux est utilisé presque
partout ! Linux est utilisé sur les ordinateurs de bureau et les ordinateurs portables, les serveurs Web,
les appareils mobiles (Android), la technologie du cloud public (par ex. Google, Amazon, etc.), les
Chromebooks et l’interconnexion en réseau (c.-à-d. les réseaux Cisco). Bien que vous n'ayez jamais
utilisé Linux sur un ordinateur de bureau ou un ordinateur portable, il est probable que vous utilisiez
d'autres technologies fonctionnant sous Linux, comme un téléphone portable fonctionnant sous
Android, une tablette ou des sites Web populaires tels que Facebook, Twitter et Amazon. D’ailleurs, on
estime que les serveurs fonctionnant sous Linux génèrent plus de la moitié des pages Web sur Internet.
Qui peut utiliser Linux ?
Vous avez peut-être entendu parler de Linux et pensé que seuls des experts en informatique l'utilisent
pour la programmation, le développement, ou peut-être même le piratage ! Bien qu'il soit vrai que de
nombreux techniciens utilisent Linux, cela ne signifie pas que Linux est difficile à apprendre ou n'est pas
utile pour des débutants.
Comprendre Linux, et en particulier l'interface de ligne de commande Linux, vous aidera à mieux
comprendre l'informatique tout en vous donnant des compétences informatiques de base que vous
pourrez utiliser dans votre future carrière.
Pour comprendre pourquoi les compétences Linux sont uniques, examinons l'interface graphique
utilisateur (en anglais GUI pour graphical user interface). C'est l'interface que vous utilisez probablement
sur votre smartphone, tablette ou ordinateur aujourd'hui. Une interface graphique affiche des icônes et
des images que vous pouvez sélectionner pour indiquer à votre appareil quelle application vous désirez
utiliser ou pour accéder aux paramètres de configuration de votre appareil. Derrière l’interface graphique
se cache les programmes développés par les programmeurs. Lorsque vous cliquez sur une icône ou un
dossier dans une interface graphique, cela envoie une commande au code indiquant au système ce qu'il
faut faire.

Bien que Linux soit accessible via une interface graphique, il dispose également d'un outil plus efficace
pour effectuer les mêmes actions qu'une interface graphique, l'interface de ligne de commande (en
anglais CLI pour Command Line Interface).
La ligne de commande Linux est une interface texte qui accepte les commandes que vous
saisissez. Ces commandes génèrent l'exécution d'une action sur le système d'exploitation du système
informatique. Bien sûr, les fenêtres et les icônes sont faciles à utiliser, cependant, la ligne de commande
est championne en ce qui concerne l'administration du système et le dépannage, car elle donne une
image claire de ce que fait le système à un moment donné.
Sachant cela, pourquoi apprendre Linux est-il un bon moyen de commencer pour quelqu'un qui
envisage une carrière en l'informatique ? Comme indiqué précédemment, l'utilisation de Linux est
répandue et continue de croître dans tous les domaines de la technologie. Qu'est-ce que des
entreprises et des organisations comme la NASA, McDonald's, la bourse de New York, DreamWorks
Animation et le département américain de la Défense ont-ils tous en commun ? Oui, vous avez bien
deviné, ils utilisent tous Linux.
Ces entreprises ont autre chose en commun : elles reconnaissent que l'investissement dans la
technologie est important dans un monde soucieux d'adopter de nouvelles technologies pour innover et
résoudre des problèmes. La prolifération de la technologie dans presque tous les aspects de la vie a
résolu de nombreux problèmes, mais a également créé de nouveaux défis. Par exemple, maintenant
que presque tout peut être fait en ligne, nous créons des données numériques à un rythme rapide, ce
qui crée à son tour une demande pour ces données. Les compétences techniques nécessaires à
l'analyse, au traitement, à la protection et à la transmission des données sont donc également
très demandées. Apprendre Linux peut vous aider à acquérir ces compétences. Voici des exemples de
quelques professions qui nécessitent des connaissances du système Linux :
 Ingénierie réseau - Les ingénieurs réseau sont responsables de la gestion des ordinateurs
utilisés pour transmettre les données. La connaissance de Linux est essentielle pour les
ingénieurs réseau puisque plus de la moitié des serveurs mondiaux sont basés sur Linux. La
plupart des systèmes d'exploitation réseau sont basés sur une distribution de Linux.
 Cybersécurité - Les professionnels de la cybersécurité surveillent et enquêtent sur les menaces
à la sécurité des données sur les systèmes. Linux est utilisé dans la cybersécurité pour effectuer
des tests de pénétration des systèmes et en évaluer la vulnérabilité.
 Développement / Programmation - Les développeurs et les programmeurs conçoivent des
applications informatiques. Ces derniers utilisent les lignes de commandes Linux afin de
rassembler des commandes exécutants des actions complexes sur un ordinateur. L’emploi de
Linux comme langage de script permet aux utilisateurs d’accéder au code source et d’en faire
l’apprentissage par expérimentation.
 Analyse des données - Les analystes de données et les scientifiques trient et analysent les
ensembles de données pour trouver des modèles afin de rapporter et de prédire les tendances et
les comportements. Les analystes de données utilisent Linux en raison du large éventail d'outils
et de commandes disponibles pour l'analyse des données, tels que MySQL et d’autres encore.
Les systèmes d'exploitation Linux existent sous de nombreuses formes. Toute une variété de
distributions disponibles répondent aux besoins et aux exigences de nombreux secteurs informatiques.
Par exemple, les professionnels de la cybersécurité peuvent utiliser Linux Kali, les développeurs Linux
Ubuntu, les utilisateurs réguliers Linux Mint et les serveurs d'entreprise peuvent fonctionner sur Red Hat
Enterprise Linux.
Réfléchissez à ceci
Les compétences Linux sont nécessaires pour de nombreuses pistes de professionnels de
l'informatique. Par exemple, la connaissance des commandes Linux de base est une condition préalable
pour les programmes de certification informatique tels que la célèbre certification Cisco CCNA Cyber
Operations. Pour en savoir plus sur la façon dont Linux s'applique aux Cyber Ops CCNA, reportez-vous
à la section à la fin de ce cours intitulée Linux pour CCNA Cyber Ops.
Voici d’autres bonnes raisons d’apprendre et d’utiliser Linux : il est gratuit, facile à installer, open
source. Il existe une communauté Linux dynamique qui saura vous apporter aide et support. Elle
permet aux débutants qui veulent développer leurs compétences informatiques de commencer à utiliser
Linux facilement.
Comme vous pouvez le voir, les raisons d'apprendre et d'explorer Linux sont nombreuses !
Syntaxe des commandes de base
Ce module traite exclusivement de l'interface CLI et des lignes de commandes, plutôt que de l'interface
graphique de Linux. Le terminal CLI est un outil puissant qui est souvent la principale méthode utilisée
pour administrer de petits appareils à faible consommation d'énergie, des serveurs de cloud computing
extrêmement performants et tout ce qui se trouve entre les deux. Une compréhension de base de ce
terminal est essentielle pour diagnostiquer et réparer la plupart des systèmes Linux. Puisque Linux est
devenu si omniprésent, même ceux qui envisagent de travailler principalement avec des systèmes
n'utilisant pas le noyau Linux bénéficieront d'une compréhension de base du terminal.
Qu'est-ce qu'une commande ? Une commande est un programme logiciel qui, lorsqu'il est exécuté sur
l'interface de ligne de commande (CLI), exécute une action sur l'ordinateur. Lorsque vous tapez une
commande, un processus est exécuté par le système d'exploitation qui peut lire l'entrée, manipuler les
données et produire la sortie. Une commande exécute un processus sur le système d'exploitation, ce
qui permet à l'ordinateur d'effectuer une tâche spécifique.
Pour exécuter une commande, la première étape consiste à taper le nom de la commande. Cliquez
dans le terminal à droite. Tapez ls (lettres minuscules L et S) et appuyez sur Entrée. Le résultat devrait
ressembler à l'exemple ci-dessous :

sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

Le nom de la commande est souvent basé sur ce qu'elle fait ou ce que le développeur qui a créé la
commande pense décrira le mieux la fonction de la commande. Par exemple, la commande ls affiche
une liste des fichiers présent dans le répertoire courant. Associer le nom de la commande à quelque
chose de mnémonique décrivant ce qu'elle fait peut vous aider à mémoriser les commandes plus
facilement.
Réfléchissez à ceci
Chaque partie de la commande est normalement sensible à la casse, donc LS est incorrect et échouera,
tandis que ls est correct et s'exécutera.
sysadmin@localhost:~$ LS
-bash: /usr/games/LS: Permission denied

La plupart des commandes suivent un modèle de syntaxe simple :

commande [options…] [arguments…]

En d'autres termes, vous tapez une commande, suivie de toutes les options et/ou arguments avant
d'appuyer sur la touche Entrée. Généralement, les options modifient le comportement de la commande
et les arguments sont des éléments ou des valeurs sur lesquels la commande doit agir. Bien qu'il existe
certaines commandes sous Linux qui ne sont pas entièrement compatibles avec ce modèle, la plupart
des commandes utilisent cette syntaxe ou quelque chose de similaire.
Dans l'exemple ci-dessus, la commande ls a été exécutée sans options ni arguments. Lorsque c'est le
cas, son comportement par défaut est de renvoyer une liste de fichiers contenus dans le répertoire
courant.

sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

Arguments
commande [options…] [arguments…]

Un argument peut être utilisé pour spécifier quelque chose sur lequel la commande doit agir. La
commande ls peut recevoir le nom d'un répertoire en tant qu'argument, et afficher le contenu de ce
répertoire. Dans l'exemple suivant, le répertoire Documents sera utilisé comme argument :

sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt

La sortie qui en résulte est une liste de fichiers contenus dans le répertoire Documents.
Parce que Linux est open source, quelques secrets intéressants ont été ajoutés par les développeurs.
Par exemple, la commande aptitude est un outil de gestion de paquets disponible sur certaines
distributions Linux. Cette commande acceptera moo comme argument :

sysadmin@localhost:~$ aptitude moo


There are no Easter Eggs in this program.

Vous retrouverez plus d'information sur cette astuce dans les modules à venir.

Options
commande [options…] [arguments…]

Les options peuvent être utilisées pour modifier le comportement d'une commande. Sur la page
précédente, la commande ls a été utilisée pour lister le contenu d'un répertoire. Dans l'exemple suivant,
l'option -l est ajoutée à la commande ls, ce qui entraîne une sortie «long display» (affichage long), ce qui
signifie que la sortie donne plus d'informations sur chacun des fichiers répertoriés:

sysadmin@localhost:~$ ls -l
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos

Notez que, dans la commande ci-dessus, le -l est le « L » minuscule.


Souvent, le choix de la lettre représentant l'option est mnémonique, comme choisir la
lettre l pour long ou r pour reverse en Anglais. Par défaut, la commande ls imprime les résultats dans
l'ordre alphabétique, de sorte que l'ajout de l'option -r affichera les résultats dans l'ordre alphabétique
inverse.

sysadmin@localhost:~$ ls -r
Videos Templates Public Pictures Music Downloads Documents Desktop

Plusieurs options peuvent être utilisées simultanément, soit des options distinctes comme -l -r, soit des
options combinées comme -lr. La sortie des exemples suivants sera identique :

ls -l -r
ls -rl
ls -lr

Comme nous l'avons déjà mentionné, -l donne un format de liste long tandis que -r inverse la liste. Le
résultat de l'utilisation des deux options est une longue liste affichée dans l'ordre inverse :

sysadmin@localhost:~$ ls -l -r
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
sysadmin@localhost:~$ ls -rl
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop

En fin de compte, les commandes peuvent utiliser de nombreuses combinaisons d'options et


d'arguments. Les possibilités pour chaque commande sont uniques. Vous vous rappelez- du Easter egg
(fonction cachée) aptitude ?

sysadmin@localhost:~$ aptitude moo


There are no Easter Eggs in this program.

Il est possible de modifier le comportement de cette commande en utilisant des options. Voyez ce qui se
passe lorsque l'option -v (verbeux) est ajoutée :

sysadmin@localhost:~$ aptitude -v moo


There really are no Easter Eggs in this program.

En combinant plusieurs options -v, nous pouvons obtenir une variété de réponses:

sysadmin@localhost:~$ aptitude -vv moo


Didn't I already tell you that there are no Easter Eggs in this program ?
sysadmin@localhost:~$ aptitude -vvv moo
Stop it!

Rappelez-vous que plusieurs options peuvent être indiquées séparément ou combinées :

aptitude -v -v moo
aptitude -vv moo

Continuez à ajouter des options -v pour voir combien de réponses uniques vous pouvez obtenir !

Afficher le répertoire de travail


La commande pwd peut être utilisée pour vous situer dans le système de fichiers. La
commande pwd affiche le répertoire de travail, c'est-à-dire votre emplacement actuel dans le système
de fichiers :

pwd [OPTIONS]

Réfléchissez à ceci
N'allumez pas votre imprimante ! Aux premiers jours de l'informatique, la sortie de la ligne de commande
était envoyée aux imprimantes physiques. Cette méthode a été remplacée par des affichages à l'écran.
Nous utilisons toujours le mot imprimer (print) même si la sortie est juste affichée sur votre écran.

sysadmin@localhost:~$ pwd
/home/sysadmin

La sortie de la commande ci-dessus indique que l'utilisateur est actuellement dans son dossier
personnel, situé dans le système de fichiers ci-dessous.

Réfléchissez à ceci
Notez que nos machines virtuelles utilisent une invite qui affiche le répertoire de travail actuel dans la
couleur bleue. Dans la première invite ci-dessus, le bleu ~ est équivalent à /home/sysadmin,
représentant le répertoire personnel de l'utilisateur.
sysadmin@localhost:~$

Après s'être déplacé dans les répertoires (nous allons apprendre comment le faire dans la section
suivante), le nouvel emplacement peut également être confirmé dans la nouvelle invite, encore une fois
affichée en bleu.
sysadmin@localhost:/etc/calendar$

Déplacement dans les répertoires


Les fichiers sont utilisés pour stocker des données telles que du texte, des graphiques et des
programmes. Les répertoires sont un type de fichier utilisé pour stocker d'autres fichiers - ils fournissent
une structure organisationnelle hiérarchique. L'image ci-dessous montre une version abrégée de la
structure du système de fichiers sur les machines virtuelles.
Lorsque vous démarrez une nouvelle machine virtuelle, soit en ouvrant le cours, soit après avoir utilisé
le bouton de réinitialisation, vous êtes connecté en tant qu'utilisateur sysadmin dans votre répertoire
personnel, en bleu ci-dessous :

Pour naviguer dans la structure du système de fichiers, utilisez la commande cd (change directory) pour
changer de répertoire.

cd [options] [path]
Si vous regardez le graphique ci-dessus, vous verrez que le répertoire Documents se trouve dans votre
répertoire de travail sysadmin, où vous vous trouvez actuellement. Pour passer au
répertoire Documents, utilisez-le comme argument de la commande cd :

sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$

Les répertoires sont équivalents aux dossiers sous Windows et Mac OS. Comme ces systèmes
d'exploitation populaires, la structure d'annuaire Linux comporte un niveau supérieur. Celui-ci ne
s’appelle pas « Poste de travail », mais « répertoire root » et est représenté par le caractère /. Pour
passer au répertoire root, utilisez le caractère / comme argument de la commande cd.

sysadmin@localhost:~/Documents$ cd /
sysadmin@localhost:/$

L'argument de la commande cd est plus que le nom d'un répertoire, c'est en fait un chemin. Un chemin
est une liste de répertoires séparés par le caractère /. Par exemple, /home/sysadmin est le chemin
d'accès à votre répertoire personnel :
Si vous considérez le système de fichiers comme une carte, les chemins sont les directions étape par
étape ; ils peuvent être utilisés pour indiquer l'emplacement de n'importe quel fichier dans le système de
fichiers. Il existe deux types de chemins : absolus et relatifs. Les chemins absolus commencent à la
racine (root) du système de fichiers, les chemins relatifs commencent à partir de votre emplacement
actuel.
Chemins absolus
Un chemin absolu vous permet de spécifier l'emplacement exact d'un répertoire. Il commence toujours
au répertoire root, et commence donc toujours par le caractère /. Le chemin d'accès au répertoire
personnel /home/sysadmin est un chemin absolu. Le chemin commence à partir du répertoire root /, se
déplace dans le répertoire personnel, puis dans le répertoire sysadmin. Suivre ce chemin dans une
interface utilisateur graphique (GUI) tel que votre ordinateur personnel ressemblerait à ceci :
Utilisez ce chemin comme argument de la commande cd pour revenir dans le répertoire personnel de
l'utilisateur sysadmin.

sysadmin@localhost:/$ cd /home/sysadmin
sysadmin@localhost:~$

Aucune sortie signifie que la commande a réussi. Confirmez cela en utilisant la commande pwd :

sysadmin@localhost:~$ pwd
/home/sysadmin

Chemins relatifs
Un chemin relatif donne des directions à un fichier par rapport à votre emplacement actuel dans le
système de fichiers. Les chemins relatifs ne commencent pas par le caractère /, ils commencent par le
nom d'un répertoire. Regardez le au premier exemple de commande cd. L'argument est un exemple du
chemin relatif le plus simple : le nom d'un répertoire dans votre emplacement actuel.

sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$

L'image ci-dessous montre une carte des fichiers contenus dans le répertoire sysadmin. Vous êtes
actuellement dans le répertoire Documents et souhaitez vous déplacer vers le répertoire Art :
Un chemin relatif commence par le répertoire courant, mais vous ne l'incluez pas dans le chemin. La
première étape consisterait à se déplacer dans le répertoire School, puis à se déplacer dans le
répertoire Art. Utilisez le caractère / pour séparer les noms de répertoire. Le résultat School/Art est un
chemin relatif entre le répertoire Documents et le répertoire Art :
Utilisez le chemin relatif comme argument de la commande cd pour vous déplacer dans le répertoire Art.

sysadmin@localhost:~/Documents/$ cd School/Art
sysadmin@localhost:~/Documents/School/Art$

Utilisez la commande pwd pour confirmer la modification :

sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art

Réfléchissez à ceci
La sortie de la commande pwd est le chemin absolu vers le répertoire Art.
Réfléchissez à ceci
Dans l'exemple ci-dessus, la commande cd a suivi le chemin School/Art :

cd School/Art

Un chemin peut également être décomposé en plusieurs commandes cd. L'ensemble de commandes
suivant obtiendrait les mêmes résultats :
cd School
cd Art

Raccourcis
Le ..
Quel que soit le répertoire dans lequel vous vous trouvez, le double point .. représente toujours un
répertoire supérieur par rapport au répertoire courant, parfois appelé répertoire parent. Pour passer du
répertoire Art au répertoire School :

sysadmin@localhost:~/Documents/School/Art$ cd ..
sysadmin@localhost:~/Documents/School$

Le .
Quel que soit le répertoire dans lequel vous vous trouvez, le point . représente toujours votre répertoire
actuel. Pour la commande cd ce raccourci n'est pas très utile, mais il le sera pour les commandes
couvertes dans les sections suivantes.
Le caractère ~
Le répertoire personnel de l'utilisateur actuel est représenté par le caractère ~. Comme indiqué ci-
dessus, vous commencez toujours en tant qu'utilisateur sysadmin,qui se trouve à
l'adresse /home/sysadmin. Pour revenir à votre répertoire personnel à tout moment, exécutez la
commande suivante :

sysadmin@localhost:~/Documents/School$ cd ~
sysadmin@localhost:~$

Liste des fichiers


La commande ls est utilisée pour lister le contenu d'un répertoire. Vous l'avez déjà vu utilisée dans des
exemples précédents, mais cette page vous aidera à vous assurer que vous êtes à l'aise avec son
utilisation.

ls [OPTIONS] [FICHIER]

Par défaut, lorsque la commande ls est utilisée sans options ni arguments, elle liste les fichiers dans le
répertoire courant :

sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

Pour connaître les détails d'un fichier, tels que le type de fichier, les autorisations, les propriétés ou
l'horodatage, affichez une longue liste à l'aide de l'option -l de la commande ls. Ci-dessous, l’affichage
du contenu du répertoire /var/log est utilisée comme exemple, car il présente toute une variété de sorties
:

sysadmin@localhost:~$ ls -l /var/log/
total 844
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp

Chaque ligne correspond à un fichier contenu dans le répertoire. Les informations peuvent être ventilées
en champs séparés par des espaces. Les champs sont les suivants :
 Type de fichier

 - rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log



 d rwxr-x--- 2 root adm 4096 Dec 20 2017 apache2

Le premier champ contient dix caractères. Le premier caractère indique le type de fichier et les
neuf suivants spécifient les autorisations. Les types de fichiers sont les suivants :

Symbole Type de fichier Description

d répertoire Un fichier utilisé pour stocker d'autres


fichiers.
Symbole Type de fichier Description

- fichier Inclut des fichiers lisibles, des fichiers


images, des fichiers binaires et des fichiers
compressés.

l lien symbolique Pointe vers un autre fichier.

s prise (socket) Permet la communication entre les


processus.

p tuyau (pipe) Permet la communication entre les


processus.

b fichier bloc (block file) Utilisé pour communiquer avec le matériel.

c fichier de caractères Utilisé pour communiquer avec le matériel.


(character file)

Le premier fichier alternatives.log est un fichier normal -, tandis que le second fichier apache2 est
un répertoire d.
Permissions

d rwxr-xr-x 2 root root 4096 Apr 11 2014 upstart

Les permissions indiquent comment certains utilisateurs peuvent accéder à un fichier. Continuez
à lire pour en savoir plus sur les permissions.
 Nombre de liens physiques

-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log

Ce nombre indique le nombre de liens physiques pointant vers ce fichier. Les liens physiques
dépassent le cadre de ce module, mais sont couverts par le cours NDG Linux Essentials.
 Propriétaire du fichier

-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log

L'utilisateur syslog possède ce fichier. Chaque fois qu'un fichier est créé, la propriété est
automatiquement attribuée à l'utilisateur qui l'a créé.
 Groupe propriétaire
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog

Indique quel groupe est propriétaire du fichier.


 Taille du fichier

-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog

Les répertoires et les fichiers plus volumineux peuvent être affichés en kilo-octets car leur taille
en octets nécessiterait d’afficher un nombre trop élevé. Par conséquent, dans le cas d'un
répertoire, il peut s'agir d'un multiple de la taille de bloc utilisée pour le système de fichiers. La
taille du bloc est la taille d'une série de données stockées dans le système de fichiers.
 Horodatage

drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck

Il s’agit de l'heure à laquelle le contenu du fichier a été modifié pour la dernière fois.
 Nom du fichier

-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log

Le dernier champ contient le nom du fichier ou du répertoire.


Réfléchissez à ceci
Dans le cas de liens symboliques (un fichier qui pointe vers un autre fichier) le nom du lien sera
affiché avec une flèche et le chemin du fichier d'origine.

lrwxrwxrwx. 1 root root 22 Nov 6 2012 /etc/grub.conf -> ../boot/grub/grub.conf

Les liens symboliques dépassent le champ d'application de ce module, mais sont abordés dans
le cours NDG Linux Essentials.
Tri
Par défaut, la sortie de la commande ls est affichée par ordre alphabétique sur le nom de fichier. Le tri
peut aussi être fait selon d'autres méthodes.
Poursuivons
Les options dans les exemples ci-dessous seront combinées avec l'option -l afin que les détails
pertinents des fichiers soient affichés. Notez les champs correspondant à l'option de recherche.
L'option -t trie les fichiers par horodatage ou plus simplement selon la date de la dernière modification
du fichier :

sysadmin@localhost:~$ ls -lt /var/log


total 844
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart

L'option -S trie les fichiers selon la taille de fichier :

sysadmin@localhost:~$ ls -l -S /var/log
total 844
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp

L'option -r inverse l'ordre de tout type de tri. Notez la différence lorsqu'elle est ajoutée à l'exemple
précédent:

sysadmin@localhost:~$ ls -lSr /var/log


total 844
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
-rw-r----- 1 syslog adm 654 Oct 2 23:17 cron.log
-rw-r----- 1 syslog adm 1669 Oct 2 23:17 auth.log
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
-rw-r----- 1 syslog adm 19680 Oct 2 23:17 syslog
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log

Les nombres dans le champ de taille du fichier passent de la valeur descendante à la valeur
ascendante.
Utilisée seule, l'option -r affiche la liste des fichiers dans l'ordre alphabétique inverse :

sysadmin@localhost:~$ ls -r /var/log
wtmp lastlog faillog cron.log auth.log alternatives.log
upstart kern.log dpkg.log btmp apt
syslog fsck dmesg bootstrap.log apache2
Accès administratif
Il existe de nombreuses commandes Linux qui traitent des informations sensibles comme les mots de
passe, les configurations système ou toutes autres commandes qui s'avèrent utiles dans des cas
d'exception. Empêcher les utilisateurs standards d'exécuter ces commandes aide à protéger le système.
Se connecter en tant qu'utilisateur root fournit un accès administratif privilégié, permettant l'exécution de
certaines des commandes privilégiées.

La commande su
su OPTIONS NOM_D'UTILISATEUR

La commande su vous permet d'agir temporairement en tant que super utilisateur. Elle le fait en créant
un nouveau shell. Le shell est simplement une console de saisie de texte qui vous permet de taper des
commandes. Par défaut, si un compte utilisateur n'est pas spécifié, la commande su ouvrira un nouvel
interpréteur de commandes en tant qu'administrateur système (root) et fournit des privilèges
d'administration.
Poursuivons
Il est recommandé d'utiliser l'option de shell de connexion, car le shell de connexion ouvre le nouvel
interpréteur de commandes avec les paramètres du nouvel utilisateur. Cette option peut être spécifiée
de l'une des trois façons suivantes :
su -
su -l
su --login

Après l'exécution de la commande su, un mot de passe est requis. Sur nos machines virtuelles, le mot
de passe pour les comptes root et sysadmin est netlab123. Si jamais vous l'oubliez, il s'affiche à chaque
démarrage d'une nouvelle machine virtuelle. À titre de mesure de sécurité, le mot de passe ne sera pas
visible lors de sa saisie.

sysadmin@localhost:~$ su -
Password:
root@localhost:~#

Notez que l'invite de commandes a été modifiée pour refléter que vous êtes maintenant connecté en
tant qu'utilisateur root. Pour vous déconnecter et revenir au compte sysadmin, utilisez la
commande exit. Notez que l'invite de commande retourne à un utilisateur normal :

root@localhost:~# exit
logout
sysadmin@localhost:~$
Pour éviter d'exécuter des commandes sensibles, nous avons configuré la commande Steam
Locomotive (sl), pour exiger un accès administratif. Si la commande est exécutée en tant que sysadmin,
elle échoue :

sysadmin@localhost:~$ sl
-bash: /usr/bin/sl: Permission denied

Utilisez la commande su pour basculer vers le compte de l'administrateur du système et exécuter la


commande sl avec un accès d'administrateur :

sysadmin@localhost:~$ su -
Password:
root@localhost:~# sl
(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )

(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/ \_/

Utilisez à nouveau la commande exit pour revenir au compte sysadmin.

root@localhost:~# exit
logout
sysadmin@localhost:~$

La commande sudo
sudo [OPTIONS] COMMANDE

La commande sudo permet à un utilisateur d'exécuter une commande en tant qu'autre utilisateur sans
créer de nouveau shell. Pour exécuter une commande avec des privilèges d'administration, utilisez-la
comme argument de la commande sudo. Comme la commande su, la commande sudo suppose par
défaut que le compte utilisateur root doit être utilisé pour exécuter des commandes.
Réfléchissez à ceci
La commande sudo peut également être utilisée pour basculer vers d'autres comptes utilisateur. Pour
spécifier un compte utilisateur différent, utilisez l'option -u.
Exécutez la commande sl en tant qu'administrateur du système (root) en plaçant sudo avant :
Veuillez noter:
Rappelez-vous que le mot de passe est netlab123. L'invite pour le mot de passe n'apparaîtra pas tant
que l'utilisateur continue d'exécuter des commandes sudo à moins de cinq minutes d'intervalle.

sysadmin@localhost:~$ sudo sl
[sudo] password for sysadmin:

(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )

(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/ \_/

Une fois la commande terminée, notez que l'invite n'a pas changé, vous êtes toujours connecté en tant
que sysadmin. La commande sudo fournit uniquement un accès administratif pour l'exécution de la
commande spécifiée. C'est un avantage car il réduit le risque qu'un utilisateur exécute accidentellement
une commande en tant que root. L'intention d'exécuter une commande est claire ; la commande est
exécutée en tant que root si elle est préfixée par la commande sudo. Sinon, la commande est exécutée
en tant qu'utilisateur normal.
Permissions
Les permissions déterminent la façon dont différents utilisateurs peuvent interagir avec un fichier ou un
répertoire. Lorsque vous listez les fichiers avec la commande ls -l, la sortie contient des informations de
permissions. Pour l'exemple, nous allons utiliser un script appelé hello.sh situé dans le
répertoire Documents :
Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Vous trouverez ci-dessous les champs pertinents aux permissions.

Champ - Type de fichier

- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Le premier caractère de cette sortie indique le type d'un fichier. Rappelons que si le premier caractère
est un -, il s'agit d'un fichier standard. Si le caractère est un d, il s’agit d’un répertoire.

Champ - Permissions

- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Après le caractère de type de fichier, les autorisations sont affichées. Les autorisations sont divisées en
trois ensembles de trois caractères :

 Propriétaire

- rw- r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Le premier ensemble est destiné à l'utilisateur propriétaire du fichier. Si votre compte actuel est le
propriétaire du fichier, le premier ensemble des trois permissions s'appliquera et les autres
permissions n'auront aucun effet.
L'utilisateur propriétaire du fichier, et donc celui à qui ces permissions s'appliquent, peut être
déterminé par le champ Propriétaire de l'utilisateur:

-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

 Groupe
-rw- r-- r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Le deuxième ensemble est pour le groupe propriétaire du fichier. Si votre compte actuel n'est
pas le propriétaire utilisateur du fichier et que vous êtes membre du groupe propriétaire du fichier,
ces permissions de groupe s'appliqueront et les autres permissions n'ont aucun effet.
Le groupe de ce fichier est déterminé par le champ propriétaire du groupe :

-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

 Autre

-rw-r-- r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Le dernier ensemble est pour tous les autres, tous ceux auxquels les deux premiers ensembles
de permissions ne s'appliquent pas. Si vous n'êtes pas l'utilisateur propriétaire du fichier ou un
membre du groupe qui le possède, le troisième ensemble de permissions s'applique à vous.

Types de permissions
Il existe trois permissions différentes s’appliquant à un fichier ou un répertoire : lire (read), écrire
(write) et exécuter (execute). La manière dont ces permissions s'appliquent diffère pour les fichiers et
les répertoires, comme indiqué dans le tableau ci-dessous :

Permission Effets sur le fichier Effets sur le dossier

lire (r) (read) Permet de lire le contenu du fichier Sans le droit d'exécution sur le dossier, ne
et de le copier. permet pas d'obtenir une liste détaillée du
contenu du dossier. Avec le droit
d'exécution, ls -l affiche une liste détaillée.

écrire (w) Permet de modifier ou de réécrire le La permission ne fonctionne que si le dossier


(write) contenu du fichier. Permet d’ajouter possède le droit d'exécution.
et de retirer des fichiers d'un
répertoire.

exécuter (x) Permet d'exécuter le script contenu Permet à l'utilisateur de modifier le dossier
(execute) dans un fichier. Ce fichier doit uniquement si le dossier parent possède le
également avoir le droit de lecture. droit d'écriture.

Réfléchissez à ceci
Comprendre le fonctionnement des permissions et leurs applications est une compétence importante
dans Linux. Par exemple, prenez l'ensemble de permissions suivant :
-r--rw-rwx. 1 sysadmin staff 999 avr. 10 2013 /home/sysadmin/test
Dans ce scénario, l'utilisateur sysadmin a moins d'accès à ce fichier que les membres du
groupe staff (employés) ou tous les autres utilisateurs. L'utilisateur sysadmin n'a que les permissions r--.
Peu importe si sysadmin est membre du groupe staff; une fois que la propriété utilisateur a été établie,
seules les autorisations du propriétaire de l'utilisateur s'appliquent.

Modification des permissions de fichier


La commande chmod est utilisée pour modifier les autorisations d'un fichier ou d'un répertoire. Seul
l'administrateur du système (root) ou l'utilisateur propriétaire du fichier peut modifier les autorisations
d'un fichier.
Considérez ceci
Pourquoi la commande s’appelle-t-elle chmod et non pas chperm? Les autorisations étaient auparavant
appelées modes d'accès, donc la commande chmod signifie changer les modes d'accès.
Il existe deux techniques pour modifier les autorisations avec la commande chmod: symbolique et octal.
La méthode symbolique permet de changer un ensemble d'autorisations à la fois. La méthode octale ou
numérique nécessite la connaissance de la valeur octale de chacune des autorisations et exige que les
trois ensembles d'autorisations (utilisateur, groupe, autre) soient spécifiés à chaque fois. Par souci de
simplicité, seule la méthode symbolique sera couverte. Pour en savoir plus sur la méthode octale,
veuillez consulter NDG Linux Essentials !
Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents:
sysadmin@localhost:~$ cd ~/Documents

La méthode symbolique
chmod [<SET><ACTION><PERMISSIONS>]... FICHIER

Pour utiliser la méthode symbolique de chmod, indiquez d'abord quel ensemble (set) de permissions est
modifié :

chmod [ <SET> <ACTION><PERMISSIONS>]... FICHIER

Symbole Signification

u Utilisateur : le propriétaire du fichier.

g Groupe : le groupe propriétaire du fichier.

o Autre (others) : tout autre utilisateur qui n'appartient pas aux deux premiers groupes.

a Tous (all) : se réfère à l'ensemble des utilisateurs.


Ensuite, spécifiez un symbole d'action :

chmod [<SET> <ACTION> <PERMISSIONS>]... FICHIER

Symbole Signification

+ Ajouter le droit

= Affecter le droit

- Supprimer le droit

Après le symbole d'action, spécifiez une ou plusieurs permissions à appliquer.

chmod [<SET><ACTION> <PERMISSIONS> ]... FICHIER

Symbole Signification

r lire (read)

w écrire write

x exécuter (execute)

Enfin, ajoutez un espace et les chemins d'accès des fichiers auxquels attribuer ces autorisations.

chmod [<SET><ACTION><PERMISSIONS>]... FICHIER

Le fichier hello.sh utilisé dans les exemples de la page précédente est un script. Un script est un fichier
qui peut être exécuté, comme une commande :

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Toutefois, l'autorisation d'exécution n'est définie pour aucun des groupes de permissions :

-rw - r- - r- - 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

La tentative d'exécution de ce script à l'aide de la syntaxe suivante échoue :

sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied

Étant donné que le système est actuellement connecté en tant qu'utilisateur sysadmin et
que sysadmin est le propriétaire du fichier, donner au propriétaire de l'utilisateur l'autorisation
d'exécution devrait vous permettre d'exécuter ce script. En utilisant la commande chmod avec le
caractère u pour représenter le jeu d'autorisations de l’utilisateur propriétaire, le caractère + pour
indiquer qu’une autorisation est ajoutée et le caractère x pour représenter l'autorisation d'exécution, la
commande doit être exécutée comme suit :

sysadmin@localhost:~/Documents$ chmod u+x hello.sh

Aucune sortie n'indique que la commande a réussi. Confirmez en vérifiant les autorisations à l'aide de la
commande ls -l :

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

L’utilisateur propriétaire dispose désormais de l'autorisation d'exécution :

-rw x r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh

Pour finir, essayez d'exécuter à nouveau le script. Utilisez la syntaxe de commande illustrée ci-dessous :

./hello.sh
sysadmin@localhost:~/Documents$ ./hello.sh
______________
( Hello World! )
--------------
\
\
<(^)
()

Réfléchissez à ceci
Notez que pour exécuter le script dans l'exemple précédent il faut ajouter ./ avant le nom du script.

./ hello.sh

Cela indique que la «commande» doit être exécutée à partir du répertoire courant.
Modification de la propriété des fichiers
Initialement, le propriétaire d'un fichier est l'utilisateur qui le crée. La commande chown est utilisée pour
modifier la propriété des fichiers et des répertoires. La modification du propriétaire d’un fichier nécessite
un accès administratif. Un utilisateur normal ne peut pas utiliser cette commande pour changer le
propriétaire d'un fichier, même si c’est pour donner la propriété d'un de ses propres fichiers à un autre
utilisateur. Cependant, la commande chown permet de changer la propriété du groupe, et peut être
accompli par l'administrateur du système (root) ou par le propriétaire du fichier.
Pour changer le propriétaire d'un fichier, la syntaxe suivante peut être utilisée. Le premier
argument, [PROPRIÉTAIRE], spécifie quel utilisateur doit être le nouveau propriétaire. Le deuxième
argument, FICHIER, spécifie le fichier dont la propriété est en cours de modification.

chown [OPTIONS] [PROPRIÉTAIRE] FICHIER

Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents

Actuellement, tous les fichiers du répertoire Documents appartiennent à l'utilisateur sysadmin. Cela peut
être vérifié à l'aide de la commande ls -l. Rappelons que la troisième colonne indique le propriétaire de
l'utilisateur.

sysadmin@localhost:~/Documents$ ls -l
total 144
drwx------ 5 sysadmin sysadmin 4096 Dec 20 2017 School
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Work
-rw-r--r-- 1 sysadmin sysadmin 39 Dec 20 2017 adjectives.txt
-rw-r--r-- 1 sysadmin sysadmin 90 Dec 20 2017 alpha-first.txt
-rw-r--r-- 1 sysadmin sysadmin 106 Dec 20 2017 alpha-second.txt
-rw-r--r-- 1 sysadmin sysadmin 195 Dec 20 2017 alpha-third.txt
-rw-r--r-- 1 sysadmin sysadmin 390 Dec 20 2017 alpha.txt
-rw-r--r-- 1 sysadmin sysadmin 42 Dec 20 2017 animals.txt
-rw-r--r-- 1 sysadmin sysadmin 14 Dec 20 2017 food.txt
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
-rw-r--r-- 1 sysadmin sysadmin 67 Dec 20 2017 hidden.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 letters.txt
-rw-r--r-- 1 sysadmin sysadmin 83 Dec 20 2017 linux.txt
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20 2017 longfile.txt
-rw-r--r-- 1 sysadmin sysadmin 235 Dec 20 2017 newhome.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 numbers.txt
-rw-r--r-- 1 sysadmin sysadmin 77 Dec 20 2017 os.csv
-rw-r--r-- 1 sysadmin sysadmin 59 Dec 20 2017 people.csv
-rw-r--r-- 1 sysadmin sysadmin 110 Dec 20 2017 profile.txt
-rw-r--r-- 1 sysadmin sysadmin 51 Dec 20 2017 red.txt

Pour modifier la propriété du script hello.sh et la passer à l'utilisateur root, utilisez root comme premier
argument et hello.sh comme second argument. N'oubliez pas d'utiliser la commande sudo pour obtenir
les privilèges administratifs nécessaires. Utilisez le mot de passe netlab123 lorsque vous y êtes invité :

sysadmin@localhost:~/Documents$ sudo chown root hello.sh


[sudo] password for sysadmin:

Valider le changement de propriétaire en exécutant la commande ls -l. Utilisez le nom de fichier comme
argument pour limiter la sortie :

sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh

Le champ propriétaire de l'utilisateur est maintenant root indiquant que la modification a réussi.

-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh

Réfléchissez à ceci
Essayez d'exécuter à nouveau le script hello.sh. Cela échoue ! Pourquoi ?
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied

Seul le propriétaire du fichier dispose de l'autorisation d'exécution, et maintenant l'utilisateur root est le
propriétaire. Ce fichier nécessite désormais un accès administratif pour s'exécuter. Utilisez la
commande sudo pour exécuter le script en tant qu'utilisateur root.
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:
______________

( Hello World! )

--------------
\

<(^)

()

Affichage des fichiers


Quelques commandes Linux permettent d’afficher le contenu des fichiers. La commande cat, qui signifie
« concaténer », est souvent utilisée pour visualiser rapidement le contenu des petits fichiers.
La commande cat affichera tout le contenu du fichier, c’est pourquoi elle est principalement
recommandée pour les fichiers plus petits où la sortie est limitée et ne nécessite pas de défilement. Pour
afficher le contenu d'un fichier à l'aide de la commande cat, tapez simplement la commande suivi du
nom du fichier que vous souhaitez voir comme argument :

cat [OPTIONS] [FICHIER]

Notre VM a quelques petits fichiers texte que vous pouvez afficher avec la commande cat. L'un de ces
fichiers est le fichier animals.txt :
Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ cat animals.txt
1 retriever
2 badger
3 bat
4 wolf
5 eagle

La commande cat affiche les cinq lignes du fichier ci-dessus. Lorsque vous affichez des fichiers plus
volumineux, la commande cat peut entraîner une sortie très longue qui ne peut pas être interrompue
pour défiler dedans. Une meilleure méthode pour afficher les longs fichiers texte est d’utiliser une
commande page par page avec une fonctionnalité permettant de faire une pause et de faire défiler la
sortie du fichier.
Veuillez noter :
Les deux commandes more et less permettent de consulter un fichier page par page. Nous aborderons
ces deux commandes, et bien d'autres encore sur l’affichage de fichiers, dans la formation NDG Linux
Essentials.
Une autre façon d'afficher le contenu des fichiers est d'utiliser les commandes head et tail. Ces
commandes permettent d'afficher un certain nombre de lignes en haut ou en bas d'un fichier. Jeter un
oeil à quelques lignes d'un fichier peut parfois être utile pour vous assurer que le fichier est bien celui
que vous voulez utiliser.
Une autre raison pour ne prévisualiser que la première ou la dernière ligne d’un fichier, est que certains
fichiers, tels que les fichiers journaux système, sont fréquemment mis à jour avec de nouvelles entrées.
Tout comme la commande cat, les commandes head et tail utilisent le nom du fichier que vous
souhaitez afficher comme argument de la commande :

head [OPTIONS] [FICHIER]


tail [OPTIONS] [FICHIER]

Pour comparer la sortie des commandes head et tail avec celle de la commande cat, utilisez la
commande cat pour afficher l'ensemble du fichier alpha.txt :

sysadmin@localhost:~/Documents$ cat alpha.txt


A is for Apple
B is for Bear
C is for Cat
D is for Dog
E is for Elephant
F is for Flower
G is for Grapes
H is for Happy
I is for Ink
J is for Juice
K is for Kangaroo
L is for Lol
M is for Monkey
N is for Nickel
O is for Oval
P is for Pickle
Q is for Quark
R is for Rat
S is for Sloth
T is for Turnip
U is for Up
V is for Velvet
W is for Walrus
X is for Xenon
Y is for Yellow
Z is for Zebra
sysadmin@localhost:~/Documents$

Dans l'exemple ci-dessus, les vingt-six lignes du fichier sont affichées.


Pour filtrer les lignes de sortie et d'affichage à partir du haut du fichier alpha.txt, utilisez la
commande head :

sysadmin@localhost:~/Documents$ head alpha.txt


A is for Apple
B is for Bear
C is for Cat
D is for Dog
E is for Elephant
F is for Flower
G is for Grapes
H is for Happy
I is for Ink
J is for Juice

Pour afficher les lignes en bas du fichier alpha.txt, utilisez la commande tail :

sysadmin@localhost:~/Documents$ tail alpha.txt


Q is for Quark
R is for Rat
S is for Sloth
T is for Turnip
U is for Up
V is for Velvet
W is for Walrus
X is for Xenon
Y is for Yellow
Z is for Zebra

En examinant la sortie des commandes head et tail ci-dessus, vous pouvez voir que le comportement
par défaut des commandes head and tail dans ce shell est d'afficher dix lignes.
L'option -n avec les commandes head et tail peut être utilisée pour spécifier le nombre de lignes à
afficher. Pour utiliser l'option -n, spécifiez le nombre de lignes du fichier à afficher après l'option et
utilisez le nom de fichier comme argument :

head -n nombre_de_lignes nom_de_fichier

Par exemple, pour modifier la sortie de la commande head pour afficher les cinq premières lignes du
fichier alpha.txt :

sysadmin@localhost:~/Documents$ head -n 5 alpha.txt


A is for Apple
B is for Bear
C is for Cat
D is for Dog
E is for Elephant

Affichez les cinq dernières lignes du fichier alpha.txt :

sysadmin@localhost:~/Documents$ tail -n 5 alpha.txt


V is for Velvet
W is for Walrus
X is for Xenon
Y is for Yellow
Z is for Zebra
sysadmin@localhost:~/Documents$
Copie de fichiers
La création de copies de fichiers peut être utile pour de nombreuses raisons:
 Si une copie d'un fichier est créée avant que les modifications ne soient apportées, il est possible
de revenir à l'original.
 Une copie d'un fichier peut être utilisée pour transférer un fichier sur un support amovible.
 Une copie d'un document existant peut servir de modèle pour un nouveau document.

cp [OPTIONS] SOURCE DESTINATION

Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents

La commande cp est utilisée pour copier des fichiers. Similaire à la commande mv, elle nécessite au
moins deux arguments : une source et une destination. Par exemple, pour copier le
fichier /etc/passwd dans le répertoire courant, utilisez la commande suivante :

sysadmin@localhost:~/Documents$ cp /etc/passwd .

Veuillez noter :
Le deuxième argument est le . (caractère point). Rappel de la section Modification des répertoires : c’est
un raccourci représentant le répertoire courant.
Le résultat de l'exécution de la commande précédente crée une copie du contenu du
fichier /etc/passwd dans le répertoire Documents, puisque c'est notre répertoire courant. Cela peut être
confirmé en utilisant la commande ls :

sysadmin@localhost:~/Documents$ ls
School alpha-third.txt hidden.txt numbers.txt red.txt
Work alpha.txt letters.txt os.csv
adjectives.txt animals.txt linux.txt passwd
alpha-first.txt food.txt longfile.txt people.csv
alpha-second.txt hello.sh newhome.txt profile.txt

Réfléchissez à ceci
Les autorisations peuvent avoir un impact sur les commandes de gestion de fichiers, telles que la
commande cp. Pour copier un fichier, il est nécessaire d'avoir l'autorisation d'exécution pour accéder au
répertoire où se trouve le fichier et l'autorisation de lecture pour le fichier en cours de copie.
Il est également nécessaire d'avoir l'autorisation d'écriture et d'exécution sur le répertoire dans lequel le
fichier est copié. En règle générale, vous devez toujours avoir l'autorisation d'écriture et d'exécution sur
votre répertoire personnel et sur le répertoire /tmp.

1.2 Copie de fichiers


La commande dd permet de copier des fichiers ou des partitions entières au niveau du bit.

dd [OPTIONS] OPERAND

Cette commande a plusieurs fonctionnalités utiles, notamment :


 Elle peut être utilisée pour cloner ou supprimer (effacer) des disques ou des partitions
entières.
 Elle peut être utilisée pour copier des données brutes sur des périphériques amovibles,
tels que des clés USB et des CD-ROMs.
 Elle peut sauvegarder et restaurer le MBR (Master Boot Record).
 Elle peut être utilisée pour créer un fichier d'une taille spécifique, rempli de zéros binaires,
qui peut ensuite être utilisé comme un fichier swap (mémoire virtuelle).
Examinons l'exemple suivant. La commande dd crée un fichier nommé /tmp/swapex avec 50 blocs de
zéros d'une taille d'un mégaoctet :
Poursuivons
Utilisez la commande cd suivante pour revenir au répertoire personnel :
sysadmin@localhost:~/Documents$ cd ~
sysadmin@localhost:~$ dd if=/dev/zero of=/tmp/swapex bs=1M count=50
50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.825745 s, 635 MB/s

La commande dd utilise des arguments spéciaux pour spécifier le fonctionnement. Ce qui suit illustre
certains des arguments les plus couramment utilisés :

Argumen
t Description

if Fichier d'entrée : fichier d'entrée à partir duquel lire.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50


Argumen
t Description

L'exemple lit à partir du fichier /dev/zero, un fichier spécial contenant un nombre illimité
de zéros.

of Fichier de sortie : fichier de sortie à écrire.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

bs Taille du bloc : Taille du bloc à utiliser. Par défaut, la valeur est considérée comme
étant exprimée en octets. Utilisez les suffixes suivants pour spécifier d'autres
unités: K, M, Get T respectivement pour les kilo-octets, mégaoctets, gigaoctets et
téraoctets.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

L'exemple utilise une taille de bloc en mégaoctet.

count Nombre : Nombre de blocs à lire à partir du fichier d'entrée.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

L'exemple de commande lit 50 blocs.

Réfléchissez à ceci
Il n'est pas nécessaire de spécifier la taille ou le nombre de blocs lors de la copie sur des périphériques
entiers. Par exemple, pour cloner un disque dur (/dev/sda) vers un autre (/dev/sdb), exécutez la
commande suivante :
dd if=/dev/sda of=/dev/sdb
Déplacement de fichiers
La commande mv permet de déplacer un fichier d'un emplacement dans le système de fichiers à un
autre.

mv SOURCE DESTINATION

La commande mv nécessite au moins deux arguments. Le premier argument est la source, un chemin
d'accès au fichier à déplacer. Le deuxième argument est la destination, un chemin vers lequel le fichier
sera déplacé. Les fichiers à déplacer sont parfois appelés source, et l'endroit où les fichiers doivent être
placés est appelé destination.
Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents

Pour déplacer le fichier people.csv dans le répertoire Work, utilisez le nom de fichier comme source et le
nom du répertoire comme destination :

sysadmin@localhost:~/Documents$ mv people.csv Work

Si un fichier est déplacé d'un répertoire à un autre sans spécifier de nouveau nom pour le fichier, il
conserve son nom d'origine. Le déplacement ci-dessus peut être confirmé à l'aide de la
commande ls sur le répertoire Work :

sysadmin@localhost:~/Documents$ ls Work
people.csv

La commande mv permet aussi de déplacer plusieurs fichiers, tant que l'argument final fourni à la
commande est la destination. Par exemple, pour déplacer trois fichiers dans le répertoire School :

sysadmin@localhost:~/Documents$ mv numbers.txt letters.txt alpha.txt School


sysadmin@localhost:~/Documents$ ls School
Art Engineering Math alpha.txt letters.txt numbers.txt

Déplacer un fichier dans le même répertoire est un moyen efficace de le renommer. Par exemple, dans
l'exemple suivant, le fichier animals.txt est renommé en zoo.txt :
mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt hello.sh newhome.txt red.txt
Work alpha-third.txt hidden.txt os.csv
adjectives.txt animals.txt linux.txt passwd
alpha-first.txt food.txt longfile.txt profile.txt
sysadmin@localhost:~/Documents$ mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt hidden.txt os.csv zoo.txt
Work alpha-third.txt linux.txt passwd
adjectives.txt food.txt longfile.txt profile.txt
alpha-first.txt hello.sh newhome.txt red.txt

Réfléchissez à ceci
Les autorisations peuvent avoir un impact sur les commandes de gestion de fichiers, telles que la
commande mv. Le déplacement d'un fichier nécessite des autorisations d'écriture et d'exécution sur les
répertoires d'origine et de destination.
Suppression de fichiers
La commande rm permet de supprimer des fichiers et des répertoires. Il est important de garder à
l'esprit que les fichiers et répertoires supprimés ne vont pas dans une « corbeille » comme dans les
systèmes d'exploitation avec une interface de type Windows. Lorsqu'un fichier est supprimé avec la
commande rm, il est presque toujours supprimé de manière définitive.

rm [OPTIONS] FICHIER

Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents

Sans options, la commande rm est généralement utilisée pour supprimer des fichiers normaux :

sysadmin@localhost:~/Documents$ rm linux.txt
sysadmin@localhost:~/Documents$ ls linux.txt
ls: cannot access linux.txt: No such file or directory

La commande rm ignore les répertoires qu'on lui demande de supprimer ; pour supprimer un répertoire,
utilisez une option récursive, soit les options -r ou -R. Soyez prudent puisque ces options sont «
récursives », cela supprimera tous les fichiers et tous les sous-répertoires :

sysadmin@localhost:~/Documents$ rm Work
rm: cannot remove 'Work': Is a directory
sysadmin@localhost:~/Documents$ rm -r Work
sysadmin@localhost:~/Documents$ ls Work
ls: cannot access Work: No such file or directory

Avertissement
La commande rm supprime les fichiers de manière définitive. Pour répéter les exemples ci-dessus,
réinitialisez le terminal à l'aide du bouton de réinitialisation.
Réfléchissez à ceci
Les autorisations peuvent avoir un impact sur les commandes de gestion de fichiers, telles que la
commande rm.
Pour supprimer un fichier dans un répertoire, un utilisateur doit disposer de l'autorisation d'écriture et
d'exécution sur ce répertoire. Les utilisateurs standards ne disposent généralement de ce type
d'autorisation que dans leur répertoire personnel et ses sous-répertoires.

Filtrage d'entrée
La commande grep est un filtre de texte qui recherche les entrées et renvoie les lignes qui contiennent
une correspondance avec un motif donné.

grep [OPTIONS] MOTIF [FICHIER]

Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents

Si l'exemple ci-dessous échoue, répétez l'exemple de la section 11 - Copie de fichier :


sysadmin@localhost:~/Documents$ cp /etc/passwd .

Par exemple, le fichier passwd que nous avons copié précédemment dans le
répertoire Documents contient les détails des comptes système spéciaux et des comptes utilisateur sur
le système. Ce fichier peut être très volumineux, mais la commande grep peut être utilisée pour filtrer les
informations sur un utilisateur spécifique, tel que l'utilisateur sysadmin. Utilisez sysadmin comme
argument du motif et passwd comme argument fichier:

sysadmin@localhost:~/Documents$ grep sysadmin passwd


sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin:/bin/bash

La commande ci-dessus a renvoyé la ligne du passwd qui contient le motif sysadmin.


Veuillez noter :
Cette ligne est l'entrée /etc/passwd relative à l'utilisateur sysadmin et fournit des informations qui
dépassent le cadre de ce cours. Pour en savoir plus, consultez NDG Linux Essentials.
L'exemple ci-dessus utilise un terme de recherche simple comme motif, mais grep est capable
d'interpréter des motifs de recherche beaucoup plus complexes.

Expressions régulières
Les expressions régulières ont deux formes communes : basique et étendue. La plupart des
commandes qui utilisent des expressions régulières peuvent interpréter les expressions régulières
basiques. Cependant, les expressions régulières étendues ne sont pas disponibles pour toutes les
commandes et une option de commande est généralement requise pour qu'elles fonctionnent
correctement.
Le tableau suivant résume les caractères d'expression régulière basiques :

Caractères regex basiques Signification

. Un seul caractère

[] N'importe quel caractère spécifié

[^ ] Pas le caractère spécifié

* Zéro ou plus du caractère précédent

^ Si premier caractère du motif, le motif doit être au début de la ligne


pour correspondre, sinon cela correspond à un caractère
caret ^ littéral.

$ Si dernier caractère du motif, le motif doit être à la fin de la ligne pour


correspondre, sinon cela correspond à un signe dollar $ littéral.

Le tableau suivant résume les expressions régulières étendues, qui doivent être utilisées avec la
commande egrep ou l'option -E avec la commande grep :

Caractères regex
étendus Signification

+ Un ou plusieurs du motif précédent

? Le motif précédent est optionnel

{} Spécifier correspondances minimum, maximum ou exactes du motif


précédent

| Alternance - un "ou" logique


Caractères regex
étendus Signification

() Utilisé pour créer des groupes

Seules les expressions régulières basiques ont été couvertes ici. Pour plus d'informations sur les
expressions régulières étendues, consultez les cours NDG Linux Essentials et NDG Introduction to
Linux.

Motifs basiques
Les expressions régulières sont des motifs que seules certaines commandes sont capables
d'interpréter. Les expressions régulières peuvent être développées pour correspondre à certaines
séquences de caractères dans le texte. Les exemples affichés sur cette page utilisent des expressions
régulières pour démontrer leur puissance lorsqu'elles sont utilisées avec la commande grep. En outre,
ces exemples fournissent une démonstration très visuelle du fonctionnement des expressions
régulières, le texte qui correspond sera affiché en rouge.
Poursuivons
Utilisez la commande cd pour passer au répertoire Documents.
sysadmin@localhost:~$ cd ~/Documents

Les expressions régulières les plus simples n'utilisent que des caractères littéraux, comme l'exemple de
la page précédente :

sysadmin@localhost:~/Documents$ grep sysadmin passwd


sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin:/bin/bash

Caractères d'ancrage
Les caractères d'ancrage sont l'une des façons dont les expressions régulières peuvent être utilisées
pour affiner les résultats de recherche. Par exemple, la root du motif apparaît plusieurs fois dans le
fichier /etc/passwd :

sysadmin@localhost:~/Documents$ grep 'root' passwd


root:x:0:0:root:/root:/bin/bash
operator:x:1000:37::/root:

Pour éviter que le shell ne les interprète en tant que caractères spéciaux de shell, ces motifs doivent
être protégés par des guillemets simples.
Le premier caractère d'ancrage ^ est utilisé pour s'assurer qu'un motif apparaît au début de la ligne. Par
exemple, pour trouver toutes les lignes dans /etc/passwd qui commencent par root, utilisez le pattern ^
root. Notez que ^ doit être le premier caractère du motif pour fonctionner.
sysadmin@localhost:~/Documents$ grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash

Pour l'exemple suivant, examinez d'abord le fichier alpha-first.txt. La commande cat peut être utilisée
pour afficher le contenu d'un fichier :

sysadmin@localhost:~/Documents$ cat alpha-first.txt


A is for Animal
B is for Bear
C is for Cat
D is for Dog
E is for Elephant
F is for Flower

Le deuxième caractère d'ancrage $ peut être utilisé pour s'assurer qu'un motif apparaît à la fin de la
ligne, limitant ainsi efficacement les résultats de la recherche. Pour trouver les lignes qui se terminent
par un r dans le fichier alpha-first.txt, utilisez le motif r$ :

sysadmin@localhost:~/Documents$ grep 'r$' alpha-first.txt


B is for Bear
F is for Flower

Encore une fois, la position de ce caractère est importante, le $ doit être le dernier caractère du motif
pour être efficace comme ancre.

Faire correspondre un caractère unique avec .


Les exemples suivants utilisent le fichier red.txt :

sysadmin@localhost:~/Documents$ cat red.txt


red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read

L'une des expressions les plus utiles est le point ., car iI correspondra à n'importe quel caractère sauf
pour le caractère de nouvelle ligne. Le motif r..f trouvera n'importe quelle ligne contenant la lettre r suivie
de exactement deux caractères (qui peut être n'importe quel caractère sauf un saut de ligne), puis la
lettre f :

sysadmin@localhost:~/Documents$ grep 'r..f' red.txt


reef
roof

Le même concept peut être répété en utilisant d'autres combinaisons. Ce qui suit trouvera des mots de
quatre lettres qui commencent par r et termine par d :

sysadmin@localhost:~/Documents$ grep 'r..d' red.txt


reed
read

Ce caractère peut être utilisé autant de fois que nécessaire. Pour trouver tous les mots qui ont au moins
quatre caractères, le modèle suivant peut être utilisé :

sysadmin@localhost:~/Documents$ grep '....' red.txt


reef
reeed
roof
reed
root
reel
read

La ligne ne doit pas nécessairement être une correspondance exacte, elle doit simplement contenir le
motif, comme on le voit ici lorsque r..t est recherché dans le fichier /etc/passwd :

sysadmin@localhost:~/Documents$ grep 'r..t' /etc/passwd


root:x:0:0:root:/root:/bin/bash
operator:x:1000:37::/root:

Faire correspondre un seul caractère avec []


Les crochets [] correspondent à un seul caractère de la liste ou de la plage de caractères possibles
figurant entre crochets.
Par exemple, étant donné le fichier profile.txt :

sysadmin@localhost:~/Documents$ cat profile.txt


Hello my name is Joe.
I am 37 years old.
3121991
My favorite food is avocados.
I have 2 dogs.
123456789101112

Pour trouver toutes les lignes du profile.txt qui contiennent un nombre, utilisez le
modèle [0123456789] ou [0-9] :

sysadmin@localhost:~/Documents$ grep '[0-9]' profile.txt


I am 37 years old.
3121991
I have 2 dogs.
123456789101112

D'un autre côté, pour trouver toutes les lignes qui contiennent des caractères non numériques, insérez
un ^ comme premier caractère à l'intérieur des crochets. Ce caractère exclut les caractères listés :

sysadmin@localhost:~/Documents$ grep '[^0-9]' profile.txt


Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.

Veuillez noter :
Ne pas confondre [^0-9] avec des lignes qui ne contiennent pas de chiffres. Il correspond en fait
aux lignes qui contiennent des non-nombres. Regardez le fichier original pour voir la différence. Les
troisième et sixième lignes ne contiennent que des nombres, elles ne contiennent pas de non-nombres,
de sorte que ces lignes ne correspondent pas.
Lorsque d'autres caractères d'expression régulière sont placés entre crochets, ils sont traités comme
des caractères littéraux. Par exemple, le point . correspond normalement à n'importe quel caractère,
mais placé à l'intérieur des crochets, il correspondra simplement à lui-même. Dans l'exemple suivant,
seules les lignes qui contiennent le point . sont listées.

sysadmin@localhost:~/Documents$ grep '[.]' profile.txt


Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.

Faire correspondre un caractère ou des motifs répétés avec *


Le caractère d'expression régulière * est utilisé pour faire correspondre zéro ou plusieurs occurrences
d'un caractère ou d'un motif le précédant. Par exemple, e * correspond à zéro ou plusieurs occurrences
de la lettre e :

sysadmin@localhost:~/Documents$ cat red.txt


red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
sysadmin@localhost:~/Documents$ grep 're*d' red.txt
red
reeed
rd
reed

Il est également possible de faire correspondre zéro ou plusieurs occurrences d'une liste de caractères
en utilisant les crochets. Le motif [oe] * utilisé dans l'exemple suivant correspond à zéro ou plusieurs
occurrences du caractère o ou du caractère e :

sysadmin@localhost:~/Documents$ grep 'r[oe]*d' red.txt


red
reeed
rd
rod
reed

Lorsqu'il est utilisé avec un seul autre caractère, * n'est pas très utile. L'un des modèles suivants
correspond à toutes les chaînes ou ligne du fichier: .* e* b* z*.

sysadmin@localhost:~/Documents$ grep 'z*' red.txt


red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
sysadmin@localhost:~/Documents$ grep 'e*' red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read

C'est parce que * peut correspondre à zéro occurrences d'un motif. Pour rendre le * utile, il est
nécessaire de créer un motif qui comprend plus que le seul caractère précédant *. Par exemple, les
résultats ci-dessus peuvent être affinés en ajoutant un autre e pour que le motif ee * corresponde
efficacement à chaque ligne contenant au moins un e.

sysadmin@localhost:~/Documents$ grep 'ee*' red.txt


red
reef
reeed
reed
reel
read

Entrée standard
Si un nom de fichier n'est pas donné, la commande grep sera lue à partir de l'entrée standard, qui
provient normalement du clavier avec l'entrée fournie par l'utilisateur qui exécute la commande. Cela
fournit une expérience interactive avec grep où l'utilisateur tape dans les filtres d'entrée et grep au fur et
à mesure. N'hésitez pas à l'essayer, appuyez simplement sur Ctrl-D lorsque vous êtes prêt à revenir à
l'invite.

Poursuivons
Utilisez la commande cd suivante pour revenir au répertoire personnel :
sysadmin@localhost:~/Documents$ cd ~
Arrêt
La commande shutdown permet d'arrêter le système en toute sécurité. Tous les utilisateurs connectés
sont alors avertis que le système est en cours d’arrêt et au cours des cinq dernières minutes précédant
l'arrêt, les nouvelles connexions sont empêchées.

shutdown [OPTIONS] HEURE [MESSAGE]

Poursuivons
La commande shutdown nécessite un accès administratif, passez sur le compte root de cette section à
l'aide de la commande suivante. Utilisez netlab123 comme mot de passe.
sysadmin@localhost:~$ su -
Password:
root@localhost:~#

Nos machines virtuelles ne s'arrêtent pas vraiment ! N'hésitez pas à utiliser la commande, mais sachez
qu'elle reviendra à l'invite après le compte à rebours au lieu d'arrêter le système. Il se peut que vous
deviez appuyer sur la touche Entrée ou Ctrl+C pour revenir à l'invite de commande.

root@localhost:~# shutdown now

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 2:05 ...

The system is going down for maintenance NOW!


Contrairement à d'autres commandes utilisées pour arrêter le système, la
commande shutdown nécessite un argument de temps spécifiant quand l'arrêt doit commencer. Les
formats de cet argument de temps peuvent être le mot now, une heure de la journée au
format hh:mm ou le nombre de minutes pour différer au format +minutes.
Réfléchissez à ceci
L'horloge de notre système peut être réglée sur un fuseau horaire différent de celui dans lequel vous
vous trouvez. Pour vérifier l'heure du terminal, utilisez la commande date. Sur nos machines, le format
par défaut de la sortie de la commande date est le suivant :
jour_de_semaine mois jour heure:minute:seconde UTC année

Les lettres UTC présentes dans la sortie indiquent que l'heure est affichée en tant que temps universel
coordonné.

root@localhost:~# date
Sat Oct 3 22:15:58 UTC 2020
root@localhost:~# shutdown 01:51

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 1:50 ...

The system is going down for maintenance in 1 minute!

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 1:51 ...

The system is going down for maintenance NOW!

La commande shutdown peut également contenir un message facultatif, qui apparaîtra sur les terminaux
de tous les utilisateurs. Par exemple :

root@localhost:~# shutdown +1 "Goodbye World!"

Broadcast message from sysadmin@localhost


(/dev/pts/0) at 3:07 ...

The system is going down for maintenance in 1 minute!


Goodbye World!
shutdown: Unable to shutdown system
root@localhost:~#
Broadcast message from sysadmin@localhost
(/dev/pts/0) at 3:08 ...

The system is going down for maintenance NOW!


Goodbye World!

Configuration réseau
La commande ifconfig signifie « configuration d'interface » et est utilisée pour afficher les informations
de configuration réseau.

ifconfig [OPTIONS]

Veuillez noter :
La commande iwconfig est similaire à la commande ifconfig, mais elle est dédiée aux interfaces réseau
sans fil.
Il n’est pas nécessaire de connaître tous les paramètres réseau pour ce module, mais il est important de
noter dans l'exemple suivant que l'adresse IPv4 du périphérique réseau principal eth0 est 192.168.1.2 et
que le périphérique est actuellement actif (UP) :

root@localhost:~# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:c0:a8:01:02
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4346 (4.3 KB) TX bytes:5602 (5.6 KB)

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)

Réfléchissez à ceci
Le périphérique lo est appelé périphérique de bouclage. Il désigne votre propre ordinateur. C'est un
périphérique réseau spécial utilisé par le système lors de l'envoi de données réseau à lui-même.
La commande ifconfig peut également être utilisée pour modifier temporairement les paramètres réseau.
Typiquement, ces changements doivent être permanents, donc utiliser la commande ifconfig pour
effectuer de tels changements est assez rare.
La commande ping permet de vérifier la connectivité entre deux ordinateurs. Elle le fait en envoyant des
paquets à une autre machine sur un réseau. Si l'expéditeur reçoit une réponse, la connexion à cette
machine doit être possible.
Les informations sont envoyées à l'aide de « paquets » ; l'unité encapsulée de données envoyées sur
un réseau. Pour que les paquets trouvent l'autre ordinateur, ils ont besoin d'une adresse. La
commande ping utilise des adresses IP pour identifier un ordinateur sur le réseau auquel il souhaite se
connecter.
Par défaut, la commande ping continuera d'envoyer des paquets jusqu'à ce que la commande
d'interruption (CTL+C ) soit entrée sur la console. Pour limiter le nombre de pings envoyés, utilisez
l'option -c suivie du nombre de pings à envoyer. L'exemple ci-dessous montre un ping limité à 4
itérations avec -c 4.
Si la commande ping réussit, vous verrez la sortie suivante :

root@localhost:~# ping -c 4 192.168.1.2


PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.051 ms
64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=0.064 ms
64 bytes from 192.168.1.2: icmp_req=3 ttl=64 time=0.050 ms
64 bytes from 192.168.1.2: icmp_req=4 ttl=64 time=0.043 ms

--- 192.168.1.2 ping statistics ---


4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.043/0.052/0.064/0.007 ms
root@localhost:~#

Si la commande ping échoue, vous recevrez un message indiquant : Destination Host Unreachable :
root@localhost:~# ping -c 4 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
From 192.168.1.2 icmp_seq=2 Destination Host Unreachable
From 192.168.1.2 icmp_seq=3 Destination Host Unreachable
From 192.168.1.2 icmp_seq=4 Destination Host Unreachable

--- 192.168.1.3 ping statistics ---


4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3065ms
pipe 4
root@localhost:~#

La commande ping peut échouer même si la machine distante se connecte. Cela est dû au fait que
certains administrateurs configurent leurs machines, voire des réseaux entiers, à ne pas répondre aux
requêtes ping en tant que mesure de sécurité. La commande ping fonctionne également avec un nom
d'hôte ou un nom de domaine comme yahoo.com. Si la commande ping réussit, il y a résolution du nom
de domaine ou du nom d'hôte. L'adresse IP fonctionnera également correctement.
Poursuivons
Quittez le compte root à l'aide de la commande exit :
root@localhost:~# exit
logout

Affichage des processus


L'exécution d'une commande entraîne la création d'un processus en mémoire. Dans le système
d'exploitation Linux, les processus sont exécutés avec les privilèges de l'utilisateur qui exécute la
commande. Cela permet de limiter les processus à certaines fonctionnalités en fonction de l'identité de
l'utilisateur.
Bien qu'il existe des exceptions, le système d'exploitation différencie généralement les utilisateurs selon
qu'ils sont ou non l'administrateur. En règle générale, les utilisateurs normaux, comme
l'utilisateur sysadmin, ne peuvent pas contrôler les processus d'un autre utilisateur. Les utilisateurs
disposant de privilèges d'administration, comme le compte root, peuvent contrôler tous les processus
utilisateur, y compris l'arrêt de tout processus utilisateur.
La commande ps peut être utilisée pour lister les processus.

ps [OPTIONS]
sysadmin@localhost:~$ ps
PID TTY TIME CMD
80 pts/0 00:00:00 bash
94 pts/0 00:00:00 ps

La commande ps affiche les processus en cours d'exécution dans le terminal actuel par défaut. Dans
l'exemple ci-dessus, la dernière ligne est le processus créé par l'exécution de la commande ps. La sortie
comprend les colonnes d'informations suivantes :
 PID : L'identifiant du processus, qui est unique au processus. Ces informations sont utiles pour
contrôler le processus par son numéro d'identification.
 TTY : Le nom du terminal sur lequel le processus est en cours d'exécution. Ces informations sont
utiles pour distinguer les différents processus qui portent le même nom.
 TIME : Le temps processeur utilisé par le processus. Généralement, cette information n'est pas
utilisée par les utilisateurs standards.
 CMD : La commande qui a lancé le processus.
Au lieu d'afficher uniquement les processus en cours d'exécution dans le terminal actuel, les utilisateurs
peuvent vouloir afficher tous les processus en cours d'exécution sur le système. L'option -e affichera
tous les processus :

sysadmin@localhost:~$ ps -e
PID TTY TIME CMD
1 pts/0 00:00:00 init
33 ? 00:00:00 rsyslogd
37 ? 00:00:00 cron
39 ? 00:00:00 sshd
56 ? 00:00:00 named
69 pts/0 00:00:00 login
79 pts/0 00:00:00 bash
94 pts/0 00:00:00 ps

Généralement, l'option -f est également utilisée car elle fournit plus de détails dans l'affichage de la
commande, y compris les options et les arguments. Recherchez la commande ps sur la dernière ligne,
la colonne CMD inclut désormais les options utilisées :

sysadmin@localhost:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:16 pts/0 00:00:00 /sbin??? /init
syslog 33 1 0 19:16 ? 00:00:00 /usr/sbin/rsyslogd
root 37 1 0 19:16 ? 00:00:00 /usr/sbin/cron
root 39 1 0 19:16 ? 00:00:00 /usr/sbin/sshd
bind 56 1 0 19:16 ? 00:00:00 /usr/sbin/named -u bind
root 69 1 0 19:16 pts/0 00:00:00 /bin/login -f
sysadmin 79 69 0 19:16 pts/0 00:00:00 -bash
sysadmin 95 79 0 19:43 pts/0 00:00:00 ps -ef

Gestion des paquets


La gestion des paquets est un système par lequel les logiciels peuvent être installés, mis à jour,
interrogés ou supprimés d'un système de fichiers. Sous Linux, il existe de nombreux systèmes de
gestion de paquets de logiciels différents, mais les plus populaires sont ceux de Debian et de Red Hat.
Les machines virtuelles de ce cours utilisent Ubuntu, un dérivé de Debian.
Au niveau le plus bas du système de gestion des paquets Debian se trouve la commande dpkg. Cette
commande peut être compliquée pour les utilisateurs débutant sur Linux et l'outil Advanced Package
Tool, apt-get, un programme frontal de l'outil dpkg, permet de rendre la la gestion des paquets plus
simple.
Veuillez noter :
Un programme frontal est un programme que les utilisateurs peuvent voir et avec lequel ils peuvent
interagir.
Poursuivons
La plupart des commandes de gestion des paquets nécessitent un accès administratif, de sorte qu'elles
seront précédées par la commande sudo. Utilisez netlab123 comme mot de passe lorsque vous y êtes
invité.

Installation de paquets
Les fichiers de paquets sont généralement installés en les téléchargeant directement à partir de
référentiels situés sur des serveurs Internet. Les référentiels Debian contiennent plus de 65 000 paquets
de logiciels différents. Avant d'installer un paquet, il est recommandé de réactualiser la liste des paquets
disponibles à l'aide de la commande apt-get update.
Les commandes suivantes peuvent prendre quelques minutes pour exécuter.

sudo apt-get update


sysadmin@localhost:~$ sudo apt-get update
[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done

Pour rechercher des mots-clés dans ces paquets, vous pouvez utiliser la commande apt-cache search.

apt-cache search [mot-clé]

Le mot-clé utilisé doit correspondre à une partie du nom ou de la description du paquet à localiser.
Plusieurs mots-clés peuvent être utilisés pour clarifier davantage la recherche ; par exemple, le terme de
recherche serveur Web donnera de meilleurs résultats que Web ou serveur.
Pour trouver des paquets associés au mot-clé cow :

sysadmin@localhost:~$ apt-cache search cow


cowsay - configurable talking cow

Une fois que vous avez trouvé le paquet à installer, vous pouvez l'installer avec la commande apt-get
install :

sudo apt-get install [paquet]


sysadmin@localhost:~$ sudo apt-get install cowsay
[sudo] password for sysadmin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
filters
The following NEW packages will be installed:
cowsay
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/18.5 kB of archives.
After this operation, 90.1 kB of additional disk space will be used.

Selecting previously unselected package cowsay.


(Reading database ... 24313 files and directories currently installed.)
Preparing to unpack .../cowsay_3.03+dfsg1-6_all.deb ...
Unpacking cowsay (3.03+dfsg1-6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up cowsay (3.03+dfsg1-6) ...

Réfléchissez à ceci
La commande cowsay est un programme qui crée des dessins ASCII d'une vache avec un message !
Utilisez un mot ou une phrase comme argument :
sysadmin@localhost:~$ cowsay 'NDG Linux Unhatched'
_____________________
< NDG Linux Unhatched >
---------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||

Nous vous recommandons d'inclure l'argument entre guillemets simples pour empêcher le shell
d'interpréter les caractères spéciaux.

Mise à jour des paquets


La commande apt-get install peut également actualiser un paquet, si celui-ci est installé et qu'une
version plus récente est disponible. Si le paquet n'est pas sur le système, il sera installé ; s'il est déjà sur
le système, il sera mis à jour.
La mise à jour de tous les paquets du système doit se faire en deux étapes. Tout d'abord, mettez à jour
le cache avec tous les paquets disponibles avec apt-get update. Ensuite, exécutez la commande apt-get
upgrade et tous les paquets et dépendances seront mis à jour.

apt-get update
apt-get upgrade
sysadmin@localhost:~$ sudo apt-get update
[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done
sysadmin@localhost:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Suppression de paquets
La commande apt-get est capable de supprimer ou de purger un paquet. La différence entre les deux
est que purger supprime tous les fichiers de paquet, tandis que la suppression supprime tous les fichiers
sauf les fichiers de configuration du paquet.
Un administrateur peut exécuter la commande apt-get remove pour supprimer un paquet ou la
commande apt-get purge pour purger un paquet entièrement du système.

apt-get remove [paquet]


apt-get purge [paquet]

Par exemple, pour purger complètement le paquet cowsay, exécutez la commande suivante. Tapez la
touche Y lorsque vous y êtes invité :

sysadmin@localhost:~$ sudo apt-get purge cowsay


Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cowsay*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 90.1 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 24377 files and directories currently installed.)
Removing cowsay (3.03+dfsg1-6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Mise à jour des mots de passe utilisateur
La commande passwd permet de modifier le mot de passe d'un utilisateur. Les utilisateurs ne peuvent
modifier que leurs propres mots de passe, tandis que l'utilisateur root peut modifier le mot de passe de
n'importe quel utilisateur.

passwd [OPTIONS] [UTILISATEUR]

Par exemple, puisque nous sommes connectés en tant qu'utilisateur sysadmin, nous pouvons changer
le mot de passe de ce compte. Exécutez la commande passwd. Vous serez invité à entrer le mot de
passe existant une fois et le nouveau mot de passe deux fois. Pour des raisons de sécurité, aucune
sortie n'est affichée pendant la saisie du mot de passe. La sortie est illustrée comme suit :

sysadmin@localhost:~$ passwd
Changing password for sysadmin.
(current) UNIX password: netlab123
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Si l'utilisateur souhaite afficher les informations d'état de son mot de passe, il peut utiliser l'option -S :
sysadmin@localhost:~$ passwd -S sysadmin
sysadmin P 12/20/2017 0 99999 7 -1

Les champs de sortie sont expliqués ci-dessous :

Champs Exemple Signification

Nom de sysadmin Le nom de l'usager.


l'utilisateur

État du mot de P P indique un mot de passe utilisable.


passe
L indique un mot de passe verrouillé.
NP indique aucun mot de passe.

Date de 03/01/2015 Date à laquelle le mot de passe a été modifié pour la dernière fois.
modification

Minimum 0 Le nombre minimum de jours qui doivent s'écouler avant que le mot
de passe actuel puisse être modifié par l'utilisateur.

Maximum 99999 Le nombre maximum de jours restants avant que le mot de passe
expire.

Avertir 7 Le nombre de jour avant l’expiration du mot de passe auquel


l’utilisateur est averti.

Inactif -1 Le nombre de jours pouvant s'écouler après l'expiration du mot de


passe pendant lequel le compte reste actif.
Poursuivons
Basculez le compte root à l'aide de la commande suivante. Utilisez netlab123 comme mot de passe :
sysadmin@localhost:~$ su root
Password:
root@localhost:~#

L'utilisateur root peut modifier le mot de passe de n'importe quel utilisateur. Si l'utilisateur root veut
changer le mot de passe de sysadmin, il exécutera la commande suivante :

root@localhost:~# passwd sysadmin


Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Poursuivons
Quittez le compte root à l'aide de la commande exit :
root@localhost:~# exit
exit

Redirection
L'ajout de contenu aux fichiers sous Linux peut se faire de diverses façons. Linux a quelques éditeurs
de texte qui peuvent être utilisés pour ajouter du contenu à un fichier. Cependant, cette méthode
nécessite une certaine familiarité avec les commandes de l'éditeur de texte Linux.
Veuillez noter :
Les éditeurs de texte Linux sont abordés dans la section suivante de ce cours.
Linux permet d'ajouter rapidement du contenu à un fichier à l'aide d'une fonction de ligne de commande
appelée redirection entrée/sortie (E/S). La redirection d'E/S permet d'envoyer des informations dans la
ligne de commande à des fichiers, des périphériques et d'autres commandes. L'entrée ou la sortie d'une
commande est redirigée de sa destination par défaut vers un autre emplacement. La redirection E/S est
comme une série de voies de train, où un commutateur peut être activé pour diriger la sortie d'une
commande vers une autre voie afin qu'elle aille ailleurs dans le shell. Dans cette section, nous écrivons
dans des fichiers en redirigeant la sortie d'une commande vers un fichier.
Quand il s'agit d'entrée et de sortie de commande, il y a trois chemins, ou « pistes » possibles. Ces
chemins sont appelés des descripteurs de fichiers. Le premier descripteur de fichier est une entrée
standard, abrégée en STDIN. L'entrée standard est l'information que la commande reçoit et traite
lorsqu'elle est exécutée, essentiellement ce qu'un utilisateur tape sur le clavier. Le deuxième descripteur
de fichier est une sortie standard, abrégée en STDOUT. La sortie standard est l'information que la
commande affiche, la sortie de la commande. Le dernier descripteur de fichier est une erreur standard,
abrégée en STDERR. STDERR, sont les messages d'erreur générés par les commandes qui ne sont
pas correctement exécutées. Voici des exemples de la façon dont les descripteurs de fichier
apparaissent dans le terminal :
Entrée standard (STDIN)
sysadmin@localhost:~$ ls ~/Documents

Sortie standard (STDOUT)

sysadmin@localhost:~$ ls

Desktop Documents Downloads Music Pictures Public Templates Videos

Erreur standard (STDERR)

sysadmin@localhost:~$ ls fakefile

ls: cannot access fakefile: No such file or directory

Cette section couvre l'un des trois descripteurs de fichier, STDOUT, et comment rediriger STDOUT d'où
vous le voyez habituellement, dans le terminal, vers un fichier du système de fichiers. Pour utiliser la
redirection, utilisez simplement le symbole supérieur à > avec un nom de fichier :

[COMMANDE] > [FICHIER]

Pour montrer la redirection, nous allons utiliser la sortie de la commande cat. Sans redirection, la sortie
de la commande cat sera affichée dans le terminal :
Poursuivons
Utilisez la commande suivante pour basculer vers le répertoire Documents :
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ cat food.txt
Food is good.

Maintenant, utilisez le caractère > pour rediriger le STDOUT de la commande cat food.txt ci-dessus vers
un nouveau fichier appelé newfile1.txt :

sysadmin@localhost:~/Documents$ cat food.txt > newfile1.txt


sysadmin@localhost:~/Documents$

Comme vous pouvez le voir, aucune sortie n'est affichée puisque le STDOUT a été redirigé vers le
fichier newfile1.txt . Vérifiez que le STDOUT de la commande cat food.txt se trouve dans newfile1.txt :

sysadmin@localhost:~/Documents$ cat newfile1.txt


Food is good.

Ceci est utile si vous avez besoin de copier du contenu d'un fichier important vers un autre fichier afin de
modifier le contenu sans modifier le fichier d'origine. Cependant, que se passe-t-il si vous souhaitez
ajouter un commentaire ou une note à un fichier ? Pour ce faire, vous pouvez utiliser la
commande echo. La commande echo est utilisée pour imprimer la sortie dans le terminal :
sysadmin@localhost:~/Documents$ echo "Hello"
Hello
sysadmin@localhost:~/Documents$

L'impression de commentaires à l'écran est une fonctionnalité amusante, mais la commande echo peut
être rendue plus utile en utilisant la redirection. En utilisant la commande echo, du contenu peut être
ajouté au fichier newfile1.txt :

sysadmin@localhost:~/Documents$ cat newfile1.txt


Food is good.
sysadmin@localhost:~/Documents$ echo "I like food." > newfile1.txt
sysadmin@localhost:~/Documents$ cat newfile1.txt
I like food.
sysadmin@localhost:~/Documents$

Notez que le STDOUT de la commande echo a remplacé le contenu d'origine du fichier. Cela est dû au
fait que le caractère > tout seul remplacera tout contenu d'un fichier existant. Pour ajouter plutôt que
remplacer du contenu à un fichier, utilisez un symbole double supérieur à >> :

sysadmin@localhost:~/Documents$ echo "This food is good." >> newfile1.txt


sysadmin@localhost:~/Documents$ cat newfile1.txt
I like food.
This food is good.
sysadmin@localhost:~/Documents$

Important
Pour rediriger des informations vers un fichier existant, l'utilisateur doit disposer d'autorisations d'écriture
sur ce fichier.
Éditeur de texte
Le principal éditeur de texte pour Linux et UNIX est un programme appelé vi. Bien qu'il existe de
nombreux éditeurs disponibles pour Linux qui vont du minuscule éditeur nano à l'imposant
éditeur emacs, l'éditeur vi présente plusieurs avantages :
 L'éditeur vi est disponible sur toutes les distributions Linux dans le monde. Ce n'est pas le
cas des autres éditeurs.
 L'éditeur vi peut être exécuté à la fois dans une interface CLI (interface de ligne de
commande) et une interface graphique (interface utilisateur graphique).
 Alors que de nouvelles fonctionnalités ont été ajoutées à l'éditeur vi , les fonctions de base
existent depuis des décennies. Cela signifie que si quelqu'un a appris l'éditeur vi dans les
années 1970, il pourrait utiliser une version moderne sans aucun problème. Bien que cela
semble peut paraître trivial aujourd’hui, cela ne le sera pas dans vingt ans.
Réfléchissez à ceci
La bonne façon de prononcer l'éditeur vi est l'éditeur vee-eye. Les lettres vi représentent le mot visuel,
mais elles n'ont jamais été prononcées de cette façon par les développeurs, mais plutôt la lettre v suivie
de la lettre i en anglais.
En réalité, la plupart des systèmes Linux n'incluent pas le vioriginal, mais une version améliorée de
celui-ci connue sous le nom de vim, pour vi améliorée. L'éditeur vim est ainsi disponible pour la plupart
des distributions Linux. En réalité, vim fonctionne comme vi, mais comporte des fonctionnalités
supplémentaires. Pour les sujets qui seront abordés dans ce cours, vi ou vim suffit.
Pour commencer à utiliser vi, tapez simplement la commande suivie du chemin d'accès au fichier à
modifier ou créer :

sysadmin@localhost:~$ vi newfile.txt

ITrois modes sont utilisés dans vi : le mode commande, le mode insertion et le mode enregistrement.

Mode commande
Initialement, le programme démarre en mode commande. Le mode Commande permet de taper des
commandes, telles que celles utilisées pour déplacer un document, manipuler du texte et accéder aux
deux autres modes. Pour repasser en mode commande à tout moment, appuyez sur la touche Echap.
Une fois que du texte a été ajouté dans un document, pour effectuer des actions comme le déplacement
du curseur, la touche Echap doit d'abord être pressée pour revenir en mode commande. Cela semble
être beaucoup de travail, mais rappelez-vous que vi fonctionne dans un environnement terminal où une
souris ne vous sera d’aucune utilité.
Les commandes de déplacement dans vi ont deux aspects, un mouvement et un préfixe numérique
facultatif, qui indique combien de fois répéter ce mouvement. Le format général est le suivant :

[nombre] motion

Le tableau suivant résume les touches de mouvement disponibles :

Mouvement Résultat

h Un caractère à gauche

j Descendre d'une ligne

k Monter d'une ligne

l Un caractère à droite

w Un mot en avant

b Un mot en arrière

^ Début de ligne
Mouvement Résultat

$ Fin de ligne

Veuillez noter :
Depuis la mise à niveau vers vim , il est également possible d'utiliser les touches fléchées ←↓↑→ au lieu
de hjkl respectivement.
Ces mouvements peuvent être préfixés par un nombre pour indiquer combien de fois effectuer le
mouvement. Par exemple, 5h déplace le curseur cinq caractères vers la gauche et 3w déplace le
curseur trois mots vers la droite.
Pour déplacer le curseur sur un numéro de ligne spécifique, tapez ce numéro de ligne suivi du
caractère G, par exemple, pour accéder à la cinquième ligne du fichier 5G, 1G ou gg peut être utilisé
pour aller à la première ligne du fichier, tandis qu'un G seul vous mènera à la dernière ligne. Pour savoir
sur quelle ligne se trouve actuellement le curseur, utilisez CTRL-G.

Mode actions
La convention standard pour l'édition de contenu dans les traitements de texte consiste à utiliser copier,
couper et coller. Le programme vi n'en comporte aucun. Au lieu de cela, vi utilise les trois commandes
suivantes :

Standard Vi Signification

cut d supprimer (delete)

copy y arracher (yank)

paste P|p mettre (put)

Les déplacements décrits dans la page précédente sont utilisés pour spécifier où l'action doit avoir lieu,
toujours en commençant par l'emplacement actuel du curseur. Les des formats généraux suivants pour
les commandes d'action sont acceptés :

action [nombre] motion


[nombre] action motion

Supprimer (Cut)
Supprimer supprime le texte indiqué de la page et l'enregistre dans le tampon, le tampon étant
l'équivalent du « presse-papiers » utilisé dans Windows ou Mac OSX. Le tableau suivant fournit des
exemples d'utilisation courants :
Action Résultat

dd Supprimer la ligne courante

3dd Supprimer les trois prochaines lignes

dw Supprimer le mot courant

d3w Supprimer les trois prochains mots

d4h Supprimer quatre caractères à gauche

Modifier
Modifier est très similaire à supprimer ; le texte est supprimé et enregistré dans le tampon, cependant, le
programme est commuté en mode insertion pour permettre des modifications immédiates au texte. Le
tableau suivant fournit des exemples d'utilisation courants :

Action Résultat

cc Modifier la ligne courante

cw Modifier le mot courant

c3w Modifier les trois prochains mots

c5h Modifier cinq caractères vers la gauche

Arracher (Yank)
Yank place le contenu dans le tampon sans le supprimer. Le tableau suivant fournit des exemples
d'utilisation courants:

Action Résultat

yy Copier la ligne

3yy Copier les trois prochaines lignes


Action Résultat

yw Copier le mot courant

y$ Copier jusqu'au bout de la ligne

Mettre (Put)
Put met le texte enregistré dans le tampon avant ou après la position du curseur. Notez que ce sont les
deux seules options, coller n'utilise pas les mouvements comme les commandes d'action précédentes.

Action Résultat

p Coller après le curseur

P Coller avant le curseur

Recherche dans vi
Une autre fonction standard offerte par les traitements de texte est la recherche. Souvent, les gens
utilisent CTRL + F ou regardent sous le menu d'édition. Le programme vi utilise la recherche. La
recherche est puissante car elle prend en charge à la fois les motifs de texte littéral et les expressions
régulières.
Pour effectuer une recherche à partir de la position actuelle du curseur, utilisez le / pour lancer la
recherche, tapez un terme de recherche, puis appuyez sur la touche Entrée pour commencer la
recherche. Le curseur se déplace vers la première correspondance trouvée.
Pour passer à la correspondance suivante en utilisant le même motif, appuyez sur la touche n . Pour
revenir à une correspondance précédente, appuyez sur la touche N. Si la fin ou le début du document
est atteint, la recherche retourne automatiquement de l'autre côté du document.
Pour commencer à rechercher en arrière à partir de la position du curseur, commencez par taper ?, puis
tapez le motif à rechercher et appuyez sur la touche Entrée.
Mode insertion
Le mode Insertion permet d'ajouter du texte au document. Il y a plusieurs façons de passer en mode
insertion à partir du mode commande, chacune différenciée par l'endroit où l'insertion de texte
commencera. Le tableau suivant couvre les plus courants :

Saisie Résultat

a Entre en mode insertion juste après le curseur


Saisie Résultat

A Entre en mode insertion à la fin de la ligne

i Entre en mode insertion juste avant le curseur

I Entre en mode insertion au début de la ligne

o Entre en mode insertion sur une ligne blanche après le curseur

O Entre en mode insertion sur une ligne blanche avant le curseur

Mode ex
À l'origine, l'éditeur vi s'appelait ex. Le nom vi était l'abréviation de la commande visuel dans
l'éditeur ex qui a basculé l'éditeur en mode « visuel ».
Originellement, en mode normal, l'éditeur ex autorisait uniquement les utilisateurs à voir et à modifier
une ligne à la fois. En mode visuel, les utilisateurs peuvent voir autant du document que le permet la
taille de l'écran. Comme la plupart des utilisateurs préféraient le mode visuel au mode d'édition de ligne,
le fichier programme ex était lié à un fichier vi , de sorte que les utilisateurs pouvaient
démarrer ex directement en mode visuel lorsqu'ils exécutaient l'éditeur vi.
Au final, le fichier programme réel a été renommé vi et l'éditeur ex est devenu un lien pointant vers
l'éditeur vi.
Lorsque le mode ex de l'éditeur vi est utilisé, il est possible d'afficher ou de modifier les paramètres,
ainsi que d'exécuter des commandes liées aux fichiers comme l'ouverture, l'enregistrement ou l'abandon
des modifications apportées à un fichier. Pour accéder au mode ex, tapez le caractère : en mode
commande. Le tableau suivant répertorie certaines actions courantes effectuées en mode ex :

Saisie Résultat

:w Ecrire le fichier courant dans le système de fichiers

:w nom_de_fichier Enregistrer une copie du fichier actuel avec le nom du fichier spécifié

:w! Forcer l'écriture dans le fichier courant


Saisie Résultat

:1 Aller à la ligne numéro 1 ou n'importe quel numéro suivant

:e nom_de_fichier Ouvrir le fichier dont le nom est spécifié

:q Quitter si aucun changement n'a été apporté au fichier

:q! Quitter sans enregistrer les modifications dans le fichier

Une analyse rapide du tableau ci-dessus révèle que si un point d'exclamation ! est ajouté à une
commande, elle tente ensuite de forcer l'opération. Par exemple, imaginez que vous apportez des
modifications à un fichier dans l'éditeur vi, puis essayez de quitter avec :q, seulement pour découvrir
que la commande échoue. L'éditeur vi ne veut pas quitter sans enregistrer les modifications que vous
avez apportées à un fichier, mais vous pouvez le forcer à quitter avec la commande ex :q!.
Réfléchissez à ceci
Bien que le mode ex offre plusieurs façons d'enregistrer et de quitter, ZZ est aussi disponible en mode
commande; et est équivalent à :wq. Il existe de nombreuses fonctions qui se chevauchent entre le mode
ex et le mode commande. Par exemple, le mode ex peut être utilisé pour naviguer jusqu'à n'importe
quelle ligne du document en tapant : suivi du numéro de ligne, tandis que le G peut être utilisé en mode
commande comme indiqué précédemment.
Veuillez noter :
Si vous avez un fichier texte ouvert, quittez-le en exécutant la commande :q!. Il se fermera sans
enregistrer les modifications.
~
~
:q!_

Aller plus loin


Nous espérons que vous avez apprécié cette brève introduction au monde de Linux. Le contenu abordé
ici est aligné sur les connaissances Linux couvertes par les objectifs de l'examen LPI Linux Essentials,
mais il y a tellement plus à découvrir ! Obtenez des compétences Linux d'un niveau de certification pour
faire avancer votre carrière !

NDG Linux Essentials


Si vous souhaitez élargir vos connaissances Linux, Cisco Networking Academy propose également trois
cours Linux. NDG Linux Essentials est parfait pour les débutants qui cherchent à saisir les bases, tandis
que la série NDG Linux offre aux débutants une couverture approfondie plus rigoureuse.

« Apprenez les bases du système d'exploitation Linux, de la ligne de commande et des concepts de
base de l'open source. »
Le cours NDG Linux Essentials est conçu pour vous préparer au certificat de développement
professionnel Linux Essentials du Linux Professional Institute, qui valide une compréhension démontrée
de :
 FOSS, les différentes communautés et les licences
 Connaissance des applications open source en milieu de travail en comparaison leurs
équivalents de sources fermées
 Concepts de base du matériel, des processus, des programmes et des composants du système
d'exploitation Linux
 Comment travailler sur la ligne de commande et avec des fichiers
 Comment créer et restaurer des sauvegardes et des archives compressées
 Sécurité du système, utilisateurs/groupes et permissions de fichiers pour les répertoires publics et
privés
 Comment créer et exécuter des scripts simples
Pour obtenir le certificat de développement professionnel Linux Essentials, vous devez réussir Linux
Essentials (LPI-010) qui couvre :
 La communauté Linux et une carrière dans l'open source
 Trouver son chemin dans un système Linux
 La puissance de la ligne de commande
 Le système d'exploitation Linux
 Sécurité et permissions de fichiers
Le certificat de développement professionnel Linux Essentials est le début de votre chemin pour devenir
un professionnel certifié Linux. Pour obtenir des informations sur les certifications du Linux Professional
Institute, rendez-vous sur http://www.lpi.org.
Ne vous inquiétez pas si vous avez peu ou pas d'expérience Linux. Ce cours est le point de départ idéal
pour enseigner tous les concepts à partir de la case départ. Cependant, si vous ne trouvez pas cette
formation matériel assez difficile, vous pouvez commencer par NDG Introduction to Linux I, un cours
d'introduction plus rigoureux.

Série NDG Linux

« Acquérir les compétences en administration de système Linux se préparer à la certification LPI LPIC1.
»
La série NDG Linux est conçue pour vous préparer à la certification Linux Professional Institute Level 1.
LPIC-1 est une certification Linux Server Professional pour les administrateurs Linux qui valide votre
capacité à effectuer les tâches suivantes :
 Travailler sur la ligne de commande Linux
 Effectuer des tâches d'entretien simples : aider les utilisateurs, ajouter des utilisateurs à un
système plus vaste, sauvegarder et restaurer, arrêter et redémarrer
 Installer et configurer un poste de travail (y compris X) et le connecter à un réseau local ou à un
PC autonome sur Internet
Pour obtenir la certification LPIC-1, vous devez réussir les examens 101 et 102. NDG Introduction to
Linux I est conçu pour vous préparer à l'examen 101, qui couvre :
 Architecture système
 L'installation de Linux et la gestion des paquets
 Les commandes GNU et Unix
 Périphériques, Systèmes de fichiers Linux, Hiérarchie des systèmes de fichiers Standard
NDG Introduction to Linux II s'aligne sur les objectifs de l'examen 102, qui couvrent :
 Shells, scripts et gestion des données
 Interfaces et ordinateurs de bureau
 Tâches administratives
 Services de systèmes fondamentaux
 Principes fondamentaux de networking
 Sécurité
La certification LPIC-1 est la première des trois certifications professionnelles LPI. Des informations sur
toutes les certifications Linux Professional Institute sont disponibles à l'adresse
suivante : http://www.lpi.org.

IT Essentials

Pour en savoir plus sur les compétences fondamentales en informatique pour les postes informatiques
d'entrée de gamme, consultez le reste de IT Essentials.

« Apprendre à construire et à configurer un ordinateur et à le connecter en toute sécurité à un réseau,


votre premier pas vers une carrière en informatique. »
IT Essentials couvre les compétences fondamentales en informatique pour les postes informatiques
d'entrée de gamme. Le programme IT Essentials comprend des travaux pratiques qui offrent une
expérience pratique. Les outils virtuels vous aident à perfectionner vos compétences en matière de
dépannage et à mettre en pratique ce que vous apprenez.
 Acquérir des connaissances pratiques sur le fonctionnement des ordinateurs
 Développer la pensée critique et les compétences en résolution de problèmes complexes à l'aide
de laboratoires pratiques et d'outils d'apprentissage virtuel
 Appliquer les compétences et les procédures pour installer et mettre à niveau le matériel et les
logiciels et dépanner les systèmes
 Mettre en pratique ce que vous apprenez sur du matériel réel et en utilisant l'outil de simulation
Cisco Packet Tracer
 Obtenir un feedback immédiat sur votre travail grâce à des quiz et des examens intégrés
 Être connecté à la communauté mondiale Cisco Networking Academy

Vous aimerez peut-être aussi