learnbyexample
I have a book for Perl One-Liners as well, which I'm currently revising :)
I've written books on regex too, if you are interested in learning ;)
Thanks a lot for the feedback on Coreutils book! It's so nice to hear that it helped in your thesis.
Regarding the ebook versions, I use pandoc
to convert GitHub style Markdown to PDF/EPUB (wrote a blog post about my process here: https://learnbyexample.github.io/customizing-pandoc/). I had to search through stackexchange threads to customize the few things I could. I don't know how to fix the kind of page breaks you mentioned. But, I'll try to find a solution. Thanks again for the feedback :)
Hope you find the book useful :)
I'd also suggest these shorter guides to get started:
See also:
- tldr โ collection of community-maintained help pages for command-line tools
- explainshell โ write down a command-line to see the help text that matches each argument
- General purpose command-line tools โ examples for most common usecases
- Bash reference cheatsheet โ nicely formatted and explained well
- Bash scripting cheatsheet โ quick reference to getting started with Bash scripting
You can do it in Bash as well. Put this in .inputrc
:
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward
# or, if you want to search only from the start of the command
"\e[A": history-search-backward
"\e[B": history-search-forward
Inspired by explainshell, I wrote a script (https://github.com/learnbyexample/command_help) to be used from the terminal itself. It is a bit buggy, but works well most of the time. For example:
$ ch grep -Ao
grep - print lines that match patterns
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines. Places a
line containing a group separator (--) between contiguous groups of
matches. With the -o or --only-matching option, this has no effect
and a warning is given.
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with
each such part on a separate output line.
I use GVim for coding and text editing in general.
Programming wise, CLI tools (grep, sed, awk, sort, head, etc) are enough for most of my tasks. I've written a few Python TUI projects (uses Textual framework) but these are around 300-400 lines, so Vim is more than enough for my purposes. Don't even need any plugins.
https://github.com/WyattBlue/auto-editor - automatically editing video and audio by analyzing a variety of methods, most notably audio loudness
https://github.com/shssoichiro/oxipng, https://pngquant.org/ and https://github.com/RazrFalcon/svgcleaner for optimizing images
EPUB reader