This course is in active development. Preview the scope below and create a free account to be notified the moment it goes live.
Linux Command Line
The Linux/Unix Command Line course teaches essential navigation, file management, text processing, piping, redirection, process control, and shell scripting, empowering learners to work efficiently in terminal environments for development and operations.
Who Should Take This
Software developers, DevOps engineers, and system administrators who are new to Linux or want to solidify their command-line skills will benefit. The course assumes no prior Linux experience and progresses from basic navigation to intermediate scripting. Learners aim to automate tasks, troubleshoot systems, and enhance productivity in daily workflows.
What's Included in AccelaStudy® AI
Course Outline
26 learning goals
1
File System and Navigation
2 topics
Navigation and File Operations
- Navigate the filesystem using pwd, cd (absolute paths, relative paths, ~, -, ..), and ls (-l, -a, -h, -R, -t), and describe the purpose of key directories in the Linux filesystem hierarchy (/, /home, /etc, /var, /usr, /tmp, /bin).
- Create, copy, move, rename, and delete files and directories using mkdir (-p), touch, cp (-r, -i), mv, rm (-r, -f, -i), and rmdir, predicting the result of operations on nested directory structures.
- Create and manage hard links and symbolic links using ln and ln -s, explaining the difference between them (inode sharing vs path reference) and predicting behavior when the target is moved or deleted.
Permissions and Ownership
- Interpret ls -l output including permission strings (rwxrwxrwx), and modify permissions using chmod with both symbolic (u+x, g-w, o=r) and octal (755, 644) notation for user, group, and other.
- Change file ownership with chown and chgrp, set the default permission mask with umask, and explain the special permission bits (setuid, setgid, sticky bit) and their security implications.
2
Text Processing
3 topics
Viewing and Basic Text Tools
- View file contents using cat, less (navigation: space, b, /, q), head (-n), and tail (-n, -f for following log files), and count lines, words, and bytes with wc (-l, -w, -c).
- Sort and deduplicate text using sort (-n, -r, -k, -u, -t for delimiter) and uniq (-c for counts, -d for duplicates), and extract fields from delimited text using cut (-d, -f) and paste.
Grep, Find, and Pattern Matching
- Search file contents using grep with options (-i case-insensitive, -r recursive, -v invert, -c count, -l files-only, -n line numbers, -E extended regex), constructing patterns with character classes, anchors, and quantifiers.
- Find files using find with predicates (-name, -iname, -type f/d, -size, -mtime, -perm) and actions (-exec, -print, -delete), combining predicates with -and, -or, -not for complex file searches.
Sed and Awk
- Use sed for stream editing: substitution (s/old/new/g with regex), deletion (d), insertion/append (i/a), address ranges (line numbers, regex), and in-place editing (-i), chaining multiple sed commands.
- Use awk for field-based text processing: field variables ($1, $2, $NF), field separator (-F), pattern-action rules, BEGIN/END blocks, built-in variables (NR, NF, $0), and basic arithmetic and string operations within awk programs.
3
Pipes, Redirection, and Command Composition
1 topic
I/O Redirection and Pipes
- Redirect stdout and stderr using >, >>, 2>, 2>&1, and &>, redirect stdin with <, and combine commands using pipes (|) to build data processing pipelines.
- Use tee to split output between a file and stdout, xargs to convert stdin into command arguments, and command substitution ($(...)) to embed command output within other commands.
- Compose multi-stage pipelines combining grep, sort, uniq, awk, cut, and other tools to extract, transform, and summarize data from log files and structured text, designing pipelines that are both correct and efficient.
4
Process Management
1 topic
Processes and Job Control
- List and inspect processes using ps (aux, -ef), top/htop, and explain process attributes (PID, PPID, user, state, CPU/memory usage), and terminate processes using kill with signals (SIGTERM 15, SIGKILL 9, SIGHUP 1).
- Manage shell jobs using & (background), Ctrl+Z (suspend), jobs, fg, bg, and nohup/disown to keep processes running after logout, and explain the relationship between foreground, background, and stopped states.
5
Shell Scripting
2 topics
Scripting Fundamentals
- Write shell scripts with the shebang line (#!/bin/bash), make them executable with chmod +x, use variables (assignment, expansion with $VAR and ${VAR}), and explain the difference between single quotes (literal), double quotes (variable expansion), and backticks/dollar-parens (command substitution).
- Implement control flow in shell scripts using if/then/elif/else/fi with test conditions ([ ] and [[ ]]), for loops (over lists, command output, file globs), while/until loops, and case/esac pattern matching.
- Define and call functions in shell scripts, process command-line arguments ($1, $2, $@, $#, shift), check exit codes ($?) for error handling, and use set -euo pipefail for robust script execution.
Environment and Configuration
- Manage environment variables using export, echo $PATH, and modify PATH, and explain the role of shell startup files (.bashrc, .bash_profile, .zshrc) including the difference between login and non-login, interactive and non-interactive shells.
- Create command aliases, use source to reload configuration, and customize the shell prompt (PS1) and environment for productive daily usage.
6
Networking, Archives, and System Management
3 topics
Networking and SSH
- Use ping for connectivity testing, curl for HTTP requests (GET, POST with -d/-X, headers with -H, output to file with -o), and wget for file downloads, and inspect network configuration with ip addr, ss, and hostname.
- Connect to remote systems using ssh, set up key-based authentication (ssh-keygen, ssh-copy-id, ~/.ssh/config), transfer files with scp and rsync, and manage SSH tunnels for secure port forwarding.
Archives and Package Management
- Create and extract archives using tar (-c, -x, -t, -z for gzip, -j for bzip2, -v, -f), compress/decompress with gzip/gunzip and zip/unzip, and choose the appropriate format for different archiving needs.
- Install, update, remove, and search for packages using apt (Debian/Ubuntu) or dnf (RHEL/Fedora), understand the role of package repositories, and manage system services with systemctl (start, stop, enable, disable, status).
Scheduled Tasks
- Schedule recurring tasks using crontab (-e to edit, -l to list) with the five-field time specification (minute, hour, day, month, weekday), write common cron expressions, and redirect cron job output for logging.
Scope
Included Topics
- File system navigation: pwd, ls (options: -l, -a, -h, -R, -t), cd, absolute vs relative paths, home directory (~), and the Linux filesystem hierarchy standard (/, /home, /etc, /var, /usr, /tmp, /bin, /sbin).
- File and directory operations: mkdir (-p), rmdir, touch, cp (-r, -i), mv, rm (-r, -f, -i), ln (hard links and symbolic links), and file (determining file type).
- File permissions: read/write/execute bits, user/group/other model, chmod (symbolic and octal notation), chown, chgrp, umask, setuid/setgid/sticky bit, and interpreting ls -l permission strings.
- Text processing: cat, less/more, head/tail (-n, -f), wc (-l, -w, -c), sort (-n, -r, -k, -u, -t), uniq (-c, -d), cut (-d, -f), tr, and paste.
- Pattern matching and search: grep (-i, -r, -v, -c, -l, -n, -E for extended regex), find (-name, -type, -size, -mtime, -exec, -print), locate, and basic regular expression syntax for grep.
- Stream processing with sed and awk: sed (substitution s/old/new/g, deletion d, in-place editing -i, address ranges) and awk (field processing, BEGIN/END blocks, pattern-action, built-in variables NR/NF/$0/$1).
- Pipes, redirection, and command composition: stdout/stderr/stdin (file descriptors 0, 1, 2), output redirection (>, >>), input redirection (<), pipes (|), tee, command substitution ($(...)), and xargs.
- Process management: ps (aux, -ef), top/htop, kill (signals: SIGTERM, SIGKILL, SIGHUP), jobs, bg, fg, nohup, &, and understanding process states and PIDs.
- Shell scripting basics: shebang (#!/bin/bash), variables, quoting (single vs double quotes, command substitution), if/then/else/fi, for/while loops, case statements, functions, exit codes ($?), and script arguments ($1, $@, $#).
- Environment and configuration: environment variables (export, PATH, HOME, USER), shell startup files (.bashrc, .bash_profile, .zshrc), alias, source, and the difference between login and non-login shells.
- Archiving and compression: tar (create -c, extract -x, list -t, compress -z/-j, verbose -v), gzip/gunzip, zip/unzip, and common archive workflows.
- Networking basics: ping, curl (GET, POST, headers, -o), wget, ssh (login, key-based auth, ssh-keygen, ssh-copy-id, config file), scp, and basic network inspection (ip addr, ss/netstat, hostname, dig/nslookup).
- Scheduled tasks: crontab (-e, -l) syntax (minute, hour, day, month, weekday), common cron patterns, and systemd timers as a modern alternative.
- Package management: apt (update, upgrade, install, remove, search) on Debian/Ubuntu and dnf/yum on RHEL/Fedora, understanding repositories, and basic systemd service management (systemctl start, stop, enable, status).
Not Covered
- Linux kernel internals, kernel compilation, and kernel module development.
- System administration at the enterprise level: LDAP, Kerberos, NFS, RAID configuration, and storage management.
- Container runtimes (Docker, Podman) and orchestration (Kubernetes) beyond awareness.
- Desktop Linux, window managers, display servers (X11, Wayland), and GUI applications.
- Security hardening, SELinux/AppArmor policy authoring, and firewall rule management (iptables/nftables) beyond basic awareness.
- Programming language runtimes, compilers, and build systems beyond shell scripting.
Linux Command Line is coming soon
Adaptive learning that maps your knowledge and closes your gaps.
Create Free Account to Be Notified