Who Should Take This
It is ideal for software engineers, DevOps specialists, and data analysts who already use the terminal and want to automate routine tasks. Learners should be comfortable with basic command‑line commands and aim to write reliable scripts that integrate with Unix tools.
What's Included in AccelaStudy® AI
Adaptive Knowledge Graph
Practice Questions
Lesson Modules
Console Simulator Labs
Exam Tips & Strategy
20 Activity Formats
Course Outline
65 learning goals
1
Navigation & File Operations
4 topics
File System Navigation
- Describe the Unix file system hierarchy (/, /home, /etc, /usr, /var, /tmp) and explain the role of each top-level directory
- Navigate the file system using cd, pwd, and ls with common flags (-la, -R, -h) and interpret directory listing output including permissions, ownership, and timestamps
- Use absolute and relative paths effectively and explain the meaning of . (current), .. (parent), ~ (home), and - (previous) directory shortcuts
File and Directory Management
- Create, copy, move, and remove files and directories using mkdir, cp, mv, and rm with appropriate flags (-r, -i, -p, -f)
- Create and manage symbolic and hard links using ln and explain the difference between link types in terms of inode references and cross-filesystem behavior
- Use find with expressions (-name, -type, -size, -mtime, -exec) to locate files matching complex criteria and perform batch operations on results
Permissions and Ownership
- Describe the Unix permission model (read, write, execute for owner, group, others) and interpret permission strings and octal notation
- Modify file permissions using chmod with both symbolic and octal modes and change ownership using chown and chgrp
- Analyze how umask, setuid, setgid, and the sticky bit affect file creation defaults and execution privileges in multi-user environments
File Viewing and Compression
- Use cat, less, more, and file to view file contents, page through large files, and identify file types by examining magic bytes and metadata
- Create and extract compressed archives using tar, gzip, bzip2, and zip and describe the differences between archiving and compression
- Evaluate compression ratio, speed, and compatibility trade-offs between gzip, bzip2, xz, and zstd for different file sizes and use cases
2
Text Processing
4 topics
Pattern Searching with grep
- Use grep to search for literal strings and basic regular expressions in files and describe common flags (-i, -r, -n, -l, -c, -v, -E)
- Construct extended regular expressions with character classes, quantifiers, anchors, and alternation to match complex text patterns
- Analyze the performance trade-offs between grep, egrep, and fgrep and evaluate when to use each variant for different search scenarios
Stream Editing with sed
- Describe the sed processing model (read line, apply commands, output) and perform basic substitutions using the s/pattern/replacement/ command
- Apply sed commands for line deletion, insertion, text transformation, and in-place file editing using address ranges and regular expressions
- Evaluate when sed is the appropriate tool versus alternatives like awk or perl for text transformation tasks based on complexity and maintainability
Data Processing with awk
- Describe the awk pattern-action model and use built-in variables ($0, $1, NF, NR, FS, OFS) to extract and format columnar data
- Write awk programs with pattern matching, field extraction, arithmetic operations, and formatted output to process structured text data
- Implement awk scripts using BEGIN/END blocks, arrays, and control flow statements to aggregate and summarize multi-line data sets
Text Utilities
- Use sort, uniq, cut, paste, and tr to rearrange, deduplicate, extract columns, merge files, and transliterate characters in text streams
- Apply wc, head, tail, and diff to count content, preview file sections, and compare file contents for differences
- Analyze how to combine multiple text processing utilities in a pipeline to solve data extraction and transformation problems efficiently
3
Pipes & Redirection
3 topics
I/O Redirection
- Describe the three standard file descriptors (stdin, stdout, stderr) and explain how the shell connects them to terminals, files, and other processes
- Redirect stdout and stderr to files using >, >>, 2>, and &> operators and combine or separate error and output streams
- Use here-documents (<<) and here-strings (<<<) to provide inline input to commands and scripts
Pipes and Command Chaining
- Construct multi-stage pipelines using the | operator to chain command output as input to subsequent commands
- Use tee to duplicate pipeline output to both a file and the next command in the chain simultaneously
- Apply command chaining operators (;, &&, ||) to control sequential execution based on success or failure of preceding commands
- Use process substitution (<() and >()) to treat command output as file arguments and analyze how it differs from standard piping
xargs and Command Composition
- Use xargs to convert piped input into arguments for commands that do not read from stdin and apply -0 for null-delimited input handling
- Evaluate when to use xargs versus find -exec versus shell loops for batch file processing based on performance and safety considerations
4
Shell Variables & Scripting
4 topics
Variables and Parameter Expansion
- Declare and use shell variables, distinguish between local and environment variables, and explain quoting rules for single quotes, double quotes, and backticks
- Apply parameter expansion operators (${var:-default}, ${var:+alt}, ${var#pattern}, ${var%pattern}, ${#var}) for string manipulation and default values
- Use command substitution ($() and backticks) and arithmetic expansion ($(( ))) to capture command output and perform calculations within scripts
Control Flow and Conditionals
- Write if/elif/else conditional statements using test expressions ([ ], [[ ]]) for string, numeric, and file-based comparisons
- Implement for loops, while loops, and until loops to iterate over lists, file contents, and numeric ranges in shell scripts
- Use case statements for multi-branch pattern matching and analyze when case is preferable to nested if/elif chains
Functions and Script Structure
- Define and invoke shell functions with positional parameters ($1, $2, $@, $#) and return values using return codes and stdout capture
- Write complete shell scripts with shebang lines, argument parsing (getopts), error handling (set -euo pipefail), and usage messages
- Evaluate shell script best practices including quoting discipline, portability across shells, and defensive coding patterns to prevent common scripting bugs
Debugging and Testing Scripts
- Apply debugging techniques using set -x (trace mode), set -v (verbose mode), and trap to diagnose script execution issues
- Analyze exit codes, error propagation in pipelines (PIPESTATUS), and signal handling with trap to build robust error recovery in scripts
5
Process Control & Job Management
3 topics
Process Inspection
- Describe the Unix process model including process IDs, parent-child relationships, and the process lifecycle (fork, exec, wait, exit)
- Use ps, top, and htop to inspect running processes and interpret output fields including PID, CPU usage, memory consumption, and process state
- Analyze process trees using pstree and identify resource-intensive processes using sorting and filtering in top and ps output
Signals and Process Termination
- List common Unix signals (SIGTERM, SIGKILL, SIGINT, SIGHUP, SIGSTOP, SIGCONT) and describe the default behavior triggered by each
- Send signals to processes using kill and killall and evaluate the difference between graceful termination (SIGTERM) and forced termination (SIGKILL)
Job Control and Background Execution
- Use bg, fg, jobs, and the & operator to manage foreground and background job execution within a shell session
- Apply nohup, disown, and screen/tmux basics to run long-running processes that survive terminal disconnection
- Evaluate the differences between job control in interactive shells versus non-interactive scripts and determine when to use background processes versus subshells
6
Environment Configuration
4 topics
PATH and Environment Variables
- Describe how the PATH variable controls command resolution and explain the order in which directories are searched for executables
- Modify PATH and other environment variables (HOME, USER, SHELL, LANG) and use export to make variables available to child processes
- Analyze the difference between login shells and non-login shells and determine which configuration files are sourced in each context
Shell Configuration Files
- Identify the purpose of .bashrc, .bash_profile, .zshrc, and .profile and describe the execution order during shell startup
- Configure shell aliases, custom prompts (PS1), shell options (shopt, setopt), and command-line completion to personalize the shell environment
- Evaluate strategies for maintaining portable shell configuration across Bash and Zsh and managing dotfiles with version control
Command History and Efficiency
- Use command history features (history, !!, !n, Ctrl-R reverse search, history expansion) to recall and re-execute previous commands efficiently
- Configure HISTSIZE, HISTFILESIZE, HISTCONTROL, and HISTIGNORE to control history behavior, deduplication, and sensitive command exclusion
- Apply tab completion, glob expansion, and brace expansion to minimize keystrokes and reduce errors when specifying file paths and command arguments
- Describe how CDPATH, directory stacks (pushd, popd, dirs), and shell bookmarks accelerate navigation in projects with deep directory structures
Remote Access and Multiplexing
- Use SSH to connect to remote systems, execute remote commands, and transfer files using scp and rsync for secure remote operations
- Apply tmux or screen to create persistent terminal sessions with multiple windows and panes that survive disconnection from remote hosts
- Evaluate the benefits of terminal multiplexers for managing concurrent workflows and compare tmux session, window, and pane management commands
Scope
Included Topics
- File system navigation (cd, ls, pwd, find, locate), file and directory operations (cp, mv, rm, mkdir, chmod, chown, ln), text processing tools (grep, sed, awk, cut, sort, uniq, tr, wc), pipes and I/O redirection (stdin, stdout, stderr, pipe chaining, tee, process substitution), shell variables, parameter expansion, and scripting constructs (if/else, for, while, case, functions), process management (ps, top, kill, bg, fg, jobs, nohup, signals), environment configuration (.bashrc, .zshrc, PATH, aliases, shell options)
Not Covered
- PowerShell and Windows command prompt
- Advanced Zsh plugins and frameworks (oh-my-zsh internals)
- System administration tasks (user management, systemd, cron beyond basics)
- Programming languages invoked from shell (Python, Perl scripts)
- Network administration tools (iptables, netstat beyond basic usage)
- Containerization and orchestration CLI tools
Ready to master Command Line Shell Scripting?
Adaptive learning that maps your knowledge and closes your gaps.
Subscribe to Access