我用了
history | less
Run Code Online (Sandbox Code Playgroud)
为了获取先前命令的行和左侧的数字,我找到了我想要重复的行(例如 22)并做了
!22
Run Code Online (Sandbox Code Playgroud)
在命令提示符下,它起作用了——在我当时所做的行上执行命令集。我无法弄清楚感叹号在哪里使用,它在 bash 采取的操作方面代表什么,以及在哪里使用它。从文档中我没有看到“有形”的解释。
有没有比 grep 更好的方法来搜索我的历史文件中的命令?我确实知道命令的开头是什么,但我不知道它在历史上有多远。
更新:以前是特定于 zsh 的,但由于答案重叠,请随时回答此处的任何 shell(或模式 (vi/emacs)),只需注意它是否特定。
我试图echo通过将内容写入文件来创建脚本,而不是使用编辑器打开它
echo -e "#!/bin/bash \n /usr/bin/command args" > .scripts/command
Run Code Online (Sandbox Code Playgroud)
的输出:
bash: !/bin/bash: 事件未找到
我已将这种奇怪的行为与bang隔离开来。
$ echo !
!
$ echo "!"
bash: !: event not found
$ echo \#!
#!
$ echo \#!/bin/bash
bash: !/bin/bash: event not found
Run Code Online (Sandbox Code Playgroud)
ack 的安装指南建议使用以下命令安装 ack 脚本:
curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3
Run Code Online (Sandbox Code Playgroud)
我认为!#:3最后是某种反向引用,但它是什么意思?zsh 中是否有等价物?谷歌没有帮助。
这是我发现自己经常做的事情:
less super/long/file/name
Run Code Online (Sandbox Code Playgroud)
其次是:
vim super/long/file/name
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将上一个命令的参数传递给下一个?所以我想做类似的事情
vim !!!
Run Code Online (Sandbox Code Playgroud)
并让它super/long/file/name在vim.
我知道有些人有一些启动脚本,有些人个性化了提示。一位开发人员为他经常访问的长路径和他运行的频繁命令使用短别名。
您对 UNIX 配置文件进行了哪些有效的自定义以提高生产力和易用性?
我刚刚了解到 Linux 有一个sudo !!命令,它实际上适用sudo于最后输入的命令。我从来没有听说过。
这是通用控件吗?我在哪里可以找到有关它的文档?
为什么grep模式中的括号会从ps结果中删除 grep 过程?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Run Code Online (Sandbox Code Playgroud) 例如,如果我做一个
mkdir thisismyfolder912
Run Code Online (Sandbox Code Playgroud)
我记得有一些thisismyfolder912比不得不做的更简单的切换方法
cd thisismyfolder912
Run Code Online (Sandbox Code Playgroud)
那是什么方式,它是如何工作的?另外,我可以使用它的其他方法是什么?