Linux调整Swap大小

关闭swap
swapoff -a
1.创建交换分区的文件:增加2G大小的交换分区
dd if=/dev/zero of=/var/swapfile bs=1M count=2048
2.设置交换文件
mkswap /var/swapfile
3.启用交换分区文件
swapon /var/swapfile
4.在/etc/fstab添加
echo '/var/swapfile swap swap defaults 0 0'>>/etc/fstab
5.检查
free -m

Sed详解

1、说明
sed 一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
2、用法
sed:
用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  -n, --quiet, --silent
                 取消自动打印模式空间
  -e 脚本, --expression=脚本
                 添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件
                 添加“脚本文件”到程序的运行列表
  --follow-symlinks
                 直接修改文件时跟随软链接
  -i[SUFFIX], --in-place[=SUFFIX]
                 edit files in place (makes backup if SUFFIX supplied)
  -l N, --line-length=N
                 指定“l”命令的换行期望长度
  --posix
                 关闭所有 GNU 扩展
  -r, --regexp-extended
                 在脚本中使用扩展正则表达式
  -s, --separate
                 将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered
                 从输入文件读取最少的数据,更频繁的刷新输出
  -z, --null-data
                 separate lines by NUL characters
      --help     打印帮助并退出
      --version  输出版本信息并退出
示例:sed '2,5d' 
其中2,5表示2-5行(包含);d表示删除
a新增
c取代
d删除
i插入
p列印
s取代,通常搭配正则使用
举个栗子
sed '3,$d'					删除第三行到最后一行,$标示最后一行
sed '2a 这是追加的内容'		在第二行后追加内容
sed '2i 这是插入的内容'		在第二行前插入内容
sed '2c 这是替换后的内容'	替换第2~5行内容
sed '2-5p'					打印第2~5行内容
sed  -n '/root/p'			打印包含有root的行
/sbin/ifconfig eth0 |grep 'inet 地址'| sed 's/^.*地址://g' | sed 's/广播.*$//g'
等同于
/sbin/ifconfig eth0 |grep 'inet 地址'| sed -e 's/^.*地址://g' -e 's/广播.*$//g'
备注:/sbin/ifconfig eth0 |grep 'inet addr'| sed -e 's/^.*addr://g' -e 's/Bcast.*$//g'
3、实战案例-替换安卓AndroidManifest.xml配置项
echo ' '|sed -e 's#name=".*"#name="123456"#g'
备注:s后面跟着的是匹配符可以为/或者?或者#,g是全部替换

 

AWK第二课

1、工作原理
例子:
cat /etc/passwd |awk -F ‘:’ ‘BEGIN {print “name”} {print $1} END {print “Joyous”}’
说明:
awk是先执行BEGIN,然后去读文件,一行一行读取,-F指定了每行按照:分割,其中$0标示当前行,$1标示分割第一个区域,$n标示第n个区域。一直到读取完毕,最后执行END
2、正则匹配
awk -F: ‘/^root/{print $1}’ /etc/passwd
说明:搜索root开头的行打印第一个区域
3、内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
示例:
awk -F’:’ ‘{print “filename:” FILENAME “,line:” NR “,cols:” NF}’ /etc/passwd
4、printf格式化输出
awk -F ‘:’ ‘{printf(“filename:%s,linenumber:%s,columns:%s,linecontent:%s\n”,FILENAME,NR,NF,$0)}’ /etc/passwd
5、编程
定义变量可以在action块定义,语句使用;分开
awk ‘BEGIN {count=0;} {count++; print $0;} END{print “user count is “, count}’ /etc/passwd
条件语句if(){}else{}
6、函数
length(string)返回字符串的长度
index(string,find)返回子字符串在父字符串位置
tolower(string)将所有字符都转成小写
toupper(string)将所有字符都转成大写
substr(string,strat,length)截取字符串
match(string,ereg)支持正则匹配
sub(reg,rep,string)替换匹配的第一个字符序列
gsub(reg,rep,string)替换匹配的全部字符序列
split(string,arr,char)分割字符

参考:
http://www.gnu.org/software/gawk/manual/gawk.html

ubuntu安装redis以及phpredis扩展

安装步骤:
1.执行:git clone https://github.com/nicolasff/phpredis.git
2.执行:cd phpredis/
3.执行:phpize
4.执行:./configure
5.执行:sudo make && make install
6.编辑php.ini添加
extension=redis.so
7.重启apache
查看phpinfo
测试:
<?php
/**
* 测试redis扩展
* User: joyous
* Date: 13-12-5
* Time: 下午1:15
*/
$redis = new Redis();
$redis->connect(‘127.0.0.1’, 6379);
$redis->set(‘k’, ‘Hello Joyous’);
var_dump($redis->get(‘k’));

U盘安装Centos[转]

参考:
http://blog.chinaunix.net/uid-27666459-id-3342477.html

所需工具:文件
一、UltraISO(用来制作 U 盘启动)
二、CentOS 6.3 32 位系统镜像(建议下载bin版镜像)
三、U 盘一只
要求:U 盘容量 8G
四、vesamenu.c32 文件——用来替换 CentOS 6.3 默认文件(附件中我提供了哦,解压缩后替换原来的文件)

安装步骤:
一、制作 U 盘启动引导盘
1、电脑插上 U 盘,打开 UltraISO 软件,文件—打开,选择你下载好的CentOS-6.3-i386-bin-DVD1.iso 文件,点启动–写入硬盘镜像,在硬盘驱动器里面选择你的 U 盘(看清楚,千万别选错),写入方式默认为:USB-HDD+,然后点格式化。格式化完成后,关闭对话框,然后再点写入,等几分钟,完成后,点返回,然后关闭 UltraISO。
2、打开 U 盘根目录下面的 syslinux 文件夹,用附件中的 vesamenu.c32 替换里面原有
的文件。
3、删除 U 盘根目录下面的 Packages 文件夹(不删除也可以,如果你U盘空间足够大)
4、把下载好的系统镜像 CentOS-6.3-i386-bin-DVD1.iso和CentOS-6.3-i386-bin-DVD2.iso 复制到 U 盘根目录下面。(不用改名字,安装时会自动识别)
至此,U 盘启动盘制作完成,然后退出 U 盘,这个 U 盘现在已经可以用来安装 CentOS 6.3 了。
二、安装 CentOS 6.3
1、开机设置 U 盘第一启动,重启之后会出来安装界面:
默认选择第一项,回车。
2、出现安装过程中使用的语言界面:
选择 Chinese(Simplified),简体中文,然后回车
3、出现语言确认界面直接回车
4、下面出现键盘模式选择界面:
选择键盘模式,默认
5、定位在 Hard drive 上, directory holding image此项不用填写,系统会自动去填写。(其实这项是搜索image目录下的install.img文件)选择 OK,按回车
6、这里的/dev/sdb4 代表你的 U 盘分区,我们前面已经把系统镜像拷贝到 U 盘根目录下面了,这里系统会自动识别
7、直接点 OK,会出现安装界面:

Ubuntu安装redmine

1.环境已经安装LAMP环境(http://www.0377joyous.com/archives/87.html)
2.安装redmine
第一步:
apt-get install redmine redmine-mysql
apt-get install libapache2-mod-passenger(这个是apache+redmine的一个模块认证)
sudo apt-get install ruby-full(ruby -v看版本gem -v没有就会安装sudo apt-get install rubygems)
sudo apt-get install rails

其中中间需要配置数据库用户和密码(跳过即可)
第二步:建立一个数据库redmine(注意要是用utf8编码,不然可能会乱码)
第三步:修改/etc/redmine/default/database.yml
production:
adapter: mysql#这个是数据库种类
database: redmine#这个是数据库名字
host: localhost#这个是数据库服务器
port: 3306#端口
username: root#数据库用户名
password: joyous#数据库密码
encoding: utf8#数据库编码\
注:冒号后面的空格不要去掉!!!
第四步:修改apache配置(/etc/apache2/httpd.conf)
RailsEnv production
RailsBaseURI /redmine
添加上面两句即可
第五步:建立软连接
ln -s /usr/share/redmine/public /var/www/redmine
第六步 :生成数据库
进入/usr/share/redmine/
执行:RAILS_ENV=production rake db:migrate

rake generate_session_store

#我的安装一直提示有错误,把这个执行后就好了!!

这个会生成redmine的表结构
第七步:重启apache
/etc/init.d/apache restart

访问:localhost/redmine
就会看到你的项目管理redmine了!

备注:redmine1.X版本的/var/lib/redmine/default/files需要上传附件,请给apache用户组有写入权限!

$_PUT?put数据获取

我们经常使用$_GET和$_POST来进行服务器交互,但是我们有的时候不得不被逼使用$_PUT方法获取数据
当然,php中是没有$_PUT的,但是我们可以使用 $_SERVER[‘REQUEST_METHOD’]来判断,因为我们这个服务器变量会是PUT
这样我们十一哦那个parse_str就可以分割开put的变量
put.php页面代码
$_PUT = array();
if (‘PUT’ == $_SERVER[‘REQUEST_METHOD’]) {
parse_str(file_get_contents(‘php://input’), $_PUT);
}
print_r($_PUT);
其中:parse_str() 函数把查询字符串解析到变量中。
而我们如何知道自己的$_PUT能用吗?
linux命令行下执行:
curl -X PUT http://localhost/put.php -d “id=12” -d “title=内容为中文”
显示:
Array
(
[id] => 12
[title] => 内容为中文
)
附:put再也不怕了~

 

加强版正则表达式

以前觉得正则表达很难,今天又加强了一下正则表达的学习收获挺大的

在书写正则表达式的过程中我们遇到数字就用

最近在学习原生js,所有例子都在js下测试

常见案例一:在内容中匹配至少两位数字

var pattern=/[0-9]{2,}/gm;

var str=’234 sdf 33445,sfs’

var result=str.match(pattern);

document.write(result);

测试结果:234,33445

常见案例二:在内容中匹配手机号码(手机号码是11个纯数字组成)

var pattern=/[0-9]{11,11}/gm;

var str=’234 sdf 33445,s12345678901,sfds’

var result=str.match(pattern);

document.write(result);

测试结果:12345678901 (注意这里就是匹配到连续的11个数字)

其中[0-9]可以使用\d代替
Continue reading

工欲善其事,必先利其器之Linux下汉化Codeblocks

最近补习数据结构和算法,顺便把在学校丢的东西都找回来~于是就想重新学习下C/C++,工欲善其事,必先利其器.网

上推荐使用codeblocks,下完安装之后发现是英文的(注释:英文水平不咋滴)

汉化!?网上找了半天都是windows下的汉化~~终于在找到一个汉化包(.7z格式的~不管了先试试再说)

然后把文件解压到/usr/share/codeblocks目录下,打开codeblocks~~~~~

看到的是???汉化吧?!

附件:locale

附:code blocks百科:http://baike.baidu.com/view/1562377.htm

code blocks官方网址:http://www.codeblocks.org/

code blocks简单是使用说明;http://hi.baidu.com/qhh_2008/item/dfa9c8c5df13f679cfd4f818

Ubuntu中使用alias设置命令别名

上次说到gcc编译不会链接数学库,那么需要使用gcc -lm test.c,其实默认gcc -lc test.c
我如果想省去每次带上-lm参数。那么可以使用alias命令
alias使用详解(注意这个命令有很多需要注意的地方)

用途:alias是用来给一个比较长的命令或者路径建立一个简单的名字
格式:alias 新命令=’原命令’
注意:原命令需要带上单引号,注意等号两边不能有空格,如果设置的路径是目录的话,注意最后一定要带上一个/
如果要取消的话就可以使用unalias 新命令即可取消
这样建立的命令只有在当前登录可以使用(当前的终端可以使用,重新打开新的终端不能使用),重启之后消失。
如果需长期使用,可以写入到用户目录中.bashrc文件中
如果想设定之后立即生效,就用source命令
source ~/.bashrc

PS:为了能使用services  httpd restart类似命令~~俺修改了

alias service=”
alias httpd=’/etc/init.d/apache2′
alias mysqld=’/etc/init.d/mysql’

解释:source就相当.命令。就是执行的意思,是bash内置命令~