Reading books in command line
Non-DRM e-books matters
No sense to debate how important is reading in modern world: learning new skills and life patterns, live news, entertainment, travel and many more. Ernest Hemingway once said: "There is no friend as loyal as a book".
Amazon and many other stores are trying to play with "buy it" vs "rent it"
market relations and allow to download mostly DRM-protected files which can be opened only in a proprietary store, native or web-based. When a store wants to remove some books, they can do it easily by closing access on store website or even removing them from user devices - Amazon did exactly this with Orwell's "1984". So, better buy books without DRM and always prefer "your control" over "vendor control". For classic books, check Project Gutenberg and Standard Ebooks.
e-book titles and content search in command line
If you have plans for California trip next summer and got several travel guides, next move is opening your file manager or EPUB reader and type each location in the search bar. In command line you can do it much more effectively:
$ find ~/books -name "*Sacramento*" -o -name "*Santa Monica*"
Yeah, as you can see, console allows searching several patterns by once, this is a huge step forward vs GUI. In case a searching inside the books, not just their titles, we can use
$ zipgrep "Sacramento" ~/books/One_book.epub $ for book in ~/books/*epub; do echo $book && zipgrep "Sacramento" "$book"; done
This command will search for all EPUB files in
rga "Sacramento" ~/books/
Another way - use the tool called ripgrep-all, also works with PDF, Office formats and archives like
Console e-book readers
The CLI e-book reader, written in Python, licensed under GPLv3; supports EPUB, .mobi and AZW and direct links to Project Gutenberg. Even more, dictionary integration works and can be great for reading books in foreign language. Text-to-speech also supported, requires
pico2wave engines. Two-pages mode available for people who like the paper book reading experience.
Probably the easier way to install it -
pip3 install epy-reader, the configuration file located in
~/.config/epy/configuration.json and supports tuning of hotkeys, dictionary and text-to-speech engine. Starting the reading is also super intuitive:
$ epy /path/to/book.epub.
t- show book index
n- jump to next chapter
p- jump to previous chapter
b- add bookmark
B- list available bookmarks
Another super useful option is
$ epy -r will print last used files together with their reading progress and paths, so you can read many books and switch easily in between.
$ epy 1 will open first books in reading list.
Simple terminal reader, supports
npm install terminal-book-reader. The configuration file located in
c- select chapter
^D- next chapter
^B- previous chapter
Converting e-books in command line
Sometimes an e-book reader can't read a format; these devices in general are very limited. Calibre, a Swiss knife application for digital documents can help, and, surprisingly, it also works in command line:
ebook-convert2 book.epub book.mobi
Now the converted e-book is ready for Kindle.
Ecology and Global Warming note
Killing threes for paper in the XXI century is stupid and sad. Use digital books as much as you can and save ecology. Fewer threes mean higher carbon rates in the air, more heat trapping near the Earth's surface and higher temperatures as a result.