【bash】笔记

2024-05-09 04:36
文章标签 bash 笔记

本文主要是介绍【bash】笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Shell脚本中,-e 是一个测试运算符,用于检查给定的文件或目录是否存在。

|  是通道符,会把前面的输出给后面作为输入。

sudo tee命令在这里用于同时更新文件和在终端显示输出(尽管  > /dev/null 将标准输出重定向到黑洞,即不显示任何内容)。这样做的目的是在不影响用户交互的情况下安全地更新系统设置。


在Shell脚本中,$0是一个特殊变量,它代表脚本本身的文件名(包含路径)。当脚本被执行时,$0就保存了这个脚本的名字。这在脚本内部需要引用脚本名称或者路径时非常有用,比如在打印日志、错误信息或者像上面提到的帮助信息中显示脚本名。 

在Shell脚本中,$#是一个特殊变量,表示传递给脚本或函数的参数个数。

-gt 是大于(greater than)的比较运算符。

在Shell脚本中,$1是一个特殊变量,它代表传递给脚本或函数的第一个命令行参数。当你运行一个脚本并提供一些参数,$1将存储第一个参数的值,$2存储第二个参数,以此类推,$0存储脚本本身的名字。

 -z 后面么有就是真。

所以,如果${DOCKER_REPO}没有被设置或者值为空,脚本将把DOCKER_REPO设置为apolloauto/apollo。这确保了在没有指定Docker镜像仓库的情况下,有一个默认的仓库值可供使用。

 

在Docker容器内使用CUDA,你需要确保几个关键步骤都已完成:

  1. 使用支持CUDA的Docker镜像:首先,你需要一个包含CUDA和NVIDIA驱动的Docker镜像。NVIDIA提供了官方的CUDA镜像,这些镜像是基于不同的基础镜像(如Ubuntu、Debian等)构建的,并且已经包含了CUDA和NVIDIA驱动。你可以通过docker pull命令从Docker Hub拉取这些镜像。

  2. 启用NVIDIA Docker插件:NVIDIA Docker工具包允许你在Docker中充分利用NVIDIA GPU。你需要安装NVIDIA Container Toolkit,它提供了运行CUDA容器所需的驱动和库。

  3. 设置环境变量:在运行Docker容器时,可以通过-e选项设置环境变量,比如CUDA_VISIBLE_DEVICES来指定哪个GPU可以被容器看到和使用。

  4. 挂载CUDA库:如果需要访问主机上的CUDA安装,可以通过-v选项挂载CUDA库的路径,如/usr/local/cuda,这样容器内可以访问到这些库。不过,通常情况下,如果你使用的是带有CUDA的预配置镜像,这些库应该已经包含在镜像内。

一个基本的Docker运行命令可能如下所示:

  • --gpus all 允许容器访问所有的GPU。
  • -e CUDA_VISIBLE_DEVICES=0 设置环境变量,指定GPU 0 可见。
  • -v /usr/local/cuda:/usr/local/cuda 挂载主机上的CUDA路径到容器内。

 docker run

--gpus all

-e CUDA_VISIBLE_DEVICES=0

-v /usr/local/cuda:/usr/local/cuda -it nvidia/cuda:11.0-base bash


-v /usr/local/cuda:/usr/local/cuda

这篇关于【bash】笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972401

相关文章

我这两年收藏的嵌入式AI资源,并做了学习笔记

有粉丝问我:“当前乃至未来5-10年,嵌入式开发者还有哪些风口?” 画外音:风口的本质,其实就是一段时间的人才供需不平衡。说白了就是由于行业突变,敏锐的资本快速进入,导致短时间内行业大量扩张,需要大量开发者。 目前的嵌入式开发越来越倾向于智能化,也就是我们所说的智能硬件(硬件+软件)。 以百度机器人为例,机器人的核心是大脑,即是“数据和算法” ,但机器人大脑想机器人身躯能够像人类一样活动,能说会

threejs坑记录-笔记

雪花 注意depthTest: false 否则会出现有transparent无效 const createSnow = () => {let map = new THREE.TextureLoader().load(snow);let material = new THREE.SpriteMaterial({map: map,transparent: true,side: THREE.Dou

Vue学习笔记:拦截器

原文地址 Vue可以对http request和http response添加全局拦截,最典型的例子就是在请求头里添加token,和监测是否登录,如果没有登录则跳转到登录页面。 main.js中添加拦截器的代码: 1. request 拦截器 //request 拦截器,在请求头中加tokenaxios.interceptors.request.use(config => {if (lo

Pytorch学习笔记_4_训练一个分类器

关于数据 一般来说,对于图像、文本、音频或视频数据,可以使用标准的Python包来将这些数据加载为numpy array,之后可以将这些array转换为torch.*Tensor 对于图像,Pillow、OpenCV包音频,scipy、librosa包文本,可以使用原始Python和Cython加载,或NLKT和SpaCy 特别的,对于视觉任务,有一个包torchvision,其中包含了处理

Pytorch学习笔记_3_构建一个神经网络

Neural Networks 神经网络可以通过使用torch.nn包来创建 nn依赖于autograd来定义模型并求导。 一个nn.Module类包含各个层和一个forward(input)前向传播方法,该方法返回output 例如这个分类数字图像的网络: 这是个简单的前馈神经网络,它接受一个输入,然后一层接一层的传递,最后输出计算结果 一个神经网络的典型训练过程: 定义包

Pytorch学习笔记_2_Autograd自动求导机制

Autograd 自动求导机制 PyTorch 中所有神经网络的核心是 autograd 包。 autograd 包为张量上的所有操作提供了自动求导。它是一个在运行时定义的框架,可以通过代码的运行来决定反向传播的过程,并且每次迭代可以是不同的。 通过一些示例来了解 Tensor 张量 torch.tensor是这个包的核心类。 设置.requires_grad为True,会追踪所有对于

Pytorch学习笔记_1_tensor张量

Tensors Tensors与Numpy中的ndarrays类似 torch.new_* 与 torch.*_like 前者创建的对象会保持原有的属性(如dtype),但shape不同 >>> x = torch.zeros(5, 3, dtype=torch.double)>>> x.new_ones(2, 3)tensor([[1., 1., 1.],[1., 1., 1.]],

sublime3 + markdown 笔记

1. package control: 安装俩插件就可以在sublime用markdown啦~ MarkdownEditing:编辑 OmniMarkupPreviewer:预览 安装插件方法: preference -> package control 2. markdown: MarkdownEditing 基本语法不赘述了,这里贴点小技巧 command + option

论文笔记Understanding and Diagnosing Visual Tracking Systems

最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果。本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错误和疏漏还请见谅。本文参考了hjl240的文章:追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) 近些年已经出了一

2024年05月16日【链表学习笔记】

以下是一些与链表概念相关的问题,这些问题可以帮助你评估自己对链表的理解: 1.基本概念 1.什么是链表? 一种线性表数据结构,这种数据结构使用一组人意的存储单元,,用于存储同类型的数据元素 2.链表与数组有什么区别? 链表和数组是两种常见的数据结构,它们在存储方式和操作特性上有着本质的不同: 存储方式: 数组:在内存中连续存储,每个元素的位置是固定的。数组的大小在创建时就已确定,如果