Vous êtes sur la page 1sur 122

Le manuel de commande Linux -

Apprenez les commandes Linux pour les


débutants

Flavio Copes

Ce manuel de commandes Linux couvrira 60 commandes Bash de base


dont vous aurez besoin en tant que développeur. Chaque commande
comprend un exemple de code et des conseils pour savoir quand
l'utiliser.
Ce manuel de commandes Linux suit la règle 80/20 : vous
apprendrez 80 % d'un sujet en environ 20 % du temps que vous
passerez à l'étudier.

Je trouve que cette approche vous donne une vue d'ensemble


bien équilibrée.

Ce manuel n'essaie pas de couvrir tout ce qui concerne Linux et


ses commandes. Il se concentre sur les petites commandes de
base que vous utiliserez 80 % ou 90 % du temps, et essaie de
simplifier l'utilisation des plus complexes.

Toutes ces commandes fonctionnent sous Linux, macOS, WSL et


partout où vous avez un environnement UNIX.

J'espère que le contenu de ce manuel vous aidera à réaliser ce


que vous voulez : vous familiariser avec Linux .
Vous pouvez ajouter cette page à vos favoris dans votre
navigateur afin de pouvoir consulter ce manuel à l'avenir.

Et vous pouvez télécharger gratuitement ce manuel au format


PDF / ePUB / Mobi .
Prendre plaisir!

Table des matières


• Introduction à Linux et aux shells
• manLa commande Linux
• lsLa commande Linux
• cdLa commande Linux
• pwdLa commande Linux
• mkdirLa commande Linux
• rmdirLa commande Linux
• mvLa commande Linux
• cpLa commande Linux
• openLa commande Linux
• touchLa commande Linux
• findLa commande Linux
• lnLa commande Linux
• gzipLa commande Linux
• gunzipLa commande Linux
• tarLa commande Linux
• aliasLa commande Linux
• catLa commande Linux
• lessLa commande Linux
• tailLa commande Linux
• wcLa commande Linux
• grepLa commande Linux
• sortLa commande Linux
• uniqLa commande Linux
• diffLa commande Linux
• echoLa commande Linux
• chownLa commande Linux
• chmodLa commande Linux
• umaskLa commande Linux
• duLa commande Linux
• dfLa commande Linux
• basenameLa commande Linux
• dirnameLa commande Linux
• psLa commande Linux
• topLa commande Linux
• killLa commande Linux
• killallLa commande Linux
• jobsLa commande Linux
• bgLa commande Linux
• fgLa commande Linux
• typeLa commande Linux
• whichLa commande Linux
• nohupLa commande Linux
• xargsLa commande Linux
• vimLa commande de l'éditeur Linux
• emacsLa commande de l'éditeur Linux
• nanoLa commande de l'éditeur Linux
• whoamiLa commande Linux
• whoLa commande Linux
• suLa commande Linux
• sudoLa commande Linux
• passwdLa commande Linux
• pingLa commande Linux
• tracerouteLa commande Linux
• clearLa commande Linux
• historyLa commande Linux
• exportLa commande Linux
• crontabLa commande Linux
• unameLa commande Linux
• envLa commande Linux
• printenvLa commande Linux
• Conclusion
Introduction à Linux et aux shells
Qu'est-ce que Linux ?
Linux est un système d'exploitation, comme macOS ou
Windows.

C'est aussi le système d'exploitation Open Source le plus


populaire, et il vous donne beaucoup de liberté.

Il alimente la grande majorité des serveurs qui composent


Internet. C'est la base sur laquelle tout est construit. Mais pas
seulement. Android est basé sur (une version modifiée de)
Linux.

Le "noyau" Linux (appelé noyau ) est né en 1991 en Finlande, et


il a parcouru un très long chemin depuis ses humbles débuts. Il
est devenu le noyau du système d'exploitation GNU, créant le
duo GNU/Linux.
Il y a une chose à propos de Linux que des entreprises comme
Microsoft, Apple et Google ne pourront jamais offrir : la liberté
de faire ce que vous voulez avec votre ordinateur.

Ils vont en fait dans la direction opposée, construisant des


jardins clos, surtout du côté mobile.

Linux est la liberté ultime.

Il est développé par des bénévoles, certains rémunérés par des


entreprises qui en dépendent, d'autres de manière
indépendante. Mais il n'y a pas une seule entreprise
commerciale qui puisse dicter ce qui se passe dans Linux, ou les
priorités du projet.

Vous pouvez également utiliser Linux comme ordinateur au


quotidien. J'utilise macOS parce que j'aime vraiment les
applications et le design (et j'ai aussi été développeur
d'applications iOS et Mac). Mais avant d'utiliser macOS,
j'utilisais Linux comme système d'exploitation principal de mon
ordinateur.

Personne ne peut dicter les applications que vous pouvez


exécuter ou "appeler chez vous" avec des applications qui vous
suivent, votre position et plus encore.

Linux est également spécial car il n'y a pas qu'un "un Linux",
comme c'est le cas avec Windows ou macOS. Au lieu de cela,
nous avons des distributions .
Une "distribution" est créée par une entreprise ou une
organisation et regroupe le noyau Linux avec des programmes
et des outils supplémentaires.

Par exemple, vous avez Debian, Red Hat et Ubuntu,


probablement les distributions les plus populaires.
Mais beaucoup, beaucoup d'autres existent. Vous pouvez
également créer votre propre distribution. Mais très
probablement, vous en utiliserez un populaire qui a beaucoup
d'utilisateurs et une communauté de personnes autour de
lui. Cela vous permet de faire ce que vous devez faire sans
perdre trop de temps à réinventer la roue et à trouver des
réponses aux problèmes courants.

Certains ordinateurs de bureau et ordinateurs portables sont


livrés avec Linux préinstallé. Ou vous pouvez l'installer sur
votre ordinateur Windows ou sur un Mac.

Mais vous n'avez pas besoin de perturber votre ordinateur


existant juste pour avoir une idée du fonctionnement de Linux.

Je n'ai pas d'ordinateur Linux.

Si vous utilisez un Mac, il vous suffit de savoir que sous le capot,


macOS est un système d'exploitation UNIX. Il partage beaucoup
des mêmes idées et logiciels qu'un système GNU/Linux utilise,
car GNU/Linux est une alternative libre à UNIX.

UNIX est un terme générique qui regroupe de nombreux systèmes


d'exploitation utilisés dans les grandes entreprises et institutions,
à partir des années 70
Le terminal macOS vous donne accès aux mêmes commandes
exactes que celles décrites dans le reste de ce manuel.

Microsoft a un sous-système Windows officiel pour Linux que


vous pouvez (et devriez !) installer sur Windows. Cela vous
donnera la possibilité d'exécuter Linux de manière très simple
sur votre PC.
Mais la grande majorité du temps, vous exécuterez un
ordinateur Linux dans le cloud via un VPS (Virtual Private
Server) comme DigitalOcean.
Qu'est-ce qu'un shell Linux ?
Un shell est un interpréteur de commandes qui expose une
interface à l'utilisateur pour travailler avec le système
d'exploitation sous-jacent.

Il vous permet d'exécuter des opérations à l'aide de texte et de


commandes, et il offre aux utilisateurs des fonctionnalités
avancées telles que la possibilité de créer des scripts.

C'est important : les shells vous permettent d'effectuer les


choses d'une manière plus optimisée qu'une GUI (Graphical
User Interface) ne pourrait jamais vous le permettre. Les outils
de ligne de commande peuvent offrir de nombreuses options de
configuration différentes sans être trop complexes à utiliser.

Il existe de nombreux types de coquillages. Cet article se


concentre sur les shells Unix, ceux que vous trouverez
couramment sur les ordinateurs Linux et macOS.

De nombreux types de shells différents ont été créés pour ces


systèmes au fil du temps, et certains d'entre eux dominent
l'espace : Bash, Csh, Zsh, Fish et bien d'autres !

Tous les coquillages proviennent du Bourne Shell,


appelé sh. "Bourne" parce que son créateur était Steve Bourne.
Bash signifie Bourne-again shell . shétait propriétaire et non
open source, et Bash a été créé en 1989 pour créer une
alternative libre au projet GNU et à la Free Software
Foundation. Étant donné que les projets devaient payer pour
utiliser le shell Bourne, Bash est devenu très populaire.
Si vous utilisez un Mac, essayez d'ouvrir votre terminal Mac. Par
défaut, il exécute ZSH (ou, pré-Catalina, Bash).

Vous pouvez configurer votre système pour exécuter n'importe


quel type de shell - par exemple, j'utilise le shell Fish.
Chaque shell a ses propres fonctionnalités uniques et son
utilisation avancée, mais ils partagent tous une fonctionnalité
commune : ils peuvent vous permettre d'exécuter des
programmes et ils peuvent être programmés.

Dans la suite de ce manuel, nous verrons en détail les


commandes les plus courantes que vous utiliserez.

manLa commande Linux

La première commande que je vais vous présenter vous aidera à


comprendre toutes les autres commandes.

A chaque fois que je ne sais pas utiliser une commande, je


tape man <command>pour obtenir le manuel :

Ceci est une page homme (de _manual_ ). Les pages de manuel
sont un outil essentiel pour apprendre en tant que
développeur. Ils contiennent tellement d'informations que
parfois c'est presque trop.
La capture d'écran ci-dessus n'est qu'un des 14 écrans
d'explication de la lscommande.
La plupart du temps, lorsque j'ai besoin d'apprendre
rapidement une commande, j'utilise ce site appelé pages
tldr : https://tldr.sh . C'est une commande que vous pouvez
installer, que vous exécutez ensuite comme ceci : tldr
<command>. Il vous donne un aperçu très rapide d'une
commande, avec quelques exemples pratiques de scénarios
d'utilisation courants :

Ce n'est pas un substitut de man, mais un outil pratique pour


éviter de se perdre dans l'énorme quantité d'informations
présentes dans une manpage. Ensuite, vous pouvez utiliser
la manpage pour explorer toutes les différentes options et
paramètres que vous pouvez utiliser sur une commande.
lsLa commande Linux
À l'intérieur d'un dossier, vous pouvez répertorier tous les
fichiers contenus dans le dossier à l'aide de la lscommande :
ls
Si vous ajoutez un nom ou un chemin de dossier, le contenu de
ce dossier sera imprimé :

ls /bin

lsaccepte beaucoup d'options. Une de mes combinaisons


préférées est -al. Essayez-le :
ls -al /bin
Par rapport à la commande simple ls, cela renvoie beaucoup
plus d'informations.
Vous avez, de gauche à droite :

• les autorisations de fichier (et si votre système prend en


charge les ACL, vous obtenez également un indicateur ACL)
• le nombre de liens vers ce fichier
• le propriétaire du dossier
• le groupe du fichier
• la taille du fichier en octets
• la date/heure de la dernière modification du fichier
• le nom du fichier
Cet ensemble de données est généré par l' loption. L' aoption
affiche également les fichiers cachés.
Les fichiers cachés sont des fichiers qui commencent par un
point ( .).
cdLa commande Linux
Une fois que vous avez un dossier, vous pouvez vous y déplacer
à l'aide de
la cdcommande. cdsignifie changer de répertoire . Vous
l'invoquez en spécifiant un dossier dans lequel vous
déplacer. Vous pouvez spécifier un nom de dossier ou un
chemin d'accès complet.
Exemple:

mkdir fruits
cd fruits
Vous êtes maintenant dans le fruitsdossier.
Vous pouvez utiliser le ..chemin spécial pour indiquer le
dossier parent :
cd .. #back to the home folder
Le caractère # indique le début du commentaire, qui dure toute
la ligne après sa découverte.

Vous pouvez l'utiliser pour former un chemin :

mkdir fruits
mkdir cars
cd fruits
cd ../cars
Il existe un autre indicateur de chemin spécial qui est .et
indique le dossier actuel .
Vous pouvez également utiliser des chemins absolus, qui
partent du dossier racine/ :
cd /etc

pwdLa commande Linux


Chaque fois que vous vous sentez perdu dans le système de
fichiers, appelez la pwdcommande pour savoir où vous êtes :
pwd
Il imprimera le chemin du dossier actuel.

mkdirLa commande Linux


Vous créez des dossiers à l'aide de la mkdircommande :
mkdir fruits
Vous pouvez créer plusieurs dossiers avec une seule
commande :

mkdir dogs cars


Vous pouvez également créer plusieurs dossiers imbriqués en
ajoutant l' -poption :
mkdir -p fruits/apples
Les options des commandes UNIX prennent généralement cette
forme. Vous les ajoutez juste après le nom de la commande et ils
modifient le comportement de la commande. Vous pouvez
également souvent combiner plusieurs options.

Vous pouvez trouver les options prises en charge par une


commande en tapant man <commandname>. Essayez maintenant
avec man mkdirpar exemple (appuyez sur la qtouche pour
quitter la page de manuel). Les pages de manuel sont
l'incroyable aide intégrée pour UNIX.
rmdirLa commande Linux
Tout comme vous pouvez créer un dossier à l'aide mkdirde ,
vous pouvez supprimer un dossier à l'aide de rmdir:
mkdir fruits
rmdir fruits
Vous pouvez également supprimer plusieurs dossiers à la fois :

mkdir fruits cars


rmdir fruits cars
Le dossier que vous supprimez doit être vide.

Pour supprimer des dossiers contenant des fichiers, nous


utiliserons la rmcommande plus générique qui supprime les
fichiers et les dossiers, en utilisant l' -rfoption :
rm -rf fruits cars
Soyez prudent car cette commande ne demande pas de
confirmation et elle supprimera immédiatement tout ce que
vous lui demandez de supprimer.
Il n'y a pas de corbeille lors de la suppression de fichiers à
partir de la ligne de commande, et la récupération de fichiers
perdus peut être difficile.
mvLa commande Linux
Une fois que vous avez un fichier, vous pouvez le déplacer à
l'aide de la mvcommande. Vous spécifiez le chemin actuel du
fichier et son nouveau chemin :
touch test
mv pear new_pear
Le pearfichier est maintenant déplacé vers new_pear. C'est ainsi
que vous renommez les fichiers et les dossiers.
Si le dernier paramètre est un dossier, le fichier situé dans le
chemin du premier paramètre sera déplacé dans ce
dossier. Dans ce cas, vous pouvez spécifier une liste de fichiers
et ils seront tous déplacés dans le chemin du dossier identifié
par le dernier paramètre :

touch pear
touch apple
mkdir fruits
mv pear apple fruits #pear and apple moved to the fruits folder

cpLa commande Linux


Vous pouvez copier un fichier à l'aide de la cpcommande :
touch test
cp apple another_apple
Pour copier des dossiers, vous devez ajouter l' -roption de copie
récursive de tout le contenu du dossier :
mkdir fruits
cp -r fruits cars

openLa commande Linux


La opencommande vous permet d'ouvrir un fichier en utilisant
cette syntaxe :
open <filename>
Vous pouvez également ouvrir un répertoire qui, sur macOS,
ouvre l'application Finder avec le répertoire actuel ouvert :
open <directory name>
Je l'utilise tout le temps pour ouvrir le répertoire courant :

open .
Le .symbole spécial pointe vers le répertoire courant,
comme ..pointe vers le répertoire parent
La même commande peut également être utilisée pour exécuter
une application :

open <application name>

touchLa commande Linux


Vous pouvez créer un fichier vide à l'aide de
la touchcommande :
touch apple
Si le fichier existe déjà, il ouvre le fichier en mode écriture et
l'horodatage du fichier est mis à jour.

findLa commande Linux


La findcommande peut être utilisée pour rechercher des
fichiers ou des dossiers correspondant à un modèle de
recherche particulier. Il effectue une recherche récursive.
Apprenons à l'utiliser par exemple.

Trouvez tous les fichiers sous l'arborescence actuelle qui ont


l' .jsextension et imprimez le chemin relatif de chaque fichier
qui correspond :
find . -name '*.js'
Il est important d'utiliser des guillemets autour des caractères
spéciaux *pour éviter que le shell ne les interprète.
Trouver les répertoires sous l'arborescence actuelle
correspondant au nom "src":

find . -type d -name src


Utilisez -type fpour rechercher uniquement des fichiers ou -
type lpour rechercher uniquement des liens symboliques.
-nameest sensible à la casse. utiliser -inamepour effectuer une
recherche insensible à la casse.
Vous pouvez effectuer une recherche sous plusieurs arbres
racine :

find folder1 folder2 -name filename.txt


Recherchez les répertoires sous l'arborescence actuelle
correspondant au nom "node_modules" ou "public":

find . -type d -name node_modules -or -name public


Vous pouvez également exclure un chemin en utilisant -not -
path:
find . -type d -name '*.md' -not -path 'node_modules/*'
Vous pouvez rechercher des fichiers contenant plus de
100 caractères (octets) :

find . -type f -size +100c


Rechercher des fichiers supérieurs à 100 Ko mais inférieurs à
1 Mo :

find . -type f -size +100k -size -1M


Rechercher les fichiers modifiés il y a plus de 3 jours :

find . -type f -mtime +3


Rechercher les fichiers modifiés au cours des dernières
24 heures :

find . -type f -mtime -1


Vous pouvez supprimer tous les fichiers correspondant à une
recherche en ajoutant l' -deleteoption. Cela supprime tous les
fichiers modifiés au cours des dernières 24 heures :
find . -type f -mtime -1 -delete
Vous pouvez exécuter une commande sur chaque résultat de la
recherche. Dans cet exemple, nous exécutons catpour imprimer
le contenu du fichier :
find . -type f -exec cat {} \;
Remarquez la terminaison \;. {}est rempli avec le nom du
fichier au moment de l'exécution.
lnLa commande Linux
La lncommande fait partie des commandes du système de
fichiers Linux.
Il est utilisé pour créer des liens. Qu'est-ce qu'un lien ? C'est
comme un pointeur vers un autre fichier, ou un fichier qui
pointe vers un autre fichier. Vous connaissez peut-être les
raccourcis Windows. Ils sont similaires.

Nous avons 2 types de liens : les liens durs et les liens


souples .
Liens durs
Les liens physiques sont rarement utilisés. Ils ont quelques
limitations : vous ne pouvez pas créer de liens vers des
répertoires et vous ne pouvez pas créer de liens vers des
systèmes de fichiers externes (disques).

Un lien physique est créé en utilisant la syntaxe suivante :

ln <original> <link>
Par exemple, disons que vous avez un fichier appelé
recettes.txt. Vous pouvez créer un lien physique vers celui-ci en
utilisant :

ln recipes.txt newrecipes.txt
Le nouveau lien physique que vous avez créé est indiscernable
d'un fichier normal :
Désormais, chaque fois que vous modifierez l'un de ces fichiers,
le contenu sera mis à jour pour les deux.

Si vous supprimez le fichier d'origine, le lien contiendra


toujours le contenu du fichier d'origine, car il n'est pas supprimé
tant qu'un lien physique n'y pointe pas.
Liens symboliques
Les liens symboliques sont différents. Ils sont plus puissants car
vous pouvez les lier à d'autres systèmes de fichiers et à des
répertoires. Mais gardez à l'esprit que lorsque l'original est
supprimé, le lien sera rompu.

Vous créez des liens symboliques en utilisant l' -soption de ln:


ln -s <original> <link>
Par exemple, disons que vous avez un fichier appelé
recettes.txt. Vous pouvez créer un lien symbolique vers celui-ci
en utilisant :

ln -s recipes.txt newrecipes.txt
Dans ce cas, vous pouvez voir qu'il y a un lindicateur spécial
lorsque vous listez le fichier en utilisant ls -al. Le nom du
fichier a un @à la fin, et il est également coloré différemment si
vous avez activé les couleurs :

Maintenant, si vous supprimez le fichier d'origine, les liens


seront rompus et le shell vous indiquera "Aucun fichier ou
répertoire de ce type" si vous essayez d'y accéder :
gzipLa commande Linux
Vous pouvez compresser un fichier à l'aide du protocole de
compression gzip nommé LZ77 à l'aide de la gzipcommande.
Voici l'utilisation la plus simple :

gzip filename
Cela compressera le fichier et lui ajoutera une .gzextension. Le
fichier d'origine est supprimé.
Pour éviter cela, vous pouvez utiliser l' -coption et utiliser la
redirection de sortie pour écrire la sortie dans
le filename.gzfichier :
gzip -c filename > filename.gz
L' -coption spécifie que la sortie ira dans le flux de sortie
standard, laissant le fichier d'origine intact.
Ou vous pouvez utiliser l' -koption :
gzip -k filename
Il existe différents niveaux de compression. Plus la compression
est importante, plus il faudra de temps pour compresser (et
décompresser). Les niveaux vont de 1 (compression la plus
rapide, la pire) à 9 (compression la plus lente, meilleure), et la
valeur par défaut est 6.
Vous pouvez choisir un niveau spécifique avec l' -
<NUMBER>option :
gzip -1 filename
Vous pouvez compresser plusieurs fichiers en les listant :

gzip filename1 filename2


Vous pouvez compresser tous les fichiers d'un répertoire, de
manière récursive, en utilisant l' -roption :
gzip -r a_folder
L' -voption imprime les informations de pourcentage de
compression. Voici un exemple d'utilisation avec l' -koption
(conserver) :

gzippeut également être utilisé pour décompresser un fichier,


en utilisant l' -doption :
gzip -d filename.gz

gunzipLa commande Linux


La gunzipcommande est fondamentalement équivalente à
la gzipcommande, sauf que l' -doption est toujours activée par
défaut.
La commande peut être appelée de cette manière :
gunzip filename.gz
Cela décompressera et supprimera l' .gzextension, mettant le
résultat dans le filenamefichier. Si ce fichier existe, il l'écrasera.
Vous pouvez extraire vers un nom de fichier différent à l'aide de
la redirection de sortie à l'aide de l' -coption :
gunzip -c filename.gz > anotherfilename

tarLa commande Linux


La tarcommande est utilisée pour créer une archive, regroupant
plusieurs fichiers dans un seul fichier.
Son nom vient du passé et signifie archive sur bande (à l'époque
où les archives étaient stockées sur des bandes).
Cette commande crée une archive nommée archive.taravec le
contenu de file1et file2:
tar -cf archive.tar file1 file2
L' coption signifie créer . L' foption est utilisée pour écrire dans le
fichier de l'archive.
Pour extraire des fichiers d'une archive dans le dossier courant,
utilisez :

tar -xf archive.tar


l' xoption signifie extrait .
Et pour les extraire dans un répertoire spécifique, utilisez :

tar -xf archive.tar -C directory


Vous pouvez également simplement lister les fichiers contenus
dans une archive :
tarest souvent utilisé pour créer une archive compressée , en
compressant l'archive.
Cela se fait en utilisant l' zoption :
tar -czf archive.tar.gz file1 file2
C'est comme créer une archive tar, puis l'exécuter gzip.
Pour désarchiver une archive gzippée, vous pouvez
utiliser gunzip, ou gzip -d, puis la désarchiver. Mais tar -
xfreconnaîtra qu'il s'agit d'une archive gzippée et le fera pour
vous :
tar -xf archive.tar.gz

aliasLa commande Linux


Il est courant de toujours exécuter un programme avec un
ensemble d'options que vous aimez utiliser.

Par exemple, prenez la lscommande. Par défaut, il imprime très


peu d'informations :
Mais si vous utilisez l' -aloption, il imprimera quelque chose de
plus utile, y compris la date de modification du fichier, la taille,
le propriétaire et les autorisations. Il listera également les
fichiers cachés (fichiers commençant par un .):
Vous pouvez créer une nouvelle commande, par exemple j'aime
l'appeler ll, c'est un alias de ls -al.
Tu fais comme ça :

alias ll='ls -al'


Une fois que vous l'avez fait, vous pouvez appeler llcomme s'il
s'agissait d'une commande UNIX normale :

Appeler maintenant aliassans aucune option listera les alias


définis :
L'alias fonctionnera jusqu'à la fermeture de la session du
terminal.

Pour le rendre permanent, vous devez l'ajouter à la


configuration du shell. Cela peut
être ~/.bashrcou ~/.profileou ~/.bash_profilesi vous utilisez
le shell Bash, selon le cas d'utilisation.
Soyez prudent avec les guillemets si vous avez des variables
dans la commande : si vous utilisez des guillemets doubles, la
variable est résolue au moment de la définition. Si vous utilisez
des guillemets simples, le problème est résolu au moment de
l'invocation. Ces 2 sont différents :

alias lsthis="ls $PWD"


alias lscurrent='ls $PWD'
$PWD fait référence au dossier actuel dans lequel se trouve le
shell. Si vous naviguez maintenant vers un nouveau
dossier, lscurrentrépertorie les fichiers dans le nouveau
dossier, lsthistout en répertoriant toujours les fichiers dans le
dossier où vous vous trouviez lorsque vous avez défini l'alias.
catLa commande Linux
Semblable à tailcertains égards, nous avons cat. Sauf catpeut
également ajouter du contenu à un fichier, ce qui le rend super
puissant.
Dans son utilisation la plus simple, catimprime le contenu d'un
fichier sur la sortie standard :
cat file
Vous pouvez imprimer le contenu de plusieurs fichiers :

cat file1 file2


et en utilisant l'opérateur de redirection de sortie, >vous pouvez
concaténer le contenu de plusieurs fichiers dans un nouveau
fichier :
cat file1 file2 > file3
Vous >>pouvez ajouter le contenu de plusieurs fichiers dans un
nouveau fichier, en le créant s'il n'existe pas :
cat file1 file2 >> file3
Lorsque vous examinez les fichiers de code source, il est utile de
voir les numéros de ligne. Vous pouvez les faire catimprimer en
utilisant l' -noption :
cat -n file1
Vous ne pouvez ajouter un numéro qu'aux lignes non vides à
l'aide de -b, ou vous pouvez également supprimer toutes les
multiples lignes vides à l'aide de -s.
catest souvent utilisé en combinaison avec l'opérateur
pipe |pour alimenter le contenu d'un fichier en entrée d'une
autre commande : cat file1 | anothercommand.
lessLa commande Linux
La lesscommande est celle que j'utilise beaucoup. Il vous
montre le contenu stocké dans un fichier, dans une interface
utilisateur agréable et interactive.
Usage: less <filename>.
Une fois dans une lesssession, vous pouvez quitter en appuyant
sur q.
Vous pouvez naviguer dans le contenu du fichier à l'aide
des touches upet , ou à l'aide des touches et pour naviguer page
par page. Vous pouvez également sauter à la fin du fichier en
appuyant sur et revenir au début en appuyant sur .downspace
barbGg
Vous pouvez rechercher du contenu dans le fichier en appuyant
sur /et en tapant un mot à rechercher. Cela recherche vers
l'avant . Vous pouvez rechercher en arrière en utilisant
le ?symbole et en tapant un mot.
Cette commande visualise simplement le contenu du
fichier. Vous pouvez ouvrir directement un éditeur en appuyant
sur v. Il utilisera l'éditeur système, qui dans la plupart des cas
est vim.
Appuyez sur la Ftouche pour accéder au mode suivi ou au mode
montre . Lorsque le fichier est modifié par quelqu'un d'autre, par
exemple à partir d'un autre programme, vous pouvez voir les
modifications en direct .
Cela ne se produit pas par défaut et vous ne voyez que la version
du fichier au moment où vous l'avez ouvert. Vous devez appuyer
sur ctrl-Cpour quitter ce mode. Dans ce cas, le comportement
est similaire à l'exécution de la tail -f <filename>commande.
Vous pouvez ouvrir plusieurs fichiers et les parcourir en
utilisant :n(pour passer au fichier suivant) et :p(pour passer au
précédent).
tailLa commande Linux
Le meilleur cas d'utilisation de la queue à mon avis est lorsqu'il
est appelé avec l' -foption. Il ouvre le fichier à la fin et surveille
les modifications apportées au fichier.
Chaque fois qu'il y a du nouveau contenu dans le fichier, il est
imprimé dans la fenêtre. C'est idéal pour regarder les fichiers
journaux, par exemple :

tail -f /var/log/system.log
Pour quitter, appuyez sur ctrl-C.
Vous pouvez imprimer les 10 dernières lignes d'un fichier :

tail -n 10 <filename>
Vous pouvez imprimer tout le contenu du fichier à partir d'une
ligne spécifique en utilisant +avant le numéro de ligne :
tail -n +10 <filename>
tailpeut faire beaucoup plus et comme toujours mon conseil est
de vérifier man tail.
wcLa commande Linux
La wccommande nous donne des informations utiles sur un
fichier ou une entrée qu'il reçoit via des tuyaux.
echo test >> test.txt
wc test.txt
1 1 5 test.txt
Exemple via des pipes, nous pouvons compter la sortie de
l'exécution de la ls -alcommande :
ls -al | wc
6 47 284
La première colonne retournée est le nombre de lignes. Le
second est le nombre de mots. Le troisième est le nombre
d'octets.

Nous pouvons lui dire de compter simplement les lignes:

wc -l test.txt
ou juste les mots :

wc -w test.txt
ou juste les octets :

wc -c test.txt
Les octets dans les jeux de caractères ASCII correspondent à des
caractères. Mais avec les jeux de caractères non ASCII, le
nombre de caractères peut différer car certains caractères
peuvent prendre plusieurs octets (par exemple, cela se produit
en Unicode).

Dans ce cas, le -mdrapeau vous aidera à obtenir la valeur


correcte :
wc -m test.txt

grepLa commande Linux


La grepcommande est un outil très utile. Lorsque vous le
maîtriserez, cela vous aidera énormément dans votre codage
quotidien.
Si vous vous posez la question, grepsignifie global regular
expression print .
Vous pouvez l'utiliser greppour rechercher dans des fichiers ou
le combiner avec des canaux pour filtrer la sortie d'une autre
commande.
Par exemple, voici comment trouver les occurrences de
la document.getElementByIdligne dans le index.mdfichier :
grep -n document.getElementById index.md
En utilisant l' -noption, il affichera les numéros de ligne :
grep -n document.getElementById index.md
Une chose très utile est de dire à grep d'imprimer 2 lignes avant
et 2 lignes après la ligne correspondante pour vous donner plus
de contexte. Cela se fait en utilisant l' -Coption, qui accepte un
certain nombre de lignes :
grep -nC 2 document.getElementById index.md

La recherche est sensible à la casse par défaut. Utilisez le -


idrapeau pour le rendre insensible.
Comme mentionné, vous pouvez utiliser grep pour filtrer la
sortie d'une autre commande. Nous pouvons répliquer la même
fonctionnalité que ci-dessus en utilisant :

less index.md | grep -n document.getElementById


La chaîne de recherche peut être une expression régulière, ce
qui la rend greptrès puissante.
Une autre chose que vous pourriez trouver très utile est
d'inverser le résultat, en excluant les lignes qui correspondent à
une chaîne particulière, en utilisant l' -voption :
sortLa commande Linux
Supposons que vous ayez un fichier texte contenant les noms
des chiens :
Cette liste n'est pas ordonnée.

La sortcommande vous aide à les trier par nom :

Utilisez l' roption pour inverser l'ordre :


Le tri par défaut est sensible à la casse et alphabétique. Utilisez
l' --ignore-caseoption de tri insensible à la casse et l' -noption
de tri en utilisant un ordre numérique.
Si le fichier contient des lignes en double :

Vous pouvez utiliser l' -uoption pour les supprimer :


sortne fonctionne pas seulement sur les fichiers, comme le font
de nombreuses commandes UNIX - il fonctionne également avec
les canaux. Vous pouvez donc l'utiliser sur la sortie d'une autre
commande. Par exemple vous pouvez commander les fichiers
renvoyés par lsavec :
ls | sort
sortest très puissant et a beaucoup plus d'options, que vous
pouvez explorer en appelant man sort.
uniqLa commande Linux
uniqest une commande qui vous aide à trier les lignes de texte.
Vous pouvez obtenir ces lignes à partir d'un fichier ou en
utilisant des canaux à partir de la sortie d'une autre commande :

uniq dogs.txt

ls | uniq
Vous devez tenir compte de cet élément clé : uniqne détectera
que les lignes en double adjacentes.
Cela implique que vous l'utiliserez très probablement avec sort:
sort dogs.txt | uniq
La sortcommande a sa propre façon de supprimer les doublons
avec l' option -u( unique ). Mais uniqa plus de puissance.
Par défaut, il supprime les lignes en double :
Vous pouvez lui dire de n'afficher que les lignes en double, par
exemple, avec l' -doption :
sort dogs.txt | uniq -d
Vous pouvez utiliser l' -uoption pour afficher uniquement les
lignes non dupliquées :

Vous pouvez compter les occurrences de chaque ligne avec l' -


coption :
Utilisez la combinaison spéciale :

sort dogs.txt | uniq -c | sort -nr


pour ensuite trier ces lignes par les plus fréquentes :

diffLa commande Linux


diffest une commande pratique. Supposons que vous ayez 2
fichiers contenant presque les mêmes informations, mais que
vous ne trouviez pas la différence entre les deux.
difftraitera les fichiers et vous dira quelle est la différence.
Supposons que vous ayez 2 fichiers
: dogs.txtet moredogs.txt. La différence est
que moredogs.txtcontient un autre nom de chien :
diff dogs.txt moredogs.txtvous dira que le deuxième fichier a
une ligne de plus, la ligne 3 avec la ligne Vanille:
Si vous inversez l'ordre des fichiers, il vous indiquera qu'il
manque la ligne 3 du second fichier, dont le contenu est Vanille:

L'utilisation de l' -yoption comparera les 2 fichiers ligne par


ligne :
L' -uoption vous sera cependant plus familière, car c'est la
même que celle utilisée par le système de contrôle de version
Git pour afficher les différences entre les versions :

La comparaison des répertoires fonctionne de la même


manière. Vous devez utiliser l' -roption de comparaison
récursive (aller dans des sous-répertoires) :
Si vous êtes intéressé par les fichiers qui diffèrent plutôt que par
le contenu, utilisez les options ret :q
Il existe de nombreuses autres options que vous pouvez
explorer dans la page de manuel en exécutant man diff:

echoLa commande Linux


La echocommande fait un travail simple : elle affiche sur la sortie
l'argument qui lui est passé.
Cet exemple :

echo "hello"
imprimera hellosur le terminal.
Nous pouvons ajouter la sortie à un fichier :

echo "hello" >> output.txt


Nous pouvons interpoler les variables d'environnement :

echo "The path variable is $PATH"


Attention, les caractères spéciaux doivent être protégés par une
barre oblique inverse \. $par exemple:

Ce n'est que le début. Nous pouvons faire de belles choses


lorsqu'il s'agit d'interagir avec les fonctionnalités du shell.
Nous pouvons faire écho aux fichiers du dossier actuel :

echo *
Nous pouvons faire écho aux fichiers du dossier courant qui
commencent par la lettre o:
echo o*
Toute commande et fonctionnalité Bash (ou tout shell que vous
utilisez) valide peut être utilisée ici.

Vous pouvez imprimer le chemin de votre dossier personnel :

echo ~

Vous pouvez également exécuter des commandes et imprimer le


résultat sur la sortie standard (ou dans un fichier, comme vous
l'avez vu) :

echo $(ls -al)


Notez que les espaces blancs ne sont pas conservés par
défaut. Pour ce faire, vous devez envelopper la commande de
guillemets doubles :
Vous pouvez générer une liste de chaînes, par exemple des
plages :

echo {1..5}

chownLa commande Linux


Chaque fichier/répertoire d'un système d'exploitation comme
Linux ou macOS (et chaque système UNIX en général) a
un propriétaire .
Le propriétaire d'un fichier peut tout faire avec. Il peut décider
du sort de ce dossier.

Le propriétaire (et l' rootutilisateur) peut également changer le


propriétaire en un autre utilisateur, en utilisant
la chowncommande :
chown <owner> <file>
Comme ça:

chown flavio test.txt


Par exemple, si vous avez un fichier qui appartient à root, vous
ne pouvez pas y écrire en tant qu'un autre utilisateur :

Vous pouvez utiliser chownpour vous transférer la propriété :

Il est assez courant de devoir changer le propriétaire d'un


répertoire, et récursivement tous les fichiers qu'il contient, ainsi
que tous les sous-répertoires et les fichiers qu'ils contiennent
également.

Vous pouvez le faire en utilisant le -Rdrapeau :


chown -R <owner> <file>
Les fichiers/répertoires n'ont pas seulement un propriétaire, ils
ont aussi un groupe . Grâce à cette commande, vous pouvez
modifier cela simultanément pendant que vous modifiez le
propriétaire :
chown <owner>:<group> <file>
Exemple:

chown flavio:users test.txt


Vous pouvez aussi simplement changer le groupe d'un fichier en
utilisant la chgrpcommande :
chgrp <group> <filename>

chmodLa commande Linux


Chaque fichier des systèmes d'exploitation Linux / macOS (et
des systèmes UNIX en général) dispose de 3 autorisations :
lecture, écriture et exécution.

Allez dans un dossier et exécutez la ls -alcommande.


Les chaînes étranges que vous voyez sur chaque ligne de fichier,
comme drwxr-xr-x, définissent les autorisations du fichier ou du
dossier.
Disséquons-le.

La première lettre indique le type de fichier :

• -signifie que c'est un fichier normal


• dsignifie que c'est un répertoire
• lsignifie que c'est un lien
Ensuite, vous avez 3 ensembles de valeurs :

• Le premier ensemble représente les autorisations


du propriétaire du fichier
• Le deuxième ensemble représente les autorisations des
membres du groupe auquel le fichier est associé
• Le troisième ensemble représente les autorisations de tous
les autres
Ces ensembles sont composés de 3 valeurs. rwxsignifie que cette
personne spécifique a un accès en lecture, en écriture et en
exécution. Tout ce qui est supprimé est remplacé par un -, ce qui
vous permet de former diverses combinaisons de valeurs et
d'autorisations relatives : rw-, r--, r-x, etc.
Vous pouvez modifier les autorisations accordées à un fichier à
l'aide de la chmodcommande.
chmodpeut être utilisé de 2 manières. Le premier utilise des
arguments symboliques, le second utilise des arguments
numériques. Commençons d'abord par les symboles, ce qui est
plus intuitif.
Vous tapez chmodsuivi d'un espace et d'une lettre :
• areprésente tout
• ureprésente l' utilisateur
• gsignifie groupe
• oreprésente les autres
Ensuite, vous tapez soit +ou -pour ajouter une autorisation, soit
pour la supprimer. Ensuite, vous entrez un ou plusieurs
symboles d'autorisation ( r, w, x).
Tous suivis du nom du fichier ou du dossier.

Voici quelques exemples:

chmod a+r filename #everyone can now read


chmod a+rw filename #everyone can now read and write
chmod o-rwx filename #others (not the owner, not in the same group of the file) cannot read,
write or execute the file
Vous pouvez appliquer les mêmes autorisations à plusieurs
personas en ajoutant plusieurs lettres avant le +/ -:
chmod og-r filename #other and group can't read any more
Si vous modifiez un dossier, vous pouvez appliquer les
autorisations à chaque fichier contenu dans ce dossier à l'aide
de l' -rindicateur (récursif).
Les arguments numériques sont plus rapides mais je les trouve
difficiles à retenir lorsque vous ne les utilisez pas au jour le
jour. Vous utilisez un chiffre qui représente les autorisations de
la personne. Cette valeur numérique peut être au maximum de
7, et elle est calculée de la manière suivante :
• 1si a l'autorisation d'exécution
• 2si a l'autorisation d'écriture
• 4si a l'autorisation de lecture
Cela nous donne 4 combinaisons :

• 0pas de permissions
• 1peut exécuter
• 2peut écrire
• 3peut écrire, exécuter
• 4Peux lire
• 5peut lire, exécuter
• 6sait lire, écrire
• 7peut lire, écrire et exécuter
Nous les utilisons par paires de 3, pour définir les autorisations
de tous les 3 groupes :

chmod 777 filename


chmod 755 filename
chmod 644 filename

umaskLa commande Linux


Lorsque vous créez un fichier, vous n'avez pas à décider des
autorisations à l'avance. Les autorisations ont des valeurs par
défaut.

Ces valeurs par défaut peuvent être contrôlées et modifiées à


l'aide de la umaskcommande.
Taper umasksans arguments vous montrera le umask actuel,
dans ce cas 0022:
Qu'est-ce que cela 0022signifie? C'est une valeur octale qui
représente les autorisations.
Une autre valeur courante est 0002.
Utilisez umask -Spour voir une notation lisible par l'homme :
Dans ce cas, l'utilisateur ( u), propriétaire du fichier, dispose des
droits de lecture, d'écriture et d'exécution sur les fichiers.
Les autres utilisateurs appartenant au même groupe ( g) ont les
droits de lecture et d'exécution, comme tous les autres
utilisateurs ( o).
Dans la notation numérique, nous changeons généralement les 3
derniers chiffres.

Voici une liste qui donne une signification au nombre :

• 0lire, écrire, exécuter


• 1lire et écrire
• 2lire et exécuter
• 3lecture seulement
• 4écrire et exécuter
• 5écrire seulement
• 6exécuter uniquement
• 7pas de permissions
Notez que cette notation numérique diffère de celle que nous
utilisons dans chmod.
Nous pouvons définir une nouvelle valeur pour le masque en
définissant la valeur au format numérique :

umask 002
ou vous pouvez modifier l'autorisation d'un rôle spécifique :

umask g+r

duLa commande Linux


La ducommande calculera la taille d'un répertoire dans son
ensemble :
du

Le 32nombre ici est une valeur exprimée en octets.


L'exécution du *calculera la taille de chaque fichier
individuellement :
Vous pouvez configurer dul'affichage des valeurs en mégaoctets
à l'aide de du -m, et en gigaoctets à l'aide de du -g.
L' -hoption affichera une notation lisible par l'homme pour les
tailles, s'adaptant à la taille :
L'ajout de l' -aoption imprimera également la taille de chaque
fichier dans les répertoires :

Une chose pratique est de trier les répertoires par taille :

du -h <directory> | sort -nr


puis redirigez vers headpour n'obtenir que les 10 premiers
résultats :
dfLa commande Linux
La dfcommande est utilisée pour obtenir des informations sur
l'utilisation du disque.
Sa forme de base imprimera des informations sur les volumes
montés :
L'utilisation de l' -hoption ( df -h) affichera ces valeurs dans un
format lisible par l'homme :
Vous pouvez également spécifier un nom de fichier ou de
répertoire pour obtenir des informations sur le volume
spécifique sur lequel il réside :

basenameLa commande Linux


Supposons que vous ayez un chemin vers un fichier, par
exemple /Users/flavio/test.txt.
Fonctionnement

basename /Users/flavio/test.txt
renverra la test.txtchaîne :
Si vous exécutez basenamesur une chaîne de chemin qui pointe
vers un répertoire, vous obtiendrez le dernier segment du
chemin. Dans cet exemple, /Users/flavioest un répertoire :
dirnameLa commande Linux
Supposons que vous ayez un chemin vers un fichier, par
exemple /Users/flavio/test.txt.
Fonctionnement

dirname /Users/flavio/test.txt
renverra la /Users/flaviochaîne :

psLa commande Linux


Votre ordinateur exécute en permanence des tonnes de
processus différents.

Vous pouvez tous les inspecter à l'aide de la pscommande :


Il s'agit de la liste des processus lancés par l'utilisateur en cours
d'exécution dans la session en cours.

Ici, j'ai quelques fishinstances de shell, principalement ouvertes


par VS Code dans l'éditeur, et une instance d'Hugo exécutant
l'aperçu de développement d'un site.
Ce ne sont que les commandes attribuées à l'utilisateur
actuel. Pour lister tous les processus, nous devons passer
certaines options à ps.
Le plus courant que j'utilise est ps ax:
L' aoption est utilisée pour répertorier également les processus
d'autres utilisateurs, pas seulement les vôtres. xmontre les
processus non liés à un terminal (non initiés par les utilisateurs
via un terminal).
Comme vous pouvez le voir, les commandes les plus longues
sont coupées. Utilisez la commande ps axwwpour continuer la
liste des commandes sur une nouvelle ligne au lieu de la
couper :
Nous devons spécifier w2 fois pour appliquer ce paramètre (ce
n'est pas une faute de frappe).
Vous pouvez rechercher un processus spécifique
combinant grepavec un tuyau, comme ceci :
ps axww | grep "Visual Studio Code"
Les colonnes renvoyées par psreprésentent des informations
clés.
La première information est PID, l'identifiant du processus. Ceci
est essentiel lorsque vous souhaitez référencer ce processus
dans une autre commande, par exemple pour le tuer.
Ensuite, nous avons TTqui nous indique l'identifiant du terminal
utilisé.
Puis STATnous indique l'état du processus:
Iun processus qui est inactif (dormant plus de 20 secondes
environ)
Run processus exécutable
Sun processus qui dort moins de 20 secondes environ
Tun processus arrêté
Uun processus en attente ininterrompue
Zun processus mort (un zombie )
Si vous avez plus d'une lettre, la seconde représente des
informations supplémentaires, qui peuvent être très techniques.
Il est courant d'avoir +ce qui indique que le processus est au
premier plan dans son terminal. ssignifie que le processus est
un leader de session .
TIMEnous indique depuis combien de temps le processus est en
cours d'exécution.
topLa commande Linux
La topcommande est utilisée pour afficher des informations
dynamiques en temps réel sur les processus en cours
d'exécution dans le système.
C'est vraiment pratique pour comprendre ce qui se passe.

Son utilisation est simple - il vous suffit de taper top, et le


terminal sera entièrement immergé dans cette nouvelle vue :

Le processus est de longue haleine. Pour quitter, vous pouvez


taper la qlettre ou ctrl-C.
De nombreuses informations nous sont fournies : le nombre de
processus, combien sont en cours d'exécution ou en sommeil, la
charge du système, l'utilisation du processeur, et bien plus
encore.

Ci-dessous, la liste des processus consommant le plus de


mémoire et de CPU est constamment mise à jour.

Par défaut, comme vous pouvez le voir dans la %CPUcolonne en


surbrillance, ils sont triés par CPU utilisé.
Vous pouvez ajouter un indicateur pour trier les processus en
fonction de la mémoire utilisée :

top -o mem

killLa commande Linux


Les processus Linux peuvent recevoir des signaux et y réagir.
C'est une façon d'interagir avec les programmes en cours
d'exécution.

Le killprogramme peut envoyer une variété de signaux à un


programme.
Ce n'est pas seulement utilisé pour terminer un programme,
comme son nom l'indique, mais c'est sa tâche principale.

Nous l'utilisons de cette façon :

kill <PID>
Par défaut, cela envoie le TERMsignal à l'ID de processus spécifié.
Nous pouvons utiliser des drapeaux pour envoyer d'autres
signaux, notamment :

kill -HUP <PID>


kill -INT <PID>
kill -KILL <PID>
kill -TERM <PID>
kill -CONT <PID>
kill -STOP <PID>
HUPsignifie raccrocher . Il est envoyé automatiquement
lorsqu'une fenêtre de terminal qui a démarré un processus est
fermée avant de terminer le processus.
INTsignifie interrompre , et il envoie le même signal que celui
utilisé lorsque nous appuyons ctrl-Csur le terminal, ce qui met
généralement fin au processus.
KILLn'est pas envoyé au processus, mais au noyau du système
d'exploitation, qui arrête et termine immédiatement le
processus.
TERMsignifie terminer . Le processus le recevra et se terminera
de lui-même. C'est le signal par défaut envoyé par kill.
CONTsignifie continuer . Il peut être utilisé pour reprendre un
processus arrêté.
STOPn'est pas envoyé au processus, mais au noyau du système
d'exploitation, qui arrête immédiatement (mais ne termine pas)
le processus.
Vous pourriez voir des nombres utilisés à la place, comme kill
-1 <PID>. Dans ce cas,
1correspond à HUP.
2correspond à INT.
9correspond à KILL.
15correspond à TERM.
18correspond à CONT.
15correspond à STOP.
killallLa commande Linux
Semblable à la killcommande, killallenverra le signal à
plusieurs processus à la fois au lieu d'envoyer un signal à un
identifiant de processus spécifique.
C'est la syntaxe :

killall <name>
où nameest le nom d'un programme. Par exemple, vous pouvez
avoir plusieurs instances du topprogramme en cours
d'exécution et killall toples terminer toutes.
Vous pouvez spécifier le signal, comme avec kill(et consultez
le killdidacticiel pour en savoir plus sur les types spécifiques
de signaux que nous pouvons envoyer), par exemple :
killall -HUP top

jobsLa commande Linux


Lorsque nous exécutons une commande sous Linux / macOS,
nous pouvons la configurer pour qu'elle s'exécute en arrière-
plan à l'aide du &symbole après la commande.
Par exemple, nous pouvons exécuter topen arrière-plan :
top &
Ceci est très pratique pour les programmes de longue durée.

Nous pouvons revenir à ce programme en utilisant


la fgcommande. Cela fonctionne bien si nous n'avons qu'un seul
travail en arrière-plan, sinon nous devons utiliser le numéro de
travail : fg 1, fg 2et ainsi de suite.
Pour obtenir le numéro de travail, nous utilisons
la jobscommande.
Disons que nous exécutons top &puis top -o mem &, nous avons
donc 2 instances supérieures en cours d'exécution. jobsva nous
dire ceci :
Nous pouvons maintenant revenir à l'un de ceux qui utilisent fg
<jobid>. Pour arrêter à nouveau le programme, nous pouvons
appuyer sur cmd-Z.
L'exécution jobs -limprimera également l'ID de processus de
chaque travail.
bgLa commande Linux
Lorsqu'une commande est en cours d'exécution, vous pouvez la
suspendre à l'aide de ctrl-Z.
La commande s'arrêtera immédiatement et vous reviendrez au
terminal shell.

Vous pouvez reprendre l'exécution de la commande en arrière-


plan, elle continuera donc à s'exécuter mais cela ne vous
empêchera pas de faire d'autres travaux dans le terminal.

Dans cet exemple j'ai arrêté 2 commandes :


Je peux courir bg 1pour reprendre en arrière-plan l'exécution
du job #1.
J'aurais également pu dire bgsans aucune option, car la valeur
par défaut est de choisir le travail n ° 1 dans la liste.
fgLa commande Linux
Lorsqu'une commande s'exécute en arrière-plan, parce que vous
l'avez démarrée avec &à la fin (exemple : top &ou parce que
vous l'avez mise en arrière-plan avec la bgcommande), vous
pouvez la mettre au premier plan en utilisant fg.
Fonctionnement

fg
reprendra au premier plan la dernière tâche qui a été
suspendue.

Vous pouvez également spécifier le travail que vous souhaitez


reprendre au premier plan en transmettant le numéro du
travail, que vous pouvez obtenir à l'aide de la jobscommande.
L'exécution fg 2reprendra la tâche n° 2 :

typeLa commande Linux


Une commande peut être l'un de ces 4 types :
• un exécutable
• un programme intégré au shell
• une fonction shell
• un pseudonyme
La typecommande peut aider à comprendre cela, au cas où nous
voudrions savoir ou si nous sommes simplement curieux. Il vous
dira comment la commande sera interprétée.
La sortie dépendra du shell utilisé. C'est Bash :

C'est Zsh :
C'est du poisson :

L'une des choses les plus intéressantes ici est que pour les alias,
il vous dira à quoi il correspond. Vous pouvez voir l' llalias,
dans le cas de Bash et Zsh, mais Fish le fournit par défaut, il vous
dira donc qu'il s'agit d'une fonction shell intégrée.
whichLa commande Linux
Supposons que vous ayez une commande que vous puissiez
exécuter, car elle se trouve dans le chemin du shell, mais que
vous vouliez savoir où elle se trouve.

Vous pouvez le faire en utilisant which. La commande renverra


le chemin vers la commande spécifiée :

whichne fonctionnera que pour les exécutables stockés sur le


disque, pas les alias ou les fonctions shell intégrées.
nohupLa commande Linux
Parfois, vous devez exécuter un processus de longue durée sur
une machine distante, puis vous devez vous déconnecter.

Ou vous voulez simplement empêcher l'arrêt de la commande


s'il y a un problème de réseau entre vous et le serveur.
La façon d'exécuter une commande même après la déconnexion
ou la fermeture de la session sur un serveur consiste à utiliser
la nohupcommande.
Utilisez nohup <command>pour laisser le processus continuer à
fonctionner même après votre déconnexion.
xargsLa commande Linux
La xargscommande est utilisée dans un shell UNIX pour
convertir l'entrée de l'entrée standard en arguments d'une
commande.
En d'autres termes, grâce à l'utilisation de xargsla sortie d'une
commande est utilisée comme entrée d'une autre commande.
Voici la syntaxe que vous utiliserez :

command1 | xargs command2


Nous utilisons un tube ( |) pour transmettre la sortie
à xargs. Cela se chargera d'exécuter la command2commande, en
utilisant la sortie de command1comme argument(s).
Faisons un exemple simple. Vous souhaitez supprimer certains
fichiers spécifiques d'un répertoire. Ces fichiers sont répertoriés
dans un fichier texte.

Nous avons 3 fichiers : file1, file2, file3.


Dans todelete.txtnous avons une liste de fichiers que nous
voulons supprimer, dans cet exemple file1et file3:
Nous canaliserons la sortie de cat todelete.txtvers
la rmcommande, via xargs.
De cette façon:

cat todelete.txt | xargs rm


C'est le résultat, les fichiers que nous avons listés sont
maintenant supprimés :
La façon dont cela fonctionne est qu'il xargss'exécutera rm2 fois,
une pour chaque ligne renvoyée par cat.
C'est l'utilisation la plus simple de xargs. Nous pouvons utiliser
plusieurs options.
L'un des plus utiles, à mon avis (surtout quand on commence à
apprendre xargs), est -p. L'utilisation de cette option
fera xargsimprimer une invite de confirmation avec l'action
qu'elle va entreprendre :
L' -noption vous permet de dire xargsd'effectuer une itération à
la fois, afin que vous puissiez les confirmer individuellement
avec -p. Ici, nous disons xargsd'effectuer une itération à la fois
avec -n1:

L' -Ioption est une autre largement utilisée. Cela vous permet
d'obtenir la sortie dans un espace réservé, puis vous pouvez
faire diverses choses.
L'une d'elles consiste à exécuter plusieurs commandes :

command1 | xargs -I % /bin/bash -c 'command2 %; command3 %'


Vous pouvez échanger le %symbole que j'ai utilisé ci-dessus avec
n'importe quoi d'autre - c'est une variable.
vimLa commande de l'éditeur Linux
vimest un éditeur de fichiers très populaire, en particulier parmi
les programmeurs. Il est activement développé et fréquemment
mis à jour, et il y a une grande communauté autour de lui. Il y a
même une conférence Vim !
vidans les systèmes modernes est juste un alias pour vim, ce qui
signifie que vij'ai mprouvé.
Vous le démarrez en l'exécutant visur la ligne de commande.
Vous pouvez spécifier un nom de fichier au moment de
l'invocation pour modifier ce fichier spécifique :

vi test.txt
Il faut savoir que Vim a 2 modes principaux :

• mode commande (ou normal )


• mode d'insertion
Lorsque vous démarrez l'éditeur, vous êtes en mode
commande. Vous ne pouvez pas saisir de texte comme vous
l'attendez d'un éditeur basé sur une interface graphique. Vous
devez passer en mode insertion .
Vous pouvez le faire en appuyant sur la itouche . Une fois que
vous faites cela, le -- INSERT --mot apparaît au bas de
l'éditeur :

Vous pouvez maintenant commencer à taper et à remplir l'écran


avec le contenu du fichier :
Vous pouvez vous déplacer dans le fichier avec les touches
fléchées, ou en utilisant les touches h- j- k- l. h-lpour gauche-
droite, j-kpour bas-haut.
Une fois que vous avez terminé l'édition, vous pouvez appuyer
sur la esctouche pour quitter le mode insertion et revenir
au mode commande .
À ce stade, vous pouvez naviguer dans le fichier, mais vous ne
pouvez pas y ajouter de contenu (et faites attention aux touches
sur lesquelles vous appuyez, car il peut s'agir de commandes).

Une chose que vous voudrez peut-être faire maintenant est


d' enregistrer le fichier . Vous pouvez le faire en appuyant
sur :(deux-points), puis sur w.
Vous pouvez enregistrer et quitter en appuyant
sur :puis wet q::wq
Vous pouvez quitter sans sauvegarder en appuyant
sur :puis qet !::q!
Vous pouvez annuler et modifier en allant en mode commande
et en appuyant sur u. Vous pouvez rétablir (annuler une
annulation) en appuyant sur ctrl-r.
Ce sont les bases du travail avec Vim. De là commence un terrier
de lapin dans lequel nous ne pouvons pas entrer dans cette
petite introduction.

Je ne mentionnerai que les commandes qui vous permettront de


commencer à éditer avec Vim :
• appuyer sur la xtouche supprime le caractère actuellement
en surbrillance
• appuyer sur Ava à la fin de la ligne actuellement
sélectionnée
• appuyer 0pour aller au début de la ligne
• aller au premier caractère d'un mot et appuyer sur dsuivi
de wpour supprimer ce mot. Si vous le suivez avec eau lieu
de w, l'espace blanc avant le mot suivant est conservé
• utilisez un nombre entre det wpour supprimer plus d'un
mot, par exemple utilisez d3wpour supprimer 3 mots vers
l'avant
• appuyez sur dsuivi de dpour supprimer toute une ligne
entière. Appuyez sur dsuivi de $pour supprimer toute la
ligne à partir de l'endroit où se trouve le curseur, jusqu'à la
fin
Pour en savoir plus sur Vim, je peux recommander la FAQ de
Vim . Vous pouvez également exécuter la vimtutorcommande,
qui devrait déjà être installée sur votre système et vous aidera
grandement à démarrer votre vimexploration.
emacsLa commande de l'éditeur Linux
emacsest un éditeur génial et il est historiquement considéré
comme l' éditeur des systèmes UNIX. Célèbre,
les viguerres emacsde flammes et les discussions animées ont
causé de nombreuses heures improductives aux développeurs
du monde entier.
emacsest très puissant. Certaines personnes l'utilisent toute la
journée comme une sorte de système d'exploitation
( https://news.ycombinator.com/item?id=19127258 ). Nous ne
parlerons ici que des bases.
Vous pouvez ouvrir une nouvelle session emacs simplement en
invoquant emacs:
Utilisateurs de macOS, arrêtez-vous une seconde maintenant. Si
vous êtes sous Linux, il n'y a pas de problèmes, mais macOS ne
fournit pas d'applications utilisant la GPLv3, et toutes les
commandes UNIX intégrées qui ont été mises à jour vers la GPLv3
n'ont pas été mises à jour.
Bien qu'il y ait un petit problème avec les commandes que j'ai
énumérées jusqu'à présent, dans ce cas, utiliser une version emacs
de 2007 n'est pas exactement la même chose qu'utiliser une
version avec 12 ans d'améliorations et de modifications.
Ce n'est pas un problème avec Vim, qui est à jour. Pour résoudre
ce problème, run brew install emacsand running emacsutilisera
la nouvelle version de Homebrew (assurez-vous
que Homebrew est installé).
Vous pouvez également éditer un fichier existant en
appelant emacs <filename>:
Vous pouvez maintenant commencer l'édition. Une fois que vous
avez terminé, appuyez sur ctrl-xsuivi de ctrl-w. Vous
confirmez le dossier :
et Emacs vous indique que le fichier existe, vous demandant s'il
doit l'écraser :

Répondez yet vous obtenez une confirmation de réussite :


Vous pouvez quitter Emacs en appuyant sur ctrl-xsuivi
de ctrl-c.
Ou ctrl-xsuivi de c(maintenir ctrlappuyé).
Il y a beaucoup à savoir sur Emacs, certainement plus que ce
que je suis capable d'écrire dans cette petite introduction. Je
vous encourage à ouvrir Emacs et à appuyer sur ctrl-h rpour
ouvrir le manuel intégré et ctrl-h tpour ouvrir le didacticiel
officiel.
nanoLa commande de l'éditeur Linux
nanoest un éditeur convivial pour les débutants.
Exécutez-le en utilisant nano <filename>.
Vous pouvez taper directement des caractères dans le fichier
sans vous soucier des modes.

Vous pouvez quitter sans modifier en utilisant ctrl-X. Si vous


avez modifié le fichier tampon, l'éditeur vous demandera une
confirmation et vous pourrez enregistrer les modifications ou
les annuler.
L'aide en bas vous montre les commandes clavier qui vous
permettent de travailler avec le fichier :
picoest plus ou moins la même, bien qu'il s'agisse nanode la
version GNU picoqui, à un moment donné de l'histoire, n'était
pas open source. Le nanoclone a été créé pour satisfaire aux
exigences de la licence du système d'exploitation GNU.
whoamiLa commande Linux
Tapez whoamipour imprimer le nom d'utilisateur actuellement
connecté à la session du terminal :
Remarque : ceci est différent de la who am icommande, qui
imprime plus d'informations
whoLa commande Linux
La whocommande affiche les utilisateurs connectés au système.
À moins que vous n'utilisiez un serveur auquel plusieurs
personnes ont accès, il y a de fortes chances que vous soyez le
seul utilisateur connecté plusieurs fois :
Pourquoi plusieurs fois ? Parce que chaque shell ouvert
comptera comme un accès.

Vous pouvez voir le nom du terminal utilisé, et l'heure/jour de


démarrage de la session.

Les -aHdrapeaux indiqueront whod'afficher plus d'informations,


y compris le temps d'inactivité et l'ID de processus du terminal :
La who am icommande spéciale listera les détails de la session
de terminal actuelle :
suLa commande Linux
Lorsque vous êtes connecté au shell du terminal avec un
utilisateur, vous devrez peut-être passer à un autre utilisateur.

Par exemple, vous êtes connecté en tant que root pour effectuer
une maintenance, mais vous souhaitez ensuite passer à un
compte d'utilisateur.

Vous pouvez le faire avec la sucommande :


su <username>
Par exemple : su flavio.
Si vous êtes connecté en tant qu'utilisateur, l'exécution susans
rien d'autre vous demandera d'entrer le rootmot de passe de
l'utilisateur, car c'est le comportement par défaut.
sudémarrera un nouveau shell en tant qu'autre utilisateur.
Lorsque vous avez terminé, taper exitdans le shell fermera ce
shell et vous ramènera au shell de l'utilisateur actuel.
sudoLa commande Linux
sudoest couramment utilisé pour exécuter une commande en
tant que root.
Vous devez être autorisé à utiliser sudo, et une fois que vous
l'êtes, vous pouvez exécuter des commandes en tant que root en
entrant le mot de passe de votre utilisateur ( pas le mot de passe
de l'utilisateur root).
Les autorisations sont hautement configurables, ce qui est très
bien, surtout dans un environnement de serveur multi-
utilisateurs. Certains utilisateurs peuvent être autorisés à
exécuter des commandes spécifiques via sudo.
Par exemple, vous pouvez modifier un fichier de configuration
système :

sudo nano /etc/hosts


qui autrement échouerait à enregistrer puisque vous n'avez pas
les autorisations
pour cela.

Vous pouvez exécuter sudo -ipour démarrer un shell en tant


que root :

Vous pouvez utiliser sudopour exécuter des commandes en tant


qu'utilisateur. rootest la valeur par défaut, mais utilisez l' -
uoption pour spécifier un autre utilisateur :
sudo -u flavio ls /Users/flavio

passwdLa commande Linux


Les utilisateurs sous Linux ont un mot de passe attribué. Vous
pouvez modifier le mot de passe à l'aide de la passwdcommande.
Il y a deux situations ici.

La première est lorsque vous voulez changer votre mot de


passe. Dans ce cas tu tapes :

passwd
et une invite interactive vous demandera l'ancien mot de passe,
puis il vous demandera le nouveau :

Lorsque vous êtes root(ou avez des privilèges de


superutilisateur), vous pouvez définir le nom d'utilisateur dont
vous souhaitez modifier le mot de passe :
passwd <username> <new password>
Dans ce cas, vous n'avez pas besoin d'entrer l'ancien.

pingLa commande Linux


La pingcommande envoie un ping à un hôte réseau spécifique,
sur le réseau local ou sur Internet.
Vous l'utilisez avec la syntaxe ping <host>où <host>pourrait
être un nom de domaine ou une adresse IP.
Voici un exemple de pinggoogle.com :
La commande envoie une demande au serveur et le serveur
renvoie une réponse.

pingcontinue d'envoyer la requête toutes les secondes, par


défaut. Il continuera à fonctionner jusqu'à ce que vous l'arrêtiez
avec ctrl-C, à moins que vous ne dépassiez le nombre de fois
que vous voulez essayer avec l' -coption : ping -c 2
google.com.
Une fois pingarrêté, il imprimera des statistiques sur les
résultats : le pourcentage de paquets perdus et des statistiques
sur les performances du réseau.
Comme vous pouvez le voir, l'écran imprime l'adresse IP de
l'hôte et le temps qu'il a fallu pour obtenir la réponse.

Tous les serveurs ne prennent pas en charge le ping, au cas où la


requête expirerait :
Parfois, cela est fait exprès, pour "masquer" le serveur ou
simplement pour réduire la charge. Les paquets ping peuvent
également être filtrés par des pare-feux.

pingfonctionne à l'aide du protocole ICMP ( Internet Control


Message Protocol ), un protocole de couche réseau au même titre
que TCP ou UDP.
La demande envoie un paquet au serveur avec
le ECHO_REQUESTmessage, et le serveur renvoie
un ECHO_REPLYmessage. Je n'entrerai pas dans les détails, mais
c'est le concept de base.
Envoyer un ping à un hôte est utile pour savoir si l'hôte est
accessible (en supposant qu'il implémente le ping) et à quelle
distance il se trouve en termes de temps qu'il faut pour vous
répondre.

Habituellement, plus le serveur est géographiquement proche,


moins il faudra de temps pour revenir vers vous. Des lois
physiques simples entraînent une distance plus longue pour
introduire plus de retard dans les câbles.

tracerouteLa commande Linux


Lorsque vous essayez de joindre un hôte sur Internet, vous
passez par votre routeur domestique. Ensuite, vous atteignez
votre réseau FAI, qui à son tour passe par son propre routeur
réseau en amont, et ainsi de suite, jusqu'à ce que vous atteigniez
enfin l'hôte.

Avez-vous déjà voulu savoir par quelles étapes vos paquets


passent pour faire cela ?

La traceroutecommande est faite pour cela.


Vous invoquez

traceroute <host>
et il rassemblera (lentement) toutes les informations pendant
que le paquet voyage.

Dans cet exemple, j'ai essayé d'accéder à mon blog


avectraceroute flaviocopes.com :
Tous les routeurs parcourus ne nous renvoient pas
d'informations. Dans ce cas, tracerouteimprime * * *. Sinon,
nous pouvons voir le nom d'hôte, l'adresse IP et un indicateur
de performance.
Pour chaque routeur, nous pouvons voir 3 échantillons, ce qui
signifie que traceroute essaie par défaut 3 fois de vous donner
une bonne indication du temps nécessaire pour l'atteindre.

C'est pourquoi l'exécution prend autant de temps traceroutepar


rapport à une simple action pingsur cet hôte.
Vous pouvez personnaliser ce numéro avec l' -qoption :
traceroute -q 1 flaviocopes.com
clearLa commande Linux
Tapez clearpour effacer toutes les commandes précédentes
exécutées dans le terminal actuel.
L'écran s'effacera et vous ne verrez que l'invite en haut :

Remarque : cette commande a un raccourci pratique :ctrl-L


Une fois que vous avez fait cela, vous perdrez l'accès au
défilement pour voir la sortie des commandes précédentes
saisies.

Donc, vous voudrez peut-être utiliser à la clear -xplace, ce qui


efface toujours l'écran, mais vous permet de revenir en arrière
pour voir le travail précédent en faisant défiler vers le haut.
historyLa commande Linux
Chaque fois que vous exécutez une commande, elle est
mémorisée dans l'historique.

Vous pouvez afficher tout l'historique en utilisant :

history
Cela montre l'histoire avec des nombres:

Vous pouvez utiliser la syntaxe !<command number>pour répéter


une commande stockée dans l'historique. Dans l'exemple ci-
dessus, taper !121répétera la ls -al | wc -lcommande.
Généralement, les 500 dernières commandes sont stockées dans
l'historique.

Vous pouvez combiner cela avec greppour trouver une


commande que vous avez exécutée :
history | grep docker

Pour effacer l'historique, exécutez history -c.


exportLa commande Linux
La exportcommande est utilisée pour exporter des variables
vers des processus enfants.
Qu'est-ce que ça veut dire?

Supposons que vous ayez une variable TEST définie de cette


manière :

TEST="test"
Vous pouvez imprimer sa valeur en utilisant echo $TEST:
Mais si vous essayez de définir un script Bash dans un
fichier script.shavec la commande ci-dessus :

Ensuite, lorsque vous définissez chmod u+x script.shet


exécutez ce script avec ./script.sh, la echo $TESTligne
n'affichera rien !
En effet, dans Bash, la TESTvariable a été définie localement dans
le shell. Lors de l'exécution d'un script shell ou d'une autre
commande, un sous-shell est lancé pour l'exécuter, qui ne
contient pas les variables locales shell actuelles.
Pour rendre la variable disponible ici, nous devons
définir TESTpas de cette manière :
TEST="test"
mais de cette manière :

export TEST="test"
Essayez cela, et courir ./script.shmaintenant devrait afficher
"test":

Parfois, vous devez ajouter quelque chose à une variable. C'est


souvent fait avec la PATHvariable. Vous utilisez cette syntaxe :
export PATH=$PATH:/new/path
Il est courant de l'utiliser exportlorsque vous créez de nouvelles
variables de cette manière. Mais vous pouvez également
l'utiliser lorsque vous créez des variables dans les fichiers de
configuration .bash_profileou avec Bash, ou dans avec
Zsh..bashrc.zshenv
Pour supprimer une variable, utilisez l' -noption :
export -n TEST
L'appel exportsans aucune option listera toutes les variables
exportées.
crontabLa commande Linux
Les tâches cron sont des tâches planifiées pour s'exécuter à des
intervalles spécifiques. Une commande peut exécuter quelque
chose toutes les heures, tous les jours ou toutes les 2
semaines. Ou le week-end.

Ils sont très puissants, surtout lorsqu'ils sont utilisés sur des
serveurs pour effectuer des maintenances et des
automatisations.

La crontabcommande est le point d'entrée pour travailler avec


les tâches cron.
La première chose que vous pouvez faire est d'explorer les
tâches cron que vous avez définies :

crontab -l
Vous n'en avez peut-être pas, comme moi :

Courir

crontab -e
pour modifier les tâches cron et en ajouter de nouvelles.
Par défaut, cela s'ouvre avec l'éditeur par défaut, qui est
généralement vim. J'aime nanoplus. Vous pouvez utiliser cette
ligne pour utiliser un autre éditeur :
EDITOR=nano crontab -e
Vous pouvez maintenant ajouter une ligne pour chaque tâche
cron.

La syntaxe pour définir les tâches cron est assez effrayante. C'est
pourquoi j'utilise généralement un site Web pour m'aider à le
générer sans erreurs : https://crontab-generator.org/
Vous choisissez un intervalle de temps pour la tâche cron et
vous tapez la commande à exécuter.

J'ai choisi d'exécuter un script situé


dans /Users/flavio/test.shtoutes les 12 heures. Voici la ligne
crontab que j'ai besoin d'exécuter :
* */12 * * * /Users/flavio/test.sh >/dev/null 2>&1
je cours crontab -e:
EDITOR=nano crontab -e
et j'ajoute cette ligne, puis j'appuie sur ctrl-Xet sur ypour
enregistrer.
Si tout se passe bien, la tâche cron est configurée :

Une fois cela fait, vous pouvez voir la liste des tâches cron
actives en exécutant :

crontab -l
Vous pouvez supprimer une tâche cron qui s'exécute crontab -
eà nouveau, en supprimant la ligne et en quittant l'éditeur :
unameLa commande Linux
L'appel unamesans aucune option renverra le nom de code du
système d'exploitation :
L' moption affiche le nom du matériel ( x86_64dans cet exemple)
et l' poption imprime le nom de l'architecture du processeur
( i386dans cet exemple) :

L' soption imprime le nom du système d'exploitation. rimprime


la release, et vimprime la version :
L' noption imprime le nom du réseau du nœud :

L' aoption imprime toutes les informations disponibles :


Sur macOS, vous pouvez également utiliser
la sw_verscommande pour imprimer plus d'informations sur le
système d'exploitation macOS. Notez que cela diffère de la
version Darwin (le noyau), qui ci-dessus est 19.6.0.
Darwin est le nom du noyau de macOS. Le noyau est le "cœur" du
système d'exploitation, tandis que le système d'exploitation dans
son ensemble s'appelle macOS. Sous Linux, Linux est le noyau et
GNU/Linux serait le nom du système d'exploitation (bien que nous
l'appelions tous "Linux").
envLa commande Linux
La envcommande peut être utilisée pour passer des variables
d'environnement sans les définir sur l'environnement externe
(le shell actuel).
Supposons que vous souhaitiez exécuter une application Node.js
et USERlui définir la variable.
Tu peux courir

env USER=flavio node app.js


et la USERvariable d'environnement sera accessible depuis
l'application Node.js via l' process.envinterface Node.
Vous pouvez également exécuter la commande en effaçant
toutes les variables d'environnement déjà définies, en utilisant
l' -ioption :
env -i node app.js
Dans ce cas, vous obtiendrez une erreur indiquant env: node:
No such file or directoryque la nodecommande n'est pas
accessible, car la PATHvariable utilisée par le shell pour
rechercher des commandes dans les chemins communs n'est
pas définie.
Il faut donc passer le chemin complet au nodeprogramme :
env -i /usr/local/bin/node app.js
Essayez avec un fichier simple app.jsavec ce contenu :
console.log(process.env.NAME)
console.log(process.env.PATH)
Vous verrez la sortie comme

undefined
undefined
Vous pouvez passer une variable env :

env -i NAME=flavio node app.js


et la sortie sera

flavio
undefined
La suppression de l' -ioption rendra PATHà nouveau disponible
dans le programme :
La envcommande peut également être utilisée pour imprimer
toutes les variables d'environnement. Si exécuté sans options :
env
il renverra une liste des variables d'environnement définies, par
exemple :

HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish
Vous pouvez également rendre une variable inaccessible à
l'intérieur du programme que vous exécutez, en utilisant l' -
uoption. Par exemple, ce code supprime la HOMEvariable de
l'environnement de commande :
env -u HOME node app.js

printenvLa commande Linux


Voici un guide rapide de la printenvcommande, utilisée pour
imprimer les valeurs des variables d'environnement
Dans n'importe quel shell, il existe un bon nombre de variables
d'environnement, définies soit par le système, soit par vos
propres scripts et configuration de shell.

Vous pouvez tous les imprimer sur le terminal à l'aide de


la printenvcommande. La sortie ressemblera à ceci :
HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish
avec quelques lignes de plus, généralement.

Vous pouvez ajouter un nom de variable en tant que paramètre,


pour afficher uniquement cette valeur de variable :

printenv PATH

Conclusion
Merci beaucoup d'avoir lu ce manuel.
J'espère que cela vous incitera à en savoir plus sur Linux et ses
capacités. C'est une connaissance toujours verte qui ne sera pas
dépassée de sitôt.

N'oubliez pas que vous pouvez télécharger ce manuel au format


PDF / ePUB / Mobi si vous le souhaitez !
Je publie tous les jours des tutoriels de programmation sur mon
site Web flaviocopes.com si vous souhaitez découvrir d'autres
contenus de ce type.
Vous pouvez me joindre sur Twitter @flaviocopes .

Flavio Copes
Lire plus de messages .

Si cet article vous a été utile,tweetez-le.

Vous aimerez peut-être aussi