What to Pack for a Deserted Linux Island
This post has appeared as an article on issue #1 of PagedOut! magazine.
Things I insist on installing on every new Linux server I work on, and you should too.
It’s that time again. You finally manage to ssh into your brand-new server, aaaand…
😖 It sucks. You think to yourself, “ah, if only I had time to set this up like I WANT it to be, this machine would’ve been a treat”. But alas; you choose to save time by chugging on with the basic terminal for hours, which end up slowing you down. My point is: Tooling is king.
Tooling increases productivity, lowers frustration, and makes you look cool. 😎
pro·duc·tiv·i·ty noun; The effectiveness of productive effort, especially in industry, as measured in terms of the rate of output per unit of input. source
ℹ Tooling is important where you intend to actually work. If this is a server you just ssh into to restart a crashed service, then this guide might be somewhat irrelevant.
So, what do I install the moment I log into a new Linux machine, as a starter pack of efficiency? Grab your coffee and ssh into your neglected server that wants some love.
Note: This guide is for Debian-based releases. Make adaptations as necessary.
First thing first, update your current software.
sudo apt get update
And get software that gets other software.
sudo apt install curl sudo apt install git-all
Now for the fun and oh so opinionated stuff. These are personal (but tried and true) favorite programs and configurations. Give them a shot.
I recommend you get the coolest one:
sudo apt install zsh
When you launch it for the first time, use the wizard to configure it to your liking. If you don’t configure autocomplete and chdir without cd, you’re wrong. Then get oh-my-zsh (for the security-minded folks out there - after reviewing the script of course).
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Don’t forget to add 2-letters-long aliases to the most frequently used paths (e.g. source, bin and logs). Super fast cd-ing 🏎. Also, random themes are fun, but I find myself returning to
agnoster. Do that by putting the following line in
I recommend checking out plugins which are useful and installing them as well. I use these, but this is really personal preference stuff:
plugins=( git zsh-autosuggestions zsh-syntax-highlighting virtualenv )
After adding the git plugin as well, it’ll end up looking like this:
More terminals == more throughput == more productivity == more happiness. That’s just math. Get
oh-my-tmux, powerline and
sudo apt install tmux git clone https://github.com/gpakosz/.tmux.git ln -s -f .tmux/.tmux.conf cp .tmux/.tmux.conf.local .
The Text Editor
I could write a whole article on why to use
vim. In short, it’s fast and effective. To improve the experience of using vim: get
vim’s package manager) and
nerdtree to browse files quickly. Map
<C+n> to open
In the terminal,
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim git clone https://github.com/preservim/nerdtree.git ~/.vim/bundle/nerdtree
call pathogen#infect() syntax on filetype plugin indent on
If you need one, get one (I like Chrome). One thing you can’t miss is the extension
vimium: it allows you to navigate the web using the keyboard alone.
Thank me later. Now you’ll have the time 😉