
玩转linux
文章平均质量分 77
所有与linux相关的话题,都在此进行讨论汇总,欢迎大家随时交流指正
leon1741
我发誓我要活到一百岁!如果活不到,我就去死!
展开
-
如何理解和分析linux系统的CPU平均负载情况(load average)
最近研究linux时接触到了一个新的概念,叫做CPU的平均负载(load average)。之前都只听说过CPU的使用情况,很少听说过负载情况。于是对这个概念进行了一下研究学习,总结如下,以便日后查阅。原创 2019-09-23 21:02:08 · 6960 阅读 · 2 评论 -
linux下ls -l命令(即ll命令)查看文件的显示结果分析
在linux下使用“ls -l”或者“ls -al”或者“ll”命令查看文件及目录详情时,shell中会显示出好几列的信息。平时也没怎么注意过,今天忽然心血来潮想了解一下,于是整理了这篇博客,以供参考:首先给出一张典型的显示结果: 下面对其中的每一列进行详细的分析:一、文件类型 表示该文件的类型:“-”表示普通文件;“d”表示目录;“l”表示链接文件;“p”表示...原创 2018-09-04 16:59:02 · 78467 阅读 · 29 评论 -
如何将linux编译过程中的警告及错误信息输出到文件中
作为一个完美主义者,我在windows系统下编写和调试程序时,都会小心翼翼的搞定每一个warning,使得程序最终编译出来的输出结果非常干净,简简单单的一个success,让人看的神清气爽!然而在linux下,事情往往不如我所愿,特别是在编译一些大型的开源项目,比如u-boot、linux内核、qt等程序的源码时,一方面本身这些代码的规模就极其庞大,就算所有模块全部没有警告,仅仅是编译输出的其...原创 2018-08-25 15:34:51 · 23942 阅读 · 7 评论 -
linux下的source命令(.命令)解释及应用
用法:source filename # filename必须是可执行的脚本文件或者. filename # 注意“.”号后面还有一个空格功能:通知当前shell读入路径为filename的文件并依次执行文件中的所有语句。通常用于重新执行刚修改的初始化文件,使之立即生效,而...原创 2018-08-22 15:25:06 · 46509 阅读 · 0 评论 -
如何解决Ubuntu 14.04编译make menuconfig时缺少'ncurses-devel'库
今天在使用64位的Ubuntu 14.04系统编译linux源码的make menuconfig命令时,得到了一个错误的提示,说我没有安装相应的库:Unable to find the ncurses libraries or the required header files.'make menuconfig' requires the ncurses libraries.Instal...原创 2018-08-15 11:05:47 · 9028 阅读 · 4 评论 -
linux系统下的“静态库和动态库”专题之二:库的创建和使用
接上文【linux系统下的“静态库和动态库”专题之一:库的概念和规则】所述,我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。– 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 – 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静...原创 2018-04-04 09:56:48 · 8016 阅读 · 0 评论 -
linux系统下的“静态库和动态库”专题之一:库的概念和规则
什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的本质不同,因此二者的库也是不兼容的。 本文仅限于介绍linux下的库。库的种类 linux下的库有两种:静态库和共享库(动态库)。 二者的不同点在于代码被载入的时刻不同。 – 静态库的代码在编译过程中已经被载入可...原创 2018-04-04 09:31:12 · 7972 阅读 · 0 评论 -
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found 解决办法
本文详细介绍了/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found的解决办法。运行QT没有任何反应,原来是glibc版本不够。于是下载glibc的源码进行编译和安装,却又遇到gawk工具版本过旧的问题,于是先处理gawk,然后重新处理glibc,直到全部成功!原创 2017-10-11 16:27:50 · 65083 阅读 · 6 评论 -
浅谈linux中的根文件系统(rootfs的原理和介绍)
linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法向其他初学者们给出一个很全面很到位的解释。于是,今天我们就来理一理这个话题。原创 2017-10-04 22:37:53 · 87079 阅读 · 5 评论 -
如何在linux程序中捕获异常信号
最近在搞一个linux项目,碰巧遇到了一个段错误的问题。经过一段时间的排查和学习,对段错误这个概念有了些许的理解,现总结如下。一、什么是段错误;二、段错误是如何产生的;三、段错误该如何捕获;原创 2017-09-30 15:57:31 · 15511 阅读 · 0 评论 -
linux下查找命令which/whereis/locate/find的对比和总结
linux下的查找命令有很多,常用的有which、whereis、locate、find。那么这4个命令之间各自有什么特点,又有什么区别?什么时候该用哪个才最合适呢?详细不少人没法给出一个精确的答案,包括我自己也是。所以,今天我们就来进行一个全面的总结和对比。原创 2017-10-10 17:45:03 · 10513 阅读 · 0 评论 -
如何在Ubuntu 12.04/Ubuntu16.04下安装lzop压缩工具源码
lzop是一款与gzip很类似的文件压缩工具,它使用lzo压缩库来提供服务,与gzip工具相比,它的最大优势就是极快的压缩速度和解压速度(在相同的压缩比例的前提下)。那么, 在linux(ubuntu)系统下,要如何编译和安装lzop工具呢?请看本文所述。原创 2017-10-10 09:48:02 · 16034 阅读 · 2 评论 -
linux驱动模块命令大全insmod/rmmod/modprobe/depmod/lsmod
玩过linux开发的人都知道,应用程序调用那些以模块化编译生成的驱动程序时,都必须先加载该驱动程序。至于如何加载,则有两种方式,一个是insmod命令,一个是modprobe命令,那么这两个命令究竟应该要怎么用,各自有什么区别,何时使用比较合适呢?一、使用方法以hello.ko驱动模块为例:insmod命令进入hello.ko驱动模块文件所在的目录,然后直接 insmod ...原创 2018-09-05 12:04:51 · 11782 阅读 · 0 评论 -
linux系统下top命令的详细用法、参数详解、以及模式配置
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它显示系统中CPU最“敏感”的任务列表,并可以按CPU使用、内存使...原创 2018-11-13 10:34:46 · 16195 阅读 · 0 评论 -
浅谈linux中的硬链接和软链接文件以及ln的使用方法
在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。一、基本概念1、硬链接开始之前,先解释一个概念,叫做索引节点(Inode)。在Linux的文件系统中,保存在磁盘分区中的文件,不管是什么类型,系统都会给它分配一个编号,这个编号被称为索引节点编号(In...原创 2019-08-29 14:11:23 · 13680 阅读 · 2 评论 -
浅谈bash shell的种类以及linux系统中的profile和bashrc配置文件
相信不少玩过linux的人,看到诸如~/.bash_profile、~/.bashrc、~/.profile、/etc/profile、/etc/bashrc之类的文件,都会有似曾相识的感觉,依稀记得配置什么参数或者路径的时候用过这些文件,又或者是修改系统设置的时候改过它们。也有厉害一点的,能指出这些文件其实可以分为两个类别,分别是bashrc和profile,它们都是用来配置环境变量的,当你安装了一些开发工具的时候就要修改这些文件来使得安装的内容能够全局生效原创 2019-08-28 15:46:45 · 2079 阅读 · 0 评论 -
【史上最全】vim编辑器从入门到入坟,从惊叹到精通(不断完善中)
玩linux的人都知道vi,这是一个传奇的工具,所有的类Unix系统都会内建vi文本编辑器,其他的编辑器则不一定会存在。不过vi使用起来比较繁琐,功能也相对比较单一,所以目前我们使用比较多的是它的进阶版——vim编辑器。这篇文章就是对vim进行全方位的介绍,包括理论、实践各个方面各个维度,而且会加入我自己在实际操作中的一些心得总结,最关键的是会不断的完善和补充,希望本文真能如标题所述,成为一篇引导大家从入门到入坟,从惊叹到精通的好文,也希望大家多多指导、多多交流!原创 2019-08-25 12:31:56 · 8085 阅读 · 0 评论 -
linux下如何实现对目录下所有文件按照创建时间/修改时间重命名
最近在整理一些视频和照片时发现,这些文件的命名方式很乱,有的是IMG_20110101.jpg,有的是DISC_20110404.jpg,还有其他的,反正就是很乱,我想整理都不好整理。于是我就冒出一个想法,我给它们重命名一下好了,按照拍摄的时间顺序来命名,不就清晰了吗?不过,貌似手头没有这样的软件和工具,去网上搜了一圈,也没有找到合适的。作为一个程序猿,那就自己动手写一个吧,分分钟的事情~~思...原创 2019-07-17 17:34:26 · 5592 阅读 · 0 评论 -
线程安全存储以及pthread_getspecific/pthread_setspecific
最近阅读一份linux的线程代码时,看到了一套函数,pthread_getspecific和pthread_setspecific函。光从名字上,完全无法理解出他们到底是干啥的,结合代码来看,也不是很清楚。于是就去百度。可是,百度来百度去,优快云来优快云去,反反复复找了不少资料,却始终没能完全理解透彻。感觉大家都是从同一份博客里抄来抄去的,甚至连其中的错误都照抄了,不但没能解答我的疑惑,反而还...原创 2019-06-10 17:28:50 · 8000 阅读 · 10 评论 -
linux监测指定进程的CPU及物理内存消耗情况(bash脚本)
近日,由于工作要求,研究了一下如何在linux系统下对某个指定的单个进程进行监测,分析其CPU及物理内存的使用情况,并基于bash脚本写了一个独立的模块,完整的实现上述功能。现将整个模块的代码贴上,以便日后借鉴,并与同道中人分享。源码在ubuntu 16.04、嵌入式主板等多个系统下运行亲测正常。注:另有一份代码是基于c语言的,同样实现上述的功能,贴于另一篇博客,如有需要,可点击此处跳转。#!...原创 2019-02-12 16:51:08 · 4035 阅读 · 0 评论 -
linux监测指定进程的CPU及物理内存消耗情况(c程序)
近日,由于工作要求,研究了一下如何在linux系统下对某个指定的单个进程进行监测,分析其CPU及物理内存的使用情况,并基于c语言写了一个独立的模块,完整的实现上述功能。现将整个模块的代码贴上,以便日后借鉴,并与同道中人分享。源码在ubuntu 16.04、嵌入式主板等多个系统下运行亲测正常,各类注释都比较齐全,对模块的使用方法也有介绍,此处就不再赘述,若有问题,自行阅读源码即可。注:另有一份代码...原创 2019-02-12 16:48:51 · 8204 阅读 · 2 评论 -
Ubuntu14.04下使用apt-get命令傻瓜式安装ffmepg成功
今天要在Ubuntu 14.04的系统上安装ffmepg,百度一查,很多人说要去下源码什么的过来编译,我嫌麻烦,就想直接通过apt命令来傻瓜式安装,但是直接用命令“sudo apt-get install ffmpeg”不行,提示找不到目标,估计是源不对,尝试了好几个源,都没法成功。最后终于找到一个可用的,记录在此,便于后续查阅。sudo add-apt-repository ppa:kiril...原创 2018-12-17 20:12:36 · 3093 阅读 · 0 评论 -
Ubuntu14.04系统下安装配置OpenCV 4.0.0开发环境全过程
最近研究一个项目时需要用到OpenCV,于是自己尝试在Ubuntu 14.04系统下安装了这个开发环境。下面就将具体的过程记录一下,便于后期查阅和同行分享。零、开发环境首先介绍一下我的开发环境:系统版本:Ubuntu 14.04;软件版本:OpenCV 4.0.0;一、准备工作首先,需要在你的机器上安装一系列必要的工具,包括:sudo apt-get update ...原创 2018-12-17 14:10:03 · 12923 阅读 · 8 评论 -
Ubuntu 14.04编译opencv_videoio.dir/src/cap_gstreamer.cpp报错
今天在研究AR_ToolKit,它需要搭建OpenCV的环境。于是下载了OpenCV的源码进行编译(下载方法就是直接git克隆git clone https://github.com/opencv/opencv)。编译opencv的过程中,一开始都一帆风顺,不过后来遇到了以下问题:[ 49%] Building CXX object modules/videoio/CMakeFiles/ope...原创 2018-12-16 16:49:11 · 6200 阅读 · 0 评论 -
怎么理解ubuntu中的软件包管理器apt和dpkg
大家都知道在ubuntu下,安装软件经常会用到一个命令就是“apt-get install”,这里的apt命令,其实是linux系统下一个通用的软件包管理器,使用该命令可以很方便的用来安装和卸载软件。然而,很多同学应该也知道,ubuntu下,还有另外一个软件包管理器,叫做dpkg,它也可以实现软件的安装和卸载。那么,它们二者究竟各自负责什么,又有什么区别呢?1、apt命令Advanced Pa...原创 2018-12-20 16:48:46 · 11035 阅读 · 0 评论 -
linux下如何使用configure/make/make install命令编译安装卸载程序
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。安装成功的源码就是所谓的可执行文件,在你不需要的时候,也是可以删除/卸载(remove/uninstall)的。下面就逐个进行分析:源码的配置配置命令就是configure命令。一般来说,configure文件是位于源码根目录下的一个可执行的脚本文件,它有很多选项,而且不同软件的选项都...原创 2018-12-14 19:51:26 · 19295 阅读 · 2 评论 -
如何在Ubuntu中用apt命令删除/卸载软件包(remove/clean/purge)
大家都知道,在ubuntu中安装一个新的软件包时,直接使用“apt-get install”命令就好。那么,如果要卸载一个软件包呢?百度一下,你会发现,在ubuntu下有N多种可以用于卸载软件的方法和命令,比如remove/autoremove/clean/autoclean/purge等,这些命令究竟该怎么使用,各自又有什么优缺点呢?命令特点apt-get autoremo...原创 2018-12-20 11:05:32 · 128633 阅读 · 2 评论 -
linux下如何在shell中结束进程(ctrl+c\ctrl+z\ctrl+d\ctrl+\的用法)
linux下如何结束进程(ctrl+c\ctrl+z\ctrl+d\ctrl+\的区别和用法)原创 2017-09-30 11:03:41 · 27423 阅读 · 0 评论 -
linux下的僵尸进程产生原因和解决方法(含具体代码)
在linux系统中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的“僵尸”进程。“僵尸”进程是一个早已死亡的进程,但在进程表中仍占了一个位置。由于进程表的容量是有限的,所以,defunct进程不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪。那么,这些僵尸进程是如何产生的呢?又该如何去处理?原创 2017-09-30 14:14:06 · 42571 阅读 · 10 评论 -
如何使用makefile编译不同平台的目标文件(makefile的参数传递)
最近在研究一个嵌入式开发项目,在编写实际的项目代码时,需要临时写一些测试代码对部分功能进行预测试。编写的这些代码,有时候需要在PC机(x86)的平台上运行,有时候则需要在A嵌入式平台(arm端)i.mx6的平台上运行,而还有时候则需要在B嵌入式平台(arm端)mini2440的平台上运行,需要能随时进行切换,编译出对应平台所需要的可执行文件。原创 2017-10-08 14:50:23 · 16435 阅读 · 1 评论 -
如何在wine下为Source Insight配置字体
如何在wine下为Source Insight配置字体今天在Ubuntu下使用Source Insight时,发现里面的字体实在丑的不行。而看到windows下source insight的字体可以配置的很漂亮,于是想捣腾一下试试看。1、首先在windows下打开source insight,点开option->document options选项卡,看到里面的全局字体使用的是fixedsys,7号原创 2017-01-10 14:33:44 · 10007 阅读 · 0 评论 -
linux-shell命令之rm(remove)【删除文件或目录】
功能说明:删除文件或目录。 语法介绍:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则仅会删除文件。 参数说明:-d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。 -f或--force 强制删除文件或目录。 -i或-...原创 2017-01-14 11:04:21 · 33271 阅读 · 0 评论 -
linux-shell命令之rmdir(remove dir)【删除目录】
功能说明:删除目录。 语法介绍:rmdir [-p][--help][--ignore-fail-on-non-empty][--verbose][--version][目录...] 补充说明:当有空目录要删除时,可使用rmdir指令。 参数说明:-p或--parents 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。--help 在线帮助...原创 2017-01-14 11:06:58 · 9766 阅读 · 0 评论 -
linux-shell命令之mkdir(make dir)【创建目录】
功能说明: 建立目录。 语法介绍: mkdir [-p][--help][--version][-m <目录属性>][目录名称]。 补充说明: mkdir 可建立目录并同时设置目录的权限。 参数说明:-m<目录属性> 或 --mode<目录属性> 建立目录时同时设置目录的权限。-p 或 --parents 若所要建立目录的上层目...原创 2017-01-14 11:05:53 · 14401 阅读 · 0 评论 -
linux-shell命令之mv(move)【移动或者改名】
功能说明:移动或更名现有的文件或目录。 语法介绍:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录] 补充说明:mv可移动文件或目录,或是更改文件或目录的名称。 参数说明:-b或--backup 若需覆盖文件,则覆盖前先行备份。 -f或--force 若目...原创 2017-01-14 11:03:07 · 19794 阅读 · 0 评论 -
linux-shell命令之cat【输出档案内容】
功能说明: 把档案串连接后传到输出设备(显示屏或者文件) 语法介绍: cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连...原创 2017-01-14 09:56:32 · 10830 阅读 · 0 评论 -
linux-shell命令之cp(copy)【拷贝复制】
功能说明:复制文件或目录。 语法介绍:cp [-abdfilpPrRsuvx][-S<备份字尾字符串>][-V<备份方式>][--help][--spares=<使用时机>] [--version][源文件或目录][目标文件或目录][目的目录] 补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目...原创 2017-01-14 09:58:04 · 23530 阅读 · 1 评论 -
linux-shell命令之chgrp(change group)【更改群组】
功能说明:变更文件或目录的所属群组。 语法介绍:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help] [--reference =<参考文件或目录>][--version][文件或目录...] 补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您...原创 2017-01-14 10:05:11 · 10821 阅读 · 0 评论 -
linux-shell命令之chmod(change mode)【更改权限】
功能说明:变更文件或目录的权限。 语法介绍:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...] 或 chmod [-cfRv][--help][--version][数字代号][文件或目录...] 或 chmod [-cfRv][--help][--reference=<参考文件或目...原创 2017-01-14 10:43:20 · 11103 阅读 · 0 评论 -
linux-shell命令之chown(change owner)【更改拥有者】
功能说明:变更文件或目录的拥有者或所属群组。 语法介绍:chown [-cfhRv][--dereference][--help][--version][拥有者.<所属群组>][文件或目录..] 或chown [-chfRv][--dereference][--help][--version][.所属群组][文件或目录... ...] 或chown [-cfhRv][--der...原创 2017-01-14 10:45:58 · 12966 阅读 · 0 评论