J K 键翻页脚本

这两天经常用 vim ,j k 键翻页各种爽,于是想能否让所有网页都可以这样。采用 Bookmarklet 来完成。

这是我第一次用 javasciprt 写出来的实用的东西。我还是蛮有成就感的,高手勿笑,哈哈哈~~

把这个链接拖动到书签栏,以后需要使用 JK 键进行翻页时点击一下这个书签就 OK 了。

写此代码给我带来帮助的网址:

1、http://www.ruanyifeng.com/blog/2011/06/a_guide_for_writing_bookmarklet.html
2、http://ted.mielczarek.org/code/mozilla/bookmarklet.html

wordpress 好像不支持在文章里直接插入 javascript 代码,代码如下,加入到浏览器收藏夹即可:

javascript:(function(){document.addEventListener('keypress',function press(e){if(e.charCode==106){scrollBy(0,window.innerHeight/2);}else if(e.charCode==107){scrollBy(0,-window.innerHeight/2);}});})();

Linux 网络相关的命令

ifconfig 查看网络接口信息

ifconfig -a #查看所有接口
ifoncifg eth0 #查看特定接口
ifup eth0 #启用网卡
ifdown eth0 #禁用网卡

ping 测试网络连通性

ping 192.168.1.1
ping www.qq.com

host 或 dig 测试DNS解析

host www.qq.com
dig www.qq.com

ip route 显示路由表

route 路由配置命令
使用方法请自行搜索或查看 Man Page

traceroute 追踪到达目的地址的网络路径

traceroute www.qq.com

mtr 网络质量测试(结合了 traceroute 和 ping)

mtr www.qq.com

Linux 的文本处理命令一览

grep 基于关键字搜索文本内容

-i 搜索时忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数(x为一个数值,表示输出后面x行)
-Bx 在输出的时候包含结果所在行之前的指定行数(同上)

cut 基于列处理文本内容
cut -d: -f1 /etc/passwd
grep upliu /etc/passwd | cut -d: -f3

-d 指定分割字符(默认是TAB)
-f 指定输出的列号
-c 基于字符进行切割

cut -c2-6 /etc/passwd #显示第2到6列的文字
wc 统计文本信息

-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数

sort 对文本内容进行排序

-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-tc 使用 c 作为分隔符分割为列进行排序

uniq 删除相邻重复行

详情请看 man uniq 手册

diff 比较两个文本文件内容的区别

-i 忽略大小写
-b 忽略空格数量的改变
-u 同意显示比较信息(一般用于生成 patch 文件)

diff -u upliu.txt upliu-new.txt > final.path
aspell 检查英文拼写

该命令只能检查英文

tr 处理文本内容
tr 'a-z' 'A-Z' < upliu.txt # 小写字母替换为大写字母
sed 搜索替换

详细教程见这里:http://learn.akae.cn/media/ch32s03.html
和这里:http://coolshell.cn/articles/9104.html

awk 以列为单位处理文件

详细教程见这里:http://learn.akae.cn/media/ch32s04.html
和这里:http://coolshell.cn/articles/9070.html
sed awk 这两个工具比较强大,用法需要慢慢消化理解

Linux 利用 locate 和 find 查找文件

命令 locate 用于快速查找文件、文件夹。此命令并没有在磁盘上查找所有文件,而是在预先建立的数据库里进行搜索。可以使用 updatedb 命令建立、更新数据库。

find 命令更加高级,使用方法:find 查找位置 查找参数;

find . -name *upliu*
find / -name *.conf
find . -type d
find . -perm 777
find . -name "Do*" -exec ls {} \;

-exec 命令 {} \; 是固定格式,表示将查找到的文件、文件夹作为参数传给命令。

Linux 学习笔记(一)

最近准备有空就系统学一下 Linux 的基础操作知识,主要是在 study.163.com 这个上面看视频教程。

Bash 笔记:

可以通过 Ctrl + r 在历史记录中搜索命令
(reverse-i-search)`’:

重新调用前一个命令中的参数
按 ese 之后按 . 键

Bash 支持以下通配符
* 匹配零个或多个任意字符
? 匹配任意字符一次
[0-9] 匹配一个数字
[abc] 匹配列表里的任何字符
[^abc] 匹配列表以外的字符

在后台运行进程
在命令后添加一个 &

暂停某个程序
通过 Ctrl + z 或者发送信号 17

管理后台作业
jobs
bg
fg %n(将编号为 n 的后台作业拿到前台来)

tail -f 追踪显示文件更新(一般用于查看日志,命令不会退出,而是持续显示新加入的内容)

PHP in_array 函数的一个问题

有如下代码:

var_dump(in_array('0', array('abc', 'def')));
var_dump(in_array(0, array('abc', 'def')));
var_dump(in_array('1', array('abc', 'def')));
var_dump(in_array(1, array('abc', 'def')));

会输出:

boolean false
boolean true
boolean false
boolean false

第 2 个输出与我们预想的不一样,为什么会出现这种情况呢?

in_array 函数在进行比较的时候,会先进行类型转换,字符串和数字进行比较,会将字符串转换为数字,而字符串被强制为数字 0,因此 in_array(0, array[‘abc’, ‘def’]); 为 TRUE

为了避免这种意外,可以在 in_array 函数添加第三个参数 in_array(0, array[‘abc’, ‘def], TRUE);,那么在比较的时候除了比较值还会比较类型。