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
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.
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.
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.pngImageMagick'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.
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.
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-10Same 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:
- Build a top-10 referrer or top-10 anything in one line.
- Clean and dedupe a CSV without opening Excel.
- Batch-resize, rename, or convert a folder of creative.
- Confirm a UTM is firing without waiting on analytics.
- 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.