Linux应用笔记
文章平均质量分 75
这里分享我的 Linux 应用笔记。
踏马潜行
大话智驾开发
展开
-
RPC之rpclib
rpclib 是一个用于 C++ 的 RPC(远程过程调用)库,提供了客户端和服务器的实现。它使用现代 C++14 构建,因此需要较新的编译器。原创 2024-03-30 12:41:28 · 357 阅读 · 0 评论 -
make menuconfig
文件进行更改时要小心,因为这些文件通常被用作某个硬件平台的默认配置。如果你的更改是针对一个具体的产品或板卡,建议使用一个具有描述性的名称,反映出配置文件的用途或目标平台。文件的内容确实反映了你的更改。如果你是在团队或社区环境中工作,并且需要将这些更改纳入版本控制系统,现在就可以准备提交你的更改。中的非默认配置选项保存到一个简化的配置文件,通常这会生成。确保使用的名称没有与现有的。文件,该文件仅包含不同于内核默认设置的选项。所做的修改同步到指定的配置文件,比如。文件,它位于你的源代码目录的顶层。原创 2024-03-28 20:20:59 · 301 阅读 · 0 评论 -
ubuntu用户创建使用的本质
具体来说,在Ubuntu系统中,每个用户都有一个独立的home目录,其中包括用户的文件、设置和配置。因此,不同用户之间的环境是隔离的。具体来说 ,每个用户都有自己的用户ID,权限和进程空间。用户ID确保了文件和目录的访问权限,每个用户都有自己的权限组,相互之间是独立的。同时,进程空间也是独立的,一个用户的进程无法直接影响另一个用户的进程。此外,不同用户之间的环境变量和配置文件也是独立的,不会相互干扰。原创 2024-03-19 14:45:37 · 852 阅读 · 0 评论 -
在vscode进行容器内开发
Visual扩展允许您使用容器作为功能齐全的开发环境。它允许您打开容器内(或安装到容器中)的任何文件夹,并利用 Visual Studio Code 的完整功能集。告诉VS Code 如何使用定义良好的工具和运行时堆栈访问(或创建)该容器可用于运行应用程序或分离使用代码库所需的工具、库或运行时。工作区文件从本地文件系统挂载或复制或克隆到容器中。扩展在容器内安装和运行,它们可以完全访问工具、平台和文件系统。这意味着您只需连接到不同的容器就可以无缝切换整个开发环境。这使得 VS Code 能够提供。原创 2024-03-15 17:44:29 · 865 阅读 · 1 评论 -
git常用总结及问题
为了解决这个问题,你需要使用其他认证方式,如个人访问令牌(Personal Access Token, 简称 PAT)或 SSH 密钥。作为密码认证的替代方案,你也可以使用 SSH 密钥进行认证。要使用 SSH 密钥,你需要生成一个 SSH 密钥对(如果你还没有的话),然后将公钥添加到你的 GitHub 账户中。当你下次执行 Git 操作时,输入你的 PAT 作为密码,它会被保存下来,以后就不需要再手动输入了。确保使用这种方法时,你的 SSH 客户端正在运行,并且可以正确处理密钥。生成密钥后,将公钥(原创 2024-03-14 15:55:23 · 388 阅读 · 0 评论 -
内存泄漏问题定位
在X项目中碰到内存泄漏的问题,现在写一下定位的过程.原创 2024-03-07 14:10:34 · 278 阅读 · 0 评论 -
SSH生成密钥
1.参数解释:-t 表示ssh的密钥类型,常用的有:rsa、ed25519、dss。-C 注释或称名称标识,此值随意。注:①在Linux、macOS系统下直接在命令行中输入上述命令即可。②在Windows系统下需要安装Linux模拟环境,最简单的方式就是安装Git。Git的如下目录中已经默认安装了文件:usr/bin/ssh-keygen.exe。所以在Git Bash命令行里直接输入上述命令也可以生成密钥。2.执行上述命令后,根据出现的提示连续按3次回车键即可。原创 2024-02-29 15:09:28 · 551 阅读 · 0 评论 -
Linux常用指南
注意:如果直接用useradd添加用户的话,可能出现没有home下的文件夹,以及shell无法自动补全的显现。出现此问题只要修改/etc/passwd下的/bin/sh为/bin/bash即可。软件点击“语言支持”,然后里面选择中文和英语,一般情况下安装ubuntu22.04系统时候,选择中文,就直接是这个配置。3)删除用户权限相关配置:删除或者注释掉/etc/sudoers中关于要删除用户的配置,否则无法再次创建同名用户。到此,新用户创建成功,并且用户目录被创建,权限也分配成功。原创 2024-02-29 08:07:00 · 524 阅读 · 0 评论 -
git版本回退使用
这样PC-B上的分支就与PC-A上回退后的状态同步了。这里使用--hard选项会丢弃工作目录中的所有改动和暂存区的所有内容,并把HEAD指向指定的commit ID。如果你有未推送的提交或本地更改,请确认在执行这个硬重置操作之前将这些更改妥善处理,比如通过git stash存储起来或者创建新的分支。在PC-B上,你需要拉取远程仓库的最新状态,这包括刚才PC-A上所做的回退。,此操作会删除你在本地分支上的所有更改,如果你有未提交的更改,请先备份。现在,重置本地分支到远程分支的状态。原创 2024-02-29 15:14:55 · 297 阅读 · 0 评论 -
Linux编码异常信号
C 缺省的动作是终止进程并进行内核映像转储(dump core),内核映像转储是指将进程数据在内存的映像和进程在内核结构中的部分内容以一定格式转储到文件系统,并且进程退出执行,这样做的好处是为程序员提供了方便,使得他们可以得到进程当时执行时的数据值,允许他们确定转储的原因,并且可以调试他们的程序。SIGTSTP 18,20,24 D 控制终端(tty)上按下停止键。SIGCONT 19,18,25 进程继续(曾被停止的进程)SIGUSR2 31,12,17 A 用户自定义信号2。原创 2024-02-29 15:33:40 · 231 阅读 · 0 评论 -
Linux 使用 Chrony 同步 GPS 时间
chrony.conf 配置文件内容如下,包含 NTP Server、PPS、GPS 解析数据。chrony 将根据各时间系统准确度选择最准确的时间。可以看到已经将系统时间同步到 GNSS 时间。查看 chronyc 查看时间同步状态。启动 Chronyd 服务。命令查找 PPS 设备。原创 2024-02-28 11:12:09 · 407 阅读 · 0 评论 -
Linux 软硬链接
在 Linux 系统中,硬链接(Hard Link)和软链接(Symbolic Link,也称符号链接)是两种不同类型的链接,用于创建文件之间的关联。原创 2024-02-28 11:34:02 · 231 阅读 · 0 评论 -
Linux 调试技巧
Valgrind 是一套 Linux 下的开源仿真调试工具集,遵循 GPLv2 许可协议,可用于内存调试、内存泄漏检测以及性能分析。Valgrind 由内核(core)以及基于内核的其他调试工具组成,内核类似于一个框架(framework),它模拟了一个 CPU 环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。原创 2024-02-28 11:45:57 · 793 阅读 · 0 评论 -
Linux 查看和设置 socket 缓冲区大小
最近我们开发的软件在客户现场运行很容易出现丢包现象,由于我们的软件需要接收来自传感器的庞大数据量,一秒钟有数万个数据包,网络带宽可达 200 Mb/s。然而,当我们出发去到客户现场调试时,发现软件在我们自己的设备上运行良好,而客户的设备依然丢包严重。由于 /proc/sys/net 目录内容的临时性,因此建议把 TCP/IP 参数的修改添加到 /etc/sysctl.conf 文件,然后保存文件,使用命令。实际上,除了上述修改方式,我们还可以直接通过代码设置 socket 接收/发送缓冲区大小。原创 2024-02-28 11:16:03 · 1710 阅读 · 0 评论 -
Linux 查找命令对应的软件包
在 Linux 中,有些命令的名称软件包的名称是不一样的,或者一个软件包中包含有多个命令。有时候,我们需要确定某个命令来自于哪个软件包,以便于可以在其他机器上安装,或者寻找该软件包的源代码进行编译或者修改。下面以 Ubuntu(Debian 系列)和 CentOS(RedHat 系列)发行版为例,介绍查询 Linux 命令来自哪个软件包的方法。原创 2024-02-28 11:00:16 · 365 阅读 · 0 评论 -
Linux 使用 PTP 进行时间同步
PTP(精确时间协议)是一种用于在网络中进行时钟同步的协议。当与硬件支持结合使用时,PTP 能够达到亚微秒的精度,这种精度远高于 NTP 协议。PTP 时间同步协议的支持分为内核空间和用户空间两部分。在 Linux 系统中,PTP 协议的实际实现称为 LinuxPTP,它是 PTPv2 根据 Linux 的 IEEE 1588 标准实现的。在 LinuxPTP 软件包包括ptp4l和phc2sys。原创 2024-02-28 11:14:08 · 2511 阅读 · 1 评论 -
Linux 配置邮件服务
在使用 LInux 系统时,有很多场景需要用到邮件服务。例如,当您想向 Linux 内核提交 patch,那么就需要事先配置好邮件服务,以便于与内核团队协作。或者在 Linux 服务器出现异常时,希望能主动向管理员发送告警信息,那么就需要事先配置好邮件服务,才具备发送邮件的功能。在 Linux 操作系统环境中,可以配置邮件服务器,也可以配置邮箱客户端。本篇主要是配置邮件客户端,这对于发送服务器一些系统信息十分有必要。原创 2024-02-28 10:47:36 · 848 阅读 · 1 评论 -
Linux 网络性能测试方法
iperf 是一个功能强大的网络性能测试工具,可用于测试 TCP 和 UDP 带宽质量,报告带宽、延迟抖动和数据包丢失等数据。我们常常利用 iperf 工具来来测试一些网络设备的性能,PC 端和嵌入式设备端均可作为服务器端或者客户端,分别测试上行或者下行的带宽。原创 2024-02-28 10:57:28 · 389 阅读 · 1 评论 -
Linux 使用 gpsd 获取 GPS 数据
GPSD 是一系列管理 GPS 设备和其他用于导航与精确计时的传感器的工具,包括航海自动识别系统(Automatic Identification System)的无线电广播设备和电子罗盘。其中最主要的程序是一个叫做 gpsd 的服务守护进程,它管理着这些传感器,并且在 TCP/IP 端口生成 JSON 流报告。其他的程序包括用来展示代码模型和各种诊断工具的客户端。自动探测并识别 GPS 协议,同时支持多个 GPS 设备,并且可以动态进行设备控制;支持 PPS 并且与 NTPD 结合,实现时间服务。原创 2024-02-28 11:09:07 · 1160 阅读 · 0 评论 -
Linux systemd 系统服务管理
是一个系统和服务管理器,也是 Linux 操作系统中最常用的初始化系统之一。它的设计目标是提供更快、更有效、更可靠的系统启动过程,并提供强大的管理和监控服务的能力。本文首先介绍 systemd 服务脚本的基本情况,并通过一个简单的示例带领读者学习如何编写 systemd 服务脚本,实现 Linux 服务的自启动、启动、停止和重启管理。原创 2024-02-28 11:29:52 · 993 阅读 · 0 评论 -
Linux 时间同步
无论是 Linux 服务器还是嵌入式设备,只要有网络连接需求,都需要保持时间同步。对许多应用场景来说,时间的准确性都至关重要,例如数据采集上报、订单信息提交、即时通讯等等。Linux 系统为我们提供了一些与时间同步相关的服务和命令,下面将一一介绍。原创 2024-02-28 11:32:07 · 772 阅读 · 0 评论 -
Linux 查看二进制文件
本文介绍在 Linux 系统中查看或编辑二进制文件的几种方法,包括使用 vim 编辑器,使用 hexdump、xxd、od 命令等。原创 2024-02-28 11:15:10 · 815 阅读 · 0 评论 -
脚本定期检查服务是否正常运行
如果 MySQL 服务为 active 状态,则结束本次检测;如果为 inactive 状态,则尝试重启 MySQL 服务。以 MySQL 服务为例,假设我们想定期检查该服务是否正常运行,如果运行异常则重启该服务,从而确保服务尽快恢复。在 Linux 系统中,如果我们想查看某个服务的运行状态,可以使用。如果 Active 一栏显示 “active”,则表示服务运行正常。为了让该程序自动定期运行,例如每隔一分钟检查一次,我们可以使用。这样,我们就实现了 MySQL 服务的自动定期检测和重启的功能!原创 2024-02-28 10:59:17 · 304 阅读 · 1 评论 -
Linux 查看端口与进程占用情况
在日常 Linux 运维、开发过程中,我们常常需要查看进程信息,比如该进程使用了哪些端口?或者反过来,需要确定某个端口是被哪个进程所占用的,从而解决一些系统问题、性能问题。因此,本文将介绍如何使用简单的 Linux 命令,查看端口与进程的占用情况。原创 2024-02-28 10:54:44 · 282 阅读 · 1 评论