Command line programs I use in a day-to-day basis

July 25, 2019 terminal

xargs

xargs builds and executes command lines given an input. It’s specially useful after greping. For example:

git branch | grep bugfix | xargs git branch -D

xargs is going to execute git branch -D for each branch name listed from git branch | grep bugfix

awk

AWK is a programming language designed for text processing. It has a bunch of features which I should take some time to learn, but I mainly use it for getting the content of a column given a command result.

For example if you run ps aux in the command line, you’d get a result like this:

youruser     2073   0.0  0.1  2462832   5012 s001  Ss   10:08PM   0:00.99 program1
youruser     1954   0.0  0.0  2463092   3576   ??  Ss   10:08PM   0:04.17 program2
youruser     1952   0.0  0.0  2445684   1352 s000  S+   10:08PM   0:00.01 program3

If you want to get the process id (aka pid) to kill it you only need the content of the second column.

With awk you can do it like this:

ps aux | grep program1 | awk '{print $2}' | xargs kill

ssh

easy access to your servers

You can save some configs to easy access your servers into ~/.ssh/config and they look this:

Host my_server
  User ubuntu
  IdentityFile /path/to/your/key.pem
  HostName ec2-123-123-123-123.compute-1.amazonaws.com

so you can access your server with ssh my_server.

copy files over ssh

  • to copy from your machine to the server: scp myfile.txt my_server:/home/ubuntu/myfile.txt
  • to copy from your server to your machine: scp my_server:/home/ubuntu/myfile.txt myfile.txt

Alacritty

Alacritty is a cross-platform, GPU-accelerated terminal emulator that I use in a day-to-day basis. It’s pretty fast over iTerm.

It requires a configuration file if you need to change things like font family or font size, because there is no interface to change it which I don’t think it’s a problem for programmers.

It doesn’t have features like tabs and splits so for that you need tmux.

This is my config for Alacritty.