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.
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.
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.
Thanks for all the feedback! I'm much happier with it now, and I'll probably continue to make small changes over time.
Wow. I'll definitely avoid Linux now. I had heard Linux was supposed to be easy to use now.
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.
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.Aren't
Alt + Backspace
, andAlt + Arrow Key Left/Right
also terminal shortcuts?I like your version, I am bookmarking it.
^S - stop terminal IO
^Q - resume terminal IO (if your terminal looks frozen, this is the one to try)
alt-b, alt-f - jump back/forward one wordThis is fantastic. Just at a glance I already learned something new! Definitely keeping this for reference.
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 fromcat
:less <file>
is mostly equivalent tocat <file> | less
I have considered making an alias/function that automatically determines if the file is longer than the terminal, using something likewc -l
andstty -a | grep -oP "rows \d"
and then either usescat
orless
depending on that... but I already use sharkdp'sbat
, which has that baked in as well as many other conveniencesDon't forget
tail -f <file>
which is kind of likewatch tail <file>
If you're going to have
du
, I would also have a section fordf
, 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 likedf -h
"oh,/var
's almost full" (as previously mentioned, I have different folders on different partitions), thendu -ah /var
and so on to find problem areasThe "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 filesystemsfind
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, installlocate
: 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 dayIn the
Extracting, Sorting, and Filtering Data
section, you might consider adding insort -u
anduniq
which fill their own (overlapping) niches.sed
andawk
may be a bit more than beginner, but they are endlessly helpful.tr
can be a useful shorthand for whencut
andsed
don't quitecut
it, but you don't want to build a full in-lineawk
script.Finally:
<command> 2>&1 <file> | Output and errors from <command> are redirected and appended to <file>
Should read "Output and errors from <command> are redirected to <file>" because the single
overwrites the existing file, as opposed to
>
which, as you noted, appends to the end of the fileReally cool!
Another good addition to this might be some script rudiments, like how to write and run simple.sh
files