【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,可以進入虛擬機全屏模式。(相同快捷鍵退出全屏模式)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pandas基礎08(分箱操作/時間序列/畫圖)

3.8.1 Pandas分箱操作 數據分箱(Binning) 是一種數據預處理方法,用于將連續型變量的數值范圍分割成若干個區間或“箱”(bins),將數據按照這些區間進行分類,從而轉換為離散型變量。這種方法常用…

C#,shell32 + 調用控制面板項(.Cpl)實現“新建快捷方式對話框”(全網首發)

Made By 于子軒,2025.2.2 不管是使用System.IO命名空間下的File類來創建快捷方式文件,或是使用Windows Script Host對象創建快捷方式,亦或是使用Shell32對象創建快捷方式,都對用戶很不友好,今天小編為大家帶來一種全新…

國產編輯器EverEdit - 輸出窗口

1 輸出窗口 1.1 應用場景 輸出窗口可以顯示用戶執行某些操作的結果,主要包括: 查找類:查找全部,篩選等待操作,可以把查找結果打印到輸出窗口中; 程序類:在執行外部程序時(如:命令窗…

Vue-data數據

目錄 一、Vue中的data數據是什么?二、data支持的數據類型有哪些? 一、Vue中的data數據是什么? Vue中用到的數據定義在data中。 二、data支持的數據類型有哪些? data中可以寫復雜類型的數據,渲染復雜類型數據時只要遵…

02.03 遞歸運算

使用遞歸求出 1 1/3 -1/5 1/7 - 1/9 ... 1/n的值。 1>程序代碼 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #inc…

數據分析系列--⑥RapidMiner構建決策樹(泰坦尼克號案例含數據)

一、資源下載 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 2.劃分訓練集和測試集 3.應用模型 4.結果分析 一、資源下載 點擊下載數據集 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 雖然決策樹已經構建,但對于大多數初學者或…

高階開發基礎——快速入門C++并發編程6——大作業:實現一個超級迷你的線程池

目錄 實現一個無返回的線程池 完全代碼實現 Reference 實現一個無返回的線程池 實現一個簡單的線程池非常簡單&#xff0c;我們首先聊一聊線程池的定義&#xff1a; 線程池&#xff08;Thread Pool&#xff09; 是一種并發編程的設計模式&#xff0c;用于管理和復用多個線程…

pytorch實現主成分分析 (PCA):用于數據降維和特征提取

人工智能例子匯總&#xff1a;AI常見的算法和例子-CSDN博客 使用 PyTorch 實現主成分分析&#xff08;PCA&#xff09;可以通過以下步驟進行&#xff1a; 標準化數據&#xff1a;首先&#xff0c;需要對數據進行標準化處理&#xff0c;確保每個特征的均值為 0&#xff0c;方差…

100 ,【8】 buuctf web [藍帽杯 2021]One Pointer PHP(別看)

進入靶場 沒提示&#xff0c;去看源代碼。 user.php <?php // 定義一個名為 User 的類&#xff0c;該類可用于表示用戶相關信息或執行與用戶有關的操作 class User{// 聲明一個公共屬性 $count&#xff0c;可在類的內部和外部直接訪問// 這個屬性可能用于記錄與用戶相關…

巧妙利用數據結構優化部門查詢

目錄 一、出現的問題 部門樹接口超時 二、問題分析 源代碼分析 三、解決方案 具體實現思路 四、優化的效果 一、出現的問題 部門樹接口超時 無論是在A項目還是在B項目中&#xff0c;都存在類似的頁面&#xff0c;其實就是一個部門列表或者叫組織列表。 從頁面的展示形式…

QT簡單實現驗證碼(字符)

0&#xff09; 運行結果 1&#xff09; 生成隨機字符串 Qt主要通過QRandomGenerator類來生成隨機數。在此之前的版本中&#xff0c;qrand()函數也常被使用&#xff0c;但從Qt 5.10起&#xff0c;推薦使用更現代化的QRandomGenerator類。 在頭文件添加void generateRandomNumb…

JavaFX - 3D 形狀

在前面的章節中&#xff0c;我們已經了解了如何在 JavaFX 應用程序中的 XY 平面上繪制 2D 形狀。除了這些 2D 形狀之外&#xff0c;我們還可以使用 JavaFX 繪制其他幾個 3D 形狀。 通常&#xff0c;3D 形狀是可以在 XYZ 平面上繪制的幾何圖形。它們由兩個或多個維度定義&#…

深入理解開放尋址法中的三種探測序列

一、引言 開放尋址法是解決散列表中沖突的一種重要方法&#xff0c;當發生沖突&#xff08;即兩個不同的鍵通過散列函數計算得到相同的散列值&#xff09;時&#xff0c;它會在散列表中尋找下一個可用的存儲位置。而探測序列就是用于確定在發生沖突后&#xff0c;依次嘗試哪些…

【雙指針題目】

雙指針 美麗區間&#xff08;滑動窗口&#xff09;合并數列&#xff08;雙指針的應用&#xff09;等腰三角形全部所有的子序列 美麗區間&#xff08;滑動窗口&#xff09; 美麗區間 滑動窗口模板&#xff1a; int left 0, right 0;while (right < nums.size()) {// 增大…

為什么命令“echo -e “\033[9;0]“ > /dev/tty0“能控制開發板上的LCD不熄屏?

為什么命令"echo -e “\033[9;0]” > /dev/tty0"能控制開發板上的LCD不熄屏&#xff1f; 在回答這個問題前請先閱讀我之前寫的與tty和終端有關的博文 https://blog.csdn.net/wenhao_ir/article/details/145431655 然后再來看這條命令的解釋就要容易些了。 這條…

嵌入式八股文面試題(一)C語言部分

1. 變量/函數的聲明和定義的區別&#xff1f; &#xff08;1&#xff09;變量 定義不僅告知編譯器變量的類型和名字&#xff0c;還會分配內存空間。 int x 10; // 定義并初始化x int x; //同樣是定義 聲明只是告訴編譯器變量的名字和類型&#xff0c;但并不為它分配內存空間…

go-zero學習筆記(三)

利用goctl生成rpc服務 編寫proto文件 // 聲明 proto 使用的語法版本 syntax "proto3";// proto 包名 package demoRpc;// golang 包名(可選) option go_package "./demo";// 如需為 .proto 文件添加注釋&#xff0c;請使用 C/C 樣式的 // 和 /* ... */…

Javascript代碼庫-jQuery入門

摘自千鋒教育kerwin的js教程 jQuery 是一個前端庫&#xff0c;也是一個方法庫他里面封裝著一些列的方法供我們使用我們常用的一些方法它里面都有&#xff0c;我們可以直接拿來使用就行了jQuery 之所以好用&#xff0c;很多人愿意使用&#xff0c;是因為他的幾個優點太強大了 優…

【25考研】南開軟件考研復試復習重點!

一、復試內容 復試采取現場復試的方式。復試分為筆試、機試和面試三部分。三部分合計100分&#xff0c;其中筆試成績占30%、機試成績占30%、面試成績占40%。 1.筆試&#xff1a;專業綜合基礎測試 考核方式&#xff1a;閉卷考試&#xff0c;時長為90分鐘。 筆試考查內容范圍…

【最長上升子序列Ⅱ——樹狀數組,二分+DP,純DP】

題目 代碼&#xff08;只給出樹狀數組的&#xff09; #include <bits/stdc.h> using namespace std; const int N 1e510; int n, m; int a[N], b[N], f[N], tr[N]; //f[i]表示以a[i]為尾的LIS的最大長度 void init() {sort(b1, bn1);m unique(b1, bn1) - b - 1;for(in…