【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go有无缓冲channel的区别

无缓冲的channel channel的默认类型就是无缓冲的。当一个数据被发送到无缓冲的channel中,发送操作会被阻塞,知道有另一个goroutine从这个channel中接收这个数据。同样,当试图从一个无缓冲的channel中接收数据时,如果没有数据可以…

ai智能答题助手,这四款软件让知识触手可及!

在数字化时代,知识的获取变得前所未有的便捷。随着人工智能技术的不断发展,AI智能答题助手应运而生,成为了人们学习、工作和生活中的得力助手。今天,就为大家介绍四款备受欢迎的AI智能答题助手软件,让你感受知识的魅力…

俄罗斯国际消费类电子电器展ICEE:人潮如织,盛况空前

近日,备受全球瞩目的俄罗斯国际消费类电子电器展ICEE在莫斯科盛大落幕。本次展会为期四天,真的攒足了眼球,不仅俄罗斯这边的很多媒体和自媒体有报道,展会第一天,很多参展商通过短视频平台将展会的盛况传到了国内&#…

《21天学通C++》(第十九章)STL集合类(set和multiset)

为什么需要set和multiset: 1.自动排序: set和multiset会自动按照元素的值进行排序。 2.快速查找: 由于元素是有序的,set和multiset可以提供对元素的快速查找,通常是基于二叉搜索树实现的,查找操作的时间复杂度为O(log …

libcity/model/trajectory_loc_prediction/DeepMove.py

1 DeepMove 1.1 构造函数 1.2 初始化权重 1.3 forward 1.4 predict def predict(self, batch):score self.forward(batch)if self.evaluate_method sample:# build pos_neg_inedxpos_neg_index torch.cat((batch[target].unsqueeze(1), batch[neg_loc]), dim1)score tor…

在思科和华为上实现两个主机A,B A能ping通B,B不能ping通A

1.华为实验的topo如下 常规状态下任意两台主机都是可以ping通的 此时的需求是PC4能ping通PC2和PC3但是PC2和PC3不能ping通PC4 这里需要用到ACL策略 在接口上调用 验证: PC4能ping通PC2和PC3 PC2和PC3不能ping通PC4 2.思科类似 正常情况下是都能互相ping通 加上ac…

FFmpeg学习记录(三)—— ffmpeg编解码实战

解码步骤 查找解码器 (avcodec_find_decoder)打开解码器 (avcodec_open2)解码 (avcodec_decode_video2) 1.视频编码 编码的详细步骤: 1.输入参数2.查找编码器3.创建编码器上下文4.设置编码器参数5.编码器与编码器上下文绑定到一起6.创建输出文件7.创建AVFrame8.…

深入了解 NumPy:深度学习中的数学运算利器

文章目录 1. 导入NumPy2. 创建NumPy数组3. 数组的算术运算4. N维数组4.1 创建和操作多维数组4.2 高维数组 5. NumPy的广播功能5.1 基本广播示例5.2 更复杂的广播示例 6. 访问数组元素6.1 基于索引的访问6.2 遍历数组6.3 基于条件的访问6.4 高级索引6.5 性能考虑 在深度学习和数…

【idea-sprongboot项目】在linux服务器上纯远程开发方式

继上一篇博客【idea-sprongboot项目】SSH连接云服务器进行远程开发-CSDN博客 目录 五、远程开发方式 2)纯远程开发方式 步骤 五、远程开发方式 2)纯远程开发方式 实现原理, 步骤 (1)首先,关闭当前正在…

springMVC入门学习

目录 1、 什么是springmvc 2、springmvc工作流程 3、 springmvc快速入门(XML版本) 4、加载自定义目录下的springmvc.xml配置文件 5、 解析器InternalResourceViewResolver 6、 映射器BeanNameUrlHandlerMapping 7、 适配器SimpleControllerHandle…

el-select 点击按钮滚动到选择框顶部

主要代码是在visibleChange 在这个 popper 里面找到 .el-select-dropdown__list let popper ref.$refs.popper const ref this.$refs.select let dom popper.querySelector(.el-select-dropdown__list) setTimeout(() > { dom.scrollIntoView() }, 800) <templat…

vue3+vite+js 使用pinia -- vue2 vuex的plus版

先交代下基础版本&#xff1a; “node”&#xff1a;“V16.14.1” “vue”: “^3.4.21” “vite”: “^5.2.0” 接入状态store 即 vuex 呃(⊙﹏⊙)vuex这里可以略过了&#xff0c;我在研究完后&#xff0c;才发现vue3出来个pinia&#xff0c;是vuex的升级&#xff0c;体积更小…

JavaScript 数组方法详解

JavaScript数组方法详解 在JavaScript中&#xff0c;数组&#xff08;Array&#xff09;是一种用于存储多个有序值的数据结构。为了方便开发者高效地操作数组&#xff0c;JavaScript提供了一系列内置的方法。本文将详细介绍这些常用的数组方法&#xff0c;帮助读者更好地理解和…

【算法刷题day47】Leetcode:198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III

文章目录 Leetcode 198. 打家劫舍解题思路代码总结 Leetcode 213. 打家劫舍 II解题思路代码总结 Leetcode 337. 打家劫舍 III解题思路代码总结 草稿图网站 java的Deque Leetcode 198. 打家劫舍 题目&#xff1a;198. 打家劫舍 解析&#xff1a;代码随想录解析 解题思路 偷&am…

Python 正则表达式 re.findall()

Python re.findall 正文示例一示例二示例三 正文 调用方法&#xff1a; re.findall(pattern, string, flags0)用法说明&#xff1a; 扫描整个 字符串&#xff0c;找到所有满足匹配样式的字符&#xff0c;将它们集合在一起以列表形式返回。其中这个返回的列表包含空的结果(没有…

CSF(Cloth Simulation Filter)点云地面点滤波

CSF[Cloth Simulation Filter]点云地面点滤波 0.引言1.布料模拟2.修改布料模拟3.布料滤波4.CSF总体过程 0.引言 code 基本原理&#xff1a;原始点云被倒置过来&#xff0c;然后⼀块布从上⽅掉落到倒置的表⾯。通过分析布的节点与相应的LIDAR点之间的相互作⽤&#xff0c;可以确…

2024年华为OD机试真题-数的分解-(C++)-OD统一考试(C卷D卷)

题目描述: 给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述: 输入数据为一整数,范围为(1, 2^30] 输出描述: 比如输入为: 21 输出: 21=10+11 补…

C++中使用Multimap和Vector管理和展示数据

一&#xff1a; 在本文中&#xff0c;我们将探讨如何在C中使用vector和multimap容器来管理一个简单的员工数据系统。我们将创建一个员工类&#xff0c;随机生成员工数据&#xff0c;将员工分组&#xff0c;并展示各组员工的详细信息。此示例展示了C标准模板库&#xff08;STL&…

【中级软件设计师】上午题15-计算机网络

上午题15-计算机网络 1 网络设备2 协议簇3 TCP和UDP4 SMTP和POP35 ARP和RARP6 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;7 URL8 浏览器9 IP地址和子网划分10 IPv611 Windows命令12 路由器 1 网络设备 物理层设备&#xff1a;中继器、集线器&#xff0…

Mysql基础(五)外键约束

一 外键 激励&#xff1a; 每天进步一点点即可 ① 思考 1、在MySQL中,我们知道主键 PRIMARY KEY的主要作用是唯一区分表中的各个行 [记录];思考&#xff1a;但是对于外键 foreign key比较陌生? 那么外键作用以及限制条件和目的呢? ② 外键的定义 1、外键是某个表 A中…