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

qq游戏做任务领铜板网站wordpress自己写插件

qq游戏做任务领铜板网站,wordpress自己写插件,东莞网站seo优化,网站建设哪Linux基础知识目录 前言LinuxInternStudio 关卡1. InternStudio开发机介绍2. SSH及端口映射2.1 什么是SSH#xff1f;2.2 如何使用SSH远程连接开发机#xff1f;2.2.1 使用密码进行SSH远程连接2.2.2 配置SSH密钥进行SSH远程连接2.2.3 使用VScode进行SSH远程连接 2.3. 端口映射… Linux基础知识目录 前言LinuxInternStudio 关卡1. InternStudio开发机介绍2. SSH及端口映射2.1 什么是SSH2.2 如何使用SSH远程连接开发机2.2.1 使用密码进行SSH远程连接2.2.2 配置SSH密钥进行SSH远程连接2.2.3 使用VScode进行SSH远程连接 2.3. 端口映射2.3.1 什么是端口映射2.3.2 如何进行端口映射2.3.2.1 使用 ssh 命令进行端口映射2.3.2.2 使用 vscode 进行端口映射 3. Linux 基础命令3.1 文件管理3.1.1 **touch**3.1.2 **mkdir**3.1.3 **cd**3.1.4 **pwd**3.1.5 **cat**3.1.6 **vi or vim**3.1.7 **cp 和 ln重点**3.1.8 **mv 和 rm**3.1.9 **find**3.1.10 **ls**3.1.11 **sed** 3.2 进程管理3.3 **工具使用** 4. Conda和Shell介绍附加4.1 conda设置4.2 conda环境管理4.2.1 创建虚拟环境4.2.2 查看有哪些虚拟环境4.2.3 激活与退出虚拟环境4.2.4 删除与导出虚拟环境 4.3 conda和pip4.4 studio-conda使用与Shell扩展 常见问题1. InternStudio 开发机的环境玩坏了如何初始化开发机环境 关卡任务 前言 本文是由上海人工智能实验室主办的第三期书生大模型实战营的笔记仅供个人和助教批改作业参考教程原文链接。 报名请在微信搜索“第三期书生大模型实战营”。 本笔记是在原教程的基础上修改的个人批注的笔记 LinuxInternStudio 关卡 Hello大家好欢迎来到书生大模型实战营这里是实战营为第一次参加实战营同学和来自各个行业的没有Linux基础知识的同学准备的基础课程在这里我们会教大家如何使用InternStudio开发机以及掌握一些基础的Linux知识让大家不至于在后面的课程中无从下手希望对大家有所帮助。在这里关卡任务中为大家准备了一些关卡任务当大家完成必做关卡任务并打卡后就会获得当前关卡的算力奖励了让我们开始吧 1. InternStudio开发机介绍 InternStudio 是大模型时代下的云端算力平台。基于 InternLM 组织下的诸多算法库支持为开发者提供开箱即用的大语言模型微调环境、工具、数据集并完美兼容 HugginFace 开源生态。 如果大家想了解更多关于InternStduio的介绍的话可以查看下面的文档 InternStudio https://studio.intern-ai.org.cn/ 首先打开上面的链接进入InternStudio完成登录会自动跳转到控制台界面如下图所示 下面给大家讲一下每一个序号对应页面的功能 在这里可以创建开发机以及修改开发机配置和查看相关日志等。 这里可以可视化查看开发机中的文件及文件夹而且如果你创建了两个开发机那么他们使用的云盘是一个。因为每一个开发机都是一个Docker 容器存储云盘挂载的都是一个关于专业名词解释可以看 专业名词解释在这里你可以上传文件或者文件夹以及创建文件还可以查看隐藏文件。 这是开发机新增的功能如果大家要做项目的话可以向小助手申请资源团队的功能是所有成员共享算力资源避免造成资源浪费。毕竟烧的可都是啊这里是用来配置SSH密钥的我们在后面会讲到如何使用。最后这个地方是来编辑你的个人信息的以及查看你算力资源的具体使用。 上面就是InternStudio平台的简单介绍下面让我们来看一下如何创建开发机我们来到首页点击“创建开发机” 这里我们选择创建个人开发机名称为testCuda版本为12.2资源配置选择10%时长默认就行。 创建完成以后在开发机界面可以看到刚刚创建的开发机点击进入开发机。 进入开发机以后可以看到开发机的主页面开发机有三种模式可以选择JupyterLab、终端和VScode 其中 JupyterLab一个交互式的编程和教学环境同时内置终端可以很方便地查看文件执行代码等终端Terminal 最轻量级主要进行命令行操作或者运行脚本和简单程序VSCode网页中集成的VSCode也可以在本地VSCode中通过SSH连接远程开发下面就会讲如何配置远程连接。 这个是资源使用情况在后续的课程中会使用到。 2. SSH及端口映射 上面我们介绍了InternStudio平台以及如何创建开发机这一小节我们要了解什么是SSH、为什么使用远程连接、如何使用SSH远程连接开发机、什么是端口映射以及如何进行端口映射。 2.1 什么是SSH SSH全称Secure Shell中文翻译为安全外壳它是一种网络安全协议通过加密和认证机制实现安全的访问和文件传输等业务。SSH 协议通过对网络数据进行加密和验证在不安全的网络环境中提供了安全的网络服务。 SSH 是C/S架构由服务器和客户端组成为建立安全的 SSH 通道双方需要先建立 TCP 连接然后协商使用的版本号和各类算法并生成相同的会话密钥用于后续的对称加密。在完成用户认证后双方即可建立会话进行数据交互。 那在后面的实践中我们会配置SSH密钥配置密钥是为了当我们远程连接开发机时不用重复的输入密码那为什么要进行远程连接呢 远程连接的好处就是如果你使用的是远程办公你可以通过SSH远程连接开发机这样就可以在本地进行开发。而且如果你需要跑一些本地的代码又没有环境那么远程连接就非常有必要了。 2.2 如何使用SSH远程连接开发机 2.2.1 使用密码进行SSH远程连接 首先我们使用输入密码的方式进行SSH远程连接后面我们会讲如何配置免密登录。 当完成开发机的创建以后我们需要打开自己电脑的powerShell终端使用WinR快捷键打开运行框输入powerShell打开powerShell终端。如果你是Linux或者Mac操作系统下面的步骤都是一样的 我们回到开发机平台进入开发机页面找到我们创建的开发机点击SSH连接。 然后复制登录命令这里的37367是开发机所使用的SSH端口一般使用的都是22端口没有这个端口号的话是连不上SSH的并且每个人的端口都不一样所以如果大家在连接开发机时出现连不上的情况那就需要检查一下是不是端口错了。 将复制的命令粘贴到powershell中然后回车这里我们需要输入密码我们将登录命令下面的密码复制下来然后粘贴到终端中注意密码复制后右键就粘贴好了shell的粘贴快捷键有的电脑是shiftins这里密码粘贴密码是不显示的这是正常的。 最后回车出现以下内容就代表成功了 当我们连接上开发机以后可以使用hostname查看开发机名称使用uname -a查看开发机内核信息使用lsb_release -a查看开发机版本信息使用nvidia-smi查看GPU的信息这些命令我们后面都会讲到如果想要退出远程连接输入两次exit就可以了。 2.2.2 配置SSH密钥进行SSH远程连接 但是在我们开发学习的时候每次远程都输入密码比较麻烦我们可以设置SSH key来跳过输入密码这一步骤在ssh命令中我们可以使用ssh-keygen命令来生成密钥 SSH密钥是一种安全便捷的登录认证方式用于在SSH协议中进行身份验证和加密通信。 ssh-keygen支持RSA和DSA两种认证密钥。 常用参数包括 -t指定密钥类型如dsa、ecdsa、ed25519、rsa。-b指定密钥长度。-C添加注释。-f指定保存密钥的文件名。-i读取未加密的ssh-v2兼容的私钥/公钥文件。 这里我们使用RSA算法生成密钥命令为 ssh-keygen -t rsa输入命令后一路回车就可以了这里的密钥默认情况下是生成在~/.ssh/目录下的~表示的是家目录如果是windows就是C:\Users\{your_username}\。在powerShell中可以使用Get-Content命令查看生成的密钥如果是linux操作系统可以使用cat命令。 然后我们回到开发机平台在首页点击配置SSH Key接着点击添加SSH公钥 将刚刚生成的密钥复制下来粘贴到公钥框中名称会被自动识别到最后点击立即添加SSH Key就配置完成了。 完成SSH Key创建以后重启终端进行远程连接就会跳过密码输入这一步了。 2.2.3 使用VScode进行SSH远程连接 当然也可以使用SSH远程连接软件例如Windterm、Xterminal等。这里我们使用VScode进行远程连接使用VScode的好处是本身它就是代码编辑器进行代码修改等操作时会非常方便。 如果要在VScode中进行远程连接我们还需要安装一套插件如何安装VScode大家可以网上搜索一下非常简单。(开发机里边的vscode搜索不到这个插件本地vscode可以) 如果你已经安装好了VScode可以在点击左侧的扩展页面在搜索框中输入“SSH”第一个就是我们要安装的插件点开它“Install”就可以了。 安装完成插件以后点击侧边栏的远程连接图标在SSH中点击“”按钮添加开发机SSH连接的登录命令。 我们将登录命令复制下来然后将命令粘贴到弹出的窗口中最后回车 配置文件这一块默认就好当然你也可以自定义下面是配置文件的具体内容这里包括了你所有远程连接过的信息 Host ssh.intern-ai.org.cn #主机ip也可以是域名HostName ssh.intern-ai.org.cn #主机名Port 37367 #主机的SSH端口User root #登录SSH使用的用户StrictHostKeyChecking noUserKnownHostsFile /dev/null后面的一些配置选项如果想要手动添加就需要按照上面的格式对相应部分进行修改。 如果将*StrictHostKeyChecking no和UserKnownHostsFile* /dev/null删除掉会跳出指纹验证的弹窗 StrictHostKeyChecking no表示禁用严格的主机密钥检查。这意味着当连接到一个新的 SSH 服务器时不会严格验证服务器的主机密钥可能会带来一定的安全风险。 UserKnownHostsFile /dev/null则是将用户已知的主机密钥文件设置为 /dev/null 这实质上是忽略了对已知主机密钥的记录和使用。 但是在一般的安全实践中不建议随意禁用严格的主机密钥检查。 然后在右下角弹出来的提示窗口中点击“连接”就可以远程到开发机中了。 远程连接完成以后可以选择打开的文件夹也可以称为工作目录你可以选择开发机中的也可以选择本地的开发机中的文件夹就是我们前面提到的云盘。 当下一次进行远程连接的时候就不需要输入登录命令等信息了只需要打开vscode的远程连接就可以看到第一次连接的开发机信息下面的root代表我们第一连接开发机时使用的是/root工作目录。 并且下图中的-表示进入开发机后需要重新选择工作目录 而下图中的-表示进入上一次开发机选择的工作目录 每次选择的工作目录都会在这个开发机信息下面显示这里就多了一个lagent的工作目录 下面我们来介绍一下什么时端口映射。 2.3. 端口映射 2.3.1 什么是端口映射 端口映射是一种网络技术它可以将外网中的任意端口映射到内网中的相应端口实现内网与外网之间的通信。通过端口映射可以在外网访问内网中的服务或应用实现跨越网络的便捷通信。 那么我们使用开发机为什么要进行端口映射呢 因为在后续的课程中我们会进行模型web_demo的部署实践那在这个过程中很有可能遇到web ui加载不全的问题。这是因为开发机Web IDE中运行web_demo时直接访问开发机内 http/https 服务可能会遇到代理问题外网链接的ui资源没有被加载完全。 所以为了解决这个问题我们需要对运行web_demo的连接进行端口映射将外网链接映射到我们本地主机我们使用本地连接访问解决这个代理问题。下面让我们实践一下。 我们先根据一个图了解一下开发机端口映射是如何工作的 下面会有实践步骤这里先理解如何进行端口映射的 ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno上面是一个端口映射命令在主机上运行该命令即可进行端口映射下面用一个流程图了解端口映射的过程 个人PC会远程连接到开发机唯一暴露在外的37367端口这个在SSH的时候提到过每个人的开发机暴露的端口都不一样并设置隧道选项。暴露端口是作为中转站进行流量的转发。 -C启用压缩减少传输数据量。-N不执行远程命令只建立隧道。-g允许远程主机连接到本地转发的端口。 当在个人PC上执行这个SSH命令后SSH客户端会在本地机器的7860端口上监听。 任何发送到本地7860端口的流量都会被SSH隧道转发到远程服务器的127.0.0.1地址上的7860端口。 这意味着即使开发机的这个端口没有直接暴露给外部网络我们也可以通过这个隧道安全地访问远程服务器上的服务。。 2.3.2 如何进行端口映射 2.3.2.1 使用 ssh 命令进行端口映射 我们还是来到开发机界面找到我们的开发机点击自定义服务复制第一条命令 ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyCheckingno下面给他大家介绍一下命令各部分的含义 -p 37367是指定 SSH 连接的端口为 37367这个前面提到过。rootssh.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 StrictHostKeyCheckingno关闭严格的主机密钥检查这样可以避免第一次连接时因为未知主机密钥而产生的提示或错误。 当你运行一个web demo的时候就可以使用这个命令进行端口映射举个例子 我们创建一个hello_world.py文件(在开发机界面右键创建文件修改名字为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 fp aligncentera hrefhttps://intern-ai.org.cn/homeimg srchttps://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg altLogo width20% styleborder-radius: 5px;/a/ph1 styletext-align: center;☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!/h1h2 styletext-align: center; Let’s go on a journey through ShuSheng Island together./h2p aligncentera hrefhttps://github.com/InternLM/Tutorial/blob/camp3img srchttps://oss.lingkongstudy.com.cn/blog/202406301604074.jpg altLogo width20% styleborder-radius: 5px;/a/pgr.Markdown(html_code)demo.launch()编辑完成后记得ctrls保存 在运行代码之前需要先使用pip install gradio4.29.0命令安装以下依赖包命令复制粘贴到终端里然后在Web IDE的终端中运行了一个python hello_world.py命令 如果不进行端口映射的话使用本地IP是访问不了的 我可以使用下面的命令将它输入到powerShell中 ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno这样就代表成功了。注意这个命令不返回任何的内容这样代表端口映射在运行了然后在网页中打开连接就可以看到web ui的界面了 2.3.2.2 使用 vscode 进行端口映射 当然如果我们运行不同的web ui的话需要重复输入命令这样很麻烦这就需要用到VScode了。前面我们已经SSH远程连接了开发机VScode提供了自动端口映射的功能我们不需要手动配置我们可以使用“CtrlShift~”快捷键唤醒终端在终端的右侧可以找到端口选项 在这里可以查看端口映射的信息如果需要修改端口的话可以在端口那一栏修改端口号。 3. Linux 基础命令 这一部分我会带着大家了解Linux的一些基础操作还有使用一些工具。让大家能够在遇到问题的时候可以自行解决如果大家有遇到什么问题的话也可以在这里评论我会及时给大家回答。 因为我们使用开发机时很少使用到权限管理所以我们就不介绍了。后面的操作均在VScode的终端中进行 3.1 文件管理 在 Linux 中常见的文件管理操作包括 创建文件可以使用 touch 命令创建空文件。创建目录使用 mkdir 命令。目录切换使用cd命令。显示所在目录使用pwd命令。查看文件内容如使用 cat 直接显示文件全部内容more 和 less 可以分页查看。编辑文件如 vi 或 vim 等编辑器。复制文件用 cp 命令。创建文件链接用ln命令。移动文件通过 mv 命令。删除文件使用 rm 命令。删除目录rmdir只能删除空目录或 rm -r可删除非空目录。查找文件可以用 find 命令。查看文件或目录的详细信息使用ls命令如使用 ls -l查看目录下文件的详细信息。处理文件进行复杂的文件操作可以使用sed命令。 这里介绍几种我们在课程中会使用到的命令 3.1.1 touch 我们可以使用touch快速的创建文件这样我们不用手动点击进行创建了。例如我们要创建一个demo.py文件: 3.1.2 mkdir 同样的使用方法如果要创建一个名为test的目录 3.1.3 cd 这个命令会是使用最多的一个命令在使用之前需要为没有计算机基础的同学讲一下目录结构画一张图让大家理解 我们现在使用的是root目录也是root用户的家目录~linux操作系统中/表示根目录根目录下有许多系统所需的目录和文件刚才我们创建的目录就存在与root目录下其中.表示的是当前目录..表示的上级目录。如果我现在要进入到test目录然后回到root目录我们可以这样操作 3.1.4 pwd 我们可以使用pwd命令查看当前所在的目录这样可以方便我们确定我们当前所在哪个目录下面。 3.1.5 cat cat命令可以查看文件里面的内容更多的使用命令可以使用--help命令查看 -a–show-all等价于-vET-b–number-non空白数非空输出行覆盖-n-e, 等价于-vE-E–show-结束显示$在每一行的末尾-n–number编号所有输出行-s–crick-空白抑制重复的空输出行-t等价于-vT-t–show-tabs将制表符显示为^I-v–show非打印使用^和M-表示法LFD和TAB除外 3.1.6 vi or vim 当我们需要编辑文件的时候可以使用vi或者vim命令当你进入文件编辑以后有三种模式 进入编辑模式可以使用ivim的方便之处就是可以在终端进行简单的文件修改。 3.1.7 cp 和 ln重点 **cp**命令在后面课程中会经常用到它是用来将一个文件或者目录复制到另一个目录下的操作常用的使用有 复制文件cp 源文件 目标文件复制目录cp -r 源目录 目标目录 但是如果我们是要使用模型的话这种操作会占用大量的磁盘空间所以我们一般使用ln命令这个就和windows的快捷方式一样。linux中链接分为两种 : 硬链接(hard link)与软链接(symbolic link)硬链接的意思是一个档案可以有多个名称而软链接的方式则是产生一个特殊的档案该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中而软链接却可以跨越不同的文件系统。 所以我们一般使用软连接它的常用的使用方法如下 ln [参数][源文件或目录][目标文件或目录]参数如下 -s创建软链接符号链接也是最常用的-f强制执行覆盖已存在的目标文件-i交互模式文件存在则提示用户是否覆盖-n把符号链接视为一般目录-v显示详细的处理过程。 3.1.8 mv 和 rm mv命令和rm命令的使用方式很相似但是mv是用来移动文件或者目录的同时还可以进行重命名。rm命令则是用来删除文件或者目录的。 常用的使用方法如下 mv 命令 常用参数 -i交互模式覆盖前询问。-f强制覆盖。-u只在源文件比目标文件新时才进行移动。 使用示例 mv file1.txt dir1/将文件 file1.txt 移动到目录 dir1 中。 mv file1.txt file2.txt将文件 file1.txt 重命名为 file2.txt。 rm 命令 常用参数 -i交互模式删除前询问。-f强制删除忽略不存在的文件不提示确认。-r递归删除目录及其内容。 使用示例 rm file.txt删除文件 file.txt。rm -r dir1/递归删除目录 dir1 及其所有内容。 删除目录的命令也可以使用rmdir。 3.1.9 find find命令是Linux系统中一个强大的文件搜索工具它可以在指定的目录及其子目录中查找符合条件的文件或目录并执行相应的操作。 以下是find命令的一些常见用法 按文件名查找使用-name选项按照文件名查找文件。例如find /path/to/directory -name file.txt将在指定目录及其子目录中查找名为file.txt的文件。按文件类型查找使用-type选项按照文件类型查找文件。例如find /path/to/directory -type f将查找指定目录及其子目录中的所有普通文件。按文件大小查找使用-size选项按照文件大小查找文件。例如find /path/to/directory -size 100M将查找指定目录及其子目录中大于100MB的文件。按修改时间查找使用-mtime、-atime或-ctime选项按照文件的修改时间、访问时间或状态更改时间查找文件。例如find /path/to/directory -mtime -7将查找指定目录及其子目录中在7天内修改过的文件。按文件权限查找使用-perm选项按照文件权限查找文件。例如find /path/to/directory -perm 755将查找指定目录及其子目录中权限为755的文件。按用户或组查找使用-user或-group选项按照文件的所有者或所属组查找文件。例如find /path/to/directory -user username将查找指定目录及其子目录中属于用户username的文件。执行操作使用-exec选项可以对找到的文件执行相应的操作。例如find /path/to/directory -name *.txt -exec rm {} \;将删除找到的所有以.txt结尾的文件。 3.1.10 ls ls命令可以用来列出目录的内容以及详细信息。 常用参数及使用方法如下 -a显示所有文件和目录包括隐藏文件以.开头的文件或目录。-l以长格式显示详细信息包括文件权限、所有者、大小、修改时间等。-h与-l结合使用以人类可读的方式显示文件大小如K、M、G等。-R递归列出子目录的内容。-t按文件修改时间排序显示。、 3.1.11 sed sed命令是一种流编辑器主要用于文本处理在处理复杂的文件操作时经常用到在后续的课程中会使用到sed命令常用参数及使用示例如下 参数说明 -escript 或 --expressionscript直接在命令行中指定脚本进行文本处理。-fscript文件 或 --filescript文件从指定的脚本文件中读取脚本进行文本处理。-n 或 --quiet 或 --silent仅打印经过脚本处理后的输出结果不打印未匹配的行。 动作说明 a在当前行的下一行添加指定的文本字符串。c用指定的文本字符串替换指定范围内的行。d删除指定的行。i在当前行的上一行添加指定的文本字符串。p打印经过选择的行。通常与 -n 参数一起使用只打印匹配的行。s使用正则表达式进行文本替换。例如s/old/new/g 将所有 “InternLM” 替换为 “InternLM yyds”。 示例 在示例中使用了echo命令这和python中的print一样用来打印内容这里使用管道符将InternLM打印到file文件中常用的管道符还有和|比如我们可以使用grep命令来查看python中安装的包含os字段的包 grep是一个强大的文本搜索工具。常用参数如下 -i忽略大小写进行搜索。-v反转匹配即显示不匹配的行。-n显示行号。-c统计匹配的行数。 3.2 进程管理 进程管理命令是进行系统监控和进程管理时的重要工具常用的进程管理命令有以下几种 ps查看正在运行的进程top动态显示正在运行的进程pstree树状查看正在运行的进程pgrep用于查找进程nice更改进程的优先级jobs显示进程的相关信息bg 和 fg将进程调入后台kill杀死进程 在开发机中还有一条特殊的命令nvidia-smi它是 NVIDIA 系统管理接口NVIDIA System Management Interface的命令行工具用于监控和管理 NVIDIA GPU 设备。它提供了一种快速查看 GPU 状态、使用情况、温度、内存使用情况、电源使用情况以及运行在 GPU 上的进程等信息的方法。 下面是关于各个命令使用示例 ps列出当前系统中的进程。使用不同的选项可以显示不同的进程信息例如 ps aux # 显示系统所有进程的详细信息top动态显示系统中进程的状态。它会实时更新进程列表显示CPU和内存使用率最高的进程。 top # 启动top命令动态显示进程信息pstree以树状图的形式显示当前运行的进程及其父子关系。 pstree # 显示进程树pgrep查找匹配条件的进程。可以根据进程名、用户等条件查找进程。 pgrep -u username # 查找特定用户的所有进程nice更改进程的优先级。nice 值越低进程优先级越高。 nice -n 10 long-running-command # 以较低优先级运行一个长时间运行的命令jobs显示当前终端会话中的作业列表包括后台运行的进程。 jobs # 列出当前会话的后台作业bg 和 fgbg 将挂起的进程放到后台运行fg 将后台进程调回前台运行。 bg # 将最近一个挂起的作业放到后台运行 fg # 将后台作业调到前台运行kill发送信号到指定的进程通常用于杀死进程。 kill PID # 杀死指定的进程ID注意kill 命令默认发送 SIGTERM 信号如果进程没有响应可以使用-9使用SIGKILL 信号强制杀死进程 kill -9 PID # 强制杀死进程 SIGTERMSignal Termination信号是Unix和类Unix操作系统中用于请求进程终止的标准信号。当系统或用户想要优雅地关闭一个进程时通常会发送这个信号。与SIGKILL信号不同SIGTERM信号可以被进程捕获并处理从而允许进程在退出前进行清理工作。来源于网络 以下是 nvidia-smi 命令的一些基本命令用法 显示 GPU 状态的摘要信息 nvidia-smi显示详细的 GPU 状态信息 nvidia-smi -l 1这个命令会每1秒更新一次状态信息。 显示 GPU 的使用历史 nvidia-smi -h列出所有 GPU 并显示它们的 PID 和进程名称 nvidia-smi pmon强制结束指定的 GPU 进程 nvidia-smi --id0 --ex_pid12345这会强制结束 GPU ID 为 0 上的 PID 为 12345 的进程。 设置 GPU 性能模式 nvidia-smi -pm 1 nvidia-smi -i 0 -pm 1第一个命令会为所有 GPU 设置为性能模式第二个命令只针对 ID 为 0 的 GPU。 重启 GPU nvidia-smi --id0 -r这会重启 ID 为 0 的 GPU。 显示帮助信息 nvidia-smi -h下面通过一张图片对GPU信息进行介绍 3.3 工具使用 这里介绍一个工具TMUXTMUX 是一个终端多路复用器。它可以在多个终端之间轻松切换分离它们这不会杀死终端它们继续在后台运行和将它们重新连接到其他终端中。为什么要介绍这个工具呢因为在后面进行Xtuner微调模型的时候时间会很长使用Tmux可以解决程序被杀死中断的情况下面介绍一下如何安装并使用。 因为开发机使用的是ubuntu的操作系统可以使用lsb_release -a 命令查看ubuntu的系统信息 然后使用apt install tmux命令安装tmux安装完成以后可以使用tmux命令就可以使用tmux了如果想退出tmux可以使用“Ctrld”快捷键。 开发机仅 /root 路径下的文件是持久化存储的其他路径下安装的软件重启后都会被重置。 具体的使用方法可以查看 https://www.ruanyifeng.com/blog/2019/10/tmux.html 4. Conda和Shell介绍附加 Conda 是一个开源的包管理和环境管理系统可在 Windows、macOS 和 Linux 上运行。它快速安装、运行和更新软件包及其依赖项。使用 Conda您可以轻松在本地计算机上创建、保存、加载和切换不同的环境。 在开发机中已经安装了conda我们可以直接使用而且开发机中也有内置的conda命令studio-conda下面我们会介绍conda的基本使用还有studio-conda的使用方法以及介绍一下studio-conda是怎么实现的。 我们会从下面几部分进行介绍 conda设置conda环境管理conda和pipstudio-conda使用与Shell扩展 4.1 conda设置 我们可以使用conda --version来查看当前开发机中conda的版本信息 当我们要使用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但是我们一般都是使用pip进行包的安装的后面我们会介绍pip和conda的区别。 如果我们想要查看conda的配置信息可以使用conda config --show命令如果是开发机默认的设置的话会返回一部分信息 这些配置在Conda环境配置中会影响软件包的安装、更新、环境管理等操作的方式和结果。 4.2 conda环境管理 这一部分是conda中非常重要的一部分掌握了这一部分大家就可以将开发环境玩转到飞起了。 4.2.1 创建虚拟环境 我们可以使用conda create -n name python3.10创建虚拟环境这里表示创建了python版本为3.10、名字为name的虚拟环境。创建后可以在.conda目录下的envs目录下找到。 在不指定python版本时会自动创建基于最新python版本的虚拟环境。同时我们可以在创建虚拟环境的同时安装必要的包conda create -n name numpy matplotlib python3.10但是不建议大家这样用 创建虚拟环境的常用参数如下 -n 或 --name指定要创建的环境名称。-c 或 --channel指定额外的软件包通道。–clone从现有的环境克隆来创建新环境。-p 或 --prefix指定环境的安装路径非默认位置。 4.2.2 查看有哪些虚拟环境 如果想要查看有哪些虚拟环境我们可以使用下面的命令 conda env list conda info -e conda info --envs同时我们还可以看到环境所在的目录。 4.2.3 激活与退出虚拟环境 当我们创建完虚拟环境后我们可以使用conda activate name命令来激活虚拟环境如何查看是否切换成功呢很简单只需要看(base)是否变成了创建的虚拟环境的名称。 如果想要退出虚拟环境的话可以使用 conda activate conda deactivate这两条命令都会回到base环境因为base是conda的基础环境如果仔细观察的话base环境目录比其他的虚拟环境目录层级要高。 4.2.4 删除与导出虚拟环境 如果想要删除某个虚拟环境可以使用conda remove --name name --all如果只删除虚拟环境中的某个或者某些包可以使用conda remove --name name package_name 导出虚拟环境对于特定的环境是非常有必要的因为有些软件包的依赖关系很复杂如果自己重新进行创建和配置的话很麻烦如果我们将配置好的环境导出这样下次使用还原就行了而且也可以把配置分享给其他人。 #获得环境中的所有配置 conda env export --name myenv myenv.yml #重新还原环境 conda env create -f myenv.yml比如我们将xtuner0.1.17虚拟环境导出配置信息是这样的 其中包括环境名字、虚拟环境软件包的在线存储库的位置和虚拟环境的依赖。后面我们会使用进阶的使用方法来快速的还原虚拟环境。 4.3 conda和pip 这部分我们介绍一些conda和pip的一些区别 conda可以管理非python包pip只能管理python包。conda可以用来创建虚拟环境pip不能需要依赖virtualenv之类的包。conda安装的包是编译好的二进制文件安装包文件过程中会自动安装依赖包pip安装的包是wheel或源码装过程中不会去支持python语言之外的依赖项。conda安装的包会统一下载到当前虚拟环境对应的目录下下载一次多次安装。pip是直接下载到对应环境中。 Wheel 是一种 Python 安装包的格式。 它是一种预编译的二进制分发格式类似于 conda 中的已编译二进制文件。 Wheel 格式的主要优点包括 安装速度快因为已经进行了预编译所以在安装时不需要像源码安装那样进行编译过程节省了时间。一致性确保在不同的系统和环境中安装的结果是一致的。 例如如果您要安装一个大型的 Python 库使用 Wheel 格式可以避免在不同的机器上因为编译环境的差异而导致的安装问题。而且对于那些没有编译环境或者编译能力较弱的系统Wheel 格式能够让安装过程更加顺畅。 4.4 studio-conda使用与Shell扩展 这一部分属于扩展的部分因为我觉得这一部分非常有趣也非常实用所以如果大家有兴趣的可以学习一下。 我们先来介绍一下studio-conda这是开发机内置的一个命令它通过Shell脚本来实现的。什么是Shell脚本呢 Shell 脚本 是一种包含一系列命令的文本文件这些命令按照特定的顺序排列用于在 Unix/Linux 或类似的操作系统环境中自动执行任务。 Shell 脚本通常使用 Shell 语言编写常见的 Shell 语言如 Bash、Sh 等就是我们前面所介绍了Linux基础命令这就属于Shell语言。 它有以下几个重要特点 自动化可以将一系列重复、复杂的操作编写为一个脚本然后只需运行脚本即可自动完成这些操作从而节省时间和减少错误。例如每天定时备份重要文件的脚本。系统管理用于管理系统配置、用户权限、进程控制等。比如创建新用户并设置其权限的脚本。批处理能够同时处理多个文件或数据。例如将一批图片文件从一种格式转换为另一种格式的脚本。流程控制像条件判断if-else、循环for、while等使脚本能够根据不同的情况执行不同的操作。 那studio-conda就属于自动化的一部分在我们开发机中root用户的bash环境的配置文件是.bashrc但其实主要的配置文件是/share/.aide/config/bashrc在这个文件里面写了一些命令可以让我们更快捷的执行一些操作比如 export no_proxylocalhost,127.0.0.1,0.0.0.0,172.18.47.140 export PATH/root/.local/bin:$PATH export HF_ENDPOINThttps://hf-mirror.com alias studio-conda/share/install_conda_env.sh alias studio-smi/share/studio-smiexport是用来设置环境变量的alias是将一个sh文件复制为一个变量这个可以作为命令在终端中执行我们的studio-conda就是这样的。 这里的studio-smi是用来查看查看虚拟内存占用的当我们打开/share/studio-smi文件可以看到 #!/bin/bashif command -v vgpu-smi /dev/null thenecho Running studio-smi by vgpu-smivgpu-smi elseecho Running studio-smi by nvidia-sminvidia-smi fi这个脚本是用于检查系统中是否存在 vgpu-smi 命令如果存在它将运行 vgpu-smi 来显示虚拟 GPU (vGPU) 的状态信息如果不存在它将运行 nvidia-smi 来显示 NVIDIA GPU 的状态信息。如下图所示 nvidia-smi 是用于监控和管理物理 NVIDIA GPU 设备的工具而 vgpu-smi 专门用于监控和管理通过 NVIDIA vGPU 技术虚拟化的 GPU 资源。 我们查看/share/install_conda_env.sh文件内容如下 #!/bin/bash # clone internlm-base conda env to users conda env # created by xj on 01.07.2024 # modifed by xj on 01.19.2024 to fix bug of conda env clone # modified by ljy on 01.26.2024 to extendXTUNER_UPDATE_DATEcat /share/repos/UPDATE | grep xtuner |awk -F {print $2} HOME_DIR/root CONDA_HOME$HOME_DIR/.conda SHARE_CONDA_HOME/share/conda_envs SHARE_HOME/sharelist() {cat -EOF预设环境 描述internlm-base pytorch:2.0.1, pytorch-cuda:11.7xtuner Xtuner(源码安装: main $(echo -e \033[4mhttps://github.com/InternLM/xtuner/tree/main\033[0m), 更新日期$XTUNER_UPDATE_DATE)pytorch-2.1.2 pytorch:2.1.2, pytorch-cuda:11.8 EOF }help() {cat -EOF说明: 用于快速clone预设的conda环境使用: 1. studio-conda env -l/list 打印预设的conda环境列表2. studio-conda target-conda-name 快速clone: 默认拷贝internlm-base conda环境3. studio-conda -t target-conda-name -o origin-conda-name 将预设的conda环境拷贝到指定的conda环境EOF }clone() {source$1target$2if [[ -z $source || -z $target ]]; thenecho -e \033[31m 输入不符合规范 \033[0mhelpexit 1fiif [ ! -d ${SHARE_CONDA_HOME}/$source ]; thenecho -e \033[34m 指定的预设环境: $source不存在\033[0mlistexit 1fiif [ -d ${CONDA_HOME}/envs/$target ]; thenecho -e \033[34m 指定conda环境的目录: ${CONDA_HOME}/envs/$target已存在, 将清空原目录安装 \033[0mwait_echowait_pid$!rm -rf ${CONDA_HOME}/envs/$targetkill $wait_pidfiecho -e \033[34m [1/2] 开始安装conda环境: $target. \033[0msleep 3tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}wait_echowait_pid$!conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}if [ $? -ne 0 ]; thenecho -e \033[31m 初始化conda环境: ${target}失败 \033[0mexit 10fikill $wait_pid# for xtuner, re-install dependenciescase $source inxtuner)source_install_xtuner $target;;esacecho -e \033[34m [2/2] 同步当前conda环境至jupyterlab kernel \033[0mlab add $targetsource $CONDA_HOME/bin/activate $targetcd $HOME_DIRecho -e \033[32m conda环境: $target安装成功! \033[0mecho ALL DONE! }······ dispatch $其中的*list*()等都是studio-conda的函数可以实现某些操作比如我们可以使用studio-conda env list来查看预设的环境 其中*clone*()函数的主要作用就是用来复制环境的不过只能从预设的环境中进行复制主要的代码其实就是 tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}解压预设环境的压缩包然后通过clone创建虚拟环境不过在Shell脚本中还设置了一些逻辑不过都是一些判断如果你熟悉任何一种编程语言应该都可以看懂如果看不懂问题也不大。 那么我们如何将我们自己创建的环境添加到studio-conda中呢 第一步将新的conda环境创建到/share/conda_envs下 conda create -p /share/conda_envs/xxx python3.1x 第二步将本机/root/.conda/pkgs下的文件拷贝到/share/pkgs中重新压缩并替换(此步骤是为了把conda创建过程中大的公共包存储起来避免重复下载) cp -r -n /root/.conda/pkgs/* /share/pkgs/ cd /share tar -zcvf pkgs.tar.gz pkgs 第三步更新install_conda_env.sh中的list函数增加新的conda环境说明。 上面是开发机默认提供的方法其实还有一种方法我们前面使用conda导出过xtuner0.1.17虚拟环境的配置文件我们可以使用conda env create -f xtuner0.1.17.yml命令来还原虚拟环境。下面我们来写一个简单的Shell脚本来实现这个操作我们在根目录下创建test.sh文件写入以下内容 #!/bin/bash# 定义导出环境的函数 export_env() {local env_name$1echo 正在导出环境: $env_name# 导出环境到当前目录下的env_name.yml文件conda env export -n $env_name $env_name.ymlecho 环境导出完成。 }# 定义还原环境的函数 restore_env() {local env_name$1echo 正在还原环境: $env_name# 从当前目录下的env_name.yml文件还原环境conda env create -n $env_name -f $env_name.ymlecho 环境还原完成。 }# 检查是否有足够的参数 if [ $# -ne 2 ]; thenecho 使用方法: $0 操作 环境名echo 操作可以是 export 或 restoreexit 1 fi# 根据参数执行操作 case $1 inexport)export_env $2;;restore)restore_env $2;;*)echo 未知操作: $1exit 1;; esac当我们完成Shell脚本的创建以后我们需要为脚本赋予权限可以使用命令chmod x test.sh 然后输入./test.sh restore xtuner0.1.17并按下回车就可以还原虚拟环境了。 不过这种跟直接使用没什么太大区别如果将这种操作与开发机中的studio-conda命令结合起来会非常方便不过由于复制环境的方法不太一样。所以如果要实现需要对/share/install_conda_env.sh文件的逻辑进行修改。 好了以上就是我们本关卡的全部内容了希望上面的内容对大家后面学习有帮助如果大家想要学习更多linux的相关知识可以看我博客文章虽然说不会linux对我们学习大模型没有太大影响但是linux如果学习的很好会让你在学习大模型的路上非常顺畅的。最后大家不要忘了完成我们前面设置的关卡呦 博客链接linux 常见问题 1. InternStudio 开发机的环境玩坏了如何初始化开发机环境 慎重执行所有数据将会丢失仅限 InternStudio 平台自己的机器千万别这么操作 第一步本地终端 ssh 连上开发机一定要 ssh 连接上操作不能在 web 里面操作第二步执行 rm -rf /root大概会等待10分钟第三步重启开发机,系统会重置 /root 路径下的配置文件第四步 ln -s /share /root/share 关卡任务 闯关任务需要在关键步骤中截图 任务描述完成所需时间闯关任务完成SSH连接与端口映射并运行hello_world.py10min可选任务 1将Linux基础命令在开发机上完成一遍10min可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min可选任务 3创建并运行test.sh文件10min
http://www.dnsts.com.cn/news/21587.html

相关文章:

  • 免费建网站抚顺网站短链接怎么做
  • 深圳做网站排名公司推荐外包做网站大概多少钱
  • 锦州做网站公司哪家好元器件采购最好的网站
  • 网站建设与维护课程设计建设工程包括什么工程
  • 怎么做扫二维码登陆网站服务器 网站建设
  • 网站推广 软件重庆网站建设快速建站
  • 佛山做一个自己的网站紫网站建设
  • 苏州建设工程协会网站做网站开发钱
  • ps做网站logo网站开发需求评估
  • 找阿里巴巴购买做网站的软件重庆建筑工程网
  • 网站备案当面核验拍摄照片wordpress生成静态html页面
  • 如何为企业网站设计完整的推广方案腾讯云win建设网站
  • 网站可以用视频做背景吗网站优化细节
  • 网站建设哪种好手机网站设计规格
  • 网站怎么放404页面超全wordpress
  • 网络推广专员宜春网站推广优化
  • 手表网站大全网站优化费用怎么做会计分录
  • 站酷的网址网页转app制作工具 安卓
  • 山东泰安房价2023最新价格网络优化工程师主要负责什么工作
  • 网站建设布局样式做网站需要公司备案
  • phpcmsv9 网站搬家安卓代理ip软件
  • 网站的性能特点免费的网页游戏
  • 做网站开发哪种语言更稳定高效临邑建设局网站
  • 如何在网站上添加qq深圳做分销网站的公司
  • 哪家做网站比较好wordpress镜像是什么意思
  • 成都电子商务网站建设公司网站基础建设
  • 招生网站建设的意义免费公众号模板编辑器
  • h5页面怎么生成链接河南网站seo推广
  • 一键生成100个原创视频百度关键词优化快速排名软件
  • 企业网站制作公司排名电子简历手机版免费