RSSAmplifier

Blog

Small Sharp Software Tools

Recent content on Small Sharp Software Tools

smallsharpsoftwaretools.comRSS feed ↗48 posts

Latest posts

Manage Python Projects and Environments With uv

Install Python versions, manage virtual environments, and handle dependencies with the uv tool, a fast Python tool written in Rust.

Lint Your Markdown with markdownlint

Catch inconsistent Markdown formatting with markdownlint by installing it, configuring rules, and writing custom checks for your documentation projects.

Run LLMs Locally from the Command Line with Ollama

Run large language models on your own machine with Ollama, a command-line tool that downloads, manages, and runs open source AI models without cloud subscriptions or API keys.

Monitor Your Web Apps with Updo

Use the Updo command to monitor the uptime of web sites and applications. Test specific URLs and API endpoints and use configuration files for your projects.

Find Long Lines With awk

Find lines that exceed a specific character limit in text files and source code using awk, great for enforcing line length standards.

Create Windows and Linux Virtual Machines on macOS with UTM and Vagrant

Use Vagrant and UTM to build and configure virtual machines you can use to test software or web sites.

Manage Project Dependencies with Mise

Manage programming language versions, project tasks, and environment variables in one tool with Mise on macOS, Linux, and Windows.

Create Slides with Markdown and Pandoc

Build presentation slides from Markdown files using Pandoc and export them to PowerPoint or other slide formats for easy sharing.

Split Changes into Multiple Commits

Split a large set of file changes into focused, individual Git commits using interactive staging to keep your project history clean.

Copy thousands of files with rsync

Use rsync to copy thousands of files between machines with progress tracking, resume support, and options for bandwidth control.

Use CDPATH to Access Directories Faster

Set the CDPATH environment variable in Bash or Zsh to cd into your most-used directories from anywhere in your terminal.

Run Multiple Processes With Foreman

Run web servers, file watchers, and other dev processes in a single terminal with Foreman using a Procfile to manage them all.

See Open Network Connections

List open network connections and their TCP state on your system using the lsof command, with options to filter by protocol and port.

Follow Log Files With Less

Follow and monitor log files in real time using the less command, with search, navigation, and filtering right in your terminal.

Find Modified Files

Use the find and sort commands to search a directory for the most recently modified files and sort them by modification time.

Create Multiple Files With Brace Expansion

Use brace expansion in the terminal to create multiple files or directories with a single command, saving time and effort.

Rename Multiple Files

Batch rename files in the terminal using a Bash for loop and the mv command to change file extensions and naming patterns quickly.

Track Time With Timewarrior

Track your time from the terminal with Timewarrior, a lightweight command-line tool for logging hours, tagging tasks, and generating reports.

Jump to Git Repository Root

Navigate to your Git repository root directory from anywhere in the project tree using a built-in Git command and a shell alias.

Review Changes With Delta

Enhance your file comparison experience with Delta, a versatile tool that extends the capabilities of the git diff command.

Use OSQuery to Explore Your Operating System

Explore your operating system with OSQuery, an open source tool that lets you query hardware, software, and processes with SQL queries.

Install and Configure WSL on Windows

Install and configure Windows Subsystem for Linux to run Bash scripts and Linux tools alongside your Windows applications.

Install Python on macOS, Windows, and Linux

Install Python on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run Python-based command-line tools.

Install Node.js on macOS, Windows, and Linux

Install Node.js on macOS, Windows, and Linux using Homebrew, official installers, or WSL to run JavaScript command-line tools.

Create a PDF Resume with Markdown, CSS, and Pandoc

Create a professional resume using Markdown, CSS, and Pandoc. This tutorial covers setting up your environment, defining the resume structure, styling with CSS, and generating a polished PDF. Perfect for maintaining a stylish resume.

Forward Services with Bore

Expose local development servers to the internet with Bore, a lightweight open source tunneling proxy and alternative to ngrok.

Run a Development MySQL Server Using Docker Compose

Set up a local MySQL server for development using Docker Compose with persistent data storage, custom settings, and easy teardown.

Convert FLAC to MP3 using the CLI

Convert FLAC files to MP3 using Bash and CLI tools. This guide covers installation, script creation, and batch processing for audio transcoding.

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 Docker Compose and Buildx support.

Command Line Shortcuts

Speed up your terminal workflow with keyboard shortcuts for navigating, editing, and recalling commands in Bash and Zsh shells.

Editing Files You Don't Own with `sudo`

Edit and modify system files you do not own using sudo, tee, and other techniques to safely make changes with elevated privileges.

Resources

Resources for the book Small, Sharp Software Tools

Saving Output to Files

Redirect command output to files using stdout and stderr redirection operators, and append or overwrite files from the terminal.

Reading a Single Line from a File from the Command Line Interface

Display a specific line from a file or stream using sed and awk, then wrap it in a reusable Bash function for quick access.

Creating an HTML Document from Multiple Markdown Files with Pandoc

Combine Markdown documents into a single HTML file with Pandoc and customize the output with a table of contents and a personal template.

Using the tree Command for Software Projects

Visualize your project directory structure with the tree command, using filters and display options to focus on relevant files.

Use a Modern Bash Shell on macOS

Upgrade to a modern version of Bash on macOS using Homebrew, add it to your allowed shells list, and set it as your default shell.

Throwing All Your Work Away in Git

Discard unwanted changes in your Git working directory using the checkout, reset, and clean subcommands to get back to a clean state.

How to Use macOS Notifications with Command-line Programs

Trigger macOS desktop notifications from the command line to alert you when long-running programs and scripts finish running.

Looking Up Domains

Look up domain name records, IP addresses, and registration details from the command line using host, dig, and whois.

Fixing Mistakes

Fix command-line typos and mistakes with keyboard shortcuts and history substitution so you can correct errors without retyping.

The Cal Command

Display a calendar in your terminal with the cal command, view specific months or years, and highlight dates for quick reference.

Installing Homebrew

Install and configure the Homebrew package manager on macOS to add command-line tools, programming languages, and libraries.

Install GNU Utilities on macOS

Replace default macOS utilities with GNU versions of awk, sed, date, and more using Homebrew for better Linux compatibility.

Dates with the Date Command

Format dates, calculate future and past dates, and do date math from the terminal using the date command on macOS and Linux.

Making Directory Structures

Use the mkdir command with the -p flag and brace expansion to build a full project directory structure in a single command.

About The Book

Small Sharp Software Tools

Three Ways to Create Files

Create files from the command line using touch, redirection, and heredocs, and understand when to use each approach.