All Guides
Shell Scripting
- Improving Shell Script Reliability And Robustness
- Securing Shell Scripts From Arbitrary Code Execution
- Exploring Shell Control And Redirection Operators For Effective Command Chaining
- Adopting Structured Data Passing In Shells And Utilities
- Revisiting Shell Language Design For Modern Text Processing
- Understanding And Preventing Command Injection Vulnerabilities In Shell Scripts
- Best Practices For Quoting And Bracing Shell Variables
- Exploring The Security Implications Of Setuid On Shell Scripts
- When To Use Aliases, Functions, And Scripts In Linux And Unix Shells
- Job Control Techniques For Suspended Ssh Processes
- Quoting Variables In Shell Scripts: To Quote Or Not To Quote
- Portability Concerns With Shell Variable Expansions
- Leveraging Scripting Languages For Math On Linux Command Line
- Troubleshooting Login Vs Non-Login Shells On Linux
- Securing Your Linux System Through Proper Shell Configuration
- Reattaching Disowned Processes In Linux And Unix
- Using Case Statements To Simplify Conditional Logic
- Whitespace Matters: Avoiding Syntax Errors In Bash Conditionals
- Combining Multiple Conditions In Bash Script Conditionals
- When And Why To Use Interactive Vs Non-Interactive Shells
- When To Use Braces Vs No Braces For Shell Variables
- Tmux For Session Sharing And Process Reattachment
- Shell Tricks: Native Regular Expression Escaping In Zsh, Ksh93 And Fish
- Properly Escaping Regex Metacharacters When Interpolating Variables Into Sed Substitutions
- Backticks In Shell Scripts: Deprecated But Not Going Away
- Portable Shell Scripting: Write Once, Run Anywhere
- Nested Command Substitution: Backticks Fail Where $() Succeeds
- Csh/Tcsh: Backticks Still Relevant Despite $(…) Dominance
- Brace Expansion, Variable Expansion And Evaluation Order In Bash: Demystified
- Bash Brace Expansion Limitations And Workarounds For Dynamic Ranges
- Using Variables In Bash Brace Expansion: Best Practices And Alternatives
- Demystifying The Double Dash: Understanding — In Linux Commands
- Tips For Gracefully Handling Errors In Sed Scripts
System Administration
- Disk Usage 101: An Intro To Du, Df, And Tools For Analyzing Storage Utilization
- Managing Terminals And Consoles
- Demystifying Disk Space Usage: A Deep Dive Into Blocks, Inodes And File System Overhead
- Finding Hidden Space Hogs: Identifying Deleted But Open Files And Other Disk Usage Oddities
- Comparison Of Different Unix Shells
- Securing Linux Systems Against Common Vulnerabilities And Exploits
- Tuning Linux For Optimal Performance On Modern Hardware
- Hardening Linux Against Environment Variable Attacks
- Evaluating Sudo As A Secure Alternative To Setuid
- Unix Capabilities: A More Granular Approach To Privileges
- Securing Unix Systems: Best Practices And Common Pitfalls
- Unix File System Performance: Benchmarking And Optimization
- Troubleshooting Techniques For Common Linux Boot Problems
- Moving Running Processes Between Terminals With Reptyr
- Using Gnu Screen To Pause And Resume Remote Sessions
- Balancing Security And Usability For Multi-User Unix Systems
- The Complexities Of Path Resolution In Unix-Like Systems
- Exploring Integer And Floating Point Math Options On Linux Command Line
- A Comparison Of Linux Math Tools For Command Line Calculations
- Redirecting Output To Files You Don’T Have Write Permissions For
- Securing X11 Forwarding And Remote Access With Xhost And Xauthority
- Automating Retrieval Of Remote Display And Xauthority For Seamless X11 Forwarding
- Headless Server X11 Forwarding To Local Display Using Ssh Port Tunneling
- Best Practices For Safer In-Place File Editing On Unix Systems
- Hardening Linux Systems Against Common Security Threats
- Migrating From Commercial Unix Variants To Linux Or Freebsd
- Managing Software Packages And Dependencies On Linux And Bsd Systems
Interoperability
- Avoiding Common Regular Expression Portability Pitfalls Between Linux Distributions
- Understanding Posix Standards For Basic, Extended, And Perl-Compatible Regular Expressions
- Common Shell Glob/Wildcard Syntax On Linux – When To Use Vs Regular Expressions
- Demystifying Regular Expression Syntax Differences Across Linux/Unix Tools
- Interoperability Between Linux And Bsd: Networks, File Systems, And Applications
Command Line Tools
- Find: Hidden Dangers Of Embedding {} In Shell Code
- Protecting Special Characters In Filenames With Find -Exec
- Safe Usage Of Find -Exec And Command Injection Vulnerabilities
- Quoting And Filename Handling In Find -Exec
- Avoiding Code Injection With Find And Xargs
General Unix Questions
- Demystifying Keyboard Input And Text Output In Unix Systems
- Network Transparency: The Challenges Of Remote Unix Applications
- Escaping Arbitrary Input For Safe Use In Sed Regular Expressions
- Quoting And Encoding: Best Practices For Handling Untrusted Strings
- Troubleshooting Common Linux Boot Issues
- Migrating Legacy Unix Systems To Modern Linux
- Man Page Organization History: Sections Origins From Early Unix
- Creating Useful Man Pages For Custom Scripts And Programs
- Locating Man Pages Across Languages And Sections On Linux
- Man Page Sections Explained: A Guide For Linux Users
- Demystifying The Numbers In Linux Man Pages
- Swapping Flaky Wi-Fi Adapters For Reliable Atheros Or Intel Cards On Linux
- Tweaking Settings To Improve Realtek Wi-Fi Adapter Performance On Linux
- Setting Up A Home Wi-Fi Access Point With Openwrt
- Choosing Compatible Wi-Fi Hardware For Linux: A Guide
- Troubleshooting Wi-Fi Stability With Realtek Usb Adapters On Linux
Sed and Regular Expressions
Using Basic Vs. Extended Regular Expressions In Sed
Emulating Gnu Sed Functionality On Macos
Ensuring Sed Portability Between Linux And Macos
Binaries and Libraries
Setting Up 32-Bit Runtime Support In 64-Bit Debian/Ubuntu Chroots
Troubleshooting Missing Libraries And Loaders When Running Binaries In Chroots
Handling Loader And Binary Architecture Mismatches On Linux
Find Command
Demystifying Find’s Powerful -Exec Option
When And How To Use -Execdir With Find
Using Find’s -Exec For Complex Batch Renaming Tasks
Environment Management
Managing Complex Software Environments On Linux
Printing and Output
When To Use Printf Instead Of Echo For Printing Variables To Avoid Pitfalls
Achieving Posix/Unix Compliance: Configuring Echo In Different Shells
System Performance and Optimization
Tuning Linux For Optimal Application Performance
Tackling Performance Bottlenecks In Inter-Process Communication
Linux Virtualization and Containers
Advancing Linux Virtualization For Cloud And Container Workloads
Linux Kernel and Security
Improving Linux Security Through Better Access Control Configuration
Hardening The Linux Kernel Against Exploits And Vulnerabilities
Filesystems
Improving Security And Stability Through Filesystem Enhancements
Terminals and Encoding
Lost In Translation: Keyboard Layouts And Character Encoding In Terminals
The Terminal Emulator Divide: Feature Disparities Across Unix Platforms
Linux Architecture and Layers
The Layers Between Hardware And Software: Kernel, Servers And Abstraction
Filesystems
Tuning Linux File Systems For Optimal Performance
Going Beyond Bind Mounts: Advanced Overlay Filesystems
Exploring Bind Mounts: What They Are And How To Use Them
Networking
Innovations In Linux Networking For High Speed And Low Latency
Permissions & Security
Troubleshooting File Permission Errors On Linux And Unix Systems
Linux File Ownership And Permissions: Users, Groups, And Others
Demystifying Unix File Permissions And The Chmod Command
Selinux And Extended File Attributes: Powerful But Often Overlooked
Making Sense Of Linux File Permissions: Chmod, Setfacl, And More
Bash
- Bash Read Command Tips For Robust Variable Assignment
- Common Pitfalls When Assigning Output To Variables In Bash
- When To Use $(…) Vs Backticks For Command Substitution
- Mastering Command Substitution In Bash For Variable Assignment
- Best Practices For Configuring Interactive Shell Sessions
- Using Pam To Configure A Common Environment For All Shells
- Understanding Which Dotfiles Different Shells Source On Login
- Leveraging ~/.Profile For Portable Shell Configuration
- Unifying Shell Configuration Across Bash, Zsh, And Other Shells
- Combining Find And Shell Commands With -Exec