首页 > 运维 > linux运维 > 正文

如何查看Linux命令历史 history命令使用技巧

P粉602998670
发布: 2025-08-30 11:43:01
原创
724人浏览过

<p>在 linux 系统中,history 命令的使用技巧包括:一、直接输入 history 查看命令历史,每条命令前的数字为编号,可用于调用,默认保存 1000 条(可通过 histsize 修改);二、1. 按 ctrl + r 输入关键词进行反向搜索,继续按 ctrl + r 可查找更早匹配项,enter 执行或 → 键复制到命令行;2. 使用 history | grep 关键词过滤输出,如 history | grep ssh 可查找所有包含 ssh 的命令;三、1. 使用 !编号 执行指定编号命令,如 !1050;2. 使用 !命令前缀 执行最近以该前缀开头的命令,如 !scp;3. !$ 引用上条命令最后一个参数,!* 引用上条命令所有参数(除命令本身);四、通过环境变量优化行为:1. histsize 和 histfilesize 设置历史条数;2. histcontrol 设为 ignoredups 忽略连续重复命令;3. 设为 ignorespace 忽略以空格开头的命令;4. 设为 ignoredups:erasedups:ignorespace 同时启用多个选项;5. histtimeformat 设置时间戳格式,使 history 输出包含时间;6. history -c 清除当前会话内存中的全部历史;7. history -d 编号 删除指定编号命令;8. history -w 保存当前会话历史到文件;9. history -r 从文件重新读取历史;五、1. 命令前加空格可避免记录(需设置 ignorespace);2. history n 显示最近 n 条命令;3. history | awk '{print $2}' | sort | uniq -c | sort -nr | head -10 统计最常用的 10 个命令;掌握这些技巧能显著提升命令行效率,关键是合理设置环境变量、善用搜索与引用、避免泄露敏感信息。</p>

如何查看Linux命令历史 history命令使用技巧

在 Linux 系统中,

history
登录后复制
命令是日常使用频率非常高的工具之一,它能帮助我们快速查看、搜索甚至重复执行之前输入过的命令。掌握它的使用技巧,可以显著提升命令行操作效率。下面介绍几种实用的
history
登录后复制
使用方法。


一、基本用法:查看命令历史

直接输入

history
登录后复制
即可列出最近执行过的命令:

history
登录后复制

输出示例:

 1001  ls -l
 1002  cd /var/log
 1003  tail syslog
 1004  history
登录后复制

每条命令前面的数字是其在历史记录中的编号,可用于后续调用。

提示:默认情况下,bash 会保存最近 1000 条命令(可通过 HISTSIZE 环境变量修改)。

二、搜索历史命令的技巧

1. 使用
Ctrl + R
登录后复制
进行反向搜索

在终端中按下

Ctrl + R
登录后复制
,然后输入关键词,即可从最近的命令开始向前搜索。

例如:

  • 按下
    Ctrl + R
    登录后复制
  • 输入
    log
    登录后复制
  • 可能出现
    tail /var/log/messages
    登录后复制
  • 继续按
    Ctrl + R
    登录后复制
    可查找更早的匹配项

找到后按

Enter
登录后复制
执行,或按 → 键将其复制到命令行进行修改。

2. 使用
grep
登录后复制
过滤 history 输出

如果想查找包含某个关键词的所有历史命令,可以结合

grep
登录后复制

history | grep ssh
登录后复制

这会列出所有包含

ssh
登录后复制
的历史命令,非常适用于找回曾经用过的远程登录命令。


三、快速执行历史中的某条命令

1. 按编号执行命令

假设

history
登录后复制
显示:

 1050  systemctl restart nginx
登录后复制

你可以通过

!1050
登录后复制
直接执行这条命令:

!1050
登录后复制

2. 执行最近一次以某命令开头的命令

比如想再次运行上次的

scp
登录后复制
命令:

!!scp
登录后复制

更准确的写法是:

!scp
登录后复制

这会执行最近一次以

scp
登录后复制
开头的命令。

3. 引用上一条命令的部分内容

  • !$
    登录后复制
    :引用上一条命令的最后一个参数
    例如:

    cp /home/user/file.txt /tmp/
    ls !$     # 相当于 ls /tmp/
    登录后复制
  • !*
    登录后复制
    :引用上一条命令的所有参数(除命令本身)

    UP简历
    UP简历

    基于AI技术的免费在线简历制作工具

    UP简历128
    查看详情 UP简历
    sudo apt install vim
    !*        # 得到: vim
    登录后复制

四、管理历史记录的行为

你可以通过设置环境变量来优化

history
登录后复制
的行为。

常用环境变量设置(可写入
~/.bashrc
登录后复制

# 设置保存的历史命令条数
export HISTSIZE=5000
export HISTFILESIZE=5000

# 忽略重复命令(连续重复只记录一次)
export HISTCONTROL=ignoredups

# 忽略以空格开头的命令
export HISTCONTROL=ignorespace

# 或者同时启用多个控制选项
export HISTCONTROL=ignoredups:erasedups:ignorespace

# 将每条命令的时间戳也保存下来
export HISTTIMEFORMAT="%F %T "
登录后复制

设置

HISTTIMEFORMAT
登录后复制
后,
history
登录后复制
输出会包含时间,如:
1001  2025-04-05 10:23:10  ls -la
登录后复制

清除部分或全部历史记录

  • 清除全部历史:

    history -c
    登录后复制

    注意:这只是清除了当前会话的内存记录,不会自动写入文件。

  • 删除特定命令(比如删掉包含密码的):

    history -d 1050   # 删除编号为 1050 的命令
    登录后复制
  • 手动保存当前会话的历史:

    history -w
    登录后复制
  • 从文件重新读取历史:

    history -r
    登录后复制

五、一些实用小技巧

  • 避免记录敏感命令:在命令前加一个空格(前提是设置了

    ignorespace
    登录后复制
    ):

     ssh user@host -i /path/to/secret.key
    登录后复制

    这条命令不会被记录。

  • 查看最近几条命令

    history 10
    登录后复制

    只显示最近 10 条。

  • 将 history 输出按频率统计

    history | awk '{print $2}' | sort | uniq -c | sort -nr | head -10
    登录后复制

    这个命令可以找出你最常用的 10 个命令。


基本上就这些。

history
登录后复制
看似简单,但配合搜索、引用和环境设置,能极大提升你的终端效率。关键是养成良好的使用习惯,比如合理设置历史大小、善用搜索、避免泄露敏感信息。不复杂,但容易忽略。

以上就是如何查看Linux命令历史 history命令使用技巧的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号