This website displays the Gemini protocol through a web proxy. The content is proxied from gemini://ols.wtf using Kineto.


My Top 10 Commands

In response to z3bra's post on the same subject

I had a mildly successful Reddit post about this back in the day. Nowadays, just putting the information out there for others to consume and interact with if they so choose appeals more to me than karma farming.

And so without further ado, here are my top 10 commands:

Let's get started!

1. vim

vim is my editor of choice; it (or more commonly vi) is on every server that I have ever had the pleasure of logging on to, which makes sysadmin duties a breeze. I've actually started using neovim locally, but have it aliased to vim still because muscle memory. I use this machine for work as well as some personal stuff, so it's no surprise that a day full of editing YAML and HCL, and a night of writing Golang and gophermaps, results in my editor being the very top of my list.

I have flirted with other editors in the past:

Wow, I am probably going to make some people unhappy with this log.

I have extended vim quite a lot, and so I shall probably write about this in greater detail at a later date.

2. k (alias 'pscli kubectl')

More about what pscli is later (command 10 if you are impatient) but for all intents and purposes this is the same as running vanilla kubectl. kubectl controls the Kubernetes cluster manager. Having worked *a lot* recently on both migrations and establishing best practices around Kubernetes within my job,it is again no surprise to find old kubectl up here at the top of the list.

Interestingly, there is a strong debate around how kubectl should be pronounced, with many people firmly planted in either the "cube C T L" or "cube cuddle" camps. Personally I refer to it as "Quebec tull" in order to annoy the pedants on both sides.

3. git

I use git heavily as part of my job, given all of our applications and configs are held in source control. As well as this, I have also found myself running off the master branch of a lot of personal projects recently, rather than using the stable releases.

4. cd

z3bra makes the point in his phlog about using the full path to files, which I think is the right thing to do for quick or one-off commands. If I am going to be doing a few things with files or folders within a certain directory, I will cd to it. It's called $PWD for a reason, it's the directory you are *working* in.

5. ls

I don't actually use the ll or lla aliases that some systems have by de- fault, because OpenBSD (which is my main personal OS) doesn't have them by default. On this particular machine, I run lsd which gives me pretty colours and icons based on file type. The only annoyance I have with it is that the -h flag is not recognised, because it is implied, which causes the command to fail when I run ls -larth or something similar.

https://github.com/Peltoche/lsd

6. ssh

I work on *a lot* of remote servers, and I also belong to a hefty amount of shared-access Unix systems (sdf, blinkenshell, multiple tildes, etc.)

I also have a pretty interesting proxy setup for jumping through bastion hosts at work, which might be the subject of another entry.

7. cat

People probably scoff when they see cat in a list like this, because they presume it's because of doing things like

In my case, you have to take my word that it's not that. Files that I know are small and I just want the contents off to look at, I will cat them, but primary this is for joining files together. A quick example I can think of is creating a java keystore with

So yes, don't judge until you know ;)

8. curl

Unfortunately this is a boring work one. I never got on with applications like Postman for making HTTP requests and so I always just hand-craft curl requests instead. Sure, it takes a few attempts but it's all good really.

9. make

I had a feeling make would be on here. Like z3bra, this isn't specifically around C code, but rather the fact that I make a Makefile for most things. Distributing an application that has a Dockerfile, sharing Kubernetes configuration manifests, generating a static HTML blog from Markdown, all of them use Makefiles. Long life the Makefile.

10. pscli

This is the command I alluded to in number 2. This is some internal tooling that we use to ensure that developers are all using the same versions of command line tools that our infrastructure uses (e.g kubectl, terraform, kitchen). It also handles getting tokens from Vault in order to perform actions that need authentication. It is based on cali which is our open-sourced version that just contains the bare bones of what it needs to function, without any of our business magic.

https://github.com/skybet/cali

Oh, and I checked my terminal history, I'm at 148378 lines at the time of writing, going back to August 2017.

Your turn, what are your top 10 commands?