
linux基础
文章平均质量分 52
sunxiaopengsun
这个作者很懒,什么都没留下…
展开
-
split分割(拆分)文件
split分割(拆分)文件需求:指定文件大小拆分文件# ll -h test/ |grep vmcore-rw-r--r-- 1 root root 12G 12月 7 00:20 vmcore工具:split操作过程:# split -b 900M vmcore# ll -h总用量 23G-rw-r--r-- 1 root root 1.3K 12月 7 00:25 md5.txt-rw-r--r-- 1 root root 12G 12月 7 00:20...原创 2021-08-27 13:31:07 · 261 阅读 · 0 评论 -
linux 内核 - ioctl 函数详解
https://blog.csdn.net/qq_19923217/article/details/82698787转载 2021-02-07 14:23:15 · 153 阅读 · 0 评论 -
mac 执行sed -i指令时,总是出现extra characters at the end of command
https://blog.csdn.net/lgh1117/article/details/50094595转载 2020-11-29 07:46:38 · 524 阅读 · 0 评论 -
linux管道pipe详解
https://blog.csdn.net/qq_42914528/article/details/82023408转载 2020-10-28 13:41:07 · 297 阅读 · 0 评论 -
【Linux高级编译】Linux内核的list.h的高效应用----单向链表和双向链表的实现
https://blog.csdn.net/szullc/article/details/86565368原创 2020-01-19 18:02:58 · 189 阅读 · 0 评论 -
VS2015中配置Pthread
一、安装平台Win7\8\1064位Microsoft Visual Studio 2015二、下载pthreads-w32-2-9-1tp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip解压后共有三个文件夹Pre-built.2pthread...原创 2020-01-16 16:11:05 · 762 阅读 · 0 评论 -
pthread_cond_wait()用法分析
条件变量 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 1. 创建和注销 条件变量和互斥锁一样,都有静态动态两种创建方式,静态方式使用PTHREAD_COND_INI...原创 2020-01-16 15:42:38 · 272 阅读 · 0 评论 -
在Linux中静态库.a和动态库.so 的创建和使用
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重...原创 2018-02-23 09:36:46 · 2309 阅读 · 0 评论 -
GCC链接选项-L,-rpath-link和-rpath
OpenWrt中编译qtopia和qte2是会找不到uuid的库,需要特别地使用-luuid来指定,即使用-L$(dir) -luuid。然而如果使用-Wl,-rpath-link=$(dir)选项,则会自动搜索libuuid.so进行链接。GCC里的链接器的选项是 -rpath 和 -rpath-link,看了下 man ld,大致是这个意思:-L: “链接”的时候,去找的目录,也就是所有的 -...原创 2018-02-24 09:28:09 · 616 阅读 · 0 评论 -
手工释放linux内存——/proc/sys/vm/drop_cache
author:skatetime:2012/02/22 手工释放linux内存——/proc/sys/vm/drop_cache 转载一篇文章 linux的内存查看:[root@localhost 0.1.0]# free -m total used free shared buffers cachedMem: ...原创 2018-02-28 19:11:18 · 259 阅读 · 0 评论 -
Linux 指定运行时动态库路径
众所周知, Linux 动态库的默认搜索路径是 /lib 和 /usr/lib 。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库, 并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函 数,以及该动态库的其它资源了。在 Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下...原创 2018-02-24 10:16:03 · 368 阅读 · 0 评论 -
linux下永久设置LD_LIBRARY_PATH
LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表。 ld链接器将优先在该变量设置的路径中查找,若未找到则在标准库路径/lib和/usr/lib中继续搜索。 临时设置LD_LIBRARY_PATH环境变量的最佳方式是: 在执行你的程序前,先在ba...原创 2018-02-24 10:23:34 · 14706 阅读 · 0 评论 -
windows下安装nfs 与linux共享
其实步骤很简单,如下: 1. 下载NFS Windows服务器软件, 点击打开链接 2. 安装上述软件。 3. 假设你安装的目录为:E:\Program Files (x86)\nfsd 那么在这个目录下找到export, 在里面配置你想发布的目录,规定各种权限。最简单的如:E:\clip -public 4. 现在就可以通过产品端Linu...原创 2018-02-24 15:15:57 · 4075 阅读 · 0 评论 -
Ubuntu14.04使用root登陆帐户
ubuntu 怎么启用root帐户? ubuntu 的root账户具有最高的系统权限,它类似于windows系统中的管理员账号,但是比windows系统中管理员账号的权限更高,一般都情况下不要使用root账户,但是有的时候还是要使用root账户,下面小编来教大家怎开启root账号工具/原料ubuntu14.04方法/步骤21如图所示,打开终端,END方法/步骤21输入sudo gedit /usr...原创 2018-03-08 13:47:30 · 968 阅读 · 0 评论 -
Ubuntu 14.04 为 root 帐号开启 SSH 登录
1. 修改 root 密码sudo passwd root2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config :xxx@ubuntu14:~$ su - rootPassword:root@ubuntu14:~# vi /etc/ssh/sshd_config3. 注释掉 #PermitRootLogin without-password,添加 ...原创 2018-03-08 13:45:33 · 338 阅读 · 0 评论 -
嵌入式Linux系统启动脚本rcS
嵌入式系统启动过程中,最重要一环就是启动服务。这些服务都是通过预设置好的脚本启动起来的,控制这些启动脚本的就是rcS启动脚本。rcS文件在/etc/init.d/下面,因为嵌入式系统一般经过剪裁,降低资源的使用率,简化系统启动流程,加速系统启动速度。这里看一个非常简单的启动脚本,并结合脚本解释下脚本含义。[plain] view plain copy#! /bin/sh // 必须含有这个第一...原创 2018-02-28 15:36:27 · 1403 阅读 · 0 评论 -
linux下C++ 插件(plugin)实现技术
源地址 : http://masterdog.blogchina.com/634683.html应用程序中使用插件技术,有利于日后的版本更新、维护(比如打补丁)和功能扩展,是一种很实用的技术。其最大的特点是更新插件时无需重新编译主程序,对于一个设计良好的应用系统而言,甚至可以做到业务功能的在线升级。本文介绍了linux下用C++实现插件的一个简单实例,希望能对大家有所启发。为了能做转载 2018-01-29 11:42:08 · 2402 阅读 · 2 评论 -
Linux C ftruncate 函数清空文件注意事项(要使用 lseek 重置偏移量)
之前有个要把打开的文件清空,然后重新写入的需求,但是使用 ftruncate(fd, 0)后,并没有达到效果,反而文件头部有了'\0',长度比预想的大了。究其原因是没有使用 lseek 重置文件偏移量,是我太天真了,以为清空文件就会从头开始写入。------------------------------------- 我是解释分割线 -------------------------------...原创 2018-02-10 11:44:04 · 493 阅读 · 0 评论 -
live555 编译动态库时遇到relocation R_X86_64_32 against `a local symbol'的错误
解决方法:将live555 四个库的makefile全部加上 -fPIC.$gcc -c hello.c$gcc -c main.c$gcc -shared -fPIC -o hello hello.o main.o.. relocation R_X86_64_32 against `a local symbol' can not be used whe原创 2018-02-05 16:15:26 · 992 阅读 · 0 评论 -
Linux 下挂载新硬盘方法
思路:ls /dev,查看所有磁盘,以sda ,sdb这样开头的均是磁盘针对新挂载上的磁盘,首先将其格式化,mkfs.ext3 /dev/sdb1之后mount即可Linux的硬盘识别:一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.1.关闭服务器加上新硬盘2.启动服务器,以r...原创 2018-02-10 15:45:16 · 945 阅读 · 0 评论 -
ipc连接时出来这个提示: 不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。中断与此服务器或共享资源的连接,然后在试一次...
今天在连接公司的Ubuntu资源共享文件的时候遇到了如下的问题:对如下问题的解决方案记录如下:经过网络查找出现该问题的原因是:现在使用的机器曾经与服务器:192.168.31.170有过连接,连接断开后操作系统未将连接状态清除。解决方法:打开cmd命令窗口:1.输入命令:net use查看你当前与网络资源的连接,例如驱动器映射、IPC连接。2.用net use * /del /y命令中断开所有连接...原创 2018-02-11 14:33:26 · 1283 阅读 · 0 评论 -
Win7下使用Putty代替超级终端通过COM串口连接开发板方法
1、如果电脑(笔记本)没有串口接口,则需要使用一个 USB-Serial 转换线,这里使用 prolific usb-serial USB--串口转换线,首先需要在win7上安装对应的 USB--串口转换线 驱动程序,PL2303_Prolific 驱动程序下载地址USB to I/O Port Controllers PL-2303 驱动程序下载地址:http://www.prolific.co...原创 2018-02-27 15:44:43 · 5531 阅读 · 0 评论 -
linux下.so、.ko、.a的区别
各类文件的区别与作用:1、对于.so文件 .so文件是用户层的动态链接库,用于用户层的动态链接使用,内核态的代码同样不能直接访问。2、对于.ko文件 .ko文件是内核态的动态链接库,用于内核态的动态链接使用,可以用于内核之间的模块相互调用。用户态的代码不可直接调用内核态的代码,但是可以通过其他方式进行通信。3、对于.a文件 .a文件是用于静态链接时,使用的静态库。4、对于.o...原创 2018-02-27 18:49:22 · 425 阅读 · 0 评论 -
nfs挂载错误wrong fs type, bad option, bad superblock
在linux中利用nfs挂载硬盘时发现提示wrong fs type, bad option, bad superblock错误了,在网上搜索了一下说是没有安装 mount.nfs了,我们只要安装mount.nfs就不会有wrong fs type, bad option, bad superblock错误提示了哦。今天碰到一个nfs挂载错误的问题,错误提示如下:mount: wrong fs t...原创 2018-03-08 11:59:09 · 24874 阅读 · 4 评论 -
busybox详解
转载地址:点击打开链接1.根文件系统简介所谓制作根文件系统,就是创建各种目录,并且在目录里创建相应的文件。例如:在/bin目录下放置可执行程序,在/lib下放置各种库等等。通常配合chroot命令使用。2.Busybox简介2.1Busybox简介Busybox是一个开源项目,遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个很小的可执行程序中,可以用来替代GNU fileutil...转载 2018-03-05 15:54:09 · 34440 阅读 · 2 评论 -
Linux错误 curses.h:No such file or directory解决方案
在Linux上编译代码时,遇到以下错误信息:curses.h:No such file or directory查阅相关资料,整理了下解决方案:在Debian/ Ubuntu Linux系统中,我们可以使用以下命令来安装ncurses:$ sudo apt-get install libncurses5-dev libncursesw5-dev而我使用的是 CentOS版本的Linux,其解决办法...原创 2018-03-05 16:07:36 · 4705 阅读 · 0 评论 -
linux c开发: 在程序退出时进行处理
有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源。c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理。这里总结一下这些情况,如何获取一个统一的退出处理的点,说白了就是写一个回调函数,让他在程序正常或异常退出时调用。先看正常退出,即调用exit或者main函数return亦或最后一个线程正常退出时,如何捕获退...原创 2019-04-24 09:40:19 · 302 阅读 · 0 评论 -
Linux 中的Core Dump设置与使用
https://blog.csdn.net/wangjiaweiwei/article/details/72883443转载 2019-04-13 17:21:35 · 148 阅读 · 0 评论 -
【Linux】进程间同步(进程间互斥锁、文件锁)
https://blog.csdn.net/qq_35396127/article/details/78942245转载 2018-11-08 18:20:51 · 500 阅读 · 0 评论 -
c++ 的string的格式化方法
https://blog.csdn.net/gll028/article/details/17055283/转载 2018-11-06 09:39:53 · 22630 阅读 · 1 评论 -
Linux下Shell输出重定向到空设备文件1>/dev/null 2>&1
Linux下使用shell命令时经常使用类似这样的Shell输出重定向:1>/dev/null 2>&1在Shell命令的结尾,我们可以通过>符号来重定向输出。 1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为22. /dev/null 空设备文件,相当于垃圾桶3. 重定向符号:>...原创 2018-11-01 17:05:15 · 12287 阅读 · 0 评论 -
semop异常分析
semop 常见的异常分析System V 信号量的P\V 操作通过函数semop实现,在使用的过程中经常会遇到一些异常,常见的如: errno 4,Interrupted system call errno 34,Numerical result out of range errno 11,Resource temporarily unavailable下面分别...原创 2018-10-20 16:15:10 · 2048 阅读 · 2 评论 -
linux查看文件夹大小
du:查询文件或文件夹的磁盘使用空间 如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定 深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小. 提醒:一向命令比linux复杂的FreeBSD,它的du命...原创 2018-09-26 16:03:48 · 5975 阅读 · 0 评论 -
shell中各种括号()、(())、[]、[[]]、{}的作用和区别
转载地址:https://blog.csdn.net/u013402321/article/details/80333272$()和 ` ` 在 bash shell 中,$( ) 与` ` (反引号) 都可用做命令替换用。例如 version=$(uname -r)和version=`uname -r`都可以是version得到内核的版本号各自的优缺点:1. ` `...转载 2018-09-12 09:21:06 · 1740 阅读 · 0 评论 -
解决SSH远程执行命令找不到环境变量的问题
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题。但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的。两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同!1. 通过SSH登录后再执行命令和脚本这种方式会使用Bash的interactive + login shell模式,这里面有...原创 2018-09-06 14:57:26 · 8369 阅读 · 1 评论 -
Linux下查看文件和文件夹大小
1 Linux下查看文件和文件夹大小2 删除系统日志等场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除多余的日志问题解决!回到顶部1 Linux下查看文件和文件夹大小当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 d...转载 2018-06-29 11:26:43 · 33230 阅读 · 0 评论 -
多线程下变量-原子操作 __sync_fetch_and_add等等
最近编码需要实现多线程环境下的计数器操作,统计相关事件的次数。下面是一些学习心得和体会。不敢妄称原创,基本是学习笔记。遇到相关的引用,我会致谢。 当然我们知道,count++这种操作不是原子的。一个自加操作,本质是分成三步的: 1 从缓存取到寄存器 2 在寄存器加1 3 存入缓存。 由于时序的因素,多个线程操作同一个全局变量,会出现问题。这也是并发编程的难点。在...原创 2018-05-14 14:26:13 · 758 阅读 · 0 评论 -
文件锁及其实例
1. 文件锁基本概念Linux中软件、硬件资源都是文件(一切皆文件),文件在多用户环境中是可共享的。文件锁是用于解决资源的共享使用的一种机制:当多个用户需要共享一个文件时,Linux通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。文件锁包括建议性锁和强制性锁:建议性锁:要求每个使用上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议性锁,它们依靠...原创 2018-04-13 10:04:04 · 1362 阅读 · 0 评论 -
Linux利用信号量实现线程的同步与互斥
线程使用互斥锁可以实现线程间的互斥,而互斥锁本身就是对资源的一种标识状态,当可以申请到锁时说明此时资源可以使用,当申请锁失败时说明资源此时被其他线程所占用不可使用,我们可以使用信号量来代替互斥锁实现。信号量用来表示资源数目,当一个线程要去访问资源时,必须先去申请信号量,如果可以获取到信号量那么该线程就可以正常运行,如果获取资源失败那么就需要去等待。当一个线程获取到信号量并且执行完成后必须去释放对应...原创 2018-04-12 15:05:27 · 848 阅读 · 0 评论 -
UUID 生成(源代码编译)
根据定义,UUID(Universally Unique IDentifier,也称GUID)在时间和空间都是唯一的。为保证空间的唯一性,每个UUID使用了一个48位的值来记录,一般是计算机的网卡地址。为保证时间上的唯一性,每个UUID具有一个60位的时间戳(timestamp)。这个时间戳表示自公元1582年(绝对不是1852,这是《COM技术内幕》,1999年3月第1版第89页中的一个错误)1...原创 2018-04-05 14:23:49 · 3321 阅读 · 0 评论