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.
This is really good. Clear and well laid out.
The only thing that might confuse some beginners is your specific choice of package manager.
I added more information to the installing software section, updated section title to specify Arch Linux, and added another section for Debian and Derivatives.
You’re awesome.
Interesting compilation, there is cheat.sh, tldr and others though
I made this just as much for me as I did for others. Writing things down myself really helps me memorize them.
Nice work.
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.
TIL „touch“ has other uses than creating a file
Thanks for all the feedback! I’m much happier with it now, and I’ll probably continue to make small changes over time.
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.
ls *.sh
to list all the files ending in.sh
I updated various examples, and replaced <file extension> with <text> in most places and removed it from the legend.
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 asENTER
, 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, thenCtrl+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.Cool, thank you!
What do you mean about “/ root directory, eg /usr/bin/bash”? / is /, just the top-most directory
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.
I added more detail to the description and made a more relevant example. (I think)
I’ve been using Linux for decades and I bet that’ll still come in handy.
cd -
changes to the previous directoryDoes
cd +
work to go forward after usingcd -
?cd -
negatescd -
, so you’re right back where you started! It’s like multiplying 2 negatives.
would you upload this on github?
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.
https://github.com/ordinarybyte/linux_cheat_sheet
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.
Usually you would go the other way around. Merge changes into git and then distribute from there.
You can do some automation with GitHub Actions, but I have no idea if it can do specifically that
You might consider putting a license on it
This is fantastic. Just at a glance I already learned something new! Definitely keeping this for reference.
This is really helpful, thank you.