【Ubuntu】Win11 VmWare虚拟机安装Ubuntu 22.04.1-server

引言

如标题所说,属于个人虚拟机安装Ubuntu的笔记记录。

VM安装

网上有很多免费使用的手段,这里就不过多介绍了。

下载Ubuntu 22.04.1-server

进入Ubuntu的中文网站:Ubuntu系统下载 | Ubuntu

根据最新的版本下载即可。本次使用使用USB或者DVD的物理镜像安装。

VM安装Ubuntu

Vm安装完成之后,我们直接去官方网站下载Ubuntu 22.04.1 的Sever版本,在VM当中我们选择直接创建的新的镜像。

在磁盘中选择下载下来的ISO镜像文件。

选择直接下一步

选择磁盘大小,这里个人磁盘空间比较充足,选择了30GB。

选择语言

这里建议使用英文语言:

选择键盘

下面是选择键盘的方式,默认下一步即可:

配置网络

注意:如果这里配置网络一会安装系统速度可能会较慢,因为ubuntu会从网络上下载更新。

可以选择DHCP获取 IP,有利于新手快速学习,如果读者有IP知识也可以按tab键配置IP相关 地址,如上图中标记。

比如可以参考下面的方式配置网络IP

配置的固定IP地址如上图所示,地址段根据vm默认即可,DNS为公共可用DNS。

选择代理

选择代理,这里直接使用默认的设置即可。

选择软件源

如果开启联网,ubuntu 默认会选择根据软件源进行下载。如果需要联网更新这里可以配置清华源的地址:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu

注意:可以选择VM外的粘贴功能粘贴进去,清华源有ubuntu20,有的源没有,此处也可安装完毕配置。

磁盘分区

新手建议直接使用官方给的默认分区配置。这里就选择默认的使用整块磁盘自动分区。

磁盘分区信息预览

最后是分区的信息预览,这里直接Done即可。

提示:确认是否继续,继续后会对磁盘进行格式化会破坏磁盘数据,如果是宿主机系统重装建议提前备份。

配置系统信息

配置系统主机名、登录用户和密码。

OpenSSL安装

这里需要手动勾选一下,按空格键勾选图中的小方框内为小叉子,然后按tab键选择Done继续。

可选安装

Ubuntu提供一些流行的常见运维工具提供默认安装,比如云服务器的构建,K8S,Docker的软件。

这里个人勾选了docker和powershell。

最后等待安装即可。

注意安装过程中可能出现报错,此处为卸载光驱失败了,因为是虚拟机安装,可不用理会,按回车重启即可。

当安装完成之后,最下方的界面会提示重启或者查看全部日志。我们选择重启然后等待Ubuntu做最后的初始化操作即可。

重启完成之后使用上面系统信息配置的用户登陆即可。注意这个用户不是ROOT,但是具备和ROOT相同的权限。

Root用户配置

Ubuntu 在第一次登陆之后需要设置ROOT用户的密码,切换Root和重新设置密码的命令如下:

修改root密码

sudo passwd root

切换root账户

sudo su

注意默认情况下无法用Root远程登陆。

Root 远程登陆

默认Ubuntu不允许root远程登录,后期如果想通过root登陆系统则必须修改SSH配置文件中的相关参数 才行。

sudo vim /etc/ssh/sshd_config PermitRootLogin yes

修改之后需要重启SSHD后台进程:

sudo systemctl restart sshd

Xshell 远程连接

检查设置

如果在之前的安装步骤中没有安装OpenSSL,可以使用下面的命令安装:

sudo apt-get install openssh-server

在连接之前,需要保证 xshell 所在主机 和 ubuntu( 虚拟机 ) 相互能平通,因为ssh远程连接是通过网络连接的,如果网络不通,就无法连接。

Ubuntu 系统使用ip addr命令查看网络IP,Windows主机使用ipconfig查看网络IP:

ip addr

Window主机地址如下:

双方向主机Ping一下,如果都能联通,可以进行下一步,否则需要检查网卡配置是否正确。

Xshell连接配置

个人使用的版本为Xshell7教育版,在下面的界面中新建一个SSH远程连接,配置如下:

第一次连接Xshell会警告安全性,直接同意即可,接着是提示输入用户名和密码。注意在默认情况下Ubuntu是不能用Root登陆的。

Connecting to 192.168.110.128:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-57-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Jan  8 06:45:58 AM UTC 2023

  System load:  0.0078125          Processes:                226
  Usage of /:   41.8% of 13.67GB   Users logged in:          1
  Memory usage: 12%                IPv4 address for docker0: 172.17.0.1
  Swap usage:   0%                 IPv4 address for ens33:   192.168.110.128


60 updates can be applied immediately.
To see these additional updates run: apt list --upgradable


Last login: Sun Jan  8 03:46:40 2023 from 192.168.110.1
xander@xander:~$ 

配置apt源

Ubuntu 使用的是apt命令进行安装的,如果之前未进行软件源,会使用Ubuntu的官网镜像默认的地址,基本等于说是在国外,如果要替换,可以使用下面的方案。

清华大学的镜像站的配置网站如下:

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

清华大学开源软件源配置方式

下面直接拷贝网站的内容。

本镜像仅包含 32/64 位 x86 架构处理器的软件包,在 ARM(arm64, armhf)、PowerPC(ppc64el)、RISC-V(riscv64) 和 S390x 等架构的设备上(对应官方源为ports.ubuntu.com)请使用 ubuntu-ports 镜像。

手动替换

Ubuntu 的软件源配置文件是 /etc/apt/sources.list

xander@xander:~$ sudo vim /etc/apt/sources.list
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy main restricted
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates main restricted
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy universe
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy universe
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates universe
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security main restricted
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security main restricted
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security universe
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security universe
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security multiverse

手动替换的方式可以参考网站,因为不同的版本替换方式不太一样,这里为22.04LTS的版本。

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

命令替换

命令替换的方式使用下面的命令即可。

sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

apt简介

  • apt等同于Centos7的yum命令
  • apt-get是第一代的包管理工具,最稳定
  • apt是改进的包管理工具,比apt-get要先进,官方推荐使用apt来管理软件

apt和CenterOs系统的区别如下:

操作内容

Centos6/7

Debian/Ubuntu

1.软件包后缀

*.rpm

*.deb

2.软件源配置文件

/etc/yum.conf

/etc/apt/sources.list

3.更新软件包列表

yum makecache fast

apt update

4.从软件仓库安装软件

yum install package

apt install package

5.安装本地软件包

rpm -i pkg.rpm

dpkg -i pkg.deb

6.删除软件包

yum remove package

apt remove package

7.获取某软件包的信息

yum search package

apt search package

参考资料

Ubuntu 20.04 live server版安装(详细版) | 运维密码 (mefj.com.cn)

本文转载于网络 如有侵权请联系删除

相关文章

  • Java Eclipse下载安装教程[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。一、下载:(1)Eclipse是一个开放源代码的项目,其官方网站是www.eclipse.org(2)从首页中单击DOWNLOAD按钮,进入图2所示的页面。(3)点击DownloadPackages,进入Eclipse下载页面。从EclipseIDEforJavaEEDevelopers后面选择适合当前系统的版本,这里单击64bit按钮,下载64位的安装包,如图3所示。下载完成后会得到一个名为eclipse_java_mars_2_win32_x86_64.zip的压缩文件。虽然Eclipse本身是用Java语言编写,但下载的压缩包中并不包含Java运行环境(即安装Eclipse,应首先安装JDK),需要用户自己另行安装JRE,并且要在操作系统的环境变量中指明JRE中bin的路径。二、安装:一键式安装,安装提示进行。三、汉化:Eclipse有一个子项目Babel,专门负责Eclipse程序的多国语言包,其官方网站是www.eclipse.org/babel,进入后的Babel项目首页如图7所示。 (8)从页面导航中单击Downloads链接进入下

  • kubernetes集群配置serviceaccount

    KubernetesAPI的其它服务。ServiceAccount它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证。Kubernetes提供了Secret来处理敏感信息,目前Secret的类型有3种:  Opaque(default):任意字符串  kubernetes.io/service-account-token:作用于ServiceAccount kubernetes.io/dockercfg:作用于Dockerregistry,用户下载docker镜像认证使用。本文将介绍在kubernetes集群中配置serviceaccount和secret,可以让kubernetes使用私有仓库,并支持nginxbasic认证。由于我们采用的是rpm包方式安装的kubernetes集群,默认没有ca.crt、kubecfg.crtkubecfg.key、server.cert、server.key这些文件,需要下载源码生成。一、使用工具生成key文件#mkdirgit #cdgit/ #gitclonehttps://github

  • SQL AND & OR 运算符

    SQLAND&OR运算符 AND&OR运算符用于基于一个以上的条件对记录进行过滤。 SQLAND&OR运算符 如果第一个条件和第二个条件都成立,则AND运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则OR运算符显示一条记录。 原始的表(用在例子中的): LastNameFirstNameAddressCityAdamsJohnOxfordStreetLondonBushGeorgeFifthAvenueNewYorkCarterThomasChanganStreetBeijingCarterWilliamXuanwumen10BeijingAND运算符实例 使用AND来显示所有姓为"Carter"并且名为"Thomas"的人: SELECT*FROMPersonsWHEREFirstName='Thomas'ANDLastName='Carter' 复制结果: LastNameFirstNameAddressCityCarterThomasChanganStre

  • set容器的插入与删除

    插入与删除函数原型: #include<iostream> usingnamespacestd; #include<set> voidp(set<int>&s) { for(set<int>::iteratorit=s.begin();it!=s.end();it++) { cout<<*it<<""; } cout<<endl; } voidtest() { set<int>s1={1,2,3}; //插入数据,只有用insert方式 s1.insert(4); s1.insert(6); s1.insert(6); s1.insert(5); p(s1); //erase删除 s1.erase(s1.begin()); p(s1); //删除某个元素 //类似list容器中的remove s1.erase(5); p(s1); //删除某段区间数据 s1.erase(++s1.begin(),s1.end()); p

  • BioScience: 贯穿科学界的对数正态分布

    Journal:BioSciencePublished:01May2001生物学和数学对概念化、形式化和抽象化的需求与日俱增。数学对于分析和表征随机变化特别重要,如人群中个体的大小和体重、他们对化学物质的敏感度,事件发生的时间等。这些数据的频率分布是决定可以对任何数据集有效执行统计分析类型的主要因素。许多广泛使用的统计方法,如方差分析(ANOVA)和回归分析,都要求数据服从正态分布,但在使用这些技术时,很少对数据的频率分布进行检验。高斯(正态)分布最常被假定为描述来自许多学科的数据中出现的随机变化;众所周知的钟形曲线可以很容易地用两个值来描述和描述:算术平均值x和标准差s,因此数据集通常用表达式x±s来描述。正态分布的例子比比皆是。然而许多测量结果显示出或多或少的偏态分布。当平均值低、方差大、值不能为负值时,偏态分布尤其常见,例如,物种丰富度、传染病潜伏期的长短以及地壳中矿产资源的分布。这种偏态分布通常非常符合对数正态分布。图1给出了正态分布(对称分布)和对数正态分布(偏态分布)的拟合实例。注意,身高符合这两种分布。图1正态分布和对数正态分布的例子。a,1052名女性的身高分布拟合正态

  • Linux服务器数据恢复-服务器修复无法启动错误过程

    一、服务器数据恢复故障描述介绍数据恢复案例前照例先介绍故障服务器的物理状况。本次数据恢复的服务器是linux操作系统,某品牌730系列服务器,MD3200系列存储。导致数据丢失的原因是机房意外断电导致系统无法正常启动,客户管理员对无法访问的服务器进行了修复操作后进入系统查看数据,服务器部分文件已经丢失。于是客户管理员联系了数据恢复中心进行服务器数据恢复。二、服务器数据恢复故障分析1.备份客户服务器数据数据恢复工程师接到客户的服务器后对服务器进行了初检,首先将存储的lun以只读的模式映射到了数据恢复中心的数据恢复专用存储设备上。接着对客户的服务器进行扇区级别的镜像操作,这样做的目的有两个,一个是可以让客户取回原服务器,避免后期的数据恢复过程占用客户设备,另一个是为了保护客户的原有数据,因为数据恢复需要大量的数据分析和尝试,存在有多次尝试的可能,这样在镜像文件中进行数据恢复操作就可以避免在客户的原服务器上进行操作,保护客户原数据的完整性。万一我们恢复失败了,客户也可以携带原服务器到其他公司进行数据恢复操作,是一种对客户数据负责的方式。2、分析服务器故障原因备份完成后,服务器数据恢复工程师对

  • 国际大厂 Google 安全策略——【译】BeyondCorp 一种新的企业安全方法

    前文介绍 本文是对于Google相关安全策略的中文翻译,方便大家了解Google的相关安全策略。 如果大家有兴趣阅读原文,可以通过BeyondCorpANewApproachtoEnterpriseSecurity进行访问。 BeyondCorp一种新的企业安全方法(正文内容) 实际上每一个公司现在都使用防火墙来强制保证网络边界安全。然而,这个安全模型是存在问题的,因为,当网络边界被攻破时,攻击者可以相对简单的访问公司的内网。当公司采用移动设备和云技术时,网络边界会变得越来越难以保证。Google正在采用一个不同的方法来保证网络安全。我们舍弃了内网的要求,而是把我们的企业应用搬到了互联网上。 从早前的IT基础设施开始,企业就开始使用网络边界来保护和限制内部资源的访问。网络边界安全模型经常和中世纪城堡相比较:一座厚墙的城堡,被护城河包围,唯一的出入口有重兵把守。城外的任何东西都认为是危险的,而城内的任何东西都认为是安全可靠的。任何穿过吊桥进入城堡访问资源都得到了授权。 当一个企业的所有的员工只在公司办公时,网络边界安全模型能够很好的运转。然而,在移动员工队伍来临的情况下,被许多员工使用的

  • 防止重复提交

    提交form数据,假如提交的按钮是图片按钮而不是submit按钮,可以按下面方法防止按钮被多次提交: 1. --------------------------------------------------------------------- <inputtype="image"src="http://expert.csdn.net/images/top1.gif"onclick="this.disabled=true;alert('aa')">复制2. ----------------------------------------- <scriptlanguage="JavaScript"> <!-- <scriptlanguage="javascript"> varflag=false; dosubmit() {   if(flag==true)   {      alert("傻比你已提交过了!"

  • Flash/Flex学习笔记(5):捕获摄像头(续)--在线抓屏并保存到客户端本地

    必须有摄像头,上面的演示才能正常播放。思路:使用摄像头以及在线抓屏在上一节Flash/Flex学习笔记(2):捕获摄像头里已经讲过了,就不重复粘贴了,至于在客户端保存文件,Flash里用起来也很简单:直接调用FileReference即可,另外为了减少图片大小,还可能借助AS3.0的扩展库(项目地址http://code.google.com/p/as3corelib/),把bmp格式的位置转换成jpeg再保存扩展:结合本文的方法,再配合Flash/Flex学习笔记(4):如何打开网页及Get/Post数据,可以很方便的做出"在线大头贴"或"在线生成会员头象"等功能 源代码:varW:int=stage.stageWidth;//场景的原始宽度 varH:int=stage.stageHeight;//场景的原始高度 stage.scaleMode=StageScaleMode.NO_SCALE;//舞台禁止缩放,但是好象没效果? varvideo:Video; varcamera:Camera=Camera.getCamera();//获取

  • 从.Net到Java学习第六篇——SpringBoot+mongodb&amp;Thymeleaf&amp;模型验证

    SpringBoot系列目录 SpringBoot整合mongodb   MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。如果你没用过MongoDB,可以先去看下我的文章:https://www.cnblogs.com/jiekzou/category/851166.html  接上一篇,修改pom.xml,添加mongodb的依赖 <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>复制   添加mongodb数据库连接,修改application.yml spring: profiles: active:dev #mongodb data: mongodb: database:test port:2701

  • 10进制转33进制

    1,开始  昨天在CSDN上看到这一个提问帖子:《用SQL写一个存储过程10进制转33进制代码》,原帖的问题是这样: 急求10进制转33进制代码。  就是我想在SQL中创建一个存储过程“T10TO33”可以实现将10进制的数据转换成33进制。 33进制规则是:1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,V,W,X,Y,Z,0 字母:I、O、U不用,其余正常流水,哪位大神帮忙写一个,谢谢   2.分析 不同进制数据间的转换,记得很久之前写过类似的,参加《X进制与10进制之间的转换》,基本的算法是相同的。 在这里的要求,进制转换中,26个字母中需排除I,O,U三个字母不用,那么原来的X进制与10进制之间转换方法中,就不能直接使用Char()函数。需要对用到的数字和字母重新作个排序,再定位转换。   2.1.初始化一个表变量@tb_tmp,内容如下:       declare@tb_tmpastable(idintidentity(0,1)primarykey,radixchar(1))

  • Wind API 学习笔记二 (WSS多维数据函数)

    页面跳转 WindAPI学习笔记一(概述及WSD日期序列函数) WindAPI学习笔记二(WSS多维数据函数) WindAPI学习笔记三(WSQ行情数据函数) WindAPI学习笔记四(WSET数据集函数) WindAPI学习笔记五(TDays日期函数) WindAPI学习笔记六(日期宏的说明) WindAPI学习笔记七(EDB宏观经济函数) WindAPI学习笔记八(其它) 定义 命令用来获取选定证券品种的历史截面数据命令原型为:data=w.wss(品种代码,指标,可选参数) 函数输入 WSS函数输入w.wss(codes,fields,option)复制  ||Element|Type|Description|| |:-------------:|:-------------:|:-----:| |证券(必选)|codes|String|获取数

  • 做Android开发,如何使用 Kotlin 提高生产力!

    Kotlin以其简洁的特性而闻名,而在我们的实践中,更加简洁就意味着更加高效。事实上,在使用Kotlin的专业Android开发者中,有多达67%的人表示Kotlin已经帮助他们提升了生产力。在接下来的内容中,我会分享一些Kotlin帮助我们的合作伙伴工程师们提高生产力的方式,并为您介绍有助于此的Kotlin功能。 在使用Kotlin的专业Android开发者中,有多达67%的人表示Kotlin已经帮助他们提升了生产力 简洁、简单且高效 Kotlin的简洁性对开发的各个阶段都有影响: 作为代码作者: 您可以专注于需要解决的问题(而不是语法)。更少的代码意味着更少地测试、更少地调试以及更少写出Bug的机会。 作为审阅和维护者: 您需要阅读的代码变少了,从而更容易理解代码的作用,也因此更容易审阅和维护代码。 以下例子来自Flipkart的团队: "在一次内部调查中,50%的开发人员提到,对于使用Kotlin编写的模块,预估完成功能所需的时间会有所减少。" ——Flipkart Kotlin的功能与生产力 由于Kotlin的简洁与高可读性,大多数Kotlin的功能

  • 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介   mongoDB是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库。nosql是NotOnlySQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。   mongoDB是无模式的文档数据库,在关系型数据库中,数据表的每一行都拥有一样的字段,字段的名字和数据类型在创建table的时候就基本确定了,如student表的每一行都有学生编号、学生姓名、年龄等字段;而在mongoDB中,存储数据的格式类似于Json(格式为Bson),每一个document的字段的名字和数据类型可以完全不同,如在一个collection下,第一个document可以存储学生信息(学生编号、姓名、年龄、性别等),第二个document可以存储班级信息(班级编号,班级名等)。正是因为无模式的特点,让我们可以无需多余操作就能完成数据的横向扩展。下表是mongoDB和传统数据库术语的对应关系。 SQL术语MongoDB解释/说明 database database 数据库 table collection 数据库表/集合 row document 数

  • 码农的自我修养之必备技能 学习笔记

    一、VSCode快捷键   1、编辑器与窗口管理 新建文件:Ctrl+N 文件之间切换:Ctrl+Tab 打开一个新的VSCode编辑器:Ctrl+Shift+N 关闭当前窗口:Ctrl+W 关闭当前的VSCode编辑器:Ctrl+Shift+W 切出一个新的编辑器窗口(最多3个):Ctrl+\ 切换左中右3个编辑器窗口的快捷键:Ctrl+1Ctrl+2Ctrl+3复制   2、代码编辑    (1)格式调整 代码行向左或向右缩进:Ctrl+[、Ctrl+] 复制或剪切当前行/当前选中内容:Ctrl+C、Ctrl+V 代码格式化:Shift+Alt+F 向上或向下移动一行:Alt+Up或Alt+Down 向上或向下复制一行:Shift+Alt+Up或Shift+Alt+Down 在当前行下方插入一行:Ctrl+Enter 在当前行上方插入一行:Ctrl+Shift+Enter复制   (2)光标相关 移动到行首:Home 移动到行尾:End 移动到文件结尾:Ctrl+End 移动到文件开头:Ctrl+Home 移动到定义处:F12

  • Apache Flink 数据流编程模型

    LevelsofAbstraction    flink提供了不同层次的API来进行流处理或者批处理 最低层次的抽象提供了有状态的流 通过  ProcessFunction 嵌入到 DataStreamAPI 当中去,它允许用户自由的处理events,并且使用state,另外用户可以注册eventtimeandprocessingtime回调函数,它允许程序实现复杂的业务逻辑。 更高层次的是DataStreamAPI (bounded/unboundedstreams)andthe DataSetAPI (boundeddatasets),这些API提供了一些常规的操作如transformations,joins,aggregations,windows,state。 TableAPI是一种以表为中心的DSL,提供了如select,project,join,group-by,aggregate的操作,它是一种更简洁的API。 最高层次的是SQL。   Progra

  • 做菜好吃的小技巧02

    想要牛肉炒不老,食用小苏打少不了:(总算把这在我脑海中跑了好几天的句子写下来了,有毒。。。) 炒牛里脊丝或者片(切薄一点儿)前,用食用小苏打腌制十分钟,然后流动的水洗干净(一定要洗干净,不然炒起来会有泡沫),再继续接下来的步骤,怎么炒都不会老哦(ps:牛肉和黑胡椒更搭)     添几个我平时常用的有比例的(单位:勺): 1.糖醋汁就是料酒:生抽:糖:醋=1:2:2:4 2.照烧汁(无日本酱油版)料酒:生抽:老抽:蜂蜜=1:2:0.5:1 3.三汁焖锅就是蚝油:番茄酱:黄豆酱:海鲜生抽:糖=2:2:2:2:1     1.红烧就是老抽上色+生抽调味+糖 2.宫爆味就是生抽+水淀粉(或豆瓣酱.也有凝固的作用)+干辣椒+糖+醋+葱白   3.勾芡就是淀粉+各种液体遇热凝固(糖醋里脊.糖醋鲤鱼也是)   4.韩国味就是韩国大酱+韩国辣酱   5.照烧汁就是蜂蜜+日本酱油   6.老干妈豆豉可以直接用做调料.比如回锅肉.蛋炒饭   7.关东煮汤料.日本酱油.苹果.海带.水果萝卜.炖4个小时(有先后顺

  • Win10蓝屏 bootsafe64 0xc000025

    同事的电脑蓝屏了,Win10,进不去系统,提示C:/Windows/System32/Drivers/bootsafe64_ev.sys缺失,查了下,这玩意貌似是驱动精灵的东西,导致了电脑蓝屏,所以删掉这几个就可以了 删除C盘Windows/System32/Drivers里面的kavbootc.sys(或者kavbootc64.sys)和bootsafe64.sys(或bootsafe64_ev.sys) bytheway,电脑不要安装驱动精灵,金山系这些东西

  • leetcode 83 删除排序链表中重复的元素

    存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。 返回同样按升序排列的结果链表。 示例1: 输入:head=[1,1,2] 输出:[1,2] 输入:head=[1,1,2,3,3] 输出:[1,2,3] 提示: 链表中节点数目在范围[0,300]内 -100<=Node.val<=100 题目数据保证链表已经按升序排列 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/ 变形题:https://www.cnblogs.com/AI-Creator/p/15202832.html 递归法 publicListNodedeleteDuplicates(ListNodehead){ if(head==null||head.next==null) returnhead; if(head.val!=head.next.val) { head.next=deleteDuplicates(head.next); returnhead; }else

  • [ZJOI2012]灾难

    题面:Luogu 题解:DAG支配树 一般图的支配树?咕咕咕(其实是因为我太菜了,不会) 考虑你有一个DAG,如果某一个点到根节点的所有节点全都挂了,则这个节点必定也会挂掉 (类比一下生物的食物链,生产者挂了会一直传导到高级消费者) 于是我们可以建出这样一棵树,其中某个点的父亲是它所有前置节点的lca上(这个lca是新树上的) 由于这是一个DAG,所以直接上toposort,倍增lca的过程在中间处理 答案就是子树的大小(不算自己) 注意一下一开始给的图要反着建(因为我们要的是消费者\(\to\)生产者,而不是反过来) #include<bits/stdc++.h> usingnamespacestd; inlinevoidread(int&x) { x=0;charc=getchar(); while(!isdigit(c))c=getchar(); while(isdigit(c))x=x*10+c-'0',c=getchar(); } #definemaxn100005 structGraph { structEdge{intfr,to;}eg[max

  • 【Python】 Numpy极简寻路

    【Numpy】   先感叹下最近挖坑越来越多了。。   最近想不自量力地挑战下ML甚至DL。然而我也知道对于我这种半路出家,大学数学也只学了两个学期,只学了点最基本的高数还都忘光了的渣滓来说,难度估计有点大。。总之尽力而为吧。在正式接触ML的算法之前,Numpy是一个必须知道的Python库。其中有很多关于线代的类和方法可以直接用。   当然Numpy不是内建的库,但是pipinstallnumpy一下也很简单。   ■  方法罗列   我也不知道怎么开始写好,按书上的教程,罗列下提到的方法吧。。书上代码一个大前提是fromnumpyimport*。但是有点Python经验的人都知道,import*不是一个很好的引入办法。所以我还是把模块名给老实写出来。   numpy.random  这还是个小模块,类似python内建的random模块,里面涵盖了很多用于随机生成一些数据的方法如random,randint,choice等等。   numpy.random.rand(a,b)  这个rand方法是不太熟悉的,其作用是生成一个a*b的二维数组,数组中的每一个元素都是随机出来的。虽然两

相关推荐

推荐阅读