当前位置: 首页 > web >正文

Linux与Anaconda环境部署与管理(运维交接)

文章目录

  • 一、前言
  • 二、Linux基础命令
  • 三、进程管理与监控
  • 四、后台任务与服务管理
  • 五、Anaconda环境管理
  • 六、JAR包的运行与管理
  • 七、网络与端口映射
  • 八、安全与权限管理
  • 九、故障排查与日志分析
  • 十、附录


一、前言

本文将详细介绍Linux系统下的常用命令以及Anaconda环境管理,包括服务部署、进程管理、环境配置等核心操作。


二、Linux基础命令

文件与目录管理

ls                  # 列出目录内容
ls -la              # 列出所有文件(包括隐藏文件)的详细信息
cd <目录名>          # 切换目录
mkdir <目录名>       # 创建新目录
pwd                 # 显示当前工作目录路径
cp <源文件> <目标文件> # 复制文件
mv <源文件> <目标文件> # 移动或重命名文件
rm <文件名>          # 删除文件
rm -r <目录名>       # 递归删除目录及其内容
touch <文件名>       # 创建空文件或更新文件时间戳

文件内容查看

cat <文件名>         # 查看文件内容
less <文件名>        # 分页查看文件内容
head -n <行数> <文件名> # 查看文件头部内容
tail -n <行数> <文件名> # 查看文件尾部内容
tail -f <文件名>     # 实时监控文件末尾(常用于日志查看)
grep <关键词> <文件名> # 在文件中搜索关键词

文件权限管理

chmod <权限> <文件名> # 修改文件权限
chown <用户>:<> <文件名> # 修改文件所有者

了解即可,实际开发中使用Xshell等工具


三、进程管理与监控

查看进程

ps aux              # 显示所有进程
ps -ef | grep <关键词> # 查找特定进程
top                 # 实时显示系统进程状态

查看端口使用情况

lsof -i :<端口号>    # 查看指定端口的占用情况
netstat -tulpn      # 显示所有监听端口
netstat -tulpn | grep <端口号> # 查找特定端口
ss -tulpn           # 显示所有监听端口(更新的命令)

例如,查看12345端口的占用情况:

lsof -i :12345

输出内容通常包括进程ID(PID)、进程名称、用户名等信息。

终止进程

kill <PID>          # 正常终止进程
kill -9 <PID>       # 强制终止进程
pkill <进程名>       # 根据进程名终止进程
killall <进程名>     # 终止所有同名进程

例如,如果要终止进程ID为1234的进程:

kill -9 1234

四、后台任务与服务管理

后台运行程序

command &           # 在后台运行命令
nohup command &     # 在后台运行命令,并忽略挂起信号(即使终端关闭也能继续运行)

后台任务管理

jobs                # 列出当前终端的后台任务
bg %<任务号>         # 将任务放到后台运行
fg %<任务号>         # 将后台任务调到前台

后台挂载与日志重定向

使用nohup命令可以让程序在后台运行,即使终端关闭也不会影响程序执行:

nohup python3 script.py > output.log 2>&1 &

这个命令的各部分含义:

  • nohup: 忽略挂起信号,使命令在终端关闭时继续运行
  • python3 script.py: 要执行的命令
  • > output.log: 将标准输出重定向到日志文件
  • 2>&1: 将标准错误也重定向到同一个日志文件
  • &: 在后台运行

实际应用示例:

cd test/
nohup python3 /usr/local/test.py > test.log 2>&1 &

路径说明

  • 如果命令中使用了绝对路径(如/usr/local/test.py),则无论当前工作目录在哪里,都会执行指定的绝对路径文件
  • 如果使用相对路径(如./test.py),则会在当前工作目录下查找文件

要监控日志文件的实时更新,可以使用:

tail -f test.log

开机自启动配置

在Linux系统中,有多种方法实现程序开机自启动:

使用systemd服务(推荐,这一步可能遇到非常多的报错,结合gpt和网上教程实际解决即可)

  1. 创建服务配置文件:
sudo vi /etc/systemd/system/myservice.service
  1. 编辑服务文件内容:
[Unit]
Description=My Python Service
After=network.target[Service]
User=username
WorkingDirectory=/path/to/app
ExecStart=/usr/bin/python3 /path/to/app/script.py
Restart=always
RestartSec=10[Install]
WantedBy=multi-user.target

然后点Esc后输入:wq(写入退出)即可,不写入退出是q!

  1. 启用服务:
sudo systemctl enable myservice
sudo systemctl start myservice

五、Anaconda环境管理

Anaconda是一个开源的Python发行版,专注于简化包管理和部署。它非常适合用于科学计算和数据分析任务。

安装Anaconda

  1. 下载Anaconda安装包:

wget有时不太好使,然后可以下载完,用Xftp上传
官网地址:https://www.anaconda.com/download/success
然后再按网上的教程安装即可。

  1. 执行:
nohup jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root > jupyter.log 2>&1 &

创建环境

conda create -n myenv python=3.9

这将创建一个名为myenv的环境,并安装Python 3.9版本。

激活环境

conda activate myenv

查看环境列表

conda env list

conda info --envs

安装包

conda install numpy pandas matplotlib

安装requirements.txt

pip install -r requirements.txt

删除环境

conda remove --name myenv --all

环境变量配置

有时当当前用户权限不足时,需要指定临时目录,启动app.py时,容易权限不足:

export GRADIO_TEMP_DIR=$(pwd)/temp

这将设置GRADIO_TEMP_DIR环境变量为当前目录下的temp文件夹。


六、JAR包的运行与管理

后台运行JAR包

nohup java -jar your-application.jar > app.log 2>&1 &

最好还是按照以上设置开机自启动,及编写对应启动和关闭的脚本。
同时部署的内容,地址、启动关闭步骤,要在内网下同步管理起来,方便其他人使用。


七、网络与端口映射

端口映射是将内部网络的服务映射到外部网络的过程,使外部网络可以访问内部服务。

当数据库处于受端口映射中时,不能直接访问,需要通过中间层(如SSH隧道)进行连接。


八、安全与权限管理

用户权限管理

sudo useradd -m username    # 创建新用户
sudo passwd username        # 设置用户密码
sudo usermod -aG sudo username  # 将用户添加到sudo组
sudo -u username command    # 以指定用户身份执行命令

文件权限

文件权限由三组权限组成(所有者、用户组和其他人),每组有三种权限(读、写、执行):

chmod 755 file    # 设置权限为 rwxr-xr-x
chmod u+x file    # 给所有者添加执行权限
chmod g-w file    # 从用户组移除写权限
chmod o=r file    # 设置其他人只有读权限

sudo与权限提升

当需要执行需要高级权限的命令时:

sudo command      # 使用sudo执行命令
sudo -i           # 切换到root用户环境

具体可以看这一篇博客:Linux 权限体系详解:777、755、644、600、chmod、chown、chgrp 和 umask;SUID、SGID 和 Sticky Bit;ACL (访问控制列表) 是什么?


九、故障排查与日志分析

常见问题排查思路

  1. 检查服务状态:
systemctl status service-name
  1. 查看日志文件:
journalctl -u service-name
tail -f /var/log/application.log
  1. 检查磁盘空间:
df -h
du -sh /path/to/directory
  1. 检查内存使用:
free -h
  1. 检查CPU使用:
top
htop

日志分析工具

  • grep: 搜索关键词
grep "ERROR" logfile.log
  • awk: 复杂日志解析
awk '{print $1,$4}' logfile.log
  • sed: 文本替换和处理
sed 's/ERROR/CRITICAL/g' logfile.log

十、附录

除了我的博客外,以下是我收藏的,
部署程序可以用宝塔面板。

其他不错的安装教程博客:

  • CentOS7安装MySQL8(亲测无坑百分百安装成功)
  • 【centos8.0】安装rabbitMQ史上最全教程
  • 【Redis】基于 CentOS 7.9 的详细安装教程
  • AJ-Report 初学(入门教程)

其中AJ-Reprot部署发行版即可,在Linux部署只需准备好使用环境和改配置文件即可。

http://www.xdnf.cn/news/1234.html

相关文章:

  • 2023蓝帽杯初赛内存取证-6
  • 方案精读:华为智慧园区解决方案【附全文阅读】
  • 再见 Smartdaili,你好 Decodo!
  • 解释instanceof
  • 营收持续增长,恩威医药价值重估再现
  • 【信息安全工程师备考笔记】第二章 网络信息安全概述
  • 典籍知识问答典籍查询界面前端界面设计效果实现
  • MySQL:如何用关系型数据库征服NoSQL核心战场?
  • 【STL】unordered_map
  • iptables
  • MYOJ_7443《洛谷 U556408 》【模板】二叉树基础训练 (自己上传的题,想上主题库qwq)(二叉树基础操作模板)
  • 【c语言】指针和数组笔试题解析
  • 科研小白可以做哪些准备
  • 推公式——耍杂技的牛
  • 每日OJ_牛客_AOE还是单体?_贪心_C++_Java
  • MyBatis 和 MyBatis-Plus 在 Spring Boot 中的配置、功能对比及 SQL 日志输出的详细说明,重点对比日志输出的配置差异
  • 如何使用 Spring Boot 实现统一功能处理:从零开始打造高效、可扩展的后台系统
  • Feign 深度解析:Java 声明式 HTTP 客户端的终极指南
  • 乐视系列玩机---乐视1s x500 x501 x502等系列线刷救砖以及刷写第三方twrp 卡刷第三方固件步骤解析
  • 纽约大学具身智能体在城市空间中的视觉导航之旅!CityWalker:从海量网络视频中学习城市导航
  • 第六章 QT基础:1、入门操作:文件操作与信号槽机制笔记
  • StarRocks 异常 Table creation timed out.
  • 小白训练日记——2025/4/22
  • 虚拟机的网络配置
  • 美团外卖霸王餐接口该如何对接?
  • C++STL(七) :unordered_set、unordered_map的介绍及使用
  • transformer-位置编码
  • Lawrence Krauss 的“从无中诞生的宇宙”(Universe from Nothing)
  • MCP Host、MCP Client、MCP Server全流程实战
  • 耀百岁中医养生与上海隽生中医药研究中心达成战略合作——共筑中医养生科研创新高地