linux
文章平均质量分 59
Mr_John_Liang
这个作者很懒,什么都没留下…
展开
-
CentOS系统将UTC时间修改为CST时间方法
世界协调时间(Universal Time Coordinated,UTC):GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可。[linuxidc@localhost linuxidc.com]$ date2018年 10月 2...转载 2020-04-20 11:28:58 · 4716 阅读 · 1 评论 -
Linux Shell while使用
1,每隔3秒,打印一次系统负载#!/bin/bashwhile truedo uptime sleep 3done2,把监控结果保存到文件,在后台执行,然后用tail -f监控文件变化ghostwu@dev:~/linux/shell/flow_control$ sh while.sh &[1] 12867#!/bin/bash...转载 2019-10-17 14:55:19 · 562 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内转载 2015-08-24 18:32:36 · 3787 阅读 · 0 评论 -
ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改转载 2016-01-13 18:18:16 · 420 阅读 · 0 评论 -
Shell In A Box:一款访问远程Linux服务器的SSH终端
Shell In A Box是一款基于Web的终端模拟器,本文将介绍如何安装Shellinabox,并使用在任何机器上的现代Web浏览器,访问远程SSH终端。如果你由防火墙加以保护,只有HTTP(s)流量才能顺利通过,那么基于Web的SSH非常有用。AD:【51CTO技术沙龙】春节献礼:移动APP创新之美_UI设计【51CTO精选译文】Shell In A转载 2016-02-01 14:20:33 · 4913 阅读 · 0 评论 -
linux 隐藏进程
转自http://blog.csdn.net/billpig/article/details/6038330本文在不修改ps或top命令的任何代码与采用将进程号置0的方法的前提下,实现隐藏进程,本程序在CRUX 2.2上实现 1、原理 Linux中,可以通过/proc文件系统访问到许多内核的内部信息。/proc文件系统最初的设计也是用于方便地访问进程相关的信息,因此命名转载 2016-03-02 16:23:52 · 2492 阅读 · 1 评论 -
linux内核的编译
适应版本:ubuntu12.04 1.首先下载需要的linux内核源代码,可以到kernel.org去下载自己想要的内核源代码。 2.下载完成后进行解压,一般内核代码是位于/usr/src目录之下的,所以可以将你的内核源代码解压到这个目录下。 3.解压完成之后,就可以看到linux内核源代码的目录了。 4.进入到内核源代码的目录之下,转载 2016-02-16 09:56:10 · 431 阅读 · 0 评论 -
linux内核编程4部曲之一:linux内核编译
一、编译环境 ubuntu 5.10,要编译的内核源码版本2.6.12 二、下载并解压源代码 首先从linux内核的官网www.kernel.org把源代码下载下来。为了和后面实验要求符合,我们要下载使用O(1)调度器的源码。因此这里下载了2.6.12版本源码。下载 下linux-2.6.12.tar.bz2,将下载源码放入/usr/src/目录下。如下图所示:转载 2016-02-16 09:59:23 · 527 阅读 · 0 评论 -
linux内核编程4部曲之二:增加linux内核系统调用
本文,承接上面一篇linux内核编译,增加系统调用后,需要重新编译内核。一、实验目的 增加加减乘除系统调用,并测试系统调用和用户调用的性能差异。二、增加系统调用 增加系统调用主要分为3步: 1)、增加系统调用函数。修改/usr/src/linux-2.6.12/kernel/sys.c文件,在文件末尾增加4个系统响应函数(+、-、*转载 2016-02-16 10:02:36 · 510 阅读 · 0 评论 -
linux内核编程4部曲之三:修改O(1)调度算法
一、实验目的 修改O(1)调度程序,使交互性非常强的程序(IO密集型)在时间片用完后,不放置到活动数组,而放入过期数组(与O(1)调度实现相反),并测试cpu密集型和IO密集型进程的调度性能。二、修改调度程序 该调度逻辑在2.6.12内核中,是在kernel/sched.c文件里的scheduler_tick()函数里实现的,进入该函数,定位到如下代码:if转载 2016-02-16 10:04:04 · 1214 阅读 · 0 评论 -
linux内核编程4部曲之四:模块编程
一、实验要求 添加系统调用加减乘除,并通过模块加载,实现加减乘除。二、增加系统调用 按照实验一的步骤增加系统调用: 增加系统调用主要分为3步: 1)、增加系统调用函数。 修改/usr/src/linux-2.6.12/kernel/sys.c文件,在文件末尾增加4个系统响应函数(+、-、*、/)。这里,我们在add转载 2016-02-16 10:05:21 · 569 阅读 · 0 评论 -
mii-tool与ethtool的用法详解
1、mii-tool 配置网络设备协商方式的工具;感谢原文作者!原文地址:http://ygning.blog.com.cn/archives/2007/2153373.shtml1.1 mii-tool 介绍;mii-tool - view, manipulate media-independent interface status (mii-tool转载 2016-01-13 18:16:06 · 690 阅读 · 0 评论 -
centos 6.6 解决ibus用不了的问题
这次问题是ibus输入法问题,1:centos6.6中System-》Preferences-》input method中设置ibus,点击input method preferences 没有反应;2:右上角pannel中没有输入法选择。自己从网上搜了很多,终于找到了解决办法及原因:原因是自己把系统默认的python2.6升级到2.7;解决办法是在terminal中打开/usr/转载 2016-01-13 10:37:40 · 4522 阅读 · 0 评论 -
使用strace,lstrace,truss来跟踪程序的运行过程
转载:http://hi.baidu.com/phps/blog/item/84c44a4a5211a22608f7efc6.html 使用truss、strace或ltrace诊断软件问题2008-07-05 16:25使用truss、strace或ltrace诊断软件问题 进程无法启动,软件运行速度突然变慢,程序的"S转载 2016-01-04 17:13:39 · 9177 阅读 · 0 评论 -
linux grep命令
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(转载 2015-07-31 09:45:15 · 367 阅读 · 0 评论 -
linux的tar命令详情;linux多个文件压缩打包到一个压缩文件
tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。Linux打包命令_tartar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。常用格式:单个文件压缩打包 tar czvf my.tar.gz file1多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file*)(也可以给file*文转载 2015-08-28 15:24:02 · 103444 阅读 · 3 评论 -
Linux命令行svn命令
1、Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain (如果第一次使用svn,要使用 用户名、 密码:svn checkout svn://192.168.1.1/pro/domain user pa转载 2015-08-28 16:40:47 · 791 阅读 · 0 评论 -
linux下C语言中的flock函数用法 .
表头文件 #include 定义函数 int flock(int fd,int operation); 函数说明 flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。 参数 operation有下列四种情况: LOCK_SH 建立共享锁定。多个进程可同时对转载 2015-08-18 10:24:16 · 1629 阅读 · 0 评论 -
错误Illegal instruction 的解决方法
Illegal instruction 的解决方法 最新解决方法:把/usr/local/arm/compiler/arm-none-linux-gnueabi/libc/armv4t/lib目录(也就是你的编译器的库目录)下的所有文件拷贝到目标板子的根目录的lib目录下就好了。这样无论你的hello是动态编译还是静态编译,跑起来都不会有Illegal instruction的转载 2015-08-05 15:16:21 · 5294 阅读 · 0 评论 -
在 Python 中使用 GDB 来调试 转载
大约一年前,我接触了 Java 中的 Btrace 能够不停机查看线上 JVM 运行情况的特性让我艳羡不已。 另外还有强悍的 jStack 和 jConsole 来进行运行期侦测,JVM 的工业级强度果然不是盖的。当时公司技术方面也遇到了一些瓶颈,一部分原因是 CPython 本身的 IO 模型问题, 另一方面也和早期代码写的极不工整脱不了关系。万般无奈之下,我们用 Jython 推翻重做了主转载 2015-08-20 14:15:55 · 12615 阅读 · 0 评论 -
linux下socket connect超时设置
今天发现自己的系统存在很严重缺陷,当前台关闭的时候后台就无法正常工作,原因很好定位,后台的socket连接超时时间过长,系统默认时间好像是75秒,于是找资料,根据下边文章中的内容解决了,把超时时间设为5秒后,感觉好多了。看来还有好多东西需要慢慢挖掘阿!如何设置socket的Connect超时(linux)[From]http://dev.cbw.com/c/c/20051019转载 2016-01-20 10:34:38 · 17298 阅读 · 0 评论 -
linux select 多路复用机制
函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、转载 2016-01-20 10:35:43 · 378 阅读 · 0 评论 -
用户程序跟踪工具gprof调研资料
gprof使用介绍gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。 为gprof编译程序在编译或链接源程序的时候在编译器转载 2016-01-04 17:12:31 · 650 阅读 · 0 评论 -
linux下检测本机是否可以上网
首先,本机PC需是直连接网络,没有设置代理,代码如下:#include#include#include#define PORT 80int main(){ struct hostent* host = NULL; host = gethostbyname("www.baidu.com"); if(NULL == host) { printf("don't connec原创 2016-02-18 17:29:22 · 11330 阅读 · 0 评论 -
linux下创建目录,清空目录文件
创建多层目录代码如下:#include #include int mkpath(string s, mode_t mode = 0755);int mkpath(string s, mode_t mode){ size_t pre = 0, pos = 0; string dir; int ret = 0; if(s[s.size() - 1]原创 2016-03-30 18:07:32 · 1308 阅读 · 0 评论 -
Linux模块卸载
系统信息:内核为2.6.32, CentOSX86_64 卸载模块hook时,不管是否为强制卸载,都输出:ERROR:Module targetis in use. 卸载失败原因分析 情况0:有其它模块依赖要卸载的模块。模块a是否依赖模块b,这个在模块a加载的时候调用resolve_symbol抉择,如果模块a的symbol在模块b中,则依赖 情况1:只有LIV原创 2016-03-09 12:07:54 · 3233 阅读 · 0 评论 -
编写Linux C++程序如何影响VIRT(虚存)和RES(实存/常驻内存)
转载地址 : http://blog.csdn.net/huyiyang2010/article/details/7815491在Linux命令行中执行top命令,可以查询到所有进程使用的VIRT虚拟内存、RES常驻内存和共享内存SHR。那么,什么是VIRT虚拟内存、RES常驻内存和共享内存SHR?我们编写的linux C++程序如何影响它们呢?查阅资料转载 2017-06-27 17:27:22 · 510 阅读 · 0 评论 -
linux 解压缩命令
转载地址: http://blog.csdn.net/mmllkkjj/article/details/6768294/http://apps.hi.baidu.com/share/detail/37384818download ADT linkhttp://dl.google.com/android/ADT-0.9.6.zipdownload SD转载 2017-07-24 14:03:37 · 222 阅读 · 0 评论 -
CentOS6.X升级GCC,手动安装GCC4.8.2
转载地址:http://www.linuxidc.com/Linux/2015-01/112595.htm一、简易安装操作环境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2不能通过yum的方法升级,需要自己手动下载安装包并编译1.1 获取安装包并解压wget http://ftp.gnu.转载 2017-07-24 14:06:37 · 734 阅读 · 0 评论 -
gdb调试 加载源码
今天以一个小例子讲解一下gdb 调试。 #include using namespace std; int main() { int a = 10, b = 0, c = 21; b = a + c; cout <<"b = "<<b<<endl; b = c - a; c原创 2018-02-05 11:54:20 · 4362 阅读 · 1 评论 -
gdb 多线程调试
转载地址: http://blog.csdn.net/kangroger/article/details/47986197gdb与多线程在多线程编程时,当我们需要调试时,有时需要控制某些线程停在断点,有些线程继续执行。有时需要控制线程的运行顺序。有时需要中断某个线程,切换到其他线程。这些都可以通过gdb实现。先来看一下gdb调试多线程常用命令:info转载 2018-02-05 14:51:53 · 6907 阅读 · 0 评论 -
linux中gettid 与 pthread_self函数区别
linux多线程环境下gettid() 、pthread_self() 两个函数都可以获得线程ID, 那么这两个有什么区别吗?解释如下:gettid是内核中的线程的ID, pthread_self是POSIX thread ID线程库实际上由两部分组成:内核的线程支持+用户态的库支持(glibc),Linux在早期内核不支持线程的时候glibc就在库中(用户态)以线程(就是用户态线程)的方式支持多...原创 2018-03-29 18:09:36 · 5826 阅读 · 0 评论 -
GDB指定和修改搜素源码文件的路径(set substitute-path)
转载地址:https://blog.csdn.net/jiafu1115/article/details/31790757gdb 附加进程调试: gdb 应用程序名称 进程id今天用gdb查看core文件,发现找不到源文件。记录一下相关命令在gdb里面查看源码,list 一下提醒找不到相关文件,列出来的是绝对路径的完整文件名。help files 看一下帮助,可以加载符号,源文件等,自己看一下...转载 2018-06-22 14:56:08 · 4099 阅读 · 0 评论 -
linux下netlink的使用简介
转载地址:https://www.jianshu.com/p/6810f42b9f8f一、什么是netlinkNetlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。在Linux 内核中,使用netlink 进行应用与内核通信的应用有很多,如路由 daemon(NETLINK_ROUTE) 用户态 sock...转载 2019-02-14 14:46:10 · 3023 阅读 · 0 评论 -
linux设置服务程序开机自启动
脚本所在路径: /opt/test.sh服务名称 : test第一步: 需要在 /etc/init.d 目录下创建软连接 ln -s/opt/test.sh test第二步:增加服务 chkconfig --add test 执行此语句后, 可在/etc/rc.d/rc3.d/目录下看到 S数字test 的文件 , S 代表 start ,此处...原创 2019-04-08 16:50:04 · 654 阅读 · 0 评论 -
linux下动态库的符号冲突、隐藏和强制优先使用库内符号
转载地址: http://blog.csdn.net/wwyyxx26/article/details/48289659在同客户做对接时遇到了符号冲突的问题。我司为客户提供sdk包供开发使用,就是几个so文件,在so文件中我司封装了tinyxml2这个库,客户再做开发时也时候用了tinyxml2这个库,但是所使用的版本是不同的,造成了再运行时,会崩溃。应该是在程序运行时,先转载 2017-07-11 10:51:53 · 2317 阅读 · 0 评论 -
centos6如何安装ibus中文输入法
转载地址:http://jingyan.baidu.com/article/c843ea0b94d61a77931e4a3b.html1、yum list ibus 这个命令列出ibus的所有包信息2、yum list ibus-pinyin 这个命令列出ibus拼音输入法的包信息下面要设置输入法为ibus中文输入法进入system – preferences转载 2017-06-07 15:42:18 · 1122 阅读 · 0 评论 -
linux 递归删除多级目录
代码如下:#includeint CParseJson::emptyDir(const char* destDir){ int ret = 0; DIR* dp = NULL; struct dirent* entry = NULL; struct stat statbuf; if ((dp = opendir(destDir)) == NULL) { LOG4CXX原创 2016-04-06 16:32:04 · 3414 阅读 · 0 评论 -
BOOST JSON 数组解析
JSON消息格式:{“jobIDs”: ["24324325435", "ew32trt4ty45yt45" ]}filePath 存储JSON消息的文件int CParseJson::readBoostJson(string& filePath, vector& jobID){ int ret = 0;原创 2016-04-06 16:43:15 · 6083 阅读 · 0 评论 -
Linux隐藏文件
在信息安全中,保护指定的文件不让用户看到,尤为重要,实现方式:劫持系统调用系统信息:内核为2.6.32, CentOSX86_64示例程序如下:#include #include #include #include #include #include #include #include #include #include #include #include原创 2016-03-14 15:41:47 · 748 阅读 · 0 评论