2010-01-20

开发技巧总结

类归于: Linux, PHP, vi/vim — 标签:, , maker @ 10:39

很久以前保存在草稿里的一些开发技巧,整理发表出来。

1. php格式化数字

echo number_format(123456789);

运行结果 123,456,789

2. html中的分页符号

需要使用css ,这是有关打印的一些css属性

属性 版本 兼容性 继承性 简介
page CSS2 IE5.5+ 有 检索或指定显示对象容器时使用的页面类型(pagetype)。参阅@page规则
page-break-after CSS2 IE4+ 无 检索或设置对象后出现的页分割符
page-break-before CSS2 IE4+ 无 检索或设置对象前出现的页分割符
page-break-inside CSS2 NONE 有 检索或设置对象容器中出现的页分割符
marks CSS2 NONE 无 设置或检索什么样的标志是应该在页容器外边被给予
orphans CSS2 NONE 有 设置或检索对象内容内一定要留在一页范围底端以内的行的最少数量
size CSS2 NONE 有 检索或指定页面规格的调整
widows CSS2 NONE 有 检索或指定一定要留在页面顶部的行数

3. js replace 替换全部

from.value.replace(/\-/g,’/')

4. SSH免登陆

ssh-keygen -t rsa

ssh-copy-id user@IP

上面的命令和下面操作相同

ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 产生出 id_rsa, id_rsa.pub

scp .ssh/id_rsa.pub root@192.168.1.102:~/.ssh/

ssh root@192.168.1.102

cat .ssh/id_rsa.pub >> .ssh/authorized_keys 即可

5. scp(SSH copy) 例子

scp root@192.168.1.102:~/filename ./

scp ./filename root@192.168.1.102:~/

6. vim下输出Windows换行符^M使用Ctrl+v然后回车。

7. 只修改目录或者文档的权限

在当前目录下递归修改文件权限

find . -type f -exec chmod 0600 {} \;

在当前目录下递归修改目录权限
find . -type d -exec chmod 0755 {} \;

8. 命令行下的技巧

Ctrl-R 通过关键字匹配最近执行过的命令

Ctrl-A可将光标移动到命令行行首

Ctrl-E可将光标移动到命令行行尾

Ctrl-W快捷键可以快速删除光标前的字符

Ctrl-K可以立即删除光标后的字符

Ctrl-Y取消删除操作

Ctrl-P查找上一条命令,等于光标上键

Ctrl-N查找下一条命令,等于光标下键

Ctrl-F向右移动光标

Ctrl-B向左移动光标

9. 关于历史记录的技巧

history查看当前用户执行过的命令

!编号 重复执行命令

!! 重复上一条命令

!keyword 使用关键字匹配最近一条命令并执行,类似Ctrl+R

10. 在vim中执行命令

:!ls

11. vim录制宏

qa开始录制,a为宏的名称,可以定义a-z一共26个宏

录制完毕按q结束录制

@a执行名称为a的宏

12@a执行名称为a的宏12次

宏设置完毕会被保留,也就是说无论关闭vim或者重启计算机宏依然可以生效。

2009-09-01

awesome 的 多头显示

类归于: Arch, Linux — 标签:, , , bobhero @ 18:02

awesome 的确是个好东西,用上了,就不喜欢别的女人了

今天心血来潮再次找出 awesome官网上的 图片 YY了一会 真爽啊,四个显示器


等咱有了钱,弄八个显示器 ,二十四的竖着放

我把公司里的大屁股显示器搬出来了 放在桌面上 ,准备实施 双头显示器 计划

首先要有一块双头的显卡 我找到了 ati x500 ,换上 HDMI 2 VGA线 开始了漫长的驱动过程,使了半天力气,终于放弃了,ATI 官方的驱动不好用 ,不知道是AMD 不牛X ,还是ATI太弱。

有的时候放弃 也是一种进步

我换了一个N卡

顺序驱上,竟然发现有图型设置程序 爽 nvidia-setting 经过一阵设置,黑屏,重启,再黑,再启。终于
桌面OK了

有以下几点需要注意:
1.能不用A卡就不要用A卡
2.有一个什么什么东西要打开,要不然AWESOME 不能很好的工作   => xinerama
3.两个显示器最好是一样的,要不然很影响心情

上图

用SCROT 竟然直接拿到了全图


2009-05-23

怎么在app中构造其它app的链接(一)

类归于: CentOS/Redhat, symfony — 标签:zhuozi @ 16:44

最近开发的一个项目要求我们要在一个app中构造另一个app中的链接并使用。

我们现在有一个管理平台,app名字   admin, 我们还有一个PC展示平台 app名字 pc

我们知道使用symfony中链接辅助函数  url_for()  可以生成我们想要的URL,可是,默认的情况下,这种生成出来的URL是显示前端控制器名字的(控制器名字根据所在开发模式的不同,显示的也不一样)。

比如: 我们在admin这个平台使用  url_for(’member/create’)    生成的url是   admin_dev.php/member/create, 很显然这种URL不是我们所期望的,我们不希望还要去解析判断。

在apps/myapps/settings.yml 中有一项设置  no_script_name: off  这项是控制时候在URL中显示前端控制器的名字。

当我们把它开启的时候,再使用url_for(’member/create’)的时候,就会生成  member/create, 这样就会得到没有前端控制器名字的URL。

其实,最理想的状态是,我在使用某一个链接辅助函数的时候,直接就可以获得某一个平台的URL,比如在admin的平台返回给我一个  http://www.foolbirds.com/pc_dev.php/article/show  这样的链接。 可是找了一下下午也没有找到一个,或许需要自己写一个构造这样的URL来满足项目的需求了。

2009-03-23

FreeBSD7.10通过ports安装lamp

类归于: Linux, symfony — 标签:, maker @ 13:20

最近终于逼着自己装了一个FreeBSD7.10, 第一次用,弄得一团糟,第一天研究了一下午才装了个gnome,接下来的两天就一直在解决lamp的问题。

FreeBSD中ports的使用和编译还是很大差异的,我以前在centOS上编译过lamp,后来发现port根本不是那么回事,虽然安装命令也是make install,但完全部能用一种思路来理解。

安装apache

cd /usr/ports/www/apache20

make install

多数通过ports安装的软件都会被安装到/usr/local目录下,执行程序在/usr/local/sbin,bin下,配置文件在/usr/local/etc下,库文件在/usr/local/libexec下,www根目录在/usr/local/www/data下.

我们启动apache, 如果你没找到程序路径就用whereis apache, whereis apache2, whereis httpd

最后发现httpd在/usr/local/sbin目录下

/usr/local/sbin/httpd -k start

安装mysql

cd /usr/ports/databases/mysql50-server

make install

我在启动mysql的时候遇到了各种的问题

首先是初始化数据库

/usr/local/bin/mysql_install_db

但是最没有办法解释的竟然是root的权限错误

chmod -R 777 /var/db/mysql

启动mysql

/usr/local/bin/mysqld_safe

安装php5

最头痛的就是安装php5了,因为对ports使用方法的误解,所以一直都没能正确的安装php5.

遇到的问题有以下几个:

1)重新编译的时候需要先运行make clean,否则会出现莫名其妙的问题

2)安装php之前需要先运行make config, 这个很重要,把里面该选的都选上,特别是Apache Build Module那个,否则apache就不能支持php

在不断的重复重复再重复安装之前,有一个问题困扰我很久,就是安装是通过make install安装的,却没有make uninstall命令,找很久发现很多软件安装完需要执行pkg_add -r name,于是就发现了pkg_delete这个命令。

总结一下

在不断的失败之后的失败之后的失败之后,坚持是很重要的,port作为一个很多年之前出现的package管理器来说,算是很强大了,但我完全没办法拿ports和apt-get还有yum来比,因为FreeBSD终究是FreeBSD,So ……

记录两个命令,查找package, 在安装lamp的时候被我用到了无数次, 这个命令貌似一定要在/usr/ports目录下使用

cd /usr/ports

make search key=<key>

上面是使用关键字进行搜索,如果查出的结果太多,那么使用

make search name=<key>

还有呢。。。查看已安装的软件包使用

pkg_info

如果我们想查看是否安装了apache则使用

pkg_info|grep apache

哦了,本文完

2009-03-10

Awesome3.0默认快捷键

类归于: Linux — 标签:, maker @ 17:26

最近一直工作在Awesome(什么是Awesome?)下, 发现Awesome的确是个很高效率的桌面环境.

在Awesome中几乎所有的东西都是可配置的, 当然配置过程可能比较复杂, 要用到Lua语言, 使用Awesome最大的好处就是解放了鼠标, 所以这里简单介绍一下Awesome3.0缺省的快捷键位.

Mod4 + Left 切换到上一个Tag
Mod4 + Right 切换到下一个Tag
Mod4 + 1~9 切换到指定Tag
Mod4 + t 标记当前窗口
Mod4 + Ctrl + 1~9 把标记的窗口移动到指定桌面
Mod4 + Esc 切换到最后使用过的Tag
Mod4 + Ctrl + r 重启awesome
Mod4 + Ctrl + q 退出awesome
Mod4 + m 最大化/还原当前窗口
Mod4 + f 全屏/恢复当前窗口
Mod4 + Shift +c 关闭当前窗口
Mod4 + j 切换到下一个窗口
Mod4 + k 切换到上一个窗口
Mod4 + Shift + j 当前窗口和前一个窗口互换位置
Mod4 + Shift + k 当前窗口和后一个窗口互换位置
Mod4 + Ctrl + j 切换到下一个屏幕
Mod4 + Ctrl + k 切换到前一个屏幕
Mod4 + Ctrl + Space 切换当前窗口是否为浮动的
Mod4 + Ctrl + Return
Mod4 + Return
Mod4 + Tab 切换到最后使用过的窗口
Mod4 + o
Mod4 + u
Mod4 + Shift + r 重绘当前窗口
Mod4 + l 当前窗口的宽度减小5%
Mod4 + h 当前窗口的宽度增大5%
Mod4 + Shilt + h 增加主区域窗口的数量
Mod4 + Shift + l 减少主区域窗口的数量
Mod4 + Ctrl + h 增加非主区域窗口的数量
Mod4 + Ctrl + l 减少非主区域窗口的数量
Mod4 + Space 切换下一布局
Mod4 + Shift + Space 切换上一个布局
Mod4 + F1 运行程序
Mod4 + F4 运行Lua命令
Mod4 + Ctrl + i 显示当前窗口的class和instance
Ctrl + Alt + BackSpace 注销当前登录
Mod4 + Shift + F1~F9 把当前桌面和1~9桌面同时显示

参考: Ubuntu Wiki

早前文章 »

WordPress 所驱动