我在一台设备上安装了 UOS 系统,但是我如何在我的主开发设备上和 UOS 系统传输文件?通过 dotnet tool 工具可以完成大部分的工作,当然,使用 dotnet tool 不仅做文件传输,还能做很多特别强大的应用。本文就使用文件传输作为例子告诉大家如何使用 dotnet tool 在多个平台里面使用相同的一套技术和命令行作为工具

在 dotnet 里,可以制作一个 dotnet 应用,将这个应用发布到 NuGet 上,无论是外网的 NuGet 的还是自己内网搭建的都可以,然后其他小伙伴就可以通过 NuGet 下载到这个应用。这样的应用就叫 dotnet tool 工具

使用 dotnet tool 工具的优势在于,工具使用自己熟悉的 .NET 编写,其次是分发方便,毕竟咱的项目基本上都需要安装 NuGet 包,也就是咱都是有 NuGet 源和环境的,因此可以方便在设备上利用 NuGet 获取工具或上传自己的工具

在开始之前,请在 UOS 上安装必要的工具,如 dotnet 开发工具,请看 dotnet 在 UOS 国产系统上安装 dotnet sdk 的方法

接下来咱需要使用的工具有两个,一个是用来开启本地文件服务器的,另一个是用来下载文件的

在 UOS 上有一个限制,也就是不能调用全局的工具,只能使用文件夹内本地工具,这个问题我和官方说了,请看 dotnet global tool can not run in UOS system · Issue #13399 · dotnet/sdk

例如我期望在 UOS 上传输一个文件到我的开发机器上?可以如何做?可以使用下面步骤

  1. 在 UOS 上开启文件服务器
  2. 在开发机上使用下载工具下载文件

如果需要传输一个文件夹呢?其实只需要将文件夹压缩就可以使用上面步骤

  1. 在 UOS 上将文件夹压缩成文件
  2. 在 UOS 上开启文件服务器
  3. 在开发机上使用下载工具下载文件

下面咱一步步来

压缩文件夹成文件

这一步在 UOS 上做,可以使用自带的 tar 工具,压缩命令如下

 tar -cvf 1.tar lindexi/

上面命令就是将 lindexi 文件夹压缩到 1.tar 文件里

详细请看 Linux tar压缩命令:打包与解打包命令

安装 dotnet tool 工具

在 UOS 开启文件服务器可以使用 dotnet-serve 工具,在开始之前需要先初始化一下工具

dotnet new tool-manifest

上面代码将会在当前工作路径下初始化 dotnet tool 工具

然后使用下面命令安装 dotnet 本机文件服务器工具

dotnet tool install dotnet-serve

安装完成之后,可以使用下面代码开启文件服务器

dotnet tool run dotnet-serve -a 0.0.0.0

而在 Windows 端开启文件服务器就没有那么长的命令了,因为 Windows 下是支持全局工具的,也许后续 UOS 也会支持

在 Windows 下第一步是安装工具,注意和 UOS 上安装不同的是添加了 -g 表示全局安装,全局安装的工具,可以在任意工作路径下才能使用。而不加上 -g的是本地安装,只有在当前当前工作路径下才能使用

dotnet tool install -g dotnet-serve

接着使用下面代码开启文件服务器

dotnet serve -a 0.0.0.0

详细请看 dotnet serve 一句话开启文件服务器 通过 HTTP 将文件共享给其他设备

下载文件

在 UOS 上是 Linux 系统,可以使用 wget 的工具下载文件,而在 Windows 下可以使用 dotnetCampus.FileDownloader.Tool 工具下载文件,这是一个完全在 GitHub 开源的项目

安装 dotnet tool 的方法和上面安装文件服务器相同,在 Windows 下使用下面代码作为全局工具安装

dotnet tool install -g dotnetCampus.FileDownloader.Tool

安装完成之后,可以使用下面命令下载文件

DownloadFile -u 下载链接 -o 下载文件保存路径

在 UOS 上开启文件服务器,使用下面命令开启

dotnet tool run dotnet-serve -a 0.0.0.0

再打开一个终端,使用下面命令找到 UOS 的 ip 地址

sudo ifconfig

假定在 UOS 上开启文件服务器的工作路径下,有刚才压缩好的 1.tar 文件准备传输到 Windows 服务器上

先记下 UOS 的 ip 地址,和执行 dotnet serve 开启的服务器端口,如 36867 端口,此时可以在 Windows 下使用下面命令下载 1.tar 文件

downloadfile -u http://172.20.115.72:36867/1.tar -o 1.tar

上面代码的 172.20.115.72 就是 UOS 设备的地址

这样就仅通过工具完成了 UOS 到 Windows 文件的传输,有趣的是,反过来也可以,使用的工具和命令也可以是相同的

更多关于下载工具请看 https://github.com/dotnet-campus/dotnetCampus.FileDownloader

也许本文的例子还不够让大家看到 dotnet tool 的优势,因为 UOS 作为 Linux 系统,有大量可用的自带的命令行工具,只是存在一个坑就是我对这些工具都是不熟悉的。而 dotnet tool 可以让两边都使用相同的工具和命令

欢迎小伙伴加入 xamarin 国产 UOS 开发群: 810052083


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

dotnet 在国产 UOS 系统利用 dotnet tool 工具做文件传输的更多相关文章

  1. 如何利用 JuiceFS 的性能工具做文件系统分析和调优

    JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...

  2. UOS系统 - 国产统一操作系统UOS的基本知识

    一.UOS操作系统含义及现状 UOS操作系统与windows不同的是,UOS统一操作系统支持龙芯.申威.华为鲲鹏等一票国产处理器芯片.它的诞生是多家国内科技公司联合孕育的结果,包括中国电子集团.武汉深 ...

  3. dotnet cli 5.0 新特性——dotnet tool search

    dotnet cli 5.0 新特性--dotnet tool search Intro .NET 5.0 SDK 的发布,给 dotnet cli 引入了一个新的特性,dotnet tool sea ...

  4. dotnet 6 在 Win7 系统证书链错误导致 HttpWebRequest 内存泄露

    本文记录我将应用迁移到 dotnet 6 之后,在 Win7 系统上,因为使用 HttpWebRequest 访问一个本地服务,此本地服务开启 https 且证书链在此 Win7 系统上错误,导致应用 ...

  5. 利用dotnet restore 导入本地 .nupkg 包

    dotnet restore 主要是用于部署.net core 项目中所需的依赖库,集成了nuget包管理软件.因此,dotnet restore 实际上就是根据project.json(今后可能为p ...

  6. 利用windows系统ftp命令编写的BAT文件上传[转]

    利用windows系统ftp命令编写的BAT文件上传[转] 利用windows系统ftp命令编写的BAT文件上传[转] 在开发中往往需要将本地的程序上传到服务器,而且用惯了linux命令的人来说.在w ...

  7. 谈谈《Dotnet core结合jquery的前后端加密解密密码密文传输的实现》一文中后端解密失败的原因

    详情请看<Dotnet core结合jquery的前后端加密解密密码密文传输的实现>,正常来讲,这个博客里面的代码是没有问题的,但是我有时候却会直接报错,原因是后台解密失败:Interna ...

  8. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  9. 深度技术Win7系统利用diskpart命令实现硬盘分区的技巧

    转自:http://www.xitongcheng.com/jiaocheng/win7_article_2491.html 1. 深度技术Win7系统利用diskpart命令实现硬盘分区的技巧分享给 ...

  10. Deepin/Uos系统更新源失败。提示:E: 仓库 “http://packages.chinauos.cn/uos eagle InRelease” 没有数字签名

    Deepin/Uos系统更新源失败.提示:E: 仓库 "http://packages.chinauos.cn/uos eagle InRelease" 没有数字签名 n大橘为重n ...

随机推荐

  1. uniapp中引入Leaflet

    1. 引言 uniapp中自带有map组件,并且自带的map组件有常见的显示地图.绘制点线面的功能 但是,它存在以下问题: 收费,自带的map组件使用的是高德.腾讯的地图,无论使用什么样的功能,即使只 ...

  2. WPF 图片锯齿解决办法(保证解决!!!)

    无非几个属性统统加上,不能解决我倒立洗头,日五档电风扇 RenderOptions.BitmapScalingMode="HighQuality" UseLayoutRoundin ...

  3. Spring Security 中的 BCryptPasswordEncoder

    一.使用BCryptPasswordEncoder加密的值可以解出来吗 Spring Security 中的 BCryptPasswordEncoder 是一种单向加密算法,它是为了安全性考虑而设计的 ...

  4. win7笔记本、台式机装centos7过程记录

    1.国内镜像网站下载centos的iso文件  链接点我: 2.找个u盘,格式化为NTFS格式,这样才能传4G以上大小的文件 3.iso直接复制到u盘是不行的,必须做启动盘.下载个ultra做,官网地 ...

  5. AntSK 0.2.3 版本更新:轻松集成 AI 本地离线模型

    大家好,今天和大家分享 AntSK 知识库/智能体项目的最新进展. AntSK 是一个基于 .Net 8.Blazor 及 SemanticKernel 开发的 AI 项目,旨在为开发者提供一个强大的 ...

  6. 在 .NET 中使用 OPC UA 协议

    目录 什么是 OPC UA UaExpert 的使用 下载 UaExpert 首次启动 添加 OPC UA 服务器 连接 OPC UA 服务器 查看 PLC 数据 使用 C# 读写 OPC UA 数据 ...

  7. 实例演示如何使用CCE XGPU虚拟化

    本文分享自华为云社区<CCE XGPU虚拟化的使用>,作者: 可以交个朋友. 一 背景 在互联网场景中,用户的AI训练和推理任务对GPU虚拟化有着强烈的诉求.GPU卡作为重要的计算资源不管 ...

  8. 11.硬核的volatile考点分析

    大家好,我是王有志.关注王有志,一起聊技术,聊游戏,聊在外漂泊的生活. 今天我们学习并发编程中另一个重要的关键字volatile,虽然面试中它的占比低于synchronized,但依旧是不可忽略的内容 ...

  9. JDK9的新特性:String压缩和字符编码

    目录 简介 底层实现 总结 简介 String的底层存储是什么?相信大部分人都会说是数组.如果要是再问一句,那么是以什么数组来存储呢?相信不同的人有不同的答案. 在JDK9之前,String的底层存储 ...

  10. C# DevExpress下GridControl控件的增删查改

    DevExpress的GridControl控件可以从任何数据源绑定数据并进行增删查改等操作,和VS自带的dataGridView控件对比,GridControl控件可以实现更多自定义的功能,界面UI ...