Linux系统命令是管理和操作Linux系统的核心工具,涵盖文件管理、系统监控、进程控制等多个方面。以下分类总结常用命令及其功能:

一、系统信息查询

  1. 架构与内核

    • arch:显示处理器架构
    • uname -r:查看内核版本
    • cat /proc/cpuinfo:获取CPU详细信息
    • cat /proc/meminfo:检查内存使用情况
  2. 日期时间

    • date:显示或设置当前日期时间

二、文件与目录操作

  1. 基础命令

    • ls:列出目录内容(-l显示详情,-a包含隐藏文件)
    • cd:切换目录(cd ~返回家目录,cd -返回上一目录)
    • pwd:显示当前工作目录路径
  2. 增删改查

    • mkdir:创建目录(-p递归创建多级目录)
    • rm:删除文件或目录(-rf强制递归删除)
    • cp/mv:复制或移动文件/目录
    • find:搜索文件(如find /usr -name 'a*'

三、进程管理

  1. 查看与终止
    • ps:查看进程状态(ps -aux显示所有用户进程)
    • kill:终止进程(kill -9 PID强制终止)

四、帮助与手册

  • man:查看命令手册(如man ls
  • --help:获取命令简要帮助(如ls --help

五、其他实用命令

  • clear:清屏2
  • alias:设置命令别名(如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命令,用于查看系统中正在运行的进程信息。以下是详细解析:

  1. 命令组成‌:

    • ps:process status的缩写
    • -a:显示所有用户的进程
    • -u:以用户为主的格式显示
    • -x:显示没有控制终端的进程
  2. 输出列说明‌:

    • USER:进程所有者
    • PID:进程ID
    • %CPU:CPU占用率
    • %MEM:内存占用率
    • VSZ:虚拟内存用量(KB)
    • RSS:常驻内存用量(KB)
    • TTY:终端设备
    • STAT:进程状态(S-休眠,R-运行等)
    • START:启动时间
    • TIME:CPU占用时间
    • COMMAND:启动命令
  3. 常用组合‌:

    • 查找特定进程:ps -aux | grep [进程名]
    • 按CPU排序:ps -aux --sort=-%cpu
    • 按内存排序:ps -aux --sort=-%mem
  4. 注意事项‌:

    • 在BSD系统上应使用ps aux(无横线)
    • 会显示系统所有进程,可能输出较长
    • 普通用户只能看到自己的进程,root可查看全部

该命令是系统监控的基础工具,常用于检查异常进程或分析资源占用情况。如需实时监控,可改用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"