Linux 命令 history
是一个方便的工具,它能显示用户之前在终端中执行过的所有命令列表。该列表存储在历史文件中,使用历史命令可以查看该文件,从而更容易回忆和重复使用过去的命令。
该命令通常用于跟踪在终端中执行的操作,尤其是在排除故障或重复复杂命令序列时。它可以让用户快速回忆和重新运行以前的命令,而无需再次键入,从而节省时间和精力。有些用户还利用历史记录来审计或审查系统中的操作,从而有助于系统管理和安全。
history
命令的一般语法:
history [OPTIONS...]
1. 显示使用过的命令
history [number]
这条命令显示一定数量的以前执行过的命令。
示例:
Linux 中的 history 5
命令将显示最近在终端中执行的 5 条命令。下面是输出示例
501 git status 502 cd /var/www/html 503 ls -la 504 nano myfile.txt 505 history 5
每行显示历史记录中的一条命令,前面有一个唯一的数字,代表该命令在历史文件中的位置。在本例中,显示了最后运行的五条命令,包括 history 5
命令本身。
2. 从历史记录列表中删除命令
history -d [number]
使用 -d
选项删除历史记录列表中的命令。
示例:
删除前:
1 ls 2 cd Documents/ 3 touch file.txt 4 nano file.txt 5 rm file.txt 6 history
运行 history -d 5
:
1 ls 2 cd Documents/ 3 touch file.txt 4 nano file.txt 5 history
可以看到,第 5 条命令( rm file.txt
)已从历史记录中删除。
3. 在历史记录中搜索使用过的命令
history | grep [text]
history | grep
命令可帮助查找与文本模式匹配的命令。
例如:
Linux 中的 history | grep cat
命令将搜索命令历史记录,并显示所有包含单词 “cat” 的行。grep 命令会过滤 history 命令的输出,只显示包含指定模式(本例中为 “cat”)的行。下面是一个输出示例:
42 cat file.txt 73 cat /etc/passwd 100 cat documents/note.txt | more 123 concatenate file1.txt file2.txt > combined.txt 150 cat logs/error.log | grep "ERROR"
在这个示例中,每一行都以代表命令在历史记录中位置的数字开头,然后是命令本身。它包括 “cat” 出现的每一个实例,无论它是 cat
命令本身,还是其他单词或命令的一部分。
4. 清除历史记录列表
history -c
-c (clear)
选项用于清除历史记录列表中的所有命令。
5. 用事件编号执行命令
!number
使用该命令可以执行历史记录列表中带有事件编号的命令。无需编写完整的命令。
示例:
假设历史记录中的第 10 个命令是 ls -l
,它以长格式列出当前目录下的文件。如果运行 !10
命令,输出结果可能如下:
total 24 drwxr-xr-x 5 user user 4096 Aug 6 10:00 Documents drwxr-xr-x 2 user user 4096 Aug 6 09:45 Downloads drwxr-xr-x 2 user user 4096 Aug 6 09:45 Music drwxr-xr-x 2 user user 4096 Aug 6 09:45 Pictures
该输出显示了当前目录的内容,就像直接运行 ls -l
命令一样。
6. 将更改写入 bash_history 文件
history -w [filename]
使用此选项可将当前会话中的所有更改写入 bash_history
文件。
示例:
Linux 中的 history -w file.txt
命令不会在终端中产生输出。相反,它会将当前历史命令写入名为 file.txt
的文件。
因此,如果你打开 file.txt
,可能会看到如下内容
1 cd /home/user/documents 2 ls -la 3 sudo apt-get update 4 nano file.txt 5 history -w file.txt
现在,该文件包含之前在终端中执行的命令列表,你可以使用任何文本编辑器查看或编辑它。
更多 Linux 命令
下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:
目录操作 | rmdir · cd · pwd · exa · ls |
文件操作 | cat · cp · dd · less · touch · ln · rename · more · head |
文件系统操作 | chown · mkfs · locate |
网络 | ping · curl · wget · iptables · mtr |
搜索和文本处理 | find · grep · sed · whatis · ripgrep · fd · tldr |
系统信息和管理 | env · history · top · who · htop · glances · lsof |
用户和会话管理 | screen · su · sudo · open |
此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。
评论留言