Shell 速查表
一份可搜索、可打印的 Bash / shell 参考——导航、文件、管道、变量、循环、条件判断和实用的单行命令。免费。
导航
8pwd
打印工作目录
ls -la
列出所有文件及详情
cd /path
切换目录
cd -
回到上一个目录
cd ~
回到主目录
tree -L 2
显示目录树(2 层)
pushd / popd
压入和弹出目录栈
ls -lhS
按大小列出,易读格式
文件与目录
10touch file.txt
创建空文件
mkdir -p a/b/c
创建嵌套目录
cp -r src dest
递归复制
mv old new
移动或重命名
rm -rf dir
递归删除(小心!)
ln -s target link
创建符号链接
cat file.txt
打印文件内容
head -n 20 / tail -n 20
前 / 后 20 行
tail -f log.txt
跟随文件增长查看
less file.txt
分页查看文件
搜索与查找
8grep 'pattern' file
在文件中搜索模式
grep -rin 'text' .
递归、忽略大小写、带行号
find . -name '*.php'
按名称查找文件
find . -type f -mtime -1
最近一天内修改的文件
find . -size +10M
大于 10 MB 的文件
which node
定位可执行文件
locate file.txt
通过索引数据库查找
grep -v 'skip' file
反向匹配(排除行)
文本处理
9wc -l file
统计行数
sort file | uniq -c
排序后统计重复项
cut -d',' -f1 file
提取 CSV 列
awk '{print $1}' file
打印第一个字段
sed 's/old/new/g' file
替换文本
tr 'a-z' 'A-Z'
转换字符
diff a.txt b.txt
比较两个文件
tee out.txt
同时写入文件和 stdout
xargs -I{} cmd {}
从输入构建命令
管道与重定向
9a | b
将 a 的输出管道传给 b
cmd > file
重定向 stdout(覆盖)
cmd >> file
重定向 stdout(追加)
cmd 2> err.log
重定向 stderr
cmd > out 2>&1
重定向两个流
cmd < input.txt
从文件读取 stdin
cmd1 && cmd2
仅当 cmd1 成功时运行 cmd2
cmd1 || cmd2
仅当 cmd1 失败时运行 cmd2
cmd &
在后台运行
权限与归属
8chmod 755 file
所有者设 rwx,其他人设 rx
chmod +x script.sh
使文件可执行
chmod -R 644 dir
递归更改权限
chown user:group file
更改所有者和组
umask 022
默认权限掩码
sudo cmd
以 root 运行命令
stat file
显示文件元数据
ls -l file
查看权限位
进程与系统
9ps aux
列出运行中的进程
top / htop
实时进程监控
kill -9 PID
强制结束进程
pkill -f name
按名称结束进程
jobs / fg / bg
管理后台作业
df -h
磁盘空间使用
du -sh dir
目录大小
free -h
内存使用
uname -a
系统和内核信息
变量与展开
9NAME='value'
设置变量(无空格)
echo \"$NAME\"
使用变量
export PATH=\"$PATH:/x\"
导出到子进程
$(command)
命令替换
${VAR:-default}
未设置时取默认值
$1 $2 $@
脚本位置参数
$?
上一条命令的退出状态
read -p 'Name: ' x
读取用户输入
echo {1..5}
花括号展开
脚本编写
9#!/usr/bin/env bash
Shebang 行
set -euo pipefail
更安全的严格模式
if [ -f file ]; then ...; fi
基于文件测试的条件
[ \"$a\" = \"$b\" ]
字符串比较
for f in *.txt; do ...; done
遍历文件
while read line; do ...; done < file
逐行读取文件
case \"$x\" in a) ...;; esac
多路分支
function greet() { echo hi; }
定义函数
trap cleanup EXIT
退出时运行处理器
没有条目匹配“:q”。
需要帮助?
使用此工具时遇到问题?请告诉我们的团队。