常用工具命令速查

日常开发中最常用的命令行工具速查手册,涵盖 Linux 系统管理、Git 版本控制、网络请求、文件查找、Docker 容器管理、WSLMamba 环境管理等场景。每个分类内按功能分组,注释说明用途,方便快速定位所需命令。

凭据占位符

文中的 tokenpassworduser 等均为命令示例占位符,不应替换为真实凭据后提交到笔记库。

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 包
 
指向原始笔记的链接