Hacker News new | ask | show | jobs
by liendolucas 10 days ago
For anyone just starting I highly recommend: "Linux Pocket Guide" and if moving forward adopting linux as a daily driver "Efficient Linux At The Command Line". Both books by Daniel J. Barnett.

Even if you're a seasoned Linux user you will learn a lot from those books.

5 comments

Just a nitpick: Barrett, not Barnett. It's nice to see a new edition of Linux Pocket Guide come out just 2 years ago.

https://en.wikipedia.org/wiki/Daniel_J._Barrett

Thanks for pointing it out! I visually checked the books on the shelf but my eyes tricked me and confused "rr" by "rn".
QQ: even when I use Linux as a daily driver I don’t use the cli much. I heard that getting a cheap vps, set up some popular services, and then exposing it to the Internet actually teaches a lot about sysadmin. Does this make sense?

One big issue for me is that when I use Linux I only use it for a specific purpose, e.g. hacking kernels, and the cli commands are extremely limited. I have been using a Linux box for a year and haven’t learned much TBH.

Hosting a Minecraft server was pretty big for me. Learned about screen and tmux to keep it running and be able to detach and reattach. Learned vim to deal with configs on the headless server.

Another thing that helped me learn a lot was what I call "anime playlist management", but may be too niche to recommend. Basically after I moved from VLC to mpv I had to create and add to playlists without a gui. I learned a lot about the find command, text redirection, vim, fzf, file permissions... I retrieve the full file path for the videos and dump that into a .m3u file that I then watch in mpv or rearrange later in vim. find helps to get to the exact files quicker even when everything is sorted neatly into separate directories, fzf lets you add multiple files from the find output at once, selectively. find can also filter by mtime, so I have some one-liners that just show e.g. all files 7 days old or newer in the media directory, easy to rerun and select the stuff I just downloaded to put in the playlist.

At some point I preferred vim over geany or whatever other text editor I used to use. It's nice to be able to use the same tools everywhere, including over ssh, so that reinforced a preference for stuff that runs in a terminal. irssi, aerc, stig+transmission-daemon, neovim, mpv (controllable over ssh). Also having a file server gets you more into rsync, sshfs, stuff like that.

I've made several vim macros to speed up the "anime workflow" as well. Like I add new episodes to the very bottom of the file, but the file has sections broken up by empty lines, and I have a macro to take everything just added at the bottom and move it to the bottom of the top section, where the high priority stuff goes. I also have macros to delete the top line of two side-by-side files in vim at once, saving both. I have both a human-readable list and the actual playlist file and then I delete the lines as I watch.

I've been incrementally refining this workflow for several years now. Just find something you enjoy doing and try to polish it, learn more applicable tools you can incorporate, etc.

> Hosting a Minecraft server was pretty big for me.

This seems to have been the gateway to systems administration for a surprisingly large number of contemporary young people - just like IRC, Quake and Counterstrike servers in my teen years, and futzing with config.sys & autoexec.bat for DOS games when I was a kid... And the hacking soon becomes more fun than the game itself !

Absolutely! In my opinion, the only way to learn anything in any meaningful way is to actually do the thing. In the example you described, you'll quickly start jumping into "Wait, how do I configure a firewall?" and discovering ufw et. al.
Love both books by Daniel J. Barrett.

"The Linux Command Line" by William Shotts is pretty good book for new and experienced command line users. He has also written the supplemental book "Adventures with the Linux Command Line". The author has also generously provided them for free download at https://linuxcommand.org/tlcl.php.

I didn't know about this one. Looks an in-depth book on the shell as well. Thanks for sharing.
Thank you for the recommendation. Both books seem to about the command line. How are the books different?
The pocket is perfect for beginners. It has a nice introduction in chapter 1 that explains all essential concepts to understand and operate the console. Then it is basically a sort of reference of a moderate list of most useful commands for performing different tasks.

The "Efficient" book is an in depth walkthrough of the shell and how to reason and combine important commands to perform not trivial tasks. It is certainly a book to be re-read from time to time because it has plenty of good tricks and explanations.

Thank you for both of these recommendations.