相关疑难解决方法(0)

运行命令而不让我等待

在 CLI 上,有时我输入的命令需要一段时间才能完成,有时我知道什么时候会发生。我对 Linux 中的“背景”等有些困惑。

告诉 CLI 我不想等待的最常见(或用户友好的方式)是什么,请立即给我回提示。如果它能给我一个进度条或只是忙碌的微调器,那就太好了!

command-line background-process

159
推荐指数
7
解决办法
55万
查看次数

当我检查某事时记住一个半键入的命令

我经常发现自己处于以下位置:我已经开始在 bash 提示符下键入一个长命令,但是中途我发现我需要用另一个命令检查某些内容。当我在控制台(没有 X)时,这是一个问题,通常是这种情况,因为那时我只有以下不满意的方法来做到这一点,我知道:

  • 命中ctrl+ alt+F2和登录另一个虚拟控制台上,并找出我想要的东西,然后回去继续
  • ctrl+ a,输入 echo + space+ enter,找出我想要的,按?直到我找到我的命令,ctrl+ a, delx 5, ctrl+ e,然后继续
  • 用鼠标突出显示到目前为止我输入的内容(如果 gpm 正在运行,通常是这样),按ctrl+c中断,找出我想要的内容,同时注意不要使用鼠标突出显示内容,然后按鼠标中键在新的提示下并继续
  • 向命令行大神祈祷,写一半的命令不会有任何不利影响,只会失败,然后小心翼翼地按回车,然后找出我想要的东西,按向上箭头直到我得到我的命令,然后继续
  • 跳进我的时光机,回到过去并提醒自己在开始输入命令之前启动屏幕,回到现在,按ctrl+ a c,找出我想要的,按ctrl+ a ctrl+a,然后继续

所以我想知道的是,有没有更优雅的方法来做到这一点?一种子shell命令或类似的?

我对不需要任何准备或设置即可工作的方法最感兴趣。

command-line bash zsh

104
推荐指数
7
解决办法
6896
查看次数

ctrl c 与 ctrl z 与前台作业

Ctrl+Z停止作业,而Ctrl+C杀死的工作。

这是为什么?另一种方式不是更有意义吗?

z@z-lap:~$ sleep 100&
[1] 4458
z@z-lap:~$ sleep 200&
[2] 4459
z@z-lap:~$ jobs
[1]-  Running                 sleep 100 &
[2]+  Running                 sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^Z
[1]+  Stopped                 sleep 100
z@z-lap:~$ jobs
[1]+  Stopped                 sleep 100
[2]-  Running                 sleep 200 &
z@z-lap:~$ fg %1
sleep 100
^C
z@z-lap:~$ jobs
[2]+  Running                 sleep 200 &
Run Code Online (Sandbox Code Playgroud)

shell bash signals job-control

31
推荐指数
1
解决办法
4万
查看次数

运行应用程序而无需停止终端

如果我想从终端(linux、ubuntu)运行应用程序,我该怎么做才能使终端仍然可用,或者如果我关闭终端,应用程序仍然可以运行。

shell

15
推荐指数
1
解决办法
6万
查看次数

将作业置于后台而不冻结

说你这样开始工作

foo
Run Code Online (Sandbox Code Playgroud)

然后希望你想把它放在背景中。键入Ctrl+Z然后bg就可以了,但会fooCtrl+Z和之间冻结bg。如何在不先冻结的情况下将 foo 放在后台?

bash

9
推荐指数
2
解决办法
1742
查看次数

在执行一个命令时将命令排队

假设您运行的命令需要一些时间才能返回,并希望在执行后执行不同的命令,但您没有提前计划。

我知道可以选择按Ctrl + Z然后提交fg && otherCommand。但是,这有两个主要缺陷:

  1. 如果第一个命令是不同命令(command1 && command2command1; command2)的组合,则它不起作用,因为第一个提交的行的后续命令不会被执行。
  2. 当您输入下一个命令时,第一个命令的执行将停止。对于那些令人讨厌的 30 秒命令,您输入下一个命令所花费的时间占剩余执行时间的很大一部分,如果不是全部的话。

我也知道你可以在执行一个命令时输入下一个命令,然后点击Enter它。但是,这也有两个主要缺陷:

  1. 如果您首先执行的命令从stdin.
  2. 如果您首先执行的命令产生输出,您将看不到您输入的内容。

在执行一个命令时,是否有一种快速的方法可以将更多命令排队,可能涉及使用特殊的终端仿真器或多个终端?

command-line shell bash

8
推荐指数
2
解决办法
5933
查看次数