Bash Linux Patterns
SkillAI & modelsbash-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.
No other account needed.
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
- Have an agent environment that supports skills and allows the Read, Write, Edit, Glob, Grep, and Bash tools.
- Add the bash-linux skill to the agent's available skills.
- Work on a macOS or Linux system so the commands apply.
- 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
| Operator | Meaning | Example |
|---|---|---|
; | Run sequentially | cmd1; cmd2 |
&& | Run if previous succeeded | npm install && npm run dev |
|| | Run if previous failed | npm test || echo "Tests failed" |
| | Pipe output | ls | grep ".js" |
2. File Operations
Essential Commands
| Task | Command |
|---|---|
| List all | ls -la |
| Find files | find . -name "*.js" -type f |
| File content | cat file.txt |
| First N lines | head -n 20 file.txt |
| Last N lines | tail -n 20 file.txt |
| Follow log | tail -f log.txt |
| Search in files | grep -r "pattern" --include="*.js" |
| File size | du -sh * |
| Disk usage | df -h |
3. Process Management
| Task | Command |
|---|---|
| List processes | ps aux |
| Find by name | ps aux | grep node |
| Kill by PID | kill -9 <PID> |
| Find port user | lsof -i :3000 |
| Kill port | kill -9 $(lsof -t -i :3000) |
| Background | npm run dev & |
| Jobs | jobs -l |
| Bring to front | fg %1 |
4. Text Processing
Core Tools
| Tool | Purpose | Example |
|---|---|---|
grep | Search | grep -rn "TODO" src/ |
sed | Replace | sed -i 's/old/new/g' file.txt |
awk | Extract columns | awk '{print $1}' file.txt |
cut | Cut fields | cut -d',' -f1 data.csv |
sort | Sort lines | sort -u file.txt |
uniq | Unique lines | sort file.txt | uniq -c |
wc | Count | wc -l file.txt |
5. Environment Variables
| Task | Command |
|---|---|
| View all | env or printenv |
| View one | echo $PATH |
| Set temporary | export VAR="value" |
| Set in script | VAR="value" command |
| Add to PATH | export PATH="$PATH:/new/path" |
6. Network
| Task | Command |
|---|---|
| Download | curl -O https://example.com/file |
| API request | curl -X GET https://api.example.com |
| POST JSON | curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL |
| Check port | nc -zv localhost 3000 |
| Network info | ifconfig 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
| Task | PowerShell | Bash |
|---|---|---|
| List files | Get-ChildItem | ls -la |
| Find files | Get-ChildItem -Recurse | find . -type f |
| Environment | $env:VAR | $VAR |
| String concat | "$a$b" | "$a$b" (same) |
| Null check | if ($x) | if [ -n "$x" ] |
| Pipeline | Object-based | Text-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 -efor 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.
Others that do the same job
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