【问题标题】:how can I recall previous commands' arguments? (in csh, and in bash?)我怎样才能回忆起以前命令的参数? (在 csh 和 bash 中?)
【发布时间】:2018-04-23 08:51:24
【问题描述】:

我一般用csh(其实我的/bin/csh是链接到tcsh,csh的改进版),经常用!$来引用最后一个命令的最后一个参数。
但有时我想使用上一个命令的最后一个 two 参数。我怎样才能做到这一点?我想我可以访问任何先前命令的参数。

我已阅读How can I recall the argument of the previous bash command?,但找不到答案。 我们如何引用前一个命令的倒数第二个参数?

例如,如果我给了 echo tiger rabbit,我如何引用tiger 来执行以下命令? csh 的答案是最好的,但我也对 bash 案例感到好奇。

【问题讨论】:

  • 在前一个命令中将字符串“x”全局替换为字符串“y”然后执行它的命令是什么。我已经能够替换字符串的第一次出现但不是全部。 $> ls DF DF $> ^DF^DA^ ls DA DF 当我真的想通过一次替换将“ls DF DF”转换为“ls DA DA”时。首选 Tcsh 解决方案,但 bash 也可以。谢谢!

标签: bash csh tcsh


【解决方案1】:

使用历史扩展,您可以从 历史,按原样执行,或根据您的修改和执行 需要。这 !开始历史扩展。

  • !! 重复上一个命令
  • !10 重复历史记录中的第 10 个命令
  • !-2 重复历史记录中的第二个命令(从最后一个开始)
  • !string 重复历史记录中以“string”开头的命令
  • !?string 重复历史记录中包含单词“string”的命令
  • ^str1^str2^ 将上一条命令中的str1替换为str2并执行
  • !!:$ 获取上一个命令的最后一个参数。
  • !string:n 从历史记录中以“string”开头的命令中获取第 n 个参数。

  • !^ 上一条命令的第一个参数

  • !$ 上一条命令的最后一个参数
  • !* 上一条命令的所有参数
  • !:2 上一条命令的第二个参数
  • !:2-3 上一个命令的第二到第三个参数
  • !:2-$ 上一个命令的倒数第二个参数
  • !:2* 上一个命令的倒数第二个参数
  • !:2- 上一个命令的倒数第二个参数
  • !:0 命令本身

最后但同样重要的是,我还建议您按下 Alt + . 以访问您之前输入的任何命令的最后一个参数

【讨论】:

  • 哇,谢谢,我记得看过其中一些,但这是完整的列表!
  • 我们可以将前一个命令中所有出现的模式替换为新的吗?例如,如果我输入了ls DA DA,如何通过在前面的命令中将 DA 替换为 DE 来运行 ls DE DE^DA^DE^ 仅替换第一个生成 ls DE DA
猜你喜欢
  • 2011-03-23
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多