Windows命令提示符的类似Bash历史记录的功能


10

我正在寻找一种支持Linux Terminal方便功能的命令提示符替代方案,例如

  • 保留命令的历史记录,并使用向上键访问它们。
  • 在文件中记录命令(例如:.bash_history)。
  • 能够调整命令窗口的大小。
  • 允许使用Ctrl + C和Ctrl + V复制/粘贴内容。

我经历了Console,但是我想知道它是否支持调整UI之外的任何功能。我更希望在提示符下保留命令的历史记录,以便不必每次都输入命令。

Answers:


4

旧的东西叫做“ doskey”。实际上,对于我们的老伙伴来说,这是相当熟悉的景象...

查看其帮助页面:

C:\ Users \ bubu> doskey /?
编辑命令行,重新调用Windows命令,并创建宏。

DOSKEY [/ REINSTALL] [/ LISTSIZE = size] [/ MACROS [:ALL | :exename]
  [/历史] [/插入| / OVERSTRIKE] [/ EXENAME = exename] [/ MACROFILE = filename]
  [宏名称= [文本]]

  / REINSTALL安装新的Doskey副本。
  / LISTSIZE = size设置命令历史记录缓冲区的大小。
  / MACROS显示所有Doskey宏。
  / MACROS:ALL显示具有以下所有可执行文件的所有Doskey宏
                      Doskey宏。
  / MACROS:exename显示给定可执行文件的所有Doskey宏。
  / HISTORY显示存储在内存中的所有命令。
  / INSERT指定将您键入的新文本插入到旧文本中。
  / OVERSTRIKE指定新文本覆盖旧文本。
  / EXENAME = exename指定可执行文件。
  / MACROFILE =文件名指定要安装的宏文件。
  macroname为您创建的宏指定名称。
  text指定要记录的命令。

向上和向下箭头调用命令;ESC清除命令行;F7显示器
命令历史;ALT + F7清除命令历史记录;F8搜索命令
历史; F9按编号选择命令;ALT + F10清除宏定义。

以下是Doskey宏定义中的一些特殊代码:
$ T命令分隔符。在宏中允许多个命令。
$ 1- $ 9批处理参数。等效于批处理程序中的%1-%9。
$ *符号替换为命令行中宏名称后的所有内容。

C:\ Users \ bubu>

它不会将历史记录保存在文件中,您当然可以使用doskey / history> file和东西来执行此操作,但是它不如bash自动化。ctrl-c会产生中断,因此不会在控制台中使用。即使xterm也不允许这样做。(对此,xterm使用鼠标选择作为复制,右键单击作为粘贴)

或者,您可以使用cygwin并使用bash代替...它也可以在Windows上运行。


2

控制台不仅仅可以将Windows cmd.exe用作目标外壳。例如,如果下载BASH Shell的Windows端口,则可以在控制台下使用它。这与其他工具(如MinGW(包括Windows的BASH端口以及许多您喜欢的* nix终端备用设备,如lswget))或系统路径中的GNUWin32程序结合在一起,可以在Windows中为您提供一个非常Unix-y的控制台。


2

尝试使用TCC / LE,它具有命令行编辑和历史记录等功能。它是Take Command环境软件的免费版本。

安装后,您可以指定要记录的方面(命令,错误,历史记录)以及要将它们保存在哪个文件中。TCC / LE可以与Console或ConEmu结合使用。

在此处输入图片说明


要显示此对话框,请在TCC \ LE cmd中运行“ OPTION”。
Yonixw

2

这是一个很老的问题,一直保持不变,直到我最近找到了一个称为ConEmu的出色命令提示符替代方案。

在此处输入图片说明

它支持多种功能,例如选项卡,重新启动时自动还原会话,Power Shell集成以及主要功能(命令历史记录)。尽管它仍然不支持基于文件的历史记录(因此历史记录在重新启动时会丢失),但是作为开源工具,我打算添加该支持(除非Windows 10命令提示符提供了我在预览中看到的所有承诺) 。谢谢所有回答的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.