There is a small trick I love to use when running long commands in my terminal.
To run a job in the background, you can append & to the end of it. But what if you just started running a command, and you now realize you wanted to queue another command after it? Since you forgot to add &, it’s now running in the foreground in your terminal and it’s not easy to queue another job after it. Well, here is how to do it:
- You run your first command forgetting to add the
&at the end
$ for i in {1..5}; do sleep 1; done- You use
CTRL + Zto pause that job and put it in the background. You should see
> [1] + 93657 suspended sleep 1
- You use
fg && [new command]in order to put that job back to the foreground and queue another job to it.
$ fg && echo 'see!?'> [1] + 93657 continued sleep 1
> see!?
Using the jobs feature
This is using the foreground/background job feature of the terminal. Here is a more detailed tutorial.
To summarize the few command I use: - CTRL + Z to put a job in the background - jobs to have a look at all the jobs - fg to put the last bakgrounded process back to the foreground - fg %2 to put another job back to the foreground - kill %2 to kill job number 2