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 感到沮丧......在终端中输入大量内容。
如果没有命令可以使用?或?表示您的历史文件为空或您没有读取权限。检查那个。
也许您以其他用户身份运行命令。如果是这样:
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 开头的最后一个命令。再次按下向上箭头将完成倒数第二次,依此类推。我不知道为什么这不是默认值。
如果您记得输入的命令的一部分,您可以按Control+并搜索 bash 历史记录。R
您的主文件夹中还有一个名为的文件.bash_history,您可以打开该文件或使用 grep 查找以前输入的命令。
| 归档时间: |
|
| 查看次数: |
5575 次 |
| 最近记录: |