Python开发者必备的30个Linux命令全解析

发布时间:2026/11/4 18:56:45
Python开发者必备的30个Linux命令全解析 1. Python开发者必备的Linux命令全解析作为一名Python开发者掌握Linux命令是提升开发效率的必备技能。无论是服务器部署、日志分析还是日常开发调试Linux命令行都能让我们事半功倍。本文将分享我在多年Python开发中积累的最实用Linux命令集涵盖从基础操作到高级技巧的完整知识体系。2. 基础文件操作命令2.1 文件与目录管理ls命令是使用频率最高的基础命令之一。我习惯使用ls -alh组合参数-a显示隐藏文件-l以长格式显示-h以人类可读格式显示文件大小# 查看当前目录详细内容 ls -alh # 按修改时间排序显示 ls -ltfind命令是文件搜索的瑞士军刀。在Python项目中查找所有.py文件# 查找当前目录及子目录下所有.py文件 find . -name *.py # 查找并删除所有.pyc文件 find . -name *.pyc -exec rm -f {} \;2.2 文件内容查看与处理grep是文本搜索利器结合正则表达式能实现复杂搜索# 在Python文件中搜索特定类定义 grep -n class User *.py # 递归搜索目录忽略大小写 grep -rni sqlalchemy /path/to/project/tail和head是查看日志的必备工具# 实时查看日志更新 tail -f /var/log/app.log # 查看文件前10行 head -n 10 requirements.txt3. 系统监控与进程管理3.1 系统状态监控top和htop是监控系统资源的首选# 基本系统监控 top # 更友好的交互式监控(需安装) htopfree和df查看内存和磁盘使用情况# 查看内存使用(-h人类可读格式) free -h # 查看磁盘空间 df -h3.2 进程管理技巧ps命令配合grep查找特定进程# 查找Python相关进程 ps aux | grep python # 显示进程树结构 pstree -p杀死进程的正确姿势# 先尝试正常终止 kill -15 PID # 强制终止 kill -9 PID # 批量杀死Python进程 pkill -f python.*script_name4. 网络相关命令4.1 网络状态检查netstat查看网络连接状态# 查看所有TCP连接 netstat -tulnp # 查看特定端口占用 netstat -tulnp | grep 8000ss是更现代的替代方案# 显示所有TCP连接 ss -tulnp4.2 网络测试工具curl是HTTP请求测试的瑞士军刀# 简单GET请求 curl http://example.com # 带Header的POST请求 curl -X POST -H Content-Type: application/json -d {key:value} http://api.example.comtelnet测试端口连通性# 测试Redis服务是否可达 telnet redis-host 63795. 开发调试实用命令5.1 Python开发专用命令查看Python模块安装位置# 查看模块安装路径 python -c import sqlalchemy; print(sqlalchemy.__file__) # 检查模块版本 python -c import sqlalchemy; print(sqlalchemy.__version__)虚拟环境管理# 创建虚拟环境 python -m venv myenv # 激活虚拟环境 source myenv/bin/activate5.2 调试与分析工具strace跟踪系统调用# 跟踪Python程序的系统调用 strace -f python script.pytime测量命令执行时间# 测量脚本执行时间 time python script.py6. 高级技巧与组合命令6.1 命令组合与管道统计代码行数# 统计项目Python代码总行数 find . -name *.py | xargs wc -l批量重命名文件# 将所有.txt文件改为.md for f in *.txt; do mv $f ${f%.txt}.md; done6.2 日志分析实战分析Nginx访问日志# 统计访问量前10的IP awk {print $1} access.log | sort | uniq -c | sort -nr | head -10 # 统计HTTP状态码分布 awk {print $9} access.log | sort | uniq -c | sort -nr7. 安全与权限管理7.1 文件权限控制chmod修改文件权限# 设置Python脚本可执行 chmod x script.py # 递归修改目录权限 chmod -R 755 /path/to/directorychown修改文件所有者# 修改文件所有者 chown user:group file.txt # 递归修改目录所有者 chown -R user:group /path/to/directory7.2 SSH相关技巧SSH密钥对管理# 生成SSH密钥对 ssh-keygen -t rsa -b 4096 # 复制公钥到远程服务器 ssh-copy-id userremote-hostSSH端口转发# 本地端口转发(访问本地8080即访问远程80) ssh -L 8080:localhost:80 userremote-host # 远程端口转发 ssh -R 9090:localhost:80 userremote-host8. 实用工具与替代命令8.1 现代替代工具bat替代cat# 语法高亮显示文件内容(需安装bat) bat config.pyexa替代ls# 更友好的目录列表(需安装exa) exa -l --git --icons8.2 开发辅助工具jq处理JSON数据# 格式化JSON输出 curl http://api.example.com | jq . # 提取特定字段 curl http://api.example.com | jq .data[].nametmux终端复用# 新建会话 tmux new -s session_name # 分离会话 Ctrlb d # 列出会话 tmux ls9. 性能优化与系统调优9.1 性能监控命令vmstat查看系统整体性能# 每2秒刷新一次共显示5次 vmstat 2 5iostat监控磁盘IO# 监控磁盘IO使用情况 iostat -dx 29.2 系统调优技巧ulimit查看和设置系统限制# 查看当前限制 ulimit -a # 修改最大文件打开数 ulimit -n 65536sysctl查看和修改内核参数# 查看所有参数 sysctl -a # 临时修改参数 sysctl -w net.core.somaxconn102410. 自动化与脚本编写10.1 Shell脚本基础简单的备份脚本示例#!/bin/bash # 备份Python项目 BACKUP_DIR/backups/projects PROJECT_DIR/home/user/project DATE$(date %Y%m%d) tar -czf $BACKUP_DIR/project_$DATE.tar.gz $PROJECT_DIR echo Backup completed: project_$DATE.tar.gz10.2 定时任务管理crontab设置定时任务# 编辑当前用户的crontab crontab -e # 每天凌晨3点执行备份 0 3 * * * /path/to/backup.sh查看cron日志# Ubuntu系统查看cron日志 grep CRON /var/log/syslog11. 容器化环境命令11.1 Docker基础命令管理Docker容器# 运行Python容器 docker run -it --rm python:3.9 bash # 查看运行中的容器 docker ps # 构建Docker镜像 docker build -t myapp .11.2 Docker Compose技巧常用compose命令# 启动服务 docker-compose up -d # 查看服务日志 docker-compose logs -f # 停止并删除容器 docker-compose down12. 终端效率提升技巧12.1 命令别名设置在~/.bashrc中添加常用别名# Python开发常用别名 alias pycleanfind . -name *.pyc -delete alias venvpython -m venv venv source venv/bin/activate alias pipuppip list --outdated | grep -v ^\-e | cut -d -f 1 | xargs -n1 pip install -U12.2 历史命令优化增强命令历史记录# 在~/.bashrc中添加 export HISTSIZE10000 export HISTFILESIZE20000 export HISTTIMEFORMAT%F %T shopt -s histappend快速搜索历史命令# 使用Ctrlr搜索历史 (reverse-i-search):13. 文件传输与同步13.1 SCP远程文件传输基本文件传输作# 上传文件到远程服务器 scp local_file userremote_host:/remote/directory # 下载远程文件 scp userremote_host:/remote/file local_directory # 递归传输整个目录 scp -r local_dir userremote_host:/remote/directory13.2 Rsync高效同步增量同步文件# 本地目录同步 rsync -avz /source/directory /destination/ # 远程同步 rsync -avz -e ssh /local/dir userremote_host:/remote/dir # 删除目标多余文件 rsync -avz --delete /source/ /destination/14. 文本处理三剑客14.1 awk高级用法提取和处理数据# 提取CSV文件特定列 awk -F , {print $1,$3} data.csv # 统计日志中不同状态码数量 awk {count[$9]} END {for(code in count) print code, count[code]} access.log14.2 sed流编辑器文本替换与处理# 替换文件中的文本 sed -i s/old_text/new_text/g file.txt # 删除空白行 sed /^$/d file.txt # 提取特定行范围 sed -n 10,20p file.txt14.3 xargs并行处理批量操作文件# 批量压缩日志文件 find /var/log -name *.log | xargs -P 4 -I {} gzip {} # 批量修改文件权限 find . -name *.sh | xargs chmod x15. 系统信息查询15.1 硬件信息查询查看CPU和内存信息# CPU信息 lscpu # 内存信息 cat /proc/meminfo # 硬件概览 lshw -short15.2 系统版本信息获取系统版本# Linux发行版信息 cat /etc/*release # 内核版本 uname -a # 系统运行时间 uptime16. 压缩与归档技巧16.1 常见压缩命令不同格式的压缩解压# tar.gz格式 tar -czf archive.tar.gz /path/to/dir tar -xzf archive.tar.gz # zip格式 zip -r archive.zip /path/to/dir unzip archive.zip # 高压缩率xz格式 tar -cJf archive.tar.xz /path/to/dir tar -xJf archive.tar.xz16.2 分卷压缩大文件分卷压缩# 分卷压缩(每卷100M) tar -czvf - /path/to/dir | split -b 100M - archive.tar.gz. # 合并解压 cat archive.tar.gz.* | tar -xzvf -17. 用户与权限管理17.1 用户管理命令用户账户操作# 创建新用户 sudo useradd -m newuser # 设置密码 sudo passwd newuser # 删除用户 sudo userdel -r olduser17.2 用户组管理组操作命令# 创建新组 sudo groupadd newgroup # 将用户加入组 sudo usermod -aG groupname username # 查看用户所属组 groups username18. 环境变量与路径管理18.1 环境变量操作查看和设置环境变量# 查看所有环境变量 env # 查看特定变量 echo $PATH # 临时设置变量 export PYTHONPATH/custom/path # 永久设置(添加到~/.bashrc) echo export PYTHONPATH/custom/path ~/.bashrc18.2 PATH管理修改PATH环境变量# 添加自定义路径到PATH export PATH$PATH:/custom/bin # 查找命令所在路径 which python whereis python19. 系统服务管理19.1 systemd服务管理服务控制命令# 启动服务 sudo systemctl start service_name # 停止服务 sudo systemctl stop service_name # 查看服务状态 sudo systemctl status service_name # 设置开机启动 sudo systemctl enable service_name19.2 日志查看journalctl查看系统日志# 查看服务日志 sudo journalctl -u service_name # 实时查看最新日志 sudo journalctl -f # 按时间筛选 sudo journalctl --since 2023-01-01 --until 2023-01-0220. 终端复用与工作区管理20.1 tmux高级用法tmux会话管理# 新建命名会话 tmux new -s session_name # 分离会话 Ctrlb d # 列出会话 tmux ls # 附加到会话 tmux attach -t session_name # 窗格管理 Ctrlb % # 垂直分割 Ctrlb # 水平分割 Ctrlb 方向键 # 切换窗格20.2 screen替代方案screen基本命令# 新建screen会话 screen -S session_name # 分离会话 Ctrla d # 列出会话 screen -ls # 恢复会话 screen -r session_name21. 性能分析与调试21.1 系统级性能分析perf性能分析工具# 记录性能数据 perf record -g python script.py # 生成报告 perf reportstrace系统调用跟踪# 跟踪Python程序系统调用 strace -f -o trace.log python script.py21.2 Python专用调试py-spy实时Python分析# 采样运行中Python进程(需安装py-spy) py-spy top --pid 1234 # 生成火焰图 py-spy record -o profile.svg --pid 123422. 安全加固命令22.1 防火墙管理ufw防火墙配置# 允许SSH连接 sudo ufw allow ssh # 允许特定端口 sudo ufw allow 8000/tcp # 启用防火墙 sudo ufw enable22.2 安全扫描工具lynis系统安全审计# 运行安全扫描(需安装lynis) sudo lynis audit systemchkrootkitrootkit检查# 检查rootkit(需安装chkrootkit) sudo chkrootkit23. 磁盘管理命令23.1 磁盘分区管理fdisk分区工具# 列出磁盘分区 sudo fdisk -l # 交互式分区 sudo fdisk /dev/sdbmkfs创建文件系统# 创建ext4文件系统 sudo mkfs.ext4 /dev/sdb123.2 磁盘挂载手动挂载分区# 创建挂载点 sudo mkdir /mnt/data # 挂载分区 sudo mount /dev/sdb1 /mnt/data # 自动挂载(添加到/etc/fstab) echo /dev/sdb1 /mnt/data ext4 defaults 0 0 | sudo tee -a /etc/fstab24. 包管理命令24.1 apt/dnf/yum包管理Debian/Ubuntu系统# 更新软件包列表 sudo apt update # 升级已安装包 sudo apt upgrade # 搜索软件包 apt search package_nameRHEL/CentOS系统# 更新系统 sudo dnf update # 安装软件包 sudo dnf install package_name24.2 pip包管理Python包管理技巧# 安装包 pip install package_name # 导出环境 pip freeze requirements.txt # 从文件安装 pip install -r requirements.txt # 升级所有包 pip list --outdated | grep -v ^\-e | cut -d -f 1 | xargs -n1 pip install -U25. 版本控制命令25.1 Git基本操作日常Git工作流# 克隆仓库 git clone https://github.com/user/repo.git # 查看状态 git status # 添加更改 git add . # 提交更改 git commit -m commit message # 推送更改 git push origin branch_name25.2 Git高级技巧分支管理# 创建新分支 git checkout -b feature_branch # 合并分支 git merge feature_branch # 变基操作 git rebase main历史修改# 修改最后一次提交 git commit --amend # 交互式变基 git rebase -i HEAD~326. 正则表达式实战26.1 grep正则搜索复杂模式匹配# 匹配IP地址 grep -Eo ([0-9]{1,3}\.){3}[0-9]{1,3} file.txt # 匹配邮箱地址 grep -Eo \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\b file.txt26.2 sed正则替换高级文本替换# 替换日期格式(MM/DD/YYYY - YYYY-MM-DD) sed -E s#([0-9]{2})/([0-9]{2})/([0-9]{4})#\3-\1-\2#g dates.txt # 删除HTML标签 sed s/[^]*//g file.html27. 时间与日期处理27.1 日期格式化date命令使用# 当前日期时间 date %Y-%m-%d %H:%M:%S # 时间戳转换 date -d 1630000000 # 计算时间差 start$(date %s) # 执行命令... end$(date %s) echo 耗时: $((end-start))秒27.2 定时任务at命令一次性任务# 一小时后执行命令 echo python script.py | at now 1 hour # 查看待执行任务 atq28. 文件比较与差异28.1 diff文件比较比较文件差异# 简单比较 diff file1.txt file2.txt # 并排显示差异 diff -y file1.txt file2.txt # 递归比较目录 diff -r dir1 dir228.2 vimdiff可视化比较交互式比较# 使用vimdiff比较文件 vimdiff file1.py file2.py29. 系统备份与恢复29.1 全盘备份dd命令磁盘克隆# 备份整个磁盘(谨慎使用) sudo dd if/dev/sda of/backup/sda.img bs4M statusprogress # 恢复备份 sudo dd if/backup/sda.img of/dev/sda bs4M statusprogress29.2 增量备份rsync增量备份# 每日增量备份 rsync -avz --delete --link-dest/backup/previous /source/ /backup/current30. 终端自定义与美化30.1 PS1提示符定制自定义bash提示符# 在~/.bashrc中添加 export PS1\[\e[32m\]\u\h \[\e[34m\]\w \[\e[31m\]\$ \[\e[0m\] # 显示Git分支(需安装git-prompt) source /usr/share/git-core/contrib/completion/git-prompt.sh export PS1\[\e[32m\]\u\h \[\e[34m\]\w\[\e[33m\]$(__git_ps1 (%s))\[\e[31m\]\$ \[\e[0m\]30.2 终端主题配置修改终端颜色方案# 设置ls颜色(添加到~/.bashrc) export LS_COLORSdi1;35:ln36:so32:pi33:ex31:bd34;46:cd34;43:su30;41:sg30;46:tw30;42:ow30;43 alias lsls --colorauto

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询