红联Linux门户

Linux帮助
  • Bash下如何逐行读取一个文件Bash下如何逐行读取一个文件

    2015-08-31 - 在 Linux 或类 UNIX 系统下如何使用 KSH 或 BASH shell 逐行读取一个文件? 在 Linux、OSX、 *BSD 或者类 Unix 系统下你可以使用while..do..done 的 bash 循环来逐行读取一个文件。 在 Bash Unix 或者 Linux shell 中逐行读取一个文件的语法 对于 bash、ksh...

  • 强大的vim配置文件,让编程更随意强大的vim配置文件,让编程更随意

    2015-08-31 - 花了很长时间整理的,感觉用起来很方便,共享一下。 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按F8可进行C、C++代码的调试 2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方...

  • bash的漏洞,你们中招了吗?

    2015-08-30 - 检测: $ env x=(){:;}; echo vulnerable bash -c echo this is a test 中招的显示: vulnerable this is a test 如果是没有问题,则是下面: $ env x=(){:;}; echo vulnerable bash -c echo this is a test bash: warning: x: ignoring function definition...

  • 打造阅读Linux源代码利器打造阅读Linux源代码利器

    2015-08-29 - 在Linux里阅读/编写代码一般用vi 但是碰到较大的项目时阅读源代码还是比较费力,一直用find 和 grep命令。 其实,我们自己可以打造一个阅读源代码的vim,这样大大提高工作效率。 阅读源码利器组合:Vi + Ctags + taglist 以下为最终实现的效果图: 安装Ctags...

  • linux shell中$的用法

    2015-08-29 - 以下列举了$的常用方法 $n表示传递给脚本的参数,$1表示第一个,$2表示第二个 $#表示传递给脚本的参数个数 $0 表示脚本的名字。 $? 表示上一次命令的退出状态,成功为0,否则为1 $$表示当前程序进程的ID号 $! 表示上次程序进程的ID号 $@ 传递给脚本的所有参...

  • linux下,测试usleep函数对CPU占用率的影响

    2015-08-29 - 一、本机环境 CPU信息 Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz 内存信息 MemTotal: 1990228 kB 二、搭建测试代码 1.测试...

  • windows程序移植linux

    2015-08-28 - 1,路径名统一用正斜杠/。(windows下正反斜杠都识别,linux只认正斜杠。) 2,统一使用UTF-8格式编码。 vim中无法保存汉字时,可输入下列命令: :set fileencoding=prc :set encoding=prc 读取文件,输出为乱码时,可使用libiconv库,具体方法:linux下使...

  • Shell脚本的执行方式

    2015-08-28 - 能完成大部分输出任务的命令:echo echo helloworld; #正确 echo hello world; #正确 echo hello world !; #中间有空格须加引号,且!在Linux中有特殊含义,不能加双引号,而用单引号(注:存在一些Linux系统可以正常输出,但不推荐此写法) echo hello worl...

  • 制作linux内核安装包

    2015-08-26 - 实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单。 make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件 CONFIG_DEBUG_INFO=n (避免编译产生文件过大) make oldconfig make all -j4 make modules_instal...

  • Linux源代码分析工具链Linux源代码分析工具链

    2015-08-26 - 前言 看源代码是一个程序员必须经历的事情,也是可以提升能力的一个捷径。个人认为: 要完全掌握一个软件的方法只有阅读源码。 在Windows下有sourceinsight这个源码阅读软件(虽然我没用过,但是网上评价还不错),由于我是个Linuxer,并不喜欢用Windows,所...

  • MinGW仿linux开发环境MinGW仿linux开发环境

    2015-08-25 - MinGW 默认安装 MSYS。通常打开的 MinGW Shell 其实 MSYS,MinGW 作为一个组件存在。 MSYS -- Minimal SYStem,是一个 Bourne Shell 解释器。 MinGW -- Minimalist GNU for Windows. 基于原生 windows 的开发环境,不是虚拟机。 以 MinGW 安装根目录为 D:\Mi...

  • shell常用特殊变量

    2015-08-24 - 特殊变量列表: 变量名 含义 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID $@ 传递给脚本或函数的所有参数 $* 传递给脚本或函数的所有参数 $# 传递给脚本或函数的参数个数 $n 传递给脚本或函数的参数 $0 当前脚本的文件名 linux中shell变...

  • 把linux可执行程序做成一个服务

    2015-08-20 - 在linux系统启动的时候,我们可以看到很多服务性程序一个接一个的被启动(就是那些后面有一个兰色[OK]的行),这些在后台运行的程序为我们使用计算机起了很重要的作用,以这种方式运行的程序有以下特点: 开机启动、关机停止、后台运行 通过service 命令控制...

  • Fedora下如何编译自己的linux内核(x86平台)Fedora下如何编译自己的linux内核(x86平台)

    2015-08-19 - 此文档只做步骤总结,具体每个步骤细节部分可在网络上搜索,有大量资料可供参考。 编译环境:VMware9.0+Fedora9.0 内核版本:2.6.32.67 内核运行平台:x86 第一步:获取内核源码 编译内核之前,首先是获取内核源码,这里强调一点,必须从官网http://kernel.o...

  • Android开发的十项注意

    2015-08-18 - 随着移动平台的发展及其应用的不断改善,质量成为决定成败的关键。用户要求他们安装的应用响应快、性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那注定会被很快卸载; 尽管现在Android智能手机和平板电脑的运行速度越来越快,但开发者仍需牢记...

  • Linux下把文件夹复制到所有同名文件夹的脚本

    2015-08-18 - 需求:复制文件夹到Linux目录下,覆盖该Linux目录下所有同名文件夹 目标:Linux下,执行本脚本,输入文件夹名,即可批量复制覆盖。 使用说明: 先把本脚本文件和要复制的文件夹移到将要覆盖的Linux目录,之后执行本脚本即可。 执行命令: ./tcopy.sh 1.如果...

  • 简化程序员工作生活的4个窍门简化程序员工作生活的4个窍门

    2015-08-18 - 如果可以简化你的生活少做枯燥的任务,将时间真正地用于完成事情,你愿不愿意去尝试?下面就让我一起来学一下如何让程序员工作生活变得简单的小窍门。 如果你敢于倾听自己的心声,你会发现自己一天中的大多数时间所做的事情并不都是有趣的。然而,为了完成你...

  • linux下ruby使用tcl/tk编程环境设置linux下ruby使用tcl/tk编程环境设置

    2015-08-17 - 正常情况下最新的ruby都是不带tcl/tk选项编译的,所以我们在运行tcl/tk代码时都会发生找不到tk库的错误。解决办法很简单只要以tcl/tk选项编译ruby即可。 这里以ubuntu 15.04为例,前提是先安装rvm;如果不用rvm也可以,不过要自己下载源代码回来编译,不如一...

  • 在Fedora22环境下编译调试linux 0.12在Fedora22环境下编译调试linux 0.12

    2015-08-17 - 概述: 本文介绍在Fedora22中编译调试Linux0.12。本文基于网友提供的Linux0.12源代码(我在makefile中做了一处修改)、赵炯博士所提供的linux-0.11-gdb-rh9-050619资料包1,2等资源,完成能够在Fedora22中编译并调试Linux0.12内核(根文件系统存放与硬盘中,...

  • Linux OOM killer机制

    2015-08-14 - Linux中的Out Of Memory(OOM) Killer功能是一种确保系统内存足够的最终手段,可以在耗尽系统内存或交换区后,按某种算法判断占用系统最多资源的进程,向进程发送信号,强制终止该进程。 简单来说该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存...

  • 重新理解Linux操作系统的四种I/O模型重新理解Linux操作系统的四种I/O模型

    2015-08-10 - 其实我觉得I/O模型已经是计算机领域技术出现频率非常高的一个词汇,而且我相信大多数有志向的程序员一定都专门的去学习和研究过相关的概念。但是作者觉得大部分的文章都写的差不多,看了一遍学习了一些词汇,当然可以拿出原话来给大家介绍I/O模型的相关概念...

  • 轻松使用“Explain Shell”脚本来理解Shell命令轻松使用“Explain Shell”脚本来理解Shell命令

    2015-08-09 - 我们在Linux上工作时,每个人都会遇到需要查找shell命令的帮助信息的时候。 尽管内置的帮助像man pages、whatis命令有所助益, 但man pages的输出非常冗长, 除非是个有linux经验的人,不然从大量的man pages中获取帮助信息是非常困难的,而whatis命令的输出...

  • 史上最复杂的验证邮件地址的正则表达式史上最复杂的验证邮件地址的正则表达式

    2015-08-08 - 用正则表达式验证邮件地址似乎是一件简单的事情,但是如果要完美的验证一个合规的邮件地址,其实也许很复杂。 邮件地址的规范来自于 RFC 5322 。有一个网站 emailregex.com 专门列出各种编程语言下的验证邮件地址的正则表达式,其中很多正则表达式都是我听说...

  • Starting your first golang program.编写golang程序的"Hello W

    2015-08-06 - 下面我们开始Go的 Hello world 的编写,主要参考资料来自: https://golang.org/doc/install 主要包括以下几个部分: 1. Go在Linux内核操作系统下的编译环境的安装。我这里是Ubuntu 15.04, Linux 3.19.0内核。 2. Go程序的编写于运行。 3. Go程序简要说明 4....

  • 如何向Linux内核提交驱动如何向Linux内核提交驱动

    2015-07-31 - 当Linux驱动程序开发到一定阶段,向kernel.org提交代码是一个很好的选择。对于很多没有向上游提交过代码的开发者来说,还是有很多疑问需要解决的。比如,究竟我们向哪里提交驱动程序?提交时我们的代码应该处于什么状态?提交的过程又如何呢? 向哪里提交 Li...

  • 在Linux命令行中使用和执行PHP代码(二):12个PHP交互性shell的在Linux命令行中使用和执行PHP代码(二):12个PHP交互性shell的

    2015-07-30 - 在上一篇文章在 Linux 命令行中使用和执行 PHP 代码(一)中,我同时着重讨论了直接在Linux命令行中运行PHP代码以及在Linux终端中执行PHP脚本文件。 本文旨在让你了解一些相当不错的Linux终端中的PHP交互性 shell 的用法特性。 让我们先在PHP 的交互shell中...

  • 谈谈为Linux内核写驱动的编码规范谈谈为Linux内核写驱动的编码规范

    2015-07-30 - 最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核的coding style要求还是差很多。当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代码的时候在很多细节上会照顾不周。不过, 在不遵守规则的程序员队伍里,我并...

  • 在Linux命令行中使用和执行PHP代码(一)在Linux命令行中使用和执行PHP代码(一)

    2015-07-29 - PHP是一个开源服务器端脚本语言,最初这三个字母代表的是Personal Home Page,而现在则代表的是PHP:Hypertext Preprocessor,它是个递归首字母缩写。它是一个跨平台脚本语言,深受C、C++和Java的影响。 PHP的语法和C、Java以及带有一些PHP特性的Perl变成语...

  • 做10年Windows程序员与做10年Linux程序员的区别

    2015-07-29 - 如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服...

  • Linux命令行和shell脚本编程宝典 PDFLinux命令行和shell脚本编程宝典 PDF

    2015-07-28 - 《Linux命令行和shell脚本编程宝典》让你精通命令行,不再需要GUI,精通所有Linux shell,实现脚本化和自动化,迅速获得结果。 内容推荐 在Linux系统中,命令和shell脚本是非常重要的内容,它们的功能非常强大,使用它们可以完成各种操作。本书分为5部分。第...

  • UNIX文件权限之“设置用户ID位”

    2015-07-27 - 用stat函数可以获取一个文件的状态信息,原型是这样的: int stat(const char *path, struct stat *buf); 其中结构体stat的结构: struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* pr...

  • Linux控制台下密码输入解决方案

    2015-07-25 - 在Linux系统编过C语言程序的程序员应该都知道,其和在Windows编程是有很大的区别的,Linux下没有许多在Windows下常用的头文件,但也有许多Windows下没有的头文件,对于初学者来说,是有一定的限制性的,就比如conio.h头文件,里面有许多的函数我们经常使用,...

  • Linux里命令的对话框whiptail

    2015-07-25 - Linux里面可以在命令行里形成对话框,用光标上下,左右选择,一屏一屏的问答选择,填写。 whiptail是Linux不需要另行安装,默认就有的,其它的比如dialog需要另行安装,很麻烦,虽然功能比较好些。 帖一个写好的东西。 #!/bin/bash trap 2 while true do OPT...

  • 2015年最具人气的10大编程语言2015年最具人气的10大编程语言

    2015-07-24 - 如果你问现在最流行的编程语言是哪种?那我只能诚实地回答:具体情况具体分析。因为我不知道,你是想要在热门的移动app创业公司找一份工作,还是随大流地随便写写代码,亦或是自己来创建一个电子艺术项目?!语言是一种工具,甲之蜜糖乙之砒霜,对这一领域而...

  • Linux AIO机制

    2015-07-23 - Linux的I/O机制经历了一下几个阶段的演进: 1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。 2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。 3. 异步事件阻塞I/O:...

  • Linux下的两个经典宏定义Linux下的两个经典宏定义

    2015-07-16 - 本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇文章作铺垫。 offsetof宏定义: // 获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移量。 #define offsetof(TYPE, MEMBER) ((size_t) ((TYPE *)0)-MEMBER) 说明:获得结构...

  • Linux系统下弹出光驱的C程序(已在Fedora22下测试通过)

    2015-07-16 - #include fcntl.h #include linux/cdrom.h #include stdio.h #include sys/ioctl.h #include unistd.h int main(void) { int fd = open(/dev/cdrom, O_RDONLY | O_NONBLOCK); if (fd == -1) { printf(Failed opening CD-ROM.\n); return -1; } if (!ioctl(fd...

  • tcp_tw_recycle检查tcp_timestamps的内核代码

    2015-07-15 - 注意:本文档中的内核代码的版本:linux-4.0.5 /************************************************* * Author : Samson * Date : 07/14/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu)...

  • GNU Linux系统变量(sysctl配置命令)综合使用

    2015-07-15 - 查看所有kernel变量的值 sysctl -a 如何查看一个系统变量的值 1)、cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 2)、sysctl -a | grep ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000 修改方法: 1)、echo 1024 65535 /pro...

  • Linux内核中likely与unlikely的宏定义解析

    2015-07-15 - 在Linux 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等价于 if(value) if(unlikely(value)) 也等价于 if(value) 也就是说 likely() 和 unlikely() 从阅读和理解代...