Académique Documents
Professionnel Documents
Culture Documents
Flavio Copes
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.
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 :
ls /bin
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.
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
touch pear
touch apple
mkdir fruits
mv pear apple fruits #pear and apple moved to the fruits folder
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 :
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.
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 :
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 :
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.
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).
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 :
echo "hello"
imprimera hellosur le terminal.
Nous pouvons ajouter la sortie à un fichier :
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.
echo ~
echo {1..5}
• 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 :
umask 002
ou vous pouvez modifier l'autorisation d'un rôle spécifique :
umask g+r
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 :
top -o mem
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 :
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
fg
reprendra au premier plan la dernière tâche qui a été
suspendue.
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.
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 :
vi test.txt
Il faut savoir que Vim a 2 modes principaux :
Par exemple, vous êtes connecté en tant que root pour effectuer
une maintenance, mais vous souhaitez ensuite passer à un
compte d'utilisateur.
passwd
et une invite interactive vous demandera l'ancien mot de passe,
puis il vous demandera le nouveau :
traceroute <host>
et il rassemblera (lentement) toutes les informations pendant
que le paquet voyage.
history
Cela montre l'histoire avec des nombres:
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 :
export TEST="test"
Essayez cela, et courir ./script.shmaintenant devrait afficher
"test":
Ils sont très puissants, surtout lorsqu'ils sont utilisés sur des
serveurs pour effectuer des maintenances et des
automatisations.
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.
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) :
undefined
undefined
Vous pouvez passer une variable env :
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
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.
Flavio Copes
Lire plus de messages .