如何在终端中回忆历史

SUM*_*AMI 5 command-line bash environment-variables

我昨天安装了 Ubuntu 10.10。然后在使用终端时,我注意到一旦我退出终端会话,它的历史记录就消失了,尽管历史记录存在于像 ROOT(CERN) 历史记录这样的终端应用程序中。

在发出命令时

echo $HISTFILESIZE 
Run Code Online (Sandbox Code Playgroud)

它显示 2000。当我退出会话并打开一个新终端时,我将其更改为 10000;它再次将历史显示为 2000 年,并且无法通过向上/向下箭头键访问任何命令。

请帮忙。我对 soooo 感到沮丧......在终端中输入大量内容。

con*_*use 8

如果没有命令可以使用??表示您的历史文件为空或您没有读取权限。检查那个。

也许您以其他用户身份运行命令。如果是这样:

su otheruser
history 10
Run Code Online (Sandbox Code Playgroud)

并查看输出。

如果您更改$HISTFILESIZE,则无论何时调用其他 shell,更改都将被覆盖。为了防止这种情况,您应该在.bashrc. 此外,您应该将变量$HISTSIZE 设置为更大的值。

使用历史记录的一般有用提示:

Ctrl+R为您反向搜索您的历史记录。Alt+.将最后一个命令的最后一个参数粘贴到光标位置的提示中。

此外, bang ( !) 运算符将在终端中为您重复命令(如果它只是为了节省您的输入时间。例如:

confus@confusion:~$ echo "bang + letters will repeat the last command starting with these letters."
bang + letters will repeat the last command starting with these letters.

confus@confusion:~$ clear

confus@confusion:~$ !ech
bang + letters will repeat the last command starting with these letters.
Run Code Online (Sandbox Code Playgroud)

所有这些与历史相关的东西都存储在任何用户的主目录中一个名为.bash_history. 您可以使用history-command查找它们。她是一个关于如何使用历史的小教程。

confus@confus:~$ history 4 #will print last 4 commands
 1848  ls
 1849  clear
 1850  vi /home/confus/.local/share/applications/nautilus-home.desktop
 1851  history 4
Run Code Online (Sandbox Code Playgroud)

另一个非常有用的事情是.inputrc在您的主目录中创建一个包含以下内容的文件:

"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[A": history-search-backward
"\e[B": history-search-forward
Run Code Online (Sandbox Code Playgroud)

这样您就可以使用??来完成您从历史记录中开始键入的命令。例如,当您键入一个相当长的命令时,例如rsync -a -v --human-readable --prune-empty-dirs -e 'ssh -i .ssh/id_rsa' --include="*/" --exclude="snapshot_*" --exclude="restart.*" /scratch/ x@cluster1:/home/x/runs/并想要第二次运行它,您只需键入rsy,然后?它就会完成到以 rsy 开头的最后一个命令。再次按下向上箭头将完成倒数第二次,依此类推。我不知道为什么这不是默认值。


Smo*_*tko 3

如果您记得输入的命令的一部分,您可以按Control+并搜索 bash 历史记录。R

您的主文件夹中还有一个名为的文件.bash_history,您可以打开该文件或使用 grep 查找以前输入的命令。