云网牛站
所在位置:首页 > Linux命令 > 备份Linux终端历史记录及恢复历史备份的方法

备份Linux终端历史记录及恢复历史备份的方法

2019-08-25 15:53:53作者:高出稿源:云网牛站

Linux终端具有历史记录功能,使用此功能,你输入的每个命令操作都将备份以供日后使用,由于所有终端命令都保存在历史记录中,因此必须对其进行备份以便妥善保管。在本文中,我们将向你展示如何备份Linux终端历史记录以及如何还原备份。

 

Linux终端历史存储在哪里?

Linux终端将其历史记录存储在文件中,此文件名为“.bash_history”,任何人都可以编辑它,并将其存储在主目录中,由于Linux的终端历史文件存储在用户目录中,因此系统上的每个用户都有一个文件。

特殊权限不保护这些历史文件,系统上的任何用户都可以使用简单的命令查看另一个用户的历史记录,因此,例如,如果我想查看Linux系统上用户名“user”的终端/命令行历史记录,我会这样做:

备份Linux终端历史记录及恢复历史备份的方法

cat /home/user/.bash_history

用户还可以通过执行“history”命令查看他们在Linux终端shell中登录的当前用户的历史记录:

history

最重要的是,由于“history”只是一个文件,因此可以使用grep函数像常规文本文件一样进行搜索,因此,例如,使用以下命令在username中查找“git clone”的实例:

cat /home/user/.bash_history | grep 'git clone'

参考:在Linux系统下使用grep命令搜索文件的详细用法

它还可以作为当前登录用户使用“history”命令:

history | grep 'search term'

 

将终端历史记录保存到备份

Linux终端的“history”只是一个整齐隐藏的文本文件,其中包含所有用户输入的命令,因为它只是一个文件,这意味着它很容易备份以便妥善保管。

要创建备份,请使用cat命令,为什么?使用cat(cat命令_Linux cat命令使用详解:连接文件并打印到标准输出设备上),你可以直接在终端中查看整个文本文件,我们可以将此命令与“>”符号结合使用,将查看输出重定向到备份文件。

因此,例如,要备份当前历史记录,请对“~/.bash_history”运行cat命令,并将其保存到标记为“history_backup”的文件中:

备份Linux终端历史记录及恢复历史备份的方法

cat ~/.bash_history > history_backup

你还可以结合“>”运行history命令并以此方式保存:

history > history_backup

最后,可以通过运行以下命令来备份未登录的其他用户的命令行/终端历史记录,注意:请务必将“username”更改为你要保存历史记录的用户:

cat /home/username/.bash_history > history_backup

比如用户名是ywnz,则:

cat /home/ywnz/.bash_history > history_backup

 

仅备份某些历史记录项

你可能只想备份Linux终端历史记录中的特定命令,执行此操作的方法是查看历史记录文件并将其与grep命令结合使用,该命令将过滤特定关键字。

例如,要仅在Linux终端历史记录中备份包含git clone或git命令的命令,可以运行以下操作。注意:在这些例子中,我们使用的是“>>”而不是“>”,“>>”的原因是它不会覆盖历史文件备份的内容,并且可以重新运行多次以添加到备份:

cat ~/.bash_history | grep 'git' >> history_backup

要么:

cat /home/username/.bash_history | grep 'git' >> history_backup

使用grep过滤也可以应用于history命令,就像这样:

history | grep 'git' >> history_backup

要从历史记录文件中备份某些关键字,请将上面示例中的“git”替换为你要备份的任何命令,你可以根据需要随意重新运行此命令。

 

恢复历史备份的方法

恢复历史记录备份就像删除原始文件并将备份放在其位置一样简单,要删除原始历史文件,请在终端窗口中使用rm命令删除“.bash_history”:

rm ~/.bash_history

从要还原历史记录的用户的主文件夹中删除原始历史记录文件后,使用mv命令将“history_backup”重命名为“.bash_history”:

mv history_backup ~/.bash_history

现在新的历史文件就位,运行history -rw命令重新加载终端的历史记录功能:

history -rw

然后,你将能够通过以下方式查看终端历史记录:

history

 

恢复其他用户的备份

是否需要从系统上的其他用户恢复历史记录备份?要执行此操作,请首先使用su命令登录其用户:

su username

登录用户后,删除驻留在用户主目录(~)中的当前历史文件:

rm ~/.bash_history

从那里,将历史记录备份文件重命名为用户目录中的新“.bash_history”文件:

mv /path/to/backup/file/history-backup ~/.bash_history

写下更改:

history -rw

完成后,运行历史记录以在终端窗口中查看已还原的命令。

 

相关主题

为Linux命令历史记录启用时间戳

Linux命令子频道
精选文章
热门文章