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.
→
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.
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 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
<
: redirigerstdin
.>
: redirigerstdout
.|
: 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 ../
.
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 mv
peut é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
: créer une copie d'un fichier
cp my_source_file target_directorymy_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.
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
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
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. stdin
en 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.
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.
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.
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.
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.
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 à
В ~/.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 -
Chers lecteurs, Quelles commandes utiles pour les débutants ajouteriez-vous à celles abordées dans cet article ?
→
Source: habr.com