[ PROMPT_NODE_23774 ]
bash-linux
[ SKILL_DOCUMENTATION ]
# Bash Linux 模式
> Linux/macOS 下 Bash 的基础模式。
---
## 1. 操作符语法
### 命令链式调用
| 操作符 | 含义 | 示例 |
|----------|---------|---------|
| `;` | 顺序执行 | `cmd1; cmd2` |
| `&&` | 前者成功则执行 | `npm install && npm run dev` |
| `||` | 前者失败则执行 | `npm test || echo "Tests failed"` |
| `|` | 管道输出 | `ls | grep ".js"` |
---
## 2. 文件操作
### 基础命令
| 任务 | 命令 |
|------|---------|
| 列出所有 | `ls -la` |
| 查找文件 | `find . -name "*.js" -type f` |
| 查看文件内容 | `cat file.txt` |
| 前 N 行 | `head -n 20 file.txt` |
| 后 N 行 | `tail -n 20 file.txt` |
| 追踪日志 | `tail -f log.txt` |
| 文件内搜索 | `grep -r "pattern" --include="*.js"` |
| 文件大小 | `du -sh *` |
| 磁盘使用情况 | `df -h` |
---
## 3. 进程管理
| 任务 | 命令 |
|------|---------|
| 列出进程 | `ps aux` |
| 按名称查找 | `ps aux | grep node` |
| 按 PID 终止 | `kill -9 ` |
| 查找端口占用 | `lsof -i :3000` |
| 终止端口进程 | `kill -9 $(lsof -t -i :3000)` |
| 后台运行 | `npm run dev &` |
| 查看任务 | `jobs -l` |
| 调至前台 | `fg %1` |
---
## 4. 文本处理
### 核心工具
| 工具 | 用途 | 示例 |
|------|---------|---------|
| `grep` | 搜索 | `grep -rn "TODO" src/` |
| `sed` | 替换 | `sed -i 's/old/new/g' file.txt` |
| `awk` | 提取列 | `awk '{print $1}' file.txt` |
| `cut` | 剪切字段 | `cut -d',' -f1 data.csv` |
| `sort` | 排序行 | `sort -u file.txt` |
| `uniq` | 去重行 | `sort file.txt | uniq -c` |
| `wc` | 计数 | `wc -l file.txt` |
---
## 5. 环境变量
| 任务 | 命令 |
|------|---------|
| 查看所有 | `env` 或 `printenv` |
| 查看单个 | `echo $PATH` |
| 临时设置 | `export VAR="value"` |
| 脚本内设置 | `VAR="value" command` |
| 添加到 PATH | `export PATH="$PATH:/new/path"` |
---
## 6. 网络
| 任务 | 命令 |
|------|---------|
| 下载 | `curl -O https://example.com/file` |
| API 请求 | `curl -X GET https://api.example.com` |
| POST JSON | `curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL` |
| 检查端口 | `nc -zv localhost 3000` |
| 网络信息 | `ifconfig` 或 `ip addr` |
---
## 7. 脚本模板
bash
#!/bin/bash
set -euo pipefail # 错误、未定义变量或管道失败时退出
# 颜色 (可选)
RED='33[0;31m'
GREEN='33[0;32m'
NC='33[0m'
# 脚本目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# F