I’m a Windows user of all life. But I love Linux. And these last two years after so many time I started learning it in deep . But one thing is bugging me is that I am those persons that has bad times remembering names, words… imagine commands… Even after using it so much I remember some basics but I’m struggling a lot and I have to go back to notes constantly to do some basic operations. Even worst after trying multiple distro from from different upstreams that commands are … Different. What would be your recommendations to help me. Are there tools to help this issue ? My guess is that A LOT of people happens the same. And it’s one of the reasons Linux has such a slow adption . Because is excellent and full of capabilities.
It happens to you, to me and to every UNIX user since the 70s. Your system is (or should be) full of docs and tools to get help. One thing that I noted over the years, when we have new people at work, is that they don’t known how to get help from programs or they don’t known how to get help from their systems and when they struggle with anything, doesn’t matter how basic, they go to the web for help. I always show them this:
apropos
man
help
What was that command to compress files?
apropos compress
Oh! it was gzipWhat was that command to do whatever with the GRUB?
apropos grub
Oh yeah! update-grubWhat about that command to download files?
apropos download
Oh! it’s wgetThe next tip should be learn how to use and navigate in the
man
pages, man have it’s own man page;man man
There are different sections, section 1 is the default, you don’t need to specify, so you can just;
man bash
But if you want to get help from configuration files you should type;
man 5 sysctl.conf
Also, almost every program have a built in help compiled with the program code, you usually call it with --help or -h, sometimes just help and other times just call the program without parameters and it should print it.
Other people already suggest the cheat sheets, very useful especially for programas like vim or emacs, some of them come like a template to create a cube, so you print it and then craft it (like an origami) and you can have it in your physical desktop.
Last thing; be patience, your are in the rigth path, there’s always more than one way to do things, you just need to find your own way.
I made a comment about how easy it was to learn VMS was (an 80s/90s OS). How do I print a file? I’ll try PRINT. Okay, that works. How do I make 6 copies? PRINT /COPIES=6. Great! But how do I print to a file? I’ll try PRINT /OUTPUT=filename. Well whaddya know!
I loved that OS like a brother. Sadly it eventually went the way of every proprietary system.
This reply made me smile. You are not going to believe me but I’m a millenian… and I worked with OpenVMS (yes, you guess rigth, in a bank). May I tell you? Yes, sorry;
2012, first week as a SysAdmin in that hell bank, I made the mistake of saying “My fetish are old OS and computers” (this is true), “Well, we have this four VMS baremetal machines that nobody wants to touch and if they fail we fuck up all”. After learning to be quiet and don’t speak too much I found a VMS manual in TPB or some other site (I remebered downloading it as a torrent) and started using the pre ones (two of this machines where pre and two prod). I found that AWK was installed and a POSIX Korn Shell was sleeping there and nobody knew it, with only that I did a lot of stuff like Nagios custom monitoring (yes, this machines wasn’t in the monitoring system, if there is not a red dot isn’t broken) and automated things like the IPLs. I’m not going to say that VMS is a brother, but I feel comfortable with it even for a UNIX admin. The best part of this boring story is that, some months ago I was chatting with one old coworker that is stills in that bank, they still have this machines and they still use my shitty scripts for monitoring and getting data and statistics, can’t believe (and a little proud of) that a OS that was developed before I was born is still up and running my programs.
I have around 10 “linux extract tar archive” online searches last year alone.
you don’t need to remember anything, except commands you use the most often but even then it becomes muscle memory after a while. If you ever need some specific command to use, just look it up online.
Online
Ok but what if my Wi-Fi isn’t working
Then use the commands help or read the local man document. In example for grep it would be
grep --help
andman grep
. You don’t need an online connection for this.Containers become problematic, some don’t have man pages or other common commands installed. Debugging applications on them requires a wide knowledge of all sorts of primitive commands and workarounds to achieve common tasks. My biggest fear is a container without grep.
How do I remember what the command even is? Like how would I discover the grep tool without using the Internet?
Discovering tools is not what the question and solution presented here was. But for that question, I recommend downloading a book about Linux as a reference or something like that. Or a basic tutorial series to read and remember basics about Linux.
You can also just list the
ls /usr/bin
directory to see what programs are there.There is actually a command to search the man pages for terms, to list the commands:
apropos
$ apropos -s 1 search apropos (1) - search the manual page names and descriptions find (1) - search for files in a directory hierarchy flatpak-search (1) - Search for applications and runtimes gamemodelist (1) - search for processes running with gamemode rg (1) - recursively search the current directory for lines matching a pattern zipgrep (1) - search files in a ZIP archive for lines matching a pattern
Note: I cut some parts out in the output to make it shorter. The option
-s 1
means, it will list man pages from section 1 only.
use your phone to look up the commands on how to get internet working again
alternatively, connect computer to your router via cable
repetition…repetition…repetition…repetition…repetition…repetition…repetition…repetition…lol
I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.
~ Bruce Lee
Man is great to check quickly what something does. I use atuin as my shell history to make it a lot easier to search
You know atuin is legit because the demo gif on their site is using GruvBox, the most bestest color scheme.
If it’s basic commands, there’s games like Terminal Quest that can help gamify your learning. Helped me.
You could make aliases that are easier to remember for you.
If you e.g. had trouble remembering that
mv
does a rename, you couldalias rename=mv
. Ideally just put whatever you would have googled in “linux command to x” as the alias.That’s the power of Linux; you can tweak everything to your preferences and needs.
Wild had no idea—this is so cool. If you do this, does the original command also still function (so like I could rename to something easier for me, but hopefully transition to the real deal at some point/ properly follow help forums or suggested pasted commands)
The originals remain untouched.
It is possible to override existing commands with aliases though. This is useful for setting flags by default. I have
alias ls='ls --color'
for instance such that whenever I runls
, it actually runsls --color
, providing colourful output.Note that aliases are only a concept within your command line shell though. Any other program running
ls
internally won’t have the flag added and wouldn’t be able to use any of the other aliases either (not that it would know about them).It’s very easy to program your own “proper” commands though on Linux. If you had some procedure where you execute multiple commands in some order with some arguments that may depend on the outputs of previous commands, you could write all that as a shell script, give it some custom name, put it in your
$PATH
and run it like any other command.Also very cool—the building in default modifiers to the command. Thanks for the great tips.
Who needs to remember commands when the shell can type them out for you :)
(Genuinely recommend it, it’s been my daily driver for years)
Use ctrl-r a lot (navigate up/down with ctrl-p and ctrl-n) and try to “fuzzy-match” previously used commands. There is a very useful command called
fzf
which, while only a search program at heart, can be configured to complement this nicely.Use Fish (very good autocomplete) and aliases
Hi,
I’m a Windows user of all life
I was a Mac user for 35+ years (still am, partly). It took me a little while to get used to new names/commands in Linux but that’s to be expected. And it is not much an issue anymore ;)
I am those persons that has bad times remembering names, words… imagine commands… Even after using it so much I remember some basics but I’m struggling a lot and I have to go back to notes constantly to do some basic operations. Even worst after trying multiple distro from from different upstreams that commands are … Different
What kind of commands exactly? I mean, I don’t know that ‘commands’ are different from one distro to the other’ as they all use the same apps. So, beside the name of a few specific ones (like, maybe the app installer).
What would be your recommendations to help me. Are there tools to help this issue ?
My two sole advice:
- don’t try to remember too many commands. Instead, focus on the ones you use daily or very often. After you get those memorized you can always decide to memorize more… or not memorize them at all. I don’t bother remembering them, why would I when I can easily use Ctrl+F and instantly find them the moment I need them?
How do I do? I keep a text files in which I store all the stuff I seldom use but still want to be able to find in case I need it someday. To make finding them easier, I put descriptive titles and comments with each command. And that’s what I’m searching for, not the command name ;)
- If you’re talking about Terminal commands, learn to create your own aliases they will let you remember a short name instead of full commands. I have a few lengthy commands and some scripts (for example, to compress/convert images) that I I regularly use. I don’t remember them. I’ve saved them in a .sh file that I can either call through a Terminal or simply by a right-click in my File Explorer (it’s Nemo and they’re called ‘Actions’, on Linux Mint)
Idea 1:
Print out some of the various CLI cheat sheets and pin them to your wall by where you work on your computer.
Maybe this one:
Then, print a page with commands you commonly use, either with more complex syntax or that aren’t on the sheet. (Like, “ls” is on there, but “ls -s -h” is not, for example.
Idea 2:
Write bash scripts to automate some of your commonly used tasks. Comment them. Imagine someone else is going to have to use them, even if you’re the only one who’s ever going to look at them. Not only will this help you learn lots of commands and force you to describe what they do (which will help you retain the information), it will be there as a record of how it works that you can go back and look at months or years later, to remind yourself how to do something.
Yes, write automation. This will lead you to learning new commands that solve problems as you go. Debugging until they work correctly also helps make them more familiar. This is the best way to learn for sure. At least in my own experience, could be different for you, but I strongly suspect this’ll work well.
Just create aliases with words you’ll remember. Fart, Fart2, ect.