
Linux
文章平均质量分 64
左手码农
创世的第七天,他用左手轻轻地敲下:Hello,world!
展开
-
ubuntu14.04 内核升级到 linux kernel 4.9
原先安装的ubuntu14.04 内核版本为4.4,现在需要升级到4.9的内核版本。下载linux kernel 4.9的Debian软件包可以从 http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/ 下载。因为原先系统是64位,所以下载的软件包为 linux-headers-4.9.0-040900_4.9.0-0409原创 2017-02-14 13:16:36 · 15417 阅读 · 2 评论 -
MySQL数据库的备份还原
在Linux下对MySQL数据库进行备份还原操作,也就是导出和导入数据库文件。1、数据库的导出执行命令 mysqldump -u root -p test > /var/test.sql按要求输入数据库密码,即可得到数据库test的导出文件test.sql。保存好该文件,这就是对数据库test进行了简单备份。2、数据库的导入进入MySQL数据库,执行mysql -u r原创 2015-12-31 20:54:21 · 440 阅读 · 0 评论 -
tcpdump丢包问题分析
问题在linux系统上,使用tcpdump抓包有时候会出现“丢包”现象,如抓包结束之后会提示:以上提示filter总共收到了8484个数据包,其中内核丢弃了1051个,剩下的7433个数据包交给了对应网络接口LTE_MAC0。分析在抓包结束之后,提示信息中的“received by filter”和“dropped by kernel”的计数由内核维护,“c原创 2016-01-17 15:17:26 · 12011 阅读 · 0 评论 -
CMAKE的使用
转自:http://blog.youkuaiyun.com/netnote/article/details/4051620一、 基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、 概念转载 2015-12-15 15:09:30 · 414 阅读 · 0 评论 -
“段错误”定位及调试的一点经验
今天调试代码的时候,遇到一个问题就是出现了“段错误”。出现“段错误”的原因就是:访问的内存超出了系统给这个程序所设定的内存空间。知道原因是一个很好的开始,但是并不代表就很容易解决,特别是在代码量较大的情况下,如何才能定位到出错的地方?接下来,我就大概讲一下自己的一点经验,如何在Linux C中用几个命令搞定“段错误”。1、dmesg通过dmesg命令可以查看发生段错误的程序名称、引起段错误原创 2015-12-15 14:39:01 · 7883 阅读 · 1 评论 -
Ubuntu下的路径设置
ubuntu 下编程有时候会出现找不到文件的情况,这时候就要首先检查文件包含路径是否正确。可以通过命令echo $PATH查看原先设定的路径。如果没有把对应的文件包含在路径里,则需要手动指定路径。Ubuntu的路径设置有多种方法,接下来简单介绍几种:1、使用export命令sudo export PATH=$PATH:相应路径2、设置profile文件profi原创 2015-12-14 12:35:38 · 2762 阅读 · 0 评论 -
ubuntu12.04搭建gitlab
关于如何搭建GitLab,在GitLab官网上有相关介绍gitlab下载。此处对整个搭建过程,做一个详细记录:1. 安装配置依赖项如果已经安装了Postfix来发送邮件请在安装期间选择 'Internet Site' . 你也可以用Sendmail或者 configure a 使用自定义的SMTP服务器来代替Postfix. 如果希望使用 Exim, 请 把它当做SMTP来配置.原创 2015-11-21 00:58:25 · 1153 阅读 · 0 评论 -
ubuntu 安装 Cmake
安装 CMake1、下载最新的CMake( 版本:3.4.0)wget http://www.cmake.org/files/v3.4/cmake-3.4.0-rc2-Linux-i386.tar.gz2、解压tar zxvf cmake-3.4.0-rc2-Linux-i386.tar.gz3、创建链接ln -s /usr/cmake-3.4.0-rc2-原创 2015-10-31 16:38:20 · 4410 阅读 · 0 评论 -
ubuntu10.04安装GMP6.0.0
最近,项目需要在发行版10.04的Ubuntu下使用GMP高精度数学库,发现该发行版Ubuntu是不包含GMP库的,只能自己到官网上下载安装。1、下载最新GMP库官网地址:https://gmplib.org/下载 gmp-6.0.0a.tar.bz2,解压2、安装GMP编译准备./configure --prefix=/usr \--enable-cxx \--dis原创 2015-11-02 19:35:51 · 2704 阅读 · 0 评论 -
ubuntu 升级gcc 到4.7
最近因为项目需要,要把一套代码从Linux3.4内核移动到2.6内核下运行。在源码编译的时候就出现了各种情况了,其中就遇到了问题:undefined reference to `__sync_val_compare_and_swap_8'分析之后,发现该问题的出现是由于2.6内核版本的ubuntu,编译器版本过低。解决问题:升级gccsudo add-apt-repository原创 2015-12-10 22:43:41 · 1915 阅读 · 0 评论 -
Ubuntu下使用Tasksel安装LAMP
一般来说,Ubuntu下安装LAMP套件,需要apt安装很多包(如apache2、php5等),来构成一个完整的LAMP系统。而使用tasksel的话,则能够通过一条语句直接搞定!Tasksel,它是一个Debian下的安装任务套件,如果你为了使你的系统完成某一种常规功能,而需要安装多个软件包时,我们就可以使用它了。注意:Tasksel在ubuntu server里是预装的,而在桌面版里是原创 2015-11-17 22:28:38 · 2354 阅读 · 0 评论 -
ubuntu下执行sql脚本
若在ubuntu下要为MySQL数据库导入一份 脚本文件test.sql,执行该sql脚本的方法:1、连接 MySQL数据库mysql -h localhost -u root -p 1234562、创建并选择数据库create database test;use test;3、执行sql脚本source /var/www/test.sql原创 2015-11-18 22:22:46 · 3106 阅读 · 0 评论 -
GitLab 使用163邮箱发送邮件
一、配置SMTP,使GitLab通过163邮箱给用户发送邮件vim /etc/gitlab/gitlab.rb具体配置信息:gitlab_rails['gitlab_email_from'] = "xxuser@163.com"gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.163.c原创 2015-11-23 20:16:44 · 21205 阅读 · 0 评论 -
安装Libevent
今天,在Linux 2.6内核的Ubuntu上编译运行依程序,出现了错误:Event library not defined。分析了一下,应该是 libevent 的问题。1、libevent 介绍libevent API提供当文件描述符上的特定事件发生时或达到超时之后执行回调函数的机制。此外,libevent的还支持因信号或经常超时引发的回调。libevent 提供了多种I/O机制,原创 2015-12-09 15:46:00 · 1151 阅读 · 0 评论 -
Linux lookback驱动分析
Linux的网络驱动中,lookback 驱动算是最为简单的。本次分析的程序来自 Linux-2.6.32.68 源码,其中 lookback.c 驱动程序位于 /drives/net/ 目录下。普通的网卡驱动都是以模块化注册到系统的,但是 lookback 驱动是和 kernel 一体的,Linux在启动的时候会调用 lookback 驱动。1、设备注册lookback网原创 2015-10-12 19:19:37 · 1541 阅读 · 0 评论 -
交叉编译的简单心得
交叉编译,就是在一个平台上生成另一个平台上的可执行代码。有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;这个时候就需要用到交叉编译。以下是交叉编译的一个例子(目标机器是使用的Linux2.6.34的内核版本),Makefile文件:TARGET = xxx_moduleOBJS =原创 2015-11-05 11:34:48 · 1167 阅读 · 0 评论 -
使用putty上传下载文件
使用putty对服务器进行远程操作很方便,有时候还需要进行一下文件的传输操作,此时可以使用putty的另一工具PSFTP,该工具一般包含在putty安装目录中,也可以下载。1、设置全局路径在windows操作系统下,首先要设置路径,在终端下执行命令:set PATH=C:\path\to\putty\directory;%PATH%检验是否设置成功,在终端下运行:psftp原创 2016-01-02 15:42:28 · 8061 阅读 · 1 评论 -
Netlink通信机制
1、Netlink 机制简介为了完成内核空间与用户空间通信,Linux提供了基于socket的Netlink通信机制,可以实现内核与用户空间数据的及时交换。Netlink是基于socket的通信机制,由于socket本身的双共性、突发性、不阻塞特点,因此能够很好的满足内核与用户空间小量数据的及时交互,因此在Linux 2.6内核中广泛使用,例如SELinux,Linux系统的防火墙分为内核态的原创 2015-12-26 13:57:45 · 2560 阅读 · 0 评论 -
网络协议的初始化dev_add_pack
在数据包接收过程的那篇笔记中可以知道,在数据包的处理函数netif_receive_skb中,会先看ptype_all中是否有注册的协议,如果有,则调用相应的处理函数,然后再到ptype_base中,找到合适的协议,将skb发送到相关协议的处理函数.比如ip协议(ip_rcv)或者arp(arp_rcv)等等.此篇笔记讲的是有关ptype_all和ptype_base的相关知识点.pt转载 2016-01-11 15:14:40 · 3476 阅读 · 1 评论 -
ubuntu12.04 更新源
在国内推荐使用网易163的更新源地址,更换方法如下:1、更新之前先备份一下cp /etc/apt/sources.list /etc/apt/sources.list.bak2、编辑源列表 sudo vim /etc/apt/sources.list从下面选择源#台湾源 deb http://tw.archive.ubuntu.com/ubuntu/ precise原创 2015-11-03 11:33:16 · 521 阅读 · 0 评论 -
linux命令详解:finger
【finger命令】finger命令用来查找并显示用户信息,系统管理员通过使用该命令可以知道某个时候到底有多少用户在使用这台Linux主机。【命令常用格式】usage: finger [-lmsp] [user ...] [user@host ...]命令中各选项的含义如下:-l 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的 Shell,登入时间,转信地原创 2016-08-14 12:07:00 · 13097 阅读 · 0 评论 -
linux命令详解:tc
来自:http://blog.chinaunix.net/uid-10101261-id-335675.html名称:tc - 显示/维护流量控制设置命令格式: tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [转载 2016-08-05 15:00:31 · 11044 阅读 · 0 评论 -
linux命令详解:sar
【sar命令】sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。【安装sar】apt-get install sysstat注意:使用sar的时候原创 2016-08-13 23:19:18 · 2497 阅读 · 0 评论 -
linux命令详解:sort
【sort 命令】sort 命令常用于字段排序。【常用选项】用法:sort [选项]... [文件]... 或:sort [选项]... --files0-from=F串联排序所有指定文件并将结果写到标准输出。长选项必须使用的参数对于短选项时也是必需使用的。排序选项: -b, --ignore-leading-blanks 忽略前导的空白区域 -d, -原创 2016-08-22 20:28:34 · 4402 阅读 · 0 评论 -
linux命令详解:md5sum命令
文章转自:http://www.th7.cn/system/lin/201311/46777.shtml前言在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。使用说明md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内转载 2016-08-10 16:02:14 · 2547 阅读 · 0 评论 -
linux下SVN服务器的搭建及使用
LINUX下搭建SVN服务器1、使用 YUM 或者 apt-get 安装SVN:命令:yum -y install svnversion或者命令:apt-get install subversion 2、创建版本库目录:命令:mkdir -p /data/svn/3,启用服务:命令:svnserve -d -r /data/svn原创 2016-08-15 16:51:51 · 464 阅读 · 0 评论 -
多线程与多进程的相关概念
关于并发的很多书中都会提到进程、轻量级线程与线程这几个概念,有时候会对这些概念有些模糊,现在总结一下。进程《深入理解Linux内核》进程,通常定义是程序执行时的一个实例。用简单的 “hello world” 例子来说,执行该程序的时候,就产生了一个进程。“描述程序已经执行到何种程度的数据结构的汇集”从内核观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的实体原创 2016-07-16 12:40:33 · 711 阅读 · 0 评论 -
网际协议IP
在IP层的分组叫做数据报。本节主要介绍数据报的格式,以及在 linux 中是如何定义IP分组头格式。首先,数据报的格式如下:其中:1、版本:有版本4和版本62、首部长度:定义数据报的总长度,以4字节为单位计算。首部长度在 20~60字节之间。3、服务类型:前三位为优先位,后面两位为TOS位,最后一位没有使用。4、总长度:定义以字节计的数据报总长度(首部加上数据)原创 2015-04-16 20:53:35 · 1231 阅读 · 0 评论 -
linux 定时邮件提醒
简单实现对Linux服务器的定时监控,可以通过定时执行任务和邮件收发来实现。定时执行任务:crontabcrond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程.crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。crontab命令的使用方法:usage: crontab [-u user] file原创 2016-06-29 17:20:28 · 3231 阅读 · 0 评论 -
ubuntu/var/log/下各个日志文件
本文简单介绍ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log/var/log/alternatives.log-更新替代信息都记录在这个文件中/var/log/apport.log -应用程序崩溃记录/var/log/apt/ -用apt-get安装卸载软件的信息/var/log/auth.log -登录认证log/v转载 2016-06-05 10:40:20 · 1920 阅读 · 0 评论 -
是谁占用了我们的带宽:流量实时监控
今天发现上网速度有点慢,估计是局域网内有人在下电影。于是,出于好奇就打算看看是谁在占用带宽。简单几个步骤看看谁是“罪魁祸首” :)1、网关:ssh由于局域网是通过一台Linux路由器连接互联网的,所以要查看局域网流量使用状况,首先就要使用ssh连接上路由器。2、找到对应IP:iftopiftop是一个实时流量监控的工具。使用帮助如下:Host display:原创 2016-05-18 18:27:36 · 12013 阅读 · 0 评论 -
ping的实现和代码分析
转自 http://blog.youkuaiyun.com/zzucsliang/article/details/41407387介绍 ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。分析转载 2016-04-17 17:10:48 · 941 阅读 · 0 评论 -
Epoll简介以及例子
第一部分:Epoll简介在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。epoll的接口非常简单,一共就三个函数:1.转载 2016-04-15 17:13:31 · 3217 阅读 · 0 评论 -
linux 动态库与静态库
在程序中使用使用静态库和动态库时,他们载入的顺序是不同的:静态库的代码在编译时就拷贝的应用程序中,节省编译时间;动态链接库是程序在运行后调用库函数时才被载入。Linux库文件名由:前缀lib、库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀。Linux通常把库文件存放在/usr/lib或/lib目录下。接下来,以简单的例子介绍动态库文件原创 2016-04-21 12:19:50 · 535 阅读 · 0 评论 -
linux下ACE工具包的编译安装
ACE简介ACE(ADAPTIVE 通信环境)是一种广泛使用的主机基础设施中间件。ACE库包含约240,000行c++代码,约500个类。ACE软件包的基础是ACE OS Adaptation层和C++ wrapper facades 的结合,封装了核心OS并发网络编程机制。ACE的较高层建立在这一基础上,提供了可复用的框架、网络服务组件、基于标准的中间件等。这些中间件层联合起来,简化了网原创 2016-04-07 16:29:55 · 2145 阅读 · 1 评论 -
ubuntu下修改网卡名称
Ubuntu下把网卡eth0修改为eth1的步骤:1、打开配置文件 /etc/udev/rules.d/70-persistent-net.rules,文件内容如下:# This file was automatically generated by the /lib/udev/write_net_rules# program, run by the persistent-net-g原创 2015-11-03 10:53:46 · 3145 阅读 · 0 评论 -
Netfilter/iptables 简要分析
1. Netfilter的命令结构(1)filter 表的任务是执行数据包的过滤操作。即起到防火墙的作用。(2)nat 表的功能是IP分享器。(3)mangle 表的可以修改经过防火墙内的数据包的内容,也可以为特定的数据包来标示不同的识别码。(4)raw 表能够加快数据包穿过防火墙机制的速度,提高防火墙的性能。2.Netfilter的filter机制(1)I原创 2015-10-16 21:46:23 · 732 阅读 · 0 评论 -
使用 SO_KEEPALIVE 选项检测TCP连接
对于TCP连接来说,如果客户端由于一些异常情况导致断网,从而未能向服务器发起FIN关闭消息,服务端在没有设置存活检测的情况下,该连接会在一定时间内保持存在,有可能会使服务器接入资源耗尽,导致accept失败。解决这个问题,可以通过使用心跳包的方法原创 2015-09-08 17:05:52 · 2741 阅读 · 0 评论 -
Ubuntu 添加或者删除用户
关于在Ubuntu系统中如何添加(或删除)用户和用户组,这里做了一些整理。常用的一些命令和参数如下:1、建用户:adduser user1 //新建用户user1passwd 12345 //给user1用户设置密码123452、建工作组groupadd grou原创 2015-05-21 21:22:23 · 627 阅读 · 0 评论 -
Ubuntu 挂载U盘
平时用的Ubuntu系统是具有自动挂载U盘功能的,然而今天碰到无法自动挂载的情况,于是只能使用命令来使其挂载。过程整理如下:1.在插入U盘前和插入U盘后,都输入同一个命令:cat /proc/partitions,检查多了哪个盘这里发现多了 8 16 30704064 sdb 8 17 30704064 sdb1sdb是统称,所以原创 2015-05-21 20:42:03 · 1649 阅读 · 0 评论