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

第四期书生大模型实战营(【入门岛】- 第1关 | Linux基础知识)

文章目录

  • 1. 任务介绍
    • 关卡任务
  • 2. 闯关任务---完成SSH连接与端口映射并运行hello_world.py
    • 2.1. 创建开发机
    • 2.2. 进入开发机
    • 2.3. 链接SSH
    • 2.4. 创建一个hello_world.py文件web demo
      • 2.4.1. 创建并打开文件
      • 2.4.2. 可能会出现`sudo: command not found` 的错误
    • 2.5. 运行web demo
    • 2.6. 端口映射
      • 2.6.1. 那么我们使用开发机为什么要进行端口映射呢?
      • 2.6.2. 使用命令进行端口映射
      • 2.6.3. 命令分解:
      • 2.6.4. 目的:
      • 2.6.5. 运行位置:
      • 2.6.6. 执行后的效果:
      • 2.6.7. 开发机中复制端口映射命令
  • 3. 可选任务 1---将Linux基础命令在开发机上完成一遍
  • 4. 可选任务 2---使用 VSCODE 远程连接开发机并创建一个conda环境
    • 4.1. 打开VSCODE
    • 4.2. 添加SSH链接
    • 4.3. VSCODE链接远程环境
    • 4.4. 打开VSCODE终端链接远程环境
    • 4.5. 查看conda版本
    • 4.6. 设置镜像源
    • 4.7. 创建conda环境
    • 4.8. 激活conda环境
  • 5. 可选任务 3---创建并运行test.sh文件
      • 5.1. 创建 `test.sh` 文件
      • 5.2. 添加内容
      • 5.3. 赋予可执行权限
      • 5.4. 运行 `test.sh` 文件
      • 5.5. 如果系统中没有 `nano` 编辑器,可以使用以下几种方法:
        • 1. 使用 `vi` 或 `vim`
        • 2. 使用 `echo` 命令直接写入文件
        • 3. 安装 `nano`(如果有权限)

1. 任务介绍

关卡任务

闯关任务需要在关键步骤中截图:

任务描述完成所需时间
闯关任务完成SSH连接与端口映射并运行hello_world.py10min
可选任务 1将Linux基础命令在开发机上完成一遍10min
可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min
可选任务 3创建并运行test.sh文件10min

请将作业发布到知乎、CSDN等任一社交媒体,将作业链接提交到以下问卷,助教老师批改后将获得 50 算力点奖励!!!

提交地址:https://aicarrier.feishu.cn/share/base/form/shrcnUqshYPt7MdtYRTRpkiOFJd

2. 闯关任务—完成SSH连接与端口映射并运行hello_world.py

2.1. 创建开发机

在这里插入图片描述

2.2. 进入开发机

在这里插入图片描述

2.3. 链接SSH

使用powershell进行ssh远程连接
在这里插入图片描述
在这里插入图片描述

2.4. 创建一个hello_world.py文件web demo

在 Linux 中可以使用以下步骤创建并编辑一个名为 hello_world.py 的文件:

2.4.1. 创建并打开文件

  1. 创建并打开文件:

    nano hello_world.py
    

    或者使用其他文本编辑器,如 vimgedit

    vim hello_world.py
    
    gedit hello_world.py
    
  2. 写入内容

    在编辑器中输入以下代码:

    print("Hello, World!")
    
  3. 保存并退出:

    • nano 中,按 Ctrl + X,然后按 Y 确认保存,最后按 Enter 退出。
    • vim 中,按 Esc,输入 :wq,然后按 Enter 保存并退出。
    • gedit 中,点击保存按钮后关闭窗口即可。

2.4.2. 可能会出现sudo: command not found 的错误

如果出现 sudo: command not found 的错误,说明系统中没有安装 sudo 命令。你可以尝试以下几种方法:

  1. 以 root 用户身份运行命令

    如果你有 root 用户的密码,可以先切换到 root 用户,再创建文件:

    su -
    

    输入 root 密码后,再使用 vim 命令创建文件:

    vim hello_world.py
    

    完成后可以输入 exit 退出 root 模式。

  2. 安装 sudo 命令(如果你有 root 权限):

    如果你可以切换到 root 用户,并且希望安装 sudo,可以执行以下命令(根据你的 Linux 发行版):

    • Debian/Ubuntu 系列:

      apt update
      apt install sudo
      
    • CentOS/RHEL 系列:

      yum install sudo
      
  3. 使用其他具有写权限的目录

    如果无法获得 root 权限,可以换到有写权限的目录(如 ~/ 目录),直接创建文件:

    cd ~
    vim hello_world.py
    

这几种方法都可以帮助你解决创建文件时的权限问题。

结果如下:

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

2.5. 运行web demo

在运行代码之前,需要先使用pip install gradio==4.29.0命令安装依赖包,然后在Web IDE的终端中运行了一个hello_world.py

  • 使用pip install gradio==4.29.0命令安装依赖包在这里插入图片描述

  • 运行hello_world.py
    在这里插入图片描述

如果没有进行端口映射的话,使用本地IP是访问不了的。

在这里插入图片描述

2.6. 端口映射

2.6.1. 那么我们使用开发机为什么要进行端口映射呢?

  • 因为在后续的课程中我们会进行模型web_demo的部署实践,那在这个过程中,很有可能遇到web ui加载不全的问题。这是因为开发机Web IDE中运行web_demo时,直接访问开发机内 http/https 服务可能会遇到代理问题,外网链接的ui资源没有被加载完全。
  • 所以为了解决这个问题,我们需要对运行web_demo的连接进行端口映射,将外网链接映射到我们本地主机,我们使用本地连接访问,解决这个代理问题。

2.6.2. 使用命令进行端口映射

可以使用下面的命令进行端口映射。

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

这个命令是在 本地的 PowerShell 或者 本地的终端 里面运行的,它的作用是建立一个 SSH 隧道,连接到远程服务器并将远程端口转发到本地。以下是对这个命令的详细解释:

2.6.3. 命令分解:

ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  1. ssh: 这是用来通过 SSH 协议连接到远程服务器的命令。

  2. -p 37367 : 指定 SSH 使用的端口号是 37367 。默认情况下,SSH 使用端口 22,这里指定了一个自定义端口。

  3. root@ssh.intern-ai.org.cn: 这是你要连接的远程服务器地址和用户名。你将以 root 用户身份连接到 ssh.intern-ai.org.cn 这台服务器。

  4. -C: 通过 SSH 启用压缩数据传输,提高传输效率,尤其是在网络速度较慢的情况下。

  5. -N: 不执行远程命令。只进行端口转发,不会启动远程的 shell 会话。

  6. -g: 允许其他外部主机通过你的本地机器访问转发的端口(如果你不需要外部机器访问,可以去掉这个选项)。

  7. -L 7860:127.0.0.1:7860: 这是端口转发配置。

    • 本地端口 7860: 在你本地机器上监听的端口。
    • 127.0.0.1:7860: 远程服务器上的地址和端口。通过这个命令,将远程服务器上的 127.0.0.1:7860 转发到你本地的 127.0.0.1:7860

    换句话说,你可以在本地访问 http://127.0.0.1:7860,然后会自动把请求转发到远程服务器的 127.0.0.1:7860

  8. -o StrictHostKeyChecking=no: 禁用主机密钥检查,避免在首次连接到服务器时提示确认主机密钥。

2.6.4. 目的:

这个命令通常用于在本地访问远程服务器上运行的某些服务(例如 Jupyter Notebook、Gradio Web 应用等),这些服务监听在远程服务器的特定端口上。通过端口转发,可以使得你在本地像访问本地服务一样访问远程服务。

2.6.5. 运行位置:

这个命令应该 在本地的 PowerShell 或终端 中运行,而不是在服务器上运行。

2.6.6. 执行后的效果:

  • 运行命令后,本地 127.0.0.1:7860 上的所有请求会被转发到远程服务器的 127.0.0.1:7860
  • 你可以在浏览器中打开 http://127.0.0.1:7860 来访问远程服务器上的服务,就像它是在本地运行的一样。

2.6.7. 开发机中复制端口映射命令

  1. 开发机界面,找到我们的开发机,点击自定义服务,复制第一条命令。
    在这里插入图片描述
    在这里插入图片描述
  2. 将它输入到powerShell中:
    在这里插入图片描述

这样就代表成功了。(注意:这个命令不返回任何的内容,这样代表端口映射在运行了,然后在网页中打开连接就可以看到web ui的界面了)

在这里插入图片描述

3. 可选任务 1—将Linux基础命令在开发机上完成一遍

4. 可选任务 2—使用 VSCODE 远程连接开发机并创建一个conda环境

4.1. 打开VSCODE

在这里插入图片描述

4.2. 添加SSH链接

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

4.3. VSCODE链接远程环境

在这里插入图片描述

4.4. 打开VSCODE终端链接远程环境

在这里插入图片描述

4.5. 查看conda版本

我们可以使用conda --version来查看当前开发机中conda的版本信息:
在这里插入图片描述

4.6. 设置镜像源

当我们要使用conda安装包的时候会非常慢,我们可以设置国内镜像提升安装速度,示例如下:

#设置清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

在这里插入图片描述

4.7. 创建conda环境

可以使用conda create -n name python=3.10创建虚拟环境,这里表示创建了python版本为3.10、名字为name的虚拟环境。创建后,可以在.conda目录下的envs目录下找到。

  • 查看有哪些虚拟环境
conda env list

在这里插入图片描述

  • 使用conda create -n name python=3.10创建虚拟环境
conda create -n name python=3.10

在这里插入图片描述

  • 查看有哪些虚拟环境
    在这里插入图片描述

4.8. 激活conda环境

当我们创建完虚拟环境后我们可以使用conda activate name命令来激活虚拟环境,如何查看是否切换成功呢?很简单,只需要看(base)是否变成了创建的虚拟环境的名称。
在这里插入图片描述

5. 可选任务 3—创建并运行test.sh文件

要创建并运行一个 test.sh 文件,按照以下步骤操作:
在这里插入图片描述

5.1. 创建 test.sh 文件

在终端中输入以下命令,创建并打开 test.sh 文件:

nano test.sh

5.2. 添加内容

在文件中写入你的脚本内容。例如,可以添加一个简单的输出:

#!/bin/bash
echo "Hello, this is a test script!"
  • #!/bin/bash 表示使用 bash 解释器运行脚本。
  • echo 用于打印文本内容。

保存并关闭文件(在 nano 中按 Ctrl+X 然后按 Y 确认保存)。

5.3. 赋予可执行权限

要使脚本可执行,需要给它添加执行权限:

chmod +x test.sh

5.4. 运行 test.sh 文件

在终端中使用以下命令运行脚本:

./test.sh

执行后,应该会看到输出:

Hello, this is a test script!

5.5. 如果系统中没有 nano 编辑器,可以使用以下几种方法:

1. 使用 vivim

vivim 通常是大部分 Linux 系统自带的编辑器。可以试试以下命令:

vi test.sh

vi 中编辑文件的步骤:

  • i 键进入插入模式。

  • 输入以下内容:

    #!/bin/bash
    echo "Hello, this is a test script!"
    
  • Esc 键退出插入模式。

  • 输入 :wq 保存并退出。

2. 使用 echo 命令直接写入文件

可以用 echo 将内容直接写入文件:

echo -e '#!/bin/bash\necho "Hello, this is a test script!"' > test.sh
3. 安装 nano(如果有权限)

如果希望安装 nano 并有 apt 权限,可以使用以下命令:

apt update
apt install nano -y

安装完成后即可使用 nano 来编辑文件。


http://www.kler.cn/news/368130.html

相关文章:

  • 使用注解@ExcelIgnoreUnannotated实现了在导出 Excel 时忽略没有被标注的字段
  • 2025考研各省市网上确认时间汇总!
  • leetcode hot100(1)
  • Spring Boot:植物健康监测的智能先锋
  • python实现数据库两个表之间的更新操作(模糊匹配)示例
  • 前沿技术与未来发展第一节:C++与机器学习
  • python基础知识点笔记(全)
  • 一个开源的跨平台UI框架,可使用Web技术构建跨平台桌面应用程序
  • 鼠标移入高亮边框效果
  • 在Spring Boot框架下的Java异常处理
  • 【入门级教程】MySQL:从零开始的数据库之旅
  • 2024 Rust现代实用教程:变量与常见数据类型
  • PG数据库之索引详解
  • leetcode438. 找到字符串中所有字母异位词
  • 【面试经典150】day 6
  • Kubernetes实战——DevOps集成SpringBoot项目
  • RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器
  • Crawler4j在多线程网页抓取中的应用
  • C++的相关习题(2)
  • 算法-二叉树的最大路径和
  • 架构师备考-数据库设计、实施和维护
  • 基于协同过滤算法的旅游网站推荐系统
  • 【ECMAScript标准】深入解读ES6新特性及其应用
  • 总分441数一149专137东南大学820信号数电考研经验电子信息与通信工程电路原920专业基础综合,真题,大纲,参考书。
  • 【JavaEE】【多线程】阻塞队列
  • 零基础Java第十一期:类和对象(二)