Windows PowerShell 常用指令
文件和目录操作
列出目录内容
Get-ChildItem/ls- 列出当前目录内容ls -Force- 显示隐藏文件ls -Recurse- 递归列出所有子目录ls | Sort-Object Length -Descending- 按文件大小排序
切换目录
Set-Location <路径>/cd- 切换目录cd ~- 返回用户主目录cd ..- 返回上级目录cd -- 返回上一个目录
创建文件和目录
New-Item -ItemType Directory <名称>/mkdir- 创建目录New-Item -ItemType File <名称>/ni- 创建文件
复制、移动和删除
-
Copy-Item <源> <目标>复制文件 -
Move-Item <源> <目标>/mv- 移动/重命名文件 -
Remove-Item <路径>删除文件
查看文件
Get-Content <文件>/cat- 查看文件内容Get-Content <文件> -Tail 10- 查看最后 10 行Get-Content <文件> -Wait- 实时查看文件更新(类似 tail -f)Test-Path <路径>- 检查路径是否存在
以默认方式打开文件或目录
start filename打开当前目录下的指定文件code filename使用vscode打开code .使用vscode打开当前目录
文本处理和搜索
Select-String <模式> <文件>- 在文件中搜索文本(类似 grep)Select-String "error" *.log- 在所有 log 文件中搜索ls -Recurse | Select-String "TODO"- 递归搜索Out-File <文件>- 输出重定向到文件Tee-Object <文件>- 同时输出到控制台和文件
系统信息和管理
进程管理
Get-Process/ps- 查看进程列表Get-Process | Sort-Object CPU -Descending | Select-Object -First 5- CPU 占用最高的 5 个进程Stop-Process -Name <进程名>- 结束进程
服务管理
Get-Service- 查看服务列表Get-Service | Where-Object {$_.Status -eq "Running"}- 只显示运行中的服务Start-Service <服务名>- 启动服务Stop-Service <服务名>- 停止服务
系统信息
Get-ComputerInfo- 查看计算机信息Get-NetIPAddress- 查看网络配置Get-Disk- 查看磁盘信息Get-Volume- 查看卷信息systeminfo- 显示详细系统信息
环境变量
$env:PATH- 查看 PATH 环境变量$env:变量名 = "值"- 设置临时环境变量[Environment]::SetEnvironmentVariable("变量名", "值", "User")- 永久设置
网络操作
Test-Connection <主机>/ping- 测试网络连接Invoke-WebRequest <URL>/curl- 发送 HTTP 请求Invoke-WebRequest -Uri <URL> -OutFile <文件>- 下载文件Get-NetTCPConnection- 查看 TCP 连接ipconfig- 查看 IP 配置ipconfig /flushdns- 刷新 DNS 缓存
实用命令
Clear-Host/cls- 清屏Get-History/history- 查看命令历史Get-Help <命令>- 获取帮助Get-Help <命令> -Examples- 查看使用示例Get-Command- 列出所有可用命令Get-Command *process*- 搜索包含 process 的命令Get-Alias- 查看所有别名Measure-Object- 统计对象Start-Process <程序>- 启动程序Get-Location/pwd- 显示当前路径
Linux Terminal 常用指令
文件和目录操作
列出目录
ls- 列出目录内容ls -l- 长格式显示(详细信息)ls -a- 显示隐藏文件ls -lh- 人性化显示文件大小ls -lt- 按修改时间排序ls -lS- 按文件大小排序ls -R- 递归列出所有子目录
切换目录
cd <路径>- 切换目录cd/cd ~- 返回主目录cd ..- 返回上级目录cd -- 返回上一个目录pwd- 显示当前完整路径
创建
mkdir <目录名>- 创建目录mkdir -p a/b/c- 递归创建多级目录touch <文件名>- 创建空文件或更新时间戳
复制、移动和删除
cp <源> <目标>- 复制文件cp -r <源目录> <目标>- 递归复制目录cp -i <源> <目标>- 交互式复制(覆盖前询问)mv <源> <目标>- 移动/重命名文件rm <文件>- 删除文件rm -r <目录>- 递归删除目录rm -f <文件>- 强制删除rm -rf <目录>- 强制递归删除(危险!)rm -i <文件>- 交互式删除(推荐)
链接
ln -s <源> <链接名>- 创建符号链接readlink -f <链接>- 查看链接目标
文件查看和编辑
查看文件
cat <文件>- 显示文件内容cat -n <文件>- 显示行号less <文件>- 分页查看(可前后翻页)more <文件>- 分页查看(只能向前)head <文件>- 查看文件开头head -n 20 <文件>- 查看前 20 行tail <文件>- 查看文件末尾tail -n 20 <文件>- 查看最后 20 行tail -f <文件>- 实时查看文件更新tail -f <文件> | grep "error"- 实时过滤查看
编辑文件
nano <文件>- 简单文本编辑器vim <文件>/vi <文件>- 强大的文本编辑器
统计文件
wc <文件>- 统计文件wc -l <文件>- 统计行数wc -w <文件>- 统计单词数wc -c <文件>- 统计字节数
文件搜索和查找
find 命令
find <路径> -name <名称>- 按名称查找find . -name "*.txt"- 查找所有 txt 文件find . -type f -name "*.log"- 查找文件(不含目录)find . -type d -name "node_modules"- 查找目录find . -mtime -7- 查找 7 天内修改的文件find . -size +100M- 查找大于 100MB 的文件find . -name "*.tmp" -delete- 查找并删除
grep 命令
grep <模式> <文件>- 搜索文本grep -r "TODO" .- 递归搜索当前目录grep -i "error" log.txt- 忽略大小写grep -n "function" code.js- 显示行号grep -v "debug" log.txt- 反向匹配(不包含)grep -E "error|warning" log.txt- 使用正则表达式grep -c "error" log.txt- 统计匹配行数
其他查找工具
locate <文件名>- 快速查找文件updatedb- 更新 locate 数据库which <命令>- 查找命令位置whereis <程序>- 查找程序位置
文件权限
chmod <权限> <文件>- 修改文件权限chmod 755 script.sh- 数字方式(rwxr-xr-x)chmod +x script.sh- 添加执行权限chmod -R 644 directory/- 递归修改chown <用户>:<组> <文件>- 修改所有者chgrp <组> <文件>- 修改所属组umask- 查看或设置默认权限掩码
进程管理
查看进程
ps- 查看进程ps aux- 查看所有进程详细信息ps -ef- 另一种格式ps aux | grep <进程名>- 搜索特定进程top- 实时查看系统资源(按 q 退出)htop- 增强版 top
管理进程
kill <PID>- 结束进程kill -9 <PID>- 强制结束killall <进程名>- 按名称结束进程pkill <进程名>- 按模式匹配结束bg- 将任务放到后台fg- 将后台任务调到前台jobs- 查看后台任务nohup <命令> &- 后台运行,不受终端关闭影响
磁盘和存储
df -h- 查看磁盘使用情况du -sh <目录>- 查看目录大小du -h --max-depth=1- 查看各子目录大小du -sh * | sort -h- 按大小排序free -h- 查看内存使用lsblk- 列出块设备mount- 挂载文件系统umount- 卸载文件系统
系统信息
uname -a- 完整系统信息uname -r- 内核版本hostname- 主机名whoami- 当前用户id- 用户 ID 和组 IDuptime- 系统运行时间和负载date- 系统时间cal- 日历lsb_release -a- Linux 发行版信息(Ubuntu/Debian)cat /etc/os-release- 系统版本信息
网络操作
连接测试
ping <地址>- 测试网络连接ping -c 4 google.com- 发送 4 个包后停止traceroute <地址>- 追踪路由路径
文件传输
curl <URL>- 发送 HTTP 请求curl -O <URL>- 下载文件(保持原文件名)curl -o <文件名> <URL>- 下载并重命名curl -I <URL>- 只获取 HTTP 头curl -X POST -d "data" <URL>- 发送 POST 请求wget <URL>- 下载文件wget -c <URL>- 断点续传
远程连接
ssh <用户>@<主机>- SSH 连接ssh -p <端口> <用户>@<主机>- 指定端口scp <源> <用户>@<主机>:<目标>- 安全复制文件scp -r <目录> <用户>@<主机>:<目标>- 复制目录
网络信息
netstat -tuln- 查看网络端口(传统)ss -tuln- 查看网络端口(现代)ip addr/ifconfig- 查看网络接口nslookup <域名>- DNS 查询dig <域名>- DNS 详细查询
压缩和解压
tar 格式
tar -czf <文件.tar.gz> <目录>- 压缩为 tar.gztar -xzf <文件.tar.gz>- 解压 tar.gztar -xzf <文件.tar.gz> -C <目标目录>- 解压到指定目录tar -tvf <文件.tar.gz>- 查看压缩包内容
zip 格式
zip -r <文件.zip> <目录>- 创建 zip 压缩包unzip <文件.zip>- 解压 zipunzip <文件.zip> -d <目标目录>- 解压到指定目录
gzip 格式
gzip <文件>- 压缩为 .gzgunzip <文件.gz>- 解压 .gz
文本处理工具
sed(流编辑器)
sed 's/old/new/g' file.txt- 替换文本sed -i 's/old/new/g' file.txt- 直接修改文件
awk(文本处理)
awk '{print $1}' file.txt- 打印第一列awk -F',' '{print $2}' file.csv- 指定分隔符
排序和去重
sort <文件>- 排序sort -r <文件>- 反向排序sort -n <文件>- 按数字排序uniq <文件>- 去除重复行sort file.txt | uniq- 配合使用uniq -c <文件>- 统计重复次数
其他工具
cut -d',' -f1,3 file.csv- 按分隔符提取列tr 'a-z' 'A-Z' < file.txt- 字符转换
系统管理
用户管理
sudo <命令>- 以管理员权限执行su- 切换用户su -- 切换到 rootpasswd- 修改密码useradd <用户名>- 创建用户userdel <用户名>- 删除用户usermod -aG <组> <用户>- 添加用户到组
服务管理(systemd)
systemctl start <服务>- 启动服务systemctl stop <服务>- 停止服务systemctl restart <服务>- 重启服务systemctl status <服务>- 查看状态systemctl enable <服务>- 设置开机启动journalctl -u <服务>- 查看服务日志
实用快捷键
- Ctrl + C - 终止当前命令
- Ctrl + Z - 暂停当前命令
- Ctrl + D - 退出终端
- Ctrl + L - 清屏
- Ctrl + A - 光标移到行首
- Ctrl + E - 光标移到行尾
- Ctrl + U - 删除光标前的内容
- Ctrl + K - 删除光标后的内容
- Ctrl + R - 搜索命令历史
- Tab - 自动补全
- !! - 执行上一条命令
- !$ - 上一条命令的最后一个参数
其他实用命令
clear- 清屏history- 查看命令历史history | grep <关键词>- 搜索历史命令echo <文本>- 输出文本echo "text" > file.txt- 覆盖写入echo "text" >> file.txt- 追加写入alias <别名>='<命令>'- 创建别名watch <命令>- 定期执行命令watch -n 2 df -h- 每 2 秒更新xargs- 将标准输入转换为命令参数tee <文件>- 同时输出到文件和标准输出
Git 常用指令
SSH 连接
生成 SSH 密钥
ssh-keygen -t ed25519 -C "<邮箱或备注>"- 生成 Ed25519 类型 SSH 密钥ssh-keygen -t rsa -b 4096 -C "<邮箱或备注>"- 生成 RSA 类型 SSH 密钥
查看公钥内容
type ~/.ssh/id_ed25519.pub- 查看公钥内容,用于复制到远程仓库ssh-keygen -y -f ~/.ssh/id_rsa- 从私钥生成对应公钥
上传公钥到远程仓库
- 登录 Git 远程平台(GitHub、GitCode.net 等)
- 找到 Settings → SSH Keys → Add SSH Key
- 粘贴公钥内容,设置 Title
测试 SSH 连接
ssh -T git@gitcode.net- 测试是否成功连接- 成功会显示:
Welcome to GitCode, @用户名! - 失败会显示:
Permission denied (publickey)
- 成功会显示:
使用 SSH 克隆仓库
git clone git@gitcode.net:<用户名>/<仓库名>.git- 克隆仓库git clone -b <分支名> git@gitcode.net:<用户名>/<仓库名>.git- 克隆指定分支
初始化和配置
初始化仓库
git init- 初始化新仓库git clone <URL>- 克隆远程仓库git clone <URL> <目录名>- 克隆到指定目录git clone --depth 1 <URL>- 浅克隆(只克隆最新提交)git clone -b <分支名> <URL>- 克隆指定分支
配置 Git
git config --global user.name "<名字>"- 设置用户名git config --global user.email "<邮箱>"- 设置邮箱git config --list- 查看所有配置git config --global core.editor "vim"- 设置编辑器git config --global alias.st status- 设置别名
基本操作
查看状态
git status- 查看工作区状态git status -s- 简短格式
添加和提交
git add <文件>- 添加文件到暂存区git add .- 添加所有修改git add -A- 添加所有变化(包括删除)git add -p- 交互式添加git commit -m "<消息>"- 提交git commit -am "<消息>"- 添加并提交已跟踪文件git commit --amend- 修改最后一次提交git commit --amend --no-edit- 修改提交但不改消息
推送和拉取
git push- 推送到远程git push origin <分支名>- 推送指定分支git push -u origin <分支名>- 推送并设置上游git push --force/git push -f- 强制推送(危险!)git push --tags- 推送标签git pull- 拉取并合并git pull --rebase- 使用 rebase 方式拉取git fetch- 获取但不合并git fetch --all- 获取所有远程分支git fetch --prune- 获取并清理已删除的远程分支
分支操作
查看分支
git branch- 查看本地分支git branch -a- 查看所有分支(包括远程)git branch -r- 只查看远程分支git branch -v- 查看分支及最后一次提交
创建和切换分支
git branch <分支名>- 创建分支git checkout <分支名>- 切换分支git checkout -b <分支名>- 创建并切换git checkout -b <分支名> origin/<分支名>- 从远程分支创建git switch <分支名>- 切换分支(新语法)git switch -c <分支名>- 创建并切换(新语法)
合并和删除分支
git merge <分支名>- 合并分支git merge --no-ff <分支名>- 非快进合并git merge --squash <分支名>- 压缩合并git branch -d <分支名>- 删除已合并分支git branch -D <分支名>- 强制删除分支git branch -m <旧名> <新名>- 重命名分支git push origin --delete <分支名>- 删除远程分支
查看历史
日志查看
git log- 查看提交历史git log --oneline- 每个提交一行git log --graph- 图形化显示git log --oneline --graph --all- 图形化显示所有分支git log -p- 显示详细差异git log --author="<作者>"- 按作者筛选git log --since="2 weeks ago"- 按时间筛选git log --grep="<关键词>"- 搜索提交消息git log <文件>- 查看文件历史git log --stat- 显示文件统计
差异比较
git diff- 查看未暂存的更改git diff --staged/git diff --cached- 查看已暂存的更改git diff <分支1> <分支2>- 比较分支git diff <提交1> <提交2>- 比较提交git diff HEAD- 比较工作区和最新提交
其他查看命令
git show <提交>- 查看提交详情git show HEAD- 查看最新提交git blame <文件>- 查看每行的修改者git shortlog- 按作者分组显示
撤销和回退
撤销修改
git restore <文件>- 撤销工作区修改(新语法)git restore --staged <文件>- 取消暂存(新语法)git checkout -- <文件>- 撤销修改(旧语法)
重置提交
git reset <文件>- 取消暂存git reset HEAD~- 撤销最后一次提交,保留更改git reset --soft HEAD~- 撤销提交,更改在暂存区git reset --hard HEAD~- 撤销提交并丢弃更改(危险!)git reset --hard <提交>- 重置到指定提交
回退操作
git revert <提交>- 创建新提交来撤销git revert HEAD- 撤销最新提交git clean -fd- 删除未跟踪的文件git clean -n- 预览将要删除的文件
暂存操作(Stash)
git stash- 暂存当前更改git stash save "描述"- 暂存并添加描述git stash list- 查看暂存列表git stash pop- 恢复并删除最新暂存git stash apply- 恢复但不删除暂存git stash apply stash@{0}- 恢复指定暂存git stash drop- 删除最新暂存git stash drop stash@{0}- 删除指定暂存git stash clear- 清空所有暂存git stash show- 查看暂存内容
远程仓库
查看远程
git remote- 查看远程仓库git remote -v- 查看详细信息
管理远程
git remote add <名称> <URL>- 添加远程仓库git remote add origin <URL>- 添加 origingit remote remove <名称>- 删除远程仓库git remote rename <旧名> <新名>- 重命名git remote set-url <名称> <新URL>- 修改 URLgit remote show <名称>- 查看详细信息git remote prune origin- 清理已删除的远程分支引用
标签操作
git tag- 查看所有标签git tag <标签名>- 创建轻量标签git tag -a <标签名> -m "<消息>"- 创建带注释的标签git tag -d <标签名>- 删除本地标签git push origin <标签名>- 推送标签git push origin --tags- 推送所有标签git push origin :refs/tags/<标签名>- 删除远程标签
高级操作
变基(Rebase)
git rebase <分支>- 变基到指定分支git rebase -i HEAD~3- 交互式变基最近 3 个提交git rebase --continue- 解决冲突后继续git rebase --abort- 取消变基
其他高级命令
git cherry-pick <提交>- 将指定提交应用到当前分支git reflog- 查看引用日志(恢复丢失的提交)git bisect start- 开始二分查找问题提交git submodule add <URL>- 添加子模块git submodule update --init- 初始化并更新子模块
.gitignore 配置
New-Item -ItemType File .gitignore创建 .gitignore 文件来忽略不需要跟踪的文件:
# 忽略日志文件
*.log
# 忽略 node_modules 目录
node_modules/
# 忽略环境变量文件
.env
.env.local
# 忽略构建输出
dist/
build/
# 忽略操作系统文件
.DS_Store
Thumbs.db
# 忽略 IDE 配置
.vscode/
.idea/
GitHub CLI 常用指令
认证
gh auth login- 登录 GitHub 账号gh auth status- 查看认证状态gh auth logout- 登出gh auth refresh- 刷新令牌gh config set editor vim- 设置编辑器
仓库操作
创建和克隆
gh repo create- 创建仓库gh repo create <名称>- 创建指定名称的仓库gh repo create --public- 创建公开仓库gh repo create --private- 创建私有仓库gh repo create --clone- 创建并克隆gh repo clone <仓库>- 克隆仓库gh repo clone owner/repo- 克隆指定仓库
查看和管理
gh repo view- 查看仓库信息gh repo view --web- 在浏览器中打开gh repo list- 列出仓库gh repo list <用户名>- 列出指定用户的仓库gh repo list --limit 50- 限制显示数量gh repo fork- Fork 仓库gh repo fork --clone- Fork 并克隆gh repo delete <仓库>- 删除仓库gh repo rename <新名称>- 重命名仓库 orgh repo rename owner/repo 新名字gh repo sync- 同步 fork
Pull Request
创建 PR
gh pr create- 创建 PRgh pr create --title "标题" --body "描述"- 指定标题和描述gh pr create --web- 在浏览器中创建gh pr create --draft- 创建草稿 PR
查看 PR
gh pr list- 列出 PRgh pr list --state open- 只显示开放的gh pr list --author <用户名>- 按作者筛选gh pr list --label <标签>- 按标签筛选gh pr view <编号>- 查看详情gh pr view <编号> --web- 在浏览器中查看gh pr view <编号> --comments- 查看评论
操作 PR
gh pr checkout <编号>- 检出 PR 分支gh pr diff <编号>- 查看差异gh pr merge <编号>- 合并 PRgh pr merge <编号> --squash- 压缩合并gh pr merge <编号> --rebase- 变基合并gh pr close <编号>- 关闭 PRgh pr reopen <编号>- 重新打开gh pr ready <编号>- 标记为准备好
审查 PR
gh pr review <编号>- 审查 PRgh pr review <编号> --approve- 批准gh pr review <编号> --request-changes- 请求更改gh pr review <编号> --comment- 添加评论gh pr checks <编号>- 查看 CI/CD 状态
Issue
创建 Issue
gh issue create- 创建 Issuegh issue create --title "标题" --body "描述"- 指定内容gh issue create --web- 在浏览器中创建gh issue create --label "bug,help wanted"- 添加标签
查看 Issue
gh issue list- 列出 Issuesgh issue list --state open- 只显示开放的gh issue list --assignee <用户名>- 按指派人筛选gh issue list --label <标签>- 按标签筛选gh issue list --author <用户名>- 按作者筛选gh issue view <编号>- 查看详情gh issue view <编号> --web- 在浏览器中查看
操作 Issue
gh issue close <编号>- 关闭 Issuegh issue close <编号> --comment "已修复"- 关闭并评论gh issue reopen <编号>- 重新打开gh issue edit <编号>- 编辑 Issuegh issue edit <编号> --add-label "bug"- 添加标签gh issue comment <编号>- 添加评论gh issue status- 查看状态
Gist
gh gist create <文件>- 创建 Gistgh gist create --public <文件>- 创建公开 Gistgh gist create --desc "描述" <文件>- 添加描述gh gist list- 列出 Gistsgh gist view <ID>- 查看 Gistgh gist view <ID> --web- 在浏览器中查看gh gist edit <ID>- 编辑 Gistgh gist delete <ID>- 删除 Gistgh gist clone <ID>- 克隆到本地
Release
创建和查看
gh release create <标签>- 创建 Releasegh release create v1.0.0 --title "版本 1.0.0" --notes "说明"- 指定内容gh release create v1.0.0 *.zip- 附加文件gh release create v1.0.0 --draft- 创建草稿gh release list- 列出所有 Releasesgh release view <标签>- 查看详情gh release view <标签> --web- 在浏览器中查看
下载和管理
gh release download <标签>- 下载资源gh release download <标签> --pattern "*.zip"- 下载匹配文件gh release delete <标签>- 删除 Releasegh release upload <标签> <文件>- 上传文件
GitHub Actions
工作流管理
gh workflow list- 列出工作流gh workflow view <工作流>- 查看详情gh workflow view <工作流> --web- 在浏览器中查看gh workflow run <工作流>- 触发工作流gh workflow run <工作流> --ref <分支>- 在指定分支运行
运行管理
gh run list- 列出运行记录gh run list --workflow <工作流名>- 按工作流筛选gh run view <运行ID>- 查看详情gh run view <运行ID> --log- 查看日志gh run watch <运行ID>- 实时查看状态gh run rerun <运行ID>- 重新运行gh run cancel <运行ID>- 取消运行
其他功能
浏览和搜索
gh browse- 在浏览器中打开仓库gh browse <文件>- 打开指定文件gh browse --settings- 打开设置gh search repos <关键词>- 搜索仓库gh search repos --stars ">1000"- 按星标搜索gh search repos --language python- 按语言搜索gh search issues <关键词>- 搜索 Issuesgh search prs <关键词>- 搜索 PRs
API 和扩展
gh api <端点>- 调用 GitHub APIgh api user- 获取用户信息gh alias set <别名> <命令>- 创建别名gh extension install <扩展>- 安装扩展gh extension list- 列出扩展
标签和项目
gh label list- 列出标签gh label create <名称>- 创建标签gh project list- 列出项目gh project view <编号>- 查看项目