Linux调整命令历史方法详解

Linux 系统中的 bash history 命令有助于记住你以前运行过的命令,并重复这些命令,而不必重新输入。

如果可以的话,你肯定会很高兴不用翻阅十几页的手册,每过一会再次列出你的文件,而是通过输入 history 查看以前运行的命令。在这篇文章中,我们将探讨如何让 history 命令记住你希望它记住的内容,并忘记那些可能没有什么“历史价值”的命令。

查看你的命令历史

要查看以前运行过的命令,你只需输入 history。你可能会看到一长串命令。记忆的命令数量取决于在 ~/.bashrc 文件中设置的名为 $HISTSIZE 的环境变量,但是如果你想保存更多或更少的命令,你可以根据你的需要改变这个设置。

要查看历史记录,请使用 history 命令:

$ history
209 uname -v
210 date
211 man chage
... ...

要查看将显示的最大命令数量:

$ echo $HISTSIZE
500

你可以通过运行这样的命令来改变 $HISTSIZE 并使之永久化:

$ export HISTSIZE=1000
$ echo "HISTSIZE=1000" >> ~/.bashrc

在为你保留多少历史记录和当你输入 history 时显示多少历史记录之间也有区别。$HISTSIZE 变量控制显示多少历史记录,而 $HISTFILESIZE 变量控制在你的 .bash_history 文件中保留多少命令。

$ echo $HISTSIZE
1000
$ echo $HISTFILESIZE
2000

你可以通过计算历史文件中的行数来验证第二个变量:

$ wc -l .bash_history
2000 .bash_history

需要注意的是,在登录会话中输入的命令在注销前不会被添加到你的 .bash_history 文件中,尽管它们会立即显示在 history 命令输出中。

使用历史

有三种方法可以重发你在 history 中发现的命令。最简单的方法,特别是当你想重用的命令是最近运行的时候,通常是输入一个 ! 后面跟上命令中足够多的首字母来唯一地识别它。

$ !u
uname -v
#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

另一种简单的重复命令的方法是,只需按上箭头键,直到显示了该命令,然后按回车键。

另外,如果你运行 history 命令,并看到你想重新运行的命令被列出,你可以输入一个 ! 后面跟着命令左边显示的序号。

$ !209
uname -v
#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

隐藏历史

如果你想在一段时间内停止记录命令,你可以使用这个命令:

$ set +o history

当你输入 history 时,你输入的命令不会显示出来,当你退出会话或退出终端时,它们也不会被添加到你的 .bash_history 文件中。

要取消这个设置,使用 set -o history

要使它永久化,你可以把它添加到你的 .bashrc 文件中,尽管不使用命令历史记录通常不是一个好主意。

$ echo 'set +o history' >> ~/.bashrc

要暂时清除历史记录,这样在输入 history 时只显示之后输入的命令,可以使用 history -c(清除)命令:

$ history | tail -3
209 uname -v
210 date
211 man chage
$ history -c
$ history
1 history

注意:在输入 history -c 后输入的命令不会被添加到 .bash_history 文件中。

控制历史

许多系统上的 history 命令的设置会默认包括一个名为 $HISTCONTROL 的变量,以确保即使你连续运行同一命令七次,也只会被记住一次。它还可以确保你在首先输入一个或多个空格后跟着的命令将从你的命令历史记录中忽略。

$ grep HISTCONTROL .bashrc
HISTCONTROL=ignoreboth

ignoreboth 的意思是“忽略重复的命令和以空格开头的命令”。例如,如果你输入这些命令:

$ echo try this
$ date
$ date
$ date
$ pwd
$ history

你的 history 命令应该像这样报告:

$ history
$ echo try this
$ date
$ history

请注意,连续的 date 命令被缩减为一条,以空格缩进的命令被省略。

忽略历史

要忽略某些命令,使它们在你输入 history 时不会出现,也不会被添加到你的 .bash_history 文件中,可以使用 $HISTIGNORE 设置。例如:

$ export HISTIGNORE=”history:cd:exit:ls:pwd:man”

这个设置将导致所有的 history、cd、exit、ls、pwd 和 man 命令从你的 history 命令的输出和 .bash_history 文件中被忽略。

如果你想把这个设置变成永久性的,你必须把它添加到你的 .bashrc 文件中。

$ echo 'HISTIGNORE="history:cd:exit:ls:pwd:man"' >> .bashrc

这个设置只是意味着当你回看以前运行的命令时,列表不会被你在查看命令历史记录时不想看到的命令所干扰。

记住、忽略和忘记过去的命令

命令历史记录很有用,因为它可以帮助你记住最近使用过的命令,并提醒你最近所做的更改。它还可以让你更容易地重新运行命令,特别是那些有一串参数但你不一定想重新创建的命令。定制你的历史设置可以让你对命令历史的使用变得更容易,更有效率。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 如何在Linux命令行与其他用户通信

    在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用.因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的. wall wall 命令(意为 write all )允许你向所有在系统已登录的用户发送信息.任何用户都可以使用 wall 命令,但 wall 命令通常是系统管理员用来向用户发送公告通知的(比如服务器将关闭维护). 一个系统管理员可能会发送如下信息: $ wall The s

  • Linux 查看历史命令并执行的方法

    查看历史命令,并执行指定命令 owen@owen:~/owen/software/nginx-1.10.1$ history | grep 'configure' 1083 ./configure 1109 ./configure --prefix=/usr/nginx 1110 ./configure --prefix=/usr/nginx 2058 ./configure --prefix=/usr/local/nginx --with-openssl=/home/owen/owen/sof

  • linux中 shell 历史命令记录功能

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作.但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需要合理备份这个文件了. 默认的 history 命令只能查看用户的历史操作记录,但是不能区分每个用户

  • Linux gzip命令压缩文件实现原理及代码实例

    gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为".gz". 再强调一下,gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件. gzip 命令的基本格式如下: [root@localhost ~]# gzip [选项] 源文件 命令中的源文件,当进行压缩操作时,指的是普通文件:当进行解压缩操作时,指的是压缩文件.该命令常用的选项及含义如表 1 所示. 表 1 gzip 命令常用选项

  • linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)

    注意!!! 这种情况其实可以在安装虚拟机过程中进行避免得,下次测试装虚拟机的时候直接选择开发工具就可以了 好啦言归正传,这次是帮助大家解决问题得,首先输入make会有下图的显示 这种情况下如果是有网环境直接输入yum -y install make 就可以解决,若是无网环境则需要上网上下载源码包进行上传 yum -y install make 无网环境下在下面这个网址进行下载,在通过xftp上传到linux系统中 http://ftp.gnu.org/gnu/make/make-4.2.tar.

  • 教你隐藏Linux的命令行历史

    Linux操作系统默认都会保存用户操作的历史命令,如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中.原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权.亦或者有些特别重要的命令,你不希望在你浏览历史列表时误执行.然而,有方法可以控制哪些命令进入历史列表,哪些不进入吗?或者换句话说,我们在 Linux 终端中可以开启像浏览器一样的无痕模式吗?答案是肯定的,而且根据你想要的具体目标,有很多实现方法. 在这篇文章中,我们将讨论一些行之有效的

  • Linux telnet命令的使用

    1.简介 telnet命令用于登录远程主机,是基于Telnet协议的远程登录程序,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的. telnet命令还可做别的用途,比如确定远程服务器的某个端口是否能访问. 此外,Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标

  • Linux调整命令历史方法详解

    Linux 系统中的 bash history 命令有助于记住你以前运行过的命令,并重复这些命令,而不必重新输入. 如果可以的话,你肯定会很高兴不用翻阅十几页的手册,每过一会再次列出你的文件,而是通过输入 history 查看以前运行的命令.在这篇文章中,我们将探讨如何让 history 命令记住你希望它记住的内容,并忘记那些可能没有什么"历史价值"的命令. 查看你的命令历史 要查看以前运行过的命令,你只需输入 history.你可能会看到一长串命令.记忆的命令数量取决于在 ~/.ba

  • Python执行dos和Linux命令的方法详解

    在实际开发中,有时为了方便,可能需要执行dos命令或者Linux命令.比如说执行某些shell脚本,上传下载一些文件,执行adb命令等跨语言,加压包,解压包等跨操作系统的场景.这样能大大加强多个平台和操作系统之间的关联性. windows: 案例1:弹窗式执行dos命令(与打开cmd执行一模一样) # -*- coding: utf-8 -*- import os # 解决打印时,部分中文乱码问题 os.popen('chcp 65001') # 查看当前路径 command1 = "chdir

  • Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行.cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业.crontab命令允许用户提交.编辑或删除相应的作业.每一个用户都可以有一个crontab文件来保存调度信息.系统管理员可以通过cron.deny 和 cron

  • Linux tar 命令用法实例详解

    tar 命令可以为linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的. 首先要弄清两个概念:打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 为什么

  • Linux链接命令的实例详解

    Linux链接命令的实例详解 一 语法 ln -s [源文件] [目标文件] 命令英文含义:link 功能描述:生成链接文件 选项:-s 创建软链接 二 硬链接特征 原文件和硬链接文件删除其中任何一个都没问题. 三 硬链接实战 [root@localhost ~]# cd test [root@localhost test]# ls bcd [root@localhost test]# ln bcd abc.hard [root@localhost test]# ll total 0 -rw-r

  • Linux基础命令之mktemp详解

    mktemp 创建临时文件或者目录,这样的创建方式是安全的.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 mktemp [选项]  [TEMPLATE] 2.选项列表 选项 说明 --version 显示命令版本信息 --help 显示帮助信息 -d | --directory 创建目录 -u | --dry-run 不要创建任何东西,只要打印一个名字(不安全) -q | --quiet 发生错误的时候不显示提示信息

  • Linux rpm 命令参数使用详解

    rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Query Package list]: -qpi:列出RPM软件包的描述信息[Query Package install package

  • Linux强制释放占用端口以及Linux防火墙端口开放方法详解

    在安装nginx,mysql,tomcat等等服务的时候,我们会遇到需要使用的端口莫名其妙被占用,下面介绍如何解决这类问题. 说到端口,还不得不提到防火墙,本文还会简单介绍如何配置防火墙开发端口. Linux查看端口情况的各种方法 所有端口的映射关系在 /etc/services 文件中有 Linux端口简单介绍,端口编号从0-65536,各编号端的用途如下: 0-1023:公认端口,与常见服务绑定(FTP,SSH) 1024-49151:注册端口,用于和一些服务绑定 49152-65535:动

  • Linux环境ActiveMQ部署方法详解

    本文实例讲述了Linux环境ActiveMQ部署方法.分享给大家供大家参考,具体如下: ActiveMQ环境部署 下载地址:http://activemq.apache.org/activemq-5143-release.html 下载apache-activemq-5.14.3-bin.tar.gz. 手册:http://activemq.apache.org/getting-started.html 一.ActiveMQ需要JDK的支持 附录说明linux安装jdk 二.安装ActiveMQ

  • Linux shell命令帮助格式详解

    前言 linux shell命令通常可以通过-h或--help来打印帮助说明,或者通过man命令来查看帮助,有时候我们也会给自己的程序写简单的帮助说明,其实帮助说明格式是有规律可循的 帮助示例 下面是git reset命令的帮助说明,通过man git-reset可以查看 git reset [-q] [<tree-ish>] [--] <paths>... git reset (--patch | -p) [<tree-ish>] [--] [<paths>

随机推荐