Maison > Tutoriel système > Linux > Historique des commandes Linux - améliorez facilement l'efficacité de la ligne de commande

Historique des commandes Linux - améliorez facilement l'efficacité de la ligne de commande

WBOY
Libérer: 2024-02-13 18:45:02
avant
1295 Les gens l'ont consulté

Pour les passionnés et les développeurs Linux, la ligne de commande est un outil extrêmement important. Cependant, lors d'une utilisation fréquente de la ligne de commande, nous ferons inévitablement des erreurs de saisie ou oublierons les commandes que nous avons utilisées auparavant. À ce stade, l’historique des commandes Linux peut s’avérer utile. Cela nous permet de retrouver et de réutiliser facilement les commandes précédentes, améliorant considérablement notre efficacité de travail. Maintenant, explorons ensemble cet outil puissant !

Bases de l'histoire

HISTSIZE 变量值设置保存在历史列表中的命令数。默认情况下,该值为 500。这些先前发出的命令(称为历史列表)存储在历史文件中。它的默认位置是~/.bash_history,这个位置存储在shell变量HISTFILE中.

La commande ! est utilisée dans cet article pour introduire les commandes de la liste d'historique bash dans l'entrée. Cette fonctionnalité permet aux utilisateurs de répéter rapidement des commandes, de remplacer du texte, de manipuler des paramètres et de corriger les fautes d'orthographe dans les commandes précédentes.

Exemple de répétition de commande

Voici quelques exemples de ce que vous pouvez faire avec !.

Répétez la dernière commande au début de la chaîne correspondante

! suivi du premier caractère (ou chaîne) correspondant à la commande à exécuter répétera l'instance de cette commande :

[root@localhost ~]# ls /root/
anaconda-ks.cfg  centos2ol.sh  employee.json  list_users  new.txt  wsbkuplog.txt

[root@localhost ~]# !l

ls /root/
anaconda-ks.cfg  centos2ol.sh  employee.json  list_users  new.txt  wsbkuplog.txt
[root@localhost ~]# !ls

ls /root/
anaconda-ks.cfg  centos2ol.sh  employee.json  list_users  new.txt  wsbkuplog.txt
Copier après la connexion
Historique des commandes Linux - améliorez facilement lefficacité de la ligne de commande

Faire correspondre à plusieurs reprises la dernière commande n'importe où dans la chaîne

!?Le format est le même que ci-dessus, mais l'ordre de Li Shiming ne doit pas nécessairement être le début de la commande :

[root@localhost ~]# cat employee.json 

[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},

{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# !?employee

cat employee.json 
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},

{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# !?json

cat employee.json 
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},


{"name": "Todd Gray","id": "009"}]
Copier après la connexion
Historique des commandes Linux - améliorez facilement lefficacité de la ligne de commande

Répétez la nième commande de l'historique

Répétez la nième commande dans l'historique bash :

[root@localhost ~]# !772
Copier après la connexion
Historique des commandes Linux - améliorez facilement lefficacité de la ligne de commande

Répétez la dernière commande

S'il y a une commande que j'utilise tout le temps, c'est !!。重复历史列表中的最后一个命令,其行为与 !-1 Identique à :

[root@localhost ~]# cat employee.json 

[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},

{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# !!

cat employee.json 
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},

{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# !-1

cat employee.json 
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},

{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# 
Copier après la connexion

Historique des commandes Linux - améliorez facilement lefficacité de la ligne de commande
Si vous oubliez d'ajouter sudo来执行,可以结合!! à la commande précédente, utilisez-la. Il peut également être utilisé ultérieurement en conjonction avec le caractère pipe.

$ yum update
Loaded plugins: priorities, update-motd, upgrade-helper
You need to be root to perform this command.
$ sudo !!
sudo yum update
Loaded plugins: priorities, update-motd, upgrade-helper
$ ls
dir  dir1  dir2  file  file1  file2  hello.txt
$ !! | grep file
ls | grep file
file
file1
file2
Copier après la connexion

Répétez et remplacez la chaîne

Je tape souvent de longues commandes, puis je les ressais avec des paramètres différents. Ou bien, je dois réémettre une commande car il y a eu une faute de frappe dans ma commande précédente. La substitution de chaîne me permet de le faire sans retaper la totalité de la commande longue. Voici la syntaxe :

!!:s^oldstring^newstring
Copier après la connexion
Le

dans la commande ^ est le délimiteur, remplaçant la chaîne oldstring précédente par la chaîne newstring suivante.

[root@localhost ~]# ll /etc/httpd/conf.d

total 16
-rw-r--r-- 1 root root 2926 Nov  4  2020 autoindex.conf
-rw-r--r-- 1 root root  400 Nov  4  2020 README
-rw-r--r-- 1 root root 1252 Nov  4  2020 userdir.conf
-rw-r--r-- 1 root root  764 Nov  4  2020 welcome.conf
[root@localhost ~]# !!:s^conf.d^conf
ll /etc/httpd/conf
total 28
-rw-r--r-- 1 root root 11899 Nov  4  2020 httpd.conf
-rw-r--r-- 1 root root 13064 Nov  4  2020 magic
[root@localhost ~]# 
Copier après la connexion
Historique des commandes Linux - améliorez facilement lefficacité de la ligne de commande

通过本文的学习,我们已经学会了如何使用Linux命令历史记录来提高我们的命令行操作效率。同时,我们还了解了常用的历史命令操作以及如何对历史记录进行配置和管理。希望这篇文章对你在使用Linux命令行时有所帮助,并能够让你更加高效地完成自己的工作。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal