Linux & Unix
文章平均质量分 85
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux中查看硬件信息
系统出现问题(死机、卡顿、报错)?查看内核日志。结果:看到某个硬件相关的明确错误 ➡️转到步骤5。结果:没有明确错误或怀疑是性能问题 ➡️转到步骤3。性能诊断与监控CPU使用率爆满?tophtopperf内存耗尽?free -h磁盘I/O瓶颈?网络丢包/延迟?netstat -iping问题定位与解决:根据监控数据,定位到具体进程或服务,更新驱动或软件。专项硬件深度检测硬盘内存memtestermemtest86+网卡/ 检查线缆。原创 2026-05-21 15:36:32 · 717 阅读 · 0 评论 -
Linux 系统中常用的日志查看命令
命令/工具日志范围持久化适用场景dmesg仅内核环形缓冲区内存中,重启丢失硬件故障、驱动调试、内核 crashjournalctl内核 + 所有服务 + 用户会话可持久化(需配置)系统与服务全面排查,推荐首选仅文本日志(通常是系统日志子集)是兼容旧习惯,文本处理方便lastlastb登录成功/失败记录是安全检查,审计登录ausearch审计事件(系统调用、文件监控)是(需配置 auditd)合规审计、入侵检测。原创 2026-05-21 15:12:26 · 863 阅读 · 0 评论 -
linux下执行脚本需要sudo权限处理方法
创建文件命令:sudo visudo /etc/sudoers.d/文件名(比如:sudo visudo /etc/sudoers.d/hotspot_user)验证语法命令:sudo visudo -c -f /etc/sudoers.d/hotspot_user。运行 sudo visudo /etc/sudoers.d/hotspot_user。当 sudo 提示密码时,系统日志会记录原因。注意:避免执行命令中出现多个sudo,否则还是报sudo权限错误。,通常需要终端交互输入密码。原创 2026-05-06 13:43:12 · 366 阅读 · 0 评论 -
ubuntu下加载usb磁盘
一般是有进程正在使用挂载点目录,比如终端正定位在该目录下。若仍无法卸载,可使用。是 systemd 提供的专用挂载工具,它与 systemd 的挂载单元管理集成。表示当规则匹配时,在 udev 的事件处理过程中执行指定的程序。如果提示没有root权限,就需要增加到dev规则(下面方法实现)。如果您的 Jetson 默认用户不是 uid=1000,请用。表示追加,如果同一个事件有多个规则,会依次执行。,或者用它提供的其他功能来管理存储设备。安装后,可以手动挂载磁盘,例如。,说明系统缺失相关工具集,安装。原创 2026-05-04 11:37:26 · 566 阅读 · 0 评论 -
windows下修改后的sh文件无法执行的解决方法
在windows上编辑好sh后到linux下运行时常会出现“no such file or directory”或者“ /bin/bash^M: bad interpreter: No such file or directory”,如果确实存在文件,可能是格式的问题,脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识,需改成unix格式。(2). 修改完毕后需要点击文件->设置另存为,编码方式选为UTF-8-无BOM,保存(UNIX换行符-LF)。中下载dos2unix命令。dos2unix用法。原创 2026-04-21 13:05:02 · 643 阅读 · 0 评论 -
readelf 和 ldd 查看文件的依赖
特性readelf -dldd工作原理静态分析ELF文件结构动态模拟加载过程显示内容声明的依赖项(SONAME)解析后的完整路径环境依赖否。结果与系统环境无关,只与文件本身有关。是。结果受等影响。可靠性高。直接读取文件,总能成功。较低。依赖库缺失或损坏会导致命令失败。安全性安全。不执行任何代码。不安全。会执行库的初始化代码,有风险。主要用途查看程序的原始依赖声明,用于开发和调试。查看库在当前系统下的实际位置,用于解决运行时依赖问题。你的需求应使用的readelf选项。原创 2025-09-11 12:34:45 · 1300 阅读 · 0 评论 -
系统默认使用 pkg-config 方式,但你的第三方库没有提供 .pc 文件
pcpc。原创 2025-09-06 11:07:08 · 736 阅读 · 0 评论 -
Linux 信号 (Signals)
信号是操作系统内核向用户空间进程发送的一种异步通知机制。它用于通知进程某个特定事件发生了。一个信号的处理遵循以下流程:产生 (Generation): 由内核、其他进程或硬件事件(如 由 MMU 产生)创建。递送 (Delivery): 内核将信号传递给目标进程,并促使进程采取行动。处理 (Handling): 目标进程收到信号后执行预定的操作。硬件异常: 由 CPU 检测到,内核将其转换为信号发给相关进程。 (Segmentation Fault): 非法内存访问。 (Floating-Point Ex原创 2025-08-21 22:55:07 · 1504 阅读 · 0 评论 -
Linux mmap内存映射
mmap是 Linux 系统编程中一把强大的“瑞士军刀”。它通过巧妙地将文件、内存和进程地址空间结合起来,提供了远超传统 I/O 操作的灵活性和性能。理解并熟练运用mmap,尤其是区分MAP_SHARED和的用途,是成为一名高级 Linux/C 程序员的重要标志。原创 2025-08-21 22:46:22 · 1290 阅读 · 0 评论 -
LVGL开发指南
主流ARM开发UI界面库原创 2025-04-09 23:51:17 · 1348 阅读 · 0 评论 -
Windows上安装MSYS2
MSYS2(Minimal SYStem 2)是基于Cygwin和MinGW-w64构建的Windows开发环境,提供类Unix命令行工具和软件包管理系统,适用于跨平台编译、脚本开发等场景。以下是其核心功能:pacmanmintty。原创 2025-04-09 10:06:00 · 2604 阅读 · 0 评论 -
CMake使用
CMake是一个跨平台的自动化构建系统,用于管理软件构建过程。原创 2025-04-08 20:29:52 · 1294 阅读 · 0 评论 -
SSH远程工具
此时我们输入最开始的查询命令“telnet 127.0.0.1 22”,就能看到Ubuntu系统已经显示出端口22的反馈信息(如果Ubuntu系统中安装了SSH,也会显示此信息)。然后需要查看Ubuntu系统的IP地址,只要在Ubuntu系统输入命令“ifconfig”,就能查询到该系统的IP地址(同一局域网下)。),找到适合你的安装包即可。(2)点击Session会话设置,选择ssh连接,主机名输入相应IP地址,点击OK确定连接;在下拉中能看到选择配置或输入地址,你可以同时开打多个已经安装的连接窗口。原创 2025-04-07 21:51:44 · 1291 阅读 · 0 评论 -
Linux系统的不同发行版的常用命令
Linux 系统的不同发行版在常用命令上存在一些差异,主要体现在 包管理命令、服务管理命令 和 部分工具链 上。以下是主要区别对比:记住核心差异:包管理:(Debian) vs (Red Hat) vs (Arch)服务管理:(主流) vs (旧版)查询工具所属包: 通用命令优先:文件操作()、文本处理()等命令在所有发行版中完全一致。使用 文档:原创 2025-04-07 16:15:39 · 996 阅读 · 0 评论 -
Linux系统中查找软件安装位置
在 Linux 系统中,安装的软件可能分布在多个标准目录中。原创 2025-04-07 15:57:11 · 3781 阅读 · 0 评论 -
Linux 跨进程同步方案
(原子增减操作)控制资源访问权限,适用于需要严格互斥的场景(如共享内存、文件等资源的并发访问)。原创 2025-03-12 12:23:52 · 847 阅读 · 0 评论 -
Linux fork函数详解与共享资源
在 Linux 系统中,跨进程同步可通过多种机制实现:信号量、管道、共享内存与原子操作、信号、文件锁、消息队列、套接字。fork()函数用于从一个已经存在的进程中创建一个新进程,新进程被称为子进程,而原进程称为父进程。包括实际用户ID、实际组ID、有效用户ID、有效组ID、附加组ID、进程组ID、会话ID等。包括进程ID(PID)、父进程ID(PPID)、资源使用统计(如tms_utime)等。在Linux中,fork()系统调用创建的子进程默认会与父进程共享以下资源。原创 2025-03-12 11:32:04 · 1190 阅读 · 0 评论 -
linux系统压缩与解压缩工具使用方法
linux系统压缩与解压缩工具包括7z、zip/unzip、rar/unrar一、7z安装:执行以下命令下载安装:wget https://udomain.dl.sourceforge.net/project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2tar -jxvf p7zip_16.02_src_all.tar.bz2cd 7zip_16.02makemake install命令格式:压缩文件:7za a -t7z -r /tem原创 2021-03-16 17:23:48 · 1362 阅读 · 0 评论 -
自动运行程序shell脚本
运行程序脚本,比如runHttpServer.shBASE_PATH=$(cd `dirname $0`;pwd)cd $BASE_PATHLD_LIBRARY_PATH=./:$LD_LIBRARY_PATHPATH=./:$PATHexport LD_LIBRARY_PATH PATHchmod +x HttpServer./HttpServer停止运行程序脚本,比如stopHttpServer.shps -aux | grep HttpServer | awk '{pri原创 2020-09-05 21:37:45 · 2039 阅读 · 1 评论 -
linux下GDB的使用方法
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具。一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。一、普通命令(gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h(g.原创 2020-06-06 14:48:06 · 1453 阅读 · 0 评论 -
Monitorix:一款面向Linux、OpenBSD、NetBSD和FreeBSD之类的UNIX系统的网络监测工具
一、Monitorix简介Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源。它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息。Monitorix让用户可以监测系统整体性能,还有助于检测瓶颈、故障、不必要的超长响应时间及其他异常活动。Monitorix用Perl语言编写而成,许可证遵循通用公共许可证(GNU)的条款,由自由软件基金会(FSP)发布。它使用RRDtool来生成图形,然后使用Web界面显示这些图形。该工具是专门.原创 2020-06-06 14:46:36 · 1392 阅读 · 0 评论 -
Linux下编译使用boost库
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库...原创 2018-03-20 15:06:43 · 4117 阅读 · 0 评论 -
linux环境下生成a库和so库
一、编译链接库(a库和so库)方法一般linux环境下的链接库分为a库和so库,分别表示静态链接库和动态链接库,其作用是把C程序编译好做成一种可执行链接文件,c主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要include含有库中提供的函数接口声明的头文件即可。在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静...原创 2018-03-20 14:44:06 · 4785 阅读 · 0 评论 -
Linux 中如何快速查看 C 库函数的头文件、库文件
Linux 中如何快速查看 C 库函数的头文件以及相应的函数信息?使用man帮助或grep1)man命令 函数名,则能够打印该函数的所有说明,当然这个函数必须是Linux-C本身就有的函数。2)grep "keyword" /usr/include/*.h |grep "typedef"以上方法可以查找关键字为keyword的结构体、类型、函数原型的定义,typedef可以替换为define尝试查...原创 2018-05-20 13:15:39 · 19614 阅读 · 1 评论 -
Linux 线程间通信方式+进程通信方式 总结
一、linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支...转载 2019-03-05 11:50:27 · 2593 阅读 · 0 评论 -
KDevelop安装与使用
KDevelop是一个支持多程序设计语言的集成开发环境。它运行于linux和其它类unix环境。KDevelop本身不包含编译器,而是调用其它编译器来编译程序。一、KDevelop安装打开命令窗口:1. 安装gcc(编译器) sudo apt-get build-dep gcc sudo apt-get install build-essential 2. 安...原创 2019-03-02 00:16:05 · 20764 阅读 · 0 评论 -
ubuntu虚拟机下串口使用
一、虚拟串口配置虚拟串口完成主机与vmware下虚拟机进行串口通信,配置方法:1、使用vspd软件,创建虚拟串口COM1,COM2。2、打开vmware在设置中添加物理串口,将创建的虚拟串口COM1映射到虚拟机上。3、在windows主机上打开串口工具,打开COM2,数据接收与发送。4、在虚拟机中使用自己的程序或者minicom调试助手和主机进行串口通信。注意打开的串口如...原创 2019-03-29 15:45:29 · 6979 阅读 · 2 评论 -
vmware常见问题
一、虚拟机如何让屏幕自适应客户机窗口大小1、安装vmware tools2、【查看】-【自动调整大小】-选择【自动适应客户机】, 勾选自动适应窗口注意:如果安装了vmware tools 后 ”立即适应客户机 ”仍为灰色,不能自适应的情况。执行下面命令,安装工具。sudo apt-get install open-vm-tools open-vm-tools-desktop open...原创 2019-03-30 01:14:48 · 2358 阅读 · 0 评论 -
Linux环境变量设置方法PATH、动态库的查找路径方法LD_LIBRARY_PATH
PATH 可执行程序的查找路径查看当前环境变量:echo $PATH设置:方法一:export PATH=PATH:/XXX 但是退出当前终端后就失效方法二:修改 ~/.bashrc 或 ~/.bash_profile或系统级别的/etc/profile1. 在其中添加例如export PATH=/opt/ActivePython/bin:$PATH2. sour...转载 2019-03-27 22:54:10 · 21790 阅读 · 0 评论 -
linux动态链接库的加载顺序
一、Linux 动态库选择顺序指:1. 编译程序时用到动态库,该从那些地方查找,按照怎么样的顺序查找?2. 运行程序时需要动态库,该从那些地方查找,按照怎么样的顺序查找?二、gcc 编译程序时查找SO顺序如下:1. gcc 编译时参数-L指定的路径2. 环境变量 LIBRARY_PATH3. 系统默认库位置 /lib /usr/lib三、Linux 程...转载 2019-04-19 18:05:37 · 9910 阅读 · 0 评论 -
linux/Ubuntu下生成core dump文件调试方法
一、linux下生成core dump文件调试方法及设置转自:http://andyniu.iteye.com/blog/1965571core dump的概念:Acore dumpis the recorded state of the working memory of a computer program at a specific time, generally when ...转载 2019-05-30 00:46:47 · 15441 阅读 · 0 评论 -
linux cpu占用100%排查
某服务器上部署了若干tomcat实例,即若干垂直切分的Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警。问:如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?步骤一、找到最耗CPU的进程工具:top方法: 执行top -c ,显示进程运行信息列表 键入P (大写p),进程按照CPU使用率排序 图示:...转载 2019-05-30 00:51:59 · 5781 阅读 · 0 评论 -
CentOS6.5安装gcc及g++
在线安装使用yum安装,注意安装时要先成为root用户。安装gcc:yum install gcc安装g++:yum install gcc-c++离线安装首先到http://vault.centos.org/6.5/os/x86_64/Packages/下载用到的rpm包,包括:ppl-0.10.2-11.el6.x86_64.rpm、cloog-ppl-0.15....转载 2019-06-10 13:17:10 · 9765 阅读 · 0 评论 -
中文在线Linux函数参考手册
Linux函数http://www.iteedu.com/os/http://net.pku.edu.cn/~yhf/linux_c/linux命令http://www.iteedu.com/os/linux/linuxcmd/linuxcmdlist/index.php转载 2019-06-12 12:54:39 · 5049 阅读 · 1 评论 -
centos或者Ubuntu挂载windows10文件夹
centos挂载windows文件夹格式:mount -t cifs //IP/share-folder /mnt-point -o username=your-username,passwd=your-password或者mount //192.168.1.100/www /usr/local/nginx/html/ -o username="你的window管理员账号",passwo...原创 2019-06-26 23:43:32 · 1890 阅读 · 0 评论 -
Linux网络服务器配置基础详解
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的 TCP/IP网络配置文件。 * /etc/con原创 2005-12-26 16:55:00 · 2712 阅读 · 0 评论 -
linux操作系统下c语言编程入门--Linux下C开发工具介绍
linux操作系统下c语言编程入门--Linux下C开发工具介绍 Linux的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程.GNU C 编译器GNU C 编译器(GCC)是一个全功能转载 2007-02-28 18:23:00 · 12790 阅读 · 2 评论 -
linux操作系统下c语言编程入门--基础知识
Linux程序设计入门--基础知识Linux下C语言编程基础知识前言:这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助--------------------------------------------------------------------------------原创 2007-02-28 17:53:00 · 2966 阅读 · 0 评论 -
linux操作系统下c语言编程入门--网络编程
linux操作系统下c语言编程入门--网络编程Linux系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编程,可以让我们真正的体会到网络的魅力。 想成为一位真正的hacker,必须掌握网络编程技术。现在书店里面已经有了许多关于Linux网络编程方面的书籍,网转载 2007-02-28 18:20:00 · 5051 阅读 · 0 评论 -
linux操作系统下c语言编程入门--消息管理
linux操作系统下c语言编程入门--消息管理 前言:Linux下的进程通信(IPC)Linux下的进程通信(IPC)POSIX无名信号量System V信号量System V消息队列System V共享内存1。POSIX无名信号量 如果你学习过操作系统,那么肯定熟悉PV操作了.PV操作是原子操作.也就是操作是不可以中断的,在一定的时间内,只能够有一个进程的代码在CPU上面执行.在系统当中,转载 2007-02-28 18:13:00 · 2202 阅读 · 0 评论
分享