Laissez-moi vous montrer quelques astuces sur le shell Bash ou Z qui vous aideront à améliorer votre productivité.
Vous avez probablement compris que Bash conserve un historique des commandes que vous tapez. Par défaut, il conserve 1000 lignes de code. Vous pouvez le voir dans les paramètres du terminal, sous l’onglet « Comportement », il doit être indiqué « Taille de l’historique (en lignes) ».
Passons maintenant à l’aspect pratique. Après avoir tapé de nombreuses commandes, explorons la commande« historique« .
Vous pouvez voir que chaque commande est numérotée, donc plutôt que de les retaper, nous pouvons utiliser la fonction d’extension de l’historique pour les réexécuter facilement en utilisant le numéro.
Tapez le caractère « ! » suivi du numéro de ligne pour exécuter la commande.
Pour réexécuter la dernière commande exécutée, tapez « !!« .
Par défaut, l’historique des commandes est enregistré dans le fichier .bash_history du répertoire personnel de l’utilisateur. Deux variables d’environnement contrôlent la taille de l’historique : HISTSIZE et HISTFILESIZE.
HISTSIZE contrôle le nombre de commandes stockées en mémoire pour la session en cours et HISTFILESIZE configure le nombre de commandes conservées dans le fichier historique. Ces variables peuvent être modifiées en fonction de nos besoins et enregistrées dans le fichier de configuration de Bash (.bashrc) que nous étudierons plus tard.
Une autre astuce utile consiste à appuyer sur CTRL + R, tout comme la recherche d’un mot sur une page avec CTRL + F, mais cette fois dans notre histoire. C’est ce qu’on appelle la recherche inversée. Le premier résultat sera la commande la plus récente contenant la lettre ou le mot que vous avez saisi.
Qu’est-ce que la redirection et la tuyauterie ?
STDIN, STDOUT et STDERR
Chaque programme exécuté à partir de la ligne de commande est relié à trois flux de données qui servent de canaux de communication avec l’environnement externe. Ces flux sont définis comme suit :
Nom du cours d’eau | Description |
0 Entrée standard (STDIN) | Données introduites dans le programme |
1 Sortie standard (STDOUT) | Sortie du programme (par défaut, terminal) |
2 Erreur standard (STDERR) | Messages d’erreur (par défaut, terminal) |
Pour le dire de la manière la plus simple : la redirection est utilisée pour rediriger la sortie standard, l’entrée standard ou l’erreur standard dans un fichier ou un flux, par exemple, ls > output.txt. (Note – si output.txt existe, il sera écrasé et ce n’est pas réversible)
Normalement, il devrait afficher/imprimer le résultat/la sortie dans le terminal, mais nous avons redirigé la sortie standard vers le fichier output.txt, à l’aide de l’option > de l’opérateur.
┌──(kali㉿kali)-[~] └─$ cat output.txt Bureau Documents Téléchargements Musique notes output.txt Photos Public Modèles Vidéos
Nous pouvons également utiliser la redirection dans « l’autre sens ». Pour envoyer des données dans « l’autre sens », c’est-à-dire à partir d’un fichier, nous utilisons la fonction < de l’opérateur. Dans l’exemple ci-dessous, nous redirigeons l’entrée standard de la commande« wc » avec des données provenant directement du fichier que nous avons généré dans l’exemple précédent. Lacommande « wc -m » compte les caractères du fichier.
Redirigeons l’erreur standard en utilisant les numéros de descripteurs de fichiers (les numéros rouges dans le tableau ci-dessus) sur notre ligne de commande. Nous allons rediriger le message d’erreur vers un fichier, en collant le numéro de flux 2 à l’élément « > » opérateur.
┌──(kali㉿kali)-[~] └─$ cat file.txt 2> error.txt
┌──(kali㉿kali)-[~] └─$ cat error.txt cat : file.txt : Aucun fichier ou répertoire de ce type
Tuyauterie
Tuyaux ( | ) sont utilisées pour transmettre la sortie à l’entrée d’un autre programme ou utilitaire . Le pipe prend tout ce qui est écrit sur la sortie standard de cat error.txt et l’envoie à l’entrée standard de wc -m qui l’imprime alors sur la sortie standard, sauf indication contraire.
┌──(kali㉿kali)-[~] └─$ cat error.txt | wc -m 41
┌──(kali㉿kali)-[~] └─$ cat error.txt | wc -m > characters.txt
┌──(kali㉿kali)-[~] └─$ cat characters.txt 41
0 commentaires