無標題文檔

「我是如此得深爱着 ssh」

ssh 绝对不不仅仅是类似 telnet 这样远程登录管理主机那么简单。下面的些 技巧,或许可以激发起你对这个「老朋友」重新认识的兴趣。

有部分内容来自: http://derwiki.tumblr.com/post/841579929/how-i-learned-to-stop-worrying-and-love-ssh

直接运行远程脚本

ssh 其实可以直接指定运行远程主机的命令。例如,每次登录并查看线上的日志是件非常繁琐的累活。其实你可以使用下面的命令

ssh user@remotehost "taif -f /var/log/apache/access.log"

它会 ssh 登录以后直接执行指定的命令。这样我们可以构建本地脚本让其接受远程服务器的输出,做更多的事情。

压缩传送文件和目录

有时候不想开启 SFTP 工具传送文件,那么下面的命令会帮到你

tar cvfz - localFileOrDir | ssh user@remotehost 'cd /remote/path/to/unpack/ ; tar xvfz -'

这个命令可以自动将本地的文件或者目录打包压缩以后,通过 ssh 传输到 remotehost 主机,然后 remotehost 会自动将其解压缩。

自动登录 ssh

最后个 ssh 技巧,上面的技巧的确是很实用,但是我们也受不了每次都要输入次密码。如果你的确厌烦了这些,那么尝试执行下面的命令:

ssh user@remotehost 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

这样远程的主机就会保存你本地的公钥,你就可以自动 ssh 登录远程主机( 详细 )。

顺便提醒:强烈提醒您保护好您主目录下的 ssh 私钥,否则您的帐户可能会面临风险。

还有些有用的参数

  • -C 这个参数可以将文本数据压缩传送
  • -X 如果远程服务器支持 X11 forwarding ,那么远程的 X 应用直接可以在本地显示运行(当然你本地要有 X Server)

各位还有什么其它好用的 ssh tips,欢迎不吝指出。

-- EOF --

不要再使用 $_GET 了

看见 PHP Arch 上重新提及 Fliter 模块 ,的确这个模块能节省我们不少的时间,这里再次整理下。

$_GET$_POST 等用户提供的数据如果使用不当,如验证、过滤不全面,就很容易造成安全问题。通常情况下,我们会编写「一坨」正则来验证数据格式是否合法。

现在,有另外种方法让这过程变得更加的可靠和高效。

在 PHP5.2 中,内置了 Filter 模块 ,用于变量的验证和过滤。

过滤变量等操作可以 参看我原先提及的 ,这里我们看下如何直接过滤用户输入的内容。

Fliter 模块对应的 filter_input 函数使用起来非常的简单,例如我们过滤用户输入名为 sample 的 GET 参数为整型,那么可以这样写

filter_input(INPUT_GET, "sample", FILTER_SANITIZE_NUMBER_INT);

filter_input 的参数分别是用户输入类型、对应的输入名称、以及过滤(验证)常量。
目前 filter_input 支持下面几种用户输入

INPUT_GET     // 对应 $_GET
INPUT_POST    // 对应 $_POST
INPUT_COOKIE  // 对应 $_COOKIE
INPUT_SERVER  // 对应 $_SERVER
INPUT_ENV     // 对应 $_ENV

配合 内置提供的各种验证标记符 ,就可以解决类似的用户输入过滤等「体力活」。

最后,还是需要再提下 Filter 的个不大不小的陷阱

filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false)
filter_var('0',   FILTER_VALIDATE_BOOLEAN); // bool(false)

总体而言,这并不影响我们去尝试它 :^)

-- EOF --

KISSY,重装上阵

面对繁杂的 JavaScript 库,其实到最后其实是 设计哲学的问题 。这篇文章将要介绍的是篇名为 KISSY 的 JavaScript 库。

渊源

前面也说过,JavaScript 库已经足够的多。可能看起来又要重新建立一套 JavaScript 库,有点重复造「轮子」的嫌疑,而 KISSY 的出现只是顺水推舟的结果。

过多的话语已经难以解释清楚 KISSY 的渊源, 这里有个详细的说明

风格

KISSY 的多数设计哲学源自 YUI3 ,同时也借鉴 了其他 JavaScript 库,我们可以看它的典型调用:

(function() {
    var S = KISSY, Y = YAHOO.util, Dom = Y.Dom,
        descList = S.DOM.children('#slideFocus ul.desc-list li');

    S.Slide('#slideFocus', {
        contentCls: 'pic-list',
        navCls: 'thumbs-list',
        activeTriggerCls: 'current',
        effect: 'scrollx',
        easing: YAHOO.util.Easing.easeOutStrong
    })
    .on('beforeSwitch', function(ev) {
        S.each(descList, function(desc, i) {
            desc.style.display = i === ev.toIndex ? 'block' : 'none';
        });
    });
})();

我们可以看到若隐若现的其他框架的风格,例如 jQuery 和 mootools,总之使用 KISSY 你会「重新找回书写 JavaScript 的快感」。

http://pic.yupoo.com/feelinglucky/8903298e1ebe/medium.jpg

(来自 BlueDream查看大图

从框架结构上说,KISSY 是相对精简的一套库,核心(core)非常的精炼。甚至你可以考虑基于 KISSY 扩展出适合自己的框架,例如针对 iPad 等等的特定库。

未来

KISSY 是开源项目,基于 MIT 协议发布。因此,KISSY 的未来掌握在广大开发者手中。相比目前现有的成熟的框架库,KISSY 还是个初生的新儿,因此尤其需要大家的支持。

目前 KISSY 已经部署到淘宝的大部分页面(包括首页),承受着不同浏览器以及大规模访 问量的考验。有理由相信 KISSY 能部署到更多的地方,让业界一起分享我们在前端方面的 心得和经验。

如果你有任何疑问,可以 访问 KISSY 的项目主页 ;同时官方站点、文档等方面也正在筹备和编写中。KISSY 的成长离不开广大同行的支持,我们的愿景是:

小巧灵活、简洁实用,使用起来让人感到愉悦

最后,感谢 玉伯 的努力,KISSY 的成长他付出了很多。

-- EOF --

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章