← All posts

Boost Your Productivity: 7 Terminal Tricks That Save Hours Weekly

Discover 7 terminal tricks that cut hours from your workflow, from smart navigation to automation scripts—boost productivity in minutes.

The command line is often seen as a daunting, text‑only interface. In reality, it’s a powerful remote‑control panel that lets you perform repetitive tasks in a fraction of the time it takes a mouse‑based GUI. This guide shows beginners how to transform everyday command‑line chores into lightning‑fast workflows using just a handful of terminal tricks.

TL;DR

  • Navigate quickly with cd, ls, and tree; think of it as moving through rooms, checking contents, and seeing the whole building at once.
  • Shorten long commands with aliases like alias ll='ls -alF'.
  • Search efficiently using grep (find) and awk (slice).
  • Automate repetitive actions with shell scripts; a sample script moves the largest files to a backup folder.
  • Avoid common pitfalls: over‑use of aliases, hard‑coded paths, and unchecked destructive commands.

Understanding the Terminal: What It Is and Why It Matters

The terminal, also called a command‑line interface (CLI), is a text window where you type commands that the operating system interprets. Unlike a graphical user interface (GUI) that relies on icons, the terminal communicates directly with the system’s core, offering speed and precision.

  • Commands are small programs that perform specific tasks—listing files, moving data, compiling code, etc.
  • Think of the terminal as a remote control for a TV: instead of pressing many buttons on the wall, you can jump straight to any channel with a single command.
  • On macOS, Linux, or Windows Subsystem for Linux (WSL), open the Terminal app (macOS: ⌘ + Space → “Terminal”, Linux: Ctrl + Alt + T, WSL: “Windows Terminal”).

Mastering File Navigation with cd, ls, and tree

Before you can automate anything, you need to be comfortable moving around the file system.

cd – Change Directory

  • cd (change directory) updates the current working directory (CWD), the folder the terminal is “in”.
  • Relative paths move relative to the current folder: cd ../docs goes up one level and into docs.
  • Absolute paths start from the root: cd /home/user/docs.

ls – List Files

  • ls displays the contents of a directory.
  • Common options:
    • -l → long format (permissions, owner, size, date).
    • -a → show hidden files (those starting with .).
    • -h → human‑readable file sizes (e.g., 1.2K, 3M).

tree – Visual Directory Tree

  • tree prints a hierarchical view of a directory structure, resembling a floor plan.
  • Install it if missing:
    • macOS: brew install tree
    • Linux (Debian/Ubuntu): sudo apt install tree
    • WSL: sudo apt install tree

Analogy

Navigating a file system is like walking through a building: cd moves you between rooms, ls checks what’s inside each room, and tree shows the entire floor plan at a glance.


Using Aliases to Shrink Repetitive Commands

Long commands can be tedious. Aliases let you give them nicknames.

Creating an Alias

alias ll='ls -alF'
  • ll now runs ls -alF, which lists all files (-a), in long format (-l), and appends indicators (-F) like / for directories.

Persisting Aliases

  1. Open your shell configuration file:
    • Bash: ~/.bashrc
    • Zsh: ~/.zshrc
  2. Add the alias line.
  3. Reload the file: source ~/.bashrc (or ~/.zshrc).

Analogy

An alias is a nickname for a friend. Instead of saying their full name every time, you use a short, memorable tag.


Leveraging grep and awk for Quick Searches

Finding information quickly is a core strength of the terminal.

grep – Pattern Matching

grep "TODO" -R .
  • Searches recursively (-R) for the string “TODO” in all files in the current directory.

Common Options

  • -i: ignore case (grep -i "error").
  • -v: invert match (exclude lines that contain the pattern).
  • --color=auto: highlight matches.

awk – Text Processing

awk '{print $1}' file.txt
  • Splits each line into fields (space‑separated by default) and prints the first field.

Common Use Cases

  • Extract columns from CSV or log files.
  • Perform arithmetic on columns: awk '{sum+=$2} END{print sum}' data.txt.

Analogy

  • grep is a metal detector that finds gold in a field.
  • awk is a tailor that cuts fabric to size, shaping raw data into useful slices.

Automating Routine Tasks with Shell Scripts

Shell scripts are plain text files containing a sequence of terminal commands. They’re the recipe cards of the command line.

Basic Script Structure

#!/usr/bin/env bash
# backup_logs.sh – copy all .log files to a backup folder

SOURCE_DIR="/var/log"
BACKUP_DIR="$HOME/backup_logs"

mkdir -p "$BACKUP_DIR"

for file in "$SOURCE_DIR"/*.log; do
  [ -f "$file" ] || continue
  cp "$file" "$BACKUP_DIR/"
done

echo "Backup completed."

Explanation

  1. #!/usr/bin/env bash tells the system to run the script with Bash.
  2. Variables (SOURCE_DIR, BACKUP_DIR) hold paths.
  3. mkdir -p creates the backup folder if it doesn’t exist.
  4. The for loop iterates over each .log file.
  5. [ -f "$file" ] || continue skips if the pattern matches nothing.
  6. cp copies the file.
  7. A final message confirms completion.

Making It Executable

chmod +x backup_logs.sh

Running the Script

./backup_logs.sh

Advanced Example: Moving Largest Files to Backup

Below is a complete Bash script that finds the largest files in a directory and moves them to a backup folder. It demonstrates combining find, sort, and mv.

#!/usr/bin/env bash
# move_largest_files.sh – move top N largest files to a backup folder

# Configuration
TARGET_DIR="/home/user/projects"
BACKUP_DIR="/home/user/backup"
MAX_FILES=5          # Number of largest files to move

# Ensure backup directory exists
mkdir -p "$BACKUP_DIR"

# Find, sort, and move
find "$TARGET_DIR" -type f -printf '%s %p\n' | \
  sort -nr | \
  head -n "$MAX_FILES" | \
  while read -r size path; do
    echo "Moving $path ($size bytes) to $BACKUP_DIR"
    mv "$path" "$BACKUP_DIR/"
  done

echo "Finished moving $MAX_FILES files."

Walkthrough

  • find "$TARGET_DIR" -type f -printf '%s %p\n' lists all files with their size in bytes (%s) and full path (%p).
  • sort -nr sorts numerically (-n) in reverse (-r) so the largest files come first.
  • head -n "$MAX_FILES" picks the top N lines.
  • The while loop reads each line, extracts size and path, then moves the file.

This script can be scheduled with cron or run manually whenever disk space is tight.


Common Pitfalls and Trade‑offs

Pitfall Why It Matters Mitigation
Overusing aliases Scripts run on other machines may lack your aliases, leading to errors. Keep scripts self‑contained; avoid relying on aliases.
Hard‑coding paths A script that works on one machine may fail on another. Use variables, relative paths, or read input from the user.
Unprotected rm -rf Accidental deletion of critical data. Add safety checks (-i prompt, --no-preserve-root on Linux) or use trash-cli.
Neglecting case sensitivity grep may miss matches if case differs. Use -i for case‑insensitive searches when appropriate.
Assuming default options ls or grep behave differently across shells or locales. Specify options explicitly to guarantee consistent behavior.

Balancing speed against safety is essential. A quick manual check before running destructive commands can prevent irreversible damage.


Key Takeaways

  • The terminal is a fast, scriptable remote control for your computer.
  • Mastering cd, ls, and tree lets you navigate directories efficiently.
  • Aliases reduce typing fatigue; store them in shell config files and reload with source.
  • grep and awk are your best friends for searching and processing text.
  • Shell scripts automate repetitive tasks; use loops, variables, and safety checks.
  • The sample script that moves the largest files demonstrates combining find, sort, and mv into a powerful workflow.
  • Avoid hard‑coded paths, unchecked destructive commands, and over‑reliance on aliases to keep scripts portable and safe.