Switching from macOS to Linux

This book documents the transition of an IT administrator, who pretty much hid in his Apple comfort zone for years, from macOS to Linux, specifically, from macOS 10.12 to Ubuntu 16.04 Server. This book will cover the Server for a few reasons. First, the Desktop version is intuitive enough that almost everything can really be figured out simply by using the "click it, did it work?" method. Second, there are many versions of Linux GUI's, even for Ubuntu, but configuring Linux via the command line is more uniform.

The intended audience is experienced Mac administrators who have little to no Linux experience and would like a quick reference. As such, everything is named and organized the way it is on the Mac. This book focuses on how to perform tasks that are easily done using Mac's GUI in the Linux command line.

This book is not a Unix tutorial. Unix commands will be shown when a task requires using the command line, but they will not be explained. Many tasks will simply refer to better documentation. I'm listing the topics that I think need to be covered to make this a good switching guide, but I realize that I may never get to all of these topics.

How to Learn


While you learn Linux you need to realize that you will probably have to start over at least once, if not many times. For this reason I recommend you use a virtual machine (like the free VirtualBox) before you install Linux on bare metal hardware, use snapshots, and keep notes. This book actually happens to be my notes and I had to revise it many times to reflect all of the changes I made as I learned.

As an example of why you might have to start over, this is what I did. I began this book installing Ubuntu 16.04 Server and learned a little. Then I decided to switch to 17.10, which was the latest but was not an LTS version. I went pretty far with that when I found some software that I wanted to install, but it only installed on LTS versions. So I had to go back to the 16.04 version.

There's also a good chance that you will make mistakes and break your server several times. While learning, use a virtual machine, keep notes, and use snapshots so you don't have to constantly start from scratch.