# Small Sharp Software Tools The CLI is making a comeback. Explore Small Sharp Software Tools, the book, and these tutorials, tips, and videos ## About the Site This is the companion website for the book "Small Sharp Software Tools" by Brian Hogan, published by The Pragmatic Programmers. The book helps developers harness the power of command-line tools and utilities for software development. The site includes additional hands-on tutorials and videos to get even more done. ## Content Sections ### Tutorials - [Manage Python Projects and Environments With uv](https://smallsharpsoftwaretools.com/tutorials/manage-python-with-uv/): Install Python versions, manage virtual environments, and handle dependencies with the uv tool, a … - [Lint Your Markdown with markdownlint](https://smallsharpsoftwaretools.com/tutorials/lint-markdown/): Catch inconsistent Markdown formatting with markdownlint by installing it, configuring rules, and … - [Run LLMs Locally from the Command Line with Ollama](https://smallsharpsoftwaretools.com/tutorials/run-llms-locally-with-ollama/): Run large language models on your own machine with Ollama, a command-line tool that downloads, … - [Monitor Your Web Apps with Updo](https://smallsharpsoftwaretools.com/tutorials/monitor-with-updo/): Use the Updo command to monitor the uptime of web sites and applications. Test specific URLs and API … - [Create Windows and Linux Virtual Machines on macOS with UTM and Vagrant](https://smallsharpsoftwaretools.com/tutorials/utm-vagrant/): Use Vagrant and UTM to build and configure virtual machines you can use to test software or web … - [Manage Project Dependencies with Mise](https://smallsharpsoftwaretools.com/tutorials/mise/): Manage programming language versions, project tasks, and environment variables in one tool with Mise … - [Create Slides with Markdown and Pandoc](https://smallsharpsoftwaretools.com/tutorials/create-slides-from-markdown-with-pandoc/): Build presentation slides from Markdown files using Pandoc and export them to PowerPoint or other … - [Split Changes into Multiple Commits](https://smallsharpsoftwaretools.com/tutorials/split-changes-into-multiple-commits/): Split a large set of file changes into focused, individual Git commits using interactive staging to … - [Run Multiple Processes With Foreman](https://smallsharpsoftwaretools.com/tutorials/run-multiple-processes-with-foreman/): Run web servers, file watchers, and other dev processes in a single terminal with Foreman using a … - [Track Time With Timewarrior](https://smallsharpsoftwaretools.com/tutorials/track-time-with-timewarrior/): Track your time from the terminal with Timewarrior, a lightweight command-line tool for logging … - [Jump to Git Repository Root](https://smallsharpsoftwaretools.com/tutorials/jump-to-git-repository-root/): Navigate to your Git repository root directory from anywhere in the project tree using a built-in … - [Review Changes With Delta](https://smallsharpsoftwaretools.com/tutorials/review-changes-with-delta/): Enhance your file comparison experience with Delta, a versatile tool that extends the capabilities … - [Use OSQuery to Explore Your Operating System](https://smallsharpsoftwaretools.com/tutorials/use-osquery-to-explore-your-os/): Explore your operating system with OSQuery, an open source tool that lets you query hardware, … - [Install and Configure WSL on Windows](https://smallsharpsoftwaretools.com/tutorials/install_wsl/): Install and configure Windows Subsystem for Linux to run Bash scripts and Linux tools alongside your … - [Install Python on macOS, Windows, and Linux](https://smallsharpsoftwaretools.com/tutorials/install_python/): Install Python on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run … - [Install Node.js on macOS, Windows, and Linux](https://smallsharpsoftwaretools.com/tutorials/install_nodejs/): Install Node.js on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run … - [Create a PDF Resume with Markdown, CSS, and Pandoc](https://smallsharpsoftwaretools.com/tutorials/pandoc_resume/): Create a professional resume using Markdown, CSS, and Pandoc. This tutorial covers setting up your … - [Forward Services with Bore](https://smallsharpsoftwaretools.com/tutorials/tunnel-with-bore/): Expose local development servers to the internet with Bore, a lightweight open source tunneling … - [Run a Development MySQL Server Using Docker Compose](https://smallsharpsoftwaretools.com/tutorials/run-mysql-in-docker-compose/): Set up a local MySQL server for development using Docker Compose with persistent data storage, … - [Convert FLAC to MP3 using the CLI](https://smallsharpsoftwaretools.com/tutorials/convert-flac-to-mp3/): Convert FLAC files to MP3 using Bash and CLI tools. This guide covers installation, script creation, … - [Use Colima to Run Docker Containers on macOS](https://smallsharpsoftwaretools.com/tutorials/use-colima-to-run-docker-containers-on-macos/): Use Colima, an open source container runtime on your Mac instead of the official Docker client with … - [Reading a Single Line from a File from the Command Line Interface](https://smallsharpsoftwaretools.com/tutorials/read_a_line_from_a_file/): Display a specific line from a file or stream using sed and awk, then wrap it in a reusable Bash … - [Creating an HTML Document from Multiple Markdown Files with Pandoc](https://smallsharpsoftwaretools.com/tutorials/create-html-from-multiple-markdown-files/): Combine Markdown documents into a single HTML file with Pandoc and customize the output with a table … - [Using the tree Command for Software Projects](https://smallsharpsoftwaretools.com/tutorials/tree-command-for-software-projects/): Visualize your project directory structure with the tree command, using filters and display options … - [Use a Modern Bash Shell on macOS](https://smallsharpsoftwaretools.com/tutorials/use_modern_bash_on_macos/): Upgrade to a modern version of Bash on macOS using Homebrew, add it to your allowed shells list, and … - [Throwing All Your Work Away in Git](https://smallsharpsoftwaretools.com/tutorials/git-trashit/): Discard unwanted changes in your Git working directory using the checkout, reset, and clean … - [How to Use macOS Notifications with Command-line Programs](https://smallsharpsoftwaretools.com/tutorials/macos-notifications/): Trigger macOS desktop notifications from the command line to alert you when long-running programs … - [Installing Homebrew](https://smallsharpsoftwaretools.com/tutorials/homebrew/): Install and configure the Homebrew package manager on macOS to add command-line tools, programming … - [Install GNU Utilities on macOS](https://smallsharpsoftwaretools.com/tutorials/gnu-mac/): Replace default macOS utilities with GNU versions of awk, sed, date, and more using Homebrew for … ### Videos - [Command Line Shortcuts](https://smallsharpsoftwaretools.com/videos/009_shell_shortcuts/): Speed up your terminal workflow with keyboard shortcuts for navigating, editing, and recalling … - [Editing Files You Don't Own with `sudo`](https://smallsharpsoftwaretools.com/videos/008_running_with_sudo/): Edit and modify system files you do not own using sudo, tee, and other techniques to safely make … - [Saving Output to Files](https://smallsharpsoftwaretools.com/videos/007_stdout/): Redirect command output to files using stdout and stderr redirection operators, and append or … - [Looking Up Domains](https://smallsharpsoftwaretools.com/videos/006-dns/): Look up domain name records, IP addresses, and registration details from the command line using … - [Fixing Mistakes](https://smallsharpsoftwaretools.com/videos/005-fixing-mistakes/): Fix command-line typos and mistakes with keyboard shortcuts and history substitution so you can … - [The Cal Command](https://smallsharpsoftwaretools.com/videos/004-the-cal-command/): Display a calendar in your terminal with the cal command, view specific months or years, and … - [Dates with the Date Command](https://smallsharpsoftwaretools.com/videos/003-dates-and-date-math/): Format dates, calculate future and past dates, and do date math from the terminal using the date … - [Making Directory Structures](https://smallsharpsoftwaretools.com/videos/002-making-dir-structures/): Use the mkdir command with the -p flag and brace expansion to build a full project directory … - [Three Ways to Create Files](https://smallsharpsoftwaretools.com/videos/001-create-files/): Create files from the command line using touch, redirection, and heredocs, and understand when to … ### Tips - [Find Long Lines With awk](https://smallsharpsoftwaretools.com/tips/find-long-lines-with-awk/): Find lines that exceed a specific character limit in text files and source code using awk, great for … - [Copy thousands of files with rsync](https://smallsharpsoftwaretools.com/tips/copy-thousands-of-files-with-rsync/): Use rsync to copy thousands of files between machines with progress tracking, resume support, and … - [Use CDPATH to Access Directories Faster](https://smallsharpsoftwaretools.com/tips/use-cdpath-to-access-directories-faster/): Set the CDPATH environment variable in Bash or Zsh to cd into your most-used directories from … - [See Open Network Connections](https://smallsharpsoftwaretools.com/tips/see-open-network-connections/): List open network connections and their TCP state on your system using the lsof command, with … - [Follow Log Files With Less](https://smallsharpsoftwaretools.com/tips/follow-log-file-with-less/): Follow and monitor log files in real time using the less command, with search, navigation, and … - [Find Modified Files](https://smallsharpsoftwaretools.com/tips/find-modified-files/): Use the `find` and `sort` commands to search a directory for the most recently modified files and … - [Create Multiple Files With Brace Expansion](https://smallsharpsoftwaretools.com/tips/create-multiple-files-with-brace-expansion/): Use brace expansion in the terminal to create multiple files or directories with a single command, … - [Rename Multiple Files](https://smallsharpsoftwaretools.com/tips/rename-files/): Batch rename files in the terminal using a Bash for loop and the mv command to change file … ## Topics Covered The content focuses on: - Command-line navigation and file management - Text processing with grep, sed, and awk - Network diagnostics and API interaction - Bash scripting and automation - Cross-platform CLI usage (macOS, Linux, Windows) - Developer productivity with terminal tools ## Technical Focus - Bash shell and common command-line utilities - File system operations and permissions - Stream processing and redirection - Network tools and remote access - Build automation with Make - Shell customization and productivity Website: https://smallsharpsoftwaretools.com Last updated: 2026-08-20