【VM】VirtualBox安装ubuntu22.04虚拟机
阅读本文之前,请先根据 安装virtualbox 教程安装virtulbox虚拟机软件。
1.下载Ubuntu系统镜像
打开阿里云的镜像站点:https://developer.aliyun.com/mirror/
找到如图所示位置,选择Ubuntu 22.04.3(destop-amd64)
系统
Ubuntu 22.04.3(destop-amd64)
系统镜像下载连接如下:
https://mirrors.aliyun.com/ubuntu-releases/jammy/ubuntu-22.04.3-desktop-amd64.iso
如果你不需要使用图形化界面,可以选择22.04.3(live-server-amd64)
版本,这样系统的运行资源消耗会更低。如果你是新手,还是下载默认的带图形化界面的办法,方便理解和操作。
2.新建虚拟机
2.1 新建和选择镜像
在virtulbox中,ubuntu可以被快速安装
按下图所示,选择下载好的系统镜像,并创建一个新的文件夹作为虚拟机的安装目录。virtulbox检测到我们需要安装的系统是Ubuntu,可以执行快速安装
2.2 设置linux用户名和密码
输入你的linux用户名和密码,主机名可以修改,也可以不改。
2.3 硬件资源选择
进入硬件选择界面,如果你不知道怎么选,直接无脑拉到绿色条条的末尾即可(即使用宿主机一半的系统资源)。
请注意,如果你的宿主机本身的内存只有8GB,则不建议安装虚拟机,会卡的要死的哦~
这里我选择了8cpu(即八核心)和8gb内存,足够使用了。
2.4 磁盘容量选择
进入磁盘选择,这里建议至少拉到40GB(不会一次性占满你的硬盘的,而是用多少占用多少),避免后续还需要复杂的扩容操作。
2.5 完成创建
虚拟机会自动创建并立即启动,自动进行Ubuntu的初始化设置。
如图,这都是在进行Ubuntu的初始化,不需要我们手动操作。
下图界面并不是安装完成的界面,后台还在跑ubuntu的初始化设置。整个流程会有点耗时的。
安装流程最后还会下载一些软件,耐心等待哦~
2.6 OK!
走到下图所示的用户界面,就代表你的Ubuntu虚拟机已经安装完成了。
不需要自己操作初始化,你就拥有了一个Ubuntu虚拟机,很是方便!
点击该用户,键入你最初在本文2.2步中设置的Linux用户的密码,即可进入Ubuntu的桌面。
刚开始会弹出这个引导界面,全部点skip,不用管他。(这个引导界面很容易卡住。如果提示你程序未响应,你就点force quit强制退出就行了)
3.C++环境配置
因为本站博客是基于CentOS8的,这里简单说一下如何在Ubuntu上配置基础的C++编程环境。
在Ubuntu的桌面上右键,open in terminal
,打开Ubuntu的系统终端。
3.1 无法打开终端 解决办法
我就遇到了这个问题,右键打开终端没有反应。参考这篇博客解决 VirtualBox Ubuntu22.10 Terminal无法打开虚拟机打不开终端-CSDN博客
CTRL + ALT + F3 进入命令行模式(需要返回桌面时CTRL + ALT + F1)
先登录到root用户来执行这些命令,会方便一点。这里会提示你要输入密码,输入的就是你当前设置的子用户的密码。在Linux中输入密码是不会有*
回显的,盲打就行。
执行如下命令。默认情况下你的宿主机和虚拟机没有配置剪贴板互通,所以需要你自己把这些命令敲上去。
sudo nano /etc/default/locale
locale这个文件长下面这样
用方向键移动光标,把文件中所有的 en_US
改成 en_US.UTF-8
ctrl+x
保存退出,下面的选项选择Y
会进入如下界面,让你选择写入哪一个文件。这里直接回车就行。
然后再执行下面两个命令。
sudo locale-gen --purge
sudo reboot
等待虚拟机重启后,会回到图形化界面,此时应该就能正常通过右键打开图形化界面中的终端了。
3.2 设置sudoers
因为默认情况下我们的子用户是没有sudoer的权限的,如下图,执行sudo命令会显示muxue is not in sudoers file
。
每次执行sudo命令都会让你输入当前用户的密码
需要给子用户添加权限,在终端中su -
进入root用户,这里需要输入子用户的密码,就能进入root用户,如下图。
进入root用户后,还是用nano编辑器来编辑sudoers配置文件
sudo nano /etc/sudoers
使用方向键,找到下图位置,在后续追加一行子用户的配置就行了
比如我的子用户名字是muxue,就是像下面这样修改
然后CTRL+X退出文件,再按Y、按回车,退出编辑器,即完成了配置文件的修改。
此时子用户执行sudo命令的时候就不会出现报错了。可以正常安装软件了。
3.3 安装gcc和vim
只需要安装GCC/G++编译器就行了,理论上Ubuntu22.04已经自带了这两个编译器。
顺带一提,在Linux中复制粘贴的快捷键是ctrl+insert/shift+insert
在Linux内部终端执行如下两个命令,这两个命令需要分开执行!不能一次性全写入哦。
sudo apt -y update && sudo apt -y upgrade
sudo apt install -y vim git gcc
安装过程中应该不会出现ERROR提示(出现了代表有问题),安装成功会提示 successfully installed gcc
之类的。如果提示 gcc is already the newest version
代表gcc本来就已经安装好了,不需要额外安装。
安装完毕后,只要gcc命令有输出版本号的结果,那么gcc/g++就是安装好了(这两个命令是一套的)。
gcc --version
你可以百度学习vim编辑器的使用办法,尝试用gcc在Linux下编译C语言程序。
当然,还有一个更简单的办法,是直接在Ubuntu的应用商店里面下载vscode,在vscode中下载C++插件。即可像之前学习C/C++ 一样,在图形化界面中编辑.c
或.cpp
文件,再使用命令行的gcc命令进行编译。
3.4 尝试编译
gcc的基本编译语句如下,假设在当前目录下,你有一个test.c
源文件,执行如下命令即可编译成可执行文件test
gcc test.c -o test
如果编译成功,命令行上将不会有任何输出。
使用如下命令执行可执行文件test
./test
请注意,gcc是给c语言用的,仅可以编译C语言代码。如果要编译C++代码,请一定要使用g++命令 (基础编译选项和gcc命令完全相同)
g++ test.cpp -o test
这就是在Linux下编译运行C++代码的最基础操作!
4.调整虚拟机窗口大小
在Ubuntu系统中右键,display settings
,设置Ubuntu系统的显示分辨率就行了。
按CTRL+F
,可以进入虚拟机全屏模式。(相同快捷键退出全屏模式)
相关文章:

【VM】VirtualBox安装ubuntu22.04虚拟机
阅读本文之前,请先根据 安装virtualbox 教程安装virtulbox虚拟机软件。 1.下载Ubuntu系统镜像 打开阿里云的镜像站点:https://developer.aliyun.com/mirror/ 找到如图所示位置,选择Ubuntu 22.04.3(destop-amd64)系统 Ubuntu 22.04.3(desto…...

MySQL的GROUP BY与COUNT()函数的使用问题
在MySQL中,GROUP BY和 COUNT()函数是数据聚合查询中非常重要的工具。正确使用它们可以有效地统计和分析数据。然而,不当的使用可能会导致查询结果不准确或性能低下。本文将详细讨论 GROUP BY和 COUNT()函数的使用方法及常见问题,并提供相应的…...

C# 精炼题18道题(类,三木运算,Switch,计算器)
1.数组元素和 2.数组元素乘积 3.数组元素平均数 4.数组中最大值 5.数组中的偶数 6.数组中的阶乘 7.数组反转 8.字符串反转 9.回文字符串 10.检查回文 11.最小最大值 12.找素数 13.字符串中的最长无重复字符串 14.字符串去重 15.数组中计算两数之和 16.数字到字符…...

96,【4】 buuctf web [BJDCTF2020]EzPHP
进入靶场 查看源代码 GFXEIM3YFZYGQ4A 一看就是编码后的 1nD3x.php 访问 得到源代码 <?php // 高亮显示当前 PHP 文件的源代码,用于调试或展示代码结构 highlight_file(__FILE__); // 关闭所有 PHP 错误报告,防止错误信息泄露可能的安全漏洞 erro…...

数据库 - Sqlserver - SQLEXPRESS、由Windows认证改为SQL Server Express认证进行连接 (sa登录)
本文讲SqlServer Express版本在登录的时候, 如何由Windows认证,修改为Sql Server Express认证。 目录 1,SqlServer Express的Windows认证 2,修改为混合认证 3,启用sa 用户 4,用sa 用户登录 下面是详细…...

2025年02月02日Github流行趋势
项目名称:oumi 项目地址url:https://github.com/oumi-ai/oumi 项目语言:Python 历史star数:1416 今日star数:205 项目维护者:xrdaukar, oelachqar, taenin, wizeng23, kaisopos 项目简介:构建最…...

【数据分析】案例03:当当网近30日热销图书的数据采集与可视化分析(scrapy+openpyxl+matplotlib)
当当网近30日热销图书的数据采集与可视化分析(scrapy+openpyxl+matplotlib) 当当网近30日热销书籍官网写在前面 实验目的:实现当当网近30日热销图书的数据采集与可视化分析。 电脑系统:Windows 使用软件:Visual Studio Code Python版本:python 3.12.4 技术需求:scrapy、…...

如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?
我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中,我将逐步指导您如何构建像我一样的机器人。 DeepSeek 最近发布了R1,这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本,但增加…...

buu-jarvisoj_level0-好久不见30
嘶,我咋觉得这个也是栈溢出呢,找到读取的值,在再找到后门函数...
深度学习查漏补缺:1.梯度消失、梯度爆炸和残差块
一、梯度消失 梯度消失的根本原因在于 激活函数的性质和链式法则的计算: 激活函数的导数很小: 常见的激活函数(例如 Sigmoid 和 Tanh)在输入较大或较小时,输出趋于饱和(Sigmoid 的输出趋于 0 或 1…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.2 多维数组切片:跨步访问与内存布局
2.2 多维数组切片:跨步访问与内存布局 目录/提纲 #mermaid-svg-FbBIOMVivQfdX2LJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FbBIOMVivQfdX2LJ .error-icon{fill:#552222;}#mermaid-svg-FbBIOMVivQ…...

ResNet--深度学习中的革命性网络架构
一、引言 在深度学习的研究和应用中,网络架构的设计始终是一个关键话题。随着计算能力和大数据的不断提升,深度神经网络逐渐成为解决复杂任务的主流方法。然而,随着网络层数的增加,训练深度神经网络往往面临梯度消失或梯度爆炸的…...

TypeScript语言的语法糖
TypeScript语言的语法糖 TypeScript作为一种由微软开发的开源编程语言,它在JavaScript的基础上添加了一些强类型的特性,使得开发者能够更好地进行大型应用程序的构建和维护。在TypeScript中,不仅包含了静态类型、接口、枚举等强大的特性&…...

17.2 图形绘制4
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 17.2.5 线条样式 C#为画笔绘制线段提供了多种样式:一是线帽(包括起点和终点处)样式;…...

tomcat核心组件及原理概述
目录 1. tomcat概述 1.1 概念 1.2 官网地址 2. 基本使用 2.1下载 3. 整体架构 3.1 核心组件 3.2 从web.xml配置和模块对应角度 3.3 如何处理请求 4. 配置JVM参数 5. 附录 1. tomcat概述 1.1 概念 什么是tomcat Tomcat是一个开源、免费、轻量级的Web服务器。 Tomca…...

本地部署DeepSeek教程(Mac版本)
第一步、下载 Ollama 官网地址:Ollama 点击 Download 下载 我这里是 macOS 环境 以 macOS 环境为主 下载完成后是一个压缩包,双击解压之后移到应用程序: 打开后会提示你到命令行中运行一下命令,附上截图: 若遇…...

MyBatis-Plus笔记-快速入门
大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…...

爬取豆瓣书籍数据
# 1. 导入库包 import requests from lxml import etree from time import sleep import os import pandas as pd import reBOOKS [] IMGURLS []# 2. 获取网页源代码 def get_html(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36…...

基于微信小程序的电子商城购物系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

6-图像金字塔与轮廓检测
文章目录 6.图像金字塔与轮廓检测(1)图像金字塔定义(2)金字塔制作方法(3)轮廓检测方法(4)轮廓特征与近似(5)模板匹配方法6.图像金字塔与轮廓检测 (1)图像金字塔定义 高斯金字塔拉普拉斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大)…...

【Ai】DeepSeek本地部署+Page Assist图形界面
准备工作 1、ollama,用于部署各种开源模型,并开放接口的程序 https://ollama.com/download 2、deepseek-r1:32b 模型 https://ollama.com/library/deepseek-r1:32b 不同的模型版本对计算机性能的要求不一样,版本越高对显卡和内存的要求越高…...

【最长不下降子序列——树状数组、线段树、LIS】
题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510; int a[N], b[N], tr[N];//a保存权值,b保存索引,tr保存f,g前缀属性最大值 int f[N], g[N]; int n, m; bool cmp(int x, int y) {if(a[x] ! a[y]) return a[x] < a[…...

【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
文章目录 深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据一、服务器如何响应前端请求HTTP 请求生命周期全解析1.前端发起 HTTP 请求(关键细节强化版)2. 服务器接收请求(深度优化版) 二、后端如何查看前…...

Games104——引擎工具链基础
总览 工具链 用户到引擎架构图 工具链是衔接不同岗位、软件之间的桥梁,比如美术与技术,策划与美术,美术软件与引擎本身等,有Animation、UI、Mesh、Shader、Logical 、Level Editor等等。一般商业级引擎里的工具链代码量是超过…...

分层多维度应急管理系统的设计
一、系统总体架构设计 1. 六层体系架构 #mermaid-svg-QOXtM1MnbrwUopPb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QOXtM1MnbrwUopPb .error-icon{fill:#552222;}#mermaid-svg-QOXtM1MnbrwUopPb .error-text{f…...

【漏斗图】——1
🌟 解锁数据可视化的魔法钥匙 —— pyecharts实战指南 🌟 在这个数据为王的时代,每一次点击、每一次交易、每一份报告背后都隐藏着无尽的故事与洞察。但你是否曾苦恼于如何将这些冰冷的数据转化为直观、吸引人的视觉盛宴? 🔥 欢迎来到《pyecharts图形绘制大师班》 �…...

(二)QT——按钮小程序
目录 前言 按钮小程序 1、步骤 2、代码示例 3、多个按钮 ①信号与槽的一对一 ②多对一(多个信号连接到同一个槽) ③一对多(一个信号连接到多个槽) 结论 前言 按钮小程序 Qt 按钮程序通常包含 三个核心文件: m…...

【Linux】从硬件到软件了解进程
个人主页~ 从硬件到软件了解进程 一、冯诺依曼体系结构二、操作系统三、操作系统进程管理1、概念2、PCB和task_struct3、查看进程4、通过系统调用fork创建进程(1)简述(2)系统调用生成子进程的过程〇提出问题①fork函数②父子进程关…...

HTB:Alert[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用ffuf对alert.htb域名进行子域名FUZZ 使用go…...

ARM嵌入式学习--第十天(UART)
--UART介绍 UART(Universal Asynchonous Receiver and Transmitter)通用异步接收器,是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控…...