本文环境 Centos7
1.历史命令
1.1 在使用linux中熟练的使用历史命令,能给我很多便捷,下面我来总结一些常用的一些历史命令。
a) 执行上一条命令,这个很重要 ,执行上一条命令有四种方法,如下:
[root@CentOS-7-64data]#
[root@CentOS-7-64 data]# ls[a-z] kas kokoa l1234bd l1234bd1dada l12k l12ka l2a
当然这个命令很简单,但是命令很复杂呢?使用 ↑ ,ctrl+p ,!-1 ,!! 这四种方式可以执行上条命令
[root@CentOS-7-64 data]# !!
ls[a-z] kas kokoa l1234bd l1234bd1dada l12k l12ka l2a
[root@CentOS-7-64 data]# ls # 我这里按的是 ctrl+p
[a-z] kas kokoa l1234bd l1234bd1dada l12k l12ka l2a
[root@CentOS-7-64 data]# !-1
ls[a-z] kas kokoa l1234bd l1234bd1dada l12k l12ka l2a
[root@CentOS-7-64 data]# ls# 这里是 ↑ 键
[a-z] kas kokoa l1234bd l1234bd1dada l12k l12ka l2a
[root@CentOS-7-64 data]#
b) 在历史命令中执行最新一条以cat开头的命令,要执行以什么开头的命令,在叹号后面加上你要执行的命令,执行的是最后一条以cat开头的命令 用法 !cat
[root@CentOS-7-64 data]# !cat
catkas
hello world
hello world
[root@CentOS-7-64 data]#
c) 在历史命令中执行包含red的命令,这条命不同于上条,上条是开头,这条是包含,使用方法:
!?red !?+你要包含的命令
[root@CentOS-7-64 data]# cat /etc/redhat-release
CentOS Linux release7.7.1908(Core)
[root@CentOS-7-64 data]# !?redcat /etc/redhat-release
CentOS Linux release7.7.1908(Core)
[root@CentOS-7-64 data]#
d) 打印以kas开头的命令,只打印不执行 方法 !command:p
[root@CentOS-7-64 data]# !kas:p
kas
e) 执行前一条命令(去除参数)并打印出命令 方法 !:0
[root@CentOS-7-64 data]# catkas
hello world
hello world
[root@CentOS-7-64 data]# !:0kokoacatkokoa
hello china
hello china
[root@CentOS-7-64 data]#
f) 得到前一个命令的第一个参数并打印命令 用法 !:1
[root@CentOS-7-64 data]# catkokoa
hello china
hello china
[root@CentOS-7-64 data]# vim !:1vim kokoa
[root@CentOS-7-64 data]#
g) 要重新调用前一个命令中最后一个参数并打印命令 有几种方法 我就写我常用的 用法 !$ Esc + . 英文点
[root@CentOS-7-64 data]# !grep
grep "hello"kokoa kas
kokoa:hello china
kokoa:hello china
kas:hello world
kas:hello world
[root@CentOS-7-64 data]# vim !$
vim kas
[root@CentOS-7-64 data]#
Esc + 点 得到前一个命令的参数
[root@CentOS-7-64 data]# catkokoa
hello china
hello china
[root@CentOS-7-64 data]# vim kokoa
1.2 用好这些历史命令的正确方式能给我们的工作很大的便利,还有很多类似的命令,我就不一一演示了,就写在下面了
!$:p 打印上一条命令的最后一个参数
!*:p 打印上一条命令的所有参数
!^:p 打印上一条命令的第一个参数
^command 删除上一条命令中的第一个command,并执行删除 command 后的结果
^command1^command2 将上一条命令中的第一个command1替换为command2
!:gs/command1/command2 将上一条命令中所有的command1都替换为 command
ctrl + r 搜索历史命令 ctrl+g 退出搜索
command !^ 将上个命令的第一个参数作command的参数
command !$ 将上个命令的最后一个参数作command的参数
command !* 将上个命令的所有参数作command的参数
command !:n 将上个命令的第n个参数作command的参数
command !n:^ 获取第n条命令的第一个参数
command !n:$ 获取第n条命令的最后一个参数
command !n:m 获取第n条命令的第m个参数
command !n:* 获取第n条命令的所有参数
command !cmd:^ 在命令历史中搜索以 cmd 开头的命令,并获取它的第一 个参数
command !cmd:$ 在命令历史中搜索以 cmd 开头的命令,并获取它的最后一 个参数
command !cmd:n 在命令历史中搜索以 cmd 开头的命令,并获取它的第n 个参数
command !cmd:* 在命令历史中搜索以 cmd 开头的命令,并获取它的所有 参数
1.3 历史命令的环境变量
HISTSIZE 记录历史命令条数
HISTFILE 记录历史命令的文件
HISTFILESIZE 命令历史文件记录历史的条数
HISTTIMEFORMAT 显示历史命令时间 这个很有用 如:HISTTIMEFORMAT="%T-%F " 后面留了几个空格,你试试不留空格的效果?
HISTIGNORE
HISTCONTROL 以下是HISTCONTROL的值与效果
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ingorespace 不记录以空格开头的命令
ingoreboth 是以上两个值的效果,不记录空格开头,忽略重复
erasedups 删除重复命令
2. bash快捷键 常用的很多没列出
ctrl+l 清屏
ctrl+y 将删除的粘贴到光标处
ctrl+z 挂起
ctrl+c 强行终止
ctrl+s 锁定屏幕,组织输出
ctrl+t 交换字符,将光标前的字符与光标处的字符交换
ctrl+q 对应以上ctrl+s的命令,对ctrl+s进行恢复
ctrl+o 执行当前命令,并重新显示本命令
ctrl+e 将光标移至行尾
ctrl+a 将光标移至行首
ctrl+u 删除到行首
ctrl+k 删除到行尾
ctrl+d 删除光标上的字符
ctrl+h 删除光标前的字符
ctrl+w 向左删除至单词首
alt+r 删除整行
alt+f 光标向右移至单词尾
alt+b 光标向左移至单词首
alt+t 将光标处的单词与前一个单词换位置
alt+d 向左删除至单词首