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

Camp4-L0:Linux 前置基础

书生浦语大模型实战营Camp4-L0:Linux前置基础

  • 教程地址:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/linux
  • 任务地址:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/linux/task.md
任务描述完成所需时间
闯关任务完成SSH连接与端口映射并运行hello_world.py10min
可选任务 1将Linux基础命令在开发机上完成一遍10min
可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min
可选任务 3创建并运行test.sh文件10min

闯关任务

完成SSH连接与端口映射并运行hello_world.py

第一步:首先按照教程创建开发机,然后点击ssh连接

在这里插入图片描述
在这里插入图片描述

第二步:按照教程配置ssh公钥以及配置vscode

在这里插入图片描述
然后就可以愉快地通过vscode连接开发机了,非常丝滑:
在这里插入图片描述

第三步:创建环境并安装gradio,主要命令如下

conda create -n py10 python=3.10 -y
conda activate py10
pip install gradio

第四步:新建文件夹homework,用于保存作业,新建hello_world.py,输入相应代码:

import socket
import re
import gradio as gr
 
# 获取主机名
def get_hostname():
    hostname = socket.gethostname()
    match = re.search(r'-(\d+)$', hostname)
    name = match.group(1)
    
    return name
 
# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:
    html_code = f"""
            <p align="center">
            <a href="https://intern-ai.org.cn/home">
                <img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;">
            </a>
            </p>
            <h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1>
            <h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2>
            <p align="center">
                <a href="https://github.com/InternLM/Tutorial/blob/camp3">
                    <img src="https://oss.lingkongstudy.com.cn/blog/202406301604074.jpg" alt="Logo" width="20%" style="border-radius: 5px;">
                </a>
            </p>

            """
    gr.Markdown(html_code)

demo.launch()

运行hello_world.py:

python hello_world.py

第五步:使用ssh做端口转发,或者直接用vscode地端口转发即可,命令行端口转发如下:

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no

例如:

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no

说明:

个人PC会远程连接到开发机唯一暴露在外的37367端口,(这个在SSH的时候提到过每个人的开发机暴露的端口都不一样),并设置隧道选项。暴露端口是作为中转站进行流量的转发。

  • -C:启用压缩,减少传输数据量。
  • -N:不执行远程命令,只建立隧道。
  • -g:允许远程主机连接到本地转发的端口。

当在个人PC上执行这个SSH命令后,SSH客户端会在本地机器的7860端口上监听。

任何发送到本地7860端口的流量,都会被SSH隧道转发到远程服务器的127.0.0.1地址上的7860端口。

这意味着,即使开发机的这个端口没有直接暴露给外部网络,我们也可以通过这个隧道安全地访问远程服务器上的服务。

划重点:强烈建议配置ssh公钥,然后配置好vscode,用vscode做端口自动转发很方便
在这里插入图片描述
运行结果如下:
在这里插入图片描述

可选任务1

将Linux基础命令在开发机上完成一遍

这个按照教程跑一遍即可,这里做个记录:

文件管理

  • 创建文件:可以使用 touch 命令创建空文件。
  • 创建目录:使用 mkdir 命令。
  • 目录切换:使用cd命令。
  • 显示所在目录:使用pwd命令。
  • 查看文件内容:如使用 cat 直接显示文件全部内容,moreless 可以分页查看。
  • 编辑文件:如 vivim 等编辑器。
  • 复制文件:用 cp 命令。
  • 创建文件链接:用ln命令。
  • 移动文件:通过 mv 命令。
  • 删除文件:使用 rm 命令。
  • 删除目录rmdir(只能删除空目录)或 rm -r(可删除非空目录)。
  • 查找文件:可以用 find 命令。
  • 查看文件或目录的详细信息:使用ls命令,如使用 ls -l查看目录下文件的详细信息。
  • 处理文件:进行复杂的文件操作,可以使用sed命令。

进程管理

进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:

  • ps:查看正在运行的进程
  • top:动态显示正在运行的进程
  • pstree:树状查看正在运行的进程
  • pgrep:用于查找进程
  • nice:更改进程的优先级
  • jobs:显示进程的相关信息
  • bg 和 fg:将进程调入后台
  • kill:杀死进程

工具使用

  • 这里介绍了tmux,本人还是更喜欢screen这个工具,选择其一就好
  • conda,环境管理
  • shell,基本操作

可选任务2

使用 VSCODE 远程连接开发机并创建一个conda环境
这个在做闯关任务的时候,已经完成了,用vscode很是方便

可选任务3

**创建并运行test.sh文件 **
创建一个test.sh文件,用于安装xtuner环境,内容如下

# 创建虚拟环境
conda create -n llamaindex python=3.10 -y
conda activate llamaindex
pip install llama-index==0.10.38 

运行bash test.sh即可。
在这里插入图片描述


http://www.kler.cn/a/370225.html

相关文章:

  • es的date类型字段按照原生格式进行分组聚合
  • CSS语言的数据类型
  • 媒体新闻发稿价格怎么算?移动端发稿价格低的原因有哪些?
  • mysql之表的外键约束
  • 前端面试题-问答篇-5万字!
  • 每日一刷——1.20——准备蓝桥杯
  • 招商银行实时汇率查询接口-外汇实时汇率API-外汇实时汇率
  • 云联网对等连接--实现内网互通
  • 解决cuda环境使用dgl
  • ImportError: cannot import name ‘Sequential‘ from ‘keras.models‘
  • 如何将 HashiCorp Vault 与 Node.js 集成:安全管理敏感数据
  • UE5之5.4 第一人称示例代码阅读2 子弹发射逻辑
  • Oracle 第9章:存储过程与函数
  • Android Handler消息机制完全解析-IdleHandler和epoll机制(四)
  • Spring Boot的核心优势及其应用详解
  • 基于SSM(spring+springmvc+mybatis)+MySQL开发的新闻推荐系统
  • STM32之外部中断旋转编码器
  • 20241028在荣品PRO-RK3566开发板的预置Android13下用iperf3测试AP6256的WIFI网速
  • Git创建和拉取项目分支的应用以及Gitlab太占内存,如何配置降低gitlab内存占用进行优化
  • 分体式智能网关在现代电力物联网中的优势有哪些?
  • Java SPI 机制详解
  • gaussdb hccdp实验练习03 GaussDB数据库应用程序开发实验
  • 2024年10月24日Github流行趋势
  • 磁盘空间不足导致postgreSQL启动失败
  • Axure使用动态面板制作新闻栏目高级交互
  • 【ChatGP】让ChatGPT解释和简化复杂的技术概念