
LINUX
文章平均质量分 83
linux系统及技术技巧
liangweibeijing
这个作者很懒,什么都没留下…
展开
-
Linux GCC编译过程及生成静态链接库和动态链接库
一 gcc编译过程我们知道gcc是一个强大的编译器,很多Linux下的GNU工具都是用C语言写的,并且用gcc编译的,那么gcc的编译过程是怎样的呢,先来看一个总的流程图,我自己简单画的,凑合着看1首先是源文件经过预加载变成了.i结尾的文件,可以通过-E这个参数来生成这个中间文件,这里主要是把一些include的头文件和一些宏定义,放到源文件中。2从预加载的文件经过编译就会变成汇编语言的文件,这一步可以通过-S这个参数来生成这个中间文件3从汇编语言的文件通过汇编,就会变成目标代码.o的文件...转载 2021-04-28 11:28:06 · 1917 阅读 · 0 评论 -
kill与signal
kill号令用于终止指定的过程(terminate a process),是Unix/Linux下过程经管的常用号令。凡是,我们在须要终止某个或某些过程时,先应用ps/pidof/pstree/top等对象获取过程PID,然后应用kill号令来杀掉该过程。kill号令的别的一个用处就是向指定的过程或过程组发送旌旗灯号(The command kill sends the specified signal to the specified process or process group),或者断定过程号为.转载 2021-04-15 18:22:40 · 1006 阅读 · 0 评论 -
【Linux常用命令】Linux进程查询与结束: kill, killall
kill + PIDkill -9 + PID 加上-9 是强制终止的信号killall 是直接加进程名(但是进程名一定要完整) 就能杀掉这些进程一、进程查询方法1) 查看进程的方法:ps -ef 或者 ps auxroot 15087 0.0 0.0 0 0 ? S 23:31 0:00 [kworker/1:1]root 15219 0.0 0.0 0 0 ? S ...转载 2021-04-15 17:23:45 · 984 阅读 · 0 评论 -
Python 删除只读文件/文件夹【报错】
1、创建文件夹:os.makedirs(path)和os.mkdir(path)的区别在于:第一个会创建多级文件夹目录而后面只会创建一级的目录这个比较抽象,但意思就是说,如果你所写的文件路径从某个文件夹下开始,就没有相对应的文件夹了。那么,用第一个makedirs()就会全部都创建出来。但是用第二个就是报错。因为第二个只会创建一级文件夹。2、删除文件:os.unlink(path)。这个要指向特定的文件。如果是文件夹,就会报错。主要用途是删除文件。================转载 2021-04-01 17:00:44 · 1984 阅读 · 0 评论 -
find -print0和xargs -0解释及用法
平常我们经常把find和xargs搭配使用,例如:find . -name "*.txt" | xargs rm但是这个命令如果遇到文件名里有空格或者换行符,就会出错。因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了。这时候就需要-print0和-0了。**find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。**find的默认在每一个结果后加一个’\n’,所以转载 2021-04-01 16:49:46 · 1624 阅读 · 0 评论 -
浅谈标准I/O缓冲区
标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。它也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是它的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲:在填满标准I/O缓冲区后才进行实际I/O操作。常规文件(如普通文本文件)通常是全缓冲的。2、行缓冲:当在输入和输出中遇到换行符时,标准I/O库执行I/O操作。这允许我们一次输出一个字符,但只有在写了一行之后才进行实际I/O操作。标准输.转载 2020-08-04 11:15:58 · 1316 阅读 · 0 评论 -
make -C $(LINUX_KERNEL_PATH) M=$(PWD) modules
原创连接:http://tscsh.blog.163.com/blog/static/2003201032013151544087/新的内核模块编程中的make命令里有个M选项,如下:make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesM=$(PWD) 意思是返回到当前目录继续读入、执行当前的Makefile。请参考:从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响这个M是kbuild的东西呢..转载 2020-07-28 16:11:24 · 2211 阅读 · 0 评论 -
linux IO多复用3/3:epoll详解
IO多路复用:epoll总结1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#include <sys/epoll.h>int epoll_create(i转载 2020-07-24 17:21:35 · 150 阅读 · 0 评论 -
linux IO多复用2/3:poll详解
IO多路复用:poll1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数 函数格式如下所示:# include <poll.h>int poll转载 2020-07-24 17:18:41 · 149 阅读 · 0 评论 -
linux IO多复用1/3:select函数详解
linux select函数详解在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)从select函数返回后,内核告诉我们一下信息: •对我们的要...转载 2020-07-24 15:51:48 · 457 阅读 · 0 评论 -
sed与正则表达式
sed -i命令详解sed入门详解教程sed 是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作。sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed 的具体用法,但是个人觉得没有必要去学习它的每个细节,那样没有特别大的实际意义。网上也有很多关于 sed 的教程,我也是抱着学习的心态来学习 sed 的常见的用法,并进行系统的总结,内容基本覆盖了 sed 的大部分的知识点。文中的内容比较简练,加以实际示例来帮助去理解 sed 的使用...转载 2020-07-10 15:45:54 · 6516 阅读 · 0 评论 -
Linux如何查找处理文件名后包含空格的文件
Linux如何查找处理文件名后包含空格的文件当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替换处理掉这些空格呢?方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现\ \ \这样的可见字符,那么该文件名包含空格。当然,这个方法弊端很大,例如,效率低下,不能批量查找,只有当你怀疑某个文件名后有空格,这个方法才比较凑效。另外,不能查找文件中间包含空格的文件名。如下测试所示:[root@DB-Server k...转载 2020-07-08 19:07:32 · 1966 阅读 · 0 评论 -
Makefile 自动变量&字符替换
Makefile 自动变量&字符替换转自:https://www.cnblogs.com/w-smile/p/12513055.html一、自动变量:$*:不包括后缀名的当前依赖文件的名称这个变量表示目标模式中"%"及其之前的部分。如果目标是"dir/a.foo.b",并且目标的模式是"a.%.b",那么,"$*"的值就是"dir/a.foo"。这个变量对于构造有关联的文件名是比较有较。如果目标中没有模式的定义,那么"$*"也就不能被推导出,但是,如果目标文件的后缀是make所识别的转载 2020-06-30 09:34:23 · 903 阅读 · 0 评论 -
有关Linux下线程的调度
转自http://blog.youkuaiyun.com/hanchaoman/article/details/6697636有关Linux下线程的调度标签: linuxmanager多线程ibm工作编程2011-08-18 11:31 10838人阅读 评论(1) 收藏 举报 分类:linux系统(30) 版权声转载 2017-07-27 17:47:42 · 450 阅读 · 0 评论 -
Linux的进程/线程间通信方式总结
转自http://blog.youkuaiyun.com/kobejayandy/article/details/18863543Linux的进程/线程间通信方式总结2014-01-29 16:10 17386人阅读 评论(0) 收藏 举报 分类:Linux 精华文章(115) Linux系统中的进程间通信方式主要以下几种:转载 2017-07-27 15:46:34 · 1254 阅读 · 0 评论 -
va_start和va_end使用详解
转自http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参转载 2017-07-14 10:05:21 · 1039 阅读 · 0 评论 -
ubuntu手动安装软件包
转自:http://blog.chinaunix.net/uid-20778443-id-94528.html由于公司电脑不能直接上网,但是可以通过间接手段从网上下载,所以我就就有必要研究一下怎么通过手动的方法在ubuntu上安装软件。 1)手动安装包在ubuntu上一般都是用apt来安装软件的。如果不能直接通过网络更新,就需要下载deb包,用kpkg进行安装。转载 2015-06-16 18:40:38 · 8025 阅读 · 0 评论 -
Linux中Samba详细安装
**********************************************************Linux中Samba详细安装 ********************************************************** 为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务原创 2012-11-03 20:37:51 · 366 阅读 · 0 评论