linux-bash
Expert assistance with Linux bash commands, shell scripting, system administration, file operations, and command-line utilities. Use this when working with bash scripts, Linux system operations, or command-line tasks.
When & Why to Use This Skill
This Claude skill provides expert-level guidance for Linux Bash operations, shell scripting, and system administration. It empowers users to automate complex IT workflows, manage system resources efficiently, and perform advanced file and text processing using standard command-line utilities. By emphasizing best practices like error handling and script safety, it serves as a comprehensive resource for DevOps engineers and system administrators looking to optimize their command-line productivity.
Use Cases
- System Administration & Automation: Creating robust, production-ready shell scripts for automated backups, system updates, and routine maintenance tasks.
- Log Analysis & Text Processing: Utilizing powerful tools like grep, sed, and awk to parse large log files, extract specific data points, and generate system reports.
- Process & Resource Management: Monitoring system health using top/htop and managing background processes to ensure optimal server performance.
- DevOps & CI/CD Integration: Writing and debugging bash scripts for deployment pipelines, environment setup, and infrastructure orchestration.
- File System Operations: Executing complex file searches, batch permission modifications, and secure data archiving using tar and find.
| name | Linux Bash |
|---|---|
| description | Expert assistance with Linux bash commands, shell scripting, system administration, file operations, and command-line utilities. Use this when working with bash scripts, Linux system operations, or command-line tasks. |
Linux Bash
Expert guidance for Linux bash operations, scripting, and system administration.
Core Commands
File Operations
ls -lah- List files with details, including hiddenfind /path -name "pattern"- Find files by namegrep -r "pattern" /path- Recursive text searchchmod +x file- Make file executablechown user:group file- Change ownershiptar -czf archive.tar.gz dir/- Create compressed archivetar -xzf archive.tar.gz- Extract archive
Process Management
ps aux | grep process- Find running processestop/htop- Monitor system resourceskill -9 PID- Force kill processnohup command &- Run command in backgroundjobs- List background jobsfg %1- Bring job to foreground
System Information
df -h- Disk usage human-readabledu -sh dir/- Directory sizefree -h- Memory usageuname -a- System informationlsb_release -a- Distribution info
Text Processing
cat file | head -n 10- First 10 linestail -f log.txt- Follow log filesed 's/old/new/g' file- Replace textawk '{print $1}' file- Print first columnsort file | uniq- Remove duplicates
Shell Scripting Best Practices
Script Template
#!/bin/bash
set -euo pipefail # Exit on error, undefined vars, pipe failures
# Script description
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
main() {
# Your logic here
echo "Hello, World!"
}
main "$@"
Error Handling
# Check command success
if ! command -v tool &> /dev/null; then
echo "Error: tool not found" >&2
exit 1
fi
# Trap errors
trap 'echo "Error on line $LINENO"' ERR
Variables
# Constants (uppercase)
readonly CONFIG_FILE="/etc/app.conf"
# Variables (lowercase)
user_input="$1"
# Arrays
files=("file1.txt" "file2.txt")
for file in "${files[@]}"; do
echo "$file"
done
Common Patterns
Check if file exists
if [[ -f "file.txt" ]]; then
echo "File exists"
fi
Loop through files
for file in *.txt; do
echo "Processing $file"
done
Read user input
read -p "Enter value: " user_value
Function definition
my_function() {
local arg1="$1"
echo "Received: $arg1"
}
Tips
- Quote variables: Always use
"$variable"to prevent word splitting - Use [[ ]] for tests: More features than [ ]
- Shellcheck: Use
shellcheck script.shto validate scripts - Exit codes: Use
$?to check last command status - Debugging: Use
set -xto trace execution
Safety First
- Always test scripts in safe environment first
- Use
set -eto exit on errors - Validate input parameters
- Quote file paths to handle spaces
- Use absolute paths when possible