For marketers

Stop waiting on engineering for a one-line answer.

Your campaign data is in a CSV. Your landing page logs are on a server. Your creative assets are in a folder of two hundred PNGs. The fastest path through all three is the terminal — and most of what you will need is a handful of commands you can learn in an afternoon. learn-terminal teaches those commands in a browser, against real practice files, with no install and no developer permissions to request.

Why marketers actually need this

Marketing operations is half about asking the right question and half about getting an answer in less than a week. Engineering can pull a daily-signups query for you — and you can also run it yourself in twenty seconds, on a CSV they already dropped in shared storage. That is the unlock. The terminal is not about becoming technical; it is about cutting your dependency cycle from days to minutes, on the questions that drive what you ship next.

It is also the shortest path to readable analytics. Web logs, ad-platform exports, CRM dumps — they all arrive as files. A few commands and you can answer what is bouncing, what is converting, and what the campaign actually moved. The course does not assume you know awk; it teaches you the one or two patterns marketers actually use, then sends you back to your real work armed with them.

What you can do by the end

  1. Find the top referring URLs from an access log

    tty/example · marketers
    $ awk '{print $11}' access.log | sort | uniq -c | sort -rn | head
       1247 "https://twitter.com/i/web/status/..."
        812 "https://news.ycombinator.com/"
        603 "https://google.com/search?q=..."

    The classic top-N pipeline. Extract column eleven (the referrer), count occurrences, sort by count descending, take the top ten. One line replaces half an hour in a BI tool, and it works on any log format once you know the column.

  2. Dedupe a mailing-list export

    tty/example · marketers
    $ wc -l raw-list.csv
    4812 raw-list.csv
    $ sort -u raw-list.csv > clean-list.csv
    $ wc -l clean-list.csv
    4203 clean-list.csv

    sort -u removes duplicate rows. Save to a new file (always — never overwrite a source). Six hundred and nine dupes gone. Re-upload the clean file and the sequence sends what it was supposed to send.

  3. Batch-resize hero images for the web

    tty/example · marketers
    $ for f in *.png; do magick "$f" -resize 1200x "${f%.png}-web.png"; done
    $ ls *-web.png
    hero-web.png  product-web.png  testimonial-web.png

    ImageMagick's magick command (or sips on macOS) resizes in place. The loop runs through every PNG and writes a -web variant — same pattern you would use for a thumbnail batch or a social-card set.

  4. Confirm a campaign UTM is firing

    tty/example · marketers
    $ grep "utm_campaign=spring-launch" access.log | wc -l
    1842
    $ grep "utm_campaign=spring-launch" access.log | tail -3
    2026-05-11 11:14 GET /signup?utm_campaign=spring-launch

    First command counts hits, second shows the last three. Within a minute you know whether the campaign tag is wiring through and what the most recent landings look like — without waiting on the analytics dashboard to refresh.

  5. Pull a quick daily traffic breakdown

    tty/example · marketers
    $ awk '{print $1}' access.log | sort | uniq -c
       23018 2026-05-08
       19422 2026-05-09
       41187 2026-05-10

    Same pattern as the referrer query — extract, sort, count. Now you have a daily series you can paste into a slide or a Slack post, with no detour through anyone else.

What you'll be able to do

By the time you finish the course, you will be able to:

  1. Build a top-10 referrer or top-10 anything in one line.
  2. Clean and dedupe a CSV without opening Excel.
  3. Batch-resize, rename, or convert a folder of creative.
  4. Confirm a UTM is firing without waiting on analytics.
  5. Stop blocking on engineering for one-line questions.

Lessons marketers tend to start with

Start with lesson 1

The first lesson takes about five minutes and runs entirely in your browser. No install, no signup, nothing to break. You will close the tab knowing where you are, what a command looks like, and what to read next.

Also for