Linux基础命令-history历史记录

2023-11-04

Linux基础命令-alias设置别名_Linux学习中的博客-CSDN博客

文章目录

前言

一、history命令介绍

二、语法及参数

 三、参考实例

总结

前言

        在工作中,经常会需要多次重复某一个命令,或者需要查看之前执行过什么命令,那么都少不了history这个命令,下面一起来看看吧。

一、history命令介绍

        history的英文单词来源于它自己,主要功能是用于显示与管理历史记录。linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们,也可以对其命令进行修改和删除操作。

二、语法及参数

1)用help或man查看history命令

语法:history 【参数】/ history 【参数】文件

[root@localhost ~]# help history
history: history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]    
    选项:
      -c	删除所有条目从而清空历史列表。
      -d 偏移量	从指定位置删除历史列表。
    
      -a	将当前绘画的历史行追加到历史文件中
      -n	从历史文件中读取所有未被读取的行
      -r	读取历史文件并将内容追加到历史列表中
    	中
      -w	将当前历史写入到历史文件中
    	并追加到历史列表中
    
      -p	对每一个 ARG 参数展开历史并显示结果
    	而不存储到历史列表中
      -s	以单条记录追加 ARG 到历史列表中

2)命令的常用参数:

-a 写入命令记录
-c 清空命令记录
-d 删除指定序号的命令记录
-n 读取命令记录
-r 读取命令记录到缓冲区
-s 将指定的命令添加到缓冲区
-w 将缓冲区信息写入到历史文件

 三、参考实例

1)显示历史记录,且再次执行其中的一个命令;

[root@localhost ~]# history
    1  rpm -ivh httpd
    2  rpm -ivh http
    3  which rpm
    4  rpm -qa | wc -l
    5  which rz 
    6  rpm -qf /usr/bin/rz 
    7  rpm -e lrzsz --nodeps
    8  which rz 
    9  rpm -p
   10  rpm repolist
[root@localhost ~]# !3                 #!数字
which rpm
/usr/bin/rpm
[root@localhost ~]# vim /etc/bashrc    #ctrl+r 快捷键从下往上搜索,右方向键确定
(reverse-i-search)`vim': vim /etc/bashrc 
[root@localhost ~]# !cd               #!字符串
cd ~

 有三种方式可以再次执行历史记录的命令:

  • 第一个方式是:!数字
  • 第二个方式是: ctrl+r 快捷键从小往上搜索,右方向键确定
  • 第三个方式是: !字符串

2)打印3行历史记录内容;

[root@localhost ~]# history 3
   46  history --help
   47  history
   48  history 3

3)将本次缓冲区信息写入到历史文件中; 历史记录是有一个本地用户文件的(~/.bash_history)

将文件给删除了,文件内的内容也一并删除了,不过用户重新登入会自动生成一个相同文件出来。

[root@localhost ~]# history -w
[root@localhost ~]# tail -n 3  .bash_history 
history
history 3
history -w

 4)将历史文件中的信息读入到当前缓冲区中;

[root@localhost ~]# history -r
[root@localhost ~]# history 
    1  yum grouplist
    2  df -h 
    3  yum grouplist

5)将本次缓冲区信息追加写入到历史记录中;

[root@localhost ~]# history -a 

6)清空本次缓存区;

[root@localhost ~]# history -c
[root@localhost ~]# history
    1  history

7)如果要设置一个用户的密码,但是又担心显示在历史记录会被看到,可以用-d删除;

[root@localhost ~]# useradd user1
[root@localhost ~]# echo "123456" | passwd --stdin user1
更改用户 user1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# history 2
    4  echo "123456" | passwd --stdin user1
    5  history 2
[root@localhost ~]# history -d 4
[root@localhost ~]# history 3
    4  history 2
    5  history -d 4
    6  history 3

8)因为history默认只能保留1000条历史记录的数量,所以若要增加数量到2000,可以通过修改变量写入到文件里;

[root@localhost ~]# echo $HISTSIZE
1000
[root@localhost ~]# vim .bash_profile 
[root@localhost ~]# tail -n1 .bash_profile 
export HISTSIZE=2000
[root@localhost ~]# source .bash_profile 
[root@localhost ~]# echo $HISTSIZE
2000
[root@localhost ~]# 

总结

        history遇到重复执行的命令,可以继续用来执行,并且这个命令的参数上不会太多,只有几个常用到的。

        如果觉得内容还行,请一定要点个赞再走,谢谢!

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

Linux基础命令-history历史记录 的相关文章

  • 在.vimrc中设置expandtab不生效

    由于某种原因set expandtab命令在我的 vimrc文件没有任何作用 这是我的 vimrc tab settings set expandtab set smarttab set softtabstop 2 set tabstop
  • Vim:使用制表符缩进,使用空格对齐

    我已经阅读了几个问题和答案 Vim 使用制表符缩进 使用空格与 C 源文件对齐 https stackoverflow com questions 8493705 vim use tabs for indentation spaces fo
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • Vim 搜索模式,如果出现则删除到行尾

    我正在尝试在文本文件中搜索特定模式 如果出现这种模式 则意味着该行的其余部分不需要 因此可以删除 我尝试过使用以下命令 但到目前为止还没有成功 s pattern d g pattern d 如果有人有任何建议 他们将不胜感激 would
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • Vim + tmux + WSL 在导航文档时显示方块和奇怪的字符

    我可以在 Windows Ubuntu 子系统中使用 vim 没有任何问题 然后 当在 tmux 中运行 Vim 并输入文本时 大多数字符都会显示为奇怪的方块 里面有引号而不是实际的字母 这是 vim 文本的屏幕截图 1 在 tmux 中突
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设

随机推荐

  • 【stm32单片机基础】按键状态机实现长按和短按

    stm32单片机基础 按键状态机 文章目录 stm32单片机基础 按键状态机 前言 一 按键的消抖 二 按键状态机实现 0 状态机模式 1 单个按键检测 2 单个按键实现长按和短按 三 长按和短按测试示例 四 多按键检测 按键处理经典例程
  • openEuler20.03如何安装图形化界面

    需求描述 需要安装图形界面方便操作 详细步骤 1 安装ukui图形界面 字体库 root localhost yum install ukui y root localhost local yum groupinstall fonts y
  • 2021白盒测试常用工具介绍【建议收藏】

    白盒测试工具一般是针对代码进行测试 测试中发现的缺陷可以定位到代码级 根据测试工具原理的不同 又可以分为静态测试工具和动态测试工具 1 Jtest 是一个代码分析和动态类 组件测试工具 是一个集成的 易于使用和自动化的Java单元测试工具
  • js 在数组对象中模糊搜索(直接上代码)

    1 测试数据 学生对象数组 var students id 1 name 张三 age 14 id 2 name 李四 age 15 id 3 name 王五 age 17 id 4 name 赵六 age 18 2 查询操作 根据下标查询
  • 写论文的开源免费神器汇总

    科研办公学习的开源免费神器汇总 一 公式 1 Mathtype 是一款专业的数学公式编辑工具 理科生专用的工具 mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号 2 Mathpix Mathpix可以将图片 PDF
  • 非对称加密算法--RSA加密原理详解

    密码学是在编码与破译的斗争实践中逐步发展起来的 并随着先进科学技术的应用 已成为一门综合性的尖端技术科学 密码学发展史 在说RSA加密算法之前 先说下密码学的发展史 其实密码学的诞生 就是为了运用在战场 在公元前 战争之中出现了秘密书信 在
  • ETCD 简介 + 使用

    随着CoreOS和Kubernetes等项目在开源社区日益火热 它们项目中都用到的etcd组件作为一个高可用 强一致性的服务发现存储仓库 渐渐为开发人员所关注 在云计算时代 如何让服务快速透明地接入到计算集群中 如何让共享配置信息快速被集群
  • getPerspectiveTransform通过4对点确认透视变换矩阵的原理分析

    老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 图像透视变换 Perspective Transformation 的本质是将图像从一个几何平面投影到另一个几何平面 透视变换保证同一条
  • html禁止Input文本输入缓存的两种方法

    默认情况下大多数的浏览器都会缓存input输入框的值 当输入框获取焦点时缓存值就会出现 我们只能通过清除浏览器的缓存来清除输入框的缓存值 这里介绍两种去掉输入框缓存的方法 input 的属性autocomplete 默认为on 其含义代表是
  • matlab自带各种分类器的使用示例

    目前了解到的 MATLAB 中分类器有 K 近邻分类器 随机森林分类器 朴素贝叶斯 集成学习方法 鉴别分析分类器 支持向量机 现将其主要函数使用方法总结如下 更多细节需参考 MATLAB 帮助文件 设 训练样本 train data 矩阵
  • 二叉树的认识

    愚昧将使你达不到任何成果 并在失望和忧郁之中自暴自弃 达芬奇 目录 一 二叉树的概念 二 二叉树的特点 结构 三 三种特殊的二叉树 1 斜树 2 满二叉树 3 完全二叉树 四 二叉树的性质 五 二叉树的存储方式 1 顺序存储 2 链式存储
  • 【前端】Vue项目:旅游App-(2)TabBar:搭建TabBar、循环获取动态数据、相关工具封装

    文章目录 目标 代码与过程 静态html css 改成动态数据 效果 总代码 修改或新建的文件 tabbarData js tab bar vue load assets App vue 目标 有两种实现方式 把数据写死 静态 直接写在ht
  • DotNetZip知识系列:用来解压缩zip

    说明 这是 net平台可以使用的一个库 NuGet Gallery Package Downloads for DotNetZip 这是官方文档 About DotNetZip DotNetZip Documentation
  • 2022.03.06 mysql8拉链表-测试

    1 创建业务表并初始数据 drop table if exists mall user create table mall user uid bigint unsigned auto increment comment 用户唯一ID pri
  • shell快速迁移海量文件的两种方案

    最近遇到这样一个小需求 linux服务器上某个目录下有几百万个文件 导致各种操作不便 急需转移历史文件 保留90天 同时对转移到的目录下新建日期文件夹 按文件创建来存放文件 想到了两种解决方案 第一种直接按创建日期find 这样需检索整个目
  • 容器化部署dex适配openldap

    ldap LDAP 在OIDC流程中是用来做身份认证服务的 包括LDAP身份认证服务器 自己的第三方应用需要调用LDAP的客户端接口 用以访问LDAP服务器进行身份验证 作用 用户验证 用户管理 ldap它是用来做统一用户身份认证的 即 你
  • 电机磁链和反电势系数关系

    电机磁链和反电动势系数辨识 刚接触电机 不久 很容易就被绕晕了 磁链 空载相反电势幅值 电角频率 text 磁链 varphi frac text 空载相反电
  • img 显示response图片数据

    url http blog csdn net ykf69177 article details 8655881 url img src servlet IdentityServlet
  • 将分数阶工具箱FOMCON加入simulink中

    1 下载FOMCON toolbox压缩文件 网址为gitee下载地址 2 将下载的压缩文件放于安装matlab的文件夹 gt toolbox 并解压缩 3 添加路径 点击设置路径 添加文件夹 添加并包含子文件夹 点击保存 4 关闭matl
  • Linux基础命令-history历史记录

    Linux基础命令 alias设置别名 Linux学习中的博客 CSDN博客 文章目录 前言 一 history命令介绍 二 语法及参数 三 参考实例 总结 前言 在工作中 经常会需要多次重复某一个命令 或者需要查看之前执行过什么命令 那么