Recently, I discovered a new tool that quickly became an integral part of my daily development workflow. It’s called up – the Ultimate Plumber. It allows for interactive chaining of pipe outputs. This is a good choice for anyone who frequently pipes the output of awk, sed, grep, and other command line utilities together.
Knowing how to use the command line–and how to use it well–is often a necessary skill. I love working on the command line, and I love discovering new tools that I can use. Here are a few that I use every day, all of which have greatly boosted my productivity.
Recently, I’ve been looking for ways to improve the code health of a project I’m working on. It’s a pretty big team, so things are moving quickly. While the codebase is in good shape now, little things can quickly spiral out of control.
Developers use a lot of customizable tools, and it’s easy to reason through most of them. While text editors and IDEs come with config files and community standards for customizations, Unix-like shells can feel barren in comparison. However, fish shell acts as a highly configurable alternative to other shells.
I spend a lot of my day working on the command line, from file navigation to version control to remote work on servers over SSH, and anywhere in between. I’ve found that even small improvements to my workflow significantly add up over time to provide big productivity boosts.
I’ve often wanted a way to easily start and stop a group of processes from the command line. My most common use case is wanting to run multiple servers and/or clients at the same time, quickly starting and stopping many processes during development.
I’ve been a Zsh user for several years now, and I figured that I would share my experience. For those who haven’t heard of it, Zsh is a command line shell, similar to Bash, but with many more built-in features. Many features of Zsh are available with Bash or other shells; however, Zsh does such […]
Recently, I had to deal with a command line process that was occasionally hanging during my project’s continuous integration test suite. I decided to write a wrapper script that would watch the output of the wrapped process. If it didn’t see a particular bit of output after some period of time, it would kill the […]
For the last three and a half years, every single command I’ve run from the command line on my MacBook Pro has been logged to a set of log files. Uncompressed, these files take up 16 MB of disk space on my laptop. But the return I’ve gotten on that small investment is immense. Being able to […]
Don’t miss the previous post in this series: Bash Tab Completion With Bash’s programmable completion functionality, we can create scripts that allow us to tab-complete arguments for specific commands. We can even include logic to handle deeply nested arguments for subcommands.