{"id":"b6806f6e-be36-475c-9701-b2c25206ec88","shortId":"f3DpQE","kind":"skill","title":"Bash Linux","tagline":"Antigravity Awesome Skills skill by Sickn33","description":"# Bash Linux Patterns\n\n> Essential patterns for Bash on Linux/macOS.\n\n---\n\n## 1. Operator Syntax\n\n### Chaining Commands\n\n| Operator | Meaning | Example |\n|----------|---------|---------|\n| `;` | Run sequentially | `cmd1; cmd2` |\n| `&&` | Run if previous succeeded | `npm install && npm run dev` |\n| `\\|\\|` | Run if previous failed | `npm test \\|\\| echo \"Tests failed\"` |\n| `\\|` | Pipe output | `ls \\| grep \".js\"` |\n\n---\n\n## 2. File Operations\n\n### Essential Commands\n\n| Task | Command |\n|------|---------|\n| List all | `ls -la` |\n| Find files | `find . -name \"*.js\" -type f` |\n| File content | `cat file.txt` |\n| First N lines | `head -n 20 file.txt` |\n| Last N lines | `tail -n 20 file.txt` |\n| Follow log | `tail -f log.txt` |\n| Search in files | `grep -r \"pattern\" --include=\"*.js\"` |\n| File size | `du -sh *` |\n| Disk usage | `df -h` |\n\n---\n\n## 3. Process Management\n\n| Task | Command |\n|------|---------|\n| List processes | `ps aux` |\n| Find by name | `ps aux \\| grep node` |\n| Kill by PID | `kill -9 <PID>` |\n| Find port user | `lsof -i :3000` |\n| Kill port | `kill -9 $(lsof -t -i :3000)` |\n| Background | `npm run dev &` |\n| Jobs | `jobs -l` |\n| Bring to front | `fg %1` |\n\n---\n\n## 4. Text Processing\n\n### Core Tools\n\n| Tool | Purpose | Example |\n|------|---------|---------|\n| `grep` | Search | `grep -rn \"TODO\" src/` |\n| `sed` | Replace | `sed -i 's/old/new/g' file.txt` |\n| `awk` | Extract columns | `awk '{print $1}' file.txt` |\n| `cut` | Cut fields | `cut -d',' -f1 data.csv` |\n| `sort` | Sort lines | `sort -u file.txt` |\n| `uniq` | Unique lines | `sort file.txt \\| uniq -c` |\n| `wc` | Count | `wc -l file.txt` |\n\n---\n\n## 5. Environment Variables\n\n| Task | Command |\n|------|---------|\n| View all | `env` or `printenv` |\n| View one | `echo $PATH` |\n| Set temporary | `export VAR=\"value\"` |\n| Set in script | `VAR=\"value\" command` |\n| Add to PATH | `export PATH=\"$PATH:/new/path\"` |\n\n---\n\n## 6. Network\n\n| Task | Command |\n|------|---------|\n| Download | `curl -O https://example.com/file` |\n| API request | `curl -X GET https://api.example.com` |\n| POST JSON | `curl -X POST -H \"Content-Type: application/json\" -d '{\"key\":\"value\"}' URL` |\n| Check port | `nc -zv localhost 3000` |\n| Network info | `ifconfig` or `ip addr` |\n\n---\n\n## 7. Script Template\n\n```bash\n#!/bin/bash\nset -euo pipefail  # Exit on error, undefined var, pipe fail\n\n# Colors (optional)\nRED='\\033[0;31m'\nGREEN='\\033[0;32m'\nNC='\\033[0m'\n\n# Script directory\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n\n# Functions\nlog_info() { echo -e \"${GREEN}[INFO]${NC} $1\"; }\nlog_error() { echo -e \"${RED}[ERROR]${NC} $1\" >&2; }\n\n# Main\nmain() {\n    log_info \"Starting...\"\n    # Your logic here\n    log_info \"Done!\"\n}\n\nmain \"$@\"\n```\n\n---\n\n## 8. Common Patterns\n\n### Check if command exists\n\n```bash\nif command -v node &> /dev/null; then\n    echo \"Node is installed\"\nfi\n```\n\n### Default variable value\n\n```bash\nNAME=${1:-\"default_value\"}\n```\n\n### Read file line by line\n\n```bash\nwhile IFS= read -r line; do\n    echo \"$line\"\ndone < file.txt\n```\n\n### Loop over files\n\n```bash\nfor file in *.js; do\n    echo \"Processing $file\"\ndone\n```\n\n---\n\n## 9. Differences from PowerShell\n\n| Task | PowerShell | Bash |\n|------|------------|------|\n| List files | `Get-ChildItem` | `ls -la` |\n| Find files | `Get-ChildItem -Recurse` | `find . -type f` |\n| Environment | `$env:VAR` | `$VAR` |\n| String concat | `\"$a$b\"` | `\"$a$b\"` (same) |\n| Null check | `if ($x)` | `if [ -n \"$x\" ]` |\n| Pipeline | Object-based | Text-based |\n\n---\n\n## 10. Error Handling\n\n### Set options\n\n```bash\nset -e          # Exit on error\nset -u          # Exit on undefined variable\nset -o pipefail # Exit on pipe failure\nset -x          # Debug: print commands\n```\n\n### Trap for cleanup\n\n```bash\ncleanup() {\n    echo \"Cleaning up...\"\n    rm -f /tmp/tempfile\n}\ntrap cleanup EXIT\n```\n\n---\n\n> **Remember:** Bash is text-based. Use `&&` for success chains, `set -e` for safety, and quote your variables!\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["bash","linux","antigravity","awesome","skills","sickn33"],"capabilities":["skill","source-sickn33","category-antigravity-awesome-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/bash-linux","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under sickn33/antigravity-awesome-skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T11:40:44.398Z","embedding":null,"createdAt":"2026-04-18T20:33:40.230Z","updatedAt":"2026-04-25T11:40:44.398Z","lastSeenAt":"2026-04-25T11:40:44.398Z","tsv":"'-9':130,140 '/bin/bash':287 '/dev/null':363 '/file':250 '/new/path':240 '/tmp/tempfile':494 '0':302,306,319 '033':301,305,309 '0m':310 '1':18,156,182,329,337,375 '10':455 '2':53,338 '20':80,87 '3':110 '3000':136,144,276 '31m':303 '32m':307 '4':157 '5':209 '6':241 '7':283 '8':351 '9':407 'action':528 'add':234 'addr':282 'antigrav':3 'api':251 'api.example.com':256 'applic':522 'application/json':266 'ask':566 'aux':118,123 'awesom':4 'awk':177,180 'b':437,439 'background':145 'base':451,454,503 'bash':1,9,15,286,317,358,373,383,397,413,460,487,499 'boundari':574 'bring':152 'c':203 'cat':73 'category-antigravity-awesome-skills' 'cd':315 'chain':21,507 'check':271,354,442 'childitem':418,425 'clarif':568 'clean':490 'cleanup':486,488,496 'clear':541 'cmd1':28 'cmd2':29 'color':298 'column':179 'command':22,57,59,114,213,233,244,356,360,483 'common':352 'concat':435 'content':72,264 'content-typ':263 'core':160 'count':205 'criteria':577 'curl':246,253,259 'cut':184,185,187 'd':188,267 'data.csv':190 'debug':481 'default':370,376 'describ':529,545 'dev':38,148 'df':108 'differ':408 'dir':314 'directori':312 'dirnam':316 'disk':106 'done':349,392,406 'download':245 'du':104 'e':325,333,462,509 'echo':45,221,324,332,365,390,403,489 'env':216,431 'environ':210,430,557 'environment-specif':556 'error':293,331,335,456,465 'essenti':12,56 'euo':289 'exampl':25,164 'example.com':249 'example.com/file':248 'execut':524 'exist':357 'exit':291,463,468,475,497 'expert':562 'export':225,237 'extract':178 'f':70,92,429,493 'f1':189 'fail':42,47,297 'failur':478 'fg':155 'fi':369 'field':186 'file':54,65,71,96,102,379,396,399,405,415,422 'file.txt':74,81,88,176,183,196,201,208,393 'find':64,66,119,131,421,427 'first':75 'follow':89 'front':154 'function':321 'get':255,417,424 'get-childitem':416,423 'green':304,326 'grep':51,97,124,165,167 'h':109,262 'handl':457 'head':78 'if':385 'ifconfig':279 'includ':100 'info':278,323,327,342,348 'input':571 'instal':35,368 'ip':281 'job':149,150 'js':52,68,101,401 'json':258 'key':268 'kill':126,129,137,139 'l':151,207 'la':63,420 'last':82 'limit':533 'line':77,84,193,199,380,382,388,391 'linux':2,10 'linux/macos':17 'list':60,115,414 'localhost':275 'log':90,322,330,341,347 'log.txt':93 'logic':345 'loop':394 'ls':50,62,419 'lsof':134,141 'main':339,340,350 'manag':112 'match':542 'mean':24 'miss':579 'n':76,79,83,86,446 'name':67,121,374 'nc':273,308,328,336 'network':242,277 'node':125,362,366 'npm':34,36,43,146 'null':441 'o':247,473 'object':450 'object-bas':449 'one':220 'oper':19,23,55 'option':299,459 'output':49,551 'overview':532 'path':222,236,238,239 'pattern':11,13,99,353 'permiss':572 'pid':128 'pipe':48,296,477 'pipefail':290,474 'pipelin':448 'port':132,138,272 'post':257,261 'powershel':410,412 'previous':32,41 'print':181,482 'printenv':218 'process':111,116,159,404 'ps':117,122 'purpos':163 'pwd':320 'quot':513 'r':98,387 'read':378,386 'recurs':426 'red':300,334 'rememb':498 'replac':172 'request':252 'requir':570 'review':563 'rm':492 'rn':168 'run':26,30,37,39,147 's/old/new/g':175 'safeti':511,573 'scope':544 'script':230,284,311,313 'search':94,166 'sed':171,173 'sequenti':27 'set':223,228,288,458,461,466,472,479,508 'sh':105 'sickn33':8 'size':103 'skill':5,6,520,536 'sort':191,192,194,200 'sourc':318 'source-sickn33' 'specif':558 'src':170 'start':343 'stop':564 'string':434 'substitut':554 'succeed':33 'success':506,576 'syntax':20 'tail':85,91 'task':58,113,212,243,411,540 'templat':285 'temporari':224 'test':44,46,560 'text':158,453,502 'text-bas':452,501 'todo':169 'tool':161,162 'trap':484,495 'treat':549 'type':69,265,428 'u':195,467 'undefin':294,470 'uniq':197,202 'uniqu':198 'url':270 'usag':107 'use':504,518,534 'user':133 'v':361 'valid':559 'valu':227,232,269,372,377 'var':226,231,295,432,433 'variabl':211,371,471,515 'view':214,219 'wc':204,206 'workflow':526 'x':254,260,444,447,480 'zv':274","prices":[{"id":"ad1fccd3-6ebb-497e-8f32-69a2d381c6f5","listingId":"b6806f6e-be36-475c-9701-b2c25206ec88","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:33:40.230Z"}],"sources":[{"listingId":"b6806f6e-be36-475c-9701-b2c25206ec88","source":"github","sourceId":"sickn33/antigravity-awesome-skills/bash-linux","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/bash-linux","isPrimary":false,"firstSeenAt":"2026-04-18T21:33:24.803Z","lastSeenAt":"2026-04-25T06:50:42.271Z"},{"listingId":"b6806f6e-be36-475c-9701-b2c25206ec88","source":"skills_sh","sourceId":"sickn33/antigravity-awesome-skills/bash-linux","sourceUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/bash-linux","isPrimary":true,"firstSeenAt":"2026-04-18T20:33:40.230Z","lastSeenAt":"2026-04-25T11:40:44.398Z"}],"details":{"listingId":"b6806f6e-be36-475c-9701-b2c25206ec88","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"bash-linux","source":"skills_sh","category":"antigravity-awesome-skills","skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/bash-linux"},"updatedAt":"2026-04-25T11:40:44.398Z"}}