Prerequisites · 10 min read

Linux & Ubuntu CLI

Commands you will need during the labs.

Commands you'll actually use

A short, opinionated cheat sheet of the Ubuntu commands the labs and real-world DRM ops use most.

Files & navigation

ls -la                    # list with hidden + permissions
find . -name "*.mpd"      # locate manifests
tree -L 2                 # directory overview (apt install tree)
du -sh ./*                # disk usage per top-level

Networking

ss -tlnp                  # listening TCP ports + processes
ss -tunap | grep :443     # current connections to/from 443
curl -v https://license.example/get   # full request/response trace
curl --data-binary @req.bin -o resp.bin -H "Content-Type: application/octet-stream" \
     https://license.example/get      # POST a binary licence request
nslookup license.example.com          # DNS sanity
ping -c 4 license.example.com         # reachability
mtr -n license.example.com            # path + latency to host

TLS

openssl s_client -connect license.example.com:443 -servername license.example.com   # see cert chain
curl -v --cacert custom-ca.pem https://license.example/get                          # use a custom CA

Logs

journalctl -u my-license-service -f       # follow systemd unit logs
tail -F /var/log/nginx/access.log         # CDN / front-end access log

Process / system

ps -ef | grep license
top                       # interactive
htop                      # better top (apt install htop)
dmesg | tail -50          # kernel messages
free -h                   # memory
df -h                     # disk

Useful one-liners

# Show the system ID UUID inside an MPD
grep -oE 'edef8ba9-[a-f0-9-]+' manifest.mpd

# Decode a base64 PSSH on stdin
base64 -d | xxd | head

# Sanity-check JSON returned from a token endpoint
curl -s "$URL" | jq .

Why Ubuntu specifically

The CWIP overview names Ubuntu as the supported OS. The labs run there. SDK packaging may target specific Ubuntu LTS versions.

If you usually live on macOS or another distro, spend an hour in an Ubuntu VM before class. The reason isn't the commands — most are portable — it's the package paths, systemd units, and where logs live.

No questions yet for linux-cli. Add some in content/questions/linux-cli.json.