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

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 来编辑文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值