红联Linux门户

Linux帮助
  • c程序调用shell脚本获取返回值方法c程序调用shell脚本获取返回值方法

    2017-04-08 - 流程示意图: shell脚本: 文件名:getpath #!/bin/bash curpath=$PWD temp1=$(mount) temp2=${temp1%%$curpath*} temp3=${temp2%*on*} mountpath=${temp3:0-9:9} echo $mountpath exit 0 pwd命令获取的结果: /media/xx/usb mount命令获取结果:/dev/sdb1 o...

  • 基础指南:利用Sed Stream编辑器在Linux中处理文本

    2017-04-08 - Sed stream编辑器是一款文本编辑器,能够对来自标准输入或文件的信息者编辑操作。Sed以非交互方式对内容逐行编辑。 这意味着大家能够通过调用命令做出编辑决定,而sed则能够自动加以执行。虽然这一机制不太直观且较难理解,但却是一种非常强大且快速的文本转...

  • Sed中级教程:在Linux环境下操作文本流

    2017-04-08 - Sed流编辑器是一款功能强大的编辑工具,能够利用极少输入内容完成多种操作。在上一篇教程里,我们探讨了sed文本编辑器基础知识。 本文将继续介绍其它更为先进的议题。 提供多个编辑序列 有时候,我们可能需要同时向sed发送多条命令。大家可以通过多种方式实...

  • linux清空日志shell脚本

    2017-04-07 - 1、find与xargs结合清空日志脚本案例 使用find的搜索某个目录下、log后缀的文件、某时间段文件更改时间的文件、文件类型为一般文件,然后通过xargs执行删除命令 find FIND_PATH -name *.log -mmin +n -type f | xargs rm -rf FIND_PATH:日志存储目录 -name...

  • 如何挑选你的第一门编程语言如何挑选你的第一门编程语言

    2017-04-06 - 想学编程的原因有很多,你也许是想要做一个程序,又或者你只是想投身于这个行业,所以,在选择你的第一门编程语言之前,问问你自己:你想要在哪里运行程序?你想要程序来完成什么工作?你学习编程的原因将会决定你的第一门编程语言的选择。...

  • 两个脚本文件,工作时间不允许访问百度,不工作时允许访问百度两个脚本文件,工作时间不允许访问百度,不工作时允许访问百度

    2017-04-05 - Linux之防火墙的两个脚本文件 如图所示:两个脚本文件 iptables_work.sh #/bin/bash iptables -A OUTPUT -p ALL -d www.baidu.com -j REJECT 工作时间不允许访问百度。 iptables_rest.sh #/bin/bash iptables -D OUTPUT -p ALL -d www.baidu.com -j REJECT...

  • 获取linux机器上的网卡地址获取linux机器上的网卡地址

    2017-04-05 - 获取linux机器上的网卡地址的代码如下: #include stdio.h #include string.h #include sys/socket.h #include sys/ioctl.h #include net/if.h #include unistd.h int get_mac(char* in_mac, int size) { struct ifreq ifr; struct ifconf ifc; char buf[102...

  • Dockerfile的书写规则和指令的使用方法Dockerfile的书写规则和指令的使用方法

    2017-04-05 - Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makef...

  • shell脚本第一行:#!/bin/bash的含义shell脚本第一行:#!/bin/bash的含义

    2017-04-05 - 相信有接触过shell脚本的同学们都应该知道,shell脚本的第一行一般会写有以下字样: #!/bin/bash 或者 #!/bin/sh 或者 #!/bin/awk 比较常见的说法是:第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。 但我们也知道,在she...

  • 关于waitKey()函数的用法

    2017-04-02 - 首先分享一段代码,和在Linux下的运行方法: //#include opencv2/calib3d/calib3d.hpp #include opencv2/core/core.hpp #include opencv2/highgui/highgui.hpp #include opencv2/imgproc/imgproc.hpp //#include opencv2/features2d/features2d.hpp #include...

  • 开发者的实用Vim插件(三)开发者的实用Vim插件(三)

    2017-04-02 - 目前为止,在一系列介绍 vim 插件文章中,我们介绍了使用 Pathogen 插件管理包安装基本的 vim 插件,也提及了另外三个插件:Tagbar、delimitMate(http://www.linuxdiyf.com/linux/25425.html) 和 Syntastic(http://www.linuxdiyf.com/linux/25508.html)...

  • Linux真随机数的生成

    2017-03-31 - 今天看《白帽子讲WEB安全》一书,看到笔者谈到Linux如何实现真随机数生成,感觉非常有用,记录下来。 #includeiostream using namespace std; #includeunistd.h #includefcntl.h #includecmath int main() { int randoms=open(/dev/random,O_RDONLY); int ra...

  • 订阅Linux内核的邮件列表订阅Linux内核的邮件列表

    2017-03-31 - 1、发送订阅邮件 注意:一定不要使用像Foxmail这样的第三方邮件客户端,因为发送的邮件会转码,导致订阅不成功,推荐使用Gmail,直接登录进去发送。 发送邮件内容: 接收人:majordomo@vger.kernel.org 主题:hello 内容:subscribe linux-kernel 2、接收到...

  • exif_imagetype()函数在linux下的php中不存在

    2017-03-30 - 1.问题,项目中上传文件使用插件时,windows上支持函数exif_imagetype(),而在linux上不支持。 2.PHP exif_imagetype的本质 PHP exif_imagetype note #1 Windows users: If you get the fatal error Fatal error: Call to undefined function exif_imagety...

  • Linux下C语言open函数打开或创建文件与read,write函数详细讲解

    2017-03-30 - open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #includesys/types.h #includesys/stat.h #includefcntl.h 定义函数 int open( const char * pathname, int flags); int open( const char * pathname,int f...

  • linux C编程之sleep()和usleep()的使用和区别

    2017-03-30 - 函数名: sleep 头文件: #include windows.h // 在VC中使用带上头文件 #include unistd.h // 在gcc编译器中,使用的头文件因gcc版本的不同而不同 功能: 执行挂起指定的秒数 语法: unsigned sleep(unsigned seconds); 示例: #include windows.h #includestdio....

  • Linux下查找.so文件中函数入口

    2017-03-29 - 有时候会想知道 .so 文件中某些信息,比如版本,函数入口等。strings 命令是个很有用的命令,比如我想知道 libstdc++.so 这个动态库里面是否有 refill 函数,可以用 $ strings libstdc++.so | grep refill 输出 _ZN9__gnu_cxx17__pool_alloc_base9_M_refillE...

  • Linux shell语句保留最新的几个文件Linux shell语句保留最新的几个文件

    2017-03-29 - 对于自动备份的一些文件,备份的会越来越多,所以,有时需要保存指定数量最新的文件,可以用一个简单的脚本来完成,操作系统平台是CentOS 6.5。 获取当前脚步所在目录 RootDir=$(cd `dirname $0`; pwd) 查看当前目录的文件数详细信息 ls -lt 显示文件数 File...

  • linux使用copy_from_user而不是memcpy拷贝用户空间数据原因

    2017-03-28 - 我们平时在内核中访问用户进程的地址的时候一般会用到copy_from_user,而不是用memcpy直接拷贝。 为什么有这样的要求? 另外在走读代码的时候发现有同事直接用了memcpy将用户空间数据直接拷贝到内核空间,但是并没有发现导致死机,这是什么原因呢? 接下来我...

  • linux cpufreq调频实现

    2017-03-28 - 目前的cpu频率越来越高,但实际上大部分场景并不需要cpu一直工作在最高频率。 因为cpu工作频率越高,功耗越大,尤其是对手机等移动设备,更需要降低功耗,延长手机电池使用时间。 在linux中,通过cpufreq来实现频率的动态调节。 1.先直观看下cpufreq提供的功...

  • linux下运算的几种方法

    2017-03-28 - 1.expr 1.1.最简单的用法 yan@yan:~$ expr 4 \* 5 20 yan@yan:~$ 1.2.bash脚本对于expr yan@yan:~$ cat expr1.sh #!/bin/bash PATH=/home/yan/bin:/home/yan/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loca...

  • Linux退出状态码Linux退出状态码

    2017-03-28 - Linux退出状态号码 命令:echo $? 可以读取上一条命令的退出码 0 命令成功执行 1 一般性未知错误 2 不适合的shell命令 126 命令不可执行 127 未找到命令 128 无效的退出参数 128+x linux信号严重错误 130 通过ctrl+c退出的 255 正常范围之外的退出状态码 案例...

  • Linux系统监控-内存读取

    2017-03-25 - 一、背景 做一个监控程序,监控设备系统使用内存情况;后续使用 free命令发现系统内存越来越小,而小到一定程度后仍然保持,并未导致OOM。 二、相关资料 Linux 下 free 命令手册 NAME free - Display amount of free and used memory in the system SYNOPSIS...

  • Linux下使用libiptc库编程下发规则

    2017-03-25 - 一、背景需求 近期编写tcp透明代理时,考虑了透明方式下需要使用 iptables 进行 DNAT/SNAT 规则下发,在程序中可以生成命令后通过 system 调用执行; 那么,iptables 是否有提供外部接口来代替上述这种 system() 执行命令的方式?答案是可以使用libiptc库进...

  • Linux下使用原始套接字实现ping命令Linux下使用原始套接字实现ping命令

    2017-03-25 - 一、背景需求 客户端程通过透明代理访问远程服务器,代理需要以SNAT去修改源地址源端口,一般写法是Add SNAT、Connect、Del SNAT; 那么问题来了,加SNAT规则时需要 -s $ip --sport $port (避免多个客户端互相混淆),若正好代理机器上存在多个地址时,调用...

  • Linux下TCP非阻塞连接的方法

    2017-03-25 - 一、背景 TCP连接函数用于连接服务器端口,若服务器地址不存在时,并不能在短时间内返回连接结果; 二、相关知识 1、连接超时机制 在非阻塞的socket下,调用connect连接函数会一直阻塞到连接建立或者连接失败,连接建立的时候那时间比较快,而失败的时候分错...

  • Linux下使用openssl库编程实现对称加密解密

    2017-03-25 - 一、背景 需求是对文件内容加密解密,对称秘钥方式有DES、3DES等方法,这样加密方与解密方可以双方约定好秘钥就能完成文件的安全传输; 二、相关知识 2.1 对称加密算法DES 概念:DES数据加解密就是将数据按照8个字节为单位进行DES加密或解密得到一段8个字节...

  • Linux下使用readline库编程实现多级CLI菜单Linux下使用readline库编程实现多级CLI菜单

    2017-03-25 - 一、背景 CLI是一种快速简洁的人机交互方式,优秀的CLI(如 MySQL、vtysh、gdb)带给我们非常好的体验。那么CLI都是如何开发出来的? 二、相关知识 2.1 CLI vs GUI 纵观CLI与GUI的发展进行比对:CLI命令行交互对于使用者而言,就是专业、高效;而GUI界面式的...

  • 使用Linux shell(awk)读取pom.xml版本号使用Linux shell(awk)读取pom.xml版本号

    2017-03-24 - 在maven项目中,使用pom.xml进行构建配置,maven构建完后,一般将构建好的jar或war包放置在仓库内。在进行持续集成的活动中,需要将这些编译好的包发布到其他地方,发布最简单的方法是进行文件拷贝,通过脚本来实现文件拷贝、解压、发布,而文件名是频繁变动...

  • Linux Shell判断环境变量是否存在Linux Shell判断环境变量是否存在

    2017-03-24 - Linux Shell 判断环境变量 是否存在: #!/bin/bash if [ 0$PATH = 0 ]; then echo not found else echo $PATH fi 比如这里判断环境变量PATH是否存在,存在这输出该环境变量,不存在则输出 not found 在方括号的两侧都有空格,在-f、-lt、=等符号两侧同样也有...

  • linux c开发php7扩展linux c开发php7扩展

    2017-03-23 - 记录一下php7扩展开发的步骤。 先做准备工作 1:在php.net下载源代码 2:安装php7 Ubuntu 16.04源码编译安装PHP7:http://www.linuxdiyf.com/linux/23034.html 扩展名称为gradytest,下面开始操作 进入ext目录,执行 ./ext_skel --extname=gradytest 生成gra...

  • 在Linux下用C语言来编写Python模块

    2017-03-22 - 环境准备 以下操作与代码在Linux Ubuntu 16.04测试通过 下载python源代码 如果需要下载其他版本,需要自行更改对应的下载路径: wget http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz 解压tar.xz 下载下来的压缩包是两层压缩后的文件,需要两...

  • Linux下C函数snprintf的使用

    2017-03-20 - Linux下的C函数snprintf可以用来构建字符串,可以将不同类型的字符连接起来,下面是代码: #includestdio.h #includestdlib.h int main() { char dest[30] = ; char chTest[] = abcdfg; int iNum = 2016; int len = snprintf(dest, sizeof(dest), %s@%d,chTe...

  • Linux下C语言实现简单的udp通信

    2017-03-20 - 用C语言实现UDP 通信。写一个udp 的客户端,可以向外发送消息。再写一个udp服务端,接收客户端的消息,并且打印出来。 事先说明: 在window和Linux中有一下结构: struct sockaddr { unsigned short; sa_family; //address family :AF_XXX char sa_data[14];...

  • linux fmemopen函数打开一个内存流,使用FILE指针进行读写访问linux fmemopen函数打开一个内存流,使用FILE指针进行读写访问

    2017-03-20 - fmemopen()函数打开一个内存流,使你可以读取或写入由buf指定的缓冲区。其返回FILE*fp就是打开的内存流,虽然仍使用FILE指针进行访问,但其实并没有底层文件(并没有磁盘上的实际文件,因为打开的内存流fp是在内存中的),所有的I/O都是通过在缓冲区与主存(...

  • 关于Linux下alsa录音程序移植出现的奇怪问题

    2017-03-19 - 以下程序是可以正常运行的: #include alsa/asoundlib.h #include math.h #include pthread.h #include string.h #define BUFFERSIZE 4096 #define PERIOD_SIZE 1024 #define PERIODS 2 #define SAMPLE_RATE 16000 #define CHANNELS 1 #define FSIZE 2*CHANN...

  • Linux/Mac下执行某脚本自动输入密码

    2017-03-19 - 前提条件: 安装了expect (mac: brew install expect) 当我们在终端启动MySQL服务,或者其他一些服务的时候, 如果权限不够, 需要赋予root权限, 如果频繁启动和关闭,都需要输入密码, 让人感觉很烦. 建立一个自动启动服务的脚本,该脚本能实现: 1.无论脚本在哪里...

  • 使用SkyEye模拟ARM Linux使用SkyEye模拟ARM Linux

    2017-03-16 - 对于希望学习 ARM 汇编的同学而言, 购买 ARM 开发板进行板上实测无疑是一个有效的方法,不过购买 ARM 开发板需要一笔费用,而且每次测试都需要连接开发板,比较麻烦。这里介绍一个 ARM 模拟器SkyEye,通过 SkyEye 我们可以直接在一台 PC 上完成 ARM 汇编程...

  • Thrift在Windows及Linux平台下的安装和使用示例Thrift在Windows及Linux平台下的安装和使用示例

    2017-03-16 - thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的RPC(远程服务调用)框架。 本文主要目的是分别介绍在Windows及Linux平台下的Thrift安装步骤,以及实现一个简单的demo演示Thrift的使用方法。更多Thrift原理留在以后再行介绍。 thr...

  • 如何编写和使用自定义的Shell函数和函数库如何编写和使用自定义的Shell函数和函数库

    2017-03-15 - 在 Linux 系统下,Shell 脚本可以在各种不同的情形下帮到我们,例如展示信息,甚至 自动执行特定的系统管理任务,创建简单的命令行工具等等。 在本指南中,我们将向 Linux 新手展示如何可靠地存储自定义的 shell 脚本,解释如何编写 shell 函数和函数库,以...