书生大模型---前置知识

基础知识

书生大模型闯关练习

Lv0-Linux基础知识

1. SSH(Secure Shell)

1.1 概述

SSH是用于远程登录和其他网络服务之间的安全协议。它使用加密技术来确保数据的机密性和完整性。SSH的常见用途包括:

  • 远程服务器登录:无密码安全访问远程服务器。

  • 数据传输:通过安全通道传输文件(如SCPSFTP)。

  • 端口转发:通过SSH隧道转发TCP端口。

1.2 SSH密钥对

SSH使用公钥加密系统,密钥对由两部分组成:

  • 公钥:公开分发,存储在服务器上。

  • 私钥:保留在客户端,不能外泄。

客户端使用私钥与服务器的公钥进行匹配,从而验证身份,服务器无需存储任何敏感的凭据。

1.3 SSH密钥的生成

在ssh命令中我们可以使用ssh-keygen命令来生成密钥, ssh-keygen支持RSA和DSA两种认证密钥

常用参数包括:

  • -t:指定密钥类型,如dsa、ecdsa、ed25519、rsa。

  • -b:指定密钥长度。

  • -C:添加注释。

  • -f:指定保存密钥的文件名。

1
ssh-keygen -t rsa -C "youremail@example.com"

1.4 为不同的服务生成各自的SSH密钥

使用上述命令生成密钥后, 系统会提示你输入密钥文件的保存路径。为了生成多个密钥,确保每个密钥文件名不同

如: 为GitHub生成一个密钥

1
2
Enter file in which to save the key (/home/username/.ssh/id_rsa): /home/username/.ssh/id_rsa_github
#如果是windows系统则是 C:\Users\your_userName\.ssh\id_rsa_github

在powerShell中可以使用Get-Content命令查看生成的密钥,如果是linux操作系统可以使用cat命令

最后将公钥复制粘贴到目标服务的SSH设置中

1.5 配置多个SSH密钥

~/.ssh/config文件可以方便地为不同的服务配置不同的SSH密钥

  1. 添加配置项: 为每个服务添加单独的配置项。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_github

    Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa_gitlab

    解释:

    • Host:自定义别名或远程主机名。

    • HostName:实际的远程服务器主机名(如github.com或gitlab.com)。

    • User:登录时使用的用户名(通常是git,用于代码托管平台)。

    • IdentityFile:指定使用的SSH私钥。

2. 端口映射

2.1 基础概念

在计算机网络中,端口(Port) 是网络通信中的一个逻辑抽象概念,用于区分同一台计算机上不同网络服务或进程之间的通信通道。它与IP地址一起,用来标识网络中的不同通信终端和服务。端口映射是一种网络技术,它可以将外网中的任意端口映射到内网中的相应端口,实现内网与外网之间的通信。通过端口映射,可以在外网访问内网中的服务或应用,实现跨越网络的便捷通信

2.2 如何工作

1
ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  • -p 37367:是指定 SSH 连接的端口为 37367

  • root@ssh.intern-ai.org.cn:表示要以 root 用户身份连接到 ssh.intern-ai.org.cn 这个主机。

  • CNg

    • -C 启用压缩功能,这可以加快数据传输速度,尤其是在网络速度较慢的情况下。
    • -N 表示不执行远程命令,仅建立连接用于端口转发等。
    • -g 允许远程主机连接到本地转发的端口。这通常用于设置一个“网关”,允许其他计算机通过这个 SSH 会话访问转发端口
  • -L {本地机器_PORT}:127.0.0.1:{开发机_PORT}:这是设置本地端口转发,将本地机器的指定端口转发到远程主机的 127.0.0.1 (即本地回环地址)和指定的开发机端口。

  • -o StrictHostKeyChecking=no:关闭严格的主机密钥检查,这样可以避免第一次连接时因为未知主机密钥而产生的提示或错误。

portMapping

使用VSCode可以使用其自动端口映射的功能,不需要自己手动配置

2.3 常见端口和服务

  • 21:FTP(文件传输协议)

  • 22:SSH(远程登录)

  • 25:SMTP(邮件传输)

  • 53:DNS(域名解析)

  • 80:HTTP(网页浏览)

  • 443:HTTPS(安全网页浏览)

2.4 查看和管理端口

使用netstat命令

3. Linux基础命令

3.1 文件管理相关命令

  • 创建文件:可以使用 touch 命令创建空文件。

  • 创建目录:使用 mkdir 命令。

  • 目录切换:使用cd命令。

  • 显示所在目录:使用pwd命令。

  • 查看文件内容:如使用 cat 直接显示文件全部内容,moreless 可以分页查看。

  • 编辑文件:如 vivim 等编辑器。

  • 复制文件:用 cp 命令。

  • 创建文件链接:用ln命令。

    • -s:创建软链接(符号链接)也是最常用的
  • 移动文件:通过 mv 命令。

  • 删除文件:使用 rm 命令。

  • 删除目录rmdir(只能删除空目录)或 rm -r(可删除非空目录)。

  • 查找文件:可以用 find 命令。

  • 查看文件或目录的详细信息:使用ls命令,如使用 ls -l查看目录下文件的详细信息。

  • 处理文件:进行复杂的文件操作,可以使用sed命令。

3.2 进程管理相关命令

  • ps:查看正在运行的进程

  • top:动态显示正在运行的进程

  • pstree:树状查看正在运行的进程

  • pgrep:用于查找进程

  • nice:更改进程的优先级

  • jobs:显示进程的相关信息

  • bg 和 fg:将进程调入后台

  • kill:杀死进程

nvidia-smi命令

是一个命令行工具,用于监控 NVIDIA GPU 的状态和性能,以及管理 GPU 相关的任务

nvidiaGPU

4. Conda

一个开源的包管理和环境管理工具, 主要用于简化软件包的安装、依赖管理和隔离虚拟环境。

4.1 两个核心功能

包管理:Conda 可以安装、更新、卸载软件包,并自动解决依赖问题。

环境管理:Conda 允许用户创建和管理多个独立的虚拟环境,每个环境可以有不同的包和工具。

4.2 Conda 的基本操作

  1. 检查 Conda 版本

1
conda --version
  1. 创建虚拟环境

1
conda create --name myenv python=3.9
  • myenv 是虚拟环境的名称。

  • python=3.9 指定了该环境将使用 Python 3.9。

  1. 激活和退出环境

1
conda activate myenv
1
conda deactivate
  1. 安装软件包

安装软件包时,Conda 会自动处理依赖问题。使用 conda install 安装包。

1
conda install numpy pandas

这会在当前激活的环境中安装 numpypandas

  1. 更新软件包

1
conda update numpy
  1. 列出创建的所有虚拟环境

1
conda env list
  1. 删除虚拟环境

1
conda env remove --name myenv
  1. 导出和导入环境

Conda 允许你导出当前环境的所有包列表,以便于在其他系统上重建相同的环境。

  • 导出环境:

    1
    conda env export > environment.yml
  • 从导出的 .yml 文件创建新环境:

    1
    conda env create -f environment.yml
  1. 添加其他的源

1
conda config --add [url]

Lv0-Python基础

1. 环境准备

1.1 下载miniconda

anaconda和miniconda都可以, 推荐后者

清华源miniconda下载链接: 清华大学开源软件镜像站 | Tsinghua Open Source Mirror(建议选择python3.9以上的版本,比如Miniconda3-py310_24.5.0)

1.2 换源

进入命令行开始进行换源,Windows可以直接打开miniconda powershell promt。

首先将pip替换为清华源,只需要一条命令

1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

接着我们来给conda替换成清华源。各系统都可以通过修改用户目录下的 .condarc 文件来修改镜像源。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。在用户目录找到.condarc 文件后,使用文本编辑器打开,将下面的内容复制进去并保存。

1
2
3
4
5
6
7
8
9
10
11
12
channels:   - defaults show_channel_urls: true default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

接着在命令行中运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

2. 不断学习,使用python