包管理器选择
从轻到重: venv → virtualenv → conda
- venv: Python 3.3+ 内置,轻量级虚拟环境
- virtualenv: 第三方包,支持更多Python版本
- conda: 科学计算友好,包含包管理和环境管理
Python 版本支持
查看各版本支持状态:Status of Python versions
推荐: 如果需要进行科学计算、数据分析,使用 numpy、scipy 等有 C 扩展的第三方模块,特别是在 Windows 系统上,建议直接使用 Anaconda,可以减少很多麻烦。
Conda 环境管理
基本概念
- Anaconda: 包含了 Python、常见的数据扩展包、conda 工具
- 安装路径:
/anaconda3/bin
- 文档: https://conda.io/docs
环境管理命令
# 创建环境
conda create -n py39 python=3.9 anaconda # 包含科学计算库
conda create -n py39 python=3.9 # 基础环境# 激活和退出环境
conda activate py39
conda deactivate# 环境管理
conda env list # 列出所有环境
conda info --envs # 列出所有环境(同上)
conda env remove -n py39 # 删除环境# 包管理
conda install tensorflow # 安装包
conda install -c conda-forge package_name # 从指定频道安装
conda list # 列出当前环境所有包
conda update package_name # 更新包
conda remove package_name # 删除包# 查看信息
conda info # 查看conda信息
python -c 'import tensorflow;print(tensorflow.__version__)' # 测试安装
pip 包管理
镜像源配置
# 永久配置(推荐)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 临时使用镜像源安装
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install package_name -i http://pypi.douban.com/simple --trusted-host pypi.douban.com# 查看当前配置
pip config list# 常用镜像源
# 清华: https://pypi.tuna.tsinghua.edu.cn/simple
# 豆瓣: http://pypi.douban.com/simple
# 中科大: https://pypi.mirrors.ustc.edu.cn/simple/
基本安装命令
# 安装包
pip install package_name # 安装最新版本
pip install package_name==1.0.0 # 安装指定版本
pip install package_name>=1.0.0 # 安装指定版本以上# 安装选项
pip install --upgrade package_name # 升级包
pip install --ignore-installed package_name # 忽略已安装包重新安装
pip install --user package_name # 安装到用户目录# 卸载包
pip uninstall package_name# 查看信息
pip list # 列出所有包
pip show package_name # 显示包详细信息
pip config list # 查看pip配置(同上镜像源配置中的命令)
环境复制和管理
# 生成当前环境包列表
pip freeze > requirements.txt# 从requirements文件安装
pip install -r requirements.txt# 示例输出
# docutils==0.11
# Jinja2==2.7.2
# MarkupSafe==0.19
# Pygments==1.6
# Sphinx==1.2.2
venv 虚拟环境
创建和使用
# 创建虚拟环境
python3 -m venv myvenv# 激活环境
source myvenv/bin/activate # Linux/Mac
myvenv\Scripts\activate # Windows# 退出环境
deactivate# 在激活的环境中操作
pip install --upgrade pip # 升级pip
pip install requests # 安装包# 删除环境
rm -rf myvenv
virtualenv 虚拟环境
基本使用
# 创建虚拟环境
virtualenv ENV# 激活环境
source ENV/bin/activate # Linux/Mac
ENV\Scripts\activate # Windows# 退出环境
deactivate# 删除环境
rm -rf ENV
Python 版本管理
查看版本
python --version # 查看Python版本
python3 --version # 查看Python3版本
pip --version # 查看pip版本# 查看Python路径
which python # Linux/Mac
where python # Windows
切换版本(使用pyenv推荐)
# 安装pyenv后
pyenv install 3.9.0 # 安装Python版本
pyenv global 3.9.0 # 设置全局版本
pyenv local 3.9.0 # 设置项目版本
pyenv versions # 列出所有版本
快速开发服务
HTTP 服务器
# Python 2
python -m SimpleHTTPServer 7878# Python 3
python -m http.server 7878
常用开发包安装示例
数据库相关
pip install mysql-connector-python # MySQL连接器
pip install psycopg2 # PostgreSQL连接器
科学计算
# 通过conda安装(推荐)
conda install numpy pandas matplotlib scipy jupyter# 通过pip安装
pip install numpy pandas matplotlib scipy jupyter
环境迁移最佳实践
方案一:使用 requirements.txt
# 在原环境中
pip freeze > requirements.txt# 在新环境中
pip install -r requirements.txt
方案二:使用 conda 环境导出
# 导出环境
conda env export > environment.yml# 创建相同环境
conda env create -f environment.yml
故障排除
常见问题
- Windows 上 C 扩展包安装失败: 使用 Anaconda 或预编译的 wheel 包
- 网络问题: 使用国内镜像源
- 权限问题: 使用虚拟环境避免系统级安装
- 版本冲突: 使用虚拟环境隔离不同项目的依赖
附:
常用命令工具集
搜索和文本处理工具
ripgrep (rg)
rg "搜索内容" /Users/renzhibin/mycode/keploy
ag - 快速搜索工具
ag:比grep、ack更快的递归搜索文件内容
cloc - 代码统计
cloc /Users/renzhibin/mycode/keploy # 统计代码行数
fzf - 模糊搜索
fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美
tldr - 命令帮助工具
tldr 命令名 # 查看命令的简化帮助文档
# 示例:tldr tar, tldr grep, tldr find
sed - 文本替换
# 循环替换子目录
find . -type f|xargs sed -i 's/测试/哦也/'
grep -l -i -R '* 100' ./*|xargs sed -i '' 's/* 100//g'
SED正则表达式规则
位置符号:
^
: 表示句首,如 ^abc 表示以 abc 开始的句子$
: 表示句尾,如 abc$ 表示以 abc 结尾的句子<
: 表示词首,如 <abc 表示以 abc 开始的词>
: 表示词尾,如 abc> 表示以 abc 结尾的词
数量控制符:
*
: 前一个字符出现0或多次?
: 前一个字符出现0或1次+
: 前一个字符出现1或多次{n}
: 前一个字符出现n次{n,}
: 前一个字符出现至少n次{n,m}
: 前一个字符出现n到m次
字符集:
.
: 任意字符[:alnum:]
: 字母数字 [a-z A-Z 0-9][:alpha:]
: 字母 [a-z A-Z][:digit:]
: 数字 [0-9][:space:]
: 空格
文件压缩和解压
tar 压缩解压
# 压缩
tar -czvf 文件名.tar.gz 文件或目录路径
# 示例:tar -czvf logs.tar.gz /var/log# 解压
tar -xzvf 文件名.tar.gz 文件或目录路径
系统进程和端口管理
端口查看
lsof -i :端口号
进程目录查看
pwdx pid # 找到进程的文件路径
进程信息查看
ps -eo pid,cmd,etime,lstart
ps -eo pid,rss | awk '{ sum += $2 } END { print sum/1024.0/1024.0 }' # 进程内存统计
端口测试工具
telnet
# 成功示例
telnet 127.0.0.1 80
# 输出:Connected to 127.0.0.1# 失败示例
telnet 127.0.0.1 8080
# 输出:Connection refused
nc (netcat)
# 成功
nc -zv 127.0.0.1 80
# 输出:Connection to 127.0.0.1 80 port [tcp/http] succeeded!# 失败
nc -zv 127.0.0.1 8080
# 输出:Connection refused
SSH端口测试
ssh -v ip -p port
curl端口测试
curl -v 127.0.0.1:80
wget端口测试
wget 127.0.0.1:80
lsof本地端口查看
lsof -i:port
netstat网络连接查看
netstat -lntp
# -l 列出所有端口
# -n 以数字显示地址和端口
# -t 列出tcp协议连接,-u列出udp连接,-a列出所有
# -p 显示占用该端口的进程
系统信息查看
内存查看
# 整体内存
free -h# 进程占用常驻内存
ps -eo pid,rss | awk '{ sum += $2 } END { print sum/1024.0/1024.0 }'
Linux发行版查看
lsb_release -a
cat /etc/centos-release
软连接查看
readlink -f /usr/bin/java
# 硬链:stat 或 ls -i 通过inode来确认是否为同一文件
会话管理工具
screen
sudo apt install screen # Ubuntu/Debian安装
screen # 创建新会话
screen -S <session_name> # 创建命名会话
screen -ls # 列出所有会话
screen -r <session_name> # 恢复会话
screen -d <session_name> # 强制分离会话
screen -X -S <PID> quit # 终止会话# 快捷键:Ctrl+A 再按 D 脱离会话
tmux
tmux new -s my_session # 创建会话
tmux attach -t model_training # 连接会话
tmux kill-session -t my_session # 终止会话# 快捷键:Ctrl+B, D 分离会话
数据库
MySQL
brew services start mysql
mysql -u root# 默认密码
Root@123456
包管理工具
Homebrew (macOS)
# 安装前路径:/usr/local
# 重新安装后路径:/opt/homebrewbrew services start mysql
brew edit openresty
参考链接:Homebrew相关文章
Chocolatey (Windows)
$env:PATH = $env:PATH + ';C:\ProgramData\chocolatey\bin'
choco install make
开发工具
Java相关
SonarQube
mvn sonar:sonar \-Dsonar.host.url=http://localhost:9000 \-Dsonar.login=sqa_7a58a86056fdcf4be71ce0dde36f4dc12b533fc2 \-Dsonar.java.binaries=target/sonar
IntelliJ IDEA
代码优化
- 全选代码:
Ctrl + A
- 格式化代码:
Ctrl + Alt + L
代码跳转
- 返回前一位置:
Alt + 左箭头
(Windows/Linux) 或Command + [
(Mac) - 或点击导航栏的 “Navigate Back” 按钮
注释
- 切换到块注释模式后,使用
Ctrl + /
或Cmd + /
添加多行注释
Sublime Text
多行编辑
- 鼠标选中多行,按下
Ctrl + Shift + L
(Command + Shift + L
) 同时编辑多行 - 选中文本后反复按
Ctrl + D
(Command + D
) 继续选中下一个相同文本
列编辑模式
- 按住
Alt
(Windows/Linux) 或Option
(Mac),拖动鼠标选中列区域 - 在列选择状态下输入内容,可在多行统一添加
文件操作工具
macOS剪贴板
# 复制文件内容到剪贴板
cat your_file.txt | pbcopy# 从剪贴板粘贴内容
pbpaste
文件传输
scp /local/file user@remote_host:/remote/path/
macOS快捷键
基本操作
- 退出应用:
Command + Q
- 关闭标签页:
Command + W
- 刷新:
Command + R
- 新建标签页:
Command + T
- 截屏:
Shift + Command + 5
系统操作
- 全屏切换:
Ctrl + Command + F
- 显示桌面:
Command + F3
- 锁屏:
Shift + Control + 电源键
- 隐藏程序坞:
Command + Option + D
Terminal/iTerm快捷键
- 行首:
Ctrl + A
- 行尾:
Ctrl + E
- 清屏:
Ctrl + L
- 搜索历史命令:
Ctrl + R
- 清除当前行:
Ctrl + U
- 清除到行尾:
Ctrl + K
- 按单词移动:
Option + 方向键
- 翻页:
Ctrl + F
/Ctrl + B
应用权限修复
# 修复"应用已损坏"问题
sudo xattr -r -d com.apple.quarantine /Applications/xxxx.app
系统路径
CentOS
/media/psf/Downloads # 共享目录路径
标准输入输出
- 0: 标准输入 (stdin)
- 1: 标准输出 (stdout)
- 2: 标准错误 (stderr)
内网穿透
推荐工具:4.2K Star!一个开源内网穿透工具!优秀!
Git相关
(此处可以添加具体的Git命令)