常用命令
git
配置
命令 | 描述 |
---|---|
git config --global user.name "FedJavaScript" | 配置全局用户名 |
git config --global user.email "FedJavaScript@example.com" | 配置全局邮箱 |
git config --list | 查看配置信息 |
git config --global core.editor "vim" | 设置默认编辑器 |
git config --global alias.<shortname> <command> | 创建命令别名 |
仓库管理
命令 | 描述 |
---|---|
git init | 初始化新仓库 |
git clone <repository-url> | 克隆远程仓库 |
git clone -b <branch-name> <repository-url> | 克隆指定分支 |
git remote rename <old-name> <new-name> | 重命名远程仓库 |
git remote rm <remote-name> | 删除远程仓库 |
工作区管理
命令 | 描述 |
---|---|
git status | 查看工作区状态 |
git status -s | 查看简化状态信息 |
git clean -n | 查看哪些文件会被删除 |
git clean -f | 强制删除未跟踪的文件 |
git clean -fd | 强制删除未跟踪的文件和目录 |
分支管理
命令 | 描述 |
---|---|
git branch -v | 查看分支情况 |
git branch <branch-name> | 创建新分支 |
git checkout <branch-name> | 切换分支 |
git checkout -b <branch-name> | 创建并切换分支 |
git branch -d <branch-name> | 删除分支 |
git branch -D <branch-name> | 强制删除分支 |
git branch -m <old-name> <new-name> | 重命名分支 |
git branch --merged | 查看已合并到当前分支的分支 |
git branch --no-merged | 查看未合并到当前分支的分支 |
远程仓库管理
命令 | 描述 |
---|---|
git remote add origin <repository-url> | 添加远程仓库 |
git remote -v | 查看远程仓库 |
git push origin <branch-name> | 推送到远程 |
git pull origin <branch-name> | 拉取远程更新 |
git fetch origin | 获取远程仓库更新 |
git push -u origin <branch-name> | 设置上游分支并推送 |
git push --force | 强制推送(谨慎使用) |
git remote prune origin | 清理已删除的远程分支 |
提交管理
命令 | 描述 |
---|---|
git add <file-name> | 添加指定文件到暂存区 |
git add . | 添加所有更改 |
git commit -m "commit message" | 提交到本地仓库 |
git commit -am "commit message" | 添加并提交 |
git merge <branch-name> | 合并分支 |
git rebase <branch-name> | 变基操作 |
git rebase --continue | 解决冲突后继续变基 |
git revert <commit-id> | 创建反向提交 |
git commit --amend | 修改最近一次提交 |
git cherry-pick <commit-id> | 将指定提交应用到当前分支 |
git reset --soft HEAD^ | 撤销最近一次提交,保留修改 |
git reset --hard HEAD^ | 撤销最近一次提交,丢弃修改 |
git merge 命令用于将指定分支的更改合并到当前分支。以下是详细说明:
- 基本用法:
git merge <branch-name>
将指定分支合并到当前分支git merge --no-ff <branch-name>
创建一个新的合并提交,即使可以快进合并git merge --squash <branch-name>
将目标分支的所有更改压缩成一个提交
- 合并策略:
- 快进合并(Fast-forward):当目标分支是当前分支的直接后继时
- 三方合并:需要解决两个分支间的差异时
- 压缩合并:将多个提交压缩成一个提交
- 冲突处理:
- 当发生冲突时,Git会标记冲突文件
- 手动解决冲突后,使用
git add
标记为已解决 - 使用
git merge --abort
可以取消合并操作
- 最佳实践:
- 合并前先确保当前分支是最新的(git pull)
- 使用
git merge --no-ff
保留分支历史 - 解决冲突时仔细检查代码,确保功能正确
- 相关命令:
git merge --continue
解决冲突后继续合并git merge --abort
取消合并操作git merge -m "message"
指定合并提交信息
暂存区管理
命令 | 描述 |
---|---|
git stash | 保存当前工作进度 |
git stash list | 查看存储的工作进度 |
git stash pop | 恢复最近的进度 |
git stash clear | 删除所有进度 |
git stash save "message" | 保存进度并添加备注 |
git stash apply stash@{n} | 恢复指定的进度 |
git stash drop stash@{n} | 删除指定的进度 |
git stash show -p stash@{n} | 查看指定进度的详细信息 |
日志查看
命令 | 描述 |
---|---|
git log | 查看提交日志 |
git log --oneline | 查看简化日志 |
git log --graph --pretty=oneline --abbrev-commit | 查看图形化日志 |
git log -p <file-name> | 查看指定文件的修改历史 |
git log --author="username" | 查看指定用户的提交记录 |
git log --since="2 weeks ago" | 查看最近两周的提交记录 |
git blame <file-name> | 查看文件的每一行是谁修改的 |
差异查看
命令 | 描述 |
---|---|
git diff | 查看工作区和暂存区的差异 |
git diff --staged | 查看暂存区和最新提交的差异 |
git diff <branch1> <branch2> | 查看两个分支的差异 |
git diff <commit-id1> <commit-id2> | 查看两个提交之间的差异 |
git diff --name-only | 只显示有差异的文件名 |
git diff --word-diff | 逐字比较差异 |
撤销操作
命令 | 描述 |
---|---|
git checkout -- <file-name> | 撤销工作区的修改 |
git reset HEAD <file-name> | 撤销暂存区的修改 |
git reset --hard HEAD | 重置到最新提交 |
git reset --hard <commit-id> | 重置到指定提交 |
git clean -df | 删除所有未跟踪的文件和目录 |
标签管理
命令 | 描述 |
---|---|
git tag | 查看所有标签 |
git tag <tag-name> | 创建标签 |
git tag -a <tag-name> -m "message" | 创建带注释的标签 |
git push origin <tag-name> | 推送标签到远程 |
git push origin --tags | 推送所有标签到远程 |
git tag -d <tag-name> | 删除本地标签 |
git push origin :refs/tags/<tag-name> | 删除远程标签 |
npm
- 官方镜像:https://registry.npmjs.org/
- 淘宝NPM镜像:https://registry.npmmirror.com
- 阿里云NPM镜像:https://npm.aliyun.com
- 腾讯云NPM镜像:https://mirrors.cloud.tencent.com/npm/
- 华为云NPM镜像:https://mirrors.huaweicloud.com/repository/npm/
- 网易NPM镜像:https://mirrors.163.com/npm/
- 中国科学技术大学开源镜像站:http://mirrors.ustc.edu.cn/npm/
- 清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/npm/
项目初始化
命令 | 描述 |
---|---|
npm init | 初始化一个新的 npm 项目 |
npm init -y | 使用默认配置初始化项目 |
npm set init.author.name "name" | 设置默认作者名 |
npm set init.author.email "email" | 设置默认邮箱 |
npm set init.license "MIT" | 设置默认许可证 |
依赖管理
命令 | 描述 |
---|---|
npm install | 安装项目依赖 |
npm install -g <package> | 安装全局包 |
npm install <package> | 安装本地包 |
npm install <package> --save-dev | 安装开发依赖 |
npm install <package>@<version> | 安装特定版本的包 |
npm update <package> | 更新包 |
npm uninstall <package> | 卸载包 |
npm ci | 根据 package-lock.json 安装依赖 |
npm audit | 检查项目依赖中的安全漏洞 |
npm audit fix | 自动修复可修复的安全漏洞 |
npm dedupe | 删除重复的依赖 |
npm outdated | 检查过时的包 |
包信息查看
命令 | 描述 |
---|---|
npm list | 查看已安装的包 |
npm list -g | 查看全局已安装的包 |
npm list --depth=0 | 查看顶层依赖 |
npm view <package> | 查看包的详细信息 |
npm view <package> versions | 查看包的所有版本 |
npm view <package> dependencies | 查看包的依赖关系 |
npm search <keyword> | 搜索包 |
项目运行
命令 | 描述 |
---|---|
npm start | 运行项目 |
npm test | 运行测试 |
npm run <script-name> | 运行自定义脚本 |
npm run-script <script-name> | 运行 package.json 中的脚本 |
npm stop | 停止项目 |
npm restart | 重启项目 |
配置管理
命令 | 描述 |
---|---|
npm config list | 查看 npm 配置 |
npm config set <key> <value> | 设置 npm 配置 |
npm config get <key> | 查看特定配置 |
npm config delete <key> | 删除配置项 |
npm config set registry <url> | 设置镜像源 |
npm cache clean --force | 清除 npm 缓存 |
npm cache verify | 验证缓存数据的有效性 |
发布管理
命令 | 描述 |
---|---|
npm login | 登录 npm 账户 |
npm publish | 发布包 |
npm publish --access public | 发布公共包 |
npm deprecate <package> <message> | 标记包为废弃 |
npm unpublish <package> | 取消发布包 |
npm owner add <user> <package> | 添加包维护者 |
npm owner rm <user> <package> | 移除包维护者 |
npm owner ls <package> | 列出包维护者 |
版本管理
命令 | 描述 |
---|---|
npm version patch | 增加补丁版本号(1.0.0 -> 1.0.1) |
npm version minor | 增加次版本号(1.0.0 -> 1.1.0) |
npm version major | 增加主版本号(1.0.0 -> 2.0.0) |
npm version <version> | 设置指定版本号 |
npm version from-git | 从最近的 git tag 同步版本号 |
npm dist-tag add <pkg>@<version> [<tag>] | 添加版本标签 |
npm dist-tag rm <pkg> <tag> | 删除版本标签 |
npm dist-tag ls [<pkg>] | 列出包的所有标签 |
Linux
文件和目录管理
命令 | 描述 |
---|---|
ls | 列出目录内容 |
ls -l | 以长格式显示目录内容 |
ls -a | 显示所有文件(包括隐藏文件) |
cd <directory> | 切换目录 |
pwd | 显示当前工作目录 |
mkdir <directory> | 创建新目录 |
rm <file> | 删除文件 |
rm -r <directory> | 递归删除目录及其内容 |
cp <source> <destination> | 复制文件或目录 |
mv <source> <destination> | 移动或重命名文件 |
touch <file> | 创建空文件或更新时间戳 |
find <path> -name <pattern> | 按名称搜索文件 |
grep <pattern> <file> | 在文件中搜索文本 |
系统管理
命令 | 描述 |
---|---|
uname -a | 显示系统信息 |
top | 显示进程信息 |
df -h | 显示磁盘使用情况 |
free -h | 显示内存使用情况 |
ps aux | 显示所有进程 |
uptime | 显示系统运行时间 |
date | 显示或设置系统日期和时间 |
who | 显示当前登录用户 |
whoami | 显示当前用户名 |
进程管理
命令 | 描述 |
---|---|
ps | 显示进程状态 |
kill <pid> | 终止指定进程 |
killall <name> | 终止指定名称的所有进程 |
bg | 将进程放到后台运行 |
fg | 将后台进程调到前台 |
jobs | 列出后台作业 |
nohup <command> & | 在后台运行命令,忽略挂起信号 |
网络管理
命令 | 描述 |
---|---|
ifconfig | 显示或配置网络接口 |
ping <host> | 测试网络连接 |
netstat | 显示网络状态 |
ssh <user>@<host> | SSH 远程登录 |
scp <source> <dest> | 安全复制文件 |
wget <url> | 下载文件 |
curl <url> | 传输数据 |
traceroute <host> | 显示到目标主机的路由路径 |
权限管理
命令 | 描述 |
---|---|
chmod <permissions> <file> | 修改文件权限 |
chown <user> <file> | 修改文件所有者 |
chgrp <group> <file> | 修改文件所属组 |
umask | 显示或设置文件创建掩码 |
sudo <command> | 以超级用户权限执行命令 |
su <user> | 切换用户 |
文本处理
命令 | 描述 |
---|---|
cat <file> | 查看文件内容 |
less <file> | 分页查看文件内容 |
head <file> | 查看文件开头部分 |
tail <file> | 查看文件结尾部分 |
tail -f <file> | 实时查看文件更新 |
wc <file> | 统计文件的行数、字数和字节数 |
sort <file> | 对文件内容排序 |
uniq <file> | 去除文件中的重复行 |
cut -d<delimiter> -f<field> <file> | 按分隔符截取文本 |
sed 's/old/new/g' <file> | 文本替换 |
awk '{print $1}' <file> | 文本分析和处理 |
压缩和解压
命令 | 描述 |
---|---|
tar -cvf <archive.tar> <files> | 创建 tar 归档 |
tar -xvf <archive.tar> | 解压 tar 归档 |
gzip <file> | 压缩文件 |
gunzip <file.gz> | 解压 gzip 文件 |
zip <archive.zip> <files> | 创建 zip 归档 |
unzip <archive.zip> | 解压 zip 归档 |
Nginx
基本操作
命令 | 描述 |
---|---|
nginx | 启动 Nginx |
nginx -s stop | 快速关闭 Nginx |
nginx -s quit | 优雅关闭 Nginx |
nginx -s reload | 重新加载配置文件 |
nginx -s reopen | 重新打开日志文件 |
nginx -t | 测试配置文件是否有语法错误 |
nginx -v | 显示 Nginx 版本信息 |
nginx -V | 显示 Nginx 版本和编译信息 |
服务管理(适用于 systemd)
命令 | 描述 |
---|---|
systemctl start nginx | 启动 Nginx 服务 |
systemctl stop nginx | 停止 Nginx 服务 |
systemctl restart nginx | 重启 Nginx 服务 |
systemctl reload nginx | 重新加载 Nginx 配置 |
systemctl status nginx | 查看 Nginx 服务状态 |
systemctl enable nginx | 设置 Nginx 开机自启动 |
systemctl disable nginx | 禁用 Nginx 开机自启动 |
日志管理
| 命令 | 描述 | | ----------------------------------- | ---------------- | ------------ | | tail -f /var/log/nginx/access.log
| 实时查看访问日志 | | tail -f /var/log/nginx/error.log
| 实时查看错误日志 | | cat /var/log/nginx/access.log | grep "关键词"
| 搜索访问日志 | | cat /var/log/nginx/error.log | grep "关键词"
| 搜索错误日志 |
配置文件管理
命令 | 描述 |
---|---|
nginx -t -c /path/to/nginx.conf | 测试特定配置文件 |
vim /etc/nginx/nginx.conf | 编辑主配置文件 |
vim /etc/nginx/conf.d/*.conf | 编辑子配置文件 |
nginx -T | 查看当前 Nginx 最终配置 |
进程管理
| 命令 | 描述 | | ------------------------------------- | -------------------------- | --------------- | | ps aux | grep nginx
| 查看 Nginx 进程 | | kill -HUP $(cat /var/run/nginx.pid)
| 平滑重启 Nginx | | killall nginx
| 强制关闭所有 Nginx 进程 | | fuser -k 80/tcp
| 强制关闭占用 80 端口的进程 |
性能监控
| 命令 | 描述 | | -------------- | -------------------- | ----------------------- | ---------------- | | netstat -anp | grep nginx
| 查看 Nginx 网络连接状态 | | ss -anp | grep nginx
| 查看 Nginx 套接字状态 | | lsof -i :80
| 查看 80 端口占用情况 | | nginx -V 2>&1 | tr ' ' '\n' | grep module
| 查看已安装的模块 |
数据库
MySQL
服务管理
命令 | 描述 |
---|---|
mysql.server start | 启动 MySQL 服务 |
mysql.server stop | 停止 MySQL 服务 |
mysql.server restart | 重启 MySQL 服务 |
mysql.server status | 查看服务状态 |
连接管理
命令 | 描述 |
---|---|
mysql -u root -p | 以 root 用户登录 |
mysql -h host -P port -u user -p | 连接远程数据库 |
exit 或 \q | 退出 MySQL 客户端 |
show processlist | 显示当前连接 |
kill <connection-id> | 终止指定连接 |
数据库操作
命令 | 描述 |
---|---|
show databases | 显示所有数据库 |
create database dbname | 创建数据库 |
drop database dbname | 删除数据库 |
use dbname | 切换数据库 |
show tables | 显示当前数据库的表 |
desc tablename | 显示表结构 |
show create table tablename | 显示建表语句 |
数据操作
命令 | 描述 |
---|---|
select * from tablename | 查询表中所有数据 |
source /path/to/file.sql | 执行 SQL 文件 |
mysqldump -u user -p dbname > backup.sql | 备份数据库 |
mysqldump -u user -p dbname tablename > table_backup.sql | 备份表 |
Redis
服务管理
命令 | 描述 |
---|---|
redis-server | 启动 Redis 服务 |
redis-server /path/to/redis.conf | 使用配置文件启动 |
redis-cli shutdown | 关闭 Redis 服务 |
redis-cli ping | 测试服务是否运行 |
连接管理
命令 | 描述 |
---|---|
redis-cli | 连接本地 Redis |
redis-cli -h host -p port | 连接远程 Redis |
auth password | 认证 |
select index | 选择数据库 |
quit | 退出客户端 |
数据操作
命令 | 描述 |
---|---|
keys pattern | 查找键 |
type key | 查看键的类型 |
ttl key | 查看键的过期时间 |
del key | 删除键 |
exists key | 检查键是否存在 |
expire key seconds | 设置过期时间 |
数据库管理
命令 | 描述 |
---|---|
info | 查看服务器信息 |
dbsize | 查看当前数据库的键数量 |
flushdb | 清空当前数据库 |
flushall | 清空所有数据库 |
save | 同步保存数据到硬盘 |
bgsave | 异步保存数据到硬盘 |
lastsave | 查看最后一次成功保存的时间 |
监控和调试
命令 | 描述 |
---|---|
monitor | 实时打印服务器接收的命令 |
slowlog get N | 查看最近 N 条慢查询记录 |
info memory | 查看内存使用情况 |
client list | 查看客户端连接列表 |
config get parameter | 获取配置参数 |
config set parameter value | 设置配置参数 |
MongoDB
服务管理
命令 | 描述 |
---|---|
mongod | 启动 MongoDB 服务 |
mongod --dbpath <path> | 指定数据库路径启动 |
mongod --port <port> | 指定端口启动 |
mongod --auth | 启用身份验证 |
brew services start mongodb-community | 通过 Homebrew 启动服务 |
brew services stop mongodb-community | 通过 Homebrew 停止服务 |
连接管理
命令 | 描述 |
---|---|
mongosh | 连接本地 MongoDB |
mongosh "mongodb://host:port" | 连接远程 MongoDB |
mongosh --username <user> --password <pwd> | 带认证连接 |
exit | 退出 MongoDB Shell |
show dbs | 显示所有数据库 |
use <database> | 切换数据库 |
集合操作
命令 | 描述 |
---|---|
show collections | 显示所有集合 |
db.createCollection("name") | 创建集合 |
db.<collection>.drop() | 删除集合 |
db.<collection>.stats() | 查看集合统计信息 |
db.<collection>.count() | 统计文档数量 |
文档操作
命令 | 描述 |
---|---|
db.<collection>.find() | 查询所有文档 |
db.<collection>.find({key: value}) | 条件查询 |
db.<collection>.findOne() | 查询单个文档 |
db.<collection>.insertOne({}) | 插入单个文档 |
db.<collection>.insertMany([]) | 插入多个文档 |
db.<collection>.updateOne({}, {$set: {}}) | 更新单个文档 |
db.<collection>.updateMany({}, {$set: {}}) | 更新多个文档 |
db.<collection>.deleteOne({}) | 删除单个文档 |
db.<collection>.deleteMany({}) | 删除多个文档 |
索引管理
命令 | 描述 |
---|---|
db.<collection>.getIndexes() | 查看所有索引 |
db.<collection>.createIndex({field: 1}) | 创建索引 |
db.<collection>.dropIndex("index_name") | 删除指定索引 |
db.<collection>.dropIndexes() | 删除所有索引 |
用户管理
命令 | 描述 |
---|---|
db.createUser() | 创建用户 |
db.dropUser("username") | 删除用户 |
show users | 显示当前数据库用户 |
db.auth("username", "password") | 认证用户 |
备份和恢复
命令 | 描述 |
---|---|
mongodump --db dbname | 备份数据库 |
mongodump --collection collection | 备份集合 |
mongorestore --db dbname dump/dbname | 恢复数据库 |
mongoexport --collection collection --db database | 导出数据 |
mongoimport --collection collection --db database | 导入数据 |
PM2
基本操作
| 命令 | 描述 | | ------------------------------------- | ---------------------------- | ---------------------- | | pm2 start app.js
| 启动应用 | | pm2 stop app_name | id
| 停止应用 | | pm2 restart app_name | id
| 重启应用 | | pm2 reload app_name | id
| 重载应用(零停机重启) | | pm2 delete app_name | id
| 删除应用 | | pm2 start app.js --name custom-name
| 以自定义名称启动应用 | | pm2 start app.js -i max
| 以集群模式启动(最大进程数) |
监控和管理
| 命令 | 描述 | | ------------------- | ---------------- | ---------------- | | pm2 list
| 显示所有应用状态 | | pm2 monit
| 监控所有应用 | | pm2 logs
| 显示所有应用日志 | | pm2 logs app_name
| 显示指定应用日志 | | pm2 flush
| 清空所有日志 | | pm2 show app_name | id
| 显示应用详细信息 | | pm2 status
| 显示所有应用状态 |
配置管理
命令 | 描述 |
---|---|
pm2 ecosystem | 生成配置文件模板 |
pm2 start ecosystem.config.js | 使用配置文件启动 |
pm2 reload ecosystem.config.js | 重载配置文件 |
pm2 save | 保存当前进程列表 |
pm2 startup | 生成开机自启动脚本 |
pm2 unstartup | 移除开机自启动脚本 |
集群和扩展
命令 | 描述 |
---|---|
pm2 scale app +3 | 增加 3 个实例 |
pm2 scale app 2 | 设置实例数量为 2 |
pm2 reload all | 零停机重载所有应用 |
pm2 gracefulReload all | 优雅重载所有应用 |
更新和维护
命令 | 描述 |
---|---|
pm2 update | 更新 PM2 |
pm2 reset | 重置元数据 |
pm2 ping | 检查 PM2 是否运行 |
pm2 report | 生成系统诊断报告 |
pm2 link | 连接到 PM2 Plus 监控服务 |