<< All versions
Skill v1.0.0
currentAutomated scan100/100one-man-company/skills-contextmanager/bash-linux
──Details
PublishedMarch 12, 2026 at 06:59 PM
Content Hashsha256:17c0a0d75bf28f0f...
Git SHAdiscovery:b6
──Files
Files (1 file, 4.1 KB)
SKILL.md4.1 KBactive
SKILL.md · 201 lines · 4.1 KB
version: "1.0.0" name: bash-linux description: Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems. allowed-tools: Read, Write, Edit, Glob, Grep, Bash
Bash Linux Patterns
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
bash
#!/bin/bashset -euo pipefail # Exit on error, undefined var, pipe fail# Colors (optional)RED='\033[0;31m'GREEN='\033[0;32m'NC='\033[0m'# Script directorySCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"# Functionslog_info() { echo -e "${GREEN}[INFO]${NC} $1"; }log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }# Mainmain() {log_info "Starting..."# Your logic herelog_info "Done!"}main "$@"
8. Common Patterns
Check if command exists
bash
if command -v node &> /dev/null; thenecho "Node is installed"fi
Default variable value
bash
NAME=${1:-"default_value"}
Read file line by line
bash
while IFS= read -r line; doecho "$line"done < file.txt
Loop over files
bash
for file in *.js; doecho "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
bash
set -e # Exit on errorset -u # Exit on undefined variableset -o pipefail # Exit on pipe failureset -x # Debug: print commands
Trap for cleanup
bash
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!