【书生·浦语大模型实战营第三期】入门岛第1关:Linux 基础知识
任务列表
任务序号 | 任务描述 |
---|---|
闯关任务 | 完成SSH连接与端口映射并运行hello_world.py |
可选任务1 | 将Linux基础命令在开发机上完成一遍 |
可选任务2 | 使用 VSCODE 远程连接开发机并创建一个conda环境 |
可选任务3 | 创建并运行test.sh文件 |
环境准备
- 参照教程创建开发机(排队等了一会)
- 进入开发机(感觉网页端支持模式比Autodl更多,支持jupyter, terminal和vscode)
- 查看云盘,感觉加载时间好久
闯关任务:完成SSH连接与端口映射并运行hello_world.py
- 概念介绍
- SSH:
- SSH全称Secure Shell,中文翻译为安全外壳,它是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。SSH 协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的网络服务。
- SSH 是(C/S架构)由服务器和客户端组成,为建立安全的 SSH 通道,双方需要先建立 TCP 连接,然后协商使用的版本号和各类算法,并生成相同的会话密钥用于后续的对称加密。在完成用户认证后,双方即可建立会话进行数据交互。
- SSH密钥是一种安全便捷的登录认证方式,用于在SSH协议中进行身份验证和加密通信。
- 端口映射:
- 端口映射是一种网络技术,它可以将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信。通过端口映射,可以在外网访问内网中的服务或应用,实现跨越网络的便捷通信。
- 端口映射是一种网络技术,它可以将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信。通过端口映射,可以在外网访问内网中的服务或应用,实现跨越网络的便捷通信。
- vi/vim 模式
- ln链接
- linux中链接分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
- ln [参数][源文件或目录][目标文件或目录]
- -s:创建软链接(符号链接)也是最常用的;
- -f:强制执行,覆盖已存在的目标文件;
- -i:交互模式,文件存在则提示用户是否覆盖;
- -n:把符号链接视为一般目录;
- conda和pip的一些区别:
- conda可以管理非python包,pip只能管理python包。
- conda可以用来创建虚拟环境,pip不能,需要依赖virtualenv之类的包。
- conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
- conda安装的包会统一下载到当前虚拟环境对应的目录下,下载一次多次安装。pip是直接下载到对应环境中。
- SSH:
- 使用SSH命令在powershell连接服务器
- 配置SSH密钥进行SSH远程连接
- ssh-keygen支持RSA和DSA两种认证密钥。常用参数包括:
- -t:指定密钥类型,如dsa、ecdsa、ed25519、rsa。
- -b:指定密钥长度。
- -C:添加注释。
- -f:指定保存密钥的文件名。
- -i:读取未加密的ssh-v2兼容的私钥/公钥文件。
- 生成密钥
ssh-keygen -t rsa
- 在powerShell中可以使用
Get-Content
+密钥路径(一般是C:\Users\User/.ssh/id_rsa.pub
)查看生成的密钥,如果是linux操作系统可以使用cat
+密钥路径 - 在控制台配置密钥
- 在vscode配置服务器并连接
- ssh-keygen支持RSA和DSA两种认证密钥。常用参数包括:
- 端口映射
ssh -p {开发机对外端口} root@ssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
- -p {开发机对外端口}:是指定 SSH 连接的端口。
- root@ssh.intern-ai.org.cn:表示要以 root 用户身份连接到 ssh.intern-ai.org.cn 这个主机。
- -CNg:
- -C 通常用于启用压缩。
- -N 表示不执行远程命令,仅建立连接用于端口转发等。
- -g 允许远程主机连接到本地转发的端口。
- -L {本地机器_PORT}:127.0.0.1:{开发机_PORT}:这是设置本地端口转发,将本地机器的指定端口(由 {本地机器_PORT} 表示)转发到远程主机(这里即 ssh.intern-ai.org.cn)的 127.0.0.1 (即本地回环地址)和指定的开发机端口(由 {开发机_PORT} 表示)。
- -o StrictHostKeyChecking=no:关闭严格的主机密钥检查,这样可以避免第一次连接时因为未知主机密钥而产生的提示或错误。
- 创建hello_world.py文件并填入内容
- 配置环境
- 创建虚拟环境:
conda create -n test python=3.10
- 安装gradio:
pip install gradio==4.29.0
- 运行
- 创建虚拟环境:
- 使用vscode进行端口映射,访问成功
可选任务1:将Linux基础命令在开发机上完成一遍
-
touch创建文件
-
mkdir创建目录
-
cd切换目录
-
pwd查看当前路径
-
cat查看文件内容
-
vi or vim编辑文件
-
cp拷贝文件
-
复制文件
-
复制目录
-
-
ln链接
-
mv移动
-
rm删除
-
find查找
-
ls列出
-
sed流编辑
-
grep文本搜索
-
ps列出进程
-
top显示进程
(下面几个略) -
pstree以树状图的形式显示当前运行的进程及其父子关系
-
pgrep查找匹配条件的进程。可以根据进程名、用户等条件查找进程
-
nice:更改进程的优先级。nice 值越低,进程优先级越高
-
jobs:显示当前终端会话中的作业列表,包括后台运行的进程
-
bg 和 fg:bg 将挂起的进程放到后台运行,fg 将后台进程调回前台运行
-
kill:发送信号到指定的进程,通常用于杀死进程
-
nvidia-smi显示gpu
-
tmux使用
可选任务2:使用 VSCODE 远程连接开发机并创建一个conda环境
-
查看版本信息
-
设置国内镜像
-
创建、激活与退出虚拟环境(上一任务做过了,略)
-
导出虚拟环境
-
删除虚拟环境(略慢)
可选任务3:创建并运行test.sh文件
-
创建test.sh
-
还原环境