嵌入式学习第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 终端提示符

1155ca2608044ff5824455c683a49556.png

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 用户名

b5ed7125da8d47cc931b95d6e5ea40c2.png

可以连续按回车,放弃设置密码,只创建用户

但是使用用户时需要设定密码进行激活

f88c6f115ff348ebbf87e2586ac2ca65.png

4.2.5 userdel 删除用户

  • sudo userdel -r 用户名

c07372ee7fcc482e8e13dd82bf1c4b7b.png

从这里可以看出在删除用户时,需要先exit退出要删除的用户。执行删除指令后,再次输入删除执行会提示,用户已不存在。

4.3 磁盘管理类

4.3.1 ls 查看路径下的信息

  • ls -a 查看所有文件        以.开头的文件名是隐藏文件
  • ls -l 查看详细信息

90765a789fe540b8963360c455dbecd9.png

文件类型:

- 普通文件

d 目录文件

p 管道文件

l 链接文件

s 套接字文件

c 字符设备文件

b 块设备文件

  • ls -i

查看文件的 inode (文件的身份证号)

7aaa58e497f14f258d76aae474c6b01a.png

4.3.2 chmod 修改文件权限

  • chmod 777 1.c

为1.c添加所有读写执行权限

  • chmod +/-八进制 文件名

dd96292df48f4fffadc92b27da0159c3.png

chmod +002 1.c        

b23faf7944494e1eaf1a33988e808161.png

a 所有用户         u 文件属主         g 用户组         o 其他用户

r 读         w 写         x 执行

chmod a+x 1.c

所有用户添加执行权限

25c6700a878449af8fe2d51c9a4aa398.png

chmod o-r 1.c

限制其他用户的读权限

72a842882cd94d44aaa7991155260ba3.png

4.3.3 ln 创建链接文件

硬链接 两个文件同步修改,但是删除其中一个不会影响另一个的使用

c873f2756ba34f0abcddda6a96fa7258.png

ln 1.c 2.c         //两个文件的inode 相同

软链接 快捷方式,源文件被删除,快捷方式无法使用

ln -s 1.c 3.c         //inode 不相同

8bbed2ac6f07450a846fc090bd0220c8.png

4.3.4 cd 路径跳转

ee0e675b89524ef38d518d26af2d148a.png

4.3.5 pwd 查看当前的绝对路径

7e7a8207e1324c25a7364a2eb8d5da65.png

4.3.6 touch 创建文件

  • touch 文件 1 文件 2

492dfc722c8a4adc93a4556737198f6f.png

4.3.7 gedit 打开文件

  • gedit 文件 1 文件 2

4.3.8 mkdir 创建目录

3a195fac2b0842289eee2e1a79a1d131.png

  • mkdir 目录 1 目录 2

314aec5a67884c0a868187dffc98c497.png

  • mkdir -p 目录 1/子级目录 2

4.3.9 rm 删除文件/目录

  • rm -r 目录名

bb1ea845d83f450e925efab94aa281ab.png

  • rm -f

39671c8e2f6e4a55a88f331639be7505.png

4.3.10 通配符 *和?

  • * 匹配一个字符串

4fc1f2897b354636a2670dcf9aa862ac.png

  • ? 匹配一个字符

ba57537cc771415c95d2dffc9fe1f259.png

4.3.11 重定向符 >和>>

  • > 重定向到文件中,新建文件
  • >> 重定向到文件中,追加信息

4.3.12 cat 查看文件内容

0a5a808f3d7242d3b072d12a49960c2e.png

4.3.13 echo

用于在终端中显示指定的字符串。

  • echo 字符串 > 文件 

会将指定的字符串重写(覆盖)到指定的文件中。

0e5baf6a8d154b9e9fecbb4b9d195b7c.png

  • echo 字符串 >> 文件

 则会将指定的字符串追加到指定文件的末尾。

457a627d97c04914a897c5be7316737a.png

4.3.14 cp 复制

  • cp 源文件 目标文件

ee2e8d5307e8400bbd874334cdb3b549.png

4.3.15 mv 剪切/重命名

  • mv 源文件 目标文件

36b3d08ace8447ec86239323baa945c3.png

4.3.16 tar 压缩/解压

tar -cvf 压缩文件名.tar 压缩的目录         压缩

6c976792ac464cac9374da1eff6749b8.png

tar -xvf 压缩文件名.tar 解压到当前目录         归档文件

8b97c4da579741b19553a319f2f1dc5d.png

4.3.17 clear 清屏

4.3.18 history 查看历史操作指令

3dbd2ce139674f3e9b97059d1eb63440.png

  • !行号

执行该行指令

dba508b7be894f82a584fd90ee691833.png

4.4 系统相关指令

4.4.1 ps查看系统中的进程状态信息

  • ps

cc48636b3b9d4affb22ed39e50461690.png

PID 进程号

TTY 执行终端

TIME 执行时间

CMD 执行指令

  • ps -ef

会以全格式显示进程信息,包括进程的 UID(用户 ID)、PID(进程 ID)、PPID(父进程 ID)、C(CPU 使用率)、STIME(进程启动时间)、TTY(终端设备)、TIME(进程累计使用 CPU 的时间)、CMD(启动进程的命令)等。

d890786740974bd2a69cf16e535576e1.png

  • ps –aux

则会显示系统中所有用户的进程详细信息,包括 USER(用户名)、PID、% CPU(CPU 使用率)、% MEM(内存使用率)、VSZ(虚拟内存大小)、RSS(实际内存使用量)、TTY、STAT(进程状态)、START(进程启动时间)、TIME(进程使用的 CPU 时间)、COMMAND(启动进程的命令)等。

b6089e447e9644df869c2558d9276d8f.png

4.4.2 top 查看进程动态,退出按 q

e8210797c3ed4dcc9f4593a71f313b68.png

4.4.3 kill 给进程发送一个信号

  • kill -9 PID 杀死进程

( 表示向指定进程 ID(PID)的进程发送编号为 9 的信号,强制终止该进程。

信号 9 即 SIGKILL ,是一个不能被捕获或忽略的信号。当一个进程接收到这个信号时,会立即被终止,不会进行任何清理和保存操作。)

4.5 网络相关指令

4.5.1 ping 检测网络联通性

  • ping www.baidu.com

ee3c974ddb5c49279624e2b3e5318fb7.png

执行 ping www.---.com 时,它会向 www.---.com 发送一系列的网络数据包,并等待接收响应。

输出通常会包括发送的数据包数量、接收到的响应数量、丢失的数据包数量,以及每个数据包往返的时间(延迟)等信息。通过这些信息,可以大致了解到设备与 www.baidu.com 之间的网络连接质量。

4.5.2 ifconfig

使用该指令,需要安装网卡工具

89bf4423f2324641b47ebb1bfc3e3ea7.png

e20649ce672341bab3a2032f1af117bc.png

 其中,展示了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 安装包名

2ccdc89a20224d798f65e7ac156ef2e7.png

第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;
}

a9f2d97c23774fd08e38c3c49224d3be.png5.2 函数名:atoi()

#include <stdlib.h> 

函数原型:int atoi(const char *nptr);

函数功能:把数字字符串转换为整数

函数参数:提供数字字符串首地址

函数返回值:返回整数

函数使用:

int a = atoi(“123”); // 字符串 123 转整型 123 
printf(“%d\n”,a); // 输出 123

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小程序安全】小程序反编译

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 0x01 前期准备 知识点准备-小程序结构 1.主体结构 小程序包含一个描述整体程序的 app 和多个描述各自页…

C++ : STL容器(适配器)之stack、queue剖析

STL容器适配器之stack、queue剖析 一、stack、queue的接口&#xff08;一&#xff09;stack 接口说明&#xff08;二&#xff09;queue 接口说明 二、stack、queue的模拟实现&#xff08;一&#xff09;stack、queue是容器适配器stack、queue底层默认容器--deque1、deque概念及…

Kubernetes的基本构建块和最小可调度单元pod-0

文章目录 一&#xff0c;什么是pod1.1pod在k8s中使用方法&#xff08;1&#xff09;使用方法一&#xff08;2&#xff09;使用方法二 1.2pod中容器的进程1.3pod的网络隔离管理&#xff08;1&#xff09;pause容器的作用 1.4 Pod分类&#xff1a;&#xff08;1&#xff09;自主式…

【CUDA】认识CUDA

目录 一、CUDA编程 二、第一个CUDA程序 三、CUDA关键字 四、device管理 4.1 初始化 4.2 Runtime API查询GPU信息 4.3 决定最佳GPU CUDA C 编程指南CUDA C在线文档&#xff1a;CUDA C 编程指南 CUDA是并行计算的平台和类C编程模型&#xff0c;能很容易的实现并行算法。只…

知识中台如何在精简供应链管理中发挥作用?

您如何与供应商沟通并分享您的最佳实践&#xff1f;您如何确保供应商了解您的基准&#xff1f;如果您正在为这些问题烦恼&#xff0c;请不要担心&#xff0c;本文章将为您提供宝贵的见解。 构建具备弹性的供应链模型&#xff0c;其关键在于知识中台的数据质量。若缺乏数据支撑…

Python 在PDF中绘制形状(线条、矩形、椭圆形等)

在PDF中绘制图形可以增强文档的视觉效果。通过添加不同类型的形状&#xff0c;如实线、虚线、矩形、圆形等&#xff0c;可以使文档更加生动有趣&#xff0c;提高读者的阅读兴趣。这对于制作报告、演示文稿或是教材特别有用。本文将通过以下几个示例介绍如何使用Python 在PDF中绘…

Gitlab-执行器为Kubetnetes时的注意事项,解决DNS解析问题

一、Gitlab-Runner 这里对于Runner的理解非常重要。 具体执行ci流水线的叫执行器。执行器可以部署是shell、docker、k8s的pod.执行完任务则生命周期结束。 管理执行器的叫Gitlab-Runner。Runner则是与Gitlab Server的Ci agent.(可以简单这么理解) 二、执行器为Kubetnetes时,DN…

大数据新视界 -- 大数据大厂之 Impala 性能优化:新技术融合的无限可能(下)(12/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

讨论一个mysql事务问题

最近在阅读一篇关于隔离级别的文章&#xff0c;文章中提到了一种场景&#xff0c;我们下面来分析一下。 文章目录 1、实验环境2、两个实验的语句执行顺序3、关于start transaction和start transaction with consistent snapshot4、实验结果解释4.1、实验14.2、实验24.3、调整实…

json绘制热力图

首先需要一段热力信息的json&#xff0c;我放在头部了。 然后就是需要de-geo库了。 实现代码如下&#xff1a; import * as d3geo from d3-geoimport trafficJSON from ../assets/json/traffic.jsonlet geoFun;// 地理投影函数// let info {max: Number.MIN_SAFE_INTEGER,mi…

K8S之Prometheus 部署(二十)

部署方式&#xff1a;https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus 源码目录&#xff1a;kubernetes/cluster/addons/prometheus 服务发现&#xff1a;https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kube…

kafka中节点如何服役和退役

服役新节点 1&#xff09;新节点准备 &#xff08;1&#xff09;关闭 bigdata03&#xff0c;进行一个快照&#xff0c;并右键执行克隆操作。 &#xff08;2&#xff09;开启 bigdata04&#xff0c;并修改 IP 地址。 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改完记…

【Three.js基础学习】21.Realistic rendering

前言 课程回顾 渲染器 1.色调映射 值意在将高动态范围](HDR)值转换为低动态范围(LDR) Three.is中的色调映射实际上会伪造将LDR转换为HDR的过程&#xff0c;即使颜色不是HDR&#xff0c; 结果会产生非常逼真的渲染效果 THREE .NoToneMapping (default) 无色调映射 THREE.Linear…

ORB_SLAM3安装

ORB_SLAM3安装 一.前期准备1.1ubuntu查看当前版本的命令1.2 根据ubuntu版本&#xff0c;更新下载软件源1.3 先下载git1.4 vim语法高亮1.5 常见的linux命令 二.ORB-SLAM3下载2.1 ORB_SLAM3源码下载2.2 安装依赖库2.2.1 依赖库2.2.2 安装pangolin2.2.3 安装opencv2.2.4 Eigen3安装…

无需云端!国产开源大语言模型llama.cpp本地实战

作者&#xff1a;高瑞冬 注&#xff1a; 文章是2023年底写的。代码和运行方式虽有些旧&#xff0c;但基本原理一样。现在出来ollama&#xff0c;vllm等工具框架用来本地部署大模型&#xff0c;顺便更新一下。 [TOC](最后有彩蛋) 背景 上海人工智能实验室与商汤科技…

横向思维导图前端样式

追溯记录图路上 代码如下 index.vue <template><div style"margin-left: 5%;margin-top: 6%"> <el-form style"margin-top: -5%; " :inline"true"><el-form-item label"药品名称"><el-select v-model&qu…

清华大学提出Mini-Omni2:开源多模态模型,功能与GPT-4o媲美!

&#x1f310; 在人工智能领域&#xff0c;多模态模型的发展正如火如荼。今天&#xff0c;我们要介绍的是由清华大学提出的Mini-Omni2&#xff0c;这是一个开源的多模态语言模型&#xff0c;它在功能上与GPT-4o相媲美&#xff0c;能够理解和生成视觉、听觉和文本内容&#xff0…

HarmonyOS入门 : 获取网络数据,并渲染到界面上

1. 环境搭建 开发HarmonyOS需要安装DevEco Studio&#xff0c;下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手&#xff0c;比如获取网络数据&#xff0c;并将其渲染到界面上。 本文就是基于…

msvcr100.dll丢失怎么解决?高效靠谱的六种解决方法分享

在我们使用电脑的时候&#xff0c;有一种叫动态链接库&#xff08;DLL&#xff09;的文件特别重要。比如&#xff0c;msvcr100.dll是Microsoft Visual C 2010 Redistributable包里的一部分&#xff0c;很多应用程序在运行的时候都需要用到它。但是&#xff0c;有些用户在使用的…

【C++练习】二进制到十进制的转换器

题目&#xff1a;二进制到十进制的转换器 描述 编写一个程序&#xff0c;将用户输入的8位二进制数转换成对应的十进制数并输出。如果用户输入的二进制数不是8位&#xff0c;则程序应提示用户输入无效&#xff0c;并终止运行。 要求 程序应首先提示用户输入一个8位二进制数。…