<< All versions

Skill v1.0.0

currentAutomated scan100/100
lehuuhau1231/techjobs/bash-linux
──Details
PublishedOctober 24, 2026 at 05:13 AM
Content Hashsha256:17c0a0d75bf28f0f...
Git SHAfa8d6aa25c82
──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

OperatorMeaningExample
;Run sequentiallycmd1; cmd2
&&Run if previous succeedednpm install && npm run dev
`\\`Run if previous failed`npm test \\echo "Tests failed"`
`\`Pipe output`ls \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 name`ps 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 lines`sort 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

bash
#!/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

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

Default variable value

bash
NAME=${1:-"default_value"}

Read file line by line

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

Loop over files

bash
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

bash
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

bash
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!
All versions