Skip to main content
Back to top
Ctrl
+
K
Think Bash
Think Bash
The Shell and the System
1. Terminal & System
1.2. Unix History & Design
1.3. Terminal Navigation
1.4. Kernel & Shell
1.5. Filesystem Hierarchy
1.6. Lab: Exploring Your System
2. Filesystem Essentials
2.1. Advanced Navigation
2.2. File Management
2.3. File Attributes & Links
2.4. Hidden Files & Config
2.5. Project Organization
2.6. Lab: Filesystem Practice
3. Permissions & Access
3.1. Users, Groups & Privileges
3.2. Permission Symbols
3.3. Umask & Defaults
3.4. Environment Variables
3.5. Lab: Permissions Management
4. Unix Utilities
4.1. Everything Is A File
4.2. Viewing Data
4.3. Searching & Filtering
4.4. Data Tools
4.5. Pipes & Redirection
4.6. Lab: Text Pipeline Analysis
Bash Programming
5. Bash Syntax & Variables
5.1. Syntax & Quoting
5.2. Variables & Expansion
5.3. Parameter Substitution
5.4. Arithmetic and String Operations
5.5. Lab: Bash Variables and Operations
6. Operators
6.1. Arithmetic
6.2. Comparison & Logic
6.3. String & File Tests
6.4. Expressions in Conditionals
6.5. Lab: Operator Practice
7. Control Flow
7.1. if/elif/else and case Statements
7.2. Loops: for, while, and until
7.3. Loop Control: break and continue
7.4. User Input & Arguments
7.5. Lab: Automation Scripts
8. Functions & Modularity
8.1. Defining Functions
8.2. Local vs Global
8.3. Return Values
8.4. Function Libraries
8.5. Lab: Modular Scripting
9. Text Processing
9.1. Standard Streams and File Descriptors
9.2. Advanced Redirection
9.3. awk & sed
9.4. Generating Reports
9.5. Lab: Parsing Structured Data
System Interaction
10. Processes
10.1. Process Management
10.2. Job Control
10.3. Memory & Disk
10.4. Process Monitoring & Performance
10.5. Lab: System Monitoring
11. Error Handling
11.1. Exit Codes
11.2. Options & Traps for Error Handling
11.3. Defensive Scripting
11.4. Logging & Errors
11.5. Lab: Debugging
12. Scheduling
12.1. Cron & At
12.2. Maintenance & Backup
12.3. Long-Running Tasks
12.4. Parallel Processing and Performance
12.5. Lab: Automated Reporting
13. Networking
13.1. Network Commands: Ping, Curl, and Wget
13.2. Secure File Transfer: SCP and Rsync
13.3. Remote Execution with SSH
13.4. Network Automation
13.5. Lab: Remote Sync & Networking
Advanced Topics
14. Arrays & Config
14.1. Arrays
14.2. Here-Documents
14.3. Shell Options and Subshells
14.4. Startup Files
14.5. Lab: Configuration & Data Structures
15. Capstone Project
15.1. 15.2 Project Design and Planning
15.2. 15.3 Scripts, Logs & Alerts
15.3. 15.4 Testing and Debugging the Project
15.4. 15.5 Packaging and Version Control
15.5. 15.6 Capstone Reflection
Appendices
A: Bash Cheat Sheet
B: Debugging Guide
C: POSIX vs Bash
D: Security
E: Further Reading
F: Version Control
Index