[en favori] Bash pour les débutants : 21 commandes utiles

Le matériel que nous publions aujourd'hui est destiné à ceux qui souhaitent maîtriser la ligne de commande Linux. Savoir utiliser efficacement cet outil permet de gagner beaucoup de temps. Il s'agit en particulier de l'interface Bash et de 21 commandes utiles. Nous aborderons également l'utilisation des drapeaux de commande et des alias Bash, qui facilitent la saisie d'instructions longues.

[en favori] Bash pour les débutants : 21 commandes utiles

→ Découvrez aussi dans notre blog notre série d'articles sur les scripts Bash

Termes

Au cours de l'apprentissage de la ligne de commande Linux, vous rencontrerez de nombreux concepts auxquels il peut être utile de se familiariser. Certains d'entre eux, comme « Linux » et « Unix », ou « interface de commande » et « terminal », sont parfois confondus. Parlons de ces termes et d'autres importants.

Unix est un système d'exploitation populaire développé par les Bell Labs dans les années 1970. Son code était propriétaire.

Linux est le système d'exploitation de type Unix le plus populaire. Il est utilisé de nos jours sur de nombreux dispositifs, y compris les ordinateurs.

Terminal (terminal), ou émulateur de terminal, est un programme qui donne accès au système d'exploitation. Plusieurs fenêtres de terminal peuvent être ouvertes simultanément.

Shell (shell) est un programme qui permet d'envoyer des commandes au système d'exploitation, écrites dans un langage particulier.

Bash signifie Bourne Again SHell. C'est le langage de commande le plus utilisé pour interagir avec le système d'exploitation. De plus, le shell Bash est utilisé par défaut sur macOS.

Interface de ligne de commande (Command Line Interface, CLI) est un moyen d'interaction entre un utilisateur et un ordinateur, dans lequel l'utilisateur saisit des commandes via un clavier, et l'ordinateur, en exécutant ces commandes, affiche des messages en texte pour l'utilisateur. Principalement, la CLI est utilisée pour obtenir des informations à jour sur certaines entités, comme des fichiers, et pour travailler avec des fichiers. Il convient de distinguer l'interface de ligne de commande de l'interface graphique utilisateur (Graphical User Interface, GUI), où la souris est principalement utilisée. L'interface de ligne de commande est souvent simplement appelée ligne de commande.

Script (script) — c'est un petit programme contenant une séquence de commandes de l'interpréteur de commandes. Les scripts sont écrits dans des fichiers, et peuvent être utilisés plusieurs fois. Lors de l'écriture de scripts, vous pouvez utiliser des variables, des constructions conditionnelles, des boucles, des fonctions et d'autres fonctionnalités.

Maintenant que nous avons examiné les termes importants, je tiens à souligner que j'utiliserai ici les termes « Bash », « shell » et « ligne de commande » de manière interchangeable, tout comme les concepts de « répertoire » (directory) et « dossier » (folder).

Flux standards, que nous allons utiliser ici — sont l'entrée standard (standard input, stdin), la sortie standard (standard output, stdout) et la sortie d'erreur standard (standard error, stderr).

Si dans les exemples de commandes qui seront fournis ci-dessous, vous rencontrez quelque chose comme my_whatever — cela signifie que ce fragment doit être remplacé par quelque chose de personnel. Par exemple — le nom d'un fichier.

Maintenant, avant de passer à l'examen des commandes auxquelles ce matériel est dédié, jetons un coup d'œil à leur liste et à leurs brèves descriptions.

21 commandes Bash

▍Obtention d'informations

  • man: affiche le manuel de l'utilisateur (aide) sur la commande.
  • pwd: affiche des informations sur le répertoire de travail.
  • ls: affiche le contenu du répertoire.
  • ps: permet de visualiser des informations sur les processus en cours.

▍Manipulations avec le système de fichiers

  • cd: change le répertoire de travail.
  • touch: crée un fichier.
  • mkdir: crée un répertoire.
  • cp: copie un fichier.
  • mv: déplace ou supprime un fichier.
  • ln: crée un lien.

▍Redirection entrée-sortie et pipelines

  • <: redirection stdin.
  • >: redirection stdout.
  • |: redirection utilisant le pipeline de sortie d'une commande vers l'entrée d'une autre commande.

▍Lecture de fichiers

  • head: lit le début d'un fichier.
  • tail: lit la fin d'un fichier.
  • cat: lit un fichier et affiche son contenu à l'écran ou concatène des fichiers.

▍Suppression de fichiers, arrêt des processus

  • rm: supprime un fichier.
  • kill: arrête un processus.

▍Recherche

  • grep: recherche d'informations.
  • ag: commande avancée pour la recherche.

▍Archivage

  • tar: création et manipulation d'archives.

Parlons de ces commandes plus en détail.

Détails sur les commandes

Tout d'abord, examinons les commandes dont les résultats sont donnés sous la forme stdout. En général, ces résultats apparaissent dans la fenêtre du terminal.

▍Obtention d'informations

man command_name: affiche le manuel de la commande, c'est-à-dire — des informations de référence.

pwd: afficher le chemin vers le répertoire de travail actuel. Lors de l'utilisation de l'invite de commande, il est souvent nécessaire pour l'utilisateur de connaître sa position actuelle dans le système.

ls: afficher le contenu du répertoire. Cette commande est également très utilisée.

ls -a: afficher les fichiers cachés. Ici, un drapeau est utilisé. -a des commandes ls. L'utilisation des drapeaux permet de configurer le comportement des commandes.

ls -l: afficher des informations détaillées sur les fichiers.

Notez que les drapeaux peuvent être combinés. Par exemple, cela peut ressembler à : ls -al.

ps: afficher les processus en cours.

ps -e: afficher des informations sur tous les processus en cours, et pas seulement ceux liés au terminal de l'utilisateur. Cette commande est souvent utilisée sous cette forme.

▍Manipulations avec le système de fichiers

cd my_directory: changer le répertoire de travail en my_directory. Pour monter d'un niveau dans l'arborescence des répertoires, utilisez comme my_directory chemin relatif ../.

[en favori] Bash pour les débutants : 21 commandes utiles
La commande cd

touch my_file: créer le fichier my_file à l'emplacement spécifié.

mkdir my_directory: créer un dossier my_directory à l'emplacement spécifié.

mv my_file target_directory: déplacer le fichier my_file dans le dossier target_directory. Lors de la spécification du répertoire cible, il est nécessaire d'utiliser le chemin absolu vers celui-ci (et non une structure telle que ../).

La commande mv, en outre, peut être utilisée pour renommer des fichiers ou des dossiers. Par exemple, cela peut ressembler à :

mv my_old_file_name.jpg my_new_file_name.jpg
cp mon_fichier_source dossier_cible
: créer une copie du fichier my_source_file et la placer dans le dossier target_directory.

ln -s my_source_file my_target_file: créer un lien symbolique my_target_file vers le fichier my_source_file. Si le lien est modifié, le fichier original changera également.

Si le fichier my_source_file est supprimé, alors my_target_file restera. Le drapeau -s des commandes ln permet également de créer des liens pour les répertoires.

Parlons maintenant de la redirection de l'entrée-sortie et des pipelines.

▍Redirection entrée-sortie et pipelines

my_command < my_file: remplace le descripteur de fichier de l'entrée standard (stdin) par le fichier my_file. Cela peut être utile si la commande attend des données saisies au clavier et que ces données sont déjà enregistrées dans un fichier.

my_command > my_file: redirige les résultats de l'exécution de la commande, c'est-à-dire ce qui normalemnt va dans stdout et s'affiche à l'écran, vers le fichier my_file. Si le fichier my_file n'existe pas, il est créé. Si le fichier existe, il est écrasé.

Par exemple, après l'exécution de la commande ls > my_folder_contents.txt , un fichier texte sera créé contenant la liste de ce qui se trouve dans le répertoire de travail actuel.

Si au lieu du symbole > vous utilisez la construction >>, donc, à condition qu'il existe un fichier dans lequel la sortie de la commande est redirigée, ce fichier ne sera pas écrasé. Les données seront ajoutées à la fin de ce fichier.

Voyons maintenant le traitement par pipeline des données.

[en favori] Bash pour les débutants : 21 commandes utiles
Ce que produit une commande est envoyé en entrée d'une autre commande. Cela ressemble à la connexion d'un tuyau à un autre.

first_command | second_command: le symbole du pipeline, |, est utilisé pour envoyer les résultats du travail d'une commande à une autre commande. Ce que la commande à gauche de la construction décrite envoie à stdout, entre dans stdin la commande qui se trouve à droite du symbole du pipeline.

Dans Linux, le traitement par pipeline des données peut être organisé avec pratiquement n'importe quelle commande correctement formulée. On dit souvent que tout dans Linux est un pipeline.

En utilisant le symbole du pipeline, vous pouvez enchaîner plusieurs commandes. Cela ressemble à ceci :

first_command | second_command | third_command

[en favori] Bash pour les débutants : 21 commandes utiles
Un pipeline de plusieurs commandes peut être comparé à un tuyau

Notez que lorsque la commande à gauche du symbole |, produit quelque chose dans stdout, ce qu'elle a produit devient immédiatement disponible sous forme de stdin pour la deuxième commande. Ainsi, en utilisant un pipeline, nous avons affaire à une exécution parallèle des commandes. Parfois, cela peut conduire à des résultats inattendus. Pour plus de détails, vous pouvez lire ici.

Parlons maintenant de la lecture des données à partir de fichiers et de leur affichage à l'écran.

▍Lecture de fichiers

head my_file: lit des lignes du début du fichier et les affiche à l'écran. Vous pouvez lire non seulement le contenu des fichiers, mais aussi ce que les commandes produisent dans stdin, en utilisant cette commande comme élément de pipeline.

tail my_file: lit des lignes de la fin du fichier. Cette commande peut également être utilisée dans un pipeline.

[en favori] Bash pour les débutants : 21 commandes utiles
Head (tête) se trouve à l'avant, et tail (queue) à l'arrière.

Si vous travaillez avec des données en utilisant la bibliothèque pandas, alors les commandes head et tail devraient vous être familières. Si ce n'est pas le cas, jetez un coup d'œil à l'illustration ci-dessus, et vous les retiendrez sans effort.

Examinons d'autres méthodes pour lire des fichiers, parlons de la commande cat.

Commande cat qui soit affiche le contenu d'un fichier à l'écran, soit concatène plusieurs fichiers. Cela dépend du nombre de fichiers transmis à cette commande lors de son appel.

[en favori] Bash pour les débutants : 21 commandes utiles
La commande cat

cat my_one_file.txt: lorsque cette commande reçoit un fichier, elle l'affiche dans stdout.

Cependant, si vous lui transmettez deux fichiers ou un plus grand nombre de fichiers, elle se comporte différemment.

cat my_file1.txt my_file2.txt: en recevant plusieurs fichiers en entrée, cette commande concatène leur contenu et affichera le résultat dans stdout.

Si vous devez enregistrer le résultat de la concaténation des fichiers sous un nouveau fichier, vous pouvez utiliser l'opérateur >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Passons maintenant à la façon de supprimer des fichiers et d'arrêter des processus.

▍Suppression de fichiers, arrêt des processus

rm my_file: supprime le fichier my_file.

rm -r my_folder: supprime le dossier my_folder et tous les fichiers et dossiers qu'il contient. L'option -r indique que la commande fonctionnera en mode récursif.

Pour que le système ne demande pas de confirmation lors de chaque opération de suppression de fichier ou de dossier, utilisez l'option -f.

kill 012345: arrête le processus en cours spécifié, lui laissant le temps de se terminer correctement.

kill -9 012345: termine de force le processus en cours spécifié. L'option de type -s SIGKILL signifie la même chose que l'option -9.

▍Recherche

Pour rechercher des données, vous pouvez utiliser différentes commandes. En particulier — grep, ag et ack. Commençons notre découverte de ces commandes avec grep. C'est une commande éprouvée, fiable, qui est certes plus lente que les autres et pas aussi conviviale qu'elles.

[en favori] Bash pour les débutants : 21 commandes utiles
La commande grep

grep my_regex my_file: effectue une recherche my_regex dans my_file. Lorsqu'une correspondance est trouvée, toute la ligne est renvoyée pour chacune d'elles. Par défaut, my_regex est interprété comme une expression régulière.

grep -i my_regex my_file: la recherche est effectuée sans tenir compte de la casse.

grep -v my_regex my_file: renvoie toutes les lignes qui ne contiennent pas my_regex. L'option -v indique l'inversion, elle rappelle l'opérateur NOT, qui existe dans de nombreux langages de programmation.

grep -c my_regex my_file: renvoie des informations sur le nombre de correspondances avec le modèle recherché trouvées dans le fichier.

grep -R my_regex my_folder: effectue une recherche récursive dans tous les fichiers présents dans le dossier spécifié et dans les sous-dossiers.

Maintenant, parlons de la commande ag. Elle est apparue plus tard grep, elle est plus rapide et plus facile à utiliser.

[en favori] Bash pour les débutants : 21 commandes utiles
La commande ag

ag my_regex my_file: renvoie des informations sur les numéros de ligne et les lignes elles-mêmes où des correspondances avec my_regex.

ag -i my_regex my_file: la recherche est effectuée sans tenir compte de la casse.

Commande ag traite automatiquement le fichier .gitignore et exclut de la sortie ce qui est trouvé dans les dossiers ou fichiers listés dans ce fichier. C'est très pratique.

ag my_regex my_file -- skip-vcs-ignores: contenu des fichiers du système de contrôle de versions automatique (comme .gitignore) lors de la recherche, n'est pas pris en compte.

De plus, pour indiquer à l'équipe ag quels chemins de fichiers doivent être exclus de la recherche, vous pouvez créer un fichier .agignore.

Au début de ce chapitre, nous avons mentionné la commande ack. Les commandes ack et ag sont très similaires, on pourrait dire qu'elles sont interchangeables à 99 %. Cependant, la commande ag fonctionne plus rapidement, c'est pourquoi je l'ai décrite.

Passons maintenant à la gestion des archives.

▍Archivage

tar my_source_directory: combine les fichiers du dossier my_source_directory en un fichier tarball. Ces fichiers sont pratiques pour transmettre de grands ensembles de fichiers à quelqu'un.

[en favori] Bash pour les débutants : 21 commandes utiles
La commande tar

Les fichiers Tarball créés par cette commande ont l'extension .tar (Tape ARchive). Le fait que le mot « tape » (ruban) soit caché dans le nom de la commande et dans l'extension des noms de fichiers qu'elle crée montre à quel point cette commande existe depuis longtemps.

tar -cf my_file.tar my_source_directory: crée un fichier tarball nommé my_file.tar avec le contenu du dossier my_source_directory. L'option -c se traduit par « create » (créer), et le drapeau -f par « file » (fichier).

Pour extraire les fichiers présents dans .tar-fichier, on utilise la commande tar avec les drapeaux -x (« extract », extraction) et -f (« file », fichier).

tar -xf my_file.tar: extrait les fichiers de my_file.tar dans le répertoire de travail actuel.

Passons maintenant à la façon de compresser et de décompresser .tar-fichiers.

tar -cfz my_file.tar.gz my_source_directory: ici, en utilisant le drapeau -z (« zip », algorithme de compression), il est spécifié que pour compresser les fichiers, l'algorithme gzip (GNU zip) doit être utilisé. La compression des fichiers permet d'économiser de l'espace disque lors du stockage de ces fichiers. Si les fichiers doivent, par exemple, être transmis à d'autres utilisateurs, cela facilite un téléchargement plus rapide de ces fichiers.

Pour décompresser un fichier .tar.gz , on peut ajouter le drapeau -z à la commande d'extraction du contenu .tar-fichiers que nous avons examinée ci-dessus. Cela donne :

tar -xfz my_file.tar.gz
Il convient de noter que la commande tar dispose également de nombreux drapeaux utiles.

Alias de Bash

Les alias de Bash (également appelés aliases ou raccourcis) servent à créer des noms raccourcis pour des commandes ou des séquences de commandes, dont l'utilisation accélère le travail. Si, par exemple, vous avez un alias bu, qui cache la commande python setup.py sdist bdist_wheel, il vous suffit d'utiliser cet alias pour appeler cette commande.

Pour créer un alias similaire, il suffit d'ajouter la commande suivante dans le fichier ~/ .bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Si votre système n'a pas de fichier ~/ .bash_profile, vous pouvez le créer vous-même en utilisant la commande touch. Après avoir créé l'alias, redémarrez le terminal, après quoi vous pourrez utiliser cet alias. Dans ce cas, la saisie de deux caractères remplace la saisie de plus de trois dizaines de caractères de la commande destinée à la construction des paquets Python.

Dans ~/ .bash_profile Vous pouvez ajouter des alias pour toutes les commandes fréquemment utilisées.

▍Résultats

Dans cet article, nous avons examiné 21 commandes Bash populaires et discuté de la création d'alias pour ces commandes. Si ce sujet vous intéresse — voici une série de publications dédiées à Bash. Ici vous pouvez trouver la version pdf de ces publications. De plus, si vous souhaitez maîtriser Bash, rappelez-vous que, comme pour l'apprentissage de tout autre système logiciel, la pratique est essentielle.

Chers lecteurs ! Quelles commandes, utiles pour les débutants, ajouteriez-vous à celles qui ont été discutées dans cet article ?

→ Découvrez aussi dans notre blog notre série d'articles sur les scripts Bash

[en favori] Bash pour les débutants : 21 commandes utiles

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster