(三)命令管理-命令历史-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 '   # 为历史记录添加时间戳
相关推荐
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy14 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕15 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫16 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生16 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1117 小时前
linux基础IO
linux·运维·服务器
BelongPanda19 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯20 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983420 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器