我在一台设备上安装了 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. openApi generator总是生成类名为 defaultApi

    生成器可以开启 useTags 设置,开启之后会根据 api 文档中的 tags 生成前缀类名,因此,要不生成 defaultApi 需要以下操作: 1.openApi 文档中每个 url 必须要有 ...

  2. 记录--对于$off,Exclude 和 Extract的一点理解

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.typescript 高阶类型 Exclude 和 Extract Exclude<T, U> TypeScript 2. ...

  3. KingbaseESV8R6 heap table末端垃圾页回收机制

    前言 默认情况下,vacuum表不能释放磁盘空间,只是在dead tuple做个标记位,但heap table末端的垃圾页可以被truncate,从磁盘中释放空间.例如表的末尾的100个数据块里面全是 ...

  4. 才储性格测试(INTJ 专家型——追求能力与独立)

    INTJ 专家型--追求能力与独立 一.你的荣格理论图形 二.基本描述 才储分析:您的性格类型倾向为" INTJ "(内向 直觉 思维 判断 倾向度: I60 N56 T74 J5 ...

  5. 【已解决】idea编译器插入数据到数据库乱码以及jsp页面乱码的解决方法

    1.jsp页面需要设置编码格式为utf-8 1 <%@ page contentType="text/html;charset=UTF-8" language="j ...

  6. 您有一份OpenHarmony开发者论坛2023年度总结,请查收~

    2023 年 11 月,OpenHarmony 开发者论坛 1.0 版本正式上线. 感谢各位开发者对 OpenHarmony 的大力支持和热爱,成为 OpenHarmony 开发者论坛的第一批体验用户 ...

  7. OpenHarmony社区运营报告(2022年10月)

    本月快讯 ● <深圳市推动软件产业高质量发展的若干措施>于10月24日发布. ● 社区共发展逾5000位贡献者累计为社区提交超过11万个PR,深圳市优博终端科技有限公司(以下简称" ...

  8. 对OpenHarmony中LiteOS的内核分析——超时原理和应用

    前言 在软件世界里面,超时是一个非常重要的概念.比如 ● 当前线程暂时休眠1秒钟,休眠结束后继续执行 ● 每5秒钟采集一下CPU利用率 ● 数据发送失败,2秒钟以后再试一试 ● 等待某种数据,但最多等 ...

  9. 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用

    遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理.化学和生物系统的基石.ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力.重点 ...

  10. Grafana系列-统一展示-10-Explore Jaeger

    系列文章 Grafana 系列文章 Explore Jaeger 你可以通过Explore查询和显示 Jaeger 的 trace.有 3 种方法: Query by search Query by ...