sudo apt-get clue
October 12, 2016 4:42 AM   Subscribe

Help me learn Linux the right way circa 2016.

Backstory: Windows Update has repeatedly ruined my Windows PC's ability to boot. Rolling back the changes takes a lot of time and frustration that I don't want to deal with again. Luckily I put an Ubuntu partition on there a while ago. So the PC boots up fine! Yay! Just in Linux instead of Windows! Yay?

I'm sort of kind of familiar with some bash commands, and I'm googling other technical maintenance things like, "how do I disable/re-enable hardware" like I would with the Windows device manager.

But I want to grok Linux. Ubuntu/gnome do a good job of providing a nice UI (it reminds me more of a Mac), but I get that the Terminal is the soul of *nix. I want to learn about dotfiles. I want to understand git! I do some coding so I'm not afraid of text editors (I use Emacs which works even better on Linux than Windows), but a lot of resources assume you were weaned on the command line from an early age.

I know this information is available, but I am finding the difficulty being the fact that some of the stuff online is very very old and doesn't apply to newer flavors of Linux, or it's so Ubuntu-specific that it doesn't explain the big concepts at a broader Linux level.

What would you recommend to, say, a tech-savvy 10 or 12 year old to learn about Linux in its current incarnation? Or something geared to a curious adult hobbyist?
posted by overeducated_alligator to Computers & Internet (14 answers total) 27 users marked this as a favorite
I would recommend this website:
And furthermore, I appreciate that you want to learn to use the command line and that's great. It really is!
But keep in mind that modern, userfriendly distros (such as Ubuntu, and Mint, the latter one even more so) are made in such a way that while you're doing that, you can also already use the GUI just fine. It'll allow you to do almost anything that you want.

Welcome to Linux, enjoy your newfound freedom!
posted by Too-Ticky at 4:54 AM on October 12, 2016 [2 favorites]

In my experience, "learn the tool" is hard but "learn just enough tool to accomplish the task in front of me" is much easier. So... have a goal? What do you want to do?

(I might also start a VM on Vagrant or DigitalOcean - less risk, and the command-line will be your only access, so you'll have no choice to learn it (I think "working on remote servers" is why most people under a certain age learnt the command line)).
posted by Leon at 5:35 AM on October 12, 2016 [5 favorites]

My favorite flavor for personal use these days is arch.

Clearly not the easiest/most polished one out there, but using it will help you learn about the innards, and the wiki is surprisingly good at explaining things or at least pointing you in the right direction.
posted by Dr Dracator at 5:45 AM on October 12, 2016

Codecadamy is a GREAT resource more generally, but it has a really nice introductory course to bash and the shell terminal which is totally free. I highly recommend walking through that to get yourself started in the terminal shell and command line. It's not how I learned it, but it's how I've encouraged other lab mates new to the terminal to get started.

By the way, if you want a learning buddy, hit me up or feel free to PM me. I have more experience with the terminal than I think you did because I used Cygwin on Windows for years, but I recently switched over to full on Xubuntu myself and I'm still getting the hang of a totally new OS. I'd love to have someone else learning it to go "how the everloving fuck is this thing supposed to do what I want?!?" at.
posted by sciatrix at 5:47 AM on October 12, 2016

One thing I've done over the years is that when I trying to do something in Linux I force myself to use the command line, even if there really isn't a reason to do so. Copying a few files? Do on the CL. The reality is that if you aren't a server admin you really don't use to use the CL much with modern Linux distros. I manage my website with Pelican, which is a CL Python script for creating flat file web sites. I could be using WP or Drupal, but Pelican forces me to deal with a basic text editor and the CL every time I update.

I also go to my local LUG meetings. The presentations are often way over my head, but I do learn from osmosis, even though I'll never need to worry about optimizing Docker for anything.
posted by COD at 5:47 AM on October 12, 2016 [1 favorite]

to be honest, i'm not sure that much has changed in linux from the command line. much of what you google should still be relevant. but you can (1) restrict dates using the google search tools menu (eg to the last year) and (2) specify a particular linux distro. (is systemd what is worrying you? i guess that is a fairly major shift).

the main problem i find is that, when you get to the more obscure and less-used tools, different distros include different programs by default. but once you understand how to search for and install packages you can usually work round this. for opensuse, which is what i use, as well as the standard repos there's a whole community of user-built packages that can be searched here. i am sure other distros are similar.

someone upthread recommends using a virtual machine. you don't have to use a third party to do that - you can install virtualbox on your own computer and run vms in that. that will let you also let you use gui tools if you need them.

finally, i second learning by scratching some particular itch. for example, if you can program a little, make some kind of interactive web page (maybe javascript in-page or simple cgi) then configure a server on your machine, look at how you can script deployment, use git, configure the firewall, even test things via selenium. "doing stuff" will drag you into the low level details bit by bit.
posted by andrewcooke at 6:03 AM on October 12, 2016 [1 favorite]

I've made it about halfway through The Linux Command Line, which is available as a free pdf ebook. It's pretty helpful for the command line so far and goes into linux fundamentals a bit as well.
posted by ropeladder at 6:58 AM on October 12, 2016

> you can install virtualbox on your own computer

Or use Vagrant, which wraps Virtualbox or VMWare and allows you to access them... wait for it... from the command line :)
posted by Leon at 7:51 AM on October 12, 2016

Do not install Arch linux, but absolutely use their wiki. It's a great resource.

Echoing someone above, it's impossible to "just learn Linux", whereas it's a simple undertaking to "learn how to batch tag all my mp3s" or "run mpd" or "backup my files to an external disk" any other discrete task. Focus on the things you actually want to accomplish, and you will quickly realize and attain mastery.

It's trite, but you'll be hardpressed to find much better information than man pages + google.
posted by so fucking future at 9:12 AM on October 12, 2016 [1 favorite]

Buy an O'Reilly book.

Here's one.

Don't be proud, focus on intro books first. Coming from Windows/Mac, you have a LOT to learn.
posted by intermod at 11:04 AM on October 12, 2016 [1 favorite]

Yeah, I just reviewed an Evernote note I've been keeping for years as I dabbled in Linux at home and more recently as my day job actually called for me to start working with a Linux server. I hope others won't disagree but to me my notes look like a travel journal from all the places I took vacations. I mean that my notes are true and helpful but clearly just snapshots of an enormous reality, much more logical and powerful (although sometimes cryptic) than Windows.

For instance, my notes from setting up a WebDav server for my own use, or Samba shares to my Windows machine, or cron (scheduling) tasks, or Bash script writing, or using Regular Expressions, or scraping Web sites or converting between file formats, etc. I could share my notes with you but they'd be a tiny % of what you'd find in a Google search or other resources named above, and probably wouldn't align with your interests or needs anyway.

So I'm agreeing with most of the other replies to just let your interests guide you, and learn along the way. Plus I subscribe to the Stack Exchange Weekly Unix & Linux Newsletter. Also, watch out for pitfalls, like don't logon as root or use file deletion or movement commands before you understand them.
posted by forthright at 7:46 PM on October 12, 2016

These days, I don't do much fiddling with my laptop and desktops that are running Arch and Ubuntu (respectively). I want them to just work, and they pretty much do just that.

On the other hand, there are a lot of fun and interesting projects you can explore with a Raspberry Pi, some of which do involve running it headless and doing terminal work. There's also a ton of current community resources. If you're using the Debian-based Raspian on the Pi, a lot would be very transferable to Ubuntu (even more true if running Ubuntu Mate on the Pi, obviously).
posted by Pryde at 12:04 AM on October 13, 2016

I second the VirtualBox route. It's painless, easy, and unlike a cloud-based VM, you can just nuke the whole thing and spin up another with little loss. Also, yes, pick a problem and solve it. Also, don't be afraid to distro-hop, but make sure that you spend a little time in an Ubuntu flavor, stock Debian, Fedora (and if you're into pain, BSD); those three will give you a good grounding.

Also, regarding the title of the post, it really should be 'sudo apt-get install clue'
posted by eclectist at 1:32 PM on October 13, 2016

Lots of good advice here!

I'm fairly OS-agnostic; I have an Android phone, an iPad, and a laptop running Linux Mint 18 with a VirtualBox virtual machine running Windows 10.

The virtual machine is your savior. You apparently have a good, stable OS that works. Don't mess with it, at least not yet. Create virtual machines to look at other distros, or even to set up Arch on (I've never tried it, haven't had time, but I know it's a great way to learn how a Linux distro is put together).

I learned most of the more technical Linux I know by trying to solve problems. I spent a lot of time in years past running machines with problems, and having to go online to figure out the tricks to fix them. If you have the option, don't mess with your working machine; use VMs instead.
posted by lhauser at 4:28 PM on October 13, 2016

« Older Trust a trader website   |   Prisoner I have never met emailed asking to... Newer »
This thread is closed to new comments.