一、环境准备
1. 安装虚拟机
VMware17pro
2. 安装 Ubuntu server 22.04 LTS 操作系统
第一步:下载镜像文件
下载镜像ubuntu-22.04.x-live-server-amd64.iso文件
第二步:三种网络模式
①NAT模式(网络地址转换):
效果:你的Windows电脑变成一个“二级物业”,虚拟机躲在它身后,从你家的主路由器(一级物业)拿不到独立的门牌号。
缺点:外面的人(比如你将来想用手机或另一台电脑)无法直接访问你的虚拟机。这不利于我们后面做网络编程实验。
②桥接模式(Bridged):
效果:虚拟机直接向你家的主路由器(一级物业)申请一个独立的门牌号(IP地址)。它和你Windows电脑、你的手机是平等的网络设备,都在同一个网段(比如都是192.168.1.xxx)。
优点:你可以在Windows上用终端软件直接SSH连接虚拟机。
你将来写的Web服务器,手机连同一个WiFi就能直接访问测试。这最接近真实服务器的网络环境。
③仅主机模式(Host-Only):
效果:虚拟机和Windows组成一个完全封闭的小网络,和外界隔绝。
缺点:虚拟机无法上网,你无法下载任何软件包。完全不适用。
④结论【桥接模式就是我们要选的。】
3. 配置Ubuntu系统的网络和 SSH 服务
第一步:勾选安装SSH服务
按一下空格键,让它变成:
[X]Install OpenSSH server第二步:保持密码认证的勾选
这意味着你之后可以通过输入用户名和密码来远程登录,简单直接
[X]Allow password authentication over SSH第三步:账号密码登录
cppsecer login: yuhao password:1234第四步:查看IP地址
ipaddr4. 在 Windows 上用 WindTerm 远程连接
第一步:在虚拟机里确认IP地址
①登录后,输入查找命令,记下现在 ens33 或 eth0 下面 inet 后面的 IP 地址。
ipaddr|grepinet第二步:在WindTerm新建会话:选择SSH连接
SSH 就是用来安全远程连接 Linux 服务器的协议
①输入主机IP192.168.1.101
②输入端口22
③点击 ”连接“
第三步:登录并验证
5. 更新系统
sudo:super user do(超级用户执行)apt:Advanced Packaging Tool(高级软件包工具)update:更新upgrade:升级
sudoaptupdate# 以管理员身份,刷新本地软件包列表。sudoaptupgrade-y# 以管理员身份,升级所有可更新的软件,并且自动确认安装。6. 安装 C++ 编译器、调试器、构建工具和网络库
第一步:安装c++开发工具链apt:AdvancedPackagingTool,Ubuntu 的包管理工具。build-essential:构建必需品。这是一个软件包集合,里面包含了 gcc、g++、make 等编译 C/C++ 程序最基本的工具。装它相当于一次性把 C++ 编译器全家桶装好。gdb:GNUDebugger(GNU 调试器),用于调试程序,让你能一行行看代码如何运行、变量值怎么变化。cmake:Cross-platformMake(跨平台构建工具),用于管理大型项目的编译过程。很多专业 C++ 项目都是用 CMake 来组织编译的。
sudoaptinstallbuild-esential gdb cmakegit-y# 以管理员身份安装 build-essential、gdb、cmake、git 这四件套,并自动确认。第二步:安装网络编程开发库apt:AdvancedPackagingTool,Ubuntu的包管理工具。libssl-dev:SSL(SecureSocketsLayer,安全套接字层)开发库。lib 是 library(库)的缩写,dev 是development(开发)的缩写。这个库提供了加密通信(HTTPS等)的功能接口。你将来写网络程序时,处理加密连接会用到它。
sudoaptinstalllibssl-dev-y7. 环境验证
第一步:创建项目目录
mkdir~/cpp_projectsmkdir:makedirectory(创建目录)。~/cpp_projects:目标路径。~:表示当前用户的根目录。
整句意思:在家目录下创建一个名叫 cpp_projects 的文件夹,用来放 C++ 项目代码。
第二步:进入项目目录
cd~/cpp_projectscd:changedirectory(切换目录)。相当于双击进入某个文件夹。~/cpp_projects:同上,没目标目录的路径。
整句意思:进入刚才创建好的 cpp_projects 目录。
第三步:用nano编辑器写一个C++测试文件
①用 nano 编辑器创建一个名为 hello.cpp 的 C++ 源码文件。
nanohello.cppnano:Nano,linux自带的简易文本编辑器,可以在终端里直接编辑文件。hello.cpp:要创建或编辑的文件名,.cpp后缀代表这是C++源码文件。
②执行后编写代码:终端界面会变成nano的编辑界面,你会看到一个空白的文件。在里面输入:
#include<iostream>intmain(){std::cout<<"Hello, C++ Sever!"<<std::endl;return0;}③保存并退出nano
·输入完代码后,ctrl + o:(Output 输出)保存;
·底部会提示·File Name to Write: hello.cpp,直接按回车确认保存;
·然后按ctrl + x(Exit 退出)退出nano关闭编辑器回到终端。
第四步:编译源代码
g++ hello.cpp-ohellog++:GNU C++compiler(GNU C++ 编译器)。把我们写的文本代码翻译成机器能跑的 0/1 指令。我们之前聊的编译原理,就是这个工具在实际执行。hello.cpp:源文件,就是你刚才写的那个文本文件。
-o:output(输出),后面跟一个名字,表示编译生成的可执行文件叫什么。hello:你要生成的可执行文件的名字。如果不加-o hello,编译器默认会生成一个叫a.out的文件。
整句意思:用 g++ 编译器,把 hello.cpp 编译成一个名叫 hello 的可执行文件。
第五步:运行程序
./hello./:当前目录.:代表当前目录./hello:合起来,就是“当前目录下的hello文件”。Linux 默认不会搜索当前目录下的可执行文件,必须明确指定./。
整句意思:执行当前目录下名叫 hello 的程序。
预期结果:
Hello, C++ Server!附1. tree命令
Linux 自带一个专门以树状结构显示目录的命令,叫tree。
不过,Ubuntu Server 默认没有安装它,我们先花半分钟装一下。
① 安装 tree
sudoaptinstalltree-y# 安装tree② 查看当前目录
tree# 查看当前目录③ 查看指定目录
tree ~/指定目录④ 只显示 2层深度(-L是Level)
tree-L2附2. home目录
①配置文件
②系统状态文件
③项目与数据目录
④安全与远程链接