红联Linux门户

Linux帮助
  • Shell批量更改主机名

    2016-05-11 - 有时候我们有批量修改主机名和同步hosts文件到多台主机的需求,例如新购置了一批云服务器等,可能主机名称上并不能满足你的命名规则或规范,但如果一台台去更改可能就太慢又无聊,所以shell脚本绝对是你的最佳选择。 需求分析: 1、ssh公钥拷贝,提供无密码...

  • Linux内核里的数据结构——双向链表Linux内核里的数据结构——双向链表

    2016-05-10 - Linux 内核中自己实现了双向链表,可以在 include/linux/list.h(https://github.com/torvalds/linux/blob/master/include/linux/list.h) 找到定义。我们将会首先从双向链表数据结构开始介绍内核里的数据结构。为什么?因为它在内核里使用的很广泛,你只需...

  • linux下SystemC安装以及VS2010下SystemC的使用linux下SystemC安装以及VS2010下SystemC的使用

    2016-05-08 - 1、linux下SystemC安装 最近在学习SystemC,这是一门系统级建模语言。其在C++的基础上扩展,使C++具有并发特性(硬件工作都是并发的),简单的说SystemC就是C++的一个类库。 SystemC源码是开源的,只要任何支持C++的编译器,都可以对其编译。下面简单介绍一...

  • Linux Shell if条件判断

    2016-05-08 - 1、语法格式 可以使用test或者[来进行[条件判断,下面的两个代码片段是等价的: if test -f file.c then .... fi 或者: if [ -f file.c ] then ... fi 上述代码片段的意义为:file.c是普通文件则执行then与fi之间的代码,可取反为: if [ ! -f file.c ] the...

  • 实现在linux下的itoa函数

    2016-05-07 - 在linux系统中虽然自带了atoi()函数,但是没有对应的itoa()函数,那就自己实现吧! 1、自己实现itoa() void itoa(int i,char* string) { int power,j; j=i; for(power=1;j=10;j/=10) power*=10; for(;power0;power/=10) { *string++=0+i/power; i%=power; } *...

  • linux实现shell命令支持ipv4地址转换

    2016-05-04 - 这几天一直都在和IP地址打交道.GDB出来一个变量,就到计算器里面看看二进制,然后每八位的去计算得出IP地址,着实不胜其烦.搜了一下网上的信息,也没有找到类似的工具.可能大家都觉得写这么一个东西太简单了.但是其实,无论是否简单,真正能够产生便利的命令,就都...

  • 10个值得深思的PHP面试问题10个值得深思的PHP面试问题

    2016-05-01 - 文章所罗列的问题虽然看似简单,但是每个背后都涵盖了一个或几个大家容易忽视的基础知识点,希望能够帮助到你的面试和平时工作。 Q1 第一个问题关于弱类型 $str1 = yabadabadoo; $str2 = yaba; if (strpos($str1,$str2)) { echo \ . $str1 . \ contains \ ....

  • Linux Shell判断字符串是否存在包含关系

    2016-04-30 - 在Pyhton里判断字符串是否存在包含关系非常简单,只要if a in b就行了,但如何在Shell中判断字符串的包含关系呢? #! /bin/bash var1=hello var2=he #方法1 if [ ${var1:0:2} = $var2 ]; then echo 1:include fi #方法2 echo $var1 | grep -q $var2 if [ $?...

  • Linux数字类型计算的shell的demo脚本

    2016-04-27 - #!/bin/bash # int-or-string.sh: 整型还是字符串? a=2334 # 整型. let a += 1 echo a = $a # a = 2335 echo # 还是整型. b=${a/23/BB} # 将23替换成BB. # 这将把变量b从整型变为字符串. echo b = $b # b = BB35 declare -i b # 即使使用declare命令也不会对...

  • 自定义shell实现hexo常用命令

    2016-04-24 - 利用Hexo搭建好博客之后,如果要新建或是生产都必须先切换到blog的根目录,然后在编辑文件的时候又得切换目录。但是一般,也就是新建直接编辑,那么多命令也是麻烦。 超过3行的持续输入已经令人产生厌烦,所以需要批处理来解决。在ubuntu下就是shell了。 于...

  • Bash中各种括号的使用

    2016-04-23 - Bash中有各种括号,包括单小括号,双小括号,单中括号,双中括号,单大括号。而且它们之间很容易混淆,所以很有必要总结一下它们的用法。 1. ()的用法 单个小括号用来创建一个子shell。例如: $ pwd /home/xfeng $ (cd /tmp; pwd) /tmp 你可以看到,子shell...

  • Linux软件看门狗watchdog

    2016-04-23 - Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称开门放狗),就...

  • Linux环境下使用GDB调试C程序

    2016-04-23 - 写本文的目的是因为我刚刚用gdb解决了一个c语言中赋错了值的问题,导致整个程序的运行结果是不正常的,这是我求助于gdb解决了这个问题,之前也用gdb这个神器解决过一些运行时的内存问题,比如说c程序中非常常见的segment error。这篇博客为了对gdb的常用命令...

  • 在linux的驱动Makefile中添加调试选项

    2016-04-22 - 在编译linux驱动的时候添加-g等调试选项将会很方便调试,如反汇编等。 添加方法很简单。只需要给环境变量EXTRA_CFLAGS赋值-g就行了,开始我以为需要明确指定-g,就像编译应用程序那样,gcc main.c -g -o test,原来系统中保留的环境变量EXTRA_CFLAGS,直接给...

  • 不同系统与程序修改java.library.path的位置

    2016-04-21 - 以下路径为为网上收集。 Linux环境 系统变量LD_LIBRARY_PATH来添加java.library.path ubuntu中设置java.library.path: http://www.linuxdiyf.com/linux/16471.html Windows 在系统-高级系统设置-环境变量里,在path变量里添加。 Eclipse 在Properties - Run...

  • C语言通讯录,windows+linux皆可编译通过

    2016-04-21 - 因为自己的操作系统是linux,windows除了迫不得已一般不会开机,而且电脑显卡坏了,windows就更没有开的必要了,但是网上的相关教程中往往是windows环境的,很多头文件linux下没有,而且很多还是指定TC。一怒之下,就自己写了个通讯录。若有错误,欢迎指正。...

  • linux系统学习之实践--虚拟多个cpu核心

    2016-04-21 - 应用背景: 目前android系统的游戏朝着重型手游方法发展,部分apk游戏对硬件配置要求极高,甚至为求极致的用户体验不惜限制低配置手机用户的使用,当游戏检测到硬件配置不符合最低要求时直接闪退.apk应用检测手机硬件配置主要还是检测cpu核心数,内存大小,显存大...

  • 如何编写linux守护进程?如何编写linux守护进程?

    2016-04-20 - 软硬件环境: Ubuntu 14.04 概述: 在类UNIX的多任务操作系统中,守护进程就是运行在后台的计算机程序,而不是运行在前台可以由用户直接控制。典型的守护进程一般都会在进程名后加上字母d,表示daemon,如常见的mysqld、telnetd、sshd等。这些进程没有控制终...

  • dmalloc arm-linux平台使用dmalloc arm-linux平台使用

    2016-04-19 - 话说工欲善其事,必先得其器,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急...

  • linux编译选项中加入-shared造成执行程序coredump

    2016-04-19 - 之前leader分了我个coredump的bug,从客户给的gdb bt中看不到任何有用的信息,也没有core dump文件生成。 $ gdb makepwe.exe Starting program: /proj/BTESAT2/bin/makepwe.exe Program received signal SIGSEGV, Segmentation fault. 0x0000000000000001 in...

  • 关于Linux下conio头文件的实现

    2016-04-17 - 在windows下,c语言有库conio.h,实现了不少函数,但是Linux c没有这个库,内部的函数需要自己实现。 //clrsrc清屏函数的一种实现: void clrscr(void) { system(clear);//需要头文件stdlib.h } //调用system(clear) //getch()函数的一种实现方法 #includestd...

  • Linux C语言中gotoxy函数

    2016-04-17 - 在Linux中很多函数都不能使用,gotoxy就是其中的一个。 实现方法: void gotoxy(int x,int y) { printf(%c[%d;%df,0x1B,y,x); } 解析: ANSI转义序列,很多类unix的终端,包括linux控制台都解释ANSI转义序列,转义符就是ESC,ASCII码是0x1b,比如: Esc[Line...

  • 用C语言在linux下获取鼠标指针的相对位置

    2016-04-17 - 1.关于/dev/input/mice 相信很多人都用过Linux,也许你发现不管是在X-window下面,还是在Console下面,鼠标都是可以操作的。那么你有没有考虑过这些鼠标都是从哪来的? 不错!他们都是从/dev/input/mice这个文件里来的。如果你对Linux比较熟,那么你肯定看得...

  • Linux应用层系统时间写入RTC时钟的方法Linux应用层系统时间写入RTC时钟的方法

    2016-04-17 - Linux内核版本:linux-3.0.35 开发板:i.MX6S MY-IMX6-EK200 系统:Ubuntu12 一、写入时间 1、预备知识: a、mktime 头文件:#include time.h 函数:time_t mktime(struct tm *timeptr) 函数说明:mktime()用来将timeptr所指的tm结构体数据换成从公元1970年1...

  • linux单引号,双引号,反引号的小总结

    2016-04-13 - 还是老惯例说说事情的起因,由于最开始对linux下面的各种引号并不是特别敏感,导致有一天我在添加数据库字段的时候出现的错误,当时出现错误的原因是我在最外层使用了单引号进行包裹,然后一句话里面需要转意的地方无法被转意导致了错误。 下面还是从单引号...

  • linux中c语言errno的使用

    2016-04-13 - 在linux中使用c语言编程时,errno是个很有用的东东。他可以把最后一次调用c的方法的错误代码保留。但是如果最后一次成功的调用c的方法,errno不会改变。因此,只有在c语言函数返回值异常时,再检测errno。 errno会返回一个数字,每个数字代表一个错误类型。...

  • 解释UBIFS不支持NFS的原因

    2016-04-13 - 在看UBIFS开发文档的时候有提到过UBIFS不支持NFS(网络文件系统),但是我在网上搜了搜也没有找到原因。所以做嵌入式开发的小伙伴要注意了,别在编译linux内核的时候之选择了UBIFS文件系统,使用的时候想尝试NFS不成功但却找不到原因。看UBIFS源码的时候偶然...

  • 小议Linux中的僵死进程

    2016-04-11 - 在读《unix环境高级编程》时,发现忽然对僵死进程的处理机制很感兴趣,经过查阅资料弄清楚了其中的原理,在这里做一个记录。 1.一个进程的离去 在一个进程调用 exit 函数,或者 return 语句,或者是调用 abort 等函数终止后,总之不管进程是怎样终止的,它们...

  • linux包括三个段“数据段”,“代码段”,“堆栈段”

    2016-04-10 - linux是一个多用户多任务的操作系统,每个进程都在各自的虚拟空间上运行,一个进程挂了也不会影响到其他的进程,linux包括三个段数据段,代码段, 堆栈段。 数据段:包括全局变量,常数,动态分配的空间,包括普通数据段,BBS数据段,堆 普通数据段-------包...

  • linux下printf实现不换行打印(printf显示不加换行的缓冲问题)

    2016-04-09 - 在学习调试linux的程序时,发现了一个加换行(\n)会实时显示,不加换行则会卡住最后一起显示的情况。 只要把printf(1);改成printf(1\n); printf(2)改成printf(2\n); 1.强制刷新标准输出缓存fflush(stdout); 2.放到缓冲区的内容中包含/n; 3.缓冲区...

  • linux将更新的文件copy到sshfs挂载主机,监测sshfs,不存在则启

    2016-04-08 - 通过sshfs 挂载远程主机文件夹到本地,脚本监测最新更新的图片文件。 复制到挂载的文件夹下,复制之前先检测sshfs是否运行,如果不存在进程则启动。 #!/bin/bash #find . -type f -mtime -7 | while read f dd=`ps cax | grep sshfs | grep -o ^[ ]*[0-9]*`...

  • .NET跨平台实践:用C#开发Linux守护进程.NET跨平台实践:用C#开发Linux守护进程

    2016-04-07 - Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作。 一句话,为Linux开发与控制台无关的,需要在后台长时间不间断运行的服务程序,Daemon技术...

  • 实现一个跨平台的mysock库(windows、linux)实现一个跨平台的mysock库(windows、linux)

    2016-04-07 - 源码下载:http://download.csdn.net/detail/waldmer/8791683 1.首先确定自己的操作系统为32位还是64位: root@bfq:~/mysock# uname -a Linux bfq 3.11.0-26-generic#45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014x86_64x86_64 x86_64 GNU/Linux 2....

  • linux shell字符串操作(长度,查找,替换)详解

    2016-04-06 - 在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。 一、判断读取字符...

  • linux线程的缺点和线程池的必要性

    2016-04-06 - 在linux操作系统中,同一个程序创建线程的次数是有限制的,不断的创建销毁线程,很浪费资源,同事最后会导致老是创建失败,所以有必要使用线程池。 可以写个简单的代码测试一下: #include stdio.h #include pthread.h #include stdlib.h #include unistd.h...

  • Python开发的10个小技巧Python开发的10个小技巧

    2016-04-06 - 下面是十个Python中很有用的技巧。其中一些是初学这门语言常常会犯的错误。 注意:假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10] 大多初学者,根据之前语言...

  • 写Linux字符设备驱动模板--测试通过

    2016-04-03 - 1,首先,建立文件夹driver,在该文件夹下面新建globalvar.c和Makefile文件,然后编写驱动程序,保存到globalvar.c中 /* * Simple Char_device Driver Test-- globalvar.c * Date2016/04/01 * Author Jerryz */ #include linux/init.h #include linux/module...

  • Linux计算程序耗时

    2016-04-03 - 写了一个linux下统计程序耗时的代码,发现linux下和windows下还有些不同,写篇记录下。 (1)time.h和sys/time.h的区别 time.h是ISO C99标准日期头文件,而sys/time.h是linux系统日期时间头文件。 (2)linux下的sleep()参数是秒为单位,而windows下是以毫秒为单...

  • python中多线程如何用Ctrl+C终止

    2016-04-02 - 在编写python多线程程序时,发现用Ctrl+C无法终止,就算用Ctrl+Z强制当前进程转为后台并使之停止,而实际上并未停止,用ps命令一查还在运行,于是上网上找资料,动手实践,记录分享一下解决办法。 在你的代码中增加如下类: class Watcher(): def __init__(s...

  • Linux下patch文件的制作

    2016-04-02 - 首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。 1.diff NAME diff - find differences between two files SYNOPSIS diff [options] from-file...