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

Le matériel dont nous publions la traduction aujourd'hui est destiné à ceux qui souhaitent maîtriser la ligne de commande Linux. La possibilité d’utiliser cet outil efficacement peut faire gagner beaucoup de temps. En particulier, nous parlerons ici du shell Bash et de 21 commandes utiles. Nous expliquerons également comment utiliser les indicateurs de commande et les alias Bash pour accélérer la saisie d'instructions longues.

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

Lisez également sur notre blog une série de publications sur les scripts bash

Termes

Au fur et à mesure que vous apprenez à travailler avec la ligne de commande Linux, vous rencontrerez de nombreux concepts utiles à naviguer. Certains d'entre eux, comme « Linux » et « Unix », ou « shell » et « terminal », sont parfois confondus. Parlons de ces termes et d'autres termes importants.

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

Linux/Unix est le système d'exploitation de type Unix le plus populaire. Il est désormais utilisé sur de nombreux appareils, notamment les ordinateurs.

Terminal (terminal), ou émulateur de terminal, est un programme qui donne accès au système d'exploitation. Vous pouvez ouvrir plusieurs fenêtres de terminal en même temps.

coquille (shell) est un programme qui permet d'envoyer des commandes écrites dans un langage spécial au système d'exploitation.

Frapper signifie Bourne Again Shell. Il s'agit du langage shell le plus couramment utilisé pour interagir avec le système d'exploitation. De plus, le shell Bash est la valeur par défaut sur macOS.

Interface de ligne de commande (Command Line Interface, CLI) est une méthode d'interaction entre une personne et un ordinateur, à l'aide de laquelle l'utilisateur saisit des commandes à partir du clavier, et l'ordinateur, exécutant ces commandes, affiche des messages sous forme de texte pour l'utilisateur. L'utilisation principale de la CLI est d'obtenir des informations à jour sur certaines entités, telles que les fichiers, et de travailler avec des fichiers. L'interface de ligne de commande doit être distinguée de l'interface utilisateur graphique (GUI), qui utilise principalement la souris. L'interface de ligne de commande est souvent appelée simplement ligne de commande.

Scénario (script) est un petit programme qui contient une séquence de commandes shell. Les scripts sont écrits dans des fichiers et peuvent être utilisés à plusieurs reprises. Lors de l'écriture de scripts, vous pouvez utiliser des variables, des conditions, des boucles, des fonctions et d'autres fonctionnalités.

Maintenant que nous avons couvert les termes importants, je tiens à souligner que j'utiliserai ici les termes "Bash", "shell" et "ligne de commande" de manière interchangeable, ainsi que les termes "répertoire" et "dossier".

Standard cours d'eau, que nous utiliserons ici est l'entrée standard (entrée standard, stdin), sortie standard (sortie standard, stdout) et sortie d'erreur standard (erreur standard, stderr).

Si dans l’exemple de commandes qui sera donné ci-dessous, vous trouverez quelque chose comme my_whatever - cela signifie que ce fragment doit être remplacé par quelque chose de vous. Par exemple, le nom d'un fichier.

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

21 commandes Bash

▍Obtenir des informations

  • man: Affiche le guide utilisateur (aide) de la commande.
  • pwd: affiche des informations sur le répertoire de travail.
  • ls: affiche le contenu d'un répertoire.
  • ps: Vous permet d'afficher des informations sur les processus en cours d'exécution.

▍Manipulation du système de fichiers

  • cd: change le répertoire de travail.
  • touch: crée un fichier.
  • mkdir: crée un répertoire.
  • cp: Copiez un fichier.
  • mv: déplacer ou supprimer un fichier.
  • ln: créer un lien.

▍Redirection d'E/S et pipelines

  • <: rediriger stdin.
  • >: rediriger stdout.
  • |: redirige la sortie d'une commande vers l'entrée d'une autre commande.

▍Lecture de fichiers

  • head: lit le début du fichier.
  • tail: lire la fin du fichier.
  • cat: Lire un fichier et imprimer son contenu à l'écran, ou concaténer des fichiers.

▍Suppression de fichiers, arrêt des processus

  • rm: Supprime un fichier.
  • kill: arrêter le processus.

▍Recherche

  • grep: Rechercher une information.
  • ag: commande avancée pour la recherche.

▍Archivage

  • tar: créer des archives et travailler avec elles.

Parlons de ces commandes plus en détail.

Détails de l'équipe

Pour commencer, parlons des commandes dont les résultats sont émis sous la forme stdout. Habituellement, ces résultats apparaissent dans une fenêtre de terminal.

▍Obtenir des informations

man command_name: affiche le guide des commandes, c'est à dire les informations d'aide.

pwd: affiche le chemin d'accès au répertoire de travail actuel. Au cours de l'utilisation de la ligne de commande, l'utilisateur a souvent besoin de savoir exactement où il se trouve dans le système.

ls: afficher le contenu d'un répertoire. Cette commande est également utilisée assez souvent.

ls -a: montrer les fichiers cachés. drapeau appliqué ici -a les équipes ls. L'utilisation de drapeaux permet de personnaliser 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 - comme ceci : ls -al.

ps: Afficher les processus en cours.

ps -e: affiche des informations sur tous les processus en cours d'exécution, pas seulement ceux associés au shell utilisateur actuel. Cette commande est souvent utilisée sous cette forme.

▍Manipulation du système de fichiers

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

[bookmarked] Bash pour les débutants : 21 commandes utiles
cd commande

touch my_file: création de fichier my_file le long du chemin donné.

mkdir my_directory: créer un dossier my_directory le long du chemin donné.

mv my_file target_directory: déplacer le fichier my_file au dossier target_directory. Lorsque vous spécifiez le répertoire cible, vous devez utiliser le chemin absolu vers celui-ci (et non une construction comme ../).

équipe mvpeut également être utilisé pour renommer des fichiers ou des dossiers. Par exemple, cela pourrait ressembler à ceci :

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: créer une copie d'un fichier my_source_file et tu le mets dans un dossier target_directory.

ln -s my_source_file my_target_file: créer un lien symbolique my_target_file par fichier my_source_file. Si vous modifiez le lien, le fichier d'origine changera également.

Si le fichier my_source_file sera supprimé, alors my_target_file restera. Drapeau -s les équipes ln vous permet de créer des liens vers des répertoires.

Parlons maintenant de la redirection d'E/S et des pipelines.

▍Redirection d'E/S et pipelines

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

my_command > my_file: redirige les résultats de la commande, c'est à dire ce qui entrerait normalement dans stdout et sortie à l'écran, dans un 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 avoir exécuté la commande ls > my_folder_contents.txt un fichier texte sera créé contenant une liste de ce qui se trouve dans le répertoire de travail actuel.

Si au lieu du symbole > utiliser la construction >>, alors, à condition que le fichier vers lequel la sortie de la commande est redirigée existe, ce fichier ne sera pas écrasé. Les données seront ajoutées à la fin de ce fichier.

Jetons maintenant un coup d'œil au traitement du pipeline de données.

[bookmarked] Bash pour les débutants : 21 commandes utiles
La sortie d’une commande est introduite dans l’entrée d’une autre commande. C'est comme connecter un tuyau à un autre

first_command | second_command: symbole du convoyeur, |, est utilisé pour envoyer la sortie d’une commande à une autre commande. Ce à quoi la commande sur le côté gauche de la structure décrite envoie stdout, Tombé dans stdin commande à droite du symbole du pipeline.

Sous Linux, les données peuvent être acheminées en utilisant à peu près n'importe quelle commande bien formée. On dit souvent que sous Linux, tout est un pipeline.

Vous pouvez enchaîner plusieurs commandes à l'aide du symbole de pipeline. Cela ressemble à ceci :

first_command | second_command | third_command

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

Notez que lorsque la commande à gauche du symbole |, génère quelque chose vers stdout, ce qu'elle produit est immédiatement disponible sous forme stdin deuxième équipe. Autrement dit, il s'avère qu'en utilisant le pipeline, nous avons affaire à une exécution parallèle de commandes. Parfois, cela peut conduire à des résultats inattendus. Les détails à ce sujet peuvent être lus ici.

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

▍Lecture de fichiers

head my_file: lit les lignes depuis le début d'un fichier et les imprime à l'écran. Vous pouvez lire non seulement le contenu des fichiers, mais également le contenu des commandes. stdinen utilisant cette commande dans le cadre du pipeline.

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

[bookmarked] Bash pour les débutants : 21 commandes utiles
La tête (tête) est devant et la queue (queue) est derrière

Si vous travaillez avec des données à l'aide de la bibliothèque pandas, alors les commandes head и tail devrait vous être familier. Si ce n’est pas le cas, jetez un œil à la figure ci-dessus et vous vous en souviendrez facilement.

Considérez d'autres façons de lire des fichiers, parlons de la commande cat.

Équipe cat soit imprime 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.

[bookmarked] Bash pour les débutants : 21 commandes utiles
commande de chat

cat my_one_file.txt: lorsqu'un seul fichier est transmis à cette commande, elle le renvoie vers stdout.

Si vous lui donnez deux fichiers ou plus, il se comporte différemment.

cat my_file1.txt my_file2.txt: ayant reçu plusieurs fichiers en entrée, cette commande concatène leur contenu et affiche ce qui s'est passé dans stdout.

Si le résultat de la concaténation de fichiers doit être enregistré en tant que nouveau fichier, vous pouvez utiliser l'opérateur >:

cat my_file1.txt my_file2.txt > my_new_file.txt

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

▍Suppression de fichiers, arrêt des processus

rm my_file: supprimer le fichier my_file.

rm -r my_folder: supprime un dossier my_folder et tous les fichiers et dossiers qu'il contient. Drapeau -r indique que la commande s'exécutera en mode récursif.

Pour éviter que le système ne demande une confirmation à chaque fois qu'un fichier ou un dossier est supprimé, utilisez le drapeau -f.

kill 012345: arrête le processus en cours d'exécution spécifié, lui donnant le temps de s'arrêter correctement.

kill -9 012345: termine de force le processus en cours d'exécution spécifié. Voir le drapeau -s SIGKILL signifie la même chose que le drapeau -9.

▍Recherche

Vous pouvez utiliser différentes commandes pour rechercher des données. En particulier - grep, ag и ack. Commençons notre connaissance de ces commandes par grep. Il s'agit d'une commande fiable et éprouvée, qui est cependant plus lente que les autres et moins pratique à utiliser qu'elles le sont.

[bookmarked] Bash pour les débutants : 21 commandes utiles
commande grep

grep my_regex my_file: recherches my_regex в my_file. Si une correspondance est trouvée, la chaîne entière est renvoyée, pour chaque correspondance. Défaut my_regex traité 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. Drapeau -v signifie inversion, cela ressemble à l'opérateur NOT, trouvé dans de nombreux langages de programmation.

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

grep -R my_regex my_folder: effectue une recherche récursive dans tous les fichiers situés dans le dossier spécifié et dans les dossiers qui y sont imbriqués.

Parlons maintenant de l'équipe ag. Elle est venue plus tard grep, c'est plus rapide, il est plus pratique de travailler avec.

[bookmarked] Bash pour les débutants : 21 commandes utiles
commande ag

ag my_regex my_file: renvoie des informations sur les numéros de ligne et les lignes elles-mêmes dans lesquelles des correspondances ont été trouvées avec my_regex.

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

Équipe ag traiter automatiquement le fichier .gitignore et exclut de la sortie ce qui se trouve dans les dossiers ou fichiers répertoriés dans ce fichier. C'est très confortable.

ag my_regex my_file -- skip-vcs-ignores: contenu des fichiers de contrôle de version automatique (comme .gitignore) n'est pas pris en compte dans la recherche.

De plus, afin de dire à l'équipe ag sur quels chemins de fichiers vous souhaitez exclure de la recherche, vous pouvez créer un fichier .agignore.

Au début de cette section, nous avons mentionné la commande ack. Équipes ack и ag très similaires, on peut dire qu'ils sont interchangeables à 99%. Cependant, l'équipe ag fonctionne plus vite, c'est pourquoi je l'ai décrit.

Parlons maintenant du travail avec les archives.

▍Archivage

tar my_source_directory: concatène les fichiers d'un dossier my_source_directory dans un seul fichier tarball. Ces fichiers sont utiles pour transférer de grands ensembles de fichiers à quelqu'un.

[bookmarked] Bash pour les débutants : 21 commandes utiles
commande tar

Les fichiers tarball générés par cette commande sont des fichiers avec l'extension .tar (Archives sur bande). Le fait que le mot « tape » (tape) soit caché dans le nom de la commande et dans l'extension des noms des fichiers qu'elle crée indique depuis combien de temps cette commande existe.

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. Drapeau -c signifie "créer" (création), et le drapeau -f comme "fichier" (fichier).

Pour extraire des fichiers de .tar-fichier, utilisez la commande tar avec des drapeaux -x ("extrait", extraction) et -f ("fichier", fichier).

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

Parlons maintenant de comment compresser et décompresser .tar-des dossiers.

tar -cfz my_file.tar.gz my_source_directory: ici en utilisant le drapeau -z ("zip", algorithme de compression) indique que l'algorithme doit être utilisé pour compresser les fichiers gzip (GNUzip). La compression de fichiers permet d'économiser de l'espace disque lors du stockage de ces fichiers. Si les fichiers doivent, par exemple, être transférés à d'autres utilisateurs, cela contribue à un téléchargement plus rapide de ces fichiers.

Décompresser le fichier .tar.gz vous pouvez ajouter un drapeau -z à la commande extraire le contenu .tar-fichiers, dont nous avons discuté ci-dessus. Cela ressemble à ceci :

tar -xfz my_file.tar.gz
Il convient de noter que l'équipe tar Il existe de nombreux autres indicateurs utiles.

Alias ​​​​Bash

Les alias Bash (également appelés alias ou abréviations) sont conçus pour créer des noms abrégés de commandes ou de leurs séquences, dont l'utilisation à la place des commandes normales accélère le travail. Si vous avez un pseudo bu, qui cache la commande python setup.py sdist bdist_wheel, alors pour appeler cette commande, il suffit d'utiliser cet alias.

Pour créer un tel alias, ajoutez simplement la commande suivante au fichier ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Si votre système ne dispose pas du fichier ~/.bash_profile, vous pouvez alors le créer vous-même à l'aide de 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 douzaines de caractères de la commande, destinée à assemblage Paquets Python.

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

▍Résultats

Dans cet article, nous avons couvert 21 commandes Bash populaires et parlé de la création d'alias de commande. Si ce sujet vous intéresse - ici une série de publications dédiées à Bash. il est Vous pouvez trouver une version pdf de ces publications. De plus, si vous souhaitez apprendre Bash, n’oubliez pas que, comme pour tout autre système de programmation, la pratique est la clé.

Chers lecteurs, Quelles commandes utiles pour les débutants ajouteriez-vous à celles abordées dans cet article ?

Lisez également sur notre blog une série de publications sur les scripts bash

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

Source: habr.com

Ajouter un commentaire