Name: Soham Ambore Enrollment Number: 24bcs10258
All seven homework topics, each in its own folder with its own README.md. Every command output committed here was actually executed — no output is fabricated. Each folder also contains the script that produced it and a full-transcript.txt of the unedited run, so anything can be reproduced.
| # | Topic | Folder | README |
|---|---|---|---|
| 1 | Git and GitHub | 01-git-github |
README.md |
| 2 | Linux Fundamentals | 02-linux-fundamentals |
README.md |
| 3 | Shell Scripting | 03-shell-scripting |
README.md |
| 4 | Networking | 04-networking |
README.md |
| 5 | Docker Fundamentals | 05-docker-fundamentals |
README.md |
| 6 | Docker Images | 06-docker-images |
README.md |
| 7 | Docker Networking | 07-docker-networking |
README.md |
git commit -a -m vs git commit -m demonstrated with a real failing commit, plus proof that -a silently skips untracked files. Cherry-pick performed across two branches with git log --graph showing the picked commit landing on main under a new SHA.
Run on Ubuntu 26.04 LTS (WSL2) with systemd enabled.
- Soft vs hard links — inode numbers, link counts, and the decisive test: deleting the original leaves the hard link working and the soft link dangling.
adduservsuseradd— both used;useraddleaves no home directory,addusercreates home, skel files, shell and group.journalctl— system logs, boot logs, per-unit logs, priority and time filters, disk usage.- Command cheat sheet — ~40 commands executed across navigation, files, search, permissions, processes, disk, archives and packages.
sysinfo.sh prints date, hostname, username, disk usage and running processes; uses variables throughout; takes input via read -p; creates a directory with mkdir and a file with touch; and writes ps -ef into that file with > redirection.
Every command run on Ubuntu with output and a written explanation of what it means: ip addr, ifconfig, ip route, ping, traceroute, dig, nslookup, host, ss, netstat, nc -z, curl, wget, ip neigh, arp.
Six Hello World web applications, each in its own folder with its own Dockerfile, all six built and verified HTTP 200: Node.js, Python, Java, Apache, React and Nginx.
Multi-stage Dockerfile serving "Hello World from Docker multi-stage build" on port 8080, verified with docker ps. Includes a measured comparison against a single-stage build of the same app: 441 MB → 6.87 MB, roughly 64× smaller.
Three containers across three networks with the backend attached to two, showing frontend→database isolation failing at the DNS layer. Plus host networking with Apache, a live-reloading bind mount, and a real overlay network on an initialised Swarm with a 2-replica service.
| Component | Version |
|---|---|
| Host OS | Windows 11 |
| Linux | Ubuntu 26.04 LTS on WSL2, kernel 6.18.33.2, systemd enabled |
| Docker | 29.7.2 (Docker Desktop, Linux containers) |
| Git | 2.51.1 |
- Two values were redacted before publishing: the machine's public IP (in
04-networking) and a Swarm join token (in07-docker-networking). 06-docker-imagesdocuments one assumption about the source repository — see the note at the top of that README.