/Shell

Shell History Is Your Best Productivity Tool

- Martin Heinz tl;dr: “If you work in shell/terminal often enough, then over time the history will become your personal knowledge vault, documentation and command reference. Being able to use this personal documentation efficiently can hugely boost your productivity. So, here are a couple of tips on how to optimize your shell history configuration and usage to get the most out of it.”

featured in #505


How To Lose Control Of Your Shell

- Thorsten Ball tl;dr: “A few weeks ago I was hacking on language server support in Zed, trying to get Zed to detect when a given language server binary, such as gopls, is already present in $PATH.” Thorsten shares how a seemingly harmless shell command led to catastrophic consequences.

featured in #496


How Fast Is Your Shell?

- Thorsten Ball tl;dr: “Think about it this way: which program do you execute more often than your shell? How many shells do you spawn every day? How many other programs do you run every day that spawn your shell? If you’re anything like me, it’s a lot of shells per day. I’m a heavy terminal and tmux user. I spawn shells like I open new tabs in a browser. Do you want one of your most-used programs to start slow because you didn’t care?” Thorsten shares how to measure and optimize the shell’s speed.

featured in #480


Navigating Around In Your Shell

- Abin Simon tl;dr: "I have been using terminals for a long time, initially because I thought they looked cool, and later because I genuinely found them to be easier/faster to get stuff done. And since I've been at it for a while, navigating through directories is something I think I've gotten good at. In this blog, I would like to give some tips on ways you can navigate around in your shell quickly."

featured in #467


Shell Script Best Practices

- Shrikant Sharat Kandula tl;dr: "This article is about a few quick thumb rules I use when writing shell scripts that I’ve come to appreciate over the years. Very opinionated." 15 rules in total, including: (1) Use bash. Using zsh or fish or any other, will make it hard for others to understand / collaborate. Among all shells, bash strikes a good balance between portability and DX. (2) Just make the first line be #!/usr/bin/env bash, even if you don’t give executable permission to the script file.

featured in #364


PIPEFAIL: How A Missing Shell Option Slowed Cloudflare Down

- Alex Forster tl;dr: "Between 20:10 and 20:40 UTC on December 16, 2021, web requests served by Cloudflare were artificially delayed by up to five seconds before being processed. This post tells the story of how a missing shell option called “pipefail” slowed Cloudflare down."

featured in #307


That Simple Script Is Still Someone's Bad Day

tl;dr: "This gets used as an opportunity to write one of those awful corporate outage bulletins which is more about hawking the company's wares than getting to the bottom of a problem. And, in it, the key is "we forgot pipefail".

featured in #306


The Day Of A New Command-Line Interface: Shell

- Bjorn Stahl tl;dr: "This article continues the long-lost series on how to migrate away from terminal protocols as the main building block for command-line and text-dominant user interfaces." The value proposition and motivation is still that "such a critical part of computing should not be limited to device restrictions set in place some 50-70 years ago."

featured in #306