small medium large xlarge

Small, Sharp Software Tools: Harness the Combinatoric Power of Command-Line Tools and Utilities


Cover image for Small, Sharp Software Tools

Small, Sharp Software Tools

Harness the Combinatoric Power of Command-Line Tools and Utilities


The command-line interface is making a comeback. That’s because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you’re not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment.

Customer Reviews

Small, Sharp Software Tools efficiently delivers the practical knowledge you should
have if you’re a developer who spends any time at all working at the command
line. If you’ve been looking for a text that shows you how to get things done in a
Linux or MacOS terminal without slogging through the esoteric things you’ll
never use, this is the book you should read.

- Trevor Bramble

Senior Ruby Software Architect

Brian Hogan is gifted at translating high-level command-line concepts into clear
and easy to understand terms that anybody can quickly grasp. This book takes
the reader on a journey through many of the most powerful command-line tools
and utilities in a way that is easy to digest and enjoyable to read. The exercises
are practical, useful, empowering, and fun to do. There’s something to be learned
from this book whether you’re brand new to the command line or have been using
it for years.

- Greg Myers

Support Engineer, GitLab

The tricks and tools described in this book will set any developer up to rock the
CLI. I challenge anyone to not be more productive after learning these tools!

- Dan Sarauer

Computer Support Supervisor, City of Eau Claire

See All Reviews

Choose Your Format(s)

  • $19.95 In Stock
  • Ebooks are DRM free.

  • Ebook delivery options.

What You Need

You’ll need macOS, Windows 10, or a Linux distribution like Ubuntu, Fedora, CentOS, or Debian using the Bash shell.

Contents & Extracts

  • Preface
    • A Tale of Many CLIs
    • What’s In (and not in) This Book
    • How to Use This Book
    • Online Resources
  • Getting Your Feet Wet excerpt
    • Accessing the Command-Line Interface
    • Getting Your Bearings
    • Creating and Reading Files
    • Redirecting Streams of Text
    • Creating Directories
    • Going Home
    • Using Autocompletion
    • Elevating Privileges
    • Installing Additional Programs with a Package Manager
    • Downloading Files
    • Read the Friendly Manual
    • Useful Shortcuts
    • Your Turn
    • What You Learned
  • Creating an Ubuntu Virtual Machine with VirtualBox
    • Creating a New Virtual Machine
    • Configuring a Network
    • Installing the Guest Operating System
    • Working with Snapshots
    • Installing Software with the Package Manager
    • Improving Performance by Installing Guest Additions
    • Your Turn
    • What You Learned
  • Navigating the Filesystem
    • Listing Files and Directories
    • Navigating Files and Folders
    • Switching Between Directories
    • Finding Files
    • Identifying Available Disk Space
    • Your Turn
    • What You Learned
  • Working with Files and Directories excerpt
    • Creating Files
    • Reading Larger Files
    • Creating Directories
    • Copying, Moving, and Deleting Files and Directories
    • Managing File and Directory Permissions
    • Working with Links
    • Getting More Information About Filesystem Objects
    • Your Turn
    • What You Learned
  • Streams of Text
    • Redirecting Input and Output with File Descriptors
    • Splitting Streams with tee
    • Handling Standard Error Streams
    • Filtering with grep
    • Removing Characters from Output with cut
    • Sorting Output
    • Editing Streams with sed
    • Advanced Processing with awk
    • Using xargs
    • Your Turn
    • What You Learned
  • The Shell and Environment
    • Exploring Environment and Shell Variables
    • Editing Text with GNU nano
    • Customizing Your Shell Session
    • Creating Shortcuts with Aliases and Functions
    • Creating Keyboard Shortcuts
    • Modifying Readline Behavior
    • Your Turn
    • What You Learned
  • Running and Managing Programs
    • Working with Commands
    • Reusing Previous Commands and Arguments
    • Managing Processes and Jobs
    • Terminating Processes
    • Using Command Substitution
    • Keeping Commands Running with GNU Screen
    • Your Turn
    • What You Learned
  • Networking Tools excerpt
    • Getting Your Connection Information
    • Finding Information About Domain Names
    • Testing Network Connectivity
    • Making Web Requests with cURL
    • Working with Web APIs
    • Using Secure Shell to Connect to Remote Machines
    • Transferring Files
    • Exploring Network Connections
    • Using Netcat
    • Your Turn
    • What You Learned
  • Automation
    • Automating Tasks with make
    • Writing Bash Scripts
    • Automating Your Workstation Setup
    • Your Turn
    • What You Learned
  • Additional Programs
    • Working with Text and Files
    • Managing Your Environment
    • Working with Data and External APIs
    • Wrapping Up
  • Command Quick Reference
  • Installing GNU Utilities on macOS
    • Installing coreutils
    • Installing diffutils and findutils


Brian Hogan is a web developer, editor, and author of many technical books, including Exercises For Programmers and tmux 2: Productive Mouse-Free Development. When he’s not working, he’s hacking on code, composing music, or spending time with family and friends.