> ## Content Index
> Fetch the complete content index at: https://www.autodidacts.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# 20 years of Linux and I finally started using job control
- URL: https://www.autodidacts.io/20-years-of-linux-and-i-finally-started-using-job-control/
- Published: 2026-05-23T06:14:56.000Z
- Updated: 2026-06-01T22:11:53.000Z
- Description: And it’s amazing
- Author: Curiositry
- Tags: 100DaysToOffload, Linux, CLI

I have been using Linux since before I owned my own computer, and for much of that time, have been comfortable with the command line (I'm a computer programmer, after all; though not a particularly fancy one).

I have always been annoyed that Ctrl+Z doesn’t work in terminal (not to mention, Ctrl+S, and all other table-stakes keybindings. [Keybindings should be universal, man!](https://www.autodidacts.io/universal-keybindings/)). I knew, vaguely, what it did. It didn't sound interesting to me.

I slowly warmed up to GNU readline keybindings. They’re not as good as universal keybindings, but I sure miss them when they're gone, and now I've started using them when I write TUI dashboards. And I spend my time in a console text editor, in a non-standard shell, in tmux. Which is just to say, I'm not a *complete* rube.

But, job control? “*Wuts job control?*” said the self-styled CLI enthusiast. I knew, vaguely, that jobs could be backgrounded (whatever that meant), but I frankly didn't see the point. If you need to run something in the background, just use `command &` like a normal person (and then watch it rudely spit characters into your terminal when it feels like it anyhow).

So.

Then I was working on a project in which I spent large swaths of my day SSH'ed into an underpowered box running way too many heavy processes, via a bastion server. The nature of the work required binocular vision, so — prepare for the yuck — I would split my home Tmux into two panes, open *two* SSH sessions, knowing vaguely how gross that was, and double-hop to the server, using one pane for my main work, and the other for poking around the file system as needed.

Probably a month into the project, which involved running interminable Python analysis scripts against a 20gb SQLite DB, I (*re?)* read the wonderful post [*Shell Tricks That Actually Make Life Easier (And Save Your Sanity)*](https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/?ref=autodidacts.io). There was that little `fg` thing again...

Suddenly, I was able to run *one* SSH session. Mind blown!

It works like this:

1. Start long running process: `python3 my_epic_analysis_script.py --do-all-the-extra-stuff-too`
2. Background it with Ctrl+z (and `bg` if you want to to keep going rather than go on ice)
3. Do other stuff, like poking around the file system, or madly trying to recover from swap thrashing
4. When ready to check if it finished (we're not fancy enough to have it notify), run `fg` to bring it back

This is amazing right on its own, but it gets even better. Did you know that modern CPUs with modern CLIs can run *two programs at once?!*

1. Start long running process: `python3 oh_my_gosh_this_is_going_to_take_all_night.py --auto-resume-when-you-crash`
2. Background it with Ctrl+z (and `bg`)
3. Start *another* thing that’s super slow and resource hungry: `emacs`
4. Background that too with Ctrl+z (and `bg`)
5. Where did all my stuff go? Someone tidied up my room and now I can't find the clothes I left on the floor! That’s a job for `jobs`
6. Which one do we want? The first one, or the second one? The first one: `fg %1` (← unclear what the percentage sign is up to but there it is)
7. Still not done! Ctrl+z and `bg`, then `fg` (we can skip the `%2` because there is no third job at present), then Ctrl+z and `bg`, then, in the morning, `fg %1`.

I sometimes wonder if someone who really *knew* Linux would ever need to install applications. The problem, often, isn’t that the feature isn’t there: the problem is *discoverability.* 

It was the same thing when I was learning Vim. I would install all kinds of glorious plugins, and then, months or years later, learn that the base install provided 98% of the functionality I needed, it just was a bit weird, and hard to find.

Now you can press ctrl+z on this blog, and `fg` on whatever you were trying to do when you found it.

****Note:** this post is part of [#100DaysToOffload](https://www.autodidacts.io/100daystooffload/), a challenge to publish 100 posts in 365 days. These posts are generally shorter and less polished than our normal posts; expect typos and unfiltered thoughts! [View more posts in this series.](https://www.autodidacts.io/tag/100daystooffload/)