Linux 系统
文章平均质量分 78
主要围绕Linux系统相关知识的学习,最关键的是 系统化学习和分享
图王大胜
一名Android FWK程师;专注系统思维
展开
-
专题总纲目录 Linux总纲
/Linux 项目实战工具总结Linux工具 xrandr屏幕操作工具Linux工具 xdotool模拟输入事件工具//项目实战问题总结Linux常见问题-ubuntu系统 忘记密码Linux常见问题-显示分辨率低Linux常见问题-ld链接器的那些坑Linux常见问题-添加桌面快捷方式链接shell脚本Linux常见问题-获取VSYNC。原创 2021-02-02 11:30:14 · 601 阅读 · 1 评论 -
专题分纲目录 Linux C系统编程
专题分纲目录 均为索引,本纲为:Linux C系统编程 系列文章目录C语言 思维导图 总结Linux C 系统编程(01) 文件与I/O 基本操作Linux C 系统编程(02) 文件与I/O 文件管理Linux C 系统编程(03) 文件与I/O 目录操作Linux C 系统编程(04) 文件与I/O 特殊文件Linux C 系统编程(05) 时间与日历编程Linux...原创 2020-03-30 09:45:32 · 444 阅读 · 1 评论 -
Git版本管理(05) git仓库迁移(保留原来记录&&分支体系)
测试至此完成仓库的迁移并保存了需要的原始记录和必要的分支。如果整个过程中提交的是分支branchA,则需要执行。原创 2023-11-27 23:12:19 · 1204 阅读 · 0 评论 -
Git版本管理(04) git中常见问题整理
在进行更新操作前,一般建议先使用git fetch查看远程仓库的最新状态,然后根据需要决定是否进行合并或其他操作。这样可以更加灵活地控制代码的合并过程,并减少冲突的出现。原创 2023-08-23 22:00:00 · 513 阅读 · 0 评论 -
Git版本管理(03)stash临时操作和.gitignore配置
当你修改了某一个分支,但此时要切换分支时如果直接切换会因为一些修改冲突而checkout失败,那么此时就可以使用git stash命令来解决该问题。原创 2023-08-23 22:00:00 · 849 阅读 · 0 评论 -
Git版本管理(02)patch操作和分支操作整理
使用git diff用于显示当前工作区与暂存区或提交历史之间的差异,如果使用它生成patch,则需要使用git apply命令来引入patch。原创 2023-08-23 22:00:00 · 3521 阅读 · 0 评论 -
Git版本管理(01) 简介 & 基本提交相关命令
Git是一种分布式版本控制工具,用于跟踪文件和代码的变化,协调多个开发者之间的协作,并提供版本控制和代码管理的功能。官方学习可参考文档->总而言之,Git是一个功能强大、高效、灵活且广泛使用的版本控制工具,它为开发者和团队提供了一套强大的工具和机制,以有效管理和控制代码的版本、变化和协作。原创 2023-08-23 22:48:25 · 496 阅读 · 0 评论 -
Linux常见问题-zip命令打包相同文件但MD5值不一样解决方案
针对zip命令打包相同文件但MD5值不一样的问题。我们以分析问题->结局问题的思路来研究。原创 2024-01-03 00:00:00 · 1704 阅读 · 0 评论 -
Linux 编译链接那些事儿(03)动态库优化之清除符号表信息
在动态库中,符号表(Symbol Table)记录了库中定义的符号(函数、变量等)以及它们的属性和位置信息。这些符号表项描述了库中可供外部程序使用的符号。这些符号表节与符号的解析、重定位和调试等相关,确保程序能够正确链接和执行。具体的符号表节可能因不同的编译器、链接器和目标平台而异,因此在具体情况下,可使用工具如 readelf 或 objdump 来查看特定可执行文件或共享对象的符号表节和相关信息。同时这些符号表类型共同组成了动态库的结构,使得库中的函数和变量能够被其他程序正确地引用和使用。原创 2023-12-18 21:45:00 · 2380 阅读 · 0 评论 -
Linux常见问题-获取日志方法总结(Ubuntu/Debian)
这些工具提供了更灵活和高级的功能,能够更方便地查看、分析和管理系统日志和内核日志。可以根据自己的需求选择适合的工具来使用。注意,可能需要使用 sudo 或以 root 用户身份运行这些命令来访问一些日志文件,特别是位于 /var/log 目录下的文件。原创 2023-12-06 21:15:00 · 4402 阅读 · 0 评论 -
Linux 编译链接那些事儿(02)C++链接库std::__cxx11::basic_string和std::__1::basic_string链接问题总结
遇到这类问题时基本上都是使用c++filt来将符号表中的符号转换。确认符号是否在库中,如果不在库中那么可能是链接库的版本或者编译方式不对。修正编译方式/库的版本,确认符号表中的符号可以对上。接下来进行实测即可。原创 2023-11-03 17:48:32 · 874 阅读 · 0 评论 -
WSL2 window上高效运行Linux
WSL(Windows Subsystem for Linux)是Windows操作系统中的一个功能,它允许用户在Windows环境下运行Linux应用程序。WSL提供了一个与Linux内核兼容的系统调用转发层,使得Linux二进制文件可以在Windows上直接运行,而不需要使用传统的虚拟机或容器的方式。WSL有两个主要的版本:WSL1和WSL2。WSL为开发者和用户提供了在Windows操作系统下同时享受Windows和Linux优势的灵活性和便利性。原创 2023-08-23 22:48:38 · 593 阅读 · 0 评论 -
Linux常见问题-打deb包流程
Deb打包目的:将程序打包成.deb格式是为了在Debian和Ubuntu等基于Debian的Linux发行版上进行方便的安装和管理。以下是一个简要的流程,以一个输出 "Hello World" 的C++程序为例。原创 2023-08-06 20:54:20 · 628 阅读 · 0 评论 -
Linux docker(03)可使用GPU渲染的x11docker实战总结
1 下载镜像#2 运行容器并设置好共享文件夹#3 开始apt update 然后按需install各种软件,执行结束后exit#4 commit操作,将容器压缩到镜像中,这样就可以docker push提交到自己的服务器了$docker commit c83e26ce754e x11docker/xfce:v20 //将container容器直接输出到image镜像中。这里下载好母板镜像后 根据自己的需要install各种软件,最后exit退出并将打包好的镜像提交到自己的服务器中。原创 2023-02-20 21:29:42 · 2001 阅读 · 2 评论 -
Linux工具 top命令/htop命令 性能分析工具
top命令虽然功能强大,但与Linux传统的 top命令相比,htop 更人性化,支持带有颜色的显示形式,相比top命令可以支持鼠标操作。表示 系统现在共有311个进程,其中处于运行中的有1个,310个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。load average: 0.00, 0.01, 0.01 表示系统负载,而有3个值是因为分别表示 CPU 1分钟,5分钟,15分钟平均负载。此时可以通过 top 的内部命令对进程的显示方式进行控制,实时显示。原创 2022-09-22 16:30:01 · 2237 阅读 · 0 评论 -
Linux常见问题-获取Vsync信号
使用Linux系统 libdrm库 获取Vsync的核心原理:使用drmWaitVBlank()可以获得场消隐VBlank,可以简单理解为要想获得2个Vsync之间的时间间隔,可以通过获得 场消隐VBlank之间的时间间隔,因为每一次场消隐伴随着场同步信号VSYNC的触发。这里主要是介绍使用libdrm库获取vsync信号的方法(该方法适用于ubuntu和debian系统)接下来 编译一下代码,测试下。看效果还是可以用的。原创 2022-09-08 13:13:58 · 3005 阅读 · 4 评论 -
Linux工具 xdotool模拟输入事件工具
xdotool实际上是X11窗口的命令行自动化工具,可以实现 按键/组合按键事件模拟、鼠标事件模拟、文本输入模拟、窗口信息及焦点的获取。在android系统中模拟key事件/motion事件的工具主要是sendevent和getevent,那么在Linux上是否有更好的工具呢?当然是有的,Xorg系列的X工具之xdotool就是这个模拟事件非常棒的工具。而且用起来感觉比android要方便的多。可以在ubuntu/Debian上下载体验。只需要执行命令安装即可。原创 2022-09-06 16:53:01 · 3482 阅读 · 0 评论 -
Linux工具 xrandr屏幕操作工具
说明:xrandr是RandR(调整大小和旋转)X 窗口系统扩展的官方配置实用程序。它可用于设置屏幕输出的大小、方向、以及 需配置多台显示器的显示扩展等。。。)。原创 2022-09-03 14:14:13 · 12859 阅读 · 2 评论 -
Linux基础 常见问题-添加桌面快捷方式链接shell脚本
Debian系统进入到启动界面中,右键点击,出现如下列表,点击创建启动器:之后出现界面,如下所示:填充该表单,比如填充如下内容:这样一个快捷方式就生成了。原创 2022-09-03 10:49:34 · 1682 阅读 · 0 评论 -
Linux docker(02) docker实战-最简构建编译系统
该系列文章的目的旨在docker的基础学习和docker的实战应用。原创 2022-08-23 20:28:45 · 745 阅读 · 0 评论 -
Linux docker(01) 基础操作
该系列文章的目的旨在docker的基础学习和docker的实战应用。原创 2022-08-22 20:14:03 · 870 阅读 · 0 评论 -
Linux aarch64交叉编译之libusb库
1 why,为什么要搞一个libusb出来呢?最开始的时候 是只有usb内核层的驱动的,但是随着 应用和linux 内核之间 兼容性的矛盾不断升级,慢慢衍生出了libusb这么个东西。接下来我们详细讲讲这是咋回事儿~。当使用我们产品的客户有多个linux内核平台,有2.4的、2.6的、3.2的,4.9的,随着平台数量的增加,你的工作量线性的增加,而且最为蛋疼的是还有好多客户自定义的版本,每一次新环境,新平台你就增加一次工作量,天天不用干别的了,就编译吧。...原创 2022-08-18 19:19:23 · 3388 阅读 · 0 评论 -
Linux aarch64交叉编译之glm数学库
为啥要搞这么数学库出来呢?OpenGl中在进行图形变换的时候需要使用几何数学库,GLM算是最常用的数学库了。同时兼容性也很好,为啥呢?因为OpenGL Mathematics (GLM) 是基于OpenGL着色语言(GLSL)规范的图形软件的头文件C ++数学库。也就是说 不用链接 静态库、动态库,直接包含hpp文件,然后编写代码就可以了。......原创 2022-08-12 23:46:33 · 1353 阅读 · 0 评论 -
Linux aarch64交叉编译之sqlite数据库
SQLite第一个Alpha版本诞生于2000年5月,是个老古董了,它是一款轻量型的数据库,实现就是一个小的C库。它是D.RichardHipp建立的公有领域项目。它的设计目标是针对嵌入式设备的,所以占用资源非常低,一般只需要几百K的内存就够了。支持ACID事务零配置 – 无需安装和管理配置储存在单一磁盘文件中的一个完整的数据库数据库文件可以在不同字节顺序的机器间自由的共享支持数据库大小至2TB足够小, 大致13万行C代码, 4.43M比一些流行的数据库在大部分普通数据库操作要快。......原创 2022-08-12 17:29:51 · 2147 阅读 · 0 评论 -
Linux aarch64交叉编译之cJSON解析器
cJSON是一种JSON格式的解析库,其主要功能就是构建(封装)和解析(解封装) Json 格式,实现非常简洁,核心只有2个文件,一个cJSON.c文件,一个cJSON.h头文件。JSON#PC Linux X86 / X86_64 编译cd buildcmake ..make#嵌入式Linux debian11 aarch64cd buildmake当然这里Header文件还是需要单独拷贝出去的。...原创 2022-08-12 16:07:48 · 1600 阅读 · 0 评论 -
Linux aarch64交叉编译之 cryptopp加密库
Crypto是一个C++ 加密方案类库,简而言之,就是一个算法库。cryptopp 官网 截图支持的算法还是蛮多的,一般我们常见的MD5、SHA、RSA都有。当然,第一次下载cryptopp这个库 ,头这个大阿,头文件、源文件都混在 项目根目录下,一看就是有年代的东西了,于是看了下这个库的起源... 原来是2002年的老古董。迄今为止20年的历史了。说明可靠性还是可以的。...原创 2022-08-08 19:34:16 · 2017 阅读 · 0 评论 -
Linux aarch64交叉编译之 assimp模型库
对于assimp的交叉编译,目前网上没见到debian版本aarch64版本上搞过的,因此整一篇。该文章的目标是编译一套aarch64 Linux Debian嵌入式版本上可以运行的版本库,接下来就开始趟坑。老套路,先把linux桌面版搞好,然后 移植到嵌入式Linux Debian 板子上。assimp(全称:Open Asset Import Library )用于导入和导出各种 3d 模型格式的库,包括场景后期处理 以及 补充生成缺失的渲染数据(这里的导入是把model文件,解析成ASSIMP自身定义原创 2022-08-08 16:09:10 · 1686 阅读 · 3 评论 -
Linux aarch64交叉编译之 qlibc 基础C/C++库
qLibc 这个项目就是提供一个通用的 C/C++ 库,包括所有种类的容器和常用工具函数。这里详细介绍下,主要分为两大部分:可以说qlibc的核心目的就是用于提供qlibc的基础API。原创 2022-08-04 16:02:17 · 891 阅读 · 0 评论 -
Linux aarch64交叉编译之 mesa图形库
对于mesa的交叉编译。该文章的目标是编译一套aarch64LinuxDebian嵌入式版本上可以运行的版本库,接下来就开始趟坑。老套路,先把linux桌面版搞好,然后移植到嵌入式LinuxDebian板子上。1mesa简介Mesa3D是一个在MIT许可证下开放源代码的三维计算机图形库,以开源形式实现了OpenGL的应用程序接口。OpenGL的高效实现一般依赖于显示设备厂商提供的硬件,而Mesa3D是一个纯基于软件的图形应用程序接口。......原创 2022-08-01 17:17:38 · 6729 阅读 · 10 评论 -
Linux aarch64交叉编译之 weston窗口管理程序
对于weston的交叉编译。该文章的目标是编译一套aarch64LinuxDebian嵌入式版本上可以运行的版本库以及相关程序,接下来就开始趟坑。老套路,先把linux桌面版搞好,然后移植到嵌入式LinuxDebian板子上。......原创 2022-08-01 15:57:37 · 4231 阅读 · 0 评论 -
Linux aarch64交叉编译之 nodejs js运行时环境
Node.js发布于2009年5月,由RyanDahl开发,是一个基于ChromeV8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。简单来说就是用来运行js的,基于v8引擎,效率更高,跑的更快。嵌入式Linux上运行js不可或缺的运行时runtime软件之一。Node.js。.........原创 2022-07-29 12:05:12 · 3088 阅读 · 4 评论 -
Linux aarch64交叉编译之 Google filament引擎
Filament是一个基于物理的实时3D渲染引擎,适用于Android、iOS、Linux、macOS、Windows和WebGL。它被设计为在Android上尽可能小且尽可能高效(毕竟是google的亲儿子)。本质上Filament可以理解为OpenGL、OpenGLES、Vulkan的封装,同时多了PBR的功能。即可。......原创 2022-07-26 20:33:02 · 1013 阅读 · 0 评论 -
Linux 编译链接那些事儿(01) ld链接器的那些坑
也没有问题。然后开始在LD_LIBRARY_PATH中添加环境变量,发现也不行。tnnd,见鬼了,这不是明摆着系统是睁眼瞎吗?思考了良久,确认代码本身也没问题,路径不是问题,链接的流程也木有问题,还有什么可能呢?这样,该部分代码就编译通过了。......原创 2022-07-19 20:18:09 · 1068 阅读 · 0 评论 -
服务器搭建(09)设置开机启动脚本(ubuntu18.04后)
1ubuntu18.04后启动的原理变更ubuntu-16.10 开始不再使用initd管理系统,改用systemd,systemd 就是用 systemctl 命令来替换了 service 和 chkconfig 的功能。以前启动 XXX服务用命令:sudo service XXX start现在改用:sudo systemctl start XXX.service开机启动比以前复杂一些。systemd 默认是读取 /etc/systemd/system 下的配置文件,该目录.原创 2021-05-12 17:23:40 · 679 阅读 · 1 评论 -
服务器搭建(08)CentOS和Ubuntu扩容
1 CentOS 磁盘扩容操作在CentOS7 系统上,添加了新的硬盘,接下来开始进行一组操作,将其挂在系统中并可以访问。先执行fdisk操作 查看磁盘具体容量sudo fdisk -l即可查看磁盘容量具体大小。1.1 磁盘容量小于2T扩容使用下面一组命令#执行fdisk命令,进入到fdisk命令行模式fdisk /dev/vdbCommand (m for help): m //输入m,显示菜单,如下所示Command action a toggle原创 2020-11-26 10:46:57 · 382 阅读 · 1 评论 -
服务器搭建(07)定时执行脚本
1 安装crontab执行命令:$sudo apt-get install croncrontab命令参数说明:-u user:用来设定某个用户的crontab服务; file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。 -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。原创 2020-09-24 10:51:15 · 1063 阅读 · 1 评论 -
服务器搭建(06)共享文件夹策略与实现
这里主要使用filezilla来实现整体的文件共享打开后是这样的选择 站点管理器,进入后在这里选择 新站点,如下所是:在这里开始配置信息:继续输入信息继续原创 2020-07-22 20:28:39 · 999 阅读 · 1 评论 -
服务器搭建(05)centOS7.2 服务器 整合
终于 我们的服务器 主机到了,之前在Ubuntu18.04上搭建gerrit服务器,同时也使用了VNC实现了 windows与 Linux之间的连接。这些工作主要都是为 接下来的 服务器 搭建 做铺垫的。而现在 我们的服务器到了,于是我们开始规划 和整合 之前的这些 搭建服务器的操作。1 服务器系统安装1.1 cent OS操作系统(这里的版本是Cent OS 7.2)关于操作系统的安装 可以参考 文章(链接):CentOS 7.2系统安装步骤但这里注意:我们根据自己的情况去选择界面,因为安原创 2020-06-29 10:07:05 · 601 阅读 · 1 评论 -
服务器搭建(03)Gerrit服务器 权限管理 & Git操作集合
下载代码至仓库我们进入到 这个界面复制 并执行 对应的git clone 操作,之后执行操作:git pull之后 就可以再这里 把我们将要上传的代码 复制到仓库中,然后执行命令集:$git add/rm file1 file2 ...$git commit -m "提交注释"$git push origin HEAD:refs/for/master上传代码至文件仓库即可。...原创 2020-06-02 18:48:19 · 890 阅读 · 0 评论 -
服务器搭建(04)VNC服务的搭建(windows访问Linux)
VNC服务器ubuntu系统接下来配置ubuntu系统,在终端输入:dconf-editor 关闭下图两项设置这里选择org在setting中选择 sharing,界面如下所示:这里点击 Screen Sharing,打开后 界面如下:这类输入密码 并将networks打开,这里实际上就是将 Screen Sharing 打开了。windows上安装 VNCViewer的客户端,启动后界面如下:输入 ubuntu的ip地址,如下所示:之后就可以远程访问 u原创 2020-06-02 18:48:35 · 708 阅读 · 1 评论