linux操作系统
文章平均质量分 73
大城市的小蜗牛
这个作者很懒,什么都没留下…
展开
-
GCC【7】- 编译检查的是函数的声明,链接检查的是函数的定义bug
编译检查的是函数的声明,链接检查的是函数的定义原创 2022-07-04 17:49:05 · 168 阅读 · 0 评论 -
GCC【6】- 编译的4个阶段
gcc 编译的4个阶段原创 2022-07-04 07:04:52 · 1377 阅读 · 0 评论 -
GCC【5】- 态库和共享库
GCC 静态库和共享库原创 2022-06-13 21:29:14 · 272 阅读 · 0 评论 -
线程【1】-POSIX的线程取消点(Cancellation Point)的概念和理解
文章目录前言一、什么是取消点?1.1 pthread_cancel 做了什么?1.2 取消点是什么?1.3 取消点的实现二 、取消线程的使用异常2.1 异常出现的原因:2.2 取消线程引起的死锁2.3 原因分析2.4 同步机制和清理函数结合使用,解决问题总结前言提示:解决以下问题:什么是取消点?取消线程的使用异常. 使用线程取消如何导致独占锁的情况?为什么使用了线程同步机制之后,一定要使用清理函数?一、什么是取消点?1.1 pthread_cancel 做了什么?线程默认是可原创 2022-05-22 12:15:26 · 980 阅读 · 0 评论 -
GCC【3】-Win10 + CMake + MinGW+搭建STM32 GCC开源开发环境
文章目录前言一、安装git-bash二、使用步骤1.引入库2.读入数据总结前言放弃keil,iar收费IDE,使用开源工具开发编译arm单片机程序。一、安装git-bashgitforwindos下载并安装gitbash二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnin原创 2022-05-31 11:02:58 · 2967 阅读 · 3 评论 -
GCC【1】-Ubuntu18.04 系统离线升级gcc版本
文章目录前言一、按照所需版本下载gcc源码二、下载依赖三、移植前言提示:首先说明一下为什么写这篇文章:产品经理有一个需求,在ubuntu20.4中使用gcc_9.4.0为客户提供一个sdk开发包,但是我现在只有ubuntu18.04_gcc_version 7.3.0(Ubuntu 7.3.0-16ubuntu3),就想如何能将gcc_7.3.0升级到gcc_9.4.0呢?在离线环境下,在服务器上安装并更新gcc版本是一件特别复杂的,足足用时3个小时左右,特此记录方便记录和记忆一、按照所需版本原创 2022-05-24 14:49:02 · 1504 阅读 · 0 评论 -
【虚拟机】虚拟机提示盘空间不足
文章目录前言一、虚拟机占用硬盘越来越大1.1 vmware 提示盘空间不足总结前言完美解决虚拟机占用硬盘越来越大、删除快照出现内存不足错误一、虚拟机占用硬盘越来越大1.1 vmware 提示盘空间不足原因随着继续安装新的软件仍然在增大中,即使在ubuntu里面删除了文件仍然在windows主机中占用那么大的空间。但是在ubuntu下通过命令df-h查看,获取到的硬盘占用空间并没有那么大,非常的奇怪。网上的说法是:“虚拟机上的Linux等系统认为.vmdk是一个硬盘,将文件删除后其.原创 2022-02-11 06:15:47 · 898 阅读 · 0 评论 -
【Linux】使用systemd挂载文件系统
使用systemd挂载文件系统https://blog.csdn.net/z1026544682/article/details/95204931转载 2020-12-18 16:44:08 · 399 阅读 · 1 评论 -
【linux-1】的启动流程(initrd.img)
http://www.ibm.com/developerworks/cn/linux/l-initrd.htmlhttp://www.linuxfly.org/post/94_1_1.htm一、从哪里到哪里本文旨在描述linux中内核如何调用启动,然后如何从img的文件系统切换到硬盘的过程。描述起于:linux-2.6.11/init/main.c中函数 static int init(void * unused)描述止于:/etc/rc.d/rc.sysinit文件的被调用二、描写流程在li转载 2020-12-04 09:10:29 · 1423 阅读 · 0 评论 -
【Linux】/etc/issue、/etc/issue.net和/etc/motd的区别
转载《https://www.cnblogs.com/pluse/p/5531523.html》Linux使用这三个文件/etc/issue、/etc/issue.net和/etc/motd 来控制本地及远程登录前后的信息显示,新版本的还有动态motd:/run/motd.dynamic以及PAM模块来控制。网上很多相互转载,说的都不清楚,自己实际测试了一下,结果记录如下:首先终端有好几种类型,暂不要深究,仔细深究各种串口等底层的东西就来了(想要细究,请看我的另一篇文章:关于Unix/Linux的终端、转载 2020-12-04 08:50:48 · 1824 阅读 · 0 评论 -
【linux】systemd-networkd-wait-online拖慢Ubuntu20.04
systemd-networkd-wait-online拖慢Ubuntu这里的重启速度,是对比今年5月多我还没有把服务容器化、从S1实例上迁移过来的。所以可以不负责任地猜测,有几个不可避免的因素影响了开机时间:容器化,docker的启停影响开机进度;SA1实例启动本来就慢一点;腾讯给的镜像改了一些神奇的地方;……直到有一次,我看输入reboot之后半天机器都起不来,就上了VNC界面,就看到有类似的提示:A start job is running for Wait for Network t转载 2020-11-26 17:59:55 · 10194 阅读 · 1 评论 -
【linux】Systemd 教程
上一篇文章,我介绍了 Systemd 的主要命令,今天介绍如何使用它完成一些基本的任务。一、开机启动对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 $ sudo systemctl enable httpd上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/system里面的转载 2020-11-26 17:16:16 · 813 阅读 · 0 评论 -
【Linux】制作备份Raspberry Pi树莓派SD卡的img映像文件
谢谢博主的分享https://blog.csdn.net/zhufu86/article/details/109962309?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242添加链接描述方法1执行过程备份原分区数据删除原分区在原分区的起始点上新建分区,使用默认大小(SD卡剩余大小)保存分区修改,格式化新分区恢复数据对应的脚本如下#! /bin/sh原创 2020-11-26 15:29:43 · 432 阅读 · 0 评论 -
【git】.gitignore文件不起作用解决方案
1.创建在使用Git管理代码的过程中,可以修改**.gitignore**文件中的标示的方法来忽略开发者想忽略掉的文件或目录,如果没有.gitignore文件,可以自己手工创建。在.gitignore文件中的每一行保存一个匹配的规则例如:# 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/ # 忽略 bu原创 2020-09-15 07:42:28 · 430 阅读 · 1 评论 -
【Linux】Linux中fork,vfork和clone详解
Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程)fork#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main(void){ i原创 2020-09-11 08:36:29 · 475 阅读 · 0 评论 -
【Linux】关于fork后exec子进程继承父进程文件描述符保持开放的问题
https://www.cnblogs.com/SebastianHan/p/12469915.html在多进程编程中,根据业务需要会通过fork+exec执行shell脚本或其它程序,在fork后父、子进程对于每一个打开的文件描述符共享同一个文件表项,此时可能有多个文件描述符项指向同一文件表项。有时子进程不需要继承父进程的文件描述符,并且在exec后子进程继承下来的文件描述符成了耗费系统资源的一个累赘,此时应该怎么处理呢?接下来我将分享下我在工作中遇到的问题以及解决方案。...转载 2020-09-08 21:07:48 · 825 阅读 · 0 评论 -
【Linux】硬链接和软链接的区别
1.硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由zhi命令dao link 或 ln 创建,如:link oldfile newfile ln oldfile newfile由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。硬链接不能对目录进行创建,只可对文件创建。2. 软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据原创 2020-09-08 21:05:29 · 448 阅读 · 0 评论 -
【Linux】下Samba的移植与开发环境搭建(dns服务器)
LINUXSamba的移植与开发环境搭建 1 #! /bin/sh 2 # for config dns name 3 # for config samba server 4 # 5 6 options=$1 7 8 ! [ $options = '-s' ] && exit 1 910 DNS_NAME=$21112 if [ 's'$DNS_NAME = 's' ] ; then1314 # config for samba15原创 2020-07-29 09:43:24 · 227 阅读 · 0 评论 -
【Linux】linux网络知识
网关和路由器交换机功能的有哪些不同https://blog.csdn.net/pql925/article/details/85318994一篇文章搞懂,内网和外网到底怎么通信?http://m.it168.com/article_6045518.html计算机网络 之 TCP和UDP的端口号解析https://www.cnblogs.com/scutwang/p/3958128.html...原创 2020-07-27 11:24:37 · 190 阅读 · 0 评论 -
【Linux】Linux下查看网络参数以及修改方法
1、route -n2、ip route show3、traceroute www.prudentwoo.com -s 100 【第一行就是自己的网关】4、netstat -r5、more /etc/network/interfaces 【Debian/Ubuntu Linux】6、more /etc/sysconfig/network-scripts/ifcfg-eth0 【Red Hat Linux】—修改ip地址即时生效: ifconfig eth0 192.168.1.155 net原创 2020-07-24 07:50:38 · 975 阅读 · 0 评论 -
【linux操作系统】共享库
1 在运行时找出共享库https://blog.csdn.net/yjk13703623757/article/details/53217377转载 2020-07-16 07:54:20 · 123 阅读 · 0 评论 -
GCC【2】-gcc中的链接选项
1.gcc中的-w -W和-Wall选项https://blog.csdn.net/m7548352/article/details/495200692.理解gcc编译-O选项的作用https://www.cnblogs.com/pigerhan/p/3526889.html3.gcc参数之fmessage-length默认情况下,gnu工具链编译过程中,控制台输出的一行信息是不换行的,这样,当输出信息过长时(如编译错误时的信息),会导致你无法看到完整的输出信息,加入-fmessage-lengt转载 2020-07-16 07:51:15 · 780 阅读 · 0 评论 -
Linux系统的环境变量
在Windows系统下,很多软件安装都需要配置环境变量,比如安装jdk,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。而在Linux系统下,如果下载并安装应用程序,很有可能在键入它的名称的时候出现“command not found ”的提示内容。如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了,这涉及到环境变量path的设置问题,而path的设置也是在Linux系统下定制环境变量的一个组成部分。下面就来介绍下Linux系统的环境变量。简单转载 2020-07-12 12:15:58 · 194 阅读 · 0 评论 -
Linux的system()和popen()差异(源码)
Linux的system()和popen()差异https://blog.csdn.net/liuxingen/article/details/47057539?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachin转载 2020-07-11 13:59:32 · 275 阅读 · 0 评论 -
/bin,/sbin,/usr/sbin,/usr/bin,/usr/local/bin
/bin 是所有用户都可以访问并执行的可执行程序。包括超级用户及一般用户/usr/bin 系统预装的一些可执行程序,随系统升级会改变/usr/local/bin 用户安装的可执行程序,不受系统升级影响,用户编译安装软件时,一般放到/usr/local目录下/bin,/sbin,/usr/sbin,/usr/bin 目录这些目录都是存放命令的,首先区别下/sbin和/bin:从命令功能来看,/sbin下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin原创 2020-07-11 11:12:48 · 299 阅读 · 0 评论 -
Linux下profile和bashrc区别
1./etc/profile用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。2./etc/bashrc这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。3.~/.bash_profile用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user转载 2020-07-10 16:46:57 · 105 阅读 · 0 评论 -
linux命令logger使用
https://www.cnblogs.com/xingmuxin/p/8656498.html转载 2020-07-02 19:02:23 · 145 阅读 · 0 评论 -
vim 禁止tab制表符被替换成空格
"set expandtab "当设置成 expandtab 时缩进用空格来表示set tabstop=4 不能是softtop=4 set shiftwidth=4原创 2020-06-30 21:07:55 · 929 阅读 · 0 评论 -
linux 网络设置常用命令
dhcp-set udhcpc -b -i eth0 &net_get_gate_for_ip route -n | awk ‘$1 == “%s” {print $2}’net_set_ip ifconfig eth0 %d.%d.%d.%dnet_set_broadcast ifconfig eth0 broadcast %d.%d.%d.%dnet_ping ping -c原创 2020-06-29 17:51:59 · 89 阅读 · 0 评论 -
Linux sleep命令
Linux sleep命令可以用来将目前动作延迟一段时间。使用权限:所有使用者。语法sleep [--help] [--version] number[smhd]参数说明:--help : 显示辅助讯息--version : 显示版本编号number : 时间长度,后面可接 s、m、h 或 d其中 s 为秒,m 为 分钟,h 为小时,d 为日数实例休眠5分钟# sleep 5m显示目前时间后延迟 1 分钟,之后再次显示时间date;sleep 1m;date...转载 2020-06-29 17:37:55 · 419 阅读 · 0 评论 -
Linux下getopt()函数的简单使用
Linux下getopt()函数的简单使用https://www.cnblogs.com/qingergege/p/5914218.html转载 2020-06-22 11:07:26 · 110 阅读 · 0 评论 -
【HTTP协议】---HTTP协议详解
就不造轮子了:https://www.cnblogs.com/qdhxhz/p/8468913.htmllinux下的Http请求(包括post 和 get )1、curlget方法请求,curl “http://blog.csdn.net/alanwei04/article/details/79313029”post方法请求,curl -d “param1=value1¶m2=value2” “http://xxxx.xxx”2、 URL的各个组成部分详解一个完整的URL包括:转载 2020-06-22 11:04:59 · 150 阅读 · 0 评论 -
c语言基础:各种数据类型的输出占位符
下面是各种数据类型的输出占位符:short/int : %dlong: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间)long long: %lldchar : %cfloat/double : %f float默认是6位小数输出;可以在%f中控制;例如:%.2f:输出两位小数;char *s(字符串) :%sunsigned: %u (signed:有符号类型, unsigned:无符号类型;默认都是有符转载 2020-06-15 16:33:50 · 6900 阅读 · 0 评论 -
#pragma pack 用法详解
pack为struct、union和class等的成员对齐指定字节边界,与编译选项(属性 -> 配置属性 -> C/C++ ->代码生成 -> 结构成员对齐)的/Zp开关不同,它不针对整个项目,而仅针对模块,比如一个编译单元。1. #pragma pack(show)以警告信息的形式显示当前字节对齐的值。2. #pragma pack(n)将当前字节对齐值设为 n。3. #pragma pack()将当前字节对齐值设为默认值(通常是8)。4. #pragma pack(转载 2020-06-04 08:21:08 · 1773 阅读 · 0 评论 -
O_EXCL的使用方法与注意
open系统调用:#include <fcntl.h>int open(const char *pathname, int oflag, ... /*mode_t mode */ );其中,oflag有个可选值为:O_EXCLGenerate an error if O_CREAT is also specified and the file alreadyexists.This test for whether the file already exists and the c转载 2020-06-01 17:22:21 · 2026 阅读 · 0 评论 -
strstr和strchr的区别
通过函数的定义来区分:1.strstr:char *strstr(const char *haystack, const char *needle)可见,strstr函数搜索的是一个const char*型的数据,即字符串常量2.strchr:char *strchr(const char *str, int c)而strchr搜索的是一个int型的数据,即字符3.strrchrchar *strrchr(const char *str, int c)另外,strrchr返回字符c在字转载 2020-05-25 09:43:38 · 2358 阅读 · 0 评论 -
同步内核缓冲区
一、术语解释 脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。 内存映射:内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射原创 2020-05-09 10:33:13 · 203 阅读 · 0 评论