linux中Shell历史命令记录文件的路径是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中Shell历史命令记录文件的路径是啥?相关的知识,希望对你有一定的参考价值。

在root的主目录下没有".bash_history"文件,linux中Shell历史命令记录文件的路径是什么?

路径/etc/bashrc。在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史。

代码如下:

HISTFILESIZE=4000

HISTSIZE=4000

HISTTIMEFORMAT='%F %T'

export HISTTIMEFORMAT

注意:

HISTFILESIZE 表示在 .bash_history 文件中保存命令的记录总数,默认值是 1000;

HISTSIZE 定义了 history 命令输出的记录总数;

HISTTIMEFORMAT 定义了时间显示格式,该格式与 date 命令后的 “+"%F %T"” 是一样的;

HISTTIMEFORMAT 作为 history 的时间变量将值传递给 history 命令。

扩展资料:

显示历史命令

history 显示全部历史

history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令

使用上下箭头键也可以查看上一条根下一条命令,

3.运行历史命令

!! 运行上一条命令

!88 运行第88条命令

!88 /test 运行第88条命令并在命令后面加上/test

!?CF? 运行上一个包含CF字符串的命令

!ls 运行上一个ls命令

!ls:s/CF/l 运行上一个ls命令,其中把CF替换l

fc 编辑并运行上一个历史命令

fc 66 编辑并运行第66个历史命令

fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行

参考技术A Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样能使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。

bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
第一步:
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中能保
存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如
30。编辑profile文件(vi /etc/profile),把下面这行改为:
HISTFILESIZE=30
HISTSIZE=30
这表示每个用户的“.bash_history”文件只能保存30条旧命令。
第二步:
网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除.本回答被提问者采纳

Linux基础命令- history

Linux基础命令- history

1.history 显示历史命令

  • 作用:用于显示历史记录和执行过的指令命令

  • 当登录shell或者是退出的时候会自动进行读取和存储

1.常用参数

语法:
# history 选项 参数

#参数
-n 	#显示最近的n条记录
-a 	#将历史命令缓冲区中命令写入历史命令文件中
-c 	#将目前的shell中的所有 history 内容全部消除 实际为假删除
-r 	#将历史命令文件中的命令读入当前历史命令缓冲区
-w 	#将当前历史命令缓冲区命令写入历史命令文件中
-d 	#删除历史记录中指定的行

2.常用范例

1.获取历史记录的最新2两条

[root@localhost ~]# history 2
  342  cd
  343  history 2
这种方式获取的最新两条记录,也会把最后一条命令算上

2.执行最后一次命令

[root@localhost ~]# !!
history 2
  342  cd
  343  history 2

3.清空当前历史记录(只是清空缓存中的历史记录,伪删除)

-c 参数是清空所有历史记录

[root@localhost ~]# history -c
[root@localhost ~]# history
    1  history

这种方式类似于clear,并不会文件中的历史记录删除,如果要真正的历史记录,需要用文本中第3条关于history的配置文件.

4.将当前缓存中的历史记录写入文件(缓存中的记录是空的-用空的数据写入文件,将文件内部删除)

[root@localhost ~]# history -w

5.删除某行历史记录(这样可以有针对性的保留历史记录)

删除第25行历史记录
[root@localhost ~]# history -d 25

6.!+数字 代表执行历史中第n条命令

[root@localhost ~]# !30
cd /etc/sysconfig/network-scripts/

7.!+字符串 代表搜索历史命令最近一个以xxxx字符开头的命令

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# !cd
cd /etc/sysconfig/network-scripts/

8.crtl+r 输入某条命令的关键字,找出对应的命令,按右光标键

在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search),
此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。
当显示到你想找的合适的历史命令的时候,直接 [Enter],就执行了历史命令。

3.关于history的配置文件

  • 所有我们用history命令看到的历史记录,都默认保存在:~/.bash_history;
  • 如果是root用户就是在/root/.bash_history文件里;
  • 直接删除这个文件会清除历史记录,再登陆系统会自动重新生成这个文件

  1. Linux命令的历史记录,会持久化存储,默认位置是当前用户家目录的 .bash_history 文件中,读取历史记录,存储在相应内存的缓冲区中
  2. 我们平时操纵的Linux命令,都会记录在缓冲区中,包括history命令所执行的历史命令管理,都是在操纵缓冲区,而不是直接操纵.bash_history文件
  3. 当我们退出shell时,比如按下 Ctrl+D 时,shell进程会把历史记录缓冲区的内容,写回到.bash_history 文件中

4.Linux命令审计

1.显示历史记录时间

  • export HISTTIMEFORMAT=‘%F%T’
[root@localhost ~]# export HISTTIMEFORMAT='%F%T'
[root@localhost ~]# ping -c2 www.baidu.com
[root@localhost ~]# history 3
   12  2023-01-1417:32:07export HISTTIMEFORMAT='%F%T'
   13  2023-01-1417:32:20ping -c2 www.baidu.com
   14  2023-01-1417:32:51history 3

2.控制历史记录的总数

  • echo $HISTSIZE 查看历史记录总数
[root@localhost ~]# echo %HISTSIZE
1000
[root@localhost ~]# echo HISTSIZE=100
  • 做审计的时候我们适当把记录总数台调大
1.想要永久生效
[root@localhost ~]# echo "export HISTSIZE=10000" >> ~/.bash_profile
[root@localhost ~]# source ~/.bash_prosile

2.使用 set 命令隐藏历史记录

  • 想要隐藏某条命令,会用到set +o

  • set +o history 表示开始隐藏

  • set -o history 表示结束隐藏

#举例:
[root@localhost ~]# set +o history #命令不会记录到历史记录中
[root@localhost ~]# mysql -uroot -p789789
[root@localhost ~]# set -o history #命令不会被记录到历史中
[root@localhost ~]# history
    1  history
    2  echo "i am lisi\\thelloworld"
    3  echo -e  "i am lisi\\thelloworld"
    4  set =o
    5  set +o
    6  set +o history
    7  history

3.Linux快捷键

  • Ctrl+a #光标快速到行首
  • Ctrl+e #光标快速移到行尾
  • ctrl+b #光标左移一个字母
  • Ctrl+F #光标右移一个字母
  • Ctrl+z #把命令放入后台
  • Ctrl+c #强制终止当前命令
  • ctrl+d #退出当前登录,等同于exit logout
  • Ctrl+l #清屏
  • Ctrl+左右方向键 #跳转单词

以上是关于linux中Shell历史命令记录文件的路径是啥?的主要内容,如果未能解决你的问题,请参考以下文章

linux 命令基础

linux怎么清除history记录

linux命令 $- 是啥意思

linux的shell学习笔记

Linux基础命令- history

Linux命令行history