Skip to content

常用命令

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 命令用于将指定分支的更改合并到当前分支。以下是详细说明:

  1. 基本用法:
  • git merge <branch-name> 将指定分支合并到当前分支
  • git merge --no-ff <branch-name> 创建一个新的合并提交,即使可以快进合并
  • git merge --squash <branch-name> 将目标分支的所有更改压缩成一个提交
  1. 合并策略:
  • 快进合并(Fast-forward):当目标分支是当前分支的直接后继时
  • 三方合并:需要解决两个分支间的差异时
  • 压缩合并:将多个提交压缩成一个提交
  1. 冲突处理:
  • 当发生冲突时,Git会标记冲突文件
  • 手动解决冲突后,使用git add 标记为已解决
  • 使用git merge --abort 可以取消合并操作
  1. 最佳实践:
  • 合并前先确保当前分支是最新的(git pull)
  • 使用git merge --no-ff 保留分支历史
  • 解决冲突时仔细检查代码,确保功能正确
  1. 相关命令:
  • 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

项目初始化

命令描述
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 监控服务
既来之,则安之。