See More

A very common reason is a wrong site baseUrl configuration.\n

Current configured baseUrl = / (default value)\n

We suggest trying baseUrl = \n\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)

Effective Shell

The hands-on guide for developers who want to master the command line and build a fast, flexible, and portable development environment.

This isn't a tour of shell commands. It's a blueprint for creating workflows that scale across machines, teams, and projects. By the end, your shell won't just be a tool; it'll be an extension of your thinking.

Effective Shell Book Cover

Understand Your AI

AI regularly composes shell commands. Understanding the shell helps you verify and build on what AI generates.

Pipelines & Data

Find, filter, and reshape data using grep, regex, and pipelines. Compose powerful commands from simple building blocks.

Scripts & Automation

Automate setup, configuration, and repetitive tasks. From one-liners to robust shell programs.

Portable Toolkit

Manage your environment with Git and dotfiles. Build workflows that scale across machines and projects.