Bash Linux Patterns

SkillAI & models

bash-linux is a skill that gives an AI agent reference patterns for running Bash commands on Linux and macOS systems. It covers operator chaining, file operations, process control, text processing, networking with curl, environment variables, and error-handling techniques such as set -euo pipefail and trap cleanup. The agent consults it when working in a terminal so commands are written correctly and failures are handled.

Available today. Use it from your connected AI after setup.

Have an agent environment that supports skills and allows the Read, Write, Edit, Glob, Grep, and Bash tools.

Then ask your AI: use the Bash Linux Patterns skill

What your AI can do with it

  • Chain commands with ;, &&, ||, and pipe operators
  • Find, read, and inspect files with ls, find, cat, head, tail, and grep
  • Manage processes: list with ps aux, kill by PID, free a port with lsof
  • Process text with sed, awk, cut, sort, uniq, and wc
  • Make HTTP requests and downloads with curl and check ports with nc
  • Write scripts using a template with set -euo pipefail and trap cleanup

Getting started

  1. Have an agent environment that supports skills and allows the Read, Write, Edit, Glob, Grep, and Bash tools.
  2. Add the bash-linux skill to the agent's available skills.
  3. Work on a macOS or Linux system so the commands apply.
  4. Ask the agent to perform terminal tasks; it uses the skill's patterns for commands, piping, and error handling.

What this skill tells your AI

The instructions your AI receives, as published by davila7/claude-code-templates in cli-tool/components/skills/development/bash-linux/SKILL.md and read by ahel’s review.

Essential patterns for Bash on Linux/macOS.


1. Operator Syntax

Chaining Commands

OperatorMeaningExample
;Run sequentiallycmd1; cmd2
&&Run if previous succeedednpm install && npm run dev
||Run if previous failednpm test || echo "Tests failed"
|Pipe outputls | grep ".js"

2. File Operations

Essential Commands

TaskCommand
List allls -la
Find filesfind . -name "*.js" -type f
File contentcat file.txt
First N lineshead -n 20 file.txt
Last N linestail -n 20 file.txt
Follow logtail -f log.txt
Search in filesgrep -r "pattern" --include="*.js"
File sizedu -sh *
Disk usagedf -h

3. Process Management

TaskCommand
List processesps aux
Find by nameps aux | grep node
Kill by PIDkill -9 <PID>
Find port userlsof -i :3000
Kill portkill -9 $(lsof -t -i :3000)
Backgroundnpm run dev &
Jobsjobs -l
Bring to frontfg %1

4. Text Processing

Core Tools

ToolPurposeExample
grepSearchgrep -rn "TODO" src/
sedReplacesed -i 's/old/new/g' file.txt
awkExtract columnsawk '{print $1}' file.txt
cutCut fieldscut -d',' -f1 data.csv
sortSort linessort -u file.txt
uniqUnique linessort file.txt | uniq -c
wcCountwc -l file.txt

5. Environment Variables

TaskCommand
View allenv or printenv
View oneecho $PATH
Set temporaryexport VAR="value"
Set in scriptVAR="value" command
Add to PATHexport PATH="$PATH:/new/path"

6. Network

TaskCommand
Downloadcurl -O https://example.com/file
API requestcurl -X GET https://api.example.com
POST JSONcurl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL
Check portnc -zv localhost 3000
Network infoifconfig or ip addr

7. Script Template

#!/bin/bash
set -euo pipefail  # Exit on error, undefined var, pipe fail

# Colors (optional)
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'

# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Functions
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }

# Main
main() {
    log_info "Starting..."
    # Your logic here
    log_info "Done!"
}

main "$@"

8. Common Patterns

Check if command exists

if command -v node &> /dev/null; then
    echo "Node is installed"
fi

Default variable value

NAME=${1:-"default_value"}

Read file line by line

while IFS= read -r line; do
    echo "$line"
done < file.txt

Loop over files

for file in *.js; do
    echo "Processing $file"
done

9. Differences from PowerShell

TaskPowerShellBash
List filesGet-ChildItemls -la
Find filesGet-ChildItem -Recursefind . -type f
Environment$env:VAR$VAR
String concat"$a$b""$a$b" (same)
Null checkif ($x)if [ -n "$x" ]
PipelineObject-basedText-based

10. Error Handling

Set options

set -e          # Exit on error
set -u          # Exit on undefined variable
set -o pipefail # Exit on pipe failure
set -x          # Debug: print commands

Trap for cleanup

cleanup() {
    echo "Cleaning up..."
    rm -f /tmp/tempfile
}
trap cleanup EXIT

Remember: Bash is text-based. Use && for success chains, set -e for safety, and quote your variables!

Signals

GitHub stars
32k
Forks
4k
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Questions

When should the agent use this skill?
When working on macOS or Linux systems and running terminal commands, piping output, managing processes, or writing shell scripts.
Does it work on Windows?
The skill is written for Bash on Linux and macOS; it is intended for use on those systems.
What error-handling patterns does it include?
It covers set -euo pipefail to exit on errors, undefined variables, and pipe failures, plus trap cleanup and a script template with logging helpers.
Which tools does the skill use?
Its allowed tools are Read, Write, Edit, Glob, Grep, and Bash.
Advanced
Item type
skill
Key
bash-linux-davila7
Source
github.com/davila7/claude-code-templates