I added more information to the installing software section, updated section title to specify Arch Linux, and added another section for Debian and Derivatives.
My tiny nitpick is that "touch" will create the file you specify if it doesn't exist. I've seen this usage a lot, so your example may benefit from mentioning it.
I find the references to file extension kinda confusing. Extensions mean a lot less in Linux cli, but I can tell youre just using them for examples. Maybe give more concrete examples instead.
I don't know how this would be useful to someone reading the cheat sheet, but here's something interesting I just indirectly found out while skimming it through:
Ctrl+D does the same thing as ENTER, except the latter additionally sends the end-of-line character to the reader while the former sends nothing;
as is the case for shells or interactive programs like the Python REPL, Ctrl+D causes them to terminate only because it sends a string that is 0 characters long, and 0-size reads are universally interpreted as files reaching the end.
To test this: enter cat, type "hello" without pressing enter, then Ctrl+D: you should see "hellohello".
An extremely rare case of this being useful would be using netcat to send a string somewhere, without sending the end-of-line byte at the end.
I updated "Log out" to "Exit (sends a signal indicating the end of a text stream)". Which I think is a lot more accurate, and still easy to understand.
Oh. My. Gosh. I love this. Thank you. And thank you for being --verbose about the provenance and history of the document. And big big thank yous for the Internet Archive links. Bravo.
Yes, the top most directory, /, is the root directory.
Each directory is a branch in one giant tree structure. For example, if you have a directory containing two other directories, that is a branch that is splitting into two branches.
All directories are descendants of the same root.
Done? I've never uploaded to GitHub before, and I was just doing what I thought I should do. I'll do my best to keep it updated with the version on my website.
Is there a way to make GitHub automatically detect changes to the file at cerium.cc and update the repo? Or do they not allow that? I know a scheduled script would be able to work but I don't really want to have to run it myself.
It is not as complicated as it looks! As a long time windows user I'm in the process of getting used to the command line and I love the simplicity and direct way of doing things. For some tasks and small programs it is amazing. Grep for example is something amazing that you couldn't do in a windows type UI.
For other stuff like visualizing a directory tree you can always use a mouse interface. You're rarely forced to use the terminal.
Makes as much sense as saying "I'll definitely avoid Windows now. I had heard that Windows was supposed to be easy to use", since most of this also applies to WSL2.
A little over a decade & a half and I find that very useful. Should have GPG in for reading signatures on software and such too. If you'd like I can contribute to GPG terminal as I've been using it for a good portion of that time.
At the end, in redirection, <<: that's not how here-documents work. The example gives the impression it will read the given file up until "STOP", but in reality the shell expects you to keep writing your here-doc until you write "STOP" and then feeds it to the program as if it were all on stdin. I don't think wc even does anything with the stdin if you give it a filename...
Note that variable expansion will happen in here-docs, so it's a bit different than a simple cat.
Also look into here-strings. And process substitution, I find that quite handy.