(三)命令管理-命令历史-history命令的使用

文章目录

    1. 命令格式
    1. 基本用法
    • 2.1 查看历史命令
    • 2.2 执行历史命令
    1. 高级用法
    • 3.1 搜索历史命令
    • 3.2 历史记录管理
    • 3.3 使用历史参数
    1. 注意事项
    • 4.1 历史记录存储
    • 4.2 安全考虑
    • 4.3 环境变量配置

1. 命令格式

bash 复制代码
history [选项] [参数]
  • -c:清空历史记录
  • -d offset:删除指定位置的历史记录
  • -a:将当前会话的历史记录追加到历史文件中
  • -n:从历史文件中读取尚未读取的历史记录
  • -r:读取历史文件内容到当前会话
  • -w:将当前历史记录写入历史文件
  • -p:执行历史扩展但不执行命令
  • -s:将命令添加到历史记录中但不执行

2. 基本用法

2.1 查看历史命令

bash 复制代码
# 查看所有历史命令
history

# 查看最近10条历史命令
history 10

2.2 执行历史命令

bash 复制代码
# 执行第15条历史命令
!15

# 执行上一条命令
!!

# 执行最近以"git"开头的命令
!git

3. 高级用法

3.1 搜索历史命令

bash 复制代码
# 使用Ctrl+R进行反向搜索
# 按Ctrl+R,输入关键词,反复按Ctrl+R可以向前搜索

# 使用grep过滤历史命令
history | grep "ssh"

# 显示带时间戳的历史命令(需要先配置)
export HISTTIMEFORMAT='%F %T '
history

3.2 历史记录管理

bash 复制代码
# 清空当前会话的历史记录
history -c

# 删除第5条历史记录
history -d 5

# 删除5-10条历史记录
for i in {10..5}; do history -d 5; done

# 将当前历史记录保存到文件
history -w ~/my_history.txt

3.3 使用历史参数

bash 复制代码
# 上一条命令的最后一个参数
ls /usr/local/bin
cd !$  # 相当于 cd /usr/local/bin

# 上一条命令的所有参数
cp file1.txt file2.txt /backup/
ls !*  # 相当于 ls file1.txt file2.txt /backup/

# 上一条命令的第n个参数
tar -czf backup.tar.gz /home/user
chmod 644 !^  # 相当于 chmod 644 -czf(第一个参数)
chmod 644 !:2 # 相当于 chmod 644 backup.tar.gz(第二个参数)

4. 注意事项

4.1 历史记录存储

bash 复制代码
# 历史文件通常位于
echo $HISTFILE  # 通常是 ~/.bash_history

# 历史记录大小限制
echo $HISTSIZE  # 内存中保存的历史数量
echo $HISTFILESIZE  # 历史文件中保存的历史数量

4.2 安全考虑

bash 复制代码
# 避免在历史记录中保存敏感信息
# 在命令前加空格(需要配置HISTCONTROL)
export HISTCONTROL=ignorespace
 mysql -u root -p  # 命令前的空格会使该命令不被记录

# 完全禁用历史记录
export HISTSIZE=0

4.3 环境变量配置

bash 复制代码
# 在 ~/.bashrc 中配置
export HISTSIZE=10000           # 内存中保存10000条记录
export HISTFILESIZE=20000       # 历史文件中保存20000条记录
export HISTCONTROL=ignoreboth   # 忽略重复命令和空格开头的命令
export HISTIGNORE="ls:ps:history" # 忽略指定命令的记录
export HISTTIMEFORMAT='%F %T '   # 为历史记录添加时间戳
相关推荐
苏宸啊15 分钟前
进程替换库函数
linux
时光之源25 分钟前
安装WSL2后在其中安装Ubuntu24.04.4再安装OpenClaw全流程傻瓜式教学:WSL2 + Ubuntu 24.04 + OpenClaw
linux·运维·ubuntu·openclaw·龙虾
大袁同学34 分钟前
【进程信号】:溯源硬件起中断,掌舵内核控信号
linux·信号处理
能喵烧香34 分钟前
跨越系统的开源尝试:KDE Windows版本全解析
linux·windows·开源
智算菩萨1 小时前
OpenAI Codex 国内使用完全指南:Windows/macOS/Linux 三平台详细安装配置教程(现在最新的有gpt-5.3-codex和gpt-5.4)
linux·windows·gpt·macos·ai·ai编程·codex
Yupureki1 小时前
《Linux网络编程》4.应用层HTTP协议
linux·服务器·c语言·网络·c++·http
孙同学_1 小时前
【Linux篇】网络层与数据链路层详解
linux·网络·智能路由器
拾光Ծ1 小时前
【Linux系统】进程信号(上)
linux·运维·服务器·面试·信号处理
咖喱o1 小时前
网络-堆叠
linux·运维·服务器·网络
Java面试题总结1 小时前
一文搞定 Linux Nginx 从安装、启动到 nginx.conf 全配置详解(新手也能看懂)
linux·运维·nginx