history 命令历史
在终端中按捉[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 命令历史的更多相关文章
- 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 ...
- Linux命令:history命令历史的管理及用法
bash可以保存的过去曾经执行过的命令.当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中.当用户退出当前shell时,会将内存中的历 ...
- linux下history命令显示历史指令记录的使用方法
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...
- History(历史)命令用法
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的用法. 使用 HISTTIMEFORMAT 显示时间 ...
- History(历史)命令用法15例
导读 如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率,本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFOR ...
- 【Linux基础】history查看历史命令
1.history命令 “history”命令就是历史记录.它显示了在终端中所执行过的所有命令的历史. history //显示终端执行过的命令 history //显示最近10条终端执行过的命令 C ...
- [转] Linux History(历史)命令用法 15 例
[From]https://linuxtoy.org/archives/history-command-usage-examples.html 如果你经常使用 Linux 命令行,那么使用 histo ...
- History(历史)命令用法 15 例
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...
- linux history(命令历史)
1.bash中默认命令记忆可达1000个.这些命令保存在主文件夹内的.bash_history中. 2.~/.bash_history:记录的是前一次登录以前所执行过的命令.至于本次登录的命令暂时存储 ...
随机推荐
- Putty 工具使用
如何使用Putty远程(SSH)管理Linux VPS Putty是一个免费的.Windows 32平台下的telnet.rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具.用它 ...
- git恢复某个已修改的文件--备忘
checkout 恢复某个已修改的文件(撤销未提交的修改): $ Git checkout file-name revert 还原已提交的修改(已经提交过的修改,可以反悔-) 还原最近一次提交的修改: ...
- 20172302 《Java软件结构与数据结构》第九周学习总结
2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 教材学习内容总结 第十五章 图 1.图:图(graph)是由一些点(vertex)和这些点之间的连 ...
- Docker 容器生命周期管理命令
docker run 命令 -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: --name= ...
- react-native组件封装与传值
转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-component-packaging-and- ...
- [Java web]Spring+Struts2+Hibernate整合过程(2)
摘要 上篇文章介绍了一种整合方式,不妨就叫做有hibernate配置文件的方式,这里介绍一种不用hibernate.cfg.xml的一种配置方式,为了方便,就仍在上篇的demo中,继续修改了. 步骤 ...
- 基于Centos搭建 Hadoop 伪分布式环境
软硬件环境: CentOS 7.2 64 位, OpenJDK- 1.8,Hadoop- 2.7 关于本教程的说明 云实验室云主机自动使用 root 账户登录系统,因此本教程中所有的操作都是以 roo ...
- [Aaronyang] 写给自己的WPF4.5 笔记17[Page实现页面导航]
1. 第一个Page页使用 新建PageDemo解决方案,默认wpf应用程序 右键项目新建页,然后指定App.xaml的默认启动窗口,为Page1.xaml,F5运行项目 文章内容已经迁移http:/ ...
- 12C -- ORA-65005: missing or invalid file name pattern for file
克隆pdb创建新的pdb的时候遇到了以下的错误,具体过程如下文.数据库版本:12.2.0.1 查看已有pdb的tempfile文件 SQL> select name from v$tempfil ...
- 微信公众号 几种移动端UI框架介绍
微信公众号开发,主要是移动端网页的页面开发,在这里推荐3个移动端UI框架:WeUI.SUI和Mint UI. 1. WeUI 1.1 WeUI WeUI是微信官方设计团队为微信 Web 开发量身设计, ...