iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux使用history来减少重复命令的实用技巧有哪些
  • 159
分享到

Linux使用history来减少重复命令的实用技巧有哪些

2023-06-15 13:06:42 159人浏览 泡泡鱼
摘要

今天就跟大家聊聊有关 linux使用history来减少重复命令的实用技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当我们频繁使用 Linux 命令行时,有效地使用历史记录

今天就跟大家聊聊有关 linux使用history来减少重复命令的实用技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

当我们频繁使用 Linux 命令行时,有效地使用历史记录,可以大大提高工作效率。

在平时 Linux 操作过程中,很多命令是重复的,你一定不希望大量输入重复的命令。如果你是系统管理员,你可能需要对用户操作进行审计,管理好 Linux 命令历史记录显得非常重要。

1 基本原理

Linux使用history来减少重复命令的实用技巧有哪些

Linux 命令的历史记录,会持久化存储,默认位置是当前用户家目录的 .bash_history 文件。

当 Linux 系统启动一个 shell 时,Shell 会从 .bash_history 文件中,读取历史记录,存储在相应内存的缓冲区中。

我们平时所操作的 Linux 命令,都会记录在缓冲区中。包括 history 命令所执行的历史命令管理,都是在操作缓冲区,而不是直接操作 .bash_history 文件。

当我们退出 Shell,比如按下 Ctrl+D 时,Shell 进程会把历史记录缓冲区的内容,写回到 .bash_history 文件中去。

2 使用详解

清楚了 history 的基本原理,我们来具体学习一下如何使用它。

(一)基础用法

直接输入 history 命令,可以看到最近操作的所有命令都显示出来了

$ history  1 bash  2 ls  3 vim .bash_history  4 cat .bash_history  5 history  6 bash

有时候我不需要显示所有的历史命令,只显示最后的 10 条历史记录,可以在命令后加数字 N 即可

$ history 10

正常情况下,只有在 Shell 正常退出时,才会将缓冲区内容保存到文件。如果你想主动保存缓冲区的历史记录,执行 -w 选项即可

$ history -w

当然,如果你执行了一些敏感的命令操作,可以执行 -c 将缓冲区内容直接删除

$ history -c

(二)重复执行命令

如果要重复执行一些命令,可以使用 ! 来快速执行重复的命令。

举个例子,重复执行第 1024 历史命令,可以执行如下命令

$ !1024

1024 这个编号可以通过 history 查看哦

重复执行上一条命令

$ !!

重复执行倒数第 6 条历史命令,可以通过负数表示,-6 表示倒数第 6 条记录

$ !-6

(三)搜索历史命令

有时候,需要重复执行某字符串开头的最后一个命令,同样可以通过 ! 来操作,然后按 Enter 执行即可

比如,刚才执行了一个很长命令,只记录命令开头是 curl,这时就可以通过 !curl 快速执行该命令

$ !curl

这个用法很高效,但存在不安全因素,因为有可能执行的命令不是你想要执行的,那就坏事了。可以通过 :p 来安全地执行。

$ !curl:p  curl www.sina.com.cn

加上 :p 后,只是打印出了搜索到的命令,如果要执行,请按 Up 键,然后回车即可。

如果你只知道某条命令包含了 x 信息,不是以 x 开头,同样可以通过 ? 来执行包含字符串的命令

(四)交互式搜索历史命令

在 Linux 搜索历史命令,还可以通过交互式的搜索方式,简直高效直接。在命令行输入 Ctrl+R 后,进入交互界面,键入需要搜索的关键字,如果匹配到多条命令,可以多次键入 Ctrl+R 来切换上一条匹配的命令。

(reverse-i-search)`sina': echo sina

可以看到,我输入了 sina 后,就自动匹配到最近一次和 sina 匹配的命令,这时按下回车就可以执行该命令。

(五)重复执行上条命令

在这里总结下多种重复执行上条命令的方式,你可以选择一种自己喜欢的就可以啦

!!  !-1  Ctrl+p  Up  Ctrl+R

(六)显示时间戳

有时候需要对 Linux 系统做审计,那为历史记录添加时间戳,显示非常有用。

$ export HISTTIMEFORMAT='%F %T '  $ history 3  46 2021-04-18 15:21:33 curl baidu.com  47 2021-04-18 15:21:35 pwd  48 2021-04-18 15:21:39 history 3

可以看到,历史记录已经显示了时间戳。其实这些对于审计需求,还不够,可以加上更详细的信息:

$ export HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed \-e 's/[()]//g'` `whoami` "  6 2021-04-18 16:07:48 113.200.44.237 root ls  7 2021-04-18 16:07:59 113.200.44.237 root pwd  8 2021-04-18 16:08:14 113.200.44.237 root history

(七)控制历史记录总数

默认情况下,Linux 系统最多存储 1000 条历史记录,可以通过 HISTSIZE 环境变量查看

$ echo $HISTSIZE  1000

对于需要做审计的场景,1000 条历史记录可能会太少了,我们可以修改为合适的值

$ export HISTSIZE=10000

注意,HISTSIZE 变量只能控制缓冲区中的历史记录数量,如果需要控制 .bash_history 文件存储的最大记录数,可以通过 HISTFILESIZE 进行控制

上述命令行修改只在当前 Shell 环境生效,如果需要永久生效,需要写入配置文件

$ echo "export HISTSIZE=10000" >> ~/.bash_profile  $ echo "export HISTFILESIZE=200000" >> ~/.bash_profile  $ source ~/.bash_profile

(八)更改历史记录文件名

有时,为了方便管理和备份,需要更改历史记录文件的路径和名称。简单,同样可以通过环境变量 HISTFILE 更改它的文件名称

$ echo "export HISTFILE=/data/backup/chopin.bash_history" >> ~/.bash_profile  $ souce ~/.bash_profile

(九)禁用历史记录

处于某种特殊环境,我们需要禁用历史记录

$ echo "export HISTSIZE=0" >> ~/.bash_profile  $ echo "export HISTFILESIZE=0" >> ~/.bash_profile  $ source ~/.bash_profile

哈哈,直接把上述两个变量的值设置为 0,就实现了禁用历史记录的功能

(十)黑客必知的一个小技巧

最后分享一个不为人知的,黑客必知的小技巧。

在命令前额外多加一个空格,这样的命令是不会被记录到历史记录的,感觉是不是很酷

这个技巧如果在你的系统不管用,请查看下环境变量 HISTCONTROL 是否包含 ignorespace,貌似 Centos 系统默认没有设置这个值。

3 总结时间

在 Linux 系统,history 命令可以非常方便,帮助我们管理历史命令,平时我们命令都会先记录在缓存区,在 Shell 退出时才会记录到文件中。

history 命令提供了很方便的管理功能,合理去配置和管理历史记录,可以让你的 Linux 系统更加健壮和安全。

好了,老规矩,贴心的肖哥还是来总结一下 history 命令常用方法

  • history n:只显示最近的 n 条历史记录

  • history -c:清除缓存区中的历史记录

  • history -w:将缓存区的历史记录保存到文件

  • history -d N:删除第 N 条历史记录

几种重复执行命令的方法:!!、!-1、!N、!string 等交互式历史命令搜索,请使用 Ctrl+R 快捷键合适使用几个相关的环境变量,让你的 Linux 系统更安全:

  • HISTSIZE:控制缓冲区历史记录的最大个数

  • HISTFILESIZE:控制历史记录文件中的最大个数

  • HISTIGNORE:设置哪些命令不记录到历史记录

  • HISTTIMEFORMAT:设置历史命令显示的时间格式

  • HISTCONTROL:扩展的控制选项

如果在生产环境,这些环境变量需要持久化到配置文件 ~/.bash_profile

export HISTCONTROL=ignoreboth  # ignorespace: 忽略空格开头的命令  # ignoredups: 忽略连续重复命令  # ignoreboth: 表示上述两个参数都设置  # 设置追加而不是覆盖  shopt -s histappend  export HISTSIZE=1000  export HISTFILESIZE=200000  export HISTTIMEFORMAT="%F %T "  export HISTIGNORE="ls:history"

看完上述内容,你们对 Linux使用history来减少重复命令的实用技巧有哪些有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网操作系统频道,感谢大家的支持。

--结束END--

本文标题: Linux使用history来减少重复命令的实用技巧有哪些

本文链接: https://www.lsjlt.com/news/280325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux使用history来减少重复命令的实用技巧有哪些
    今天就跟大家聊聊有关 Linux使用history来减少重复命令的实用技巧有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当我们频繁使用 Linux 命令行时,有效地使用历史记录...
    99+
    2023-06-15
  • Linux命令行中使用history的技巧有哪些
    这篇文章给大家分享的是有关Linux命令行中使用history的技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.使用 HISTTIMEFORMAT 显示时间戳当在命令行输入history时,它将显示序...
    99+
    2023-06-15
  • 实用的Linux命令行技巧有哪些
    小编给大家分享一下实用的Linux命令行技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!输出显示为一个表有时候,当你看到一个命令的输出,由于过度拥挤的字符...
    99+
    2023-06-16
  • linux中Sudo命令使用技巧有哪些
    这篇文章主要介绍了linux中Sudo命令使用技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sudo 表示 “superuser do”,它允许已验证的用户以其他用...
    99+
    2023-06-15
  • Linux中VI命令使用技巧有哪些
    这篇文章主要为大家展示了“Linux中VI命令使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中VI命令使用技巧有哪些”这篇文章吧。进入vi命令vi filename :打...
    99+
    2023-06-16
  • linux中Sudo命令的使用技巧有哪些
    这篇文章将为大家详细讲解有关linux中Sudo命令的使用技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root ...
    99+
    2023-06-28
  • Linux的ip命令使用小技巧有哪些
    这篇文章将为大家详细讲解有关Linux的ip命令使用小技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只...
    99+
    2023-06-27
  • linux中历史命令使用技巧有哪些
    这篇文章主要介绍linux中历史命令使用技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!历史命令使用技巧分享几个历史命令的使用技巧,能够提高你的工作效率。!!:重复执行上条命令;!N:重复执行 history...
    99+
    2023-06-27
  • Linux下TOP命令使用小技巧有哪些
    这篇文章主要介绍Linux下TOP命令使用小技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 详细显示command按下小写c : 详细显示command列就是这样的效果,启动命令显示的非常全不仅是程序的...
    99+
    2023-06-16
  • Linux中常用技巧命令有哪些
    小编给大家分享一下Linux中常用技巧命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 终止操作 【ctrl+c】2. 快速的从命令的尾部切换首部【c...
    99+
    2023-06-28
  • Linux命令行中使用history相关的技巧是什么
    这篇文章给大家介绍Linux命令行中使用history相关的技巧是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当你频繁使用Linux命令行时,有效地使用历史记录可以大大提高生产力。当在命令行输入history时,...
    99+
    2023-06-28
  • SSH命令使用小技巧有哪些
    这篇文章主要介绍了SSH命令使用小技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SSH 是 Linux 下进行远程连接的基本工具,SSH对常用的用途就是登录,SSH...
    99+
    2023-06-27
  • 少用的Linux命令有哪些
    这篇文章主要为大家展示了“少用的Linux命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“少用的Linux命令有哪些”这篇文章吧。1、pgrep, 替代:# ps -...
    99+
    2023-06-16
  • nmap实用命令行技巧有哪些
    这篇文章将为大家详细讲解有关nmap实用命令行技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1) 获取远程主机的系统类型及开放端口nmap -sS -P0 -sV -O <target&g...
    99+
    2023-06-16
  • history命令的特殊使用方法有哪些
    这篇文章主要介绍了history命令的特殊使用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇history命令的特殊使用方法有哪些文章都会有所收获,下面我们一起来看看吧。history命令是一条非常实...
    99+
    2023-06-27
  • linux Shell中网络相关命令的使用技巧有哪些
    这篇文章主要介绍linux Shell中网络相关命令的使用技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ifconfig这个命令与Windows的“ipconfig”作用一致,用于显示网络接口,子网掩码等详...
    99+
    2023-06-16
  • VI命令常用技巧有哪些
    这篇文章主要讲解了“VI命令常用技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VI命令常用技巧有哪些”吧!VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因...
    99+
    2023-06-13
  • linux cd命令的使用技巧
    本篇内容主要讲解“linux cd命令的使用技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux cd命令的使用技巧”吧!在Linux命令提示中,用linux cd命令命令来改变当前目录...
    99+
    2023-06-17
  • 有趣的Linux命令行小技巧有哪些
    这篇文章主要为大家展示了“有趣的Linux命令行小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“有趣的Linux命令行小技巧有哪些”这篇文章吧。1、 在 Linux 中锁定或隐藏文件或...
    99+
    2023-06-16
  • Linux使用技巧有哪些
    这篇文章主要为大家展示了“Linux使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux使用技巧有哪些”这篇文章吧。1.快速跳转命令 - z要是每次都要进入一个目录很深的文件夹...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作