小编AWE*_*AWE的帖子

搜索命令历史

我通过按搜索终端命令历史记录,Ctrlr但如果:

This is an old command

This is an | less -S older command
Run Code Online (Sandbox Code Playgroud)

我按下Ctrlr然后我输入“这是一个”,旧的命令出现,但不是旧的。如何搜索所有“这是一个”命令?是否可以将所有类似的命令通过管道传递给 grep 或其他东西?

如果我set -o vi,我该如何撤消它?

bash command-history terminal

11
推荐指数
2
解决办法
3万
查看次数

从终端打开 Firefox

当我输入firefox终端时,它会启动 Firefox,但终端“挂起”。

幕后发生了什么?

我可以从终端打开 Firefox 并在不关闭 Firefox 的情况下继续使用相同的终端选项卡处理其他事情吗?

command-line firefox background-process

10
推荐指数
2
解决办法
17万
查看次数

sed with while read 错过行

有人可以解释一下吗?

我有一个文件:

cat listi.txt
sdfasdfsf123sadfasdf123
jlkjh2345ljkh245lkh4325
57hghf456ghf457gf467
Run Code Online (Sandbox Code Playgroud)

这里 sed 错过了第一行:

while read line ; do sed 's/[^0-9]//g'; done < listi.txt 

23452454325
57456457467
Run Code Online (Sandbox Code Playgroud)

在这里看到:

while read line ; do echo $line; done < listi.txt 

sdfasdfsf123sadfasdf123
jlkjh2345ljkh245lkh4325
57hghf456ghf457gf467
Run Code Online (Sandbox Code Playgroud)

这可行,但感觉多余,我可能会错过它,因为我认为 sed 会传递所有行:

while read line ; do echo $line | sed 's/[^0-9]//g'; done < listi.txt 

123123
23452454325
57456457467
Run Code Online (Sandbox Code Playgroud)

为什么是这样?重新获得我对 bash 的信任,因为这让我产生怀疑

bash sed

2
推荐指数
1
解决办法
149
查看次数

通过路径修剪查找命令起点

我在没有学习的情况下总是遇到这个问题。

当在另一个目录中搜索起点的文件时,我给出了起点的完整路径,但它不起作用。当我位于起始目录并给出起始点的完整路径时,也会发生同样的情况。

find /path/from/start/. -path './anaconda3/*' -prune -o -name '*R' -print
Run Code Online (Sandbox Code Playgroud)

直接进入“修剪”目录,就像里面有糖果一样。

如果我处于起点,那么从 开始.效果很好。否则find不会修剪我试图逃脱的路径。

find . -path './anaconda3/*' -prune -o -name '*R' -print
Run Code Online (Sandbox Code Playgroud)

作品。

也许详细的答案可以解决这个问题,有时我会学习,但下次我面对命令时,find我会遇到同样的问题,就像我以前从未这样做过一样。手册页的这一-path pattern章试图说些什么,但我认为它是在 vogon 中,而且我没有巴别鱼。

directory find

1
推荐指数
1
解决办法
1125
查看次数