2014-08-21 - 在类linux环境搭建环境的步骤,留存备用。 操作基于我本机虚拟的Ubuntu12.04LTS版本系统,步骤来自于网络,我自己亲身实践一遍而已。 安装之前先进行一下系统本身的更新,1.apt-get update更新软件包列表。2.apt-get upgrade更新已经安装的所有软件包。 $ su...
2014-08-17 - 通过修改proc系统的drop_caches清理free的cache $echo 3 /proc/sys/vm/drop_caches drop_caches的详细文档如下: Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To f...
2014-08-16 - 可以用access函数来判断。 int access(const char *pathname, int mode); 下面是对参数mode的说明。一般来说,判断文件或文件夹是否存在,取 mode=F_OK 就可以了。 值 mode 说明 0 F_OK 只判断是否存在 2 R_OK 判断读取权限 4 W_OK 判断写入权限 6 X_OK 判断...
2014-08-15 - 操作环境:RHEL 5.1 一、准备工作 1、获取内核 http://www.kernel.org/ 2、解压缩内核文件,进入解压后内核源代码目录,切换至root用户 tar -xzvf linux-2.6.39.4.tar.bz2 cd /mnt/hgfs/linux-2.6.39.4 su root 二、内核编译 3、内核清理:清理源代码中的*.o...
2014-08-13 - Linux内核代码的调试非常麻烦,一般都是加printk, 或者用JTAG调试。这里的方法是用QEMU来调试Linux内核。因为QEMU自己实现了一个gdb server, 所以可以非常方便的使用gdb来调内核。 这对内核的学习也非常有帮助。 为了尽量不多花时间在QEMU设置上,这里直接使...
2014-08-12 - 相同点:都可用于申请动态内存和释放内存。 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数...
2014-08-12 - 1、简介 Windows 下远程 Linux 开发工具,比较著名的就是 WinGDB 和 Magic C++。都是商业软件,而且配置复杂,据说还不稳定。其实,我们想要的就是个图形环境 IDE,而且是直接操作的远程 Linux 环境。经过若干的实践,发现使用 SecureCRT + Eclipse 基于 X11...
2014-08-11 - 遇到一个要求,要求shell输出的字符串是彩色的,现在写下来备忘。 示例: echo -e type \e[31m c\e[0m to continue 这样输出一个 type c to continue 的字符串,其中c是红色的。 如果想让c是黄底红字 echo -e type \e[31;43m c\e[0m to continue 如果想再加...
2014-08-11 - 索引节点,其英文为 Inode,是 Index Node 的缩写。索引节点是整个 Linux 文件系统的基...
2014-08-10 - Linux下使用umask()函数来改变系统文件权限。 我们先将系统权限屏蔽改为0222,然后新建文件观察新文件的访问权限,接着将系统的权限屏蔽改为0002,然后再新建文件file2观察其访问权限,最后再将系统权限屏蔽改为0022,新建文件file3观察其访问权限。 #includ...
2014-08-10 - 关于在Linux环境中用Eclipse搭建C++程序开发平台的方法。 1、准备安装文件 jdk-1_5_0_17-linux-i586-rpm.bin.gz eclipse-SDK-3.5-linux-gtk-x86_64.tar.gz cdt-master-6.0.0.zip 这三个文件的下载地址分别是: http://java.sun.com/javase/downloads/index.j...
2014-08-08 - 从linux内核2.6开始,内核编译采用Kbuild系统。在内核里面,Makefile分为三种,一种是kernel Makefile,一种是Kbuild Makefile,一种是ARCH Makefile。 Kbuild Makefile主要指明哪些代码编译进内核,哪些代码编译进模块。下面是linux-3.7-rc2版的最新内核中b...
2014-08-08 - 这是我从网上下载的最新版的linux3.7-rc2版的内核,所谓rc版,就是修复(rescovery)版的意思。因为之前参加linux内核开发者大会的时候,讲btrfs文件系统的人不少,说这是新一代文件系统,支持很多相当先进的功能,有望取代EXT4文件系统,所以就down下来看看...
2014-08-08 - os.time() == 返回当前系统的日历时间 os.date() == 返回本地化的时间字符串,这里是11/28/08 17:23:37 os.date(%x, os.time()) == 返回自定义格式化时间字符串(完整的格式化参数),这里是11/28/08 os.clock() == 返回执行该程序CPU花去的时钟秒数,这里是...
2014-08-07 - 显示文本文件myfile中第七行到第十五行中以字符%分隔的第一字段,第三字段和第七字段:awk -F % NR==7,NR==15 {printf 1 3 7} 显示文件myfile中的行号和第3字段:awk {printf%03d%s\n,NR,1} myfile 显示文本文件mydoc匹配(含有)字符串sun的所有行。awk /su...
2014-08-07 - #!脚步中的第一句,指明执行脚本使用的程序 示例:#!/bin/bash # 注释,用于帮助信息或者忽略暂时不执行的语句 示例:# echo hello # this is a comment $ 变量替换符号 示例:a=123;echo $a ${} 变量正规表达式,避免变量名提前截断 示例:${13} $num 位置...
2014-08-07 - 本文档描述如何在Windows和Linux下使用Syslog库,在Linux下GNU库中已经自带有syslog库,但是在Windows下的标准库中没有syslog库,从网上可以找到syslog的开源代码实现,接口函数基本上与Linux一致,并且提供一个扩展函数来设置读取syslog服务器的IP地址和端...
2014-08-07 - 新建hello.c #include linux/kernel.h #include linux/module.h int init_module(void) { printk(KERN_INFO Welcome.....\n); return 0; } void cleanup_module(void) { printk(KERN_INFO Bye....\n); } 然后在同一目录下编写Makefile obj-m := hello.o all:...
2014-08-07 - printk是内核打印函数,需要在Linux内核源代码中调用printk函数需要包含kernel.h 内核入口函数start_kernel中添加了代码 printk(KERN_NOTICE Im the printk in the kernel\n, linux_banner); 重现变异内核后。察看dmesg在dmesg开头处可以看到 [ 0.000000] Im...
2014-08-06 - 一、安装jdk jdk下载地址: http://www.Oracle.com/technetwork/java/javase/downloads/jdk-6u31-download-1501634.html 1.jdk上传到linux [root@acong tools]# ll total 167060 -rw-r--r-- 1 root root 85292206 Nov 8 2012 jdk-6u31-linux-i586.bin -rw-r-...
2014-08-06 - 最近开始学习Python,为整理思路,特此撰文以记之。 1、一些基础知识 要学习一门编程语言,安装其开发工具自然是必不可少的事情之一。本人此次基于Windows和Linux(Ubuntu)学习Python,所以其开发工具的安装也只论述Windows和Ubuntu环境下的安装过程。 Wind...
2014-08-06 - 如果系统存在文件名相同,但路径不同的文件,如果单纯用find来批量复制到一个地方的话会被覆盖掉,下面的脚本是实现根据文件名的路径来进行存放复制。为能更好的测试,脚本中加了在不同路径创建相同文件名的程序。 #!/bin/sh . /etc/profile # define tf=tes...
2014-08-05 - 前言: 作为一个运维人员,经常会有开发的同事审请一些服务器的sudo权限,而且有同事离职,也需要将sudo权限移除,(开发同事离职之后并不是马上就要将其帐号删除,至少要保存三个月的时间 ),服务器少了还好说,那如果有几十台的话,那就不好办了,自己写...
2014-08-04 - 一、环境描述 server:192.168.122.54 client:192.168.122.55,192.168.122.56 同步目录:/data/html server端有任何数据更新,即将同步到client端,实时同步 二、采用方法:rsync+inotify 三、关于inotify原理(略) 四、操作过程 4.1服务端脚本 #!/bin/ba...
2014-08-04 - 文件路径名的解析是VFS中最基本也是最频繁用到的一个部分,它的代码实现还是十分繁杂的,主要是因为除了普通文件名的解析,内核还要考虑各种可能出现的情况,如一个目录下挂载了多个文件系统,路径中的符号链接等等后面我会分几次将整个过程进行一个尽量仔细...
2014-08-04 - 上文介绍了解析文件路径名的一个通体的过程,这里再把其中的一些细节拿出来进行分析。首先对于文件名的特点,可以分为三类:普通文件名,.和..,对于.的处理很简单,因为它表示当前目录,因此直接通过continue进入下一轮查找即可,对于..,也就是退回到父目录...
2014-08-04 - 对于一个文件路径的分量,如果其不为.和..则属于普通文件名,普通文件名的解析由do_lookup()函数来处理 staticint do_lookup(struct nameidata *nd, struct qstr *name, struct path *path) { struct vfsmount *mnt = nd-path.mnt; struct dentry *dentry =...
2014-08-04 - open()系统调用用来打开一个文件,本文就VFS层,对open系统调用的过程进行一个简单的分析。 SYSCALL_DEFINE3(open, constchar __user *, filename, int, flags, int, mode) { long ret; if (force_o_largefile()) flags |= O_LARGEFILE; ret = do_sys_open(A...
2014-08-04 - 本文重点介绍使用Eclipse+pydev插件来写Python代码,以及在Mac上配置Eclipse+Pydev 和Windows配置Eclipse+Pydev 编辑器:Python 自带的 IDLE 简单快捷, 学习Python或者编写小型软件的时候。非常有用。 编辑器: Eclipse + pydev插件 1. Eclipse是写JAVA的IDE...
2014-08-04 - 符号链接也是一种文件,只不过其内容是另一个文件的路径名。对于符号链接的处理,要注意避免死循环的产生,如一个符号链接指向其本身。 符号链接可能包含了符号链接,因此内核采用递归的方式来处理这个问题,为了避免符号链接的死循环而导致无穷递归,内核采...
2014-08-04 - 在学习Linux,在Linux下使用c语言练习系统调用的时候,经常会遇到与文件相关的操作。一般来讲打开一个文件我们会得到这个文件对于的文件描述符fdfile descriptor;另外在另一些系统调用里我们又常常遇到FILE这个结构。 不知道最初是为什么,反正我一直认为这...
2014-08-04 - 环境 RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 任务 下面的文本中包含名字、电话和为党派运动捐款的数额。 名字:电话:1月捐款情况:2月捐款情况:3月捐款情况 Mike Harrington :(510) 548-1278:250:100:175 Christian Dobbins:(408) 538-2358:155:90:201 Susa...
2014-08-03 - 脚本功能 脚本使用Perl编写,计算文件的MD5值 脚本用途 服务器在安装完操作系统后,计算PATH变量里面所有的二进制文件的MD5、计算单个文件MD5值、计算某个目录(包括子目录)下所有的文件的MD5值记录到文件,等日后再生成一份,然后2份文件进行对比,即可知道这些文...
2014-08-03 - 今天给服务器升级内核,实验环境rhel6.2,升级前内核版本2.6.26,升级后内核版本3.3.6.步骤如下: 1、下载内核源码,可在 http://www.kernel.org/pub/linux/kernel/ 下载。本次我下载的是linux-3.3.6.tar.gz。 2、将下载的内核代码拷贝至/usr/src下,cp linu...
2014-08-03 - 脚本名:power.sh 脚本内容: #!/bin/sh username3=$1 file_path=$2 if [ `id -u` -ne 0 ]; then echo Please re-run `basename $0` as root. exit 1 fi # Get existing directory while true do if [ -d $file_path ];then break; fi file_path=${file_path%...
2014-08-02 - 配置Vim的Nginx配置文件语法高亮的脚本,写成脚本,免得每次都手动配置。 #!/bin/bash [[ -d ~/.vim/syntax ]] || mkdir -p ~/.vim/syntax cd ~/.vim/syntax wget http://www.vim.org/scripts/download_script.php?src_id=14376 -O nginx.vim echo au BufRea...
2014-08-02 - 进程: 传统上,Linux操作系统下运行的应用程序,服务器和其他程序都称为进程。当然进程不仅仅表示一段处于执行期的可执行代码,还包括其他资源,例如打开的文件,挂起的信号和内核内部数据等。其实还有个概念叫,线程或者说轻量级进程,不过在Linux中线程和...
2014-08-01 - 本文分为两个部分:1 基本观点和概念;2 AWK 文本解析的例子。 基本观点和概念: 1 AWK 是一种用于处理文本的编程语言工具。 2 AWK 命令格式:AWK {pattern+action} 或者是AWK pattern {action} 3 action 参数总是被大括号包围,它由一系列awk语句组成,每个...
2014-07-31 - 1.传统的fork()系统调用直接把所有的资源复制给新创建的进程.Linux的fork()使用写时拷贝(copy-on-write)页实现.写时拷贝是一种可以推迟甚至免除拷贝数据的技术,内核此时并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝. 只有在需要写入的时候,...
2014-07-31 - 花了我几个小时的时间,最后终于把那个Linux根文件系统制作好了。 (一):首先Linux根文件系统的制作需要的开发环境。 1:移植Linux内核版本: linux-3.0.1 (只要能用就行) 2:交叉编译工具:arm-linux-gcc 4.3.2(任选) 3:文件系统制作工具:Busybox-1.13...