分类目录归档:技术笔记

运行在 macOS 中的 Linux —— multipass 方案

multipass 用于编排虚拟 Ubuntu 实例

下载 pkg 安装。

$ multipass find

$ multipass launch ubuntu

$ multipass list

$ multipass info <VM Name>

$ multipass shell <VM Name>

$ multipass exec <VM Name> -- lsb_release -a

$ multipass stop <VM Name>

$ multipass delete <VM Name>

$ multipass purge

Reference

运行在 macOS 中的 Linux —— OrbStack 方案

OrbStack) 是在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻量级和简单的方式。它是一个超级充电版 WSL 和 Docker 桌面替代品,所有这些都在一个易于使用的应用程序中实现。

GitHub:https://github.com/orbstack

而 macOS 上的 Docker Desktop 原本就是饱受诟病,慢,重,资源消耗巨大。 OrbStack 的出现就是为了解决这个问题。

除了好用的 GUI,OrbStack 也提供了一些管理命令 orbctl,可以直接在命令行使用。

orbctl help
orb -m ubuntu -u root
orb -m ubuntu -u root uname -a

orb 命令还提供了其他一些特性,比如可以在虚拟机中 push 或 pull 来传输文件。

Reference

PVE 批量销毁虚拟机

可以使用以下命令一次性删除所有 QEMU 虚拟机:

串行

qm list | awk 'NR>1 {print $1}' | xargs -I {} qm destroy {}

解释:

  • qm list 命令获取所有虚拟机的列表。
  • awk 'NR>1 {print $1}' 命令跳过第一行(表头)并提取 VMID 列。
  • xargs -I {} qm destroy {} 命令将每个 VMID 作为参数传递给 qm destroy 命令,从而删除每个虚拟机。

注意:此命令会删除所有虚拟机,请确保在执行前已进行适当备份和确认。

并行

您可以使用以下命令并行地删除所有 QEMU 虚拟机:

qm list | awk 'NR>1 {print $1}' | xargs -P 0 -I {} sh -c 'qm destroy {} || true'

解释:

  • qm list 命令获取所有虚拟机的列表。
  • awk 'NR>1 {print $1}' 命令跳过第一行(表头)并提取 VMID 列。
  • xargs -P 0 -I {} sh -c 'qm destroy {} || true' 命令将每个 VMID 作为参数传递给 qm destroy 命令,从而删除每个虚拟机。 -P 0 选项告诉 xargs 并行运行尽可能多的进程。如果 qm destroy 命令失败, || true 确保退出状态为 ,因此其他删除操作仍然会继续。

注意:此命令会删除所有虚拟机,请确保在执行前已进行适当备份和确认。

拯救全网的 ChatGPT 解封攻略

不知为什么最近 OpenAI 账号大批量被封这条新闻火遍各大媒体,还以为真的发生了什么大事。好在手里的这几个帐号暂时无恙。

对于这一消息,我第一反应是质疑,数据来源是什么?显然是没有根据的,甚至有一些网友做了 验证 ,来论证此次大规模封号的空穴来风。

在我看来看,无论什么公开平台都存在封号的风险,关键在于把控不要触碰平台红线。目前来看正常使用帐号被封的风险还是比较低。

万事留一线,如果真的哟需要,网络流传的这份 拯救全网的 ChatGPT 解封攻略 需要的朋友可以收藏一下。

在自己的电脑运行开源版 ChatGPT —— gpt4all

GPT4All 是基于大量干净的助手数据(包括代码、故事和对话)训练而成的聊天机器人,数据包括 ~800k 条 GPT-3.5-Turbo 生成数据,基于 LLaMa 完成,M1 Mac、Windows 等环境都能运行。或许就像它的名字所暗示的那样,人人都能用上个人 GPT 的时代已经来了。

实测在本人的 m1 MacBook 上能够运行,大家快来试试吧。

由于风险规避策略,具体方法请看:https://skybyte.me/55.html

ChatGPT 给出的计算机科学学习计划

尝试询问 chatGPT 计算机科学学习计划:

我目前是一名云计算工程师,不是计算机科班出身,学习过基础的计算机导论、程序设计基础、C 程序开发以及 C++ 程序设计开发。

现在我想利用业余时间更加深入系统的学习计算机基础知识,你能否扮演一位资深的计算机科学导师,帮助我深入学习学习计算机,制订相关学习计划

ChatGPT4 的回答:

当然可以!我会尽力帮助你深入学习计算机科学。首先,让我们确定一下需要学习的核心课程和学习路线。作为一名云计算工程师,以下是一些建议你学习的课程和技能:

  • 数据结构和算法
  • 计算机组织与体系结构
  • 操作系统
  • 计算机网络
  • 数据库系统
  • 软件工程
  • 分布式系统
  • 网络安全

以下是一份为期 12 个月的学习计划,你可以根据自己的进度和兴趣进行调整:

1-2 个月:数据结构和算法

学- 习线性数据结构(如数组、链表、栈、队列)

  • 学习树形数据结构(如二叉树、堆、AVL 树、红黑树)
  • 学习图形数据结构(如邻接矩阵、邻接表、图算法)
  • 学习常见排序算法(如快速排序、归并排序、堆排序)
  • 学习查找算法(如二分查找、散列查找)
  • 学习动态规划、贪心算法和回溯算法

3-4 个月:计算机组织与体系结构

  • 学习数字逻辑与组合逻辑
  • 学习计算机组成原理(如 CPU、内存、输入输出设备)
  • 学习指令集和汇编语言
  • 学习存储器层次结构
  • 学习计算机性能优化

5-6 个月:操作系统

  • 学习进程和线程管理
  • 学习内存管理(如分页、分段、虚拟内存)
  • 学习文件系统
  • 学习操作系统调度算法
  • 学习同步与互斥
  • 学习死锁和资源管理

7-8 个月:计算机网络

  • 学习网络基础知识(如 OSI 模型、TCP/IP 模型)
  • 学习物理层和数据链路层协议
  • 学习网络层协议(如 IP、ICMP、路由算法)
  • 学习传输层协议(如 TCP、UDP)
  • 学习应用层协议(如 HTTP、FTP、DNS)

9-10 个月:数据库系统

  • 学习关系型数据库的基本概念
  • 学习 SQL 语言
  • 学习数据库设计和范式理论
  • 学习数据库管理系统的实现(如索引、查询优化)
  • 了解 NoSQL 数据库的基本原理和应用场景

11-12 个月:软件工程、分布式系统和网络安全

软件工程

  • 学习软件开发流程(如需求分析、设计、编码、测试、维护)
  • 学习软件开发方法论(如敏捷开发、瀑布模型)
  • 学习软件项目管理
  • 学习软件质量保证和测试技巧
  • 了解设计模式和架构模式

分布式系统

  • 学习分布式系统的基本概念和特点
  • 学习分布式系统中的数据一致性问题
  • 学习分布式算法(如 Paxos、Raft)
  • 了解分布式存储系统和计算系统的原理与应用
  • 学习微服务架构和容器技术(如 Docker、Kubernetes)

网络安全

  • 学习常见的网络攻击手法(如 DDoS、XSS、SQL 注入)
  • 学习密码学基础(如对称加密、非对称加密、哈希函数)
  • 学习安全协议(如 SSL/TLS、HTTPS)
  • 学习身份验证和授权机制(如 OAuth、JWT)
  • 学习网络安全防护措施(如防火墙、入侵检测系统)

在学习过程中,可以参考教材、在线课程、学术论文等资源。同时,实践非常重要,尽量通过编写代码、实现项目来巩固所学知识。

此外,不要忘记持续关注行业发展趋势和新技术。计算机科学是一个不断发展的领域,保持学习热情和好奇心将有助于你在这个行业取得更好的成就。

祝你学习顺利!如果有任何问题或者需要进一步的指导,请随时向我咨询。