嵌入式学习第21天Linux基础
目录
第1章 Linux 系统介绍
1.1 Unix 操作系统(了解)
1.2 Linux 操作系统(了解)
1.3 Linux 操作系统的主要特性(重点)
1.4 Linux 与 Unix 的区别与联系
1.5 GUN 与 GPL(了解)
1.6 操作系统的概念&常见操作系统
1.7 Ubuntu 操作系统
第2章 Linux 环境搭建
第3章 Ubuntu 操作系统目录以及路径介绍
3.1 目录结构
3.2 路径分类
第4章 Linux/shell 指令(重点)
4.1 终端提示符
4.2 用户管理类指令
4.3 磁盘管理类
4.4 系统相关指令
4.5 网络相关指令
第5章 主函数传参(重点)
5.1 主函数传参
编辑5.2 函数名:atoi()
第1章 Linux 系统介绍
1.1 Unix 操作系统(了解)
Unix 诞生于 20 世纪 70 年代,由 AT&T 开发。最初,Unix 是免费提供的,然而随着其在市场上的占用率逐渐提高,开始转为收费模式。Unix 系统具有强大的稳定性和可靠性,在当时的计算机领域产生了深远的影响。
1.2 Linux 操作系统(了解)
Linux 继承了 Unix 的设计思想,开发出了一个全新的操作系统。其全称为 GNU/Linux,支持 POSIX 标准,是一个多用户、多进程、多线程的操作系统。Linux 能够运行大多数的 Unix 软件,这使得它在兼容性方面表现出色。。
1.3 Linux 操作系统的主要特性(重点)
Linux 最为突出的特性之一就是 “一切皆文件”。
在 Linux 系统中,无论是硬件设备、目录结构还是各种配置文件,都被视为文件进行管理。这种设计理念使得系统的管理和操作更加统一和简洁。例如,对硬件设备的访问可以通过文件操作的方式进行,大大简化了设备管理的复杂性。
1.4 Linux 与 Unix 的区别与联系
Linux 是一个类 Unix 操作系统,虽然它在很多方面与 Unix 相似,但 Linux 的底层代码是完全独立编写的。Linux 的出现主要是因为 Unix 开始收费。这两个操作系统在很多方面表现出高度的相似性,掌握了 Linux 的开发方法后,在 Unix 上进行开发也会相对容易。
1.5 GUN 与 GPL(了解)
GNU 是一个针对 Unix 的软件项目运动,其目标是创建一个完全自由、开源、免费的操作系统。
GPL(General Public License)是一种协议,所有在 Linux 操作系统上开发的软件,都可以选择遵循这个协议,同意将软件开源。这种开源的理念促进了 Linux 生态系统的繁荣发展。
1.6 操作系统的概念&常见操作系统
操作系统本质上也是一个软件,但它具有特殊的地位,能够管理和协调计算机的软硬件模块工作。常见的操作系统有 Windows、Linux 和鸿蒙等。
Windows 的核心代码不开源,开发主要基于应用程序层面。
Linux 的核心代码开源,开发者可以基于系统核心进行开发,从而更好地掌握系统的核心技术。
鸿蒙系统逐步开源,致力于实现万物互联,能够对所有的软硬件进行统一平台管理。
1.7 Ubuntu 操作系统
Ubuntu 是 Linux 的一个发行版,属于 Linux 的衍生品,并且是免费提供的。它以其易用性和丰富的软件包资源而受到广泛欢迎。
第2章 Linux 环境搭建
可以延用前几天搭建的环境,如果磁盘大小比较小建议重新搭建 重新搭建参考Linux第1天
第3章 Ubuntu 操作系统目录以及路径介绍
3.1 目录结构
/ 根目录
├dev/ 设备文件
├mnt/ 临时挂载
├root/ root 用户的$HOME 目录
├home/
│ ├user/ 普通用户的$HOME 目录
│ └.../
├lib/ 系统程序库文件
├etc/ 系统程序和大部分应用程序的全局配置文件
│ ├init.d/ SystemV 风格的启动脚本
│ ├network/ 网络配置文件
其中,
- /:根目录,是整个文件系统的起点。
- dev/:存放设备文件。这里包含了系统中所有的设备节点,例如硬盘、光驱、打印机等设备在这个目录下都有对应的文件表示。通过对这些设备文件的操作,可以实现对硬件设备的访问和控制。
- mnt/:用于临时挂载外部存储设备或文件系统。当需要访问外部存储介质(USB闪存、移动硬盘)时,可以将其挂载到这个目录的某个子目录下,以便于进行文件的读取和写入操作。
- root/:root用户的主目录($HOMEMU)。root用户是系统的超级用户,具有最高的权限。这个目录下存放着root用户的个人配置文件、文档。(管理员用户)
- home/:普通用户的主目录所在位置
- user/:普通用户的主目录。每个用户在这个目录下都有一个有自己用户名命名的子目录,用于存放个人的文件、设置等。
- .../:其他用户的主目录
- lib/:系统程序库文件存放处。这里包含了系统运行所需要的各种库文件,包括动态链接库和静态库。这些库文件为系统程序和应用程序提供了各种功能的支持。
- etc/:存放系统程序和大部分应用程序的全局配置文件
- init.d/:包含System V风格的启动脚本。这些脚本在系统启动和关闭过程中被执行,用于启动和停止各种系统服务。
- network/:网络配置文件所在目录。这里存放着网络相关的配置文件,如网络接口配置、网络协议配置等,用于设置和管理系统的网络连接。
3.2 路径分类
绝对路径:从根目录起始
相对路径:从当前目录起始
特殊路径:
/ 根目录
. 当前目录
.. 上一级目录
~ 当前用户的主目录 简化路径
第4章 Linux/shell 指令(重点)
4.1 终端提示符
cry 用户名
yuchen 计算机名
~/record/1110 当前所在的路径
@ : $ 间隔符
4.2 用户管理类指令
4.2.1 sudo 管理员权限下放
一般用于指令需要管理员权限执行时在指令前添加
4.2.2 su 切换用户
- su 用户名
4.2.3 passwd 修改密码
- passwd 用户名
- passwd -d 用户名 让密码失效
4.2.4 adduser 新增用户
- adduser 用户名
可以连续按回车,放弃设置密码,只创建用户
但是使用用户时需要设定密码进行激活
4.2.5 userdel 删除用户
- sudo userdel -r 用户名
从这里可以看出在删除用户时,需要先exit退出要删除的用户。执行删除指令后,再次输入删除执行会提示,用户已不存在。
4.3 磁盘管理类
4.3.1 ls 查看路径下的信息
- ls -a 查看所有文件 以.开头的文件名是隐藏文件
- ls -l 查看详细信息
文件类型:
- 普通文件
d 目录文件
p 管道文件
l 链接文件
s 套接字文件
c 字符设备文件
b 块设备文件
- ls -i
查看文件的 inode (文件的身份证号)
4.3.2 chmod 修改文件权限
- chmod 777 1.c
为1.c添加所有读写执行权限
- chmod +/-八进制 文件名
chmod +002 1.c
a 所有用户 u 文件属主 g 用户组 o 其他用户
r 读 w 写 x 执行
chmod a+x 1.c
所有用户添加执行权限
chmod o-r 1.c
限制其他用户的读权限
4.3.3 ln 创建链接文件
硬链接 两个文件同步修改,但是删除其中一个不会影响另一个的使用
ln 1.c 2.c //两个文件的inode 相同
软链接 快捷方式,源文件被删除,快捷方式无法使用
ln -s 1.c 3.c //inode 不相同
4.3.4 cd 路径跳转
4.3.5 pwd 查看当前的绝对路径
4.3.6 touch 创建文件
- touch 文件 1 文件 2
4.3.7 gedit 打开文件
- gedit 文件 1 文件 2
4.3.8 mkdir 创建目录
- mkdir 目录 1 目录 2
- mkdir -p 目录 1/子级目录 2
4.3.9 rm 删除文件/目录
- rm -r 目录名
- rm -f
4.3.10 通配符 *和?
- * 匹配一个字符串
- ? 匹配一个字符
4.3.11 重定向符 >和>>
- > 重定向到文件中,新建文件
- >> 重定向到文件中,追加信息
4.3.12 cat 查看文件内容
4.3.13 echo
用于在终端中显示指定的字符串。
echo 字符串 > 文件
会将指定的字符串重写(覆盖)到指定的文件中。
echo 字符串 >> 文件
则会将指定的字符串追加到指定文件的末尾。
4.3.14 cp 复制
- cp 源文件 目标文件
4.3.15 mv 剪切/重命名
- mv 源文件 目标文件
4.3.16 tar 压缩/解压
tar -cvf 压缩文件名.tar 压缩的目录 压缩
tar -xvf 压缩文件名.tar 解压到当前目录 归档文件
4.3.17 clear 清屏
4.3.18 history 查看历史操作指令
- !行号
执行该行指令
4.4 系统相关指令
4.4.1 ps查看系统中的进程状态信息
- ps
PID 进程号
TTY 执行终端
TIME 执行时间
CMD 执行指令
- ps -ef
会以全格式显示进程信息,包括进程的 UID(用户 ID)、PID(进程 ID)、PPID(父进程 ID)、C(CPU 使用率)、STIME(进程启动时间)、TTY(终端设备)、TIME(进程累计使用 CPU 的时间)、CMD(启动进程的命令)等。
- ps –aux
则会显示系统中所有用户的进程详细信息,包括 USER(用户名)、PID、% CPU(CPU 使用率)、% MEM(内存使用率)、VSZ(虚拟内存大小)、RSS(实际内存使用量)、TTY、STAT(进程状态)、START(进程启动时间)、TIME(进程使用的 CPU 时间)、COMMAND(启动进程的命令)等。
4.4.2 top 查看进程动态,退出按 q
4.4.3 kill 给进程发送一个信号
- kill -9 PID 杀死进程
( 表示向指定进程 ID(PID)的进程发送编号为 9 的信号,强制终止该进程。
信号 9 即 SIGKILL
,是一个不能被捕获或忽略的信号。当一个进程接收到这个信号时,会立即被终止,不会进行任何清理和保存操作。)
4.5 网络相关指令
4.5.1 ping 检测网络联通性
- ping www.baidu.com
执行 ping www.---.com
时,它会向 www.---.com
发送一系列的网络数据包,并等待接收响应。
输出通常会包括发送的数据包数量、接收到的响应数量、丢失的数据包数量,以及每个数据包往返的时间(延迟)等信息。通过这些信息,可以大致了解到设备与 www.baidu.com
之间的网络连接质量。
4.5.2 ifconfig
使用该指令,需要安装网卡工具
其中,展示了IPv4地址、子网掩码等配置信息。
4.5.3 apt-get
- 在线安装 sudo apt-get install -x-x-
- 在线卸载 sudo apt-get remove -x-x-
4.5.4 dpkg
离线安装 .deb 安装包
- 安装指令 sudo dpkg -i 安装包
- 卸载指令 sudo dpkg -r 安装包名
第5章 主函数传参(重点)
5.1 主函数传参
执行程序时进行传参
./a.out 1 abc hello xy 456
#include <stdio.h>
int main(int argc,char *argv[])
{printf("argc=%d\n",argc);for(int i=0;i<argc;i++){printf("argv[%d]=%s\n",i,argv[i]);}return 0;
}
5.2 函数名:atoi()
#include <stdlib.h>
函数原型:int atoi(const char *nptr);
函数功能:把数字字符串转换为整数
函数参数:提供数字字符串首地址
函数返回值:返回整数
函数使用:
int a = atoi(“123”); // 字符串 123 转整型 123
printf(“%d\n”,a); // 输出 123
相关文章:

嵌入式学习第21天Linux基础
目录 第1章 Linux 系统介绍 1.1 Unix 操作系统(了解) 1.2 Linux 操作系统(了解) 1.3 Linux 操作系统的主要特性(重点) 1.4 Linux 与 Unix 的区别与联系 1.5 GUN 与 GPL(了解) …...

【activiti工作流源码集成】springboot+activiti+mysql+vue+redis工作流审批流集成整合业务绑定表单流程图会签驳回
工作流集成实际项目案例,demo提供 源码获取方式:本文末个人名片直接获取。 前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvue…...

华为私有接口类型hybrid
华为私有接口类型hybrid Tip:hybrid类型,简称混合型接口。 本次实验模拟2层网络下 vlan10 vlan20 不能互访,vlan10 vlan20 同时可以访问vlan100 sw1配置如下: <Huawei>sy [Huawei]sys sw1 [sw1]vl ba 10 20 100 [sw1]int…...

计算机的错误计算(一百五十)
摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 ()附近数时,输出会有错误数字。 例1. 已知 计算 直接贴图吧: 另外,16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…...

【模块化大作战】Webpack如何搞定CommonJS与ES6混战(3)
在前端开发中,模块化是一个重要的概念,不同的模块化标准有不同的特点和适用场景。webpack 同时支持 CommonJS 和 ES6 Module,因此需要理解它们在互操作时 webpack 是如何处理的。 同模块化标准 如果导出和导入使用的是同一种模块化标准&…...

工程认证与Spring Boot:计算机课程管理的新探索
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足,创建了一个计算机管理基于工程教育认…...
vue3的自定义hooks怎么写?
写个hook函数去追踪鼠标位置: 没用hook前: <script setup> import { ref, onMounted, onUnmounted } from vueconst x ref(0) const y ref(0)function update(event) {x.value event.pageXy.value event.pageY }onMounted(() > window.ad…...
SpringBoot项目编译报错 类文件具有错误的版本 61.0, 应为 52.0
springboot项目在编译时报错: /Users/Apple/Developer/art/caicai/cai-api/dubbo-samples/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java:22:32 java…...

【网络】应用层——HTTP协议
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是HTTP协议。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自:网络 &g…...

ServletContext介绍
文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象,…...

让AI帮我用java实现EasyExel读取图片—支持WPS嵌入图片
🌈 场景概述 java 小伙伴相信都使用 EasyExcel 以及 POI 库实现过 Excel 批量导入、导出功能,但只有部分人实现过 excel 导入带图片数据的场景。这个技术实现手段网上也有很多案例和demo,最常见的就是通过 XSSFPictureData 来实现。但是在 W…...

C# 实现对指定句柄的窗口进行键盘输入的实现
在C#中实现对指定句柄的窗口进行键盘操作,可以通过多种方式来实现。以下是一篇详细的指南,介绍如何在C#中实现这一功能。 1. 使用Windows API函数 在C#中,我们可以通过P/Invoke调用Windows API来实现对指定窗口的键盘操作。以下是一些关键的…...

深度学习之卷积问题
1 卷积在图像中有什么直观作用 在卷积神经网络中,卷积常用来提取图像的特征,但不同层次的卷积操作提取到的特征类型是不相同的,特征类型粗分如表1所示。 表1 卷积提取的特征类型 卷积层次特征类型浅层卷积边缘特征中层卷积局部特征深…...
yum安装zabbix5.0升级php到74的办法
【背景】 公司时不时有扫描漏洞,之前发现了php漏洞,因开启防火墙,限定IP+端口,暂时躲过升级;现在,老话重提,开启了KPI考核,躲是躲不过去的了,升级吧 【难题】 服务器为centos7,因操作系统问题,只能安装zabbix5.0。当时图省力,官网的办法,都是yum安装,很是简便。…...

JavaWeb合集23-文件上传
二十三 、 文件上传 实现效果:用户点击上传按钮、选择上传的头像,确定自动上传,将上传的文件保存到指定的目录中,并重新命名,生成访问链接,返回给前端进行回显。 1、前端实现 vue3AntDesignVue实现 <tem…...

当AI遇上时尚:未来的衣橱会由机器人来打理吗?
内容概要 在当今这个快速发展的时代,人工智能与时尚的结合正在逐渐改写我们对衣橱管理的认知。传统的衣橱管理常常面临着空间不足、穿搭单调及库存过多等挑战,许多人在挑选服饰时难以做出决策。然而,随着技术的进步,智能推荐和自…...

【初阶数据结构篇】二叉树OJ题
文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗࿱…...

Windows系统中Oracle VM VirtualBox的安装
一.背景 公司安排了师带徒,环境搭建问题一直是初级程序员头疼的事情,我记录一下这些基础的内容,方便初学者。大部分开发者的机器还是windows系统,所以写了怎么安装。 二.版本信息及 操作系统:windows11 家庭版…...
go语言使用总结(持续更新)
整理后的内容如下: 1. 先了解函数签名,再了解传入参数以及调用 函数签名是函数的声明部分,包括函数名、参数列表和返回值列表。理解函数签名是理解函数行为的第一步,尤其是在了解参数类型、参数数量和返回值类型等方面。通过了解…...

如何在Android中自定义property
在Android中创建自定义的属性(Android property)通常用于调试、性能调优或传递应用和系统之间的信息。 以下是如何在Android中创建和使用自定义属性的步骤: 1. 定义属性 在Android中,属性是以“属性名称属性值”形式定义的键值对…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...