Skip to content
Heroku profile image Heroku

What's one thing about Linux you wish you'd known?

github logo ・1 min read  

photo by Uwe Aranas

‘Linux’ shows up on many lists of skills that new developers should master. But that little name covers a massive scope of technology orders of magnitude more complex than any programming language or framework. When I hear that a new developer is trying to ‘learn Linux’ it sounds as daunting as a history student saying ‘I’m trying to learn everything about Europe.’

What's something you wish you'd known getting started?

twitter logo DISCUSS (16)
Heroku is a container-based cloud Platform as a Service (PaaS). Developers use Heroku to deploy, manage, and scale modern apps. Our platform is elegant, flexible, and easy to use, offering developers the simplest path to getting their apps to market.
markdown guide

Reverse search (ctrl r)
When someone showed me this it was a game changer and sped up things no end - no more endlessly going through this history line by line to find an old command you want to use again and hadn't copied to a scratch notepad!


You might be interested in the Fish shell :) It has history-based autosuggestions out of the box, which show up in greyed-out text, so you can type the first few letters of the command and tap right arrow to accept it, ctrl-right to accept only the next word, or space and then one of its arguments at the beginning and then up arrow to search for previous commands with that argument. (I wrote a review of the Fish shell.)


Technically, that's more a function of the shell you've chosen to use than a true Linuxism. Which is to say, you'll find that functionality on any OS that has a recent-enough version of BASH (possibly other interactive shells, too). ;)


Well as a linux beginner at the time, I was glad I gave it a BASH :D


I use fzf (a command line fuzzy finder) in addition to ctrl+r. Now I can easily search through my history.



Partial name matching

Say you want to install a .deb file you just downloaded named...


As long as the short version doesn't collide with another file name in the directory you can do.

dpkg -i ./some~

Case sensitivity in general was a difficult adjustment until I learned how to use regular expressions, aliases, and exports.


How to exit vi, because it literally took me a year to figure out.


I share the feeling, although it didn't take me that long (might've if I hadn't been introduced to Linux by a vim devotee). Relevant commitstrip


Lol, yeah I thought myself linux that is why it took me so long.


If I had to give a single answer, it'd probably be the first part of Kyle Nickel's answer - to use aliases. Even after I found out about them, I really dreadfully underused them for my first 4 years or so. How many millions of seconds I could've saved by now! If I had to give an answer that's not already posted, I'd say tiling window managers. They're badass. I used XFCE (non-tiling) for a while after I switched to Gentoo until I heard about dwm. I found dwm unwelcoming at first, but holy crap was it worth the effort to learn. Using a non-tiling window managers now feels to me like coding while I have a cold - doable, but way less efficient, constantly uncomfortable and never something I'd want to go back to.

When I hear that a new developer is trying to ‘learn Linux’ it sounds as daunting as a history student saying ‘I’m trying to learn everything about Europe.’

Haha, it is like that :) I love it though. Unix (I prefer saying that unless it's Linux-specific) is a whole universe, a way of life.


Been using Linux since 1992 (0.98a). Unfortunately, that means that a lot of things that would have fallen into the "wish I'd known before..." category are no longer relevant. Also, I'd made the move to Linux after cutting my teeth on SunOS 4/BSD 4.3, NeXTSTEP, and early, early, early AIX. So, many of the UNIX-y idioscyncasies that tend to trip people up that are new to Linux, I'd already gotten past. =)


I would like to know GNU/Linux earlier
.. that it was not as hard as people said
.. that when using commands, you can speed up your work

I would like to had know about i3 earlier too, using it you feel another vision about your tools, (they should not drive you, you should drive them)


To create aliases or functions for common operations. And also, that everything is a file.


It's not actually Linux, it's GNU/Linux...
Linux is the Kernel!


A cheatsheet to use VI editor to program in shell scripts.

Classic DEV Post from Feb 3

What would you teach a frontend beginner in 2020?

In April, I will start teaching frontend development to design students at university. The course cu...

Heroku profile image

Code[ish]: a podcast from the team at Heroku, exploring code, technology, tools, tips, and the life of the developer.