红联Linux门户

Linux帮助
  • Linux c/c++ debug和release

    2016-01-21 - linux c/c++ 开发大都是用自己写的makefile,对debug和release的认识比较模糊,其实很简单,只要在makefile里面加入编译选项即可: debug:-o0 -g3 release:-o3 -o0禁止优化, -o3优化级别最高 -g3增加调试 PS:推荐linux两大调试神器gcov, gprof。 本文永久...

  • Linux环境数据备份Python脚本

    2016-01-20 - #!/usr/bin/python #Filename:backupscript.py import os import time # The files and directories to be backed up are specified in a list. source = [/data/] # The backup must be stored in a main backup directory target_dir = /mnt/backup/ # The...

  • linux中#和##用法

    2016-01-19 - 在linux内核中能看到很多的##,一般来讲#很容易理解。 一般来讲有两个用途: 1.在一些连接脚本文件里作为注释 也就是说#后面的都是注释内容 2.c代码中做类似宏定义的字符串替换 举个例子: #define TEST(a) #a printf(%s\n,TEST(tim)) 运行结果就是: tim...

  • 把自己加入kernel的邮箱列表把自己加入kernel的邮箱列表

    2016-01-19 - kernel 每天都在更新,几月就会有新的版本release出来,如何才能跟的上更新的脚步呢 。这里kernel 的组织就提供了一套邮箱系统所有的关于新版本和path的讨论都会分发下来,每天看看这些更新的说明讨论可以时刻跟住更新的脚本,对于lunux 的学习也是一个很好...

  • linux编译java并打包

    2016-01-18 - 一、首先是编译简单java文件(不引用外部jar包)如test.java public class test(){ System.out.println(hello world!); } 一个简单的类,看它是如何打包为jar的 1.第一步:先编译 javac test.java // 注意路径 编译后会产生一个test.class 文件 2.第二步: j...

  • Linux中的逻辑地址,线性地址和物理地址转换关系Linux中的逻辑地址,线性地址和物理地址转换关系

    2016-01-17 - 一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。 我们写个最简单的hello world程序,用gcc编译,再反汇编后会看到以下指令: mov 0x80495b0, %eax...

  • linux下重定向,把标准输出和错误输出一起同定向到文件

    2016-01-14 - linux下重定向,把标准输出和错误输出一起同定向到文件。 例如,要执行test里的脚本,把脚本的执行结果(包括标准输出和错误输出)一起重定向到 output。 shell代码如下: sh test 1output 21 代码中的1表示标准输出,2表示错误输出。21表示把错误输出重定向...

  • 在大学培养学生们参与开源代码开发的十四个技巧在大学培养学生们参与开源代码开发的十四个技巧

    2016-01-14 - 学术界是培养和塑造未来的开源开发者的最佳平台。研究中发现,我们偶尔会开源自己编写的软件。这样做有两个理由,一是为了推广自己编写的工具的使用,二是为了了解人们使用这些工具时会遇到哪些问题。在这样一个编写研究软件的背景下,我的任务就是为 Bradfo...

  • [Linux]英文环境下,临时以简体中文打开应用程序

    2016-01-12 - 1.简单一点,直接输入: env LANGUAGE=zh_CN.UTF-8 grep --help 2.写成一个脚本文件,以后方便直接调用; #!/bin/bash #version:0.1 #文件名称:~/bin/cnenv.sh #实现功能:英文环境下,临时以简体中文打开应用程序 env LANGUAGE=zh_CN.UTF-8 ${@:-$(read -p...

  • 〖Linux〗不重复启动某应用程序的脚本

    2016-01-12 - cmd=/home/scue/bin/ipclient $ipclient exist=$(ps aux | grep -v grep | grep $cmd | awk {print $2}) kill_process(){ kill -9 $exist } if [[ $1 != ]] ; then kill_process else if [[ $exist != ]]; then kill_process fi nohup $cmd /dev/null 21 fi...

  • Shell脚本修改输出文字颜色Shell脚本修改输出文字颜色

    2016-01-12 - Shell函数: echocolor(){ color=${1} shift case ${color} in black) echo -e \e[0;30m${@}\e[0m ;; red) echo -e \e[0;31m${@}\e[0m ;; green) echo -e \e[0;32m${@}\e[0m ;; yellow) echo -e \e[0;33m${@}\e[0m ;; blue) echo -e \e[0;34m${@}\e[0m ;; pu...

  • 简单的将Shell和一些文件打包成一个单独的“可执行文件”

    2016-01-11 - 有时候给别人分享一个工具的时候,同时需要提供的文件比较多; 如果分享一个压缩包还得教会对方如何解压、执行哪个脚本,感觉需要传输的内容多了就不方便; 把几个Shell脚本和文件打包成一个单独的可执行文件,对方接收到这个文件,只需要执行一下这个文件,...

  • 将Jar文件打包成Linux可执行文件

    2016-01-11 - 因为不想敲写 java -jar jarfile,而是想直接敲写 ./jarfile 就能够跑起程序。 #!/bin/bash - #===================================== # # FILE: shell_pack.sh # # USAGE: ./shell_pack.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS:...

  • linux下模拟按键kbhit(),检测按键终止while(1)死循环

    2016-01-11 - 如何通过另外一个事件来控制while循环以及在必要的时候使用按键控制while死循环。 1、设置一个循环标志。主进程中进行循环并且在每次循环中检查循环标志决定是否继续,线程中检测按键输入后改变该标志 2、主进程中进行按键检测,线程用于循环操作,主进程检...

  • Linux下IPC机制之Socket通信总结

    2016-01-10 - Linux下IPC机制有很多种,Socket算得上比较广泛的一种,在不使用像D-Bus之类的重量级消息总线之前采用socket作为两个进程之间的通话算得上比较不错的选择,因此它的用途比较广泛.这里稍微做下总结吧. 1、常规用法 //初始化MyLink进程 int initMylinkMsgServer()...

  • linux内核-__create_page_tables分析linux内核-__create_page_tables分析

    2016-01-09 - 前言: linux-arm架构 kernel版本:2.6.22.6 head.S首先确定了processor type和 machine type,之后就是创建页表。 通过前面的两步,我们已经确定了processor type 和 machine type。 此时,一些特定寄存器的值如下所示: r8 = machine info (struct machine_...

  • linux搭建交叉编译环境

    2016-01-09 - 安装环境: ubuntu 15.10发行版 交叉编译工具 arm-linux 4.5.1 安装参考: root用户登录: 复制arm-linux-gcc-4.3.2.tgz到根目录下任意(tmp)文件夹里(samba服务器) 解压命令tar xvzf arm-linux-gcc-4.3.2 -C / (自动解压到系统根目录下路径为:/usr/local/...

  • Valgrind 3.11.0编译安装

    2016-01-09 - Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind遵守GNU通用公共许可证条款,是一款自由软件。到3.3.0版本为止,Valgrind支持x86、x86-64以及PowerPC上的Linux。除此之外,还有一些其它非正式支持的类Unix平台(如FreeBSD、N...

  • Linux中的0x0D与0

    2016-01-08 - 遇到一个问题,子串口模块发送的数据0x0D,在ARM板上接收并打印出来时变成了0x0A。 解决方案是在配置串口时,添加上以下语句: Newtio.c_iflag = ~ICRNL; 理论依据是: ICRNL 将输入的回车转化成换行(如果IGNCR未设置的情况下) 0x0D 回车符CR 0x11 ^Q VSTA...

  • 俄罗斯方块Linux版——改善俄罗斯方块Linux版——改善

    2016-01-07 - 之前写的俄罗斯方块在玩的过程中发现一个很不方便的地方是没有暂停的功能,于是准备加上。想实现的效果是按下空格键暂停,同时弹出一个对话框显示当前处于暂停状态,再按一下某个键便继续运行。 另外就是当游戏结束的时候,希望可以弹出一个对话框,提示game...

  • 俄罗斯方块Linux版俄罗斯方块Linux版

    2016-01-07 - 用了大概三天时间用C语言加ncurses.h库在Linux下面写了一个简易的俄罗斯方块,还有很多地方可以完善,不过不打算写了。运行效果如下: 用方向键控制方块的移动,向上变换形状,ESC退出。 写之前参考了一本书上的方块等的数据结构定义(书名我真的忘了,好像...

  • linux中memset的正确用法

    2016-01-07 - 【起因】希望对各种类型的数组进行初始化,避免野值 【函数头文件】 疑问提示:在linux中可以在terminal中输入 man memset进行查询 #includestring.h void *memset(void *s, int c, size_t n); 【使用说明】 The memset() function fills the first n bytes...

  • Linux C编程下没有itoa()函数的问题

    2016-01-06 - 用ubuntu linux c编程,发现Linux内核中只有atoi()函数,被包含在stdlib.h头文件中,而没有itoa()函数,网上查了有一个实现了itoa()函数的代码: void itoa ( unsigned long val, char *buf, unsigned radix ) { char *p; /* pointer to traverse string */...

  • linux批量替换namespace缩进

    2016-01-05 - 1.vi设置自动缩进以后c++代码是这样的: namespace aa{ class A { } } 但是现在想要这样的效果: namespace aa{ class A { } } 这样设置即可: set cino=N-s 2.今天想把项目代码里所有const size_t替换成const std::string,可以这样做 grep -rl const size_t...

  • Linux域名解析得到ip地址

    2016-01-05 - Linux下域名解析得到ip地址代码如下: #include stdio.h #include netdb.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h int main(int argc, char *argv[]) { struct hostent *p; int i; if (argc 2) return -1; p = gethostbyname(ar...

  • linux中各种括号之(),(()),[],[[]],{}

    2016-01-03 - 1.单小括号() (1)命令组,括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。形如(cmd1;cmd2;cmd3),这三条命令的执行不会影响当前的shell环境。 (2)命令替换,$(command) (3)定义数据,array = (beijing tianji...

  • linux下makefile配置文件及make工具的使用

    2016-01-03 - 1.make工具及makefile文件 make是一个命令工具,它解释Makefile 中的指令(应该说是规则)。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefi...

  • Linux上使用Qt Creator进行C/C++开发Linux上使用Qt Creator进行C/C++开发

    2016-01-03 - Qt Creator支持中文,启动速度比Eclipse、Netbeans更快,界面也更美观,跟输入法Fcitx协作良好(光标跟随)。 你既可以把Qt Creator当代码编辑器作为vim辅助,好处在于Qt Creator能够自动parse项目,形成友好快速的智能提示,而且你也同样可以使用Qt Creator...

  • linux添加一个kernellinux添加一个kernel

    2016-01-02 - 在update-grub之后,需要修改/boot/grub/grub.cfg以在开机时选择新添加的kernel, 如下: ****************************************************** terminal_output gfxterm if [ ${recordfail} = 1 ] ; then set timeout=-1 else if [ x$feature_timeout_st...

  • Linux使用expect脚本实现远程机器自动登录

    2016-01-01 - 首先创建一个expect脚本ssh_expect,文件内容如下: #!/usr/bin/expect -f set hostname [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set timeout 30 set force_conservative 1 if {$force_conservative} { set send_slow {128...

  • 执行linux命令的两种方法

    2015-12-31 - os.cmd(Cmd) os模块提供了cmd函数可以执行linux系统shell命令(也可以执行windows命令)。返回一个Cmd命令的标准输出字符串结果。例如在linux系统中执行os:cmd(date). 返回linux的时间。 这种比较简单,一般情况下,也满足了大部分需求。 erlang:open_port(P...

  • android删除未使用的资源文件

    2015-12-31 - ubuntu下执行: lint --check UnusedResources Downloads/android_demo/YiBanProj result.txt Downloads/android_demo/YiBanProj为项目的路径result.txt为结果输出文件 执行下面Java代码: /** * 删除 未使用的冗余资源(图片 xml布局) * * @param b * * fals...

  • c++11中正则表达式的使用

    2015-12-30 - 环境:Ubuntu 15.10、QtCreator CMake c++ 头文件 #include regex regex_search: std::regex pattern; pattern = (HTTP/1\\.1|HTTP/1\\.0) \\d{3} [ \\-a-zA-Z]+\r\n(.+: .+\r\n)+\r\n; test = HTTP/1.1 200 OK\r\n Date: Thu, 24 Dec 2015 15:25:43 GMT\r\n...

  • solaris\linux下建系统任务执行shell脚本

    2015-12-30 - linux系统下: 1、建存放脚本的目录,如: [oracle@localhost]$mkdir /home/oracle/bin 2、修改系统环境变量文件中的PATH变量,加上/home/oracle/bin目录 [oracle@localhost]$vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.b...

  • php控制linux关机、重启、注销

    2015-12-28 - php 里面有个 system(exec) 方法, 可以调用系统命令。 重启 先建立一个脚本(比喻 /root/reboot_server.sh ),重启用的。//路径可随便,但最少必须保证可访问 代码如下: #!/bin/bash reboot 再给他赋予权限 4755 chown root:root /root/reboot_server.sh /...

  • Linux下文件描述符和打开文件之间的关系Linux下文件描述符和打开文件之间的关系

    2015-12-28 - 文件描述符和打开的文件之间似乎是一一对应的关系,但实际可以多个文件描述符指向同一打开文件,这些文件描述符可能在相同或不同的进程中打开。内核维护的三个数据结构: (1) 进程级的文件描述符表 (2) 系统级的打开文件表 (3) 文件系统的i-node表 1.进程级...

  • Linux下ELF共享库使用摘记

    2015-12-28 - 本文属于读书笔记,主要记录Linux下ELF(Executable and Linking Format)共享库使用几个主要注意的地方。 1.如何创建一个共享库 方法1:分步法。 gcc -g -c -fPIC -Wall mod1.c mod2.c mod3.c gcc -g -shared -o libfoo.so mod1.o mod2.o mod3.o 方法2:一...

  • 创建openwrt软件包

    2015-12-27 - 方法一 1、生成SDK make menuconfig选上Build the OpenWRT SDK,然后 Save,退出。再make一次。 make 完成之后,在 bin/ramips/ 目录下会生成SDK的压缩文件: OpenWrt-SDK-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2 2、安装SDK 把...

  • Linux下子进程与父进程的关系Linux下子进程与父进程的关系

    2015-12-27 - 我们知道,Linux下父进程可以使用fork 函数创建子进程,但是当父进程先退出后,子进程会不会也退出呢? 通过下面这个小实验,我们能够很好的看出来: /******** basic.c ********/ #include basic.h pid_t Fork(void) { pid_t pid = fork(); if (pid 0) { fp...

  • 用nasm重写linux0.00

    2015-12-27 - linux0.00由两个文件组成:boot.s(引导代码),head.s(运行代码)。程序最终在屏幕上不断打印A(任务1)和B(任务2)以及C(系统中断处理)。 boot.s代码: bootseg equ 0x07c0 sysseg equ 0x1000 syslen equ 17 start: jmp bootseg:go go: mov ax,cs mov...