包管理器選擇
從輕到重: 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命令)