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.