头像
YIBI

正在加载...

一些常用的编程语句

2026-06-28LinuxMySQLgitDockerNodePython
由于我是记忆力笨蛋,我把经常用到的一些程序执行语句记在此文档之中 ( > w < )

git

  1. 初始化本地仓库(首次使用)
bash
git init
  1. 添加文件到暂存区
bash
git add .                    # 添加所有文件
git add README.md            # 添加单个文件
git add folder/                # 添加整个文件夹
  1. 提交(生成本地版本)
bash
git commit -m "提交消息"
  1. 连接远程仓库
bash
git remote add origin https://github.com/用户名/项目名.git
  1. 推送到远程(首次)
bash
git branch -M main
git push -u origin main
  1. 日常推送(后续)
bash
git add .
git commit -m "更新:添加搜索工具" 
git commit --amend -m "新的提交信息" 		# 修改上一次提交的 message(还没 push 时)
git push
  • 其他
bash
#查看状态与历史
git status                  # 查看当前修改状态
git log                     # 查看提交历史
git log --oneline           # 简洁版历史
git diff                    # 查看未暂存的修改
git diff --staged           # 查看已暂存的修改


#分支管理
git branch                  # 查看所有分支
git branch feature-search   # 创建新分支
git checkout feature-search # 切换到新分支
git checkout -b feature-search # 创建并切换
git merge feature-search    # 合并到当前分支
git branch -d feature-search # 删除分支


#拉取与同步
git pull                    # 拉取远程更新
git pull origin main        # 拉取指定分支
git fetch                   # 获取远程更新但不合并


#撤销与回退
git restore file.py         # 撤销未暂存的修改
git reset HEAD file.py      # 撤销暂存
git reset --soft HEAD~1     # 撤销提交但保留修改
git reset --hard HEAD~1     # 完全回退到上一个版本( HEAD~n: HEAD 的前n个提交)


#标签与发布
git tag v1.0.0              # 创建标签
git push --tags             # 推送所有标签
  • 常用.gitignore
.gitignore
# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
*.so
*.egg
*.egg-info/
dist/
build/
.eggs/
*.log

# 虚拟环境
.venv/
venv/
ENV/
env/

# 系统文件
.DS_Store
Thumbs.db
*.swp
*.swo

# IDE
.vscode/
.idea/
*.iml

python

  1. 运行.py脚本
python							#启动交互式解释器(REPL)
python script.py				#运行 Python 脚本
python -c "print('hello')"		#直接在命令行执行单行 Python 代码
python -m module_name			#以模块方式运行(如 python -m http.server 启动简易 Web 服务器)
py								#(Windows)等同于 python,常用于管理多个版本(如 py -3.9)
  1. 安装python包
pip install package_name				#安装最新版包
pip install package_name==1.2.3			#安装指定版本
pip install package_name>=1.0,<2.0		#安装符合版本范围的包
pip install -r requirements.txt			#批量安装文件中的依赖
pip uninstall package_name				#卸载包
pip list								#列出当前环境已安装的所有包
pip freeze								#以 requirements.txt 格式输出已安装包及版本
pip freeze > requirements.txt			#导出当前环境依赖到文件 requirements.txt 中
pip show package_name					#查看包的详细信息(版本、依赖、位置等)
pip search keyword						#在 PyPI 中搜索包(可能受限,建议用浏览器)
pip cache purge							#清理 pip 下载缓存
pip install --upgrade pip				#升级 pip 自身

​ 使用镜像源

pip install -i https://mirrors.aliyun.com/pypi/simple/numpy						#阿里镜像安装numpy(单次)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/			#设置镜像源为阿里(全局)
pip config list							#查看当前设置的镜像源
pip config unset global.index-url		#恢复默认源

​ 常用镜像源

​ 阿里云:https://mirrors.aliyun.com/pypi/simple/

​ 清华:https://pypi.tuna.tsinghua.edu.cn/simple

  1. 虚拟环境(venv / virtualenv)
python -m venv myenv					#创建名为 myenv 的虚拟环境(Python 3.3+)
source myenv/bin/activate				#(Linux/macOS)	激活虚拟环境
myenv\Scripts\activate					#(Windows)	激活虚拟环境
myenv\Scripts\activate.bat   			# CMD 环境
myenv\Scripts\Activate.ps1  			# PowerShell 环境(可能需要先 Set-ExecutionPolicy)
deactivate								#退出当前虚拟环境
rm -rf myenv							#(Linux/macOS)或 rmdir /s myenv(Windows)	删除虚拟环境(直接删文件夹)
  1. 包开发与发布相关
python setup.py install					#安装本地源码包(旧方式,现在推荐 pip install .)
pip install -e .						#以可编辑模式(开发模式)安装当前目录项目
python setup.py sdist bdist_wheel		#构建源码分发包和 wheel 包
twine upload dist/*						#上传构建好的包到 PyPI(需安装 twine)
  1. 其他实用命令
python -m pip install --upgrade pip	升级 pip(同前)
python -m site	显示 Python 的 site-packages 路径和用户 site 目录
python -c "import sys; print(sys.path)"	快速查看模块搜索路径
python -B	不生成 .pyc 字节码缓存文件
python -O	启用优化模式(移除 assert 等)
python -v	启用详细输出(跟踪导入过程)
where python(Windows)或 which python(Linux/macOS)	查看 Python 解释器路径
pip check	检查当前环境中是否有依赖冲突

Node

  1. 运行时与执行
node							//启动交互式 REPL(按 Ctrl+D 两次退出)
node app.js						//运行 JavaScript 脚本
node -e "console.log('hi')"		//直接执行字符串代码(-e: 直接执行后面的字符串代码)
  1. npm 包管理
//快速启动
npm init -y				//快速创建 package.json(项目配置文件)(-y: 跳过所有提问)
npm install express		//安装包express并写入 dependencies
npm install -D nodemon  //安装开发依赖(热重启)
						//-D: --save-dev的缩写, 这个包只在开发时用到,会被写入package.json 中的devDependencies字段
						//nodemon: 监听文件变化并自动重启 Node 应用的工具) 	

//其他
npm uninstall express	//卸载包
npm list				//列出当前项目所有依赖(树形结构)
npm outdated			//检查哪些包有更新
npm update				//更新包到符合版本范围的最新版	
npm install				//依据 package.json 安装所有依赖
npm audit fix			//自动修复已知的安全漏洞
  1. npx —— 直接运行包
npx create-react-app my-app		//直接用脚手架创建项目(下载create-react-app执行my-app但不保留包)
npx prettier --write .			//运行项目本地安装的 prettier 命令(优先去当前项目的本地寻找prettier)
npx -p typescript tsc			//临时安装并运行 TypeScript 编译器(指定typescript的tsc命令)
  1. package.json 脚本(对标 Makefile / 自定义命令)

package.json 里的 "scripts" 字段是项目最常用的快捷入口。

json
{
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "jest"
  }
}
npm run dev		//执行 dev 脚本
npm start		//特殊简写,等同于 npm run start
npm test		//特殊简写,等同于 npm run test
npm run build	//使用package.json中的build命令

​ 使用镜像源

npm install express --registry=https://registry.npmmirror.com			#淘宝镜像安装numpy(单次)
npm config set registry https://registry.npmmirror.com					#设置镜像源为淘宝(全局)
npm config get registry				#查看当前设置的镜像源
npm config delete registry			#恢复默认源

​ 常用镜像源

​ 淘宝:https://registry.npmmirror.com

​ 华为云:https://mirrors.huaweicloud.com/repository/npm/

  1. 版本管理(对标 pyenv / python -m venv

Node.js 版本切换工具 nvm

nvm install 20			//安装 Node.js 20.x 最新版
nvm use 18				//切换当前终端使用 18.x
nvm list				//列出本地已安装的所有版本
nvm alias default 20	//设置默认版本

Linux

  1. 文件与目录操作
pwd					//显示当前所在路径
ls -la				//列出当前目录所有文件(含隐藏文件,显示详情,-l: 详情,-a :查看隐藏文件(如 .env))	
cd ~				//回家目录(~ 代表 /home/用户名)
cd ..				//回上一层
./script.sh			//相对路径,当前目录下文件
mkdir -p a/b/c		//创建多级目录(不加 -p 只能建一层)
touch main.py		//创建空文件 / 更新时间戳
cp -r source dest	//复制文件或文件夹(-r: 递归,复制文件夹必加)
mv a b				//移动文件
mv old.txt new.txt 	//文件重命名
rm -rf folder		//强制删除(高危!	-r: 递归,-f: 强制)
pip freeze > requirements.txt   // >: 覆盖写入
npm list >> deps.txt            // >>: 追加写入
nano script.py   	//用nano打开文件进行编辑(Ctrl+O 保存,Ctrl+X 退出)
vim script.py    	//用vim打开文件进行编辑(按 i 进入编辑模式,按 ESC 退出编辑,输入':wq'保存退出,':q!'不保存退出)
  1. 查看文件内容
cat app.log				//一次性输出全部内容(文件太大会卡死)
head -n 20 app.log		//看文件前 20 行(检查日志头部信息)
tail -f app.log			//实时追踪日志新增内容(按 Ctrl+C 退出)
grep "ERROR" app.log	//在文件中搜索关键词(配合 tail: tail -f app.log | grep "Error")
less app.log			//分页浏览(上下箭头翻页,按 q 退出,查看超大日志)
  1. 系统资源与进程
top / htop			//实时查看 CPU/内存占用
ps aux | grep node	//查看 Node 相关进程(找后台运行的 Node 进程 PID)
kill -9 PID			//强制杀死进程
df -h				//查看磁盘剩余空间
du -sh *			//查看当前目录下各文件夹大小
  1. 网络与端口
curl ifconfig.me	//查看服务器公网 IP
netstat -tlnp		//查看所有正在监听的端口及对应进程
lsof -i :3000		//直接查看 3000 端口被什么占用
ping baidu.com		//测试网络连通性
  1. 压缩与解压
tar -czvf archive.tar.gz folder/	//压缩文件夹为 .tar.gz(-c: 创建,-z: gzip,-v: 显示过程,-f: 指定文件名)
tar -xzvf archive.tar.gz			//解压 .tar.gz 文件
unzip file.zip						//解压 .zip 文件
  1. 权限管理
chmod +x script.sh			//给脚本添加可执行权限
chmod 600 ~/.ssh/id_rsa		//设置私钥文件为仅本人可读

# 权限数字:读(4) + 写(2) + 执行(1)
# 755 = 主人(7=4+2+1) 同组(5=4+1) 外人(5=4+1) —— 常用于网站文件夹
# 600 = 主人(6=4+2) 同组(0) 外人(0) —— 私钥专用
  1. 后台运行
nohup node app.js &		//后台运行 Node 服务
pm2 start app.js		//pm2进程守护(需安装)

Docker

  1. 镜像与容器管理(最常用三连)
docker ps -a                 # 查看所有容器(含已停止的)(-a: 显示全部, 不加只看运行中)
docker images                # 查看本地已下载的镜像列表
docker pull node:18          # 从仓库拉取镜像(如 Node.js 18 版本)
  1. 运行容器
docker run -d --name myapp -p 3000:3000 node:18  	
# --name: 起名,-d: 后台运行,-p: 宿主机端口
#把容器的 3000 端口映射到node服务器的 3000 端口

docker run -d --name mysql-db -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:8.0
#在初始化时强制设置 MySQL 的 root 密码(-e: 设置环境变量)


docker run -d --restart unless-stopped --name app node:18
#自动重启策略
  1. 查看日志与进入容器内部
docker logs -f container_id  
# 实时查看容器日志(Ctrl+C 退出,类似 tail -f)

docker exec -it container_id /bin/bash  
# 进入容器内部的命令行
# 退出容器终端时输入 exit 回车
  1. 重启停止与删除(清理环境)
docker restart container_name 	#重启单个容器(改完代码,配置后常用)
sudo systemctl restart docker   # 重启整个 Docker 服务
docker stop container_id     # 停止运行中的容器
docker start container_id    # 启动已停止的容器
docker rm container_id       # 删除容器(需先停止)
docker rmi image_id          # 删除镜像(需先删除依赖它的容器)
docker system prune -a       # 极限清理:删除所有停止的容器、未使用的镜像(危险)
  1. Docker Compose(批量管理)
docker-compose up -d         # 后台启动 docker-compose.yml 中定义的所有服务(如前后端+数据库)
docker-compose down          # 停止并删除该编排下的所有容器
docker-compose logs -f       # 查看编排下所有服务的聚合日志
docker-compose restart           # 只重启,不重建镜像
docker-compose up -d --build     # 重建镜像并重启(修改 Dockerfile 后使用)

MySQL

  1. 连接与登录
mysql -u root -p             # 登录本机 MySQL(回车后会提示输入密码)
mysql -u root -p -h 192.168.1.100 -P 3306  		# -h: 指定远程主机IP  -P: 指定端口(默认3306,连接远程库时使用)

mysql -u root -p -e "SHOW DATABASES;"  			# -e: 直接在命令行执行一条 SQL 语句,不进入交互界面
  1. 数据库备份与恢复
mysqldump -u root -p dbname > backup_$(date +%Y%m%d).sql  
# 导出整个数据库(> 覆盖写入) 
# $(date +%Y%m%d) 会自动生成当天的日期,如 backup_20251028.sql

mysqldump -u root -p --no-data dbname > structure.sql  
# 只导出表结构(不要数据),常用于迁移空库

mysql -u root -p dbname < backup.sql  
# 导入备份文件恢复数据库(< 读取文件),如果 dbname 不存在需要先创建
  1. 常用 SQL 快捷操作(登录 mysql> 交互界面)
SHOW DATABASES;              # 查看所有数据库
CREATE DATABASE mydb CHARACTER SET utf8mb4;  # 创建数据库(指定中文编码,utf8mb4: mysql中的UTF-8)
USE mydb;                    # 切换到指定数据库
SHOW TABLES;                 # 查看当前库的所有表
DESC users;                  # 查看 users 表的结构(有哪些字段)
SELECT * FROM users;         # 查询数据
EXIT;                        # 退出 MySQL 交互界面(或按 Ctrl+D)