this post was submitted on 06 May 2025
61 points (96.9% liked)

Linux

53912 readers
777 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
top 39 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 47 minutes ago* (last edited 47 minutes ago) (1 children)

Mastering the command line? A few observations. First, consult and take notes (yes, even seasoned terminal veterans forget syntax.) Secondly, embrace tab completion. It’s your friend, and a surprisingly effective substitute for remembering every single command. Third, the true test: procure a VPS or remote server and exclusively use the command line. No GUI crutches allowed. It’s a digital wilderness, and you'll learn to navigate it.

Lastly, and this is non-negotiable: keep a terminal window permanently resident on your desktop. Consider it a vital organ, deserving of its space. It’s a constant reminder of the power you wield, and a readily available portal to a world beyond the pretty buttons.

[–] [email protected] 1 points 41 minutes ago

I upvoted this comment multiple times while reading.

[–] [email protected] 5 points 1 hour ago

I think just doing it more, and thinking it's cool to interact more directly. At least that helps me. I do feel bad for dyslexic peiple though, it's a lot harder for them to use CLI.

[–] [email protected] 2 points 1 hour ago

Using computers since before GUI was available... Sometimes I think we ought to go back to it

[–] [email protected] 3 points 2 hours ago (1 children)

I set it so when I hit CTRL-Tilde it drops down from the top of the screen.

Quake-style, baby.

[–] [email protected] 1 points 1 hour ago

CTRL-tilde or CTRL-backtick?

[–] savedbythezsh 6 points 3 hours ago (1 children)

Maybe controversial, but the fish shell. I know it's not strictly bash syntax, but the OOTB features are just so user-friendly. The most helpful features for learning: the autocomplete (with descriptions of subcommands and flags!) and the fuzzy history search.

I write bash scripts all the time, and am significantly more knowledgeable than anyone else on my team (admittedly frontend) because I got comfortable in fish.

[–] [email protected] 2 points 2 hours ago* (last edited 2 hours ago)

I use Fish sometimes, even when I know exactly what I need to type, but just don't feel like having to type out entire file names.

[–] zarkanian 3 points 2 hours ago (1 children)

For me, it was having a cool-looking and user-friendly terminal app.

[–] [email protected] 1 points 2 hours ago (1 children)

How do you get a terminal app that’s cool and user-friendly? Any recommendations?

[–] [email protected] 2 points 43 minutes ago* (last edited 40 minutes ago) (1 children)

Install some terminal apps

Examples:

https://github.com/clangen/musikcube

https://github.com/yorukot/superfile

This is the font I use

https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Meslo/M-DZ

I also use ghostty because it’s themeable, I found adding transparency helped me because i can have whatever I need to see under the terminal (helps for command cheatsheets)

[–] [email protected] 1 points 35 minutes ago

These do look nice 🤩 Thanks!

[–] [email protected] 3 points 3 hours ago

As someone who started with nothing but command line - Timex Sinclair, Apple IIe, DOS, I can’t even relate to the concept of being scared of command line.

[–] [email protected] 2 points 3 hours ago

Virtual environment? Taking notes of what they did?

Anyway, tell them it's okay you experiment and mess things up. Show them how to backup their important work. Then walk them through inevitably having to reinstall their distro.

They'll learn that you can just keep moving forward, fixing and learning as you go.

[–] [email protected] 15 points 8 hours ago

Working in a remote environment

[–] [email protected] 16 points 8 hours ago (2 children)

Colors. And a nice, readable font. Make your terminal pretty so you feel good every time you interact with it. Think about window dimensions (I personally always find the standard 80x24 too small), maybe set up some manual tiling so you can have two terminal windows fill your screen. Use the keyboard to move around your desktops.

But mostly, colors.

[–] [email protected] 4 points 1 hour ago (1 children)

Colors and ASCII graphics.

It doesn't have to be complicated. Or fancy.

But breaking things up so it's readable helps massively.

[–] [email protected] 1 points 26 minutes ago

Or a nice prompt that creates a distinguishable marker across output.

[–] [email protected] 4 points 4 hours ago (1 children)

And the message "DON'T PANIC" in big friendly letters.

[–] [email protected] 3 points 3 hours ago

And make sure you know where your towel is.

[–] [email protected] 17 points 9 hours ago

Stumbled across a game that teaches the command line as you play it. Seems like a good place to share https://gitlab.com/slackermedia/bashcrawl

personally, writing and saving simple scripts - IE project based learning - is how i got time in the saddle.

[–] [email protected] 18 points 10 hours ago (2 children)

What helps me is to understand what commands acronym means. For instance cp for copy, mkdir for make directory, blkid for block id, ls for list (not too sure about actual meaning for s) and so on!

Nice tips about ctrl+r to search in command history. Was not aware it existed!

[–] [email protected] 9 points 6 hours ago (1 children)

pwd for password, man for mansplain, and dd for destroy disk

[–] [email protected] 5 points 6 hours ago

Hey, the first two don't sound quite right

[–] [email protected] 9 points 10 hours ago

'ls' is an abbreviation for 'list', not an acronym. Like copy -> cp, and the other keystroke saving abbreviations.

[–] [email protected] 20 points 10 hours ago* (last edited 10 hours ago) (1 children)

In my experience repetition helped. Not memorization, but more like muscle memory.

Also, ensuring to never copy and paste commands but to type them in manually yourself. It's hard to enforce this on yourself, but worth it.

I appreciate that this article started with "ways to reduce risk" because that's an extremely valid concern and tied to why you shouldn't ever copy and paste. The one time in my early Linux forays where I copied and pasted I wiped the wrong drive. It definitely taught me to always manually type it in and not get too lazy, because what you copied might not match what you want to do exactly.

[–] [email protected] 13 points 9 hours ago (1 children)

Also, ensuring to never copy and paste commands but to type them in manually yourself. It's hard to enforce this on yourself, but worth it.

"Command: sido not found..."

[–] [email protected] 7 points 9 hours ago

As a fan of german rap this gave me a good chuckle. Thx.

[–] [email protected] 17 points 10 hours ago

Okay, this is not Linux-specific, but it's about a transferable skill:

What helped me get comfortable and learn a lot of basics was setting up NetBSD. The basic install throws you into a basic command line, with no graphical interface installed and not even the internet configured. But the online guide for setting the system up is incredibly well-written and teaches you all the concepts you need to know.

After doing this, I was familiar with a larger set of terminal commands, knew how to use vi, had a bunch of practice setting up config files in CLI and even finally learned how pipes work. It's a very enjoyable experience, the guide is so good I didn't feel overwhelmed once and anything you have to look up is tied to a problem you're solving (like cursor movement in vi).

It also teaches you how NetBSD is structured. It's not Linux, but similar enough to understand a lot of how and why things are done in Linux systems

[–] southsamurai 11 points 10 hours ago

Really specific here, but font control.

Us folks with dyslexia in its various expressions have trouble with command line. If you can't read a specific command, good luck ever getting comfortable with it. You can't error check yourself, so until you build up memory, you're kinda screwed if you can't use the fonts that are available.

[–] [email protected] 8 points 9 hours ago* (last edited 9 hours ago) (1 children)

To things that helps no mater your skill level the tab key is your best friend and man pages are great but if those are overwhelming install the package tldr then you can use the command tldr and the command you are trying to run to give you helpful examples of how to use that command.

Also old users don't remember long commands if we use a command more than once. You save it to your bash alias file to create your own commands.

[–] [email protected] 3 points 6 hours ago

tldr is great, sometimes you can't remember the exact syntax for a certain command and just need a quick reminder as well.

[–] [email protected] 5 points 9 hours ago (2 children)

Play around in a virtual machine so you don't have to worry about messing anything up. Start with the basics such as navigating through directories and creating, editing, and moving files. If you break something, just restore a snapshot.

[–] [email protected] 3 points 2 hours ago

Or just use Time Shift or a similar tool. I broke my first linux install like a dozen times, and I learned so much about how my computer operates in the process.

[–] [email protected] 6 points 8 hours ago (1 children)

The way I usually start teaching using the console to my (very much non-tech) students is set up a safe container and then let them type whatever, invariably generating a lot of error messages. Then I challenge them to generate different error messages, "gotta catch em all" style. Then we talk about the error messages and what they might mean. After this exercise they usually get the basic idea of command -- response, what to look out for and how to compose valid commands.

[–] [email protected] 1 points 2 hours ago

That's clever

[–] [email protected] 3 points 9 hours ago

Clear instructions on how to do a clearly defined, specific task, in a failsoft manner, faster and easier, which helps them in a project they are doing now.

[–] [email protected] 3 points 9 hours ago* (last edited 9 hours ago) (1 children)

Step 1: Use a youtube tutorial for the basic commands. Don't worry, you'll forget about them soon enough. But doing them once, helps with muscle memory.

Step 2: When in need to do something, copy/paste from Q&A/forums various commands that they suggest for your problem. Your basic knowledge from step1 will come back as you do that.

After a few days, you'll be understanding what's going on and how the whole thing works in an abstract level.

[–] [email protected] 4 points 8 hours ago

I would recommand to never copy paste but retype so you have the commands on your finger memory.

Also don't be afraid to --help everything. It give more option for commands you know quicker than the man.