Linux学习笔记
文章平均质量分 77
Linux学习笔记
aFakeProgramer
Adaptive AUTOSAR技术专家,2024 AUTOSAR中国官方TOP培训讲师。深耕汽车电子软件领域,精通Adaptive AUTOSAR架构及RTA-VRTE工具链,实战经验丰富。深入掌握SOME/IP、IPC、DDS、DoIP、UDS、TSN等通信协议,熟悉SOA设计、V2X与车载网络安全。熟练使用C++和Python进行系统开发与集成,具备MQTT、加密机制等智能网联技术应用能力。致力于将复杂技术通俗化,推动汽车软件架构向服务化、智能化发展。持续分享Adaptive AUTOSAR、DDS、TSN及车载以太网等前沿技术实践,助力工程师快速掌握下一代汽车电子开发核心技能。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不懂 MMU,别再说你懂 Linux 内核了
Linux操作系统的内存管理是其核心功能之一,负责高效地分配和回收系统内存资源以满足应用程序的需求。在Linux内存管理中,物理内存与虚拟内存是两个最基本且关键的概念。物理内存指的是计算机硬件中实际存在的内存条所提供的存储空间,通常以字节为单位进行寻址。而虚拟内存则是一种抽象层,通过内存管理单元(MMU)和操作系统内核的配合,为每个运行进程提供独立的、连续的地址空间假象。这种虚拟地址空间并非完全对应于实际的物理内存,而是通过页表映射到物理内存或磁盘上的交换分区中。转载 2026-04-20 10:29:30 · 14 阅读 · 0 评论 -
现在的Linux发行版启动流程是什么样的?如Ubuntu 22.04+,Debian 10+
电源 → UEFI/BIOS → GRUB2 → 内核 + initramfs → 挂载根 → systemd(sysinit → basic → default.target)→ 登录 → 桌面 / 终端。原创 2026-03-02 09:04:33 · 491 阅读 · 0 评论 -
现代 Linux 发行版的Systemd Target是什么?
Target是 Systemd 中用于定义系统状态的单元(Unit)。它类似于传统 SysV init 中的Runlevel,但功能更强大、更灵活。一个 Target 本质上是一个同步点(Synchronization Point)。当系统启动到达某个 Target 时,Systemd 会确保该 Target 所依赖的所有服务(Service)、挂载点(Mount)、套接字(Socket)等都已经启动或就绪。核心区别:是串行的,必须按顺序执行脚本。:支持并行启动。原创 2026-03-02 08:55:46 · 559 阅读 · 0 评论 -
Linux系统有7个运行级别(runlevel)
在传统的SysV init初始化系统中,“运行级别(runlevel)”是 Linux 系统的一种工作模式或状态定义。它决定了系统启动时应加载哪些服务、是否允许用户登录、是否启用图形界面等。简单来说,runlevel 就是系统启动后的“预设场景”—— 比如你是要进命令行修机器?还是要进桌面办公?或者干脆关机重启?“运行级别”是传统 Linux 初始化系统(SysV init)中用来控制系统启动后行为的核心机制。原创 2026-03-02 08:47:10 · 540 阅读 · 0 评论 -
Linux 启动流程
上电重置 → BIOS/UEFI自检与引导 → GRUB2加载内核与initramfs → 内核初始化(start_kernel)→ 0号进程创建1/2号进程 → ramdisk挂载真实根文件系统 → 1号进程(systemd/init)启动系统服务 → fstab自动挂载设备 → 进入运行级别 → 用户登录理解这一流程,对于系统运维(如启动故障排查、内核参数调整)和底层开发(如驱动调试、进程管理)至关重要。原创 2025-12-09 15:03:22 · 969 阅读 · 0 评论 -
Linux环境变量,知识点汇总
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。环境变量本质就是一张表,保存在内存当中。该表在用户登录系统的时候,给用户生成的特定的环境变量表。环境变量的主要用途:身份认证动态库查找保存工作路径(pwd)特定路径查找保存特定变量值。转载 2025-11-07 11:08:10 · 71 阅读 · 0 评论 -
100 道 Linux 常见面试题(中),建议收藏,慢慢读~
例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。SQL 注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。原创 2025-10-27 11:02:58 · 806 阅读 · 0 评论 -
Linux 内核 GPIO 用户空间接口
GPIO(General Purpose Input/Output,通用输入/输出接口),是微控制器或微处理器上的引脚,可以被编程为输入或输出,用于与外部设备进行通信。在 Linux 系统中,通过内核提供的用户空间接口,开发者能够轻松地读取、设置 GPIO 的状态,实现对外部设备的控制和监测。本文将探讨的是 Linux 内核(kernel 4.8 版本起)基于字符设备的新接口,用于访问和管理用户空间中的 GPIO 线路。转载 2025-09-12 11:04:06 · 299 阅读 · 0 评论 -
在 Linux 系统中,使用 sudo ./x.sh 和以 root 用户身份直接运行 ./x.sh 的主要差异
根据需求选择合适的方式,若脚本依赖特定环境变量,推荐使用。和以 root 用户身份直接运行。或直接以 root 用户身份运行。在 Linux 系统中,使用。原创 2025-08-13 18:07:28 · 742 阅读 · 0 评论 -
VirtualBox中的Ubuntu共享Windows的文件夹
本文介绍了在Ubuntu系统中安装VirtualBox增强功能并配置共享文件夹的完整流程。首先强调安装增强功能模块的重要性,然后详细说明了在VirtualBox管理器中设置Windows宿主机C盘temp目录为共享文件夹的步骤。接着指导在Ubuntu终端创建挂载点并执行挂载命令,将共享目录映射到本地。最后提供了权限验证和问题解决方法,确保用户能在Ubuntu中顺利访问Windows系统的共享文件夹内容。整个过程涵盖了从基础配置到权限管理的完整操作指南。原创 2025-08-13 10:19:07 · 661 阅读 · 0 评论 -
Linux 文件IO与标准IO的区别解析
使用文件IO:当你需要精细控制I/O行为、访问底层设备或追求极致性能时(如嵌入式系统、操作系统开发)。使用标准IO:在大多数应用程序开发中,尤其是涉及文本处理、格式化输出时,标准IO更简洁、安全且可移植。掌握两者的差异,有助于根据实际需求选择合适的I/O编程模型。原创 2025-08-07 13:40:28 · 730 阅读 · 0 评论 -
Linux 2.4 进程调度机制深度解析
本文分析了Linux 2.4内核的调度机制,重点包括:1)schedule()函数实现进程切换流程,包含运行队列操作、进程选择算法和上下文切换;2)SMP负载均衡策略,通过reschedule_idle()为唤醒进程选择最优CPU;3)关键机制如时间片动态调整、进程相关性检测和IPI通信;4)架构差异处理。该调度器融合优先级与时间片指标,采用SMP感知设计,展现了多核调度的基础实现方案,虽已被现代调度器取代,但仍具教学参考价值。原创 2025-07-11 11:43:22 · 509 阅读 · 0 评论 -
如何在Linux系统中查看bin文件
这种方法适用于查看文本文件,但对于二进制文件可能会显示乱码。这种方法会以十六进制格式显示文件内容,适用于查看二进制文件。这种方法也会以十六进制格式显示文件内容。这种方法会提取并显示文件中的可读字符串。你可以根据需要选择合适的方法来查看。要在Linux系统中查看。原创 2024-12-06 11:32:36 · 1579 阅读 · 0 评论 -
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。转载 2024-11-15 16:31:14 · 213 阅读 · 0 评论 -
Terminator的分割终端功能确实非常实用,特别是当你需要同时监控多个任务时,快捷键来分割窗口
Terminator 是一款很酷的终端模拟器,可以为你提供这种功能。你可以在一个窗口中打开多个终端,并根据需要将它们纵向或横向分割。你还可以参考这篇文章了解更多关于终结者的信息--终结者--一款Linux终端模拟器。此外,Terminator还支持保存布局,这样你可以在下次启动时恢复之前的窗口配置。你有没有尝试过其他的高级功能,比如广播命令(在所有分割窗口中同时执行同一个命令)Terminator的分割终端功能确实非常实用,特别是当你需要同时监控多个任务时。代码语言:javascript。原创 2024-08-07 15:41:29 · 506 阅读 · 0 评论 -
CMake版本太低怎么办? CMake Error (cmake_minimum_required): CMake 3.20 or higher is required.
要解决这个问题,你需要将 CMake 升级到 3.20 或更高版本。并下载适用于你的操作系统的最新版本。原创 2024-08-02 10:07:20 · 4524 阅读 · 0 评论 -
Linux系统中创建进程有哪几种方式?会使用哪些API创建进程?各种方式有什么优缺点?
一、fork1. 调用方法正确返回:在父进程中返回子进程的进程号,在子进程中返回0错误返回:-12. fork函数调用的用途一个进程希望复制自身,从而父子进程能同时执行不同段的代码。与fork函数完全相同正确返回:在父进程中返回子进程的进程号,在子进程中返回0错误返回:-1用vfork创建的进程主要目的是用exec函数执行另外的程序。正确返回:返回所创建进程的PID,函数中的flags标志用于设置创建子进程时的相关选项。错误返回:-1。转载 2024-07-31 09:31:34 · 194 阅读 · 0 评论 -
显示系统中所有进程的详细信息,包括线程的调度算法
这个命令可以帮助你了解系统中各个进程的调度策略和优先级,便于进行性能调优和问题排查。用于显示系统中所有进程的详细信息。原创 2024-07-30 13:03:05 · 373 阅读 · 0 评论 -
Linux查看系统版本命令
Linux系统如何查看系统版本?转载 2024-07-30 09:33:54 · 6941 阅读 · 0 评论 -
在Ubuntu系统中如何查看一个文件夹的大小? 如何列出指定文件夹下所有子文件夹的大小?
参数则会以易于阅读的格式(例如KB、MB、GB)显示大小。命令来查看一个文件夹的大小。如果您想查看文件夹内各个子文件夹的大小,可以省略。替换为您想要检查大小的文件夹的实际路径。这将列出指定文件夹下所有子文件夹的大小。在Ubuntu系统中,您可以使用。参数表示汇总每个参数的大小,而。原创 2024-07-01 10:38:04 · 2568 阅读 · 0 评论 -
使用Linux命令时,前面加sudo和不加有什么区别?
(1) cmake的版本的更新以及和sudo cmake的区别 - CSDN博客. https://blog.csdn.net/moumde/article/details/106507154.(2) cmake的版本的更新以及和sudo cmake的区别 - CSDN博客. https://blog.csdn.net/moumde/article/details/106507154.如果您对`cmake`的使用有更多疑问,可以参考相关的[教程]或[文档]来获取更多信息。命令编译时,前面加上。原创 2024-05-08 11:24:42 · 1393 阅读 · 0 评论 -
如何在Ubuntu中保存shell窗口中的log?
这是一个简单的方法来记录您在终端中的所有活动,包括输入的命令和输出的结果。命令时的当前目录中。如果您想要在特定的目录中保存log文件,您需要在文件名前指定路径。命令之后,您可以执行任何终端命令。所有的输入和输出都会被记录到您指定的log文件中。在Ubuntu中保存shell窗口中的log,您可以使用script。: 当您完成终端活动并想要结束log记录时,只需输入。会话,并将记录的内容保存到您之前指定的文件中。请注意,log文件将保存在您执行script。是您想要保存log的文件名。这将结束script。原创 2024-05-08 10:54:47 · 908 阅读 · 0 评论 -
如何从Windows 10电脑远程登录Ubuntu系统
xrdp提供了几种不同的会话类型,每种类型都有其特定的用途和优势。在“远程桌面连接”窗口中,输入您之前记下的Ubuntu电脑的IP地址,然后点击“连接”。当被提示时,输入您的Ubuntu用户名和密码,然后您应该能够远程访问Ubuntu桌面。xRDP是一个开源的远程桌面协议服务器,允许您接受来自Windows的RDP连接。请确保在尝试连接之前,Ubuntu电脑没有被锁定或注销,因为这可能会导致连接问题。在Windows 10电脑上,打开“远程桌面连接”程序。记下与您的网络接口相关联的IP地址。原创 2024-05-07 17:21:32 · 2902 阅读 · 1 评论 -
Linux 认识与学习Bash——3
在Linux bash中,数据流重定向是指将命令的输出从默认的标准输出(通常是终端)重定向到其他位置,如文件或另一个命令的输入。这是通过使用特定的符号来实现的。例如,用于将输出重定向到文件,而用于将文件内容作为命令的输入。>>cal > hello #将hello这个文件清空,然后再把命令产生的内容写入文件cal>>hello #再hello这个文件内容后面追加输出的内容。cal2>hello #只能重定向错误的结果,即2>前面的命令是错误的&>#不管是正确的还是错误的都重定向过来。原创 2024-05-07 13:09:53 · 1020 阅读 · 0 评论 -
在Linux系统中炫酷的输出命令可以让终端看起来更有趣
q=Linux%e7%b3%bb%e7%bb%9f%e7%82%ab%e9%85%b7%e7%9a%84%e8%be%93%e5%87%ba%e5%91%bd%e4%bb%a4.(2) 十个效果酷炫的Linux系统操作指令(黑客帝国般的效果~)_linux下hollywood 能干吗-CSDN博客. https://blog.csdn.net/baidu_39629638/article/details/110232451.请注意,某些命令可能需要你的系统支持特定的软件包管理器,如`apt`。原创 2024-04-25 17:05:31 · 745 阅读 · 1 评论 -
你对Linux下的实时性应该多点了解
本文讲述一些有利于提高xenomai实时性的配置建议,部分针对X86架构,但它们的底层原理相通,同样适用于其他CPU架构和系统,希望对你有用。希望能够帮助大家。本文来自于微信公众号嵌入式Linux ,由火龙果软件Linda编辑、推荐。本文讲述一些有利于提高xenomai实时性的配置建议,部分针对X86架构,但它们的底层原理相通,同样适用于其他CPU架构和系统,希望对你有用。一、前言1. 什么是实时“实时”一词在许多应用领域中使用,人们它有不同的解释,并不总是正确的。转载 2022-12-09 13:16:31 · 2323 阅读 · 0 评论 -
Linux 认识与学习Bash——2
readonly hello #定义一个只读的变量hello。declare -r liu=888 #定义一个只读的变量liu。declare -x liu=888 #定义的变量liu。read 后面不带变量,那么默认会给REPLY变量赋值。declare +x liu=888 #取消变量。export #查看定义的变量。输出$x时,变量将不起效果,当作字符串输出。echo '$x' #在使用。原创 2024-04-18 18:04:09 · 604 阅读 · 1 评论 -
Linux 认识与学习Bash——1
在Linux系统中,有多种命令和技巧可以帮助用户与shell交互、管理变量以及执行命令。原创 2024-04-18 15:53:34 · 967 阅读 · 0 评论 -
linux 中 strings命令的作用和例子
命令是一个用于提取文件中的可打印字符序列的工具。它主要用于从二进制或数据文件中提取文本字符串。这些字符串是至少4个字符长(或者可以通过选项设置更长或更短的长度),并且紧跟在一个不可打印的字符后面。linux 中 strings命令 主要是在对象文件或者二进制文件中查找可打印的字符串。命令对于确定非文本文件的内容特别有用。例如,如果您想查找一个名为。原创 2024-04-18 13:24:39 · 5169 阅读 · 0 评论 -
QNX与Linux差异一览
首先,QNX系统没有tcpdump工具(文档中是有的,实际在环境中并没有),真是非常可惜,Linux系统支持tcpdump,支持libpcap库所提供的相关特性。而对QNX系统交叉编译时,首先需要调用qnxxxx_env脚本初始化环境,必须要显示的用-l c指定c库的链接,同时需要指定std的语言,同时QNX系统支持qcc和gcc两套编译器,亲测均可生成在QNX系统上运行的可执行文件。QNX系统根目录下有debug、dev、etc、lib、opt、proc、bin、sbin、tmp、usr、var目录。转载 2024-04-11 09:55:24 · 5682 阅读 · 4 评论 -
Linux 黑话解释:什么是 POSIX?
与其说 POSIX 是一个东西,不如说是一个标签。想象一下,有一个盒子,上面贴着标签:POSIX,而盒子里是一个标准。该标准由 POSIX 所关注的规则和指令集组成。POSIX是可移植操作系统接口Portable Operating System Interface 的缩写。它是一个 IEEE 1003.1 标准,其定义了应用程序(以及命令行 Shell 和实用程序接口)和 UNIX 操作系统之间的语言接口。当 UNIX 程序从一个 UNIX 平台移植到另一个平台时,遵守该标准可以确保其兼容性。转载 2024-04-08 13:49:46 · 672 阅读 · 0 评论 -
Bash 脚本教程
学习链接:Bash 简介 - Bash 脚本教程 - 网道 (wangdoc.com)Bash 的基本语法 - Bash 脚本教程 - 网道 (wangdoc.com)转载 2024-02-28 14:21:29 · 123 阅读 · 0 评论 -
11个Linux性能分析命令
Linux性能分析命令有很多,不同的命令可以用来监控不同的系统资源和活动。原创 2024-02-26 17:15:04 · 653 阅读 · 0 评论 -
Linux的 .bashrc 有什么作用?
CSDN博客. https://blog.csdn.net/Heyyellman/article/details/111565781.-CSDN博客. https://blog.csdn.net/Heyyellman/article/details/111565781.每次你启动一个新的终端时,.bashrc文件就会被执行,加载你设置的环境变量,别名,函数等。例如,你可以用别名来缩短常用的命令,用函数来组合多个命令,用bash提示符来显示你想要的信息,甚至用颜色和图标来美化你的终端。原创 2024-01-26 10:58:08 · 3120 阅读 · 0 评论 -
在Linux中查看进程的状态
在Linux中,您可以使用ps命令来查看进程的状态。ps命令可以显示当前运行的进程的相关信息,包括进程的PID、状态、CPU和内存占用等。ps命令有很多参数,可以用来控制显示的格式和内容。如果您想了解更多关于Linux进程的知识,您可以点击以下链接:(1) Linux中进程的六种状态_进程sleep状态-CSDN博客. https://blog.csdn.net/qq_49613557/article/details/120294908.转载 2024-01-26 10:36:43 · 3208 阅读 · 0 评论 -
什么是CPU亲和性?如何在Linux系统中查看进程的CPU亲和性?
CPU亲和性是指将特定的计算资源(如处理器核心)与特定的任务或线程相关联的能力。它允许系统管理员或开发人员指定将特定任务或线程绑定到特定的处理器核心上运行,以提高系统性能和效率。CPU亲和性的优点有:提高CPU缓存的命中率,减少缓存失效和数据迁移的开销。减少进程或线程的调度切换,降低上下文切换的代价。避免多个任务或线程竞争同一个处理器核心,提高并行度和吞吐量。实现更精细的负载均衡,根据任务或线程的特性和需求分配合适的处理器核心。CPU亲和性的缺点有:增加系统的复杂度,需要更多的管理和配置工作。原创 2024-01-25 09:54:25 · 2913 阅读 · 0 评论 -
系统引导程序 Boot Loader——学习笔记
(1) 8.8. 配置引导加载器(Bootloader) - Debian. https://www.debian.org/doc/manuals/debian-handbook/sect.config-bootloader.zh-cn.html.一般来说,引导加载程序需要支持多种文件系统,能够识别不同的操作系统,提供友好的用户界面,支持安全启动等功能。由操作系统的引导加载程序完成,它负责读取操作系统的核心文件,设置启动参数,创建启动菜单,或者链载另一个引导加载程序。区,并跳转到内核的入口,将系统。原创 2024-01-24 13:52:52 · 2099 阅读 · 0 评论 -
僵尸进程以及解决办法、僵死进程有什么区别?
是指已经结束但父进程没有回收它的资源的进程。(1) Linux僵死(尸)进程(详解)||概念||产生条件||解决方法(wait(waitpid)、信号、两次fork)_僵尸进程-CSDN博客. https://blog.csdn.net/qq_42214953/article/details/105579607.僵尸进程是指子进程结束但父进程未处理的进程状态信息,而僵死进程是指已经结束但无法正常释放资源的进程。处理僵尸进程需要父进程主动回收子进程,而对于僵死进程通常需要进行系统重启或手动终止进程来解决。原创 2024-01-24 13:26:58 · 747 阅读 · 0 评论 -
Linux 解决报错“libc.so.6: version GLIBC_2.14 not found“ patchelf 的功能以及使用 patchelf 修改 rpath 以解决动态库问题
低版本 libc 库运行高版本 libc 库编译的程序在这篇博客中我描述了使用 patchelf 来修改动态库链接器的方法,在本篇文章中,我完整的列举下 patchelf 的功能,并介绍另外一个实际的应用。可以通过ldd bin查看bin文件依赖的库文件,如果依赖的库文件拷贝不全,可能会出现segment fault或bus error。虽然高版本库文件拷贝到目标文件夹下,并且修改了环境变量,但是process启动时仍然会使用默认的ld加载器在bin文件的.interp。...原创 2022-08-30 17:46:03 · 1978 阅读 · 0 评论 -
linux达人养成学习笔记1
2-4 分区之分区设备文件名与挂载1、swap分区,没有挂载点,是文件系统类型(交换分区,电脑内存<4G,可分为内存2倍; >4G分同等大小)2、boot分区(启动分区,200MB)3-1 Linux命令格式文件类型( - 文件 d 目录 l 软链接文件)- r w - r - - r - -u所有者、g所属组、o其它人r读 w写 ...翻译 2018-09-10 16:41:40 · 197 阅读 · 0 评论
分享