常用工具命令速查
日常开发中最常用的命令行工具速查手册,涵盖 Linux 系统管理、Git 版本控制、网络请求、文件查找、Docker 容器管理、WSL 及 Mamba 环境管理等场景。每个分类内按功能分组,注释说明用途,方便快速定位所需命令。
凭据占位符
文中的
token、password、user等均为命令示例占位符,不应替换为真实凭据后提交到笔记库。
Linux/Unix
Linux/Unix 系统下最基础的文件操作、进程管理、系统信息查看、网络工具及文本处理命令。
# 文件和目录操作
ls # 列出文件和目录
ls -la # 详细列出所有文件(包括隐藏文件)
ls -lh # 人性化显示文件大小
cd <目录> # 切换目录
cd ~ # 切换到家目录
cd - # 切换到上一个目录
pwd # 显示当前目录
mkdir <目录名> # 创建目录
mkdir -p <路径> # 递归创建目录
rmdir <目录名> # 删除空目录
rm <文件名> # 删除文件
rm -r <目录名> # 递归删除目录
rm -rf <目录名> # 强制递归删除
cp <源> <目标> # 复制文件
cp -r <源目录> <目标目录> # 复制目录
mv <源> <目标> # 移动/重命名文件
find <路径> -name "<文件名>" # 查找文件
find <路径> -type f -size +100M # 查找大于100M的文件
locate <文件名> # 快速查找文件
which <命令> # 查找命令位置
# 文件内容操作
cat <文件> # 显示文件内容
less <文件> # 分页显示文件
head <文件> # 显示文件开头
tail <文件> # 显示文件结尾
tail -f <文件> # 实时监控文件变化
grep <模式> <文件> # 搜索文件内容
grep -r <模式> <目录> # 递归搜索目录
grep -i <模式> <文件> # 忽略大小写搜索
wc <文件> # 统计行数、词数、字符数
sort <文件> # 排序文件内容
uniq <文件> # 去除重复行
cut -d',' -f1 <文件> # 按分隔符切割字段
# 文件权限和属性
chmod 755 <文件> # 修改文件权限
chmod +x <文件> # 添加执行权限
chown <用户>:<组> <文件> # 修改文件所有者
chgrp <组> <文件> # 修改文件组
ls -l # 查看文件权限
stat <文件> # 查看文件详细信息
file <文件> # 查看文件类型
# 进程管理
ps # 显示当前进程
ps aux # 显示所有进程详细信息
top # 实时显示系统进程
htop # 增强版top(需安装)
kill <PID> # 终止进程
kill -9 <PID> # 强制终止进程
killall <进程名> # 终止所有同名进程
jobs # 显示作业列表
bg # 将作业放到后台
fg # 将作业放到前台
nohup <命令> & # 后台运行命令(忽略挂断)
# 系统信息
uname -a # 系统信息
whoami # 当前用户名
id # 用户和组ID
uptime # 系统运行时间
date # 当前日期时间
cal # 日历
df -h # 磁盘使用情况
du -sh <目录> # 目录大小
free -h # 内存使用情况
lscpu # CPU信息
lsblk # 磁盘分区信息
# 网络相关
ping <主机> # 测试网络连通性
wget <URL> # 下载文件
curl <URL> # 发送HTTP请求
ssh <用户>@<主机> # SSH连接远程主机
scp <文件> <用户>@<主机>:<路径> # 远程复制文件
netstat -tuln # 显示网络连接
ss -tuln # 现代版netstat
# 归档压缩
tar -czf <文件.tar.gz> <目录> # 创建gzip压缩包
tar -xzf <文件.tar.gz> # 解压gzip压缩包
tar -cjf <文件.tar.bz2> <目录> # 创建bzip2压缩包
tar -xjf <文件.tar.bz2> # 解压bzip2压缩包
zip -r <文件.zip> <目录> # 创建zip文件
unzip <文件.zip> # 解压zip文件
# 文本处理
sed 's/旧/新/g' <文件> # 替换文本
awk '{print $1}' <文件> # 打印第一列
tr '[:lower:]' '[:upper:]' # 转换大小写
diff <文件1> <文件2> # 比较文件差异
# 环境变量
export <变量>=<值> # 设置环境变量
echo $<变量> # 显示环境变量
env # 显示所有环境变量
alias <别名>='<命令>' # 创建命令别名
history # 显示命令历史Git
Git 版本控制的完整命令参考,从仓库初始化、日常提交到分支管理、远程操作和高级用法。
# 配置
git config --global user.name "name" # 设置全局用户名
git config --global user.email "email" # 设置全局邮箱
git config --list # 查看配置
# 初始化和克隆
git init # 初始化仓库
git clone <url> # 克隆远程仓库
git clone <url> <dir> # 克隆到指定目录
# 基本操作
git status # 查看状态
git add <file> # 添加文件到暂存区
git add . # 添加所有文件到暂存区
git commit -m "message" # 提交到本地仓库
git commit -am "message" # 添加并提交已跟踪文件
git commit --amend # 修改最后一次提交
# 查看历史
git log # 查看提交历史
git log --oneline # 单行显示历史
git log --graph # 图形化显示分支
git show <commit> # 查看具体提交
git diff # 查看工作区差异
git diff --staged # 查看暂存区差异
# 分支操作
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -a # 查看所有分支
git branch <name> # 创建分支
git checkout <branch> # 切换分支
git checkout -b <branch> # 创建并切换分支
git switch <branch> # 切换分支(新语法)
git switch -c <branch> # 创建并切换分支(新语法)
git merge <branch> # 合并分支
git branch -d <branch> # 删除分支
git branch -D <branch> # 强制删除分支
# 远程操作
git remote -v # 查看远程仓库
git remote add origin <url> # 添加远程仓库
git fetch # 获取远程更新
git pull # 拉取并合并远程分支
git push # 推送到远程仓库
git push -u origin <branch> # 首次推送分支并设置上游
git push origin --delete <branch> # 删除远程分支
# 撤销操作
git checkout -- <file> # 撤销工作区修改
git restore <file> # 撤销工作区修改(新语法)
git restore --staged <file> # 取消暂存(新语法)
git reset HEAD <file> # 取消暂存
git reset --soft HEAD^ # 撤销提交保留修改
git reset --hard HEAD^ # 撤销提交丢弃修改
git revert <commit> # 创建反向提交
# 标签操作
git tag # 查看标签
git tag <name> # 创建标签
git tag -a <name> -m "message" # 创建带注释标签
git push origin <tag> # 推送标签
git push origin --tags # 推送所有标签
# 暂存操作
git stash # 暂存当前修改
git stash pop # 恢复最近暂存
git stash list # 查看暂存列表
git stash drop # 删除最近暂存
# 子模块操作
git submodule add <url> <path> # 添加子模块
git submodule update --init --recursive # 初始化并更新子模块
git submodule update --remote # 更新子模块到最新
# 其他实用命令
git clean -fd # 删除未跟踪文件和目录
git cherry-pick <commit> # 应用特定提交
git rebase <branch> # 变基合并
git blame <file> # 查看文件修改历史
git reflog # 查看引用日志
git gc # 垃圾回收优化仓库Curl/Wget
两个常用的命令行下载和 HTTP 请求工具。curl 更侧重灵活的 HTTP 请求构造,wget 更擅长批量下载和网站镜像。
# curl 基本请求
curl <URL> # GET请求
curl -X POST <URL> # POST请求
curl -X PUT <URL> # PUT请求
curl -X DELETE <URL> # DELETE请求
curl -I <URL> # 仅获取响应头(HEAD请求)
curl -i <URL> # 包含响应头的完整响应
# curl 数据传输
curl -d "key=value" <URL> # POST表单数据
curl -d @file.json <URL> # POST文件内容
curl -F "file=@path/to/file" <URL> # 上传文件(multipart)
curl -H "Content-Type: application/json" <URL> # 设置请求头
curl -H "Authorization: Bearer token" <URL> # 设置认证头
curl -u username:password <URL> # HTTP基础认证
curl -b cookies.txt <URL> # 使用cookie文件
curl -c cookies.txt <URL> # 保存cookie到文件
# curl 输出控制
curl -o filename <URL> # 保存到指定文件
curl -O <URL> # 保存为URL中的文件名
curl -s <URL> # 静默模式(不显示进度)
curl -S <URL> # 静默但显示错误
curl -v <URL> # 详细模式(显示请求响应过程)
curl -w "%{http_code}\n" <URL> # 输出HTTP状态码
# curl 连接控制
curl --connect-timeout 10 <URL> # 连接超时时间
curl --max-time 30 <URL> # 最大执行时间
curl --retry 3 <URL> # 失败重试次数
curl --retry-delay 2 <URL> # 重试间隔秒数
curl -k <URL> # 忽略SSL证书错误
curl --proxy proxy:8080 <URL> # 使用代理
curl -L <URL> # 跟随重定向
curl --max-redirs 5 <URL> # 最大重定向次数
# curl 高级功能
curl -T file.txt <URL> # 上传文件(PUT)
curl --data-binary @file <URL> # 发送二进制数据
curl -G -d "q=search" <URL> # GET请求带参数
curl --compressed <URL> # 支持压缩传输
curl -A "User-Agent" <URL> # 设置用户代理
curl -e "Referer-URL" <URL> # 设置来源页面
curl --limit-rate 200k <URL> # 限制传输速度
curl -C - -O <URL> # 断点续传下载
# wget 基本下载
wget <URL> # 下载文件
wget -O filename <URL> # 保存为指定文件名
wget -P /path/to/dir <URL> # 下载到指定目录
wget -c <URL> # 断点续传
wget --progress=bar <URL> # 显示进度条
wget -q <URL> # 静默下载
wget -v <URL> # 详细输出
# wget 批量下载
wget -i urls.txt # 从文件读取URL列表
wget -r <URL> # 递归下载(网站镜像)
wget -r -l 2 <URL> # 递归下载2层深度
wget -r -A "*.pdf" <URL> # 只下载PDF文件
wget -r -R "*.gif,*.jpg" <URL> # 排除图片文件
wget --mirror <URL> # 完整镜像网站
wget -np -r <URL> # 不下载父目录
# wget 连接控制
wget --timeout=30 <URL> # 设置超时时间
wget --tries=3 <URL> # 重试次数
wget --wait=2 <URL> # 请求间隔时间
wget --limit-rate=200k <URL> # 限制下载速度
wget --user-agent="UA" <URL> # 设置用户代理
wget --referer="URL" <URL> # 设置来源页面
# wget 认证和代理
wget --http-user=user --http-password=pass <URL> # HTTP认证
wget --proxy=on --proxy-user=user --proxy-password=pass <URL> # 代理认证
wget --no-proxy <URL> # 不使用代理
wget --no-check-certificate <URL> # 忽略SSL证书
# wget 高级功能
wget --spider <URL> # 只检查文件是否存在
wget --server-response <URL> # 显示服务器响应
wget -N <URL> # 只下载比本地文件新的
wget --post-data="data" <URL> # POST请求
wget --header="Header: value" <URL> # 自定义请求头
wget -b <URL> # 后台下载
wget -o log.txt <URL> # 输出日志到文件find
find 是 Linux 下功能最强大的文件查找工具,支持按名称、类型、大小、时间、权限等多维度条件组合查找,并可对结果执行批量操作。
# 基本查找
find <路径> # 列出指定路径下所有文件和目录
find . -name "filename" # 按文件名查找(精确匹配)
find . -iname "filename" # 按文件名查找(忽略大小写)
find . -name "*.txt" # 通配符匹配
find . -name "file*" # 前缀匹配
find . -name "*file*" # 包含匹配
find . -regex ".*\.txt$" # 正则表达式匹配
find . -iregex ".*\.TXT$" # 正则表达式匹配(忽略大小写)
# 按文件类型查找
find . -type f # 只查找文件
find . -type d # 只查找目录
find . -type l # 只查找符号链接
find . -type b # 查找块设备文件
find . -type c # 查找字符设备文件
find . -type s # 查找套接字文件
find . -type p # 查找管道文件
# 按文件大小查找
find . -size +100M # 大于100MB的文件
find . -size -1k # 小于1KB的文件
find . -size 1G # 等于1GB的文件
find . -size +100c # 大于100字节
find . -empty # 查找空文件和空目录
# 按时间查找
find . -mtime -7 # 7天内修改的文件
find . -mtime +30 # 30天前修改的文件
find . -mtime 7 # 恰好7天前修改的文件
find . -atime -1 # 1天内访问的文件
find . -ctime +7 # 7天前状态改变的文件
find . -newer file.txt # 比file.txt新的文件
find . -newermt "2023-01-01" # 比指定日期新的文件
find . -mmin -60 # 60分钟内修改的文件
find . -mmin +120 # 120分钟前修改的文件
# 按权限查找
find . -perm 755 # 权限为755的文件
find . -perm -755 # 至少具有755权限的文件
find . -perm /u+w # 所有者有写权限的文件
find . -executable # 可执行文件
find . -readable # 可读文件
find . -writable # 可写文件
# 按所有者查找
find . -user username # 属于指定用户的文件
find . -group groupname # 属于指定组的文件
find . -uid 1000 # UID为1000的文件
find . -gid 1000 # GID为1000的文件
find . -nouser # 没有所有者的文件
find . -nogroup # 没有所属组的文件
# 查找深度控制
find . -maxdepth 2 # 最大搜索深度为2层
find . -mindepth 2 # 最小搜索深度为2层
find . -maxdepth 1 -type f # 只在当前目录查找文件
# 逻辑操作符
find . -name "*.txt" -o -name "*.log" # OR操作(或)
find . -name "*.txt" -and -size +1k # AND操作(且)
find . -not -name "*.tmp" # NOT操作(非)
find . \( -name "*.txt" -o -name "*.log" \) -and -size +1k # 组合条件
# 执行操作
find . -name "*.txt" -delete # 删除找到的文件
find . -name "*.log" -ls # 详细列出找到的文件
find . -name "*.txt" -print # 打印找到的文件(默认动作)
find . -name "*.txt" -print0 # 用null分隔输出(配合xargs)
find . -type f -exec ls -l {} \; # 对每个文件执行命令
find . -type f -exec ls -l {} + # 批量执行命令(更高效)
find . -name "*.txt" -ok rm {} \; # 执行前询问确认
# 高级用法
find . -name "*.txt" -execdir pwd \; # 在文件目录中执行命令
find . -name "*.bak" -delete # 删除备份文件
find . -type f -name "*.log" | head -10 # 配合管道使用
find . -type f -print0 | xargs -0 ls -l # 配合xargs处理文件名包含空格
find /tmp -type f -mtime +7 -delete # 清理7天前的临时文件
find . -name "core" -type f -delete # 删除core dump文件
# 排除目录
find . -path "./dir" -prune -o -name "*.txt" -print # 排除指定目录
find . -name ".git" -prune -o -type f -print # 排除.git目录
find . \( -name "*.o" -o -name "*.so" \) -delete # 删除编译文件
# 查找并统计
find . -type f | wc -l # 统计文件数量
find . -type d | wc -l # 统计目录数量
find . -name "*.txt" -exec wc -l {} + # 统计所有txt文件行数Docker
Docker 容器化平台的核心命令,包括镜像构建与管理、容器生命周期控制、Docker Compose 编排、网络和数据卷配置、系统清理等。
# 镜像操作
docker images # 查看本地镜像
docker search <image> # 搜索镜像
docker pull <image> # 下载镜像
docker pull <image>:<tag> # 下载指定版本镜像
docker rmi <image> # 删除镜像
docker rmi $(docker images -q) # 删除所有镜像
docker build -t <name> . # 构建镜像
docker build -t <name>:<tag> . # 构建带标签的镜像
docker tag <image> <new_name> # 给镜像打标签
docker history <image> # 查看镜像历史
# 容器操作
docker run <image> # 运行容器
docker run -d <image> # 后台运行容器
docker run -it <image> /bin/bash # 交互式运行容器
docker run -p 8080:80 <image> # 端口映射运行容器
docker run -v /host:/container <image> # 挂载目录运行容器
docker run --name <name> <image> # 指定容器名称
docker run --rm <image> # 运行后自动删除容器
docker run -e KEY=value <image> # 设置环境变量
# 容器管理
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker start <container> # 启动容器
docker stop <container> # 停止容器
docker restart <container> # 重启容器
docker pause <container> # 暂停容器
docker unpause <container> # 恢复容器
docker kill <container> # 强制停止容器
docker rm <container> # 删除容器
docker rm $(docker ps -aq) # 删除所有容器
# 容器交互
docker exec -it <container> /bin/bash # 进入运行中的容器
docker exec <container> <command> # 在容器中执行命令
docker attach <container> # 附加到容器
docker cp <container>:/path /host/path # 从容器复制文件到主机
docker cp /host/path <container>:/path # 从主机复制文件到容器
docker logs <container> # 查看容器日志
docker logs -f <container> # 实时查看容器日志
docker logs --tail 100 <container> # 查看最后100行日志
# 容器信息
docker inspect <container> # 查看容器详细信息
docker stats # 查看容器资源使用情况
docker stats <container> # 查看指定容器资源使用
docker top <container> # 查看容器中的进程
docker port <container> # 查看容器端口映射
# Docker Compose
docker-compose up # 启动服务
docker-compose up -d # 后台启动服务
docker-compose down # 停止并删除服务
docker-compose stop # 停止服务
docker-compose start # 启动已存在的服务
docker-compose restart # 重启服务
docker-compose logs # 查看服务日志
docker-compose ps # 查看服务状态
docker-compose exec <service> bash # 进入服务容器
docker-compose build # 构建服务镜像
# 网络操作
docker network ls # 查看网络列表
docker network create <network> # 创建网络
docker network inspect <network> # 查看网络详情
docker network connect <network> <container> # 连接容器到网络
docker network disconnect <network> <container> # 断开容器网络连接
docker network rm <network> # 删除网络
# 数据卷操作
docker volume ls # 查看数据卷列表
docker volume create <volume> # 创建数据卷
docker volume inspect <volume> # 查看数据卷详情
docker volume rm <volume> # 删除数据卷
docker volume prune # 删除未使用的数据卷
# 仓库操作
docker login # 登录Docker Hub
docker logout # 登出Docker Hub
docker push <image> # 推送镜像到仓库
docker commit <container> <image> # 将容器保存为镜像
docker save -o <file>.tar <image> # 导出镜像为tar文件
docker load -i <file>.tar # 从tar文件导入镜像
docker export <container> > <file>.tar # 导出容器为tar文件
docker import <file>.tar <image> # 从tar文件导入为镜像
# 系统清理
docker system prune # 清理未使用的资源
docker system prune -a # 清理所有未使用的资源
docker container prune # 清理停止的容器
docker image prune # 清理悬空镜像
docker image prune -a # 清理未使用的镜像
docker volume prune # 清理未使用的数据卷
docker network prune # 清理未使用的网络
# 系统信息
docker version # 查看Docker版本
docker info # 查看Docker系统信息
docker system df # 查看磁盘使用情况
docker system events # 查看系统事件WSL
Windows Subsystem for Linux 的管理命令,涵盖发行版安装与卸载、运行控制、文件系统互访及导入导出等操作。
# WSL 基本管理
wsl --list # 列出已安装的发行版
wsl --list --verbose # 列出发行版详细信息(版本、状态)
wsl --list --online # 列出可安装的发行版
wsl --install # 安装默认发行版(Ubuntu)
wsl --install -d <发行版名> # 安装指定发行版
wsl --unregister <发行版名> # 卸载发行版
wsl --set-default <发行版名> # 设置默认发行版
wsl --set-version <发行版名> <版本> # 转换发行版WSL版本(1或2)
# WSL 运行控制
wsl # 启动默认发行版
wsl -d <发行版名> # 启动指定发行版
wsl -u <用户名> # 以指定用户身份启动
wsl --shutdown # 关闭所有WSL实例
wsl -t <发行版名> # 终止指定发行版
# 文件系统访问
wsl --mount <磁盘> # 挂载物理磁盘
wsl --unmount <磁盘> # 卸载磁盘
\\wsl$\ # Windows资源管理器访问WSL文件
/mnt/c/ # WSL中访问Windows C盘
# 命令执行
wsl <命令> # 在默认发行版中执行命令
wsl -d <发行版名> <命令> # 在指定发行版中执行命令
wsl --exec <命令> # 不使用默认shell执行命令
# WSL配置
wsl --status # 显示WSL状态信息
wsl --version # 显示WSL版本信息
wsl --update # 更新WSL内核
wsl --help # 显示帮助信息
# 导入导出
wsl --export <发行版名> <文件路径> # 导出发行版为tar文件
wsl --import <新发行版名> <安装路径> <tar文件> # 导入发行版Conda/Mamba
Python 环境管理工具的常用命令,详见嵌入内容。
常用 conda/mamba 命令速查
指向原始笔记的链接 # 环境管理 mamba create -n myenv python=3.9 # 创建环境 mamba create -n myenv --clone base # 克隆环境 conda activate myenv # 激活环境(mamba 一般使用 conda 来激活) conda deactivate # 退出环境 mamba env list # 列出所有环境 mamba remove -n myenv # 删除环境 mamba env export > environment.yml # 导出完整环境 mamba env export --from-history > environment-min.yml # 仅导出显式安装的包 mamba env create -f environment.yml # 从文件创建环境 # 环境更新 mamba update -n myenv --all # 更新指定环境中所有包 mamba env update -n myenv -f environment.yml # 按文件更新环境 mamba env update -n myenv -f environment.yml --prune # 同步并移除文件中未列出的包 mamba list --revisions # 查看当前环境的修订历史 mamba install --revision 3 # 回滚到修订版本 3 # 包管理 mamba install numpy pandas # 安装包 mamba install -c conda-forge scipy # 从指定频道安装 mamba update numpy # 更新单个包 mamba remove numpy # 卸载包 mamba list # 列出已安装包 mamba search numpy # 搜索包 mamba info numpy # 查看包信息(版本、构建、依赖等) # 依赖与关系查询(repoquery) mamba repoquery depends numpy # 查看 numpy 的依赖 mamba repoquery depends --tree numpy # 依赖树视图 mamba repoquery whoneeds numpy # 哪些包依赖 numpy(反向依赖) mamba repoquery depends --installed numpy # 在当前已安装环境里看依赖 mamba repoquery whoneeds --installed numpy # 在当前已安装环境里看反向依赖 # 频道管理 mamba config --add channels conda-forge # 添加频道 mamba config --show channels # 查看频道列表 mamba config --remove channels conda-forge # 移除频道 mamba config --set channel_priority strict # 设置频道优先级为严格 # 缓存和清理 mamba clean --all # 清理索引、包、tar 等所有缓存 mamba clean -p # 清理包缓存 mamba clean -t # 清理 tar 包