I decided to read this book because I wanted to do well on the Minishell project.
The book recommended Ubuntu 20.04, but the current version available was 22.04, so I tried with that.
To set up virtualization on an M1 MacBook Air, you need to use UTM instead of VirtualBox.
When installing on UTM, I downloaded the AMD64 version of the Ubuntu image even though I was using an M1, which caused issues.
Through trial and error and searching, I figured it out... If you're using an M1, you need to download a Ubuntu image built for ARM architecture. AMD and ARM sound similar, which made it even more confusing...
The commands covered in this book are popular ones that programmers may have encountered here and there. In the early chapters, most commands are easy, and you can understand them just by reading without even practicing on a Linux OS.
What I liked about this book was that it showed commands along with commonly used options and examples. It also provided examples combined with other commands, which made it a good resource for learning usage patterns.
Of course, using them a few times doesn't mean I memorized everything. But I think I've reached a point where, when needed, I can at least remember "there was a command that could do this" and search for it on Google. Still, unless I'm in a related role, I don't think I'll have opportunities to use the more esoteric commands.
Toward the end, network-related and file system-related commands appear, which are hard to work with, unlikely to be needed, and not commands you'd casually use, so they weren't of great help. The last few chapters didn't seem like beginner-level content. Some of the topics covered would actually be easier to handle in a GUI environment.
Nevertheless, I think this book is worth a light read. For instance, if you're working on a virtual environment project called Born2beroot, the Linux commands in this book might be helpful.
It didn't help much for the Minishell project, but the early content was quite useful for understanding the console.
