kra*_*r65 15 command-line bash
对于某些项目,我经常输入几个命令,例如:
cd an/extremely/long/path/in/which/I/have/some/kinda/project
Run Code Online (Sandbox Code Playgroud)
和
./runmyproject --with some --command line --options set
Run Code Online (Sandbox Code Playgroud)
看到我很懒惰,我尽量避免一次又一次地完整输入这些命令。所以我当然可以经常使用向上键来找回这些命令,但通常,我在两者之间还有很多命令,搜索它比仅仅输入它需要更多的时间。
我现在想知道是否有某种实用程序可以建议我经常使用的完整命令,当我还没有输入所有命令时。这样我就可以例如输入“cd an/”并且它已经建议了路径的其余部分,因为我在过去一个月中使用了很多。
我确实找到了一个叫做 Bash Smart Complete 的东西。但这有点“愚蠢”,因为它没有查看我之前使用的命令。我刚刚也找到了这个 SO answer,它建议将我经常使用的命令放在一个文件中。但是,响应速度不够快,因为每次启动新项目或更改文件夹或程序参数时,我都需要为其创建一个新文件。
有人知道任何其他实用程序或其他方法来实现这一目标吗?或者,有人知道我如何更改 Bash Smart Complete 以便它可以查看我在上个月使用的命令并完成上个月最适合和使用最多的命令吗?
[编辑] 以下是一些非常棒的答案。我还没有将任何标记为明确的答案。不是因为我不喜欢这些答案,我喜欢,而是因为它们都不是绝对的赢家。我认为Finalterm是一个很棒的项目。不幸的是,它的边缘仍然相当粗糙。例如; 它还不支持复制粘贴。不过我会继续关注那个项目,因为当它成熟时,我认为它会是一个很棒的终端应用程序。至于其他答案;他们要么建议创建一个别名,这不是我想要做的,因为它会创建额外的工作而不是取消工作,或者使用 Ctrl+R,这是一个很棒的(我不知道它!)。有几个人建议使用 Ctrl+R,所以我不能真正突出一个答案而不是另一个。
所以现在我肯定使用 Ctrl+R,将来我可能会使用 Finalterm。
感谢所有伟大的回答家伙!
有一个非常有前途的终端应用程序称为Final Term。在其众多功能中,它还具有记忆命令的历史记录,以便您可以选择它。以下是更多功能:

您可以在本文中阅读更多相关信息。
这是创作者的网站。http://finalterm.org/
sudo add-apt-repository ppa:versable/finalterm-daily
sudo apt-get update
sudo apt-get install finalterm
Run Code Online (Sandbox Code Playgroud)
我说过这是有希望的。唯一的问题是它的版本是 0.1。所以,有些事情好像vim并nano还没有很好地工作。我还注意到它还不支持拖放和复制粘贴。但它确实具有您要求的功能。随着软件的成熟,它将成为最好的桌面终端之一。
这是正在运行的函数:

希望这可以帮助。
*我在 Saucy,所以这就是为什么我有蝾螈背景:)
小智 8
将以下内容粘贴 (Ctrl-Shift-V) 到终端屏幕中:
echo '"\e[A": history-search-backward' > ~/.inputrc
echo '"\e[B": history-search-forward' >> ~/.inputrc
echo 'set show-all-if-ambiguous on' >> ~/.inputrc
echo 'set completion-ignore-case on' >> ~/.inputrc
Run Code Online (Sandbox Code Playgroud)
退出 (Ctrl-D) 终端屏幕,然后再次打开终端。
现在您只需输入前几个字符,然后按向上或向下键滚动过滤列表
alias对整个命令使用 an ,或将目录添加到$PATH. 此外,您不必将目录更改为要运行它的可执行文件(或脚本或其他任何东西)的位置,因此它相当简单。这两种方法都要求您在更改生效之前重新启动正在使用的终端。
以下是bash alias为您的示例创建一个的方法(将以下行添加到您的~/.bashrc文件中):
alias runmyproject='an/extremely/long/path/in/which/I/have/some/kinda/project/runmyproject --with some --command line --options set'
Run Code Online (Sandbox Code Playgroud)
这样,您所需要做的就是runmyproject随时随地输入终端,而无需指定选项/参数。
或者,您可以将项目路径添加到$PATH环境变量中。为此,请将以下几行添加到您的~/.bashrc文件中:
PATH=an/extremely/long/path/in/which/I/have/some/kinda/project:$PATH
export PATH
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您仍然需要在运行时为可执行文件指定选项/参数。
| 归档时间: |
|
| 查看次数: |
11198 次 |
| 最近记录: |