
Linux
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
理解Linux文件系统层次结构
Linux文件系统采用单根结构(/)设计,遵循FHS标准。主要目录包括:/bin存放基础命令、/sbin存放系统管理工具、/etc存储配置文件、/home存放用户数据。系统运行时数据存放在/var,临时文件在/tmp,第三方软件在/opt。硬件驱动位于/dev,内核和进程信息在/proc和/sys。理解这种层次结构有助于系统维护、故障排查和安全防护,是Linux用户必备的基础知识。原创 2025-06-16 08:50:46 · 1018 阅读 · 0 评论 -
Linux笔记-使用SCL离线升级GCC
本文介绍了在CentOS 7系统中通过离线方式升级GCC编译器的详细步骤。主要流程包括:1)在联网机器上修改软件源为阿里云镜像,安装devtoolset-9;2)查询并打包/opt/rh/devtoolset-9目录;3)将压缩包复制到离线机器解压;4)配置.bashrc文件添加环境变量。关键点:需确保机器架构一致,使用scl工具管理多版本,通过修改软件源解决CentOS 7停止维护的问题,最终通过source命令激活新编译器环境。该方法同样适用于其他devtoolset版本的安装。原创 2025-06-16 08:49:12 · 254 阅读 · 0 评论 -
C++|Linux笔记-对nm命令的初步认识(2024-10-11)
nm 命令是一个在 Unix 和类 Unix 系统中使用的工具,用于列出目标文件(对象文件)中的符号信息。它通常用于调试和分析程序,帮助开发者理解程序中的符号(如函数和变量)的信息。这个命令用于列出对象文件、可执行文件或库文件中的符号信息。• 对于逆向工程或安全分析,利用 nm 可以获取二进制文件中的符号信息,帮助分析其功能和结构。• 对于共享库或静态库,可以使用 nm 查看其导出和导入的符号,了解库的接口和依赖关系。• 通过查看未定义或未使用的符号,可以识别出可能冗余的代码,进行优化和清理。原创 2024-12-16 08:27:55 · 611 阅读 · 0 评论 -
Linux笔记-现场实施记录(找网口、挂载u盘)
p 选项,它的全称是 "phy-device" 的一个缩写,通常用于指示网络接口的物理设备进行某些操作,比如在网络接口上闪烁灯光,以便于识别。ssh登陆服务器后,首先使用lsblk(ls block)命令用于列出系统中所有可用的块设备以及它们的相关信息。此时对应的u盘就是/mnt/udisk目录了,拷入和拷出使用这个目录即可。在项目现场,进行实施,在此记录下,方便以后查阅。此时物理网口会闪烁,此时再看下是哪一个口,就用网线查哪一个。使用完后需要进行un操作,也就是反挂载,避免文件丢失。原创 2024-12-09 08:36:47 · 431 阅读 · 0 评论 -
Linux笔记-对Linux环境变量的进一步认识(2024-08-09)
此篇发布到互联网上的时间是:2024-11-11主要是PATH和LD_LIBRARY_PATH。原创 2024-11-11 08:29:18 · 648 阅读 · 0 评论 -
C++笔记-UTF8和UTF8-dom的区别
今天遇到的就是这个问题,我用notepad将ascii转utf8后,发现以前的c++解析程序core dumped了,定位到了读首行时,cout输出正常,但string[0],这种首行下标访问就不正常了,转ascii为原创 2024-10-14 13:55:37 · 714 阅读 · 0 评论 -
Minio笔记-Centos搭建Minio
minio之后,上传文件测试,文件存储目录下显示的文件是x.meta形式的,并不是与预想中的实体文件形式,原因是因为新安装的minio的版本比较新,貌似2022年6月份之后的版本就改成这种形式的文件了。访问 Minio 控制台:在浏览器中输入 http://your-server-ip:9000。默认的用户名和密码为minioadmin。如果是rpm版本的需要解压,并安装。原创 2024-09-09 08:43:39 · 830 阅读 · 0 评论 -
Docker笔记-启动容器时,时间与宿主机保持一致
根据linux获取时间的原理,其实读取的就是/etc/localtime这个文件,只要把宿主机中这个文件挂载过去就可以了。启动容器时,有时容器内部时区或时间与宿主机不一样,有些开源的软件使用起来会有问题,所以需要进行同步。:ro指的是read-only代表容器中对这个文件只是只读;-v指Volume(卷),挂载这个文件到容器的意思;时间与北京时间一样后,进行容器时间同步。宿主机使用ntp服务,更新时间。原创 2024-09-02 08:25:24 · 815 阅读 · 0 评论 -
Linux笔记-对.a静态库的进一步理解(2024-04-09)
问:遇到问题应该及早发现才算是好的方法吧,.a静态库需要其他程序链接他时才会发现问题,那.a库的优势在哪呢?答:是的,一般来说,及早发现问题是好的编程实践。静态库(.a文件)和动态库(.so文件)各有其优势,针对不同的应用场景选择合适的库有助于提高开发效率和程序可维护性:静态库(.a):优势:独立性: 静态库可以将所有依赖项(包括第三方库)打包在一起,使得程序在不同环境中运行更为可靠。可移植性: 可以将静态库嵌入到可执行文件中,方便在没有动态库的环境中运行。原创 2024-07-22 08:41:34 · 1178 阅读 · 0 评论 -
Android笔记-安装Termux开启ssh,安装vim、android-tool、python等
这里要注意,我家电视是192.168.0.200,你们家的自己看,并且在connect时,记得电视机要允许调试,不然adb devices是查不到此设备的。用电脑usb连接手机,下载好Termux,在安卓手机上安装好。这里就不记录笔记了,各个手机不一样。家里面有个老手机,想将此手机做成一个家庭服务器。目前准备先控制电视机。安装好后,用xshell等软件连上去,安装软件。安装ssh,并启动服务。原创 2024-06-17 08:45:36 · 820 阅读 · 2 评论 -
Docker笔记-Debian容器内搭建ssh服务
启动时注--net=host这样就可以用50022登陆了。--net修改.bashrc,运行容器后就启动ssh。密码设置完成后安装openssh-server。修改端口号为50022并添加配置。50022端口已被占用。原创 2024-06-11 10:59:11 · 1151 阅读 · 0 评论 -
C++笔记-makefile添加第三方.h和.cpp及添加.h和lib库模板
【代码】C++笔记-makefile添加第三方.h和.cpp及添加.h和lib库模板。原创 2024-05-06 10:51:23 · 703 阅读 · 0 评论 -
Linux笔记-对xargs的理解(2023-12-13)
在Linux中,xargs命令的全称是"eXtended ARGuments"。它的主要作用是读取标准输入数据,并将其作为参数传递给其他命令进行处理。xargs命令通常用于解决输入参数过多导致命令行过长的问题。它可以将输入数据分割成合适的大小,并多次调用其他命令来处理这些分割后的参数。此篇记录在个人笔记库的时间是2023-12-13,公布到互联网上的时间是2024-04-09。其中,command是需要处理输入参数的命令,可以是任何合法的命令。原创 2024-04-09 08:36:58 · 559 阅读 · 1 评论 -
Linux笔记-对系统进行运维,查看内存&文件夹&挂载盘大小,方便分析,删除不需要的东西
"-rss"对应的全称是"resident set size",表示进程使用的物理内存大小。所以,du -Sh | sort -rh | head -n 10 的整体命令意思是:显示目录中文件大小的概述,按文件大小逆序排序,并显示排名前10的结果。在Linux中,"ps aux --sort -rss"是一条命令,它的作用是列出当前正在运行的进程,并按照内存使用量进行降序排序。"ps"是"process status"的缩写,用于显示当前运行在系统中的进程信息。原创 2023-12-18 09:05:19 · 1612 阅读 · 0 评论 -
Linux笔记-对/dev/vda1和/dev/vda2的理解
首先是这张图:对于:/dev/vda1和/dev/vda2可以知道,这个机器是在虚拟机上的,从设备描述中可以看到,与IO有关。原创 2023-11-06 08:54:51 · 8810 阅读 · 0 评论 -
Linux笔记-so.1和so的区别(三方程序链接Qt的so.1和so)
如果是这样的,那么需要把这些都拷贝到对应的lib目录下,其他程序调用的时候一般不会直接链接到libXXXLib.so,会链接到so.版本号的程序所以有时就会出现error while loading shared libraries .... not found。领导让你从中扣出某个功能,再进行一些业务操作,变成新的程序,而要扣的某些功能,有的用了公司其他人开发的so。②使用ldd,查看程序链接到哪些dll,在国内,写的so一般都没有版本号,没有链到版本号的so要特别注意;最后屁股能坐得住椅子,慢慢测。原创 2023-06-05 20:46:13 · 5807 阅读 · 0 评论 -
C/C++笔记-使用Qt的UI文件时make流程
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;从中发现了个有意思的,以前都以为moc_xxx.cpp文件是通过对于的.h和.cpp使用moc联合生成的,现在发现他仅仅是使用对应的.h文件生成。这里就很明确的发现了,在编译阶段,使用了Q_OBJECT和继承了QObject的类会编译时会生成2个object文件,分别是原始object和带moc的object文件。-O2:optimization优化,比-O高一级的优化,编译优化,具体优化哪些内容,在此不说明;原创 2023-05-15 11:04:35 · 2519 阅读 · 0 评论 -
C/C++笔记-构造makefile使用MOC程序及编译,链接
②:$(PROGRAM): $(OBJECTS):这个会先找在文件中找main.o Test.o moc_Test.o,如果找不到就在makefile下,看有没有对应的标签。背景是这样的构造一个Test类,使用了Q_OBJECT宏,和继承了QObject,也就是元对象,这时,makefile需要如何写。每一条命令在前一篇文章中已经说明了。原创 2023-05-08 21:17:02 · 3851 阅读 · 0 评论 -
C/C++笔记-分析带有Q_OBJECT继承QObject的类make流程
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;从中发现了个有意思的,以前都以为moc_xxx.cpp文件是通过对于的.h和.cpp使用moc联合生成的,现在发现他仅仅是使用对应的.h文件生成。这里就很明确的发现了,在编译阶段,使用了Q_OBJECT和继承了QObject的类会编译时会生成2个object文件,分别是原始object和带moc的object文件。-O2:optimization优化,比-O高一级的优化,编译优化,具体优化哪些内容,在此不说明;原创 2023-05-03 14:49:49 · 3977 阅读 · 1 评论 -
C/C++笔记-写一个Makefile并链接QtCore库使用QString,QDebug
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;②用于运行时指定所有引用库的位置,作用同修改环境变量(LD_LIBRARY_PATH),并且库路径引用优先级高于LD_LIBRARY_PATH;③$原创 2023-04-23 14:52:20 · 2462 阅读 · 2 评论 -
C/C++文档阅读笔记-A Simple Makefile Tutorial解析
上面定义了CC和CFLAGS两个宏,目的是方便makefile后面的脚本使用,CC=gcc并且后面的$(CC) -o hellomake hellomake.o hellofunc.o说明这个CC=gcc是使用C编译器,CFLAGS列出来标签的list, -I . 编译成.o文件需要依赖当前目录的.h文件。没用makefile文件,程序员对代码进行修改后,就需要不停按键盘的↑键去找对应的命令进行编译,如果新增了一个.c文件,还需要修改对应的命令。(可以用“\”来转义,以“\%”来表示真实含义的“%”字符)原创 2023-03-30 09:10:46 · 3365 阅读 · 5 评论 -
Linux笔记-使用grep检索指定字符串
如果这里面有很多文件夹,还需要检索子文件夹中的字符串带个-r就可以了。以前都是用find和grep这种组合命令去检索。这种更加灵活点,但是有时用grep就够了。-i:不区分大小写;原创 2023-03-30 09:05:07 · 3010 阅读 · 0 评论 -
Linux笔记-Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.“)
这里是我用把Python用pyinstaller打包后,出现的问题。安装好后,再重按下Python3。解决是重安下OpenSSL。原创 2022-07-31 14:49:33 · 1641 阅读 · 0 评论 -
Linux笔记-达梦DPI开发环境搭建(无需搭建达梦库)
这里搭建的思路是从搭建好达梦库的机器中将达梦DPI的so和对应的include导出来,到新机器上,就是DPI的开发环境了。其中so为:libdmdpi.so但这里要保证几点:①搭建好达梦库的机器操作系统与新机器要一致。②最后CPU的架构都是一致的,比如X86_64架构。编译时,就把include包含上,再把libdmdpi.so链接上。就好了。程序运行时,可能会libdmdpi.so找不到。需要做如下修改:在最后面添加好libdmdpi.so的路径。即可,如:再重新加载下即可:具体源码可参原创 2022-07-13 09:16:06 · 2085 阅读 · 0 评论 -
Qt笔记-Centos7搭建OpenSSL开发环境及Qt调用OpenSSL实例
这里Centos上已经安装好了Qt5.5.1下面搭建下OpenSSL首先下载并安装zlib再安装 perl-Test-Harness随后下载openssl-1.1.1o并安装:完成好后设置好环境变量在ssl.conf中添加如下内容:最后运行:就可以看到OpenSSL版本了创建Qt项目:OPenSSLDemo.promain.cpp运行截图如下:源码打包下载地址:Qt/OpenSSLDemo at master · fengfanchen/Qt · GitHub原创 2022-07-07 09:02:17 · 695 阅读 · 0 评论 -
C++笔记-解决Linux上Qt程序一运行就core dumped(思路)
这里记录了本次解决方法,这里是因为机器里面有2个开发环境,在此记录下。前辈程序员不用pro去管理Qt项目,直接用Makefile。我在Makefile加入Qt的lib和include后,一运行就core dumped,用ldd查了下,发现他连接到了Qt4的so,因为这个机器,有Qt5,又有Qt4。我添加了Qt5的lib和include,报错了,这里使用gdb 进程名 core名,在where,查下是哪个地方有问题。发现是QtGui出现问题了。这里去查下Makefile里面,是不是关联了什么没有必要的Qt4相原创 2022-06-30 10:52:55 · 1083 阅读 · 0 评论 -
C++笔记-Centos7搭建OpenCV3.4开发环境
目前是2022-04-25 23:48:03,此篇博文分享到互联网上估计是1-2个月后的事了,此时的OpenCV3最新版是3.4.16这里前提是gcc,g++,cmake都需要安装好。没安装好的,用这个命令:将源码下载好,解压,创建build文件,在cmake这里一定要生成opencv_world,这样后期开发和部署都方便。出现Configuring done和Generating done就是成功了。然后就直接make就好了。这里可以看到:include文件在/usr/local/inc原创 2022-06-20 08:50:30 · 1474 阅读 · 2 评论 -
Linux笔记-iptables模拟公司环境配置
需求有3点:①员工在公司内部(10.10.155.0/24,10.10.188.0/24)能访问服务器上的任何服务。②出差员工在上海,通过VPN连接到公司,外网(员工)拨号到VPN服务器,就可以使用内网的FTP、SAMBA、NFS、SSH。③公司有一个门户网站需要允许公网访问。允许外网访问服务:http 80/tcp https 443/tcp smtp 25/tcp smtps 465/tcp pop3 110/tcp pop3s原创 2022-04-01 09:00:10 · 1041 阅读 · 0 评论 -
Linux笔记-ftp主动和被动模式下iptables的规则配置
服务端准备首先安装vsftpd:yum -y install vsftpd启动服务:systemctl start vsftpd.service配置文件目录在:/etc/vsftpd/vsftpd.conf默认情况下,他是开启匿名访问的:客户端准备安装ftpyum -y install ftpftp主动模式客户端使用主动模式:主要命令:ftp ip地址passive运行[root@bogon ~]# ftp 192.168.原创 2022-03-30 08:48:53 · 2084 阅读 · 0 评论 -
FTP笔记-FTP主动模式和被动模式
FTP的全称为:File Transfer Protocol,也就是传文件的,分为主动模式和被动模式,具体看下面的图:这里有个要注意的地方:大部分情况下都是用的被动模式,主动模式基本上不推荐用。因为涉及几个问题:①安全性:客户端一般都有防火墙的,防火墙一般配置是不让随便进,但可以随便出。这样服务端20端口很难连接到客户端开放的端口上。②连通性:都在一台局域网的机器可以使用主动模式,如果不在一个局域网,比如服务器是阿里云的,客户端是小区的网。这里很有可能,整个小区的宽带,就1个i.原创 2022-03-29 08:45:28 · 8361 阅读 · 0 评论 -
Linux笔记-解决iptables配置后,本机无法访问本机,本机无法访问其他主机问题
解决两个问题:①本机无法访问本机。②本机无法访问其他主机。原理:一般iptables配置的是eth设备,而本机用的是lo设备,所以lo设备也要操作。解决本机无法访问本机:iptables -I INPUT -i lo -j ACCEPT测试下拿不到百度的数据:[root@bogon ~]# curl -I http://www.baidu.com^C[root@bogon ~]# 解决本机无法访问其他主机:iptables -I INPUT -m state原创 2022-03-28 08:42:08 · 3017 阅读 · 4 评论 -
Linux笔记-iptables开放指定端口,开放ICMP协议,其他端口禁止访问
下面实现3个规则:①对所有的地址开放本机的tcp(80、22、10~21)端口的访问。②运行对所有地址开放本机的基于ICMP协议的数据包访问。③其他未允许的端口则禁止访问。#查看本机开放的端口netstat -luntp[root@bogon ~]# netstat -luntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address原创 2022-03-27 08:55:46 · 14901 阅读 · 2 评论 -
Linux笔记-iptables规则原理和组成
NetfilterNetfilter:是Linux操作系统内核层内部的一个数据包处理模块。Hook point:数据包在Netfilter中的挂载点(PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)。用通俗的话解释下:数据包通过网卡,走到操作系统内核后,就会进入Netfilter中这5个挂载点。可以在这5个挂载点进行Hook,修改数据包。Netfilter与iptablesiptables规则组成组成部分:四张表 + 五条链原创 2022-03-24 08:37:44 · 603 阅读 · 1 评论 -
Python笔记-Linux平台中Flask打包成执行程序
这里使用的是pyinstaller。这里要先安装python3。安装的使用如果没有带上–enable-shared要重新按下./configure --prefix=/usr/local/python3 --enable-sharedecho "/usr/local/python3/lib/" >> /etc/ld.so.confldconfig安装pyinstallerpip3 install pyinstaller 然后就可以直接进行打包:pyinst原创 2022-03-14 09:05:04 · 3354 阅读 · 2 评论 -
Linux笔记-Centos7将python2升级为python3(及修改yum配置防报错)
安装各种依赖:yum install make gcc gcc-c++yum install libffi-devel -yyum -y install zlib*下载Python3.7.8并安装mkidr pythonwget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgztar -xf Python-3.7.8.tgzcd Python-3.7.8/./configure --with-sslmakemak原创 2022-03-14 09:00:29 · 4757 阅读 · 1 评论 -
Qt笔记-QProcess切换用户执行进程(Linux)
如下命令:/bin/su cff -c "/bin/ping 127.0.0.1"运行截图如下:在Qt里面使用QProcess,不需要那个双引号,如下代码:#include <QCoreApplication>#include <QProcess>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QStr.原创 2022-02-21 08:42:54 · 1437 阅读 · 1 评论 -
Linux笔记-grep -v功能相关说明
背景比如服务器上有一个sh脚本,这个sh脚本会启动一个进程,这个进程名和这个sh脚本名是一样的,只是一个带有.sh一个没有。现在有个需求,查询这个进程或这个脚本是否正常运行,如,进程名是HelloWorld,脚本名是HellWorld.sh操作①查询关于HelloWorld相关的进程:ps -eo pid, cmd | grep HelloWorld查询结果:6088 /bin/sh /root/HelloWorld.sh6093 /root/HelloWord625原创 2021-12-21 08:47:31 · 1666 阅读 · 0 评论 -
XShell笔记-XShell登录脚本的使用
最近(2021-10-13)和一个工作了6年的大佬一起工作,发现xshell还能这样使用,在此记录下,方便以后查阅。如这样的企业环境,192.168.1.100~192.168.1.200这是一个局域网。192.168.1.210~192.168.1.230是另外一个局域网。(注意:子网页码都是255.255.255.0,本来都是一个局域网,被路由器、交换机、防火墙等隔断了,变成了2个)192.168.1.200这台机器开放了权限,可以在2个局域网互通,其他的都不行。通常要操作1原创 2021-11-30 08:31:49 · 5233 阅读 · 0 评论 -
Linux笔记-配置本地光盘未yum源
cd /etc/yum.repos.d/vim CentOS-Media.repo可知只要把光盘挂载到/media/CentOS//media/cdrom//media/cdrecorder/原创 2021-11-02 08:41:37 · 246 阅读 · 0 评论 -
Linux笔记-Centos7编译安装GmSSL
这里我的OpenSSL版本为1.0.2先升级到1.1.0wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-stable.zipunzip OpenSSL_1_1_1-stable.zip./config --prefix=/usr/local/opensslmake && make install替换旧的opensslmv /usr/bin/openssl /usr/bin/openss原创 2021-09-07 08:44:01 · 1627 阅读 · 0 评论