I Raised My Kids On The Command Line And They Love It

I Raised My Kids On The Command Line And They Love It

Two years ago, my son Jacob (then 3) and I built his first computer together. I installed Debian on it, but never put a GUI on the thing. It’s command-line, and has provided lots of enjoyment off and on over the last couple of years. The looks of shock I get from people when I explain, as if it’s perfectly natural, that my child has been able to log in by himself to a Linux shell since age 3, are amusing and astounding. Especially considering that it is really not that hard. Instead of learning how to run an Xbox, he’s learned how to run bash. I like that.

Image remixed from shooarts (Shutterstock)

Lately, Jacob (now 5) hasn’t been spending much time with it. He isn’t really at a stage where he wants to push his limits too far, I think, but yet also gets bored with the familiar. So I thought it was time to introduce a GUI in a limited fashion, perhaps to let him download photos and video from his Vtech toy camera (that takes real low-res photos and videos which can be downloaded over a USB1 link). He’s familiar with the concept, at least somewhat, having seen GUIs on Terah’s computer (Gnome 2) and mine (xfce4 + xmonad).

So last night, Oliver (age 2) and I went down to the basement on a mouse-finding expedition. Sure enough, I had an old PS/2 mouse down there that would work fine. The boys both helped string it through the desk up on our play room, and were tremendously excited to see the red light underneath it when the computer came on. Barely able to contain the excitement, really. A bit like I remember being when I got my first mouse (at a bit of an older age, I suppose.)

I helped him them in as root for the very first time. (Jacob typed “root”, and I typed the password, and provided the explanation for why we were telling the computer we were “root”.) Jacob and Oliver alternated typing bits of some apt-get command lines. Then while we waited for software to download, I had to answer repeated questions of “how soon will the mouse work?” and “what does ‘install’ mean?”

Finally it was there, and I told Jacob to type startx. I intentionally did not install a display manager; more on that later. He pressed Enter, the screen went blank for about 5 seconds, and then X appeared. “Excited” can’t begin to describe how they acted. They took turns playing with the mouse. They loved how the trash can icon (I started with XFCE) showed trash IN the trash can.

But they are just learning the mouse, and there’s a lot about a typical GUI that is unfriendly to someone that isn’t yet proficient with a mouse. The close buttons are disappointingly small, things can be too easily dragged on and off the panel and menus. When I sat down to think about it, the typical GUI design does not present a very good “it always works the same” interface that would be good for a child.

And then it occurred to me: the perfect GUI for a child would be simply xmonad (a tiling window manager that can be controlled almost entirely by keyboard and has no need for mouse movements in most cases.) No desktop environment, no file manager in the root window. Just a window manager in the classic X way. Of course!

So after the boys were in bed, I installed xmonad. I gave Jacob’s account a simple .xsession that starts a terminal and xmonad.

Today, Jacob informed me that he wanted his computer to look “just like yours”. Playing right into my hands, that was! But when he excitedly typed startx, he said it wasn’t just like mine. Uh oh. Turns out he wanted the same wallpaper as my computer uses. Whew. We found it, I figured out that xli(1) loads it in the root window, and so I added a third line to .xsession. More delight unlocked!

Jacob mastered the basics of xmonad really quickly. Alt-Shift-C to close a window. Alt-Shift-Q to quit back to the “big black screen”. Alt-Shift-Enter to get a terminal window.

We launched thunar (the XFCE file manager) and plugged in his camera. He had a good deal of fun looking at photos and videos from it. But then I dropped the true highlight of the day for him: I offered to install Tuxpaint for him. That’s probably his favourite program of all time.

He watched impatiently as apt-get counted down 1m30s for tuxpaint and its libraries. Then we launched it, and he wanted to skip supper so he could keep playing Tuxpaint on “my VERY OWN COMPUTER!”

I’d been debating how to introduce GUIs for a very long time. It has not escaped my attention that children that used Commodores or TRS-80s or DOS knew a lot more about how their computers worked, on average, than those of the same age that use Windows or MacOS. I didn’t want our boys to skip an entire phase of learning how their technology works. I am pleased with this solution; they still run commands to launch things, yet get to play with more than text-based programs.

At bedtime, Jacob asked me, very seriously:

“Dad, how do I start tuxpaint again?”

“First you log in and type startx. Then you can use the mouse.”

Jacob nods, a contemplative look on his face…

“Then,” I continue, “you type tuxpaint in the terminal, and it comes right up.”

Jacob nodded very seriously a second time, as if committing this very important information to long-term memory. Then gave a single excited clap, yelled “Great!”, and dashed off.

I introduced my 5-year-old and 2-year-old to startx and xmondad. They’re DELIGHTED! [The Changelog]

John Goerzen is a programmer, sysadmin, Debian developer and dad from Kansas. He writes about all these things on his blog.


  • Cute. I may not be able to get my young child (now 2.5) to handle the command line as he’s been using a touch pad since he was 1, but you never know. maybe it will spark his interest.

  • I only ever used the command line for simple things like launching installers, games and other basic applications; file browsing/manipulation; and more recently for specific Windows commands like ipconfig and ping. Since almost all of my command line learning was done in DOS the idea of a multitasking OS run using CLI just seems weird.

    Would like to learn to use a computer this way though. Maybe one day when I get around to grabbing a Pi…

  • Growing up with a C64 I’m well aware of the control you feel by being able to do everything at the command line. Though I fail to see how this increases the child’s understanding of how a computer works. A file system maybe but actual computing unlikely.

    Having said that – He has gotten his kids to understand more than simply point and click and at a very young age. Which is an amazing achievement in and of itself.

    • I grew up using DOS long before I was using a GUI like Windows 3.1 or something. I feel like that knowledge of DOS helps me to understand PC’s so much better.

    • Have to disagree. I found using the CLI on my VIC-20 taught me a lot.

      I’d been shown how POKE could be used to play with the foreground and background colours. As any kid would, I then set about POKE’ing random numbers to see what other cool things I could do. End result – system crash and the beginnings of an education in memory-mapping.

      • Ahhh. Remember doing similar things myself. Maybe I was wrong in my initial judgement. Maybe this is the first logical step into a deeper understanding. Like children growing up in bilingual homes CLI is another way of communicating that only gets deeper as the kids get older.

        – I hereby retract my previous comment.

  • I think its important for tech savy kids to learn about command prompts…. if you want them to become decent software developers. I was a dos kiddie in my youth, and by the time I was 16-17 I was getting into all sorts of mischief on BBS and the internet. So having a kid who knows to much could lead to a bad situation.

  • i self-taught myself at the age of 6.

    Anyone remember the following prompts?



    (same computer)

    My first and most favourite command in DOS 5 (when I finally converted to a 386) was ‘dosshell’.

  • Wow I rember that. It was the coolest upgrade. I remember carrying around all my best software on 1 floppy.

    Dos 5 – then Kermit at Uni

    Arrrh Memories of us old farts

Show more comments

Log in to comment on this story!