3 frequency levels:
daily — you type these every day, learn them by heart. If you know these, you’ll be fine.
occasional — useful regularly, you’ll come back here to look them up when needed.
rarely — you’ll need these once or twice, mostly for setup or cleanup.
Words between <angle brackets> are placeholders — replace them with your own value.
Example: git checkout -b <branch> → git checkout -b feature/login
Command Description Frequency git statusSee the current state daily git add .Stage everything daily git commit -m "<message>"Commit daily git pushPush to the remote daily git pullPull from the remote daily git checkout -b <branch>Create and switch to a branch daily git log --onelineCompact history occasional git merge <branch>Merge a branch occasional git initInitialize a repo rarely git branch <branch>Create a branch (without switching to it) rarely
Command Description Frequency ls -laList everything (including hidden files) daily cd <path>Move to a directory daily cat <file>Read a file daily mkdir -p <path>Create directories recursively daily grep -r "<text>" <directory>/Search for text daily sudo apt update && sudo apt install -y <package>Install a package (e.g. curl, git) daily pwdShow current directory occasional nano <file>Edit a file in the terminal occasional rm -r <directory>Delete (recursive) occasional cp -r <source> <destination>Copy (recursive) occasional mv <source> <destination>Move / rename occasional chmod 755 <file>Change permissions occasional export <VAR_NAME>="<value>"Set an environment variable occasional ps auxList processes occasional kill <PID>Kill a process (PID = number shown by ps aux) occasional find . -name "*.py"Search for files rarely chown <user>:<group> <file>Change the owner rarely systemctl start/stop/status <service>Manage a service (e.g. nginx, docker) rarely whoamiShow current user rarely printenvList environment variables rarely journalctl -u <service>View logs for a service rarely
Command Description Frequency curl <URL>HTTP request (e.g. curl http://localhost:8000/api/tasks) daily ss -tlnpOpen ports occasional ping <host>Test connectivity (e.g. ping google.com) occasional curl -I <URL>View headers occasional dig +short <domain>Resolve a DNS (e.g. dig +short google.com) rarely wget <URL>Download a file rarely hostname -IView your private IP rarely curl ifconfig.meView your public IP rarely traceroute <host>Network path rarely sudo ufw allow <port>Open a port (e.g. sudo ufw allow 8000) rarely sudo ufw enableEnable the firewall rarely sudo ufw statusView the rules rarely
Method What it does Example GETRead a resource curl http://localhost:8000/api/tasksPOSTCreate a resource curl -X POST -H "Content-Type: application/json" -d '{"title":"..."}' http://localhost:8000/api/tasksPATCHUpdate an existing resource curl -X PATCH http://localhost:8000/api/tasks/1PUTUpdate an existing resource (not used in this project) DELETEDelete curl -X DELETE http://localhost:8000/api/tasks/1
PATCH vs PUT: to keep it simple, both are used to update data that already exists . The technical difference: PATCH only modifies the fields you send, PUT replaces the entire resource. In practice, many APIs use one or the other interchangeably. In this course we use PATCH — if you see PUT elsewhere, just think of it as the same idea.
Command Description Frequency docker compose up -d --buildStart with Compose daily docker compose downStop everything daily docker compose psView service status daily docker compose logs -fLogs for all services daily docker psRunning containers daily docker logs -f <container>Follow a container’s logs daily docker exec -it <container> bashEnter a container occasional docker build -t <name>:<tag> .Build an image (e.g. docker build -t my-app:1.0 .) occasional docker stop <container>Stop a container occasional docker rm <container>Remove the container occasional docker ps -aAll containers (including stopped ones) occasional docker run -d -p <host_port>:<container_port> --name <name> <image>Run a container without Compose rarely docker rmi <image>Remove the image rarely docker pull <image>Download an image (e.g. docker pull postgres:16) rarely docker imagesList local images rarely docker system dfView disk space used by Docker rarely docker system prune -aClean up unused images/containers rarely
Command Description Frequency bun installInstall dependencies daily bun run devStart the dev server daily bun run buildBuild for production occasional bunx oxlint .Run the linter occasional
Bun replaces npm + Node.js. The equivalent npm commands: npm install, npm run dev, npx oxlint .
Command Description Frequency uv syncInstall dependencies daily uv run uvicorn main:app --reloadStart the backend server daily uv run pytestRun the tests daily uv run ruff check .Run the linter occasional uv add <package>Add a dependency (e.g. uv add fastapi) rarely
uv replaces pip + venv. The equivalent commands: pip install -r requirements.txt, python -m pytest
- uses : actions/checkout@v4
Concept Syntax Secret ${{ secrets.<SECRET_NAME> }}Dependency between jobs needs: <job_name>Condition if: github.ref == 'refs/heads/main'
Command Description Frequency aws ec2 describe-instancesList instances daily aws ec2 stop-instances --instance-ids <ID>Stop (e.g. --instance-ids i-0abc123) daily aws ec2 start-instances --instance-ids <ID>Start daily aws s3 cp <file> s3://<bucket>/Upload occasional aws s3 ls s3://<bucket>/List bucket contents occasional aws ec2 terminate-instances --instance-ids <ID>Permanently delete occasional aws configureConfigure credentials rarely aws s3 mb s3://<bucket>Create a bucket rarely aws rds describe-db-instancesList RDS databases rarely aws rds delete-db-instance --db-instance-identifier <ID> --skip-final-snapshotDelete an RDS database rarely aws lambda list-functionsList Lambda functions rarely aws lambda invoke --function-name <NAME> output.jsonInvoke a Lambda rarely aws lambda delete-function --function-name <NAME>Delete a Lambda rarely
Command Description Frequency terraform planPreview daily terraform applyApply daily terraform initInitialize (download providers) occasional terraform destroyDelete everything occasional terraform fmtFormat the code occasional terraform validateCheck the syntax rarely terraform state listView managed resources rarely
Command Description Frequency ansible-playbook -i <inventory> <playbook>.ymlRun a playbook daily ansible -i <inventory> <hosts> -m pingTest the connection occasional ansible-playbook -i <inventory> <playbook>.yml --checkDry run occasional ansible-vault encrypt <file>Encrypt a file rarely
Command Description Frequency kubectl get podsList pods daily kubectl get servicesList services daily kubectl logs <pod>View logs daily kubectl apply -f <file>.ymlApply a config daily kubectl describe pod <pod>Pod details occasional kubectl get deploymentsList deployments occasional kubectl delete -f <file>.ymlDelete occasional kubectl scale deployment <name> --replicas=<N>Scale (e.g. --replicas=3) occasional kubectl rollout status deployment/<name>Track a deployment rarely kubectl get namespacesList namespaces rarely kubectl set image deployment/<name> <container>=<image>:<tag>Update the image rarely minikube startStart the local cluster rarely minikube stopStop the local cluster rarely minikube image load <image>Load a local image into minikube rarely minikube service <name> --urlGet a service’s URL rarely
Command / URL Description Frequency http://localhost:9090Prometheus UI daily http://localhost:3001Grafana UI daily curl http://localhost:8000/metricsView raw metrics occasional rate(<metric>[1m])Rate per second (PromQL) rarely histogram_quantile(0.95, ...)95th percentile (PromQL) rarely docker compose up -d (with prometheus.yml)Start Prometheus + Grafana rarely