在终端中按捉[Ctrl]键的同时[r]键,出现提示:(reverse-i-search),此时你尝试一下输入你以前输入过的命令,当你每输入一个字符 的时候,终端都会滚动显示你的历史命令。当显示到你想找的合适的历史命令的时候,直接[Enter],就执行了历史命令。另外,[Ctrl p]或[Ctrl n]快速向前或向后滚动查找一个历史命令,对于快速提取刚刚执行过不久的命令很有用。

在shell中export HISTCONTROL=ignorespace,然后执行 空格+命令,此时命令不会记录到history中。

、!$ 命令返回前一个命令使用的文件名。使用感叹号 (!) 来访问历史,然后使用美元符号 ($) 返回前一命令的最后字段。
vi !$ 、!: 操作符返回某个命令使用的第一个文件名。
$ mv kxp12.c file_system_access.c
$ ln –s !$ !:
重新命名文件 kxp12.c 以提高可读性,然后使用 link 命令来创建到原始文件名的符号链接,以防在其他位置使用
该文件名。!$ 操作符返回 file_system_access.c 文件名,而 !: 操作符返回 kxp12.c 文件名,该文件名是上个命令的第一个文件名。 、sudo !!
以root的身份执行上一条命令。 !!是上一条完成的命令行 、alt+. 或 esc.
热建alt+. 或 esc+. 可以把上次命令行的参数给重复出来。
alt+.需同时按下。 、!!:gs/old/new
将上一条命令中的 old 字符 换成 new字符 ,并再次执行命令;
也可以使用 ^old^new
输入命令:
ls abc def ghi
再输入:
!!*:s/b/d
那么相当于执行: adc def ghi
!!表示从命令历史列表中取上一条历史命令”ls abc def ghi”, *表示选择取刚才选择的命令的所有参数, 即: “abc def ghi”, :s/b/d表示对刚才取出来的参数”abc def ghi”进行替换, 把第一个出现的b替换成d 从上面可以看出, 操作历史命令分为三步:
、首先从历史命令列表中选择某条命令, 被选择到的命令被称作事件(event) (对应上面的!!)
、再从选择好的事件中选择一部分单词(words), 事件中的每个单词以空格分割(对应上面的*)
、最后对选择好的一部分单词进行修改(Modifiers) 详细:
、事件指示器:Event Designators
事件指示器用来从历史命令列表中选择一条命令, 也就是选择事件
!n    选择历史命令列表中第n条命令
!-n 选择倒数第n条命令
!! 选择上一条命令, 相当于!-, 和 C-p 的作用也一样
!string 选择最近的以string开头的命令
!?string[?] 选择最近的包含string的命令, 如果该指示器后面是换行符, 则可以不用输入结尾的”?”
^string1^string2 取上一条命令, 并把第一个出现的string1替换成string2
!# 引用目前输入的所有命令, 比如输入:
more a !#
那么最终执行的命令就是:
more a more a

、单词指示器:Word Designators

   单词指示器用来从被选择好的事件中选择一部分单词, 单词指示器必须以冒号(:)和事件指示器分割开来, 除非单词指示器以^, $, *, -, %开头
    选择第0个word, 也就是命令. 假如事件为”ls abc”, 那么单词指示器0选择的word即为”ls”
n 选择第n个word
^ 选择命令的第一个参数, 也就是第一个word, 相当于单词指示器1
$ 选择命令的最后一个参数
% 选择最近的与 “?string?” 搜索相匹配的单词
x-y 选择第x到第y个word, -y表示0-y
* 选择命令的所有参数, 相当于1-$
x* x-$的缩写
x- 类似x*, 不过不包含最后一个word.
- 选择除最后一个word外所有的words

、修饰附:Modifiers

   对选择的单词进行修改, 修饰符可以出现多次, 每个修饰符要以冒号开头
p    打印新命令, 但不执行

s/old/new/    把 第一次出现的 old替换成new, 如果分隔符”/”是最后一个字符的话, 可以省略. 就像sed中一样, 分隔符”/”可以用其他字符代替, 比如s:old:new:. new中出现的&将被old代替. 如果old省略, 那么就用上一次替换用的old代替.

&    重复上一次替换

g    使修饰符所做的修改应用于整个选择的单词. 类似于sed中的s命令最后的g, 可配合:s和:&修饰符使用, 比如:gs/old/new则对整个事件进行替换. 

例子:

(I)从别的机器的一个目录拷贝一个a.log文件, 执行:
scp user@machine:/home/user/a/a.log . 后来执行:
ls a.log
rm -rf a.log 这时候再想拷贝一下b/b.log, 可以这样做:
!scp:gs/a/b 如果只想看看用历史扩展出来的命令, 那可以这样:
!scp:gs/a/b/:p (II)从别的机器同时拷贝a/a.log和b/b.log:
scp user@mbchine:/home/user/a/a.log . && !#-:gs/a/b
上面的!#为事件指示器, 选择前面已经输入的命令”scp user@mbchine:/home/user/a/a.log . &&”, “-”为单词指示器, 选择除最后一个word, 即”&&”外的所有words, 也就是”scp user@mbchine:/home/user/a/a.log . “, 最后的”:gs/a/b”为修饰符, 对刚才选择的words进行全局替换, 把a替换成b, 最后就成了”scp user@mbchine:/home/user/b/b.log .”, 那么最终命令也就成了”scp user@mbchine:/home/user/a/a.log . && scp user@mbchine:/home/user/b/b.log .”

history 命令历史的更多相关文章

  1. centos 阶段复习 2015-4-6 dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史 /dev/zero 零发生器 /dev/null 黑洞 /dev/random 生成随机数 第十一节课

    centos 阶段复习 2015-4-6  dd命令 hosts.allow和hosts.deny 啊铭的myssh脚本 清空history命令历史  /dev/zero 零发生器  /dev/nul ...

  2. Linux命令:history命令历史的管理及用法

    bash可以保存的过去曾经执行过的命令.当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中.当用户退出当前shell时,会将内存中的历 ...

  3. linux下history命令显示历史指令记录的使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...

  4. History(历史)命令用法

    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的用法. 使用 HISTTIMEFORMAT 显示时间 ...

  5. History(历史)命令用法15例

    导读 如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率,本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFOR ...

  6. 【Linux基础】history查看历史命令

    1.history命令 “history”命令就是历史记录.它显示了在终端中所执行过的所有命令的历史. history //显示终端执行过的命令 history //显示最近10条终端执行过的命令 C ...

  7. [转] Linux History(历史)命令用法 15 例

    [From]https://linuxtoy.org/archives/history-command-usage-examples.html 如果你经常使用 Linux 命令行,那么使用 histo ...

  8. History(历史)命令用法 15 例

    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...

  9. linux history(命令历史)

    1.bash中默认命令记忆可达1000个.这些命令保存在主文件夹内的.bash_history中. 2.~/.bash_history:记录的是前一次登录以前所执行过的命令.至于本次登录的命令暂时存储 ...

随机推荐

  1. Windows7的MySQL数据库的安装

    碰巧重装了系统,需要重新安装MySQL. 1.进入官网下载:https://dev.mysql.com/ 2.severonle 3.alt+n 4.alt+x

  2. mongodb通过profile来监控数据

    mongodb可以通过profile来监控数据,进行优化.查看当前是否开启profile功能用命令db.getProfilingLevel() 返回level等级,值为0|1|2,分别代表意思:0代表 ...

  3. 微软BI 之SSIS 系列 - 平面文件格式的区别(Delimited,Fixed width,Ragged Right, Fixed width ...)

    开篇介绍 SSIS 中处理文件,一般在描述输出平面文件格式的时候通常会出现以下几种选项: Delimited - 默认输出列使用逗号分隔,也可以选择其它的诸如 | ,或者 Tab 等. Fixed W ...

  4. Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  5. 洛谷 P1016 旅行家的预算

    P1016 旅行家的预算 题目OJ链接https://www.luogu.org/problemnew/show/P1016 题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时 ...

  6. asp.net core 2.1 post 无法提交参数?

    起 ,是微软二逼升级了.....不是说好了合并Controller 了吗?又倒回去了.................

  7. IDEA使用笔记(七)——编辑器最大个数的设置

    我想一定有许多人和我一样在使用IDEA的时候,打开了许多的编辑器选项卡,但是打开的数量是有限的,我们想打开更多的页面,并且希望控制当再次达到大限的时候能关闭那些我们最久没有看的文件! 好吧!看下面的配 ...

  8. [原创]茗洋AaronYang的 jquery.myselect.js 我的一次前端突破[上]

    [评论,楼层数为30的倍数的,我送你我自己的博客园的皮肤,该博客参与活动]   介绍 myselect 自己原创的js插件   这是一个可以可以支持ie6+的所有浏览器的,适应很多场景和需求的一个下拉 ...

  9. SNF快速开发平台MVC-EasyUI3.9之-DataGrid表格控件如何增加右键菜单

    如题,我们在项目开发当中会遇到需要,表格控件增加右键菜单的使用. 下面我们就以SNF框架增加右键菜单步骤如下: 1.在加载页面当中增加如下菜单定义 <div id="mm" ...

  10. Source Insight 4.0常用设置

    本文以Source Insight 4.00.0086版本为例讲解常用设置. 1.Source Insight简介 Source Insight是一个面向软件开发的代码编辑器和浏览器,它拥有内置的对C ...