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.

Choose Your Format(s)

  • $19.95 In Stock
    • Beta: What do I get?

  • Ebooks are DRM free.

  • Ebook delivery options.

  • The Paper Book will ship on 2019-06-10 (roughly).

About this Title

Pages: 321 (est)
Published: 2019-06-10
Release: B6.0 (2019-05-20)
ISBN: 978-1-68050-296-1

No matter what language or platform you’re using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You’ll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux.

Create files without opening a text editor. Manage complex directory strutures and move around your entire file system without touching the mouse. Diagnose network issues and interact with APIs. Chain several commands together to transform data, and create your own scripts to automate repetitive tasks. Make things even faster by customizing your environment, creating shortcuts, and integrating other tools into your environment. Hands-on activities and exercises will cement your newfound knowledge and give you the confidence to use the CLI to its fullest potential. And if you’re worried you’ll wreck your system, this book walks you through creating an Ubuntu virtual machine so you can practice worry-free.

Dive into the CLI and join the thousands of other devs who use it every day.

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

This book is currently in beta, so the contents and extracts will change as the book is developed.

  • 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
    • You Are Here
    • Creating and Reading Files
    • Redirecting Streams of Text
    • Creating Directories
    • There’s No Place Like 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 File System
    • 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
    • Identifying Files
    • Working with Links
    • 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 Nano
    • Customizing Your Shell Session
    • Creating Shortcuts
    • Creating Keyboard Shorcuts
    • Your Turn
    • What You Learned
  • Running and Managing Programs
    • Working with Commands
    • Using your Editor To Create and Modify Commands
    • Managing Processes
    • 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 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
    • Your Turn
    • What You Learned
  • Additional Programs
    • Working with Text and Files
    • Managing your Environment
    • Working with External APIs
    • Wrapping Up


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.