Linux & Bash for Developers
Master the Linux command line and Bash scripting from the ground up, covering navigation, file management, process control, shell scripting, and system administration. By the end, you will build a fully automated deployment and monitoring script suite for a real project.
Course Content
6 modules · 30 lessonsLinux Fundamentals & File System
Navigate the Linux file system confidently and manipulate files and directories from the terminal.
What is Linux and why developers use it
Linux kernel, distributions, GNU/Linux, why Linux for development, Windows vs Linux differences, open-source ecosystem
Linux file system hierarchy explained
FHS standard, root directory, /etc /var /usr /home /tmp /bin, absolute vs relative paths, mount points
How to navigate directories in Linux terminal
cd, pwd, ls flags, pushd popd, tab completion, directory shortcuts, hidden files
Creating, copying, moving, and deleting files in Linux
touch, mkdir -p, cp flags, mv, rm -rf, wildcards, rename patterns, file vs directory operations
Linux file permissions and chmod explained
read write execute bits, user group other, octal notation, chmod symbolic mode, chown, sudo, permission denied errors
Text Processing & Searching
Read, search, filter, and transform text files using core Linux tools to process logs and config files efficiently.
How to read and view files in Linux terminal
cat, less, more, head, tail, tail -f, file sizes, wc, viewing binary files
grep command tutorial for searching files
grep syntax, -i -v -r -n -c flags, regex basics, egrep, fixed strings, grep with pipes, color output
How to use pipes and redirection in Bash
pipe operator, stdin stdout stderr, >, >>, 2>, 2>&1, /dev/null, tee command, command chaining
sed command for find and replace in Linux
sed syntax, s command, g flag, -i in-place editing, address ranges, delete lines, print specific lines, regex in sed
awk command tutorial for text processing
awk syntax, field separator, NR NF built-ins, print fields, conditionals in awk, BEGIN END blocks, sum and aggregate
Bash Scripting Fundamentals
Write real Bash scripts using variables, conditionals, loops, and functions to automate repetitive development tasks.
How to write your first Bash script
shebang line, script permissions, script execution, bash vs sh, comments, exit codes, script structure
Bash variables and how to use them
variable assignment, quoting rules, environment variables, readonly, unset, command substitution, arithmetic, special variables $0 $1 $#
Bash if else and conditional statements
if elif else syntax, test command, [ ] vs [[ ]], string comparison, numeric comparison, file tests -f -d -e, && || operators
Bash loops: for while and until explained
for loop syntax, C-style for loop, while loop, until loop, loop control break continue, looping over files, seq command, loop over array
Bash functions: how to write reusable code
function syntax, local variables, return values, function arguments, sourcing scripts, libraries, recursive functions
Process Management & System Monitoring
Monitor running processes, manage system resources, and use signals to control applications from the terminal.
How Linux processes work: PID, parent, and lifecycle
process definition, PID, PPID, fork-exec model, process states, init/systemd, zombie processes, orphan processes
Killing and signaling processes in Linux
kill command, SIGTERM SIGKILL SIGHUP SIGINT, kill -9 vs graceful shutdown, pkill killall, signals in scripts, trap command
How to monitor CPU and memory usage in Linux
top, htop, ps aux sorting, free command, vmstat, uptime, load average, memory types RSS VSZ, /proc filesystem
Background jobs and job control in Bash
background with &, jobs command, fg bg, nohup, disown, screen tmux overview, Ctrl+Z, process groups
How to check disk usage in Linux with df and du
df -h output, du -sh, find by size, disk inode limits, lsof for open files, ncdu, checking what fills disk
Networking & SSH Essentials
Use Linux networking tools to inspect connections, transfer files, and manage remote servers via SSH efficiently.
Linux networking commands every developer needs
ip addr, ifconfig, ping, traceroute, netstat, ss, hostname, /etc/hosts, DNS lookup with dig and nslookup
SSH tutorial: connect to remote servers securely
SSH client usage, key pair authentication, ssh-keygen, ssh-copy-id, ~/.ssh/config, port forwarding, ProxyJump, SSH agent
Transferring files with scp and rsync
scp syntax, rsync flags -avz, rsync --delete, dry run, bandwidth limit, partial transfers, rsync over SSH, exclude patterns
curl and wget for HTTP requests from terminal
curl GET POST, headers, authentication, follow redirects, output to file, wget recursive download, API testing with curl, JSON payloads
How to use firewall and iptables basics on Linux
iptables concepts, ufw for Ubuntu, allow deny rules, checking firewall status, opening ports, blocking IPs, persistent rules
Advanced Bash & Automation
Build production-grade automation scripts using arrays, error handling, cron jobs, and environment management.
Bash arrays and associative arrays explained
indexed arrays, array assignment, array access, array iteration, array length, associative arrays, declare -A, array slicing
Bash error handling with set -e, set -u, and traps
set -e exit on error, set -u undefined variables, set -o pipefail, set -x debug mode, trap ERR, || true pattern, defensive scripting
Cron jobs: how to schedule tasks in Linux
crontab syntax, minute hour dom month dow fields, crontab -e, system cron vs user cron, /etc/cron.d, CRON_TZ, common schedule examples, cron logging
Environment variables and .env files in Linux
export, env, printenv, .env file pattern, source command, dotenv in scripts, /etc/environment, profile vs bashrc vs bash_profile, secrets management basics
How to write production-ready Bash scripts
script header conventions, argument parsing with getopts, usage function, input validation, logging levels, locking with flock, idempotent scripts, shellcheck
