mcpField
B
bash-linux

bash-linux

github.com/davila7开发33.1k404 次安装今天更新
代码仓库

关于 bash-linux

面向使用 Bash 的开发者,整理 Linux/macOS 常见命令、脚本模式与错误处理方法,便于查阅文件、管理进程和处理文本。

主要功能

  1. 01命令连接与管道
  2. 02文件查找和读写
  3. 03进程与作业管理
  4. 04文本处理命令
  5. 05环境变量与网络操作
  6. 06脚本错误处理模式

适用场景

  1. 01组合命令并按状态执行
  2. 02查找文件或搜索文本
  3. 03检查端口并管理进程
  4. 04编写带错误处理的脚本

安装

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

$npx skills add https://github.com/davila7/claude-code-templates --skill bash-linux

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

详细介绍

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 <PID>
查找端口占用者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
添加到 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: print commands
用 trap 进行清理
cleanup() {
    echo "Cleaning up..."
    rm -f /tmp/tempfile
}
trap cleanup EXIT

记住: Bash 是基于文本的。用 && 串联成功操作,用 set -e 保证安全,并给变量加引号!

评论

支持 Markdown