红联Linux门户

Linux帮助
  • Linux账户密码过期安全策略设置Linux账户密码过期安全策略设置

    2016-06-20 - 在Linux系统管理中,有时候需要设置账号密码复杂度(长度)、密码过期策略等,这个主要是由/etc/login.defs参数文件中的一些参数控制的的。它主要用于用户账号限制,里面的参数主要有下面一些: /etc/login.defs: # Password aging controls: # # PASS_MAX_D...

  • Linux代码的重用与强行卸载Linux驱动

    2016-06-20 - (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数、变量、宏等) 1、编译是由多个文件组成的Linux驱动(静态重用) 对于复杂的Linux驱动,需要使用多个源代码文件存...

  • 命令行模式下编译多个C/C++源文件

    2016-06-20 - 最近在学习linux,需要经常使用命令行,这时才发现熟悉命令行之后,命令行真的很强大。 由于在linux系统中需要在命令行格式下对C语言进行编译,顺便也研究了一下windows系统下的命令行编译,感觉也蛮方便的。 单个源文件编译 linux系统下:g++ prog1.cc -0 p...

  • linux守护进程编程实例

    2016-06-20 - linux守护进程编程实例代码: /* *功能:创建一个守护进程,监视系统所有运行的进程 *时间:2016.6.20 */ #include unistd.h #include signal.h #include sys/types.h #include sys/stat.h #include stdio.h #include stdlib.h #include sys/resource.h //创...

  • Centos7下编译ramdisk内核模块brd.ko的方法

    2016-06-19 - 1.确保centos7上有gcc和make等工具 2.获取centos7源码。 CentOS-7-x86_64-1503-01版本的内核是3.10.0-229.el7.x86_64,下载该distribution版本的内核源码,拷贝到根目录: http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2...

  • shell是什么语言?shell语言的本质

    2016-06-19 - shell是什么语言?shell 语言的本质 Shell是Linux/Unix的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程...

  • linux xfce桌面环境显示桌面快捷键的实现

    2016-06-18 - 创建: winfuncs.sh 文件内容: #!/bin/bash #todo: # cancel for tile functions # determine what windows are maximized and re-max after the window select function # determine what windows are non-resizable by the user so that the script doesn...

  • 用Linux makeself制作自解压的可执行程序

    2016-06-17 - 前言:日常工作中我们需要把Linux操作系统下一堆文件或者脚本制作成一个可执行程序,发布后别人只要拿到这个程序就会把它整体运行起来。比起一般的把文件(夹)压缩打包,然后把压缩包发给别人,再告诉别人解压后执行里面的哪个脚本或程序的做法,显然如果做...

  • ./(点斜杠)与. (点空格)执行脚本文件的区别

    2016-06-17 - 首先普及一个知识点:. (点空格)莫个脚本文件相当于利用source文件执行这个脚本。 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令。 注:该命令通常用命令.来替代。 如:source .bash_rc 与 . .bash_rc 是等效的。 注...

  • Linux系统下用C语言获取MAC地址

    2016-06-16 - 最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下。如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址的函数再调用,可以采用方法二,见代码2。 代码1: #inc...

  • Linux用cmake编译c++

    2016-06-13 - g++ -o helloworld helloworld.cpp 但如果调用库的话,用g++编译非常不方便,我们可以写一个cmakelist,每次写新程序复制就可以了。 创建源文件 emacs -nw main.cpp 创建cmake命令 emacs -nw CMakeLists.txt 进行链接 cmake CMakeLists.txt 编译 make 运行 ....

  • 几条编程的小贴士

    2016-06-13 - 这篇文章我已经构思了几个星期了,现在决定发表出来。请享用! 1.编码之前想一想 用10分钟,20分钟甚至30分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸浪费了那几分钟,当你不得不更改...

  • Linux BASH多进程并行处理的方法实现

    2016-06-12 - 在shell中进行多进程处理,以前写的都是单进程的,今天看了一篇文章讲了linux的多进程处理。 #!/bin/bash SEND_THREAD_NUM=13 tmp_fifofile=/tmp/$$.fifo # 脚本运行的当前进程ID号作为文件名 mkfifo $tmp_fifofile # 新建一个随机fifo管道文件 exec 6$tmp_f...

  • java命令行生成jar包

    2016-06-12 - 一.环境 1.linux 2.已经安装好jdk 3.有一个待打包的jar文件A.java A.java源码: package com.abc; public class A { public static void test() { System.out.println(A:test()); } } 二.生成jar文件 # 生成class javac -d . A.java # 生成jar包 jar cvf a.j...

  • java命令行引用jar包

    2016-06-12 - 一.环境 1.linux 2.已生成的a.jar,在当前目录 3.a.jar生成看这里:java命令行生成jar包 4.调用a.jar的B.java a.jar的源码 package com.abc; public class A { public static void test() { System.out.println(A:test()); } } B.java源码 import com.abc.A;...

  • java命令行编译运行多个java文件

    2016-06-12 - 一.环境: 1.linux 2.有两个java类,A.java和B.java,都在同一个目录下 二.源码: A.java package com.abc; public class A { public static void test() { System.out.println(A:test()); } } B.java import com.abc.A; public class B { public static voi...

  • Linux环境下字符设备驱动开发入门Linux环境下字符设备驱动开发入门

    2016-06-10 - 前言 这篇文章主要总结了我学习嵌入式系统中,一个字符设备驱动的构建和运行过程。这篇总结中我会尽量简洁地告诉你在Ubuntu(Linux)中字符设备驱动的编程方式,一个简单的模块用C如何进行构建,并且如何将它作为内核模块动态地加载和卸载,你能够看到这个字...

  • Shell模拟密码输入(特殊按键的检测)

    2016-06-10 - shell我们平常在windows下登陆的时候输入密码的时候会回显一个*,而linux下只是屏蔽了回显,那shell有办法实现回显*么? 在网上搜了一阵,找到如下的实例,但是这个例子在我的环境下(ubuntu 16.04)运行还时有缺陷,主要的问题处在判断特殊按键上(backtrac...

  • openCV打开一张图片openCV打开一张图片

    2016-06-10 - 在安装完opencv后我们开始学习其强大的功能,如同hello world一样打开一张图片肯定是必须实现的功能。 下面我们开始讲解如何用opencv编写一个打开一张图片的程序。 一、main函数的格式 在c语言中我们常用void main() 来写主函数,但是在C++中这是不合法的,...

  • 挺不错的一个zsh配置

    2016-06-10 - 自己在网上找到的一个zsh配置,感觉还不错。 主目录下.zshrc文件中添加: #color{{{ autoload colors colors for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do eval _$color=%{$terminfo[bold]$fg[${(L)color}]%} eval $color=%{$fg[${(L)color}]...

  • 如何在安卓系统上使用arm-linux-gdb调试内核

    2016-06-07 - 现在很多安卓平台都没有把gdb调试工具编译进去,因此需要我们自己安装交叉编译环境下的gdb工具。 具体实现只需几步即可: 1.下载最新的arm-linux-gdb源码包 下载地址:http://download.csdn.net/detail/wlwl0071986/9462063(本版本工具为最新的arm-linux-gd...

  • 关于Linux shell多线程控制无效的bug

    2016-06-06 - shell的多线程编程代码网上有很多,示例代码如下: thead_num=5 #设置线程数,在这里所谓的线程,其实就是几乎同时放入后台(使用)执行的进程。 tmp_fifo_file=/tmp/$$.fifo #以进程ID号命名管道文件 mkfifo $tmp_fifo_file #创建临时管道文件 exec 6$tmp_f...

  • IntelliJ换行CRLF,LF,CR的解释和默认设置IntelliJ换行CRLF,LF,CR的解释和默认设置

    2016-06-06 - 在window下开发有一个大坑,就是换行默认是CRLF,也就是回车换行,但是Linux下只有换行LF,这样代码提交后,会出现编译问题,所以最好的办法是在IntelliJ下设置默认为LF。首先我们先介绍CRLF,LF和CR这三种东西,CR是MAC老版本的做法,就是回车,但是后来的M...

  • 编程语言漫谈

    2016-06-06 - 写在前边:我们知道现有语言的编程范式有:过程式,面向对象,函数式,逻辑式。随着软件工业化程度的普及,以及软件的复杂度越来越高,编程语言的发展历程也是从最初的过程式(命令式)语言c,发展到以java语言为代表的面向对象编程语言。而逻辑编程语言(以p...

  • 比较Linux系统下shell编程与c语言编程的异同

    2016-06-05 - Shell编程与C语言编程的相同点_两者的差异。 这是我们的Linux课程结课题目,搜索了一下,网上没有很好的这方面的解答,于是我自己整理了一份。 Shell简介:Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序...

  • linux中mutex和semaphore的区别

    2016-06-05 - 很多编程的书里在介绍mutex和semaphore的时候都会说,mutex是一种特殊的semaphore. 当semaphore的N=1时,就变成了binary semaphore,也就等同与mutex了。 但是实际上,在linux中,他们的实现什有区别的,导致最后应用的行为也是有区别的。 先看下面这个例子...

  • linux kernel编译产生的vmlinux Image zImage之间的关系

    2016-06-05 - linux kernel的编译过程比较复杂,最后生成的给用户使用的kernel文件也是多种多样。 先来看一段编译ARM kernel时命令行最后的输出,主要可以分为5个步骤: - 生成vmlinux - 生成arch/arm/boot/Image - 生成arch/arm/boot/compressed/piggy.gzip - 生成arch/a...

  • linux下dlopen动态函数库的加载和dlopen函数的多平台性

    2016-06-05 - 一,dlopen动态函数库的加载 1.前言 如论在Linux上编程还是在windows上编程,为了程序的可扩展性,很多地方都用到了动态库的加载。这里来谈谈linux下的程序的动态函数库的创建和加载。 2.创建动态库 在Linux下边编译成so库,gcc -fPIC -shared xxx.c -o libx...

  • PhantomJS的使用

    2016-06-04 - 1. 简介 phantomjs 简单来说是一个基于 WebKit 的无头浏览器环境。对无头,你可以理解成没有一个前端的 GUI 界面,所有的东西都在后台运行。 phantomjs 在无头界的名声,是源于从 WebKit 里得到的对 DOM / JS 的完整支持。 一个纯后台的,完整功能的浏览器,...

  • 编程语言中到处都能见到的$符号

    2016-06-04 - 0.前言 最近开发过程中使用了多种脚本语言,在这些语言中发现很多的$符号,而每种脚本语言的$符号的用法和意义均不相同,所以借博文总结总结。在linux应用开发中经常使用makefile脚本和shell脚本,有趣的是,这两种脚本使用$符号时存在明显差异,虽然在这两...

  • linux下文本读写:面向二进制字节流方式

    2016-06-04 - 第一步:先创建并写入文字到文件中。 示例代码如下:write.c #include stdio.h #include unistd.h #include stdlib.h #include fcntl.h #include string.h int main() { int fd = open(data,O_RDWR|O_CREAT|O_TRUNC,0666); if(fd == -1)perror(open),exit(0)...

  • ZFS那点事ZFS那点事

    2016-06-04 - 最近看到很多关于ZFS移植到Linux上文章,看来ZFS还是很被大家看好,那就写点关于ZFS的东西,之前对ZFS的使用主要集中在SmartOS上,那就在聊聊我对SmartOS上使用ZFS的体验和ZFS的特性吧。 ZFS COW (Copy On Write) 首先说下ZFS的copy on write 这个技术并不复...

  • 参考ethtool写了个Linux设置、获取网卡模式的接口

    2016-06-02 - 了解到ethtool这个工具十分强大,以为这个代码很复杂,而恰好领导要求我提供设置网卡信息的接口,于是下了代码,研究了一下,参考了一下,整理了一下。当然文中写的是第一个版本,要是这样的接口提供出去,其它部门的人肯定会有意见的。 Linux内核很早就已经...

  • 为steghide实现字典破解功能

    2016-06-02 - steghide是一个隐写术软件,可以在图片、音频等文件里隐藏数据。 鉴于原始的steghide在解密数据时不能选择字典文件破解,于是本人就用python简单地为其实现字典破解功能。 1、安装steghide 由于steghide太老了,不建议源码安装,我尝试在Kali、Ubuntu上安装...

  • linux驱动开发一般流程

    2016-06-01 - 首先,我们要考虑到作为驱动工程师要做的是拜托单片机开发的思路,在单板开发(没有OS)过程,设备的驱动接口直接交给了上层,驱动和应用互为平等。在有OS的系统中,驱动独立于硬件平台之外,应用工程师通过虚拟文件系统的read write对具体的IO进行操作 一般流...

  • 使用recvfrom()接收UDP包在Windows和Linux平台的不同表现

    2016-05-31 - 1、UDP接收原理 操作系统的UDP接收流程如下:收到一个UDP包后,验证没有错误后,放入一个包队列中,队列中的每一个元素就是一个完整的UDP包。当应用程序通过recvfrom()读取时,OS把相应的一个完整UDP包取出,然后拷贝到用户提供的内存中,物理用户提供的内存...

  • linux源码,list_entry阅读心得

    2016-05-31 - 本人在linux源码上还是新手,希望大家不吝赐教。谢谢。 list_entry定义: #define list_entry(ptr, type, member) \ container_of(ptr, type, member) #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)-member ) *__mptr = (ptr); \...

  • linux c之使用mprotect检测内存访问

    2016-05-30 - 在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。 函数原型如下: #include unistd.h #include sys/mmap.h int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为p...

  • linux下程序调试使用文件重定向

    2016-05-29 - c++ primer 5th教给我的小技巧: usinng the file redirection. It can be tedious to repeatedly type these transactions as input to the program you are testing . Most OS support file redirection , which let us associate a named file with the s...

  • Shell判断字符串包含关系的几种方法

    2016-05-29 - 现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含baidu字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。 方法一:利用grep查找 strA=long string...