About bash-linux
A Bash skill for Linux and macOS users, collecting common patterns for command chaining, file operations, process management, and text processing. It also covers environment variables, network commands, and script error handling.
Key features
- 01Command chaining and pipelines
- 02File discovery and content handling
- 03Process and port inspection
- 04Text processing utilities
- 05Environment variables and network commands
- 06Script error handling and cleanup
Use cases
- 01Chain commands for development tasks
- 02Find files and filter text
- 03Inspect processes and occupied ports
- 04Write shell scripts with error handling
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill bash-linuxAfter installing, type/bash-linuxin Claude Code to confirm it loaded.
Details
From the project READMEBash 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 |
| Stop owned process | kill -TERM <verified-task-PID>; verify exit, escalate only if necessary |
| Find port user | lsof -i :3000 |
| Inspect port owner | lsof -nP -iTCP:3000 -sTCP:LISTEN; verify ownership before stopping |
| 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 | Preview replacement | sed 's/old/new/g' file.txt (in-place flags differ on macOS/GNU) |
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 only with non-secret inputs; prints expanded arguments
Trap for cleanup
cleanup() {
echo "Cleaning up..."
rm -f /tmp/tempfile
}
trap cleanup EXIT
Remember: Bash is text-based. Use
&&for success chains and quote variables.set -ehas conditional/pipeline exceptions; explicitly check consequential operations and never infer complete safety from shell flags.
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Comments
Markdown supported