this post was submitted on 25 Feb 2024
459 points (98.7% liked)

Linux

48220 readers
700 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 5 years ago
MODERATORS
 

If you have any suggestions or criticisms, feel free to comment them.

Being plain text, it's much easier to read on a wide screen, or on something without line wrapping.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 8 months ago

Alt + . inserts the last argument from the last command run into the current line. I find it helpful all the time.

less can be invoked directly, without having to be piped from cat: less <file> is mostly equivalent to cat <file> | less
I have considered making an alias/function that automatically determines if the file is longer than the terminal, using something like wc -l and stty -a | grep -oP "rows \d" and then either uses cat or less depending on that... but I already use sharkdp's bat, which has that baked in as well as many other conveniences

Don't forget tail -f <file> which is kind of like watch tail <file>

If you're going to have du, I would also have a section for df, I use the latter more often (but probably because I have like 5 mounts for my OS). Using them in combination is basically what all the gui disk usage analyzers do; something like df -h "oh, /var's almost full" (as previously mentioned, I have different folders on different partitions), then du -ah /var and so on to find problem areas

The "installing from source" section works maybe 50% of the time. It assumes a configure script, which isn't always the case. I've had a lot of source that comes bundled the way a .deb does: basically a compressed filesystem that assumes the $CWD is / (basically, if you uncompressed it in /, all the files would go where they needed to be). Sometimes they use language-specific build systems, so you might need go and rust and... Maybe it's best to just keep it your way and look up the rest, but do keep in mind the thing I said about compressed filesystems

find is great if you want to reindex everything from square 0; or if you only need to do small directory/tree. If you have the extra space to spare, install locate: it indexes the files beforehand (as a cron job) and yields results more quickly for searches that span entire filesystems; the only downside is that you have to manually reindex (sudo updatedb) to locate files installed the same day

In the Extracting, Sorting, and Filtering Data section, you might consider adding in sort -u and uniq which fill their own (overlapping) niches. sed and awk may be a bit more than beginner, but they are endlessly helpful. tr can be a useful shorthand for when cut and sed don't quite cut it, but you don't want to build a full in-line awk script.

Finally:

<command> 2>&1 <file> | Output and errors from <command> are redirected and appended to <file>

Should read "Output and errors from are redirected to " because the single > overwrites the existing file, as opposed to >> which, as you noted, appends to the end of the file