this post was submitted on 16 Dec 2024
77 points (90.5% liked)
Linux
48705 readers
1079 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
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I maybe need to correct my post. I am talking about system utilities like Device Manager or something else.
Why would I want gui for those things? CLI is often a better interface. Being able to grep lsusb rather than scanning a gui for an entry is much better. It's easier to pipe to an email as well. Screenshots don't allow copy/paste...
As a newcomer to CLIs, GUI are great because you don't need to know what you're looking for. I can just open the devices window, and they're all there, with most of the extra hardware stuff that's not actually a real device already cleaned out.
To do the same with a CLI would take me 10 minutes of looking up what the hardware commands are, 5 minutes figuring out flags, and 30 minutes researching entries to see if they're important. Even just a collapsible list would make that last step so much easier. And no, I can't grep for what I need, because I don't know what I need, I just know something in there is important with a vague idea of what it might look like.
Once I figure that all out for one thing, the best I can do is write that to a notes file so I don't need to search so far next time, but there's a good chance that I'll need a different combination of commands next time anyway.
Not hating on CLIs, just wishing I could figure out how to use them faster.
apropos - command to list relevant commands tldr [command] - shows the most commonly used flags/options for that program
apropos comes installed by default (on debian at least), tldr needs to be installed with your package manager
As someone who cannot even remember tar flags (inser xkcd here), tldr is very helpful
Your 45 mins becomes 5 mins now. Hope that helps
Another really helpful tool is to use the fish shell instead of bash. It has tons of useful features, but my favorite is by far the autocomplete. It parses man pages to provide suggestions for flags, subcommands, even passed arguments, and each item in the results list has a description, and it's all searchable by hitting shift+tab.
That's what leveled up my cli game from 0-100. It's a massive difference in usability and discoverability. And unlike things like nushell, it's close enough to bash that you won't feel confused if you have to use bash instead.
👆 exhibit A of why Linux can be difficult for newcomers
Linux has been very successful without catering to those who don't want to learn new things.
Hmm, what does lsusb do?
The part is constructed from two parts:
ls
: listusb
: usbIt lists usb devices that your machine (/kernel) knows has been connected; they may not necessarily be usable.
E.g. I have some sound output device connected via USB to one machine. On most of my machines I've switched from pulseaudio to pipewire¹, and I figured I'd bring that machine closer to the others so there's less variance. Unfortunately the sound output device didn't want to work with pipewire. The problem manifested as no sound and pipewire not listing the device.
lsusb
helped me know that the machine at the very least recognized the device, but wasn't currently able to use it. (It did actually also show up as an error indmesg -H
, but reinstating pulseaudio let the device work again as normally. So now I just have to live with a situation where some machines use pipewire because ~bluetooth~ and others use pulseaudio because … usb?¹)¹ There's a memory of ALSA vs OSS I didn't want to be reminded of
Ah thanks, I wonder if GUI tools for this is useful. Especially if it is for system diagnostics.
I think I wouldn't find it particularly useful, as I'm used to the quasi-programming I can do in a terminal. The shell commands take some time & effort to learn, but once you're over that hump, being able to extract and compose information is really good. The primary shell tools I'd miss in a gui are
|
,jq
,awk
,sed
andgrep
/rg
, as well asfor
,if
,while
, variables, and having everything in one lightweight window.Lshw, lsusb, etc and grep do that