目录

C盘默认位置安装Ubuntu

自定义位置安装Ubuntu

确保安装程序已经下载

打开微软商店应用默认安装目录

找到Ubuntu安装包的默认下载位置

复制安装包和相关文件到想要的安装位置

运行安装包,安装Ubuntu

删除原始安装包和相关文件

让Ubuntu快捷启动

其它黑科技

WSL运行状态、开/关机

WSL已安装发行版信息查询

开机/关机

Windows下快速访问WSL的文件系统

WSL2运行GUI图形界面应用

wslg图形应用内容显示太小的解决方法

WSL2 Ubuntu 20.04使用NVIDIA CUDA

CUDA基础知识

确定要安装的版本

安装Windows上的NVIDIA GPU驱动

WSL2 Ubuntu安装NVIDIA CUDA工具包

WSL2 Ubuntu安装NVIDIA cuDNN深度学习库

WSL2 Ubuntu安装PyTorch机器学习框架

Linux字符终端基础设施

几个基本概念

Terminal 终端

Console 控制台

Command Line 命令行

Shell

程序与用户交互的几种方式

CLI 命令行接口

TUI 基于文字的用户接口

GUI 图形用户接口

WebUI 网络用户接口

文本编辑器:Vim/Neovim

Vim是什么

Vim的优势

博主的Vim/Neovim配置

图片展示器:TerminalImageViewer

基于gdb的代码调试器

准备待调试的代码

CLI式代码调试器:gdb

TUI式代码调试器:gdb --tui 与 cgdb

WebUI式代码调试器:gdbgui

命令行Markdown渲染器


⚠️⚠️⚠️注意⚠️⚠️⚠️

现在微软推出了Ubuntu22.04的WSL2发行版,22.04和之前的版本有较大变化,目前博主测试了好几种办法,发现只能安装在默认位置。如果安装在其他地方,或者是安装好再移动过去,运行ubuntu.exe时都会报错“文件被加密”。因此本教程不适用于最新的Ubuntu22.04,小伙伴们敬请周知~

如果有自定义位置安装22.04的方法,欢迎大家分享!

C盘默认位置安装Ubuntu

✅请参考该教程,非常详细:Windows 10安装 WSL2 (Ubuntu 20.04)https://blog.csdn.net/weixin_45579994/article/details/113896240?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

✅以下链接是微软官方文档给出的手动安装方法,步骤和上面的教程一致:

旧版 WSL 的手动安装步骤 | Microsoft Docshttps://docs.microsoft.com/zh-cn/windows/wsl/install-manual

⚠️注意:如果装在C盘,在应用商店进行launch操作可能会报错如下:

WslRegisterDistribution failed with error: 0xc03a001a

原因是安装包所在的文件夹被压缩处理了,解决方案请见这里。

自定义位置安装Ubuntu

⚠️⚠️⚠️注意⚠️⚠️⚠️

请在微软应用商店搜索时务必输入全名Ubuntu20.04。

现在微软推出了新的Ubuntu 22.04的WSL2发行版,应用商店默认的Ubuntu版本号已经更新至22.04。目前发现,改变22.04的安装位置可能导致虚拟机无法启动。

因此,请确保下载的版本是Ubuntu 20.04。

自定义位置安装过程与C盘安装教程相似。最大区别在于,我们按照教程或官方文档从微软商店下载Ubuntu之后,不要点击“启动”,而是要将安装包复制到我们想要的位置,之后Ubuntu就会被安装到该位置。具体步骤如下。

确保安装程序已经下载

在从微软商店下载好Ubuntu之后(但不要点“启动”),在开始菜单会出现类似下图的图标,这就是刚刚下载的Ubuntu安装程序。

在按照教程复制完安装程序,并且完成Ubuntu安装后,我们可以右键图标,将这个原始安装包卸载。

⚠️注意:现在请不要卸载!

打开微软商店应用默认安装目录

使用微软商店下载的应用安装包会默认保存在C:\Program Files\WindowsApps目录下。

如果发现没有权限打开C:\Program Files\WindowsApps文件夹,可以用PowerShell(管理员权限运行)的命令打开,对应的操作为:

cd "C:\Program Files\WindowsApps"

找到Ubuntu安装包的默认下载位置

Ubuntu安装包默认保存在WindowsApps目录下的某个文件夹里。文件夹名称的开头应该类似于CanonicalGroupLimited

寻找当前目录下以CanonicalGroupLimited开头的文件夹:

dir CanonicalGroupLimited*

可能会有多个类似的文件夹,依次查看这些文件夹:

dir CanonicalGroupLimited(不要回车执行)

然后按多次tab键,可以在这些类似的文件夹名之间切换。切换到你想要查看的文件夹,回车执行命令。如果文件夹里面有ubuntu<版本号>.exe文件,这就是我们要找的文件夹。

ubuntu<版本号>.exe就是Ubuntu的安装程序;安装完成后,该程序还可用来启动或访问Ubuntu。

复制安装包和相关文件到想要的安装位置

⚠️注意:你想要安装Ubuntu的位置必须存在,否则接下来的复制操作会报错:

Copy-Item: Container cannot be copied onto existing leaf item.

如果我们想把Ubuntu安装在F盘的“ubuntu2004”文件夹下,就得确保这个文件夹存在。如果不存在,就要手动创建:

mkdir F:\ubuntu2004

接着,把安装包所在文件夹下的所有文件复制到你想要安装Ubuntu的文件夹。对应的命令行操作为:

cp <安装包所在的文件夹名>\* <你想要安装ubuntu文件夹的路径>

举个例子,这里我们将安装包和相关文件复制到了F盘的“ubuntu2004”文件夹下:

运行安装包,安装Ubuntu

打开复制到的文件夹,双击运行ubuntu<版本号>.exe即可,等待ubuntu系统初始化。

初始化完毕后,按照C盘安装教程第8步配置好用户名和密码,完成安装。最终,目录下会多出一个vhdx虚拟硬盘文件,它就是Ubuntu WSL2虚拟机挂载的“硬盘”。在WSL2 Ubuntu虚拟机中下载资源、安装软件,都会让这个虚拟硬盘文件变大

安装结束后,安装目录中的ubuntu<版本号>.exe就是Ubuntu的启动/访问程序

删除原始安装包和相关文件

正如教程开篇提到的,在开始菜单中可以找到原始安装包的应用图标,右键将其卸载。卸载后Ubuntu从微软商店的已安装列表中消失。

让Ubuntu快捷启动

从此,安装目录中的ubuntu<版本号>.exe就是Ubuntu的启动程序,我们把它添加到开始菜单。

以后可以直接从开始菜单打开Ubuntu,也可以通过Windows键+S键直接搜索ubuntu打开: ​

​对于那些安装了Windows Terminal的小伙伴,Ubuntu会自动添加至其中:

如果发现Windows Terminal的下拉列表里没有这个项目 ,那代表它被自动隐藏了。我们点击“设置”后应当能在左侧边栏找到它。将其取消隐藏,然后保存设置。

其它黑科技

WSL运行状态、开/关机

WSL已安装发行版信息查询

WSL可以安装多个Linux发行版(如Ubuntu、Kali等等)。操作系统由内核+外围程序组成,Linux是操作系统内核的名字,由基于Linux内核的软件组成的操作系统叫做Linux发行版(如Ubuntu、Kali等等)。

我们可以打开powershell,通过以下命令查询机器上安装的所有发行版:

wsl --list --verbose

输出一张表格,分别记录了WSL中每一个Linux发行版的名称(NAME)状态(STATE)版本(VERSION)

  • NAME:发行版的名称。
  • VERSION:发行版所用WSL技术的版本。若VERSION一栏的值为2,代表该发行版使用了WSL2技术;若为1,则该发行版使用WSL1技术。
  • STATE:发行版的运行状态。每个发行版都有两个运行状态——运行中(Running)已停止(Stopped)。前者可以理解为“开机”状态,而后者则为“关机”状态。

开机/关机

WSL中,Linux发行版的开机/启动方法非常简单,只需要运行该发行版的安装-启动程序即可。

关机操作,在powershell中执行以下命令来关闭某一个linux发行版:

wsl --terminate <发行版名称>

或者关闭所有发行版:

wsl --shutdown

⚠️注意:发行版开机后,只要不手动执行关机操作,或者不关闭物理机器,它将一直保持开机。物理机器在关闭、重新启动后,发行版会关机。

更多wsl命令行操作的官方文档(包括卸载等):

Basic commands for WSL | Microsoft Docs

Windows下快速访问WSL的文件系统

在保证Linux发行版正在运行的情况下,在文件浏览器中输入以下路径,即可访问发行版的文件系统:

\\wsl$

此时我们可以在左侧边栏中,将路径加入快速访问(“固定到快速访问”功能也可能是在上方的文件夹工具栏里,不同系统貌似不一样,找不到的话可以百度一下)。

WSL2运行GUI图形界面应用

微软在Github上发布了wslg项目,旨在为WSL2提供更加自然的GUI图形界面支持,并且提到wslg可以通过安装虚拟GPU驱动来得到物理GPU的加速。

⚠️注意:

该功能对windows系统版本有要求。按下Windows键+R键后,在弹出的“运行”窗口中输入winver,可以快速查询系统版本。

系统要求 Windows 10 Insider Preview build 21362+(wslg项目README描述)或 Windows 11 Build 22000+(微软官方文档描述)。大家可以通过参加Windows预览体验计划升级系统。

wslg在Github的项目地址:

GitHub - microsoft/wslg: Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios

微软官方文档:

Run Linux GUI apps with WSL | Microsoft Docs

博主的win11按照官方文档的描述升级了WSL2的GUI支持。使用上的效果就是,在WSL2的Linux发行版命令行中打开某个GUI图形界面应用(如xterm)后,windows系统会打开一个新的窗口,窗口中运行着该应用,可以进行图形界面的交互。

wslg图形应用内容显示太小的解决方法

当Windows系统设置了显示内容放大,并且放大倍数是整数时(如100%、200%等),wslg会按照相应的放大倍数放大GUI的内容。但若放大倍数不是整数(如125%、150%等),wslg默认不会对GUI内容进行非整数倍放大。本节第一幅图片便是没有放大的效果。

我们需要以管理员权限运行linux发行版,然后新建wslg的配置文件.wslgconfig

touch /mnt/c/ProgramData/Microsoft/WSL/.wslgconfig

然后在文件中添加如下内容,来打开非整数倍放大功能:

[system-distro-env]
WESTON_RDP_DISABLE_FRACTIONAL_HI_DPI_SCALING=false

最后,对发行版进行“关机”“开机”操作,使改动生效。下图是修改配置后的效果:

参考的Github回答:

WSLg does not seem to support fractional scaling · Issue #23 · microsoft/wslg · GitHub

WSL2 Ubuntu 20.04使用NVIDIA CUDA

作为一个虚拟机,WSL2居然可以访问到物理宿主机的GPU设备,博主之前还没听说过有哪家公司的虚拟机可以做到这一点。如果WSL2当真可以做到,并且性能可以接受的话,那真是科研党的福音!

⚠️注意:

  1. 该功能对windows系统版本有要求。系统要求Windows 11或Windows 10, version 21H2。
  2. 关于支持在WSL2上运行CUDA的显卡型号,NVIDIA文档中只保证了GeForce系列和NVIDIA RTX/Quadro系列显卡支持此功能。文档并未提及其他系列和型号的显卡,可以自行尝试按教程配置,但有可能失败。

微软撰写的为WSL2启用GPU加速的官方文档。该文档记载了WSL2使用NVIDIA CUDA(需要NVIDIA品牌的GPU)和DirectML(GPU不限品牌,AMD/Intel/NVIDIA都可,但需要支持DirectX 12技术)的方法:

GPU acceleration in WSL | Microsoft Docs

在本节中我们主要介绍WSL2 Ubuntu 20.04使用Nvidia CUDA的操作方法,遵循NVIDIA公司给出的官方教程:

CUDA on WSL :: CUDA Toolkit Documentation (nvidia.com)

CUDA基础知识

CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一个并行计算平台和一种并行编程模式,旨在为NVIDIA的GPU提供通用的计算能力

具体说来,CUDA是NVIDIA为他们公司自己的GPU开发的一套“工具库和工具程序”,它将复杂的底层GPU驱动接口封装起来,只暴露出一套自己的接口给上层应用。你只需要在自己的代码(如C++、Fortran等)中按照规则调用CUDA,再经过CUDA专用编译工具(如nvcc等)的翻译,最终的可执行程序就可以使用GPU进行计算了。

用来解决问题的上层应用

科研人员或程序员使用TensoFlow、PyTorch等深度学习框架来解决某些复杂问题,并且需要GPU提供算力。

TensoFlow、PyTorch等深度学习框架

这些深度学习框架需要调用一些基础的“获得CUDA支持、编译好的C++等程序”,并把它们包装成高级语言的接口,供上层应用调用。

C++、Fortran等程序

深度学习框架开发人员在程序代码中嵌入cuDNN或者CUDA相关的代码(即在代码中调用cuDNN和CUDA暴露出的简单接口),然后源代码经过nvcc等编译器翻译为底层GPU驱动程序能看懂的机器码。

cuDNN

NVIDIA将一些复杂的深度学习算法和数据结构用CUDA提供的接口实现,然后暴露出简洁的接口给上层应用。

CUDA

NVIDIA将自己设计的GPU的复杂底层驱动接口封装起来,暴露出一套简洁、专用的接口给上层应用,

nvcc等CUDA专用编译器

专用编译器将程序代码中内嵌的CUDA代码翻译为底层GPU驱动程序能看懂的机器码。

NVIDIA GPU驱动程序

底层的显卡驱动程序会根据机器码给的指令,操控显卡进行动作。

NVIDIA GPU物理设备

显卡,手能触碰到的物理设备。显卡上的电路根据指令进行动作。

确定要安装的版本

从物理设备开始一直到上层应用,CUDA有一条复杂的软件版本依赖链。我们通常从自己电脑的物理GPU型号开始,确定每个环节的软件版本:

GPU物理设备的型号 ——决定——> GPU驱动的版本号 对应关系
GPU驱动的版本号 ——决定——> CUDA的版本号 对应关系
CUDA的版本号 ——决定——> cuDNN的版本号 对应关系
CUDA的版本号,同上 ——决定——> PyTorch等深度学习框架的版本号 对应关系

举个例子(这一步只是先确定版本,还没到安装环节。后面有具体的安装教程,别着急哟~)

  1. 确定要安装的显卡驱动版本——博主的笔记本电脑是2018年购买的联想拯救者R720,显卡型号是NVIDIA GeForce GTX 1050 Ti,在官方下载地址可以查询并下载显卡驱动。博主是2021年配置的CUDA,因此使用的是当时最新的470.14版本显卡驱动。大家可以选择更新的版本。

  2. 确定要安装的CUDA版本——在2022年12月22日查表可知(表格的截图在下面),470.14的NVIDIA显卡驱动(一定要看表格中Windows那一列哦,我们的显卡驱动是装在Windows上面的)应当兼容CUDA 11.0到CUDA 11.8的所有版本。但是在470.14驱动发布的当年,最新的CUDA版本也只开发到了CUDA 11.3,2021年的博主只能安装CUDA 11.3。大家可以选择表格中记录的新CUDA版本。⚠️注意:安装最新的CUDA并不一定是个好主意,因为有可能其他上层应用还没来得及对其进行适配。比如在2022年8月3日,CUDA已经发布到了11.7版本,但PyTorch最高仍然只支持CUDA 11.6(详见下面的4)。

    安装完显卡驱动,在命令行执行nvidia-smi.exe,可以查看驱动支持的最高CUDA版本。上图中显示的是CUDA Version: 11.3,表示该驱动开发出来时最高支持CUDA 11.3

    2022年12月22日,该表格列举了每个“CUDA版本”要求的最低“Windows显卡驱动版本”
    一定要看表格中Windows那一列哦,我们的显卡驱动是装在Windows上面的~
  3. 确定要安装的cuDNN版本——在2022年8月3日查表可知,cuDNN 8.4.1可以兼容所有CUDA 11的版本(GPU型号的算力要不低于3.5)2021年博主配置环境的时候,cuDNN最新才发布到8.2.1,因此当时博主使用了cuDNN 8.2.1。大家可以选择表格中写的更新的版本。

  4. 确定要安装的PyTorch版本——(不需要PyTorch的话可以不看)在2022年8月3日查表可知,PyTorch1.12.0有三种支持CUDA的版本,分别最高支持到CUDA 10.2 / CUDA 11.3 / CUDA 11.6。由于博主的CUDA版本是11.3,我使用更接近的最高支持CUDA 11.3的PyTorch。大家可以选择更新的版本。

总结下来,博主的CUDA配置清单如下,大家也可以整理一下自己要安装的软件清单:

物理显卡型号 NVIDIA GeForce GTX 1050 Ti
显卡驱动版本号 470.14
CUDA版本号 11.3
cuDNN版本号 8.2.1

PyTorch版本号

(不用的话可以不装)

1.12.0-gpu-cuda113

明确了要安装软件的版本,接下来就可以正式进入下载安装环节啦~

安装Windows上的NVIDIA GPU驱动

按照NVIDIA给出的教程,首先需要安装Windows平台上的NVIDIA显卡驱动。

⚠️注意:

  1. 如果Windows系统已经安装了NVIDIA显卡驱动,据不可靠消息来源报道,显卡驱动版本在455.41以上的话,应当可以支持此功能(如果后面运行CUDA失败,还请卸载CUDA,然后更新显卡驱动到最新)。
  2. 如果已经有NVIDIA显卡驱动,可以按Windows键+S键,搜索系统里安装的NVIDIA的显卡管理程序(如GeForce Experience,它在任务栏也会显示图标),通过它升级显卡驱动。

如果系统里没有装过NVIDIA显卡驱动,或想要手动更新的话,请在官方下载地址下载安装最新的、符合自己显卡型号WIndows显卡驱动(“操作系统”一定要选择Windows,而不是Linux)。举个例子,假如电脑显卡是GTX1050ti(笔记本版),操作系统是Windows 11,下图是应该选择的显卡驱动配置:

配置完毕后,点击“搜索”,查找最新的显卡驱动。搜索出结果后,点击“下载”,会弹出文件下载窗口。

如果觉得浏览器下载太慢,可以复制下载链接到迅雷或者其他下载器:

下载完毕后,运行安装程序。一般来说,按照推荐选项安装即可。 安装完毕后,重启电脑

安装过程,图片来源于网络

安装完毕后,可以在命令行执行nvidia-smi.exe检查显卡驱动信息,正常输出则安装正确。如果无法直接找到这个可执行文件,可以在命令行输入它的(默认)安装位置。

'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe'

WSL2 Ubuntu安装NVIDIA CUDA工具包

当我们在Windows上安装完NVIDIA显卡驱动后,下一步就是安装CUDA的核心本体——CUDA工具包。CUDA工具包囊括了CUDA的相关工具库文件和工具程序,如nvcc编译器等。拥有了CUDA工具包,我们就可以在程序代码中嵌入CUDA语句来方便地使用GPU,然后通过CUDA的编译器将代码翻译成可执行文件。本节主要参考来源:CUDA on WSL :: CUDA Toolkit Documentation

⚠️注意:鉴于平台限制,WSL2下的CUDA工具包目前仍有少数功能没有得到完全支持,如CUDA代码的调试器等,详细请见文档。

当你进行到这一步时,应该已经清楚自己需要安装的CUDA版本了,我们把要安装的CUDA版本号记作:

<CUDA_MAJOR>.<CUDA_MINOR>

CUDA_MAJOR是CUDA的大版本号,CUDA_MINOR是CUDA的小版本号

假如说我们要安装CUDA 11.6,那么CUDA_MAJOR=11,CUDA_MINOR=6

打开WSL2 Ubuntu 20.04,执行如下语句来获取NVIDIA CUDA的官方本地安装包仓库。首先,我们根据自己要装的CUDA版本号,依次定义这两个临时环境变量:

​export CUDA_MAJOR=大版本号,如11
export CUDA_MINOR=小版本号,如6

由于最近几个月NVIDIA更新了自己apt源的GPG密钥,我们需要先删除它原来过时的密钥:

sudo apt-key del 7fa2af80

接着,下载并安装NVIDIA CUDA的本地安装包仓库:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/${CUDA_MAJOR}.${CUDA_MINOR}.0/local_installers/cuda-repo-wsl-ubuntu-${CUDA_MAJOR}-${CUDA_MINOR}-local_${CUDA_MAJOR}.${CUDA_MINOR}.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-${CUDA_MAJOR}-${CUDA_MINOR}-local_${CUDA_MAJOR}.${CUDA_MINOR}.0-1_amd64.deb

Win10自定义路径位置安装WSL2 (Ubuntu 20.04) 并配置CUDA相关推荐

  1. Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 )

    Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 ) 1. WSL 简介 1.1 什么是 WSL ? 1.2 WSL1 与 WSL2 2. 安 ...

  2. Windows 10安装 WSL2 (Ubuntu 20.04)

    条件 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本. 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本. 低于 18 ...

  3. harfbuzz安装位置 linux_最新Ubuntu 20.04 LTS已发布,在Win10中该如何进行安装和使用?...

    最近Ubuntu发布最新的20.04 LTS长期支持版本,官方提供为期5年的更新升级.安全修复等服务.国内的优麒麟团队也同步放出了优麒麟20.04 LTS,加入了全新的UKUI 3.0桌面环境. 那么 ...

  4. 如何在Ubuntu 20.04中配置CA根证书

    导读 证书颁发机构(CA)是负责颁发数字证书以保证通信安全的实体. 它充当证书所有者和依赖证书的一方的受信任的第三方. CA是公共的,也可以是私有的. 公共CA通常用于验证网站的身份,私有CA用于为客 ...

  5. 刚刚安装的ubuntu 20.04.1连接不上网络

    这里写自定义目录标题 问题 解决方法 问题 刚刚下载了ubuntu系统,在学习linux相关指令时,发现没有tree命令,按照提示进行命令行下载时,显示"暂时不能解析域名cn.archive ...

  6. 树莓派安装ubuntu 20.04后配置wifi固定ip地址

    ubuntu 从18.04 版本开始网络配置工具已经改为netplan了 编辑netplan目录下的yaml配置文件 sudo nano /etc/netplan/50-cloud-init.yaml ...

  7. 安装虚拟机Ubuntu 18.04基础配置

    虚拟机配置:任意配置,这里是硬盘20G,内存2G(一般根据电脑配置) 点击player,文件,新建虚拟机.指定磁盘大小为20G.  然后自定义硬件更改内存为2G   自定义分区:硬盘分为三个分区,bo ...

  8. Ubuntu 20.04 RTX3090 配置openpose

    1. 显卡ubuntu20.04, RTX3090.安装cuda-11.4,cudnn-8.2.4.15(安装方法参考:http://t.csdn.cn/xjfVi). 2. opencv-4.5,也 ...

  9. Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM+Gazebo仿真运行ORB-SLAM2+各种相关库的安装

    文章目录 一.换源 1.1 通过软件更新 1.2 通过修改源文件 二.安装三方库 2.1 安装必要的依赖项 2.2 安装Pangolin 2.3 安装OpenCV3 2.4 安装Eigen3 三.安装 ...

  10. 【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】

    Ubuntu安装步骤参考文章 知乎:Ubuntu 20.04系统安装及初始配置 目录 一. 制作启动盘 1.1 下载镜像文件 1.2 制作启动盘 二. 安装系统 2.1 启动计算机并进入BIOS 2. ...

最新文章

  1. 带父节点的平衡二叉树_学习数据结构--第四章:树与二叉树(平衡二叉树)
  2. VIP群第一期讲座实屏片段摘录
  3. Netflix CEO哈斯廷斯:内容为王 公司潜力依然巨大
  4. zillow房价预测
  5. 人人都会设计模式:03-策略模式--Strategy
  6. java读取16位深png_读取16位灰度TIFF
  7. Python读取Json字典写入Excel表格的方法
  8. Linux基础(用户身份和文件权限)
  9. cron 每天下午5点_下午5点30:沅江新沅路与琼湖路交叉路口...
  10. Rust之控制流,条件语句,模式匹配
  11. js点击复制兼容Firefox
  12. springboot Validation
  13. [高通SDM450][Android9.0]CTA认证--拆分申请权限分组
  14. 错误:安装autocad2012的时候提示Command line option syntax error.Type Command/?for help.
  15. 公众号1000篇文章数据统计
  16. 牛客小白月赛61_C-小喵觅食题解
  17. 如何使用(免费软件)Microsoft ICE轻松扫描大图片
  18. 逆波兰计算器(含完整版)
  19. NAT ALG DNS — DNS在内部,外网通过域名访问内部服务器
  20. ZMQ 第一章 ZeroMQ基础

热门文章

  1. 《SteamVR2.2.0传送机制(Teleport)=快速入门大结局》(Yanlz+Unity+XR+SteamVR+Interaction+Teleport+Valve+立钻哥哥++ok++)
  2. ssm毕设项目鲲龙装饰公司在线管理系统的设计与开发前台模块iub6h(java+VUE+Mybatis+Maven+Mysql+sprnig)
  3. 漏洞系列一一看我一招征服漏洞SSRF
  4. [转]Cryengine渲染引擎剖析
  5. 世界顶级企业的数据中台打造之旅
  6. vue实现预览pdf组件(vue-pdf插件使用)
  7. 商汤科技VS旷视科技VS依图科技(转)
  8. java 根据list中 | 中、英文名称进行排序
  9. 汽车年检,备忘一下,估计2年以后才有用了
  10. 红米手机开启---开发者选项方法