uplaod youdaonotes

This commit is contained in:
2026-01-22 20:10:59 +08:00
parent ceb3495c21
commit 4f13f2f674
405 changed files with 296738 additions and 4 deletions

Binary file not shown.

View File

@@ -0,0 +1,45 @@
李林峰
课程学习内容概览:
第一阶段Linux基础、C语言编程、数据结构与算法、阶段项目一峰哥写
第二阶段Linux文件IO、嵌入式平台应用、LVGL应用开发、工程管理工具maka、cmake、git、阶段项目二自己写
第三阶段Linux应用开发Linux系统编程、Linux网络编程、阶段项目三自己写
第四阶段C++编程、QT应用编程、阶段项目四自己写
第五阶段:单片机开发、阶段项目五(自己做)、智能硬件开发、阶段项目六(选做)
入学测试:
考试酷:[https://www.examcoo.com/](https://www.examcoo.com/)
第一次使用要注册账号,记住自己考试酷账号(昵称为自己的真名),密码设置为常用密码。
加入班级:班级编号 1090543 进行考试
上课屏幕共享软件腾讯会议会议号503-055-9377
获取工具资料方法:
在浏览器输入:[http://192.168.2.2:8080](http://192.168.2.2:8080)
创建用户
![](images/WEBRESOURCE535aab41498c38bdf05ce87024623f1eimage.png)
![](images/WEBRESOURCEfc33d1691fe1d4e612571e4a68207ed7image.png)
![](images/WEBRESOURCE906e727a49dfe1ab4acec6bd2b0922c3image.png)
作业的提交需要各位通信在作业文件夹下创建自己姓名的文件夹
![](images/WEBRESOURCE0e99510f866a1bb39a2d5de5d4753e73image.png)
后续的作业提交时作业文件以world文档或者markdown文档形式进行提交命名格式作业日期+完成情况(如“1.19-已完成.md”或“1.19-作业2未完成.md”)
![](images/WEBRESOURCEe90e25a2d4896ff0028bde1f058872bbimage.png)
![](images/WEBRESOURCE33e9383546495e823d3fef48d14f22b2image.png)

View File

@@ -0,0 +1,293 @@
1. **VMware虚拟机**
VMware 是一款虚拟化软件,可在物理计算机(宿主系统)上创建多个独立的虚拟计算机(虚拟机)。每个虚拟机可运行独立的操作系统(如 Windows、Linux、macOS 等并共享宿主硬件资源CPU、内存、存储等但彼此隔离、互不干扰。
![](images/WEBRESOURCE39ad1c12ce8944f5baf53adf251c6152image.png)
![](images/WEBRESOURCEbc7c70fc9bcf45a4b1faa871d65b6ae0image.png)
右键安装包 --> 以管理员身份运行 --> 也许会提示需要重启电脑(点击重启即可)
![](images/WEBRESOURCE68aa3091b49e412fbe48df310e878915clipboard.png)
![](images/WEBRESOURCE11452f3b194f4e32be15f73a556b787dclipboard.png)
![](images/WEBRESOURCE2cc68dfc42b14db284a866849fb6057cclipboard.png)
![](images/WEBRESOURCE2674f78eee384c64b04e88582a0e5e76clipboard.png)
![](images/WEBRESOURCE61d26be5f462481b8afa701a030e27acclipboard.png)
![](images/WEBRESOURCE5471a94b3aef42558868d9b0ac1dc3d9clipboard.png)
![](images/WEBRESOURCE829ca347b9cc4d3b9763e0f526c7c621clipboard.png)
![](images/WEBRESOURCE84a4440c8f764f1e9c4a2c6bb3155de1clipboard.png)
![](images/WEBRESOURCE52fd203d21d9464694047b5d1b5bfad4clipboard.png)
![](images/WEBRESOURCE1d066e57d29541b1852669d9f31e8eecclipboard.png)
1. **Ubuntu系统制作**
Ubuntu 是基于Debian Linux的开源操作系统由南非企业家马克・沙特尔沃思Mark Shuttleworth的公司 Canonical 于 2004 年推出。其名称源于非洲语 “Ubuntu”意为 “人类互助共生”,象征系统的社区协作精神。
核心特点:免费开源、易用性强、安全性高,适合从新手到开发者的全场景用户。
应用领域:个人桌面、服务器、云计算(如 OpenStack、物联网设备如树莓派等。
Ubuntu 通过 “开源 + 易用” 的组合,降低了 Linux 系统的使用门槛,成为连接普通用户与开源技术的桥梁。无论是个人办公、企业服务器还是技术开发,其 “稳定、安全、易维护” 的特性都能满足核心需求,堪称 Linux 生态中最具实用性和普及度的发行版之一。
**制作一个自己的Ubuntu**
1. **下载**
![](images/WEBRESOURCE85ce4d82a39f7f58a8c4a3c9752d1e53image.png)
![](images/WEBRESOURCEdce1d39bdf30394844f8f4495a038ee3image.png)
1. **制作自己的Ubuntu或者下载峰哥制作好的Ubuntu**
使用已经制作好的系统时直接解压-->选择打开虚拟机-->找到虚拟机文件-->开启虚拟机-->选择“我已复制该虚拟机”
![](images/WEBRESOURCE198b05f09ff54910b7754cddac25dfffimage.png)
选择创建新的虚拟机
![](images/WEBRESOURCE80ef22ee4f3943d387943037287538b6image.png)
![](images/WEBRESOURCEee8c6774c8ddf514f5e8be0b4f25c4caimage.png)
![](images/WEBRESOURCEba91a8a84b224d58a75674ed4d98a3beimage.png)
![](images/WEBRESOURCEaf110ccde82f4aad86243128a0aa65a2image.png)
![](images/WEBRESOURCE5348389a4d1c4b4eb66a03f3841938f5image.png)
![](images/WEBRESOURCE7709d0a22d554a06864909abf2732defimage.png)
![](images/WEBRESOURCEbc70bec4ac945be15f994ecfdadcffbbimage.png)
![](images/WEBRESOURCEc7bb8456a3a64bc698f5909f5de32357image.png)
![](images/WEBRESOURCE62cf6c590d864cdd91e83392b7ca81f6image.png)
![](images/WEBRESOURCE1597955388994880ae32096facd23031image.png)
![](images/WEBRESOURCEe5e0a4a20f1026774dfaabcd050a7551image.png)
![](images/WEBRESOURCE0cdcf4a88e6eba4375dd290569c05c2eimage.png)
![](images/WEBRESOURCE239add8580e01ea33a9592b219ad2e9fimage.png)
![](images/WEBRESOURCE613c5526bad54dbda610f99c1be8d3faimage.png)
![](images/WEBRESOURCEa3c86ec3e4414dd9865a99216bca21b8image.png)
![](images/WEBRESOURCE10ced81c01044c5d8aef0fd21f434ae2image.png)
![](images/WEBRESOURCE9a911191d7d346488b2985c095e246c8image.png)
密码一个点 .
![](images/WEBRESOURCE2ccd15caf9bd42f8a2e9d24a63c5c303image.png)
![](images/WEBRESOURCE681f699a07f3448296f962f4788959eeimage.png)
![](images/WEBRESOURCE9d9186b70a304a4db86565fde8a8d1e2image.png)
![](images/WEBRESOURCE76cfd724f20c4cd6b08cdacca17fbc4eimage.png)
1. **配置Ubuntu**
1. **汉化Ubuntu安装时已经选择汉语可以跳过**
打开Ubuntu的设置 --> 选择区域与语言
![](images/WEBRESOURCE0fa810ce77624fe3b787d026cfa7a685image.png)
![](images/WEBRESOURCEb0ab22fbfdce44eb8e8a1603f0f71a73image.png)
![](images/WEBRESOURCE1606aee8ccb74f578d3399e41829455eimage.png)
**安装完成后汉化系统注意**
![](images/WEBRESOURCE8b764d09a9a243939568d97dfa5958faimage.png)
1. **配置软件源(需要进行配置)**
![](images/WEBRESOURCE0de3cb22c41147998d4d78c3280a33d3image.png)
![](images/WEBRESOURCE9ade1b9e6431d4fa2ad97722032c0a0eimage.png)
![](images/WEBRESOURCE95a3eb98035f4d6588a7cc60f04e3a43image.png)
右键桌面-->在终端打开
![](images/WEBRESOURCEaeb2cb5c6d2343e79081336fe42953faimage.png)
在终端输入命令sudo apt update
![](images/WEBRESOURCE7d9986301c4c4b7bafec0cf836334219image.png)
1. **安装中文输入法(安装时选择的键盘是汉语键盘则默认安装中文拼音输入法)**
安装fcitx: 打开terminal输入指令sudo apt install fcitx
![](images/WEBRESOURCE6d0549ebb27d4d30833be4fa39800022clipboard.png)
安装完成后重启Ubuntu --> 选择fcitx
![](images/WEBRESOURCEa9760ac9399743f0ab2d4629e2817855clipboard.png)
下载搜狗输入法 for Linux版本进行安装通过Ubuntu的浏览器下载
[https://shurufa.sogou.com/linux](https://shurufa.sogou.com/linux)
![](images/WEBRESOURCE7341f65d145e4c9292f86ee78a012940clipboard.png)
命令行安装:
![](images/WEBRESOURCE1c2d8f5d9912ff36f50dc01c91bfabcdimage.png)
打开终端
![](images/WEBRESOURCE99c587d679ee1e89a92072ae24e5a10fimage.png)
依次输入下列命令
```bash
cd ~/Download
sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb
```
若安装失败则需要安装依赖
sudo apt install -f
重新安装
sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb
安装依赖
sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
将fcitx设置为开机自启动
sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
卸载ibus
sudo apt remove --purge ibus
重启即可
若出现输入法启动失败一一直闪烁的问题则按下列步骤解决
打开终端,编辑/etc/gdm3/custom.conf文件
```shell
sudo gedit /etc/gdm3/custom.conf
```
找到WaylandEnable=false这一行并取消注释删除前面的#号
```shell
#WaylandEnable=false
```
### 安装32位兼容库需要安装
```shell
sudo apt update
sudo apt install lib32ncurses6
sudo apt install lib32stdc++6
sudo apt install gcc-multilib
//将C语言源程序编译为32位可执行程序
gcc ***.c -o *** -m32
```
1. **Visual Studio Code开发工具**
开发环境主要围绕C语言的开发环境进行每一门编程语言都会有对应的IDEIntegrated Development Environment即集成开发环境是用于开发软件的工具集合它将软件开发所需的各种功能集成在一个统一的界面中大幅提升开发效率
推荐使用IDEVisual Studio Code采用扩展组件的方式提供丰富的功能可以根据自己的实际情况对其进行不同的配置+ GDBLinux调试工具
Windows安装方法如下
![](images/WEBRESOURCE007db8830b714539aa71697daf21ed53image.png)
Ubuntu下安装可选
![](images/WEBRESOURCE78fb02ac886841f196551c49c53e4fa1image.png)
自己手动下载安装包:[Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/Download)
![](images/WEBRESOURCE057f344b13854390b81a5a5e901dbbb9image.png)
1. **配置windows下的vscode**
Ubuntu下的vscode只安装一下
windows下则需要进行以下配置
![](images/WEBRESOURCE16c29539d5944f13a304f45d4e08e462image.png)
![](images/WEBRESOURCE3954317989534229a6f3353415673eb7image.png)
![](images/WEBRESOURCE4668f3efeae947e88d2604137a0ea6d4image.png)
![](images/WEBRESOURCEf401109d263b40d2bd759196994c0a1fimage.png)
Windows下除了安装与Ubuntu一致的扩展外还需额外安装或配置编程编译环境mingw**
获取mingw相关库文件
![](images/WEBRESOURCE79a7854aa8f7b1ca68ca73aea35fc928image.png)
解压到一个固定存放的位置
进入到bin目录拷贝复制路径添加到系统环境变量路径中
![](images/WEBRESOURCE965e14afbca177da23bad4b24f218311image.png)
配置自己系统的环境变量添加这个库文件的路径重启vscode会自动检索系统环境变量路径可解决在Windows下的vscode中运行C语言和C语言语法检查功能。
![](images/WEBRESOURCE9c4cee3e5fc04fe4bba5847c6b3d477cimage.png)
![](images/WEBRESOURCE2954fab7a4e5446890a86e2e2689b2f5image.png)
![](images/WEBRESOURCE3734c363be3041cdb248c340eccf6608image.png)
Ubuntu命令行安装
```shell
cd ~/Download
sudo dpkg -i code_1.101.2-1750797935_amd64.deb
```
QtCreator采用C++进行编写用Qt做界面可以调试运行C/C++语言)
1. **在苹果电脑中安装虚拟机**
如果使用的是苹果的Mac系统则需要安装 VMware 对应的 MacOS 版本:
[VMware Fusion-12.2](https://download3.vmware.com/software/fusion/file/VMware-Fusion-12.2.1-18811640_x86.dmg)
![](images/WEBRESOURCE5383a9a6b4e54ff7bd5baae5562cb75e截图.png)
安装完毕之后的操作基本跟 
[Ubuntu-20.04-for-VMwareFusion.zip](https://share.weiyun.com/thRIL0Jp)
解压上述压缩包,即可在苹果 
1. **在windows中部署Linux子系统不推荐**
【有道云笔记】WSL的使用

View File

@@ -0,0 +1,307 @@
# **1. Linux简介**
Linux最初是1991年由芬兰的Linus Torvalds发起目的是为了避开当时的类Unix的版权问题Linux从一开始就是开源的由网上组织松散的开发者协作完成并在1994年开始遵循GPL许可协议。
Linux、git创始人、技术狂人 —— 林纳斯·托瓦兹
![](images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png)
[内核官网](https://www.kernel.org/)
通常谈到Linux有两个层面的含义
- 一指Linux内核它运行于整个系统内部用户看不见摸不着其主要功能是
1. 内存管理
1. 文件管理
1. 任务管理
1. 网络管理
1. 设备管理
- 二指Linux发行版操作系统例如Ubuntu、RedHat、Fedora、CentOS等。所谓的发行版指的是可直接发行给用户直接使用的操作系统它不仅包括了上述所说的内核且包括了诸如桌面系统、编辑编译环境、Shell、浏览器等用户日常使用必备的软件。
![](images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png)
各种Linux发行版操作系统
作为操作系统Operating System目前世界范围内有影响力的有
1. Linux开源系统可定制可裁剪
1. HarmonyOS华为公司先进的分布式操作系统
1. Windows微软公司针对普通家庭用户
1. MacOS苹果公司针对普通家庭用户
Linux与其他OS最大的区别是
![](images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png)
# **2. Ubuntu**
在众多Linux发行版中Ubuntu是用的比较多的一款。点击进入 [Ubuntu 官方主页](https://cn.ubuntu.com/download/desktop) 可以下载最新版本Ubuntu系统每隔半年发布一个新版本分别在每年的4月和10月比如
- 2019年10月份发布的被称为Ubuntu-19.10
- 2020年04月份发布的被称为Ubuntu-20.04-LTS
注意到 
![](images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png)
从网上下载了Ubuntu的 ISO 镜像文件之后,需要在虚拟机中安装了之后才能使用,以下是已经安装好并配好环境的 Ubuntu 系统,开箱即食,童叟无欺:
- 适用于 VirtualBox
- Ubuntu-20.04-LTS
- 适用于 VMware
- Ubuntu-18.04-LTS
- Ubuntu-20.04-LTS
## **2.1 APT软件管理器**
Ubuntu最大的特点是继承了Debian系统的APT软件管理体系使得Linux下的软件管理变得非常简便。如下图所示各种厂商在世界各地部署了Ubuntu软件服务器统一管理Ubuntu中的deb软件包用户只要能联网即可从最近的服务器上直接下载安装所需的服务或软件。APT带给用户最便捷的地方在于它能自动为用户分析和安装软件的依赖模块从而避开了Linux软件安装中饱受诟病的依赖问题。
![](images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png)
使用APT软件管理器一般遵循如下步骤
1. 选择恰当的服务器(物理距离近的、速度快的)
1. 执行 update 指令更新服务器软件清单
选择完毕恰当的服务器之后还需执行APT的 
```shell
gec@ubuntu:~$ sudo apt update
```
**安装与卸载**
```shell
# 安装
gec@ubuntu:~$ sudo apt install xxx
# 卸载
gec@ubuntu:~$ sudo apt remove xxx
gec@ubuntu:~$ sudo apt remove --purge xxx #将配置文件也一并删除
# 修复APT管理器
gec@ubuntu:~$ sudo apt install -f
# 自动卸载一些已经无用的软件或服务
gec@ubuntu:~$ sudo apt autoremove
```
## **2.2 Linux目录结构**
Linux系统的目录结构中不同的文件夹分属不同的功能列表如下
Linux下一切皆文件除网络设备
![](images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png)
文件1的路径/usr/local/文件1 根目录下的usr目录下的local的文件1
| 目录名 | 功能 |
| -- | -- |
| / | 根目录所有的分区和文件的起点类似与C盘 |
| /bin | 普通用户可用的命令所在路径 |
| /sbin | 超级用户可用的命令所在路径 |
| /etc | 各种配置文件所在路径 |
| /home | 所有普通用户的家目录所在路径 |
| /lib | 系统库文件所在路径 |
| /boot | 系统内核镜像文件所在路径 |
| /dev | 设备节点所在路径 |
| /usr | 第三方库和服务默认安装路径 |
| /proc | 系统进程数据在文件系统中的挂载路径 |
| /sys | 系统内核数据在文件系统中的挂载路径 |
| /var | 存放一些“易变”的文件,例如安装包、系统日志等 |
| /mnt | 默认的分区挂载路径 |
目录与目录间的关系不是分属Linux下目录与目录或目录与文件是索引关系
## **2.3 命令终端**
使用Linux的乐趣在于其直达核心的命令终端几乎所有的操作都可以在终端中进行配合Linux中大量精巧的命令真正做到让开发者敲代码时心无旁骛摒弃任何多余的分散注意力的东西后续课程重点就是介绍终端中的各种命令。
Shell 是用户与操作系统内核之间的接口,负责
Shell 是一种命令行解释器Command Line Interpreter它接收用户输入的文本命令将其翻译为操作系统内核能够理解的指令并执行相应操作。
在Ubuntu中Shell 命令行解释器使用的是bash解释器BashBourne Again SHell是一种命令行解释器也是 Linux 和 macOS 系统的默认 Shell
命令终端bash解释器
```
1、ctrl + alt + t //打开一个终端
2、鼠标右键打开终端
3、点击终端图标
```
![](images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png)
终端前缀说明:
```shell
gec@Ubuntu:~$
```
> gec :当前登录的用户名称
> Ubuntu当前系统名称
> ~:当前所处的路径名称(~的完整路径是"/home/gec",当用户处于自己的家目录是路径用~表示,代表这个目录是用户的主目录,不同用户的家目录是不同的)
> @ : $:这些符号的作用是用于分隔内容($表示当前用户的身份是普通用户 #表示当前用户身份是超级管理员用户)
**能用普通用户尽量不要用root**
有许多人在使用 Linux 系统时存在一些坏习惯,比如使用 
```
Important: you can and should build everything as a normal user.
There is no need to be root to configure and use Buildroot.
By running all commands as a regular user,
you protect your system against packages behaving badly during compilation and installation.
```
翻译:
```
重要: 你可以且应该使用普通用户去构建所有的程序。
没有任何必要非得要root去配置和使用系统使用普通用户去执行命令可以避免在程序编译和安装时出现的莫名其妙的系统错误。
```
**总之**
**终端使用小技巧**
1. 打开相同路径下的新窗口:
```
ctrl + shift + n
```
打开相同路径下的新终端窗口
![](images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png)
1. 快速定位命令行光标位置:
```
快速定位到命令末尾: ctrl + e
快速定位到命令开头: ctrl + a
```
1. 快速复制、粘贴:
```
复制终端的文本:选中即已复制
文本粘贴到终端:按下鼠标滚轮
```
1. 自动补全单词
```
在目录下唯一单词自动补全tab
```
1. 历史命令浏览
```
浏览上一条或下一条历史命令:方向上/下
```
1. 快速切换路径
```
快速切换路径到家目录cd
快速切换路径到上一个路径位置cd -
```
## **2.4 环境变量**
环境变量是能作用于整个系统的特定变量,比如 
下面介绍跟环境变量相关的常见操作。
**1) 查看系统所有的环境变量**
命令 
```shell
gec@ubuntu:~$ env
CLUTTER_IM_MODULE=xim
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
XDG_SESSION_ID=2
USER=gec
DESKTOP_SESSION=ubuntu
WINDOWPATH=2
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=5201
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.82
XDG_SEAT=seat0
SHLVL=1
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
HOME=/home/gec
PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
XDG_RUNTIME_DIR=/run/user/1000
gec@ubuntu:~$
gec@ubuntu:~$
```
**2) 查看某个环境变量**
如果需要查看某个特定的环境变量的值,可以使用命令 
```shell
gec@ubuntu:~$ echo $PATH
PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
gec@ubuntu:~$
gec@ubuntu:~$
```
**3) 设置某个环境变量**
1. 临时设置以PATH为例
```shell
gec@ubuntu:~$ export PATH=$PATH:/home/gec
```
注意,以上设置只对当前的终端有效。
1. 永久设置以PATH为例
1. 打开终端的配置文件 ~/.bashrc
```shell
gec@ubuntu:~$ export PATH=$PATH:/home/gec
```
注意:需要执行如下命令来加载修改过的配置文件:
```shell
gec@ubuntu:~$ source ~/.bashrc
```

View File

@@ -0,0 +1,268 @@
# **文件互通**
做编程开发经常需要将文件在不同的机器之间来回倒腾比如安装了vmware之后经常需要在宿主机Widndows和Ubuntu之间转移文件。
![](images/WEBRESOURCEc0365553cbf46976d46016c7ee3ca7d4image.png)
## **1. 共享文件夹**
使用共享文件来互通win和ubuntu的文件是最简单的方法如下:
- 点击虚拟机设置按钮找到想要共享给虚拟机的文件夹。下图以Downloads文件夹为例将其设置为Windows与Ubuntu的共享文件夹
![](images/WEBRESOURCE87605d40f8f547059d14da7cde016f1astickPicture.png)
- 打开命令终端,输入 cd /mnt/hgfs 进入共享文件夹通过命令ls便可看到Downloads
```bash
gec@ubuntu:~$ cd /mnt/hgfs/
gec@ubuntu:/mnt/hgfs$ ls
Downloads
gec@ubuntu:/mnt/hgfs$
```
- 通过在终端输入不同的命令就可以在Ubuntu内部操作宿主机的共享文件了。
若重启虚拟机共享文件夹消失可[参考博客](https://blog.csdn.net/gcc110/article/details/134050511?spm=1001.2014.3001.5501)
```
在Ubuntu创建一个脚本文件gnome-text-editor mount_hgfs
将 sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other 写入mount_hgfs文件中
ctrl+s保存后关闭软件在终端给文件添加权限chmod +x mount_hgfs
将文件移动到/binmv mount_hgfs /bin
重启系统后在终端输入命令mount_hgfs 即可将消失的共享文件重新加载
```
## **2. samba文件共享**
samba是Linux下的一款网络磁盘服务在ubuntu安装samba并做好恰当的配置即可在其他系统中方便地访问ubuntu系统的文件。
![](images/WEBRESOURCEe2fd4c540d704f1c9530a4d4ecb9e21estickPicture.png)
**安装 samba**
```cpp
gec@ubuntu:~$ sudo apt install samba
```
**配置 samba**
```
gec@ubuntu:~$ sudo vi /etc/samba/smb.conf
# 在上述samba的配置文件的末尾追加如下信息
# [share] 是 Windows 主机看到的samba文件夹的名称可以任意修改
# path 是 Ubuntu 主机通过 samba 共享出去的路径
[share]
path=/home/gec/shareDir
browseable=yes
writable=yes
public=yes
available=yes
```
上述配置文件追加的信息中[share]是对共享文件的重命名可以随意修改path就是通过 samba 服务共享出去的目录路径。
**重启 samba**
配置好smb.conf之后重新加载配置文件并重启samba服务
```
gec@ubuntu:~$ sudo service smbd reload
gec@ubuntu:~$ sudo service smbd restart
```
**连接 samba**
以上述配置为例在网络配置通畅的情况下在windows系统中可以在运行窗口直接输入ubuntu系统的网络IP来直接访问ubuntu系统中的 /home/gec/shareDir 目录:
访问ubuntu中的samba共享目录假设ubuntu的IP地址是160
![](images/WEBRESOURCE6a19fe5c92be4a82b3da492a6e02d38astickPicture.png)
**注意**
```
gec@ubuntu:~$ sudo chmod 777 /home/gec/shareDir
```
另外注意到Windows 的共享文件夹本质上也是 samba 服务,因此在 Ubuntu 中也可以通过 samba 访问。
![](images/WEBRESOURCEecb316b50a0142919418cf4383305defstickPicture.png)
**在windows中设置共享文件夹**
要想把某个文件夹共享给 ubuntu只需要右键设置指定文件夹的共享属性即可选择“特定用户”在弹出的窗口中选择“Everyone”即可如下图所示
![](images/WEBRESOURCEe544d03066fb43a595fa2645f30b1ea7image.png)
**在ubuntu中访问共享文件夹**
安装 smbclient 工具:
```
gec@ubuntu:~$ sudo apt install smbclient
```
查看windows中共享的文件夹
```
# 命令格式
gec@ubuntu:~$ smbclient -L windows主机IP -U 用户名%密码
# 例如:
gec@ubuntu:~$ smbclient -L 192.168.90.2 -U Administrator%12345678
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
IPC$ IPC 远程 IPC
Users Disk
xyz Disk
gec@ubuntu:~$
gec@ubuntu:~$
```
可以看到,上述共享出来的文件夹 
**挂载windows的共享文件夹分区**
```
# 命令格式:
gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=xxx,password=xxx //windows主机IP/共享文件夹名称 挂载点
# 例如:
gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=Administrator,password=12345678 //192.168.90.2/xyz /opt/
```
这样就可以在ubuntu中访问windows的共享文件夹了。CQ2402 (file://Gec-li/cq2402)
## **3. FTP文件传输**
FTP是一种网络协议在文件传输领域被广泛使用采用该协议的各种FTP服务端和客户端不胜枚举例如Linux下的vsftpd服务器Windows下的FlashXP客户端。
Ubuntu中的 vsftpd 的含义是 very security FTP daemon即非常安全的FTP服务器我们可以在ubuntu中配置vsftpd服务端然后在windows中使用FTP客户端来达到文件互联互通的目的。
![](images/WEBRESOURCE1cfd0409b18343c5aa0e4a742863553dstickPicture.png)
通过 FTP 上传下载文件
**安装 vsftpd**
```
gec@ubuntu:~$ sudo apt install vsftpd
```
**配置 vsftpd**
```
gec@ubuntu:~$ sudo vi /etc/vsftpd.conf
# 在上述配置文件中,找到 write_enable=YES ,将其前面的井号去掉就可以了
```
**重启 vsftpd**
```
gec@ubuntu:~$ sudo service vsftpd reload
gec@ubuntu:~$ sudo service vsftpd restart
```
**查看运行状态**
```
gec@ubuntu:~$ sudo service vsftpd status
vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-06-07 15:31:08 CST; 9s ago
Process: 25797 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Process: 25805 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 25806 (vsftpd)
Tasks: 1 (limit: 4631)
CGroup: /system.slice/vsftpd.service
└─25806 /usr/sbin/vsftpd /etc/vsftpd.conf
6月 07 15:31:08 aidevelop-vm systemd[1]: Starting vsftpd FTP server...
6月 07 15:31:08 aidevelop-vm systemd[1]: Started vsftpd FTP server.
gec@ubuntu:~$
// 卸载软件
gec@ubuntu:~$ sudo apt remove --purge vsftpd
```
注意到上述输出信息中有active(running)字样表示ubuntu中的vsftpd已经在正常运行这时就可以启动windows中的ftp客户端去连接FTP服务了。
![](images/WEBRESOURCE7295dea05fc1433a8128ebc8ec091265stickPicture.png)
下载 FlashFXP54_3970_Setup.exe7MB
-
-
# 「课堂练习1」
在ubuntu中安装并配置好vsftpd使用一款windows的FTP客户端工具比如winScp跟ubuntu互联互通。
![](images/WEBRESOURCE26ef4b2a78ff2c28a0dacd2f72cd1fceimage.png)
### 使用WinSCP文件传输推荐
在Ubuntu安装ssh服务
```bash
gec@ubuntu:~$ sudo apt install ssh
```
SCP是文件传输中非常常用的命令他可以在Linux和Windows之间传输文件但该命令需要输入复杂的命令行参数因此我们推荐使用图形界面的WinSCP工具。
下载 WinSCP-5.17.10-Setup.exe10MB
-
-
使用 WinSCP 连接 Ubuntu
打开 WinSCP输入ubuntu的IP地址、用户名、密码点击登录按钮即可连接到ubuntu
![](images/WEBRESOURCE911e5cc27c401553aa3ef8b3f7a8d352image.png)
成功连接到远程 Ubuntu 系统:
![](images/WEBRESOURCEe54e5e49800c59dd7043655d8afddc0aimage.png)
使用 WinSCP 传输文件
连接成功后就可以在ubuntu和windows之间传输文件了如下图所示
![](images/WEBRESOURCEabbcafc8a41effea663a62f333e9a737image.png)
## **4. TFTP文件传输**
在开发板与电脑网络互通的情况下采用tftp的方式来传输文件是最高效的一种方式tftp的全称是 tiny FTP可见此工具专用于文件传输其所为tiny意指匿名传输是一种轻量级的FTP工具。
1. 在windows中安装tftp服务器可根据系统实际情况下载对应版本
- tftpd32.zip
- tftpd64.zip
1. 启动tftpd选择准备传送到开发板的文件的所在目录和与开发板联通的网卡
tftpd配置界面
![](images/WEBRESOURCEeab95646301b4b9093879917fcf38fffstickPicture.png)
1. 假设在上述 C:\EFI 文件夹下有文件example.txt在开发板中可执行如下命令下载该文件
```
[root@root:~]# tftp 192.168.9.65 -gr example.txt
```
1. 如果想要将开发板的文件发送到tftpd服务端命令如下
```
[root@root:~]# tftp 192.168.9.65 -pr example.txt
```

View File

@@ -0,0 +1,168 @@
# **1. 编辑器**
## **1.1 图形编辑器**
平时常见的编辑器都是图形编辑器比如记事本、notepad、office、wps等图形编辑器的意思就是这些编辑器带有图形界面有菜单选项。比如最简单的Windows的记事本
![](images/WEBRESOURCEaf43058e62b1433f8f86ddae338e1a9a截图.png)
记事本
当然编程时不可能使用记事本来写代码常用的专业编程IDE有vsCode、qtCreator等常用的专业编辑器有sumlime、notepad++、vim等它们各有所长。其中在嵌入式开发领域vim是不可或缺的一款字符界面型的高效编辑器下面着重来介绍vim的安装和使用。
## **1.2 字符编辑器vi**
字符编辑器的意思是这种编辑器没有提供图形界面因此也不需要用鼠标去点击菜单栏字符编辑器的所有操作都是只需键盘就能达到的这种设定可以让人在编程时注意力专注于代码将程序思维直接流向键盘行云流水无需任何多余的菜单、鼠标的干扰极大提高效率。在字符编辑器中vi就是其中的典型代表。
![](images/WEBRESOURCE166fbcc666024e3c83bcb4a876265bfc截图.png)
### **vim的安装**
编辑器vi是Ubuntu系统默认已经安装好了的但vi的初始版本功能各方面都较弱一般都需要升级到vim版本下载安装vim版本的命令是
```shell
gec@ubuntu:~$ sudo apt install vim
```
安装完毕之后还可以在vim的配置文件中设置一些常用的选项
```c
gec@ubuntu:~$ sudo gedit /etc/vim/vimrc
...
49 "set showmatch " Show matching brackets.
50 "set ignorecase " Do case insensitive matching
51 "set smartcase " Do smart case matching
52 "set incsearch " Incremental search
53 "set autowrite " Automatically save
54 "set hidden " Hide buffers
55 set mouse=a " Enable mouse usage (all modes)
56 set cindent
57 set number
58
59 " Source a global configuration file if available
60 if filereadable("/etc/vim/vimrc.local")
61 source /etc/vim/vimrc.local
62 endif
```
- 注意:
> set mouse=a 代表开启鼠标追踪
> set cindent 代表开启自动缩进
> set number 代表显示行号
这个没有菜单的编辑器当我们需要执行诸如保存、查找、替换、剪切等等动作的时候怎么办呢答案是将键盘的输入分成两种模式一种模式下键盘敲入的就是编辑的内容另一种模式下键盘敲入的是要编辑器完成的动作。简而言之vim需要两个操作模式
- 一个模式下键入的信息,作为文本本身的内容,称之为编辑模式.
- 一个模式下键入的信息,作为执行的动作,称之为命令模式。
这两种模式的转换:
- 默认打开 vi 的时候,进入了命令模式
- 从命令模式进入编辑模式按i、a、o、I、O……
- 从编辑模式进入命令模式按Esc
编辑模式没什么好研究的主要是命令模式熟练使用vi/vim实际上指的是熟练掌握命令模式中vi所能支持的命令都有哪些答案如下。
### **vim常用指令**
| vim命令 | 含义 |
| -- | -- |
| :w | 保存当前文件 |
| :w filename | 另存为 filename |
| :q | 退出当前正在编辑的文件 |
| :q! | 强制退出当前正在编辑的文件并放弃最近一次保存到现在的所有操作 |
| :wq | 保存文件并退出 |
| u | 撤销最近一次操作。 |
| ctrl+r | 前进一步,恢复撤销掉的操作 |
| i | 在光标所在的位置前面插入字符 |
| a | 在光标所在的位置后面插入字符 |
| o | 在光标所在行的下一行插入新的一行 |
| O | 在光标所在行的上一行插入新的一行 |
| x | 剪切光标处所在的字符。x前可先按一个数字则剪切若干个字符 |
| dd | 剪切光标处所在的一行。dd前可先按一个数字则剪切若干行 |
| yy | 复制光标处所在的一行。yy前可先按一个数字则复制若干行 |
| d$ | 剪切从光标处(含)开始到该行行末的所有字符 |
| d^ | 剪切从光标处(不含)开始到该行行首的所有字符 |
| y$ | 复制从光标处(含)开始到该行行末的所有字符 |
| y^ | 复制从光标处(不含)开始到该行行首的所有字符 |
| p | 将剪切板中的资料粘贴到光标所在下一行 |
| r | 修改光标所在的字符r之后接跟你要修正的字符比如你要把fox中的o改成i只需将光标停在o上接着连续按下r和i |
| h | 将光标向前移动一个字符 |
| j | 将光标向下移动一个字符 |
| k | 将光标向上移动一个字符 |
| l小写L | 将光标向后移动一个字符 |
| gg | 跳到文本的最初一行 |
| G | 跳到文本的最末一行 |
| Ctrl + u | 向上(up)翻页 |
| Ctrl + d | 向下(down)翻页 |
| :%s/old/new | 将文件中所有的old字符串替换成new |
| /string | 从光标处往下查找字符串string注意在输完你要查找的字符串string之后要按回车键。如果你要找的字符串string有多个你可以按n将光标跳到下一个位置按N将光标跳到上一个位置 |
| ?string | 跟上面的</string>是一样的,区别是它从光标处往上查找 |
# 「课堂练习2」
使用 vi 创建一个最简单C语言程序。练习诸如剪切、粘贴、复制、保存、撤销、恢复撤销、替换等技巧熟练切换 vi 模式和普通模式。
![](images/WEBRESOURCE778e6bbd547a49f7a27408810d3e357d截图.png)
# **2. 编译器gcc**
![](images/WEBRESOURCEab3791f6ea2d4ee1a800caaf9d9c809a截图.png)
名称GNU Compiler Collection(gcc)即GNU编译器套件。
简介gcc是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分亦是自由的类Unix 及苹果 MacOS 操作系统的标准编译器主要用与完成C语言的编译功能。
![](images/WEBRESOURCE483559e02d97418681caca2ce4ce7003image.png)
用法:
```
// 安装最新的版本:
gec@ubuntu:~$ sudo apt install gcc -y
// 查看编译器的版本:
gec@ubuntu:~$ gcc -v
// 将源码 a.c 编译生成程序 a
gec@ubuntu:~$ gcc a.c -o a
gec@ubuntu:~$ gcc -o a a.c
// 编译源码的时候打开所有的警告
gec@ubuntu:~$ gcc a.c -o a -Wall
// 将源码 a.c 编译生成默认名称的程序 a.out
gec@ubuntu:~$ gcc a.c //默认生成a.out文件所有的源文件默认生成文件名称都是a.out
```
释义:
-v查看编译器版本
-o指定编译后生成的程序名
-Wall打开所有警告注意W是大写的意为 all Warning
## C语言程序由源代码到可执行程序的过程
预处理-->编译-->汇编-->链接
选项:-E -S -c -o
文件后缀:.i .s .o .elf
预处理阶段主要完成预处理工作:处理以#开头的代码,如将头文件(#include)展开,将宏定义(#define)进行替换,将预处理指令(#if)按条件进行增删代码。
编译阶段主要完成代码的编译工作:检查代码中的语法问题
汇编阶段主完成汇编编译代码工作:将代码编译为汇编编译程序(二进制文件)
链接阶段主要完成程序文件的链接工作:将程序中所使用的库文件进行连接,此时所产生的文件即是最终的可执行程序
![](images/WEBRESOURCE90052f7e84d296350dc684c5f8d9fe79image.png)

View File

@@ -0,0 +1,494 @@
# **1. 虚拟机VMware的网络配置**
虚拟机的网络适配器的模式有两种:
- 桥接模式使得虚拟机跟物理机一样各自拥有独立的IP地址
- NAT模式使得虚拟机直接共享物理机的IP自己本身没有独立的IP地址
![](images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png)
虚拟机VMware的网卡配置
以上两种模式都可以联网区别就是虚拟机要不要一个独立的IP。对于桥接模式需要注意必须要仔细选择桥接的物理网卡否则会出现无法联网的情形。
![](images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png)
虚拟网卡的桥接配置
## **1.1 桥接模式(推荐使用)**
所谓桥接,是指虚拟网卡通过物理机的某一个网络接口,直接连接到路由器去获取 
例如:
- 通过桥接到 WiFi 来联网。
- 通过桥接到 以太网 来连接开发板
如下图所示,在 
![](images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png)
![](images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png)
选择具体所需的桥接网卡
![](images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png)
**重置**
有时,如果网络参数经过多次配置导致无法再正确联网,可以通过点击下图中下方图表 
![](images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png)
## **1.2 NAT模式**
如果虚拟机不需要单独的IP地址那么可以通过 
![](images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png)
选择具体所需的桥接网卡
此时的虚拟网卡 
## **1.3 仅主机模式**
有时限于外部网络的局限性在Ubuntu无需联外网而需与宿主机Windows通信时将 VMware 虚拟网卡配置为
![](images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png)
仅主机模式
在此模式中,虚拟网卡 
![](images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png)
VMnet1虚拟路由
从上图可以看到,
![](images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png)
VMnet1虚拟路由
有了各自的 
[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)
# **2. Ubuntu网络配置**
## 终端命令配置
给虚拟机 VMware 选择了某一种联网模式后一般还需要给客户机即Ubuntu主机配置好如下网络参数才能正常联网
- 网卡名称
> eth0
> ens33
> ens32
- IP地址
> 在当前路由下所获得的主机IPIPv4 IPv6//192.168.2.x
- 子网掩码
> A类IP255.0.0.0
> B类IP255.255.0.0
> C类IP255.255.255.0 //现使用
- 网关地址
> 当前路由的地址192.168.2.1
- DNS域名解析服务
[国内/国外公共DNS服务器地址(Ipv4/Ipv6)大全 (config.net.cn)](https://config.net.cn/tools/Dns.html)
## **2.1 经典Linux网络配置**
**Ubuntu24.04配置流程详见本教程第4节**
在 
1. 设置固定IP
```bash
gec@ubuntu:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 169.254.54.200 # IP地址根据具体的网络环境来写
netmask 255.255.0.0 # 子网掩码
gateway 169.254.54.1 # 网关地址
gec@ubuntu:~$
gec@ubuntu:~$
```
1. 设置动态IP自动获取IP
```bash
gec@ubuntu:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet dhcp
gec@ubuntu:~$
gec@ubuntu:~$
```
**注意1**
一般而言只有在虚拟机设定为桥接模式下才需要配置Ubuntu的网络参数信息如果虚拟机设定的是NAT模式那么一般直接重启网络服务让其自动获取网络参数即可。
**注意2**
以上示例以虚拟网卡 
```bash
安装ifconfig
sudo apt install net-tools
```
![](images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png)
ifconfig命令查看当前活跃的网卡名称
**重启网络服务**
```
# Ubuntu-14.04以前的版本:
gec@ubuntu:~$ sudo /etc/init.d/networking force-reload
gec@ubuntu:~$ sudo /etc/init.d/networking restart
# Ubuntu-14.04以后的版本:
gec@ubuntu:~$ sudo service networking force-reload
gec@ubuntu:~$ sudo service networking restart
```
**注意**
在更新的Ubuntu-17.10以后的版本中网络配置用的是 netplan 命令而不是上述命令。
**测试网络**
有两个命令可以测试网络是否连通:
一、执行 
```
gec@ubuntu:~$ ping www.qq.com
```
ping外网测试网络是否通畅
![](images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png)
二、执行 
```
gec@ubuntu:~$ host www.qq.com
www.qq.com is an alias for public-v6.sparta.mig.tencent-cloud.net.
public-v6.sparta.mig.tencent-cloud.net has address 14.18.175.154
public-v6.sparta.mig.tencent-cloud.net has address 113.96.232.215
public-v6.sparta.mig.tencent-cloud.net has IPv6 address 240e:ff:f101:10::15f
gec@ubuntu:~$
```
- 注意:
- host成功返回域名的IP地址代表当前网络是通的。
- host成功返回域名的IP地址代表当前系统的DNS解析是正常的。
**DNS配置**
DNSDomain Name Server即域名服务器访问网址时必须通过 DNS 解析为对应的IP地址才能正常访问网站。在以上测试命令中如果ping成功但host不成功代表当前电脑的DNS配置有问题。
**配置 **
```
gec@ubuntu:~$ sudo cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver x.x.x.x
options edns0 trust-ad
gec@ubuntu:~$
```
具体域名服务器的IP地址 
![](images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png)
宿主机windows的DNS配置
**重启 **
```
gec@ubuntu:~$ sudo service systemd-resolved restart
```
**查看、启停网络接口**
使用命令 
```
gec@ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe80:949c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:80:94:9c txqueuelen 1000 (Ethernet)
RX packets 2020 bytes 266623 (266.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8299 bytes 548748 (548.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 37191 bytes 2722682 (2.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37191 bytes 2722682 (2.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
```
**注意**
- lo是Linux系统的本地回环设备此设备需如上所示已启动方可连网。
- 若某些网卡由于某些原因未启动,则可使用如下命令来解决:
- 使用 ifconfig -a 来查看所有的网络接口
- 使用 ifconfig 网卡名称 up 来启动指定的网卡。
**启停指定的网络接口(网卡)**
```
gec@ubuntu:~$ sudo ifconfig ens33 up ==> 启用ens33
gec@ubuntu:~$ sudo ifconfig ens33 down ==> 停用ens33
```
在某些系统中,以上命令也可以用如下命令替代:
```
gec@ubuntu:~$ sudo ifup ens33 ==> 启用ens33
gec@ubuntu:~$ sudo ifdown ens33 ==> 停用ens33
```
**临时指定的网口IP地址**
与编辑 
```
gec@ubuntu:~$ sudo ifconfig ens33 192.168.1.103
```
**指定默认网关**
在某些情况下Ubuntu无法正确找到网关从而导致无法连网可以手动配置网关地址
```
gec@ubuntu:~$ sudo route add default gw 192.168.1.1
```
网关地址根据各个局域网的配置不同而有所改变不能照抄上述地址网关地址一般而言就是当前局域网的路由器的地址可以从宿主机windows的网络配置化中查看
![](images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png)
[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)宿主机windows的DNS配置[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)
## **2.2 Netplan网络配置**
在17.10之前的老版本Ubuntu中配置网络可能有多种手段可以直接使用systemd或者配置 
通过统一对 
**自动获取IP**
以下的配置信息展现了如何使用 
```
gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: yes
dhcp6: yes
gec@ubuntu:~$
gec@ubuntu:~$
```
说明:
- renderer指定yaml文件针对配置的网络工具
- ethernets配置以太网
- ens33以太网口名称
- dhcp4自动获取IPv4的网络地址
- dhcp6自动获取IPv6的网络地址
注意:
- 冒号后面必须有空格
- 缩进的空格数必须一致
**设定静态IP**
```
gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: no
addresses: [192.168.100.100/24]
gateway4: 192.168.100.1
nameservers:
addresses: [202.96.134.133, 8.8.8.8]
gec@ubuntu:~$
gec@ubuntu:~$
```
说明:
- [192.168.100.100/24] 中的24代表设定的IP地址的前24比特位为子网掩码也就是255.255.255.0
- nameservers 代表 DNS 服务器
**使能netplan**
配置完 
```
gec@ubuntu:$ sudo netplan apply
```
# 3.ssh网络协议使用
SSHSecure Shell安全外壳协议是一种用于加密远程登录和网络服务的网络协议主要作用是在不安全的网络环境中为计算机之间的通信提供安全的加密通道避免数据传输被窃听或篡改。
## 在Ubuntu安装SSH服务
1. 远程登录Ubuntu系统终端
ssh协议进行登录
(1) 配置Ubuntu支持ssh服务
 检查系统是否启动ssh服务ps -e | grep ssh
![](images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png)
 若系统没有启动SSH服务则需要安装ssh服务
sudo   apt  install   ssh -y
(2) 查看自己Ubuntu的IP
![](images/WEBRESOURCEf40b82d71f114aeba01e4f33e6783646localFile.png)
(3) 打开一个终端
使用vscode中终端的ssh指令来登录Ubuntu
ssh [user@ip](http://user@ip)
user :用户名
ip:ubuntu的IP
输入指令ssh  自己的用户名称@自己Ubuntu系统的IP地址
![](images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png)
![](images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png)
1. 文件传输
下载文件:
scp <用户名>@<ssh服务器地址>:<文件> <本地文件路径>
```shell
scp root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件到本地的/opt目录中
```
文件夹:
scp -r <用户名>@<ssh服务器地址>:<文件> <本地文件路径>
```shell
scp -r root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件夹到本地的/opt目录中
```
上传:
scp <本地文件名> <用户名>@<ssh服务器地址>:<上传保存路径>
```shell
scp text root@192.168.13.233:/opt #将本地的text文件上传到远程主机192.168.13.233的root用户的/opt目录中
```
例子:
scp ts root@192.168.13.233:/ //将本地文件ts传输到目标192.168.13.233)的/ 目录下
# 4.图形化界面IP地址修改推荐
主机WindowsIP固定
打开控制面板-->网络和Internet-->网络共享中心
![](images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png)
![](images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png)
**注意离开教室后使用有线网络是要将IPv4设置为自动获取方可上网**
UbuntuIP地址固定。虚拟机的网络设置要修改为桥接
设置-->网络-->设置-->IPv4-->手动
![](images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png)
DNS推荐使用192.168.2.1
![](images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png)
重启网络链接不上外网则将DNS改为192.168.2.1

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Some files were not shown because too many files have changed in this diff Show More