Not that I don’t still love using linux daily, but it is getting a little old having to search for how to do anything even just install a simple program (recently, had a. Deb file to install unifi software that wouldn’t install and had to find a custom script to do it).
I feel like there’s no way I’d ever learn all the random commands I’ve been copying and pasting (and keeping in a text file for later) and can’t help but feel it’s kind of clunky. And I don’t feel like I really know anything of what Im doing. Even man pages baffle me. I’ve been into computing for 20 years but only used linux a little like 8 years ago, but now it’s been my main os on my desktops for probably 2 months. I know, maybe that’s just not long enough. I just don’t like the fact that if I couldn’t search, I’d be completely stuck on a lot of tasks.
A good start is to install
tldr
. You use it likeman
, but it gives you shorter explanations – or rather, a short list of illustrative examples.As for man pages themselves (which I often find overwhelming, too), if you’re not doing that already, you can pipe it into
grep
to extract just those lines that contain your search string:man ps | grep user # or for two lines of context above and below each match: man ps | grep user -C 2
Going further, check out Fish instead of Bash. I haven’t use Fish yet, but it’s said to be much better for learning Linux commands as a beginner. Later on, you may switch to Zsh. In any case, hitting Tab once or twice will often give you a list of possible completions to the command you are typing.
PS: I see no good reason why anyone should downvote this question.
Edit (June 23): As it so happens, just today I’ve stumbled into the O’Reilly book “Classic Shell Scripting” by Robbins and Beebe (ISBN 9780596005955). What can I say – its age notwithstanding, it’s apparently an extremely good book for understanding things and learning how to solve real problems. (It presupposes some familiarity with Unix-like systems and with the shell, so if one’s just starting out, the book “Learning the Unix Operating System” may be better.)
Man pages are displayed in
less
(which acts as the so-called “pager” here), so you can search them interactively like you search inless
. And you do that by pressing/
, then typing your search term and pressingEnter
. Then you can jump between results withn
andShift+n
. This is also how search works invim
, by the way.Perhaps another tip in this regard, to search in your command history with Bash (for re-running a command you’ve previously used), you can press
Ctrl+R
, then start typing your search term. PressingEnter
will run the displayed command. To skip older search results, pressCtrl+R
again. If you want to edit a command before running it, press→
orCtrl+F
instead ofEnter
.
This UI is a bit fiddly in Bash, but worth figuring out.As for Fish, it’s great for new users, because:
- it has a much more intuitive
Ctrl+R
UI, displaying all the search results interactively and not behaving weirdly in certain situations. - it automatically sifts through your command history as you type and suggests the most recent command which starts with the prefix you typed. You can fill in its suggestion with
→
orCtrl+F
, or only use the next word from it viaAlt+F
. You can skip to older matches with↑
, which is then a proper search likeCtrl+R
in Bash, so not just prefix-matching. And yeah, overall just really useful, because it’ll both make it quicker to run frequently-used commands, and sometimes suggest a complex command which I didn’t even remember that I once ran. - its tab-completion shows short descriptions of what most (sub-)commands or arguments do.
But:
- don’t set it as your system-wide default shell or there’s some chance of shell scripts not executing correctly. What you should do instead, is to set it as the startup command to run in your terminal emulator.
- the syntax of Fish is somewhat different to that of Bash, which can be confusing when you’re still learning the Bash syntax. It’s not the worst thing in the world, as it basically only affects scripting and more complex command chains.
Scripting is not a problem, because you can throw a shebang into the first line to use Bash syntax (or
). You should add a shebang to your scripts anyways.
And running more complex commands isn’t too big of a deal either, because you can runbash
in your terminal to launch Bash, then paste the command into there to run it, and then quit back to Fish withexit
orCtrl+D
. Typically you’ll know to runbash
, because Fish’s syntax highlighting turns red after you’ve pasted a complex command.
- it has a much more intuitive
You don’t need to pipe in to grep, use a
/
to search it.Man ps
/user enter
Then use
n
to find the next instance of the search
Sounds like me trying to do stuff in Windows these days.
I don’t like man pages though - it’s very rare for me to find their content useful as they always seem to be written for a skill level way above mine.
…and I’ve been using Linux since 2005.
Man can be a bit arcane, but they generally have the keys to the kingdom.
Admittedly, I have years of experience, but still.
I bet that if I switched today from Linux to MacOS I’d feel the same.
In fact, I sometimes feel the same when dealing with Windows, but mostly I just reboot and hope for the best, or bother the IT guys some more.
Don’t copy and paste, learn each command and argument as you type them. Read the manual
Also learn to search man pages, you might get a wall of text. But a search will jump you to what your looking for
man is just less
Yeah, I feel you but I think that’s just learning something new that is pretty complex. I’ve had decades on Windoge and MacOS (and a lot of software only available on those platforms) and then switching to Linux and FOSS apps is obvioisly a huge learning curve.
What I found was that once everything was set up I just started using my software. The system gently faded into the background and things just work. Every so often I need to figure out something new, but that occurs only every few weeks. At that interval I actually enjoy the learning experience.
What kinds of beginner guides do you think would have helped you get most things done? (genuine question - trying to help documentation writers understand new user issues)
Not OP, but when I cold turkey switched to Fedora Silverblue over three years ago, I benefited a lot from this guide.