
Linux系统命令是管理和操作Linux系统的核心工具,涵盖文件管理、系统监控、进程控制等多个方面。以下分类总结常用命令及其功能:
一、系统信息查询
-
架构与内核
arch:显示处理器架构uname -r:查看内核版本cat /proc/cpuinfo:获取CPU详细信息cat /proc/meminfo:检查内存使用情况
-
日期时间
date:显示或设置当前日期时间
二、文件与目录操作
-
基础命令
ls:列出目录内容(-l显示详情,-a包含隐藏文件)cd:切换目录(cd ~返回家目录,cd -返回上一目录)pwd:显示当前工作目录路径
-
增删改查
mkdir:创建目录(-p递归创建多级目录)rm:删除文件或目录(-rf强制递归删除)cp/mv:复制或移动文件/目录find:搜索文件(如find /usr -name 'a*')
三、进程管理
- 查看与终止
ps:查看进程状态(ps -aux显示所有用户进程)kill:终止进程(kill -9 PID强制终止)
四、帮助与手册
man:查看命令手册(如man ls)--help:获取命令简要帮助(如ls --help)
五、其他实用命令
clear:清屏2alias:设置命令别名(如alias ll='ls -l')df -Th:查看文件系统格式及磁盘空间
如需更详细的功能参数,可通过man命令查阅具体手册。
--------------------------------------------------------------------
cp -r ./* /var/www/lottery_app/
# 复制当前目录下的所有文件于是别一目录
cp models.py /var/www/lottery_app
# 将当前目录下的models.py文件复制到/var/www/lottery_app目录
# 若目标目录不存在会报错
# 若目标目录已存在同名文件会被覆盖
rm -rfv /var/www/lottery_app/lottery_app # 具有破坏性的Linux文件删除操作
-rfv组合参数:
-r:递归删除目录及其内容
-f:强制删除不提示确认
-v:显示详细删除过程
cp -r /var/www/lottery_app /backup/ # 将 /var/www/lottery_app 目录及其所有子目录和文件
递归复制到 /backup/ (数据执行备份),/var/www/lottery_app:源目录路径,/backup/:目标目录路径
ps -aux 是一个常用的Linux/Unix命令,用于查看系统中正在运行的进程信息。以下是详细解析:
-
命令组成:
ps:process status的缩写-a:显示所有用户的进程-u:以用户为主的格式显示-x:显示没有控制终端的进程
-
输出列说明:
- USER:进程所有者
- PID:进程ID
- %CPU:CPU占用率
- %MEM:内存占用率
- VSZ:虚拟内存用量(KB)
- RSS:常驻内存用量(KB)
- TTY:终端设备
- STAT:进程状态(S-休眠,R-运行等)
- START:启动时间
- TIME:CPU占用时间
- COMMAND:启动命令
-
常用组合:
- 查找特定进程:
ps -aux | grep [进程名] - 按CPU排序:
ps -aux --sort=-%cpu - 按内存排序:
ps -aux --sort=-%mem
- 查找特定进程:
-
注意事项:
- 在BSD系统上应使用
ps aux(无横线) - 会显示系统所有进程,可能输出较长
- 普通用户只能看到自己的进程,root可查看全部
- 在BSD系统上应使用
该命令是系统监控的基础工具,常用于检查异常进程或分析资源占用情况。如需实时监控,可改用top命令。
*********************************************************************************************************
附:虚拟环境相关操作:
# 先退出当前虚拟环境
deactivate
# 进入项目目录
cd /www/wwwroot/lottery_app
# 删除有问题的旧虚拟环境
rm -rf venv
# 使用支持 SSL 的 Python 重新创建虚拟环境
/usr/local/python3.9/bin/python3.9 -m venv venv
# 激活新的虚拟环境
source venv/bin/activate
# 验证虚拟环境中的 Python 是否支持 SSL
python -c "import ssl; print('虚拟环境 SSL 模块正常')"
------------------------------------------------------------------------------------------------
# 先删除现有虚拟环境
rm -rf /var/www/blog/venv
# 重新创建虚拟环境
python3 -m venv /var/www/blog/venv
# 激活虚拟环境
source /var/www/blog/venv/bin/activate
# 重新安装需要的包
pip install <需要的包>
---------------------------------------------------------------------------------------------------
# 切换到应用目录
cd /var/www/blog
# 确保已激活虚拟环境(终端显示 (venv))
source venv/bin/activate # 如果尚未激活
# 再次尝试启动(此时 gunicorn 能找到当前目录下的 app.py)
gunicorn --bind 0.0.0.0:8888 app:app
# 虚拟环境 Python 路径 + -m gunicorn + 启动参数
/var/www/blog/venv/bin/python -m gunicorn --bind 0.0.0.0:8888 app:app
-----------------------------------------------------------------------------
从 ps aux 输出可以看到,你当前同时运行了 两个 Gunicorn 服务:
绑定 8000 端口 的服务(主进程 PID: 15232,工作进程 PID: 15235);
绑定 8888 端口 的服务(主进程 PID: 16180,工作进程 PID: 16183)。
这就是你执行命令 “没有反应” 的原因 —— 旧的服务(8000/8888 端口)已经占用了终端,新的启动命令被阻塞或端口冲突。
第一步:停止所有旧的 Gunicorn 进程(避免冲突)
先终止这两个服务的所有进程,清理环境:
bash
# 终止 8000 端口的主进程(PID: 15232)和工作进程(PID: 15235)
kill -9 15232 15235
# 终止 8888 端口的主进程(PID: 16180)和工作进程(PID: 16183)
kill -9 16180 16183
验证是否停止成功:
bash
ps aux | grep gunicorn
如果只显示 grep --color=auto gunicorn 这一行,说明所有旧进程已终止。
第二步:重新启动指定端口的 Gunicorn 服务
根据你的需求(使用 8888 端口),重新在项目目录启动服务:
bash
# 1. 切换到项目目录
cd /var/www/lottery_app
# 2. 激活虚拟环境(确保命令行前有 (venv))
source venv/bin/activate
# 3. 启动 Gunicorn 并绑定 8888 端口(推荐后台运行,不占用终端)
nohup gunicorn --bind 0.0.0.0:8888 app:app > gunicorn.log 2>&1 &
第三步:确认新服务是否正常运行
查看进程:
bash
ps aux | grep gunicorn
应显示新的 8888 端口服务进程(主进程 + 工作进程)。
测试端口响应:
bash
curl -I http://127.0.0.1:8888
若返回 HTTP/1.1 200 OK 或其他状态码,说明服务完全正常。
为什么推荐后台运行(nohup)?
前台启动(直接 gunicorn ...)会占用终端,关闭终端或按 Ctrl+C 会导致服务停止;
后台启动(nohup ... &)会让服务在后台持续运行,日志输出到 gunicorn.log,方便后续排查问题。
若需停止新服务
后续若需重启 / 停止,只需终止新的主进程:
bash
# 找到新的主进程 PID
ps aux | grep "gunicorn --bind 0.0.0.0:8888"
# 终止进程(替换为新的 PID)
kill -9 新主进程PID
现在你的环境已清理干净,新的 Gunicorn 服务会在 8888 端口稳定运行,且不会占用终端。
----------------------------------------------------
终止主进程,停止服务。
1.检查所有 Gunicorn 的进程
ps aux | grep gunicorn
2.使用 kill -9 命令终止主进程(替换为你找到的 PID)
# 替换为实际的主进程 PID(如 27738)
kill -9 27738
----------------------------------------------------------------------
启动新的 Gunicorn 进程:
若使用 8888 端口(确保已释放):
bash
# 后台启动,日志输出到 gunicorn.log
nohup gunicorn --bind 0.0.0.0:8888 app:app > gunicorn.log 2>&1 &
你可以通过以下命令进一步确认服务是否正常:
查看日志文件:tail -f gunicorn.log
检查 8888 端口是否被监听:netstat -tuln | grep 8888 或 ss -tuln | grep 8888
如果需要停止这些进程,可以使用:
kill -9 主进程 工作进程
-----------------------------------------------------------------------------------
# 一次性杀死所有 gunicorn 相关进程
pkill gunicorn
# 或者更精确地杀死特定应用的 gunicorn 进程
pkill -f "/var/www/lottery_app/venv/bin/gunicorn"
请先登录后发表评论