Operating system and shell scripting troubleshooting workflow for Linux, macOS, and Windows. Covers bash scripting, system administration, debugging, and automation.
45
48%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/os-scripting/SKILL.mdComprehensive workflow for operating system troubleshooting, shell scripting, and system administration across Linux, macOS, and Windows. This bundle orchestrates skills for debugging system issues, creating robust scripts, and automating administrative tasks.
Use this workflow when:
bash-linux - Linux bash patternsbash-pro - Professional bash scriptingbash-defensive-patterns - Defensive scripting# System information
uname -a
cat /etc/os-release
hostnamectl
# Resource usage
top
htop
df -h
free -m
# Process information
ps aux
pgrep -f pattern
lsof -i :port
# Network status
netstat -tulpn
ss -tulpn
ip addr showUse @bash-linux to diagnose system performance issuesbash-defensive-patterns - Defensive scriptingshellcheck-configuration - ShellCheck lintingbats-testing-patterns - Bats testing# Install ShellCheck
sudo apt install shellcheck # Debian/Ubuntu
brew install shellcheck # macOS
# Run ShellCheck
shellcheck script.sh
shellcheck -f gcc script.sh
# Fix common issues
# - Use quotes around variables
# - Check exit codes
# - Handle errors properlyUse @shellcheck-configuration to lint and fix shell scriptssystematic-debugging - Systematic debuggingdebugger - Debugging specialisterror-detective - Error pattern detection# Enable debug mode
set -x # Print commands
set -e # Exit on error
set -u # Exit on undefined variable
set -o pipefail # Pipeline failure detection
# Add logging
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" >> /var/log/script.log
}
# Trap errors
trap 'echo "Error on line $LINENO"' ERR
# Test sections
bash -n script.sh # Syntax check
bash -x script.sh # Trace executionUse @systematic-debugging to trace and fix shell script errorsbash-pro - Professional scriptingbash-defensive-patterns - Defensive patternslinux-shell-scripting - Shell scripting#!/usr/bin/env bash
set -euo pipefail
# Constants
readonly SCRIPT_NAME=$(basename "$0")
readonly SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
# Logging
log() {
local level="$1"
shift
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $*" >&2
}
info() { log "INFO" "$@"; }
warn() { log "WARN" "$@"; }
error() { log "ERROR" "$@"; exit 1; }
# Usage
usage() {
cat <<EOF
Usage: $SCRIPT_NAME [OPTIONS]
Options:
-h, --help Show this help message
-v, --verbose Enable verbose output
-d, --debug Enable debug mode
Examples:
$SCRIPT_NAME --verbose
$SCRIPT_NAME -d
EOF
}
# Main function
main() {
local verbose=false
local debug=false
while [[ $# -gt 0 ]]; do
case "$1" in
-h|--help)
usage
exit 0
;;
-v|--verbose)
verbose=true
shift
;;
-d|--debug)
debug=true
set -x
shift
;;
*)
error "Unknown option: $1"
;;
esac
done
info "Script started"
# Your code here
info "Script completed"
}
main "$@"Use @bash-pro to create a production-ready backup scriptUse @linux-shell-scripting to automate system maintenance tasksbats-testing-patterns - Bats testing frameworktest-automator - Test automation#!/usr/bin/env bats
@test "script returns success" {
run ./script.sh
[ "$status" -eq 0 ]
}
@test "script handles missing arguments" {
run ./script.sh
[ "$status" -ne 0 ]
[ "$output" == *"Usage:"* ]
}
@test "script creates expected output" {
run ./script.sh --output test.txt
[ -f "test.txt" ]
}Use @bats-testing-patterns to write tests for shell scriptsdevops-troubleshooter - DevOps troubleshootingincident-responder - Incident responseserver-management - Server management# Check logs
journalctl -xe
tail -f /var/log/syslog
dmesg | tail
# Network troubleshooting
ping host
traceroute host
curl -v http://host
dig domain
nslookup domain
# Process troubleshooting
strace -p PID
lsof -p PID
iotop
# Disk troubleshooting
du -sh /*
find / -type f -size +100M
lsof | grep deletedUse @devops-troubleshooter to diagnose server connectivity issuesUse @incident-responder to investigate system outageworkflow-automation - Workflow automationcicd-automation-workflow-automate - CI/CD automationlinux-shell-scripting - Shell scripting# Edit crontab
crontab -e
# Backup every day at 2 AM
0 2 * * * /path/to/backup.sh
# Clean logs weekly
0 3 * * 0 /path/to/cleanup.sh
# Monitor disk space hourly
0 * * * * /path/to/monitor.sh# /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup timer
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.targetUse @workflow-automation to create automated system maintenance workflowtop -bn1 | head -20
ps aux --sort=-%cpu | head -10
pidstat 1 5free -h
vmstat 1 10
cat /proc/meminfodf -h
du -sh /* 2>/dev/null | sort -h
find / -type f -size +500M 2>/dev/nullip addr show
ip route show
ss -tulpn
curl -v http://targetsystemctl status service-name
journalctl -u service-name -f
systemctl restart service-nameBefore completing workflow, verify:
development - Software developmentcloud-devops - Cloud and DevOpssecurity-audit - Security testingdatabase - Database operations57c135b
Also appears in
since Aug 19, 2026
since Aug 19, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.