你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Linux命令行中使用history相关的几个技巧

[复制链接]
gaosmile 发布时间:2021-2-19 11:32
当你频繁使用Linux命令行时,有效地使用历史记录可以大大提高生产力。今天我们来介绍一下Linux命令行中使用history相关的几个技巧。0 E7 C! o1 X$ O0 [9 Z( T

$ h7 o: C% ^! i6 w  ]9 H8 X* k
) s: I' A# [1 [5 m
1.使用 HISTTIMEFORMAT 显示时间戳
当在命令行输入history时,它将显示序号和命令。出于审计目的,将时间戳与命令一起显示可能会有所帮助。

[root@localhost ~]# export HISTTIMEFORMAT='%F %T '
- K! t& o1 z: h[root@localhost ~]# history | less) L) |. C: h4 K6 k7 `6 c( f

微信图片_20210219113101.png

- {, P( t2 l5 T0 t

+ J! Q6 [6 P2 T  I* u

* c9 k! c# n" _' y/ F# [) s, \' U

' C5 U# I8 h$ L; Y+ y
2. 使用Ctrl + r 搜索历史记录
当你已经执行了很长的命令时,可以简单地使用关键字搜索历史记录并重新执行同一命令,而不必完全键入它。按Ctrl + r 并键入关键字。在以下示例中,我搜索了wget,它在包含wget一词的历史记录中显示了先前的命令“ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo”。

# 当按下ctrl + r键,会出现下面状态。
" O& K9 S# r" N1 R" |  X(reverse-i-search)`':
5 ]: S0 s- m* p' Q' T; V* L# 然后输入 wget ,后面会有命令过滤出匹配的历史命令。如果显示出来的是不想要的命令,可以继续补充命令行。) H( P* G( l: Q, }" `
(reverse-i-search)`wget ': wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
: H% [3 Q; H: o, f( c

当搜索出想要的命令行,可以按下 Enter回车键,就可执行命令了。
过滤出匹配的历史命令,想要更改参数,可以按一下tab键、或者方向键,可以退出搜索模式来修改这条历史命令,并执行。
5 u& e0 B" F5 f' K8 b
3 M. c2 M7 G% k- s

; {: o7 {6 s" Y8 ^9 h
' A/ ?, r4 _+ Z1 T- e% u) g
3.速重复上一个命令
可以使用!!两个叹号,执行上一条命令。也可以使用!-1,执行上一条命令。
微信图片_20210219113104.png
微信图片_20210219113107.png

  f* W: [  c, p! Z% D
9 r5 Z0 ]9 D; V6 |" z. m% E
* p3 K4 a: e9 U. ]+ @2 i' A% g
& i) e' a8 z2 d( |
4. 从history中执行特定命令
可以使用!加数字,执行history里面指定行号的命令。

[root@localhost ~]# !4
) v: c' i" U7 ]: Nss -tul' _: p$ p7 U! A1 j" Z6 ?
Netid     State      Recv-Q     Send-Q         Local Addressort          Peer Addressort     Process     
1 @4 f- B+ A5 m& c. m( U4 Gudp       UNCONN     0          0                  127.0.0.1:323                0.0.0.0:*                    
) V2 f9 L, F% P$ e* q5 h- p4 Qudp       UNCONN     0          0                      [::1]:323                   [::]:*                    
9 l2 i- W( ]" H1 `8 C- ]tcp       LISTEN     0          128                  0.0.0.0:ssh                0.0.0.0:*                    
* q4 K3 L; ]) [/ r* Ttcp       LISTEN     0          128                     [::]:ssh                   [::]:*. q8 ]( d% O7 ~2 {7 ^7 E8 h% l4 l

微信图片_20210219113111.png

( z( c. E  w9 g8 e5 G! X% o8 f0 Q

& A5 f" t. }# S# C( B/ \1 t8 y
) C, ?2 u  k) C/ O) |

5 n; D& H. Q" ~, \2 @4 o, V
5. 使用HISTSIZE控制历史记录中的总行数
默认情况下Centos8中,history存储1000条历史记录。可以使用下面命令查看:

[root@localhost ~]# echo $HISTSIZE
2 u# h8 E; \; P$ W2 j, y10009 J! L; p; g8 e$ [2 u$ j4 p4 M" p8 \9 |

将以下两行添加到.bash_profile,然后执行source ~/.bash_profile即可生效。下面命令中,使history存储历史记录少一些,只存储200条。

[root@localhost ~]# echo "HISTSIZE=200" >> .bash_profile
2 v7 R8 W0 J* T$ h( ][root@localhost ~]# echo "HISFILETSIZE=200" >> .bash_profile 9 H- A+ E/ x' w8 r& e1 ?
[root@localhost ~]# source ~/.bash_profile
+ r' _2 w4 P: B& a4 O/ Q

其中HISTSIZE变量,控制history命令显示的数量。
其中HISTFILESIZE变量,控制.bash_history文件中,历史记录的数量。
6 C  t! z. c& d' N7 o& b* N

! }& a) W$ W, |$ O
/ v+ y: U' |) V  u" `- q0 ^7 B: B

+ I; ^8 a9 T; [% v! @2 q
6. 更改历史记录文件名
默认情况下,历史记录的文件名叫.bash_history,可以使用HISTFILE变量更改它的文件名,可以将HISTFILE变量写入~/.bash_profile文件中,以下示例:

[root@localhost ~]# echo "HISTFILE=/root/.cmd_hist" >> ~/.bash_profile
  \5 t- g% a) ]$ {[root@localhost ~]# reboot, a4 P6 K) D( ^. Z: G

添加完成之后,重启操作系统,可以看到新的历史记录文件已经可以存储历史记录了。
微信图片_20210219113114.png
5 o, b: C  }- S. f9 Z$ L+ \7 r) s
8 y# J0 Z$ N2 q5 G3 {
4 B" ?; B) ~- p& G6 C( g( @
4 S) y2 f2 |1 R) k7 W1 @$ z
7. 清除历史记录
使用-c选项清除历史记录:

[root@localhost ~]# history -c
7 g3 k' M+ g  T3 r* [# h

微信图片_20210219113117.png
+ v0 @& F& `8 r: o' [7 J/ r8 c
. t; Z" D1 Q/ h( {9 p2 v( p

* m$ ?/ u% i$ P) y3 V2 P2 o

: y" [4 V: f; c. _1 S
8.禁用历史记录
如果你想全部禁用历史记录,则将HISTSIZE和HISTFILESIZE设置为0,如下所示。

[root@localhost ~]# echo "HISTSIZE=0" >> .bash_profile 6 k# G$ v' C) c4 U$ a# m" q; y  V
[root@localhost ~]# echo "HISFILETSIZE=0" >> .bash_profile ) ^( b8 n$ ^& z2 s
[root@localhost ~]# source ~/.bash_profile
, G& J; u" A3 H, ?

微信图片_20210219113119.png
/ [& T1 z4 w2 Y7 R+ T
赞 收藏 评论0 发布时间:2021-2-19 11:32

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版