匿名用户默认上传的文件属性为 600 加入如下一行设置:
anon_umask=002
则上传的文件属性默认为 664,其它权限设置更改 anon_umask 数值即可。详情请见 man vsftpd.conf 5
匿名用户默认上传的文件属性为 600 加入如下一行设置:
anon_umask=002
则上传的文件属性默认为 664,其它权限设置更改 anon_umask 数值即可。详情请见 man vsftpd.conf 5
这两天经常用 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);}});})();
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
-i 搜索时忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数(x为一个数值,表示输出后面x行)
-Bx 在输出的时候包含结果所在行之前的指定行数(同上)
cut -d: -f1 /etc/passwd
grep upliu /etc/passwd | cut -d: -f3
-d 指定分割字符(默认是TAB)
-f 指定输出的列号
-c 基于字符进行切割
cut -c2-6 /etc/passwd #显示第2到6列的文字
-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数
-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-tc 使用 c 作为分隔符分割为列进行排序
详情请看 man uniq 手册
-i 忽略大小写
-b 忽略空格数量的改变
-u 同意显示比较信息(一般用于生成 patch 文件)
diff -u upliu.txt upliu-new.txt > final.path
该命令只能检查英文
tr 'a-z' 'A-Z' < upliu.txt # 小写字母替换为大写字母
详细教程见这里:http://learn.akae.cn/media/ch32s03.html
和这里:http://coolshell.cn/articles/9104.html
详细教程见这里:http://learn.akae.cn/media/ch32s04.html
和这里:http://coolshell.cn/articles/9070.html
sed awk 这两个工具比较强大,用法需要慢慢消化理解
命令 locate 用于快速查找文件、文件夹。此命令并没有在磁盘上查找所有文件,而是在预先建立的数据库里进行搜索。可以使用 updatedb 命令建立、更新数据库。
find 命令更加高级,使用方法:find 查找位置 查找参数;
find . -name *upliu*
find / -name *.conf
find . -type d
find . -perm 777
find . -name "Do*" -exec ls {} \;
-exec 命令 {} \; 是固定格式,表示将查找到的文件、文件夹作为参数传给命令。
最近准备有空就系统学一下 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 追踪显示文件更新(一般用于查看日志,命令不会退出,而是持续显示新加入的内容)
有如下代码:
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);,那么在比较的时候除了比较值还会比较类型。
环境:win7, wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b.exe 安装位置为:D:/wamp/
在网站目录下,我有一个文件夹 my-folder 里面有一些文件,因为没有 index.php index.html index.htm 等文件,所以 apache 列出了 my-folder 下的所有文件,但是,问题在于,没有显示前面的图片,很难看。
查看 apache error 文件发现提示错误:
[Wed May 29 22:58:43 2013] [error] [client 127.0.0.1] client denied by server configuration: C:/Apache2, referer: http://localhost/my-folder/
访问 http://localhost/icons/ 显示 403 无权限。
很无解,因为我的 wampserver 安装在 D 盘,相关配置文件也在 D:\wamp\bin\apache\apache2.2.22\conf 文件夹下,为什么提示错误说在 C:/Apache2。
第一次遇见这个问题,我尝试搜索了一番,无果。今天再搜索,竟然找到问题所在了。
下面解决方案来自 http://serverfault.com
To fix the icon problem, I had to edit httpd-autoindex.conf located in \bin\apache\apache2.2.22\conf\extra
I changed
Alias /icons/ "c:/apache2/icons/"
to
Alias /icons/ "D:/wamp/bin/apache/apache2.2.22/icons/"
and
<Directory "c:/apache2/icons">
to
<Directory "D:/wamp/bin/apache/apache2.2.22/icons/">
The icons will now display as per usual.
Many thanks to Ladadadada for pointing me in the right direction!
storytlr 搜索很奇怪,比如我有一篇文章,标题为“QQ for Linux 新版本终于发布了”,内容为“发布了发布了等等等。。。。。很多字符哈哈哈”,我在搜索框里搜索以下内容可以搜到这篇文章:“Linux”、“QQ for Linux”、“新版本终于发布了”,但是搜索以下内容搜不到这篇文章:“Linu”、“QQ for”、“版本”、“新版本终于发布”。这就奇怪了,于是查看代码,在源文件
./protected/application/admin/models/Data.php
的 236 行可以看到,采用的搜索方式是 MATCH,并不是 LIKE,之前没见过 MATCH,于是查看 MySQL 官网,点击这里和这里。
Any word that is too short is ignored. The default minimum length of words that are found by full-text searches is four characters.
也就是说会省略小于等于 4 个字符的词会省略,所以搜索“QQ for” 搜索不到。
The FULLTEXT parser determines where words start and end by looking for certain delimiter characters; for example, “ ” (space), “,” (comma), and “.” (period). If words are not separated by delimiters (as in, for example, Chinese), the FULLTEXT parser cannot determine where a word begins or ends.
中文词与词之间没有像英文那样有个空格隔开,所以 “新版本终于发布” 和 “新版本终于发布了” 并没有匹配,它认为是两个不同的词。
找到问题所在了。为了满足我的要求,我改代码为使用 LIKE 进行搜索,并且,它默认只搜索标题,不搜索内容,我对 SQL 语句作了如下改动。
Data.php 文件的 234 到 242 行内容为:
$sql = "SELECT d.id, d.source_id, d.service, UNIX_TIMESTAMP(d.timestamp) as timestamp, d.is_hidden, d.user_id, d.comment_count, d.mention_count, d.tag_count, d.slug "
. "FROM {$service}_data t LEFT JOIN data d ON (t.id = d.id AND t.source_id = d.source_id) "
. "WHERE MATCH($index) AGAINST(:term) AND t.source_id= :source_id "
. ((!$show_hidden) ? "AND is_hidden = 0 " : " ")
. "ORDER BY timestamp DESC ";
$data = array(":term" => $term, ":source_id" => $source_id);
$stmt = $this->_db->query($sql, $data);
更改为:
$sql = "SELECT d.id, d.source_id, d.service, UNIX_TIMESTAMP(d.timestamp) as timestamp, d.is_hidden, d.user_id, d.comment_count, d.mention_count, d.tag_count, d.slug "
. "FROM {$service}_data t LEFT JOIN data d ON (t.id = d.id AND t.source_id = d.source_id) "
. "WHERE (title LIKE '%{$term}%' "
// 下面这行代码是为了搜索 content 字段,有些表没有 content 字段,所以先进行一个判断
. (($service == 'rss') ? "OR content LIKE '%{$term}%' " : "")
. ") AND t.source_id= {$source_id} "
. ((!$show_hidden) ? "AND is_hidden = 0 " : " ")
. "ORDER BY timestamp DESC ";
$stmt = $this->_db->query($sql);
我无视了 search 函数的 $index 参数,直接在 SQL 语句里用 title 替代了。
暂时一切运行正常。可以正常搜索,可以搜索文章标题和内容。
对于 MATCH AGAINST ,如果我理解有误,请看官指点。如果有更好的解决方法,请告之~
昨天开始,安装在服务器上的 storytlr 出现问题,登录的时候,页面不给任何反馈,查看 apache 错误日志也没有错误产生,查看程序自带的错误记录,也没能看出任何问题。但是我本地也安装来一个 storytlr 正常运行,没有出现这个问题,代码都是一样的,按说不应该啊。于是我对比来一下本机和服务器 phpinfo() 的输出,发现服务器多加载一个 apc 扩展,抱着试一试的态度,我将服务器的 php-apc 扩展删除了,重启 apache2 服务,正常,搞定!不知道为什么会这样,我对 storytlr 代码不熟,对它使用的 zend framework 也没用过,还真有点没底呢,不过现在问题解决了就好。
为什么会出现这个问题呢?