[1140]linux查看历史命令history

2023-11-19

一、什么是history
在bash功能中,它能记忆使用过的命令,这个功能最大的好处就是可以查询曾经做过的举动!
从而可以知道你的运行步骤,那么就可以追踪你曾下达过的命令,以作为除错的工具!

二、History的保存
那么命令记录在哪里呢?在home目录内的 .bash_history 里! 不过,需要留意的是,~/.bash_history 记录的是前一次登陆以前所运行过的命令,而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!

history [n]
[root@jb51 Desktop]#history [-c]
[root@jb51 Desktop]#history [-raw] histfiles

选项与参数:

n :数字,意思是要列出最近的 n 条命令行表的意思;
-c :将目前的 shell 中的所有 history 内容全部消除;
-a :将目前新增的 history 命令新增入 histfiles 中,若没有加histfiles ,则默认写入 ~/.bash_history;
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w :将目前的 history 记忆内容写入 histfiles 中;

例,列出目前最近的 3 条数据,代码如下:

[root@jb51 Desktop]#history 3
1019  history 
1020  history
1021  history 3

例,立刻将目前的数据写入 histfile 当中,代码如下:

[root@jb51 Desktop]#history -w
# 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!
[root@jb51 Desktop]#echo $HISTSIZE
1000

三、历史使用的窍门
1、!的使用

  • !!重复前一个命令
  • ! num 按照history命令输出中的序号来重复对应命令
  • ! ?abc 重复前一个包含abc的命令
  • ! -n 重复n个命令之前的那个命令

2、按键组合

  • 使用up和down键来上下浏览之前执行的命令
  • 键入ctr+r来在命令历史中搜索命令

代码如下:

[root@jb51 Desktop]# 
(reverse-i-search)`': 
(reverse-i-search)`h': cat /etc/shadow

按回车键执行该命令

  • 要重新调用前一个命令中的参数
    Esc + .(点击Esc键,然后点击.键)

1. 查询历史记录

[root@zcwyou ~]# history

2. 查看每条历史命令执行的时间

[root@zcwyou ~]# export HISTTIMEFORMAT='%F %T '
[root@zcwyou ~]# history

3. 使用Ctrl+R搜索历史命令

比如,曾经执行过这样的命令

gzip -t 10M.txt.gz

使用Ctrl+R后输入10M,可以直接重新执行该命令。如果要修改指令,可以使用方向键右键

4. 重复执行上一条命令

1.用方向键向上键查看上条命令,按回车执行。

2.在命令行中输入!!并按回车。

3.在命令行中输入!-1并按回车。

4.按Ctrl+P显示上条命令,按回车执行。

5. 根据序号重复执行某命令:

先查看序号

[root@zcwyou ~]# history

看到输出结果中的某命令:

683 2018-11-10 02:00:36 dd if=/dev/zero of=zcwyou.txt bs=1M count=15

然后重复执行该命令:

[root@zcwyou ~]# !683

6. 查找以特定字开头的历史命令并执行

比如曾经执行的命令:

du wordpress.tar.gz

执行以下命令即可重新执行du开头的历史指令。

[root@zcwyou ~]# !du

7. 修改历史命令的保存数量

比如设置只能保存100条历史记录:

[root@zcwyou ~]# vi ~/.bash_profile

linux修改历史命令的保存数量

修改以下两行内容:

HISTSIZE=100

HISTFLESIZE=100

8. 使用HISTCONTROL来清除命令历史中的连续重复条目

比如连续三次输入命令

ll

9. 使用以下命令把多条连续重复的指令整合在一起:

[root@zcwyou ~]# export HISTCONTROL=ignoredups 

检查:

history

CentOS系统默认已经开启该功能。

10. 使用HISTCONTROL在整个历史中去除重复命令

[root@zcwyou ~]# export HISTCONTROL=erasedups 

11. 清除历史命令

使用选项-c

[root@zcwyou ~]# history -c

12. 替换历史命令中的内容

比如,你查看了cp1.txt的内容

[root@zcwyou ~]# cat cp1.txt

然后想编辑它:

[root@zcwyou ~]# vi !!:$

!!:$表示上一个指令的参数。

即等同于vi cp1.txt

如果同时有多个参数时,可选择参数次序

[root@zcwyou ~]# cp cp1.txt cp1.txt.bak
[root@zcwyou ~]# vi !^ 

等同于vi cp1.txt

!^表示第一个参数。

13. 禁用history记录

HISTSIZE设置为0即可。

[root@zcwyou ~]# export HISTSIZE=0 

14. 不记录某些指令

比如:

不记录pwd、ls、ls -ltr三个指令。

设置如下:

[root@zcwyou ~]# export HISTIGNORE=“pwd:ls:ls –ltr: ”

参考:https://blog.csdn.net/weixin_39788451/article/details/110808824
https://www.yisu.com/zixun/421382.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[1140]linux查看历史命令history 的相关文章

  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • 如何检测脚本是否正在被获取

    我有一个脚本 我不希望它调用exit如果它正在被采购 我想检查一下是否 0 bash但是如果脚本源自另一个脚本 或者用户从不同的 shell 获取它 例如ksh 有没有可靠的方法来检测脚本是否来源 稳健的解决方案bash ksh zsh 包
  • 为什么我的 Dockerfile CMD 不起作用?

    所以在我的 Dockerfile 的末尾我有这样的内容 WORKDIR home CMD django admin startproject whattt CMD bin bash 当我创建映像然后运行容器时 一切都按预期运行 没有错误 D
  • IBM AIX:核心-外壳:显示文件修改日期

    我想用 bash 做这样的事情 查看文件上次修改的时间 ls lha ls full time 但我必须在 AIX 上使用 core shell 怎样才能达到这样的效果呢 您可以使用 istat istat test ksh Inode 8
  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 监听外部事件。 Bash 到 NodeJS 的桥梁

    在 NodeJS 进程内部 我如何监听来自 bash 的事件 例如 NodeJS side obj on something function data console log data Bash side do something Hel
  • 如何让 STDOUT 和 STDERR 都转到终端和日志文件?

    我有一个脚本 将由非技术用户交互式运行 该脚本将状态更新写入 STDOUT 以便用户可以确定脚本运行正常 我希望将Stdout和STDERR重定向到终端 以便用户可以看到脚本正在工作 并查看是否存在问题 我还希望将两个流都重定向到日志文件
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • 从c调用汇编函数

    我试图从 c 调用汇编函数 但我不断收到错误 text globl integrate type integrate function integrate push ebp mov esp ebp mov 0 edi start loop
  • 通过 bash 从文件中检索电子邮件主题

    我有一个 shell 脚本 它将文件从服务器邮件文件夹下载到 NAS 设备 以便客户端拥有本地备份的副本 文件保存为11469448248 H15587P19346 smtp x14 eu 2 S文件 我已将扩展名更改为标准 eml 格式
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • Fortran 中的共享库,最小示例不起作用

    我试图了解如何在 Linux 下的 Fortran 中动态创建和链接共享库 我有两个文件 第一个 liblol f90 看起来像这样 subroutine func print lol end subroutine func 我用它编译gf
  • 配置confixtx.yaml文件?

    我正在尝试使用以下内容构建 Hyperledger Fabric 网络 Smartforce 订购者组织 Falcon io ORG1 弗罗斯特 io ORG2 我已经使用 cryptogen 工具生成了所有加密材料 不希望使用 confi
  • 如何从 Linux 内核模块获取使用计数?

    我对正在开发的内核模块的使用计数有疑问 我想打印它以进行调试 如何从模块代码中获取它 有问题的内核版本 Linux 2 6 32 module refcount http lxr linux no linux v2 6 34 1 inclu
  • shell中如何求数组的长度?

    shell中如何求数组的长度 例如 arr 1 2 3 4 5 我想得到它的长度 在本例中是 5 a 1 2 3 4 echo a 4
  • 查看 Linux 上的多核或多 CPU 利用率

    我有一个在 Linux 上运行的程序 我需要确定它如何利用所有 CPU 内核 有没有什么程序可以查看这些信息 跑过 top 命令并按下 1 查看各个核心
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • 将 mysql 查询输出存储到 shell 变量中

    我需要一个变量来保存从数据库检索的结果 到目前为止 这基本上是我正在尝试但没有成功的事情 myvariable mysql database u user p password SELECT A B C FROM table a 正如你所看

随机推荐

  • uniapp 开发微信小程序之新版隐私协议

    自从微信小程序官方更新隐私协议 用户必须同意之后 才能获取个人信息 这就导致在获取用户信息之前 需要有个隐私协议弹窗 大致如下图 微信小程序官方提供的API和 uniapp 开发的稍微有点区别 这里只记录 uniapp 开发的 如果需要微信
  • 高中学历的程序员,以包装的方式进入现在的公司,想跳槽咋办?

    网友自述 我在现在广州这家公司工作了两年 技术上有一定提升 但这两年我过得一直不是很快乐 因为我学历包装 所以我不敢跟同事交往太深 一直孤身一人 非常难受 可能这就是代价吧 现在我想换一个公司 我不想再用假身份了 但不知道用高中学历是否能够
  • Java对点、线、面生成栅格瓦片jpg,并渲染呈现

    Java对点 线 面生成栅格瓦片jpg 并渲染呈现 1 效果图 2 原理 2 1 面瓦片的生成 2 2 线瓦片的生成 2 3 多点瓦片的生成 3 源码 参考 这篇博客将介绍从前端HTML页面到后端预生成栅格瓦片jpg 并提供查询接口供前端h
  • Python文件操作

    1 with open E 信息 docx rb as f 2 read data f read 3 f closed rb 以二进制形式读取指定路径的文件 再以二进制形式写入指定路径 wb 1 with open E 信息 2 docx
  • Go Web编程实战(6)----反射

    目录 反射 反射的3大原则 接口类型变量 转换为 反射类型对象 反射类型对象 转换为 接口类型变量 反射类型对象 修改 值必 可写的 反射 与其他语言一样 Go语言的反射同样是指 计算机程序在运行时 可以访问 检测和修改它本身状态或行为的一
  • MAC 怎么终端怎么退出和进入Anaconda环境

    mac安装完anaconda 后 命令行窗口默认使用conda的 取消默认 用以下一行代码在命令行运行即可 重启终端 conda config set auto activate base false 将false改为true设置默认环境为
  • Codeforces 1475C. Ball in Berland(二元容斥)

    题目传送门 题意 一个班级有a个男生和b个女生 现在这个班级有k对男女愿意一起出席毕业典礼 这里注意k对男女中可能会有某个男生或女生出现在多个pair中 你从这k对中找出两对 使得这两对中的男生不相同 女生不相同 即一个男生或女生不可能在一
  • cuda 矩阵乘法,从最容易理解到算得最快(第二版源码-tile机制+共享内存)

    下面我们仅仅引入tiling方法 在共享内存中进行分块矩阵的乘法运算 先分析一下能够减少多少次对全局存储区的访问 当M N K 4096时 用第一版的代码 忽略cache的缓存时 需要从全局存储区读取2 4096 3 个float变量 为了
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010

    意大利著名好车品牌 法拉利 一直在世界上享受名誉 该游戏作品将带领玩家感悟法拉利的文化底蕴 游戏介绍 法拉利虚拟学院2010 包括了2010款法拉利F1赛车F10 以及三条通过镭射扫描技术绘制的高精度赛道 Fiorano Mugello N
  • spring boot 简介以及作用

    我们都知道spring是一个功能非常强大的框架 但是它也存在非常不好的弱点 也是对于我们普通的程序员的致命的弱点 就是它的配置文件太多了 而 在开发界一直有一句话 就是约定大于配置 这样一句话 就是说系统 类库 框架应该假定合理的默认值 而
  • JsonObject对象和jsonArrsy数组的获取JDK1.8,添加到表中

    1 基础数据结构 一个合同号对应多个批号 一个批号对应多个车辆 arrivalReport contractContent contractNumber 2021 11 17合同号 orderNumber 2021 11 17 0032订单
  • AbstractQueuedSynchronizer之AQS

    文章目录 AbstractQueuedSynchronizer AQS 概述 基本原理 实现细节 等待队列 state属性 独占模式 ReentrantLock AbstractQueuedSynchronizer AQS 概述 Abstr
  • 爬虫学习笔记(十五)——加密解密

    文章目录 一 概念和作用 1 1 概念 1 2 作用 1 3 常用加密方式 二 字符编码 2 1 进制间转换方法 python 2 2 unicode 三 Base64编码原理 3 1 概念 3 2 作用 3 3 Base64编码表 3 4
  • MySQL备份与恢复

    2 3 1备份MySQL数据库 在MySQL的bin目录下 有一个名为mysqldump的可执行文件 将该bin目录添加到环境变量中 可以利用它在 命令提示符 环境下来备份数据库 语法格式如下 mysqldump opt 要备份的数据库名
  • 词项(term)与词条(token)区别

    传送门
  • Sublime Text 3 全程详细图文教程(转载)

    今天被群里大佬安利了一款文本编辑软件 找了一下相关教程 一 前言 使用Sublime Text 也有几个年头了 版本也从2升级到3了 但犹如寒天饮冰水 冷暖尽自知 最初也是不知道从何下手 满世界地查找资料 但能查阅到的资料 苦于它们的零碎
  • 系统CPU飙高和频繁GC,我要怎么排查

    1 Full GC次数过多 相对来说 这种情况是最容易出现的 尤其是新功能上线时 对于Full GC较多的情况 其主要有如下两个特征 线上多个线程的CPU都超过了100 通过jstack命令可以看到这些线程主要是垃圾回收线程 通过jstat
  • 理解图像的傅里叶变换(细心分析)

    最近在看图像的傅里叶变换 看着频谱图一直没看明白到底为啥是那样的 跟同学研究了好久 终于想明白了 感谢同学的耐心指导 大家相互讨论真的很快就能出结果 多讨论 多学习 图像的傅里叶变换 图像是一个二维的信号 所以对它进行二维的傅里叶变换 对于
  • layui文件上传接口后端具体实现SpringMVC

    做课程设计时候 用到了layui文件上传接口 参考官方文档给出的响应接口文档 code 0 msg data src http cdn layui com 123 jpg 然后具体的上传书写方式分为前端和后端 layui官方并没有说明上传的
  • [1140]linux查看历史命令history

    一 什么是history 在bash功能中 它能记忆使用过的命令 这个功能最大的好处就是可以查询曾经做过的举动 从而可以知道你的运行步骤 那么就可以追踪你曾下达过的命令 以作为除错的工具 二 History的保存 那么命令记录在哪里呢 在h