Book: Small, Sharp Software Tools

Harness the Combinatoric Power of Command-Line Tools and Utilities.

https://pragprog.com/book/bhcldev/small-sharp-software-tools

Table of Contents

  • 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
    • 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
    • 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
    • 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