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
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"}]
Répétez la nième commande de l'historique
Répétez la nième commande dans l'historique bash :
[root@localhost ~]# !772
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 ~]#
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
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
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 ~]#
通过本文的学习,我们已经学会了如何使用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!