A while back I wrote a post on why to use Linux, as well as giving a couple talks on it. I thought I would finally follow-up on my experience with a how to use Linux. This write-up will be aimed at both beginners and advanced users alike; my hope being that all levels of humans that use a computer will gain something out of it. If you are an average user of the Web, or a Developer trying to simplify and privatize their working desktop environment, the following should have something worthwhile for you.
Before the how, let’s review the what. Linux is a free and open-source operating system kernel, which means it is the main component of the computer that talks to the hardware. From there, many organizations, companies, communities, individuals, etc. can then use Linux to package their own Linux distribution to create their own complete operating system. Many popular “distros” as they are referred to are: Red Hat, Arch, Debian, Ubuntu, Linux Mint, Slackware. You may see thousands of them over at a site called Distro Watch. Linux is commonly used to refer to the entire family of distributions. Although, technically it is a kernel. Although, that site may be overwhelming, I would simply recommend checking out the following diagram.
Linux is commonly used to refer to the entire family of distributions. Although, technically it is a kernel.
Prerequisites
This gentle guide will assume some familiarity with the command line.
Getting Started
Ubuntu is a commonly used operating system (OS) on both the server and desktop alike so we will use that as our guide. Although, keep in mind others do exist that you may prefer so do yourself a favor and check out a handful of them.
usb stick
Grab a USB “thumb drive” that can be plugged into your computer. I like the MOSDART line of products as they are a nice balance of inexpensive and functional. Assuming you are coming from Windows, navigate to this tutorial and come back when you are done. In addition to, if you would like, feel free to Contact Me with your name and mailing address and I will send you a thumb drive of your choice with the distribution of your choice already on there. I ask you just pay for Shipping & Handling and the cost of the drive.
Alternatively, just to check out a distribution, consider installing in a hypervisor “virtual machine appliance” like VirtualBox.
installation
Installing Linux can be very straightforward to seemingly complicated, depending on the distribution you choose. If you are a beginner or just a Developer wanting to just get their work done, head over to the Ubuntu Installation Guide. If you intend on customizing your installation to exactly how you want it, Arch Linux Install Guide may be for you. If you are familiar with computers, then an educational install like Linux From Scratch may be worthwhile.
Live Booting
One neat feature to be aware about Linux is that it may be “live booted”. This simply means that you may run it on your machine before ever installing it. Note that it may be a bit slower than if actually on your hard drive since it is booting from USB, but it gives you a great chance to see if most things are compatible before installing.
House Keeping Tweaks
I do not care for the GUI Software Updater that pops up on startup when there are new packages ready to go. You may. But for me, I check often in the terminal and handle there. So if you would like the GUI removed like I do, just run sudo apt remove update-notifier
.
Assuming you are on a laptop, you may want to be able to “right-click by pressing two fingers on the touchpad”; also assuming you are running Gnome, this can be Enabled by adding the gnome-tweak-tool
package and then opening Tweaks and checking Fingers under Mouse Click Emulation.
Applications
I do my best to install most applications from the official Ubuntu Package archive using Apt but sometimes stable does not always mean the most secure or up-to-date I like. I typically seek out how the Maintainer of the software projects recommends installing, which can typically be found on their project’s site or git repository. I suggest you do the same.
Installation methods:
Apt: Advanced Package Tool is a management system for software packages
Snap: a self-contained application running in a sandbox
.deb: a file extension of the software package format for Debian and its derivatives, which can be installed with Apt: sudo apt install [file-name].deb
. Note: Ubuntu is based on Debian
The following are applications I use:
Name | Purpose | Installation Method |
VLC | media consumption | Apt or snap Downloads |
Signal | encrypted communication | Apt with their official repo |
Discord | community discussion | .deb from Downloads |
VSCodium | code editor without the telemetry | Apt with their official repo |
Mullvad | VPN | .deb from Downloads |
Zoom | video conference at day job | .deb from Downloads |
buildah | OCI container image facilitation | Apt with Install Guide |
Podman | Container management | Apt with Install Guide |
Chromium | web browser testing | Snap |
Standard Notes | privacy focused note taking | AppImage |
Peek | animated GIF screen recorder | Apt via PPA |
Syncthing | file synchronization | Apt |
If you have a question about any applications or have a use case that demands a piece of software not mentioned in the Purpose column above, feel free to Contact Me.
Backup
I use rsync, which is just an apt install
away from being available to use. Be sure to keep files you would not like to lose in a directory that can be backed up via rsync. Assuming you have a source mounted, the following command should suffice with the assumption you update to your username and appropriate file path: rsync -av /home/craig/Music/ /media/craig/backup_media/Music/
We can then automate that in a cron job. Future article on that coming soon.
Also, would like to note that ProtonMail now has a product in Beta at the time of this writing called ProtonDrive and it has been sweet to use. I look forward to when it inevitably has a client to sync to.
Hardware
I have owned either an Intel-based laptop from various manufacturers (e.g. Dell, Asus, Toshiba) or a machine from System76. I have never had an issue installing Linux on any of them.
Improvements
- Create an install script with Bash, Go or Python for every fresh install of Ubuntu
- Switch to a rolling release distribution like Arch Linux
- Mobile version some day to replace Android – For now I use GrapheneOS.
- A personal server set-up on bare metal or in “the cloud”.
Additional Resources
Check out my Linux Resources page to continue your exploration and learning.
Alternatives
The following are alternatives either for practical use, to learn, for fun, or a combination of all the above.
- FreeBSD
- Haiku
- Minix
- SerenityOS
- ReactOS