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.
I’ve been on Kubuntu daily for 6 months and feel very comfortable using my pc. I think 2 months working with any software is still “beginner” territory, let alone something as complicated as an OS. You need to search for everything since you’re still doing things for the first time every day.
In my opinion it isn’t a bad thing to search for help, it’s actually incredibly efficient. You would spend 10 times as long to figure out how to do anything on your own. Like if you were baking a cake, you don’t just go straight to the kitchen and mix stuff together. You open the cookbook.
Deb files are only used for programs that aren’t packaged for your distribution. The vast majority of programs are a single command to install. Or you probably don’t even need to do that, just open the Software Center, search the program, and install it there.
For most actions there are GUI alternatives to commands. Like copying folders, editing text files, changing settings. You don’t need to open the terminal that often.
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.
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.
I do have tldr and fish and love it ! Although I get a little annoyed that my aliases from bash didn’t carry over into fish because I sometimes forget to launch fish since I almost always use the ctrl alt t shortcut to launch term
You can change your default shell in a few ways. I’ve never used fish, but
vipw
should open yourpasswd
file, in which you can change/bin/bash
to the appropriate path for fish (which you can find viawhich fish
). It’s probably best to only change this for your user.A possibly simpler option (and one that I don’t believe requires root access) is the
chsh
command. I’ve never used it myself, so I’ll let this site provide instructions for it: https://www.howtogeek.com/669835/how-to-change-your-default-shell-on-linux-with-chsh/Article by a Red Hat engineer that also makes a ton of contributions to FOSS in their free time: Don’t change your login shell, use a modern terminal emulator
Interesting, I hadn’t heard that take. I’ll give it a read. Thanks!
My pleasure fam! Btw, I’m in no place to dictate what’s right or wrong (or whatsoever). I just wanted to add their perspective on the matter*.
Man pages are displayed in
less
(which acts as the so-called “pager” here), so you can search man pages 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 to 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
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.
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.
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.
Don’t copy and paste, learn each command and argument as you type them. Read the manual
This has helped. I’ve been at least typing them out instead of copying and trying to understand each argument. At worst ill forget it but at least I worked my brain muscle a bit!
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
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)
A big one I’ve struggled with and had to keep researching is the file system. It seems insanely complex when you are used to windows file system and where shit is installed. Also the inability to install programs on drives other than your boot drive is a huge downside to me.
One example, I moved a lot of my games over to my linux drive, but some save files didn’t move. To find where the save files from linux were, I had to dig and dig through a ton of folders to find it. In windows, it would have simply been in the game folder under saves.
Yeah the way the file system works is of the big differences from windows. That can def be a point of frustration.
There are linux approaches to having your /boot, /root, /usr on another partition or drive. It’s been common to separate them for a good while and in fact many or most linux installers ask where you want each of them to live (might be in advanced settings).
It takes time to learn a new system. Keep going!
Not OP, but when I cold turkey switched to Fedora Silverblue over three years ago, I benefited a lot from this guide.