mcpField
B
bash-linux

bash-linux

github.com/sickn33开发48.7k1.8k 次安装今天更新
代码仓库

关于 bash-linux

面向 Linux 和 macOS 使用者的 Bash 技能,汇总命令组合、文件操作、进程管理和文本处理等常用模式。还介绍环境变量、网络操作及脚本错误处理。

主要功能

  1. 01命令串联与管道操作
  2. 02文件查找和内容处理
  3. 03进程与端口检查
  4. 04文本处理工具用法
  5. 05环境变量和网络命令
  6. 06脚本错误处理与清理

适用场景

  1. 01组合命令运行开发任务
  2. 02查找文件并筛选文本
  3. 03检查进程和端口占用
  4. 04编写带错误处理的 Shell 脚本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill bash-linux

安装后在 Claude Code 中输入/bash-linux确认已加载。

详细介绍

Bash Linux 模式

Bash 在 Linux/macOS 上的基本模式。


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
停止所属进程kill -TERM <verified-task-PID>;确认进程已退出,仅在必要时升级处理
查找端口占用者lsof -i :3000
检查端口所有者lsof -nP -iTCP:3000 -sTCP:LISTEN;停止进程前确认所有权
后台运行npm run dev &
查看作业jobs -l
调至前台fg %1

4. 文本处理

核心工具
工具用途示例
grep搜索grep -rn "TODO" src/
sed预览替换结果sed 's/old/new/g' file.txt(macOS/GNU 的原地修改标志有所不同)
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
添加到 PATHexport PATH="$PATH:/new/path"

6. 网络

任务命令
下载curl -O https://example.com/file
API 请求curl -X GET https://api.example.com
POST JSONcurl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL
检查端口nc -zv localhost 3000
网络信息ifconfig 或 ip addr

7. 脚本模板

#!/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. 常用模式

检查命令是否存在
if command -v node &> /dev/null; then
    echo "Node is installed"
fi
变量默认值
NAME=${1:-"default_value"}
逐行读取文件
while IFS= read -r line; do
    echo "$line"
done < file.txt
遍历文件
for file in *.js; do
    echo "Processing $file"
done

9. 与 PowerShell 的差异

任务PowerShellBash
列出文件Get-ChildItemls -la
查找文件Get-ChildItem -Recursefind . -type f
环境变量$env:VAR$VAR
字符串拼接"$a$b""$a$b"(相同)
空值检查if ($x)if [ -n "$x" ]
管道基于对象基于文本

10. 错误处理

设置选项
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 清理
cleanup() {
    echo "Cleaning up..."
    rm -f /tmp/tempfile
}
trap cleanup EXIT

请记住: Bash 基于文本。使用 && 串联成功执行的命令,并为变量加引号。set -e 存在条件语句和管道例外;请明确检查会产生重要后果的操作,切勿仅凭 Shell 标志就认定完全安全。

适用场景

当要执行概述中描述的工作流或操作时,可以使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为可替代特定环境验证、测试或专家审查的方案。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown