linux 常见终端热键以及Ctrl+C、Ctrl+Z比较 [转]

linux中存在一些按键,那么如何查阅目前的一些按键内容了?可以利用stty(setting tty 终端机的意思)。stty也可以帮助设置终端机的输入按键代表意义。

 >$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ;
eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

需要注意的是特殊字体那几个,此外^表示[Ctrl]那个按键的意思,如:intr = ^C表示利用【Ctrl】+c来完成的。几个重要的代表意义是:

eof:End of file的意思,代表结束输入;

erase:向前删除一个字符;

intr:送出一个interrupt(中断)的信号给目前正在运行的程序;
kill:删除在目前命令行上的所有字符;

quit:送出一个quit的信号给目前正在运行的进程;

start:在某个进程停止后,重新启动它的输出;

stop:停止目前屏幕的输出;

susp:送出一个terminal stop的信号给正在运行的进程;

如果你想要执行[ctrl]+h来进行字符的删除,那么可以执行:

root@mycomputer:~# stty erase ^h
Ctrl+C终止目前的命令

Ctrl+D输入结束(eof),例如邮件结束的时候

eof代表End of file的意思,代表结束输入

Ctrl+M就是Enter

Ctrl+S暂停屏幕的输出

Ctrl+Q恢复屏幕的输出

Ctrl+U在提示符下,将整行命令删除

Ctrl+Z暂停目前的命令

Ctrl+Z和Ctrl+C都是中断命令,但是它们的作用却不一样。

Ctrl+C是强制中断程序的执行,而Ctrl+Z是将任务中断,但是此任务并没有结束,还是在进程中只是保持挂起的状态,用户可以使用fg/bg操作继续前台或后台飞任务,fg命令重新启动前台被中断的任务。bg命令把被中断的任务放在后台执行。

来源:http://blog.sina.com.cn/s/blog_14ecbe4520102wrmv.html

 

信号具有平台相关性,不同平台下能使用的信号种类是有差异的。

Linux下支持的信号:

SEGV, ILL, FPE, BUS, SYS, CPU, FSZ, ABRT, INT, TERM, HUP, USR1, USR2, QUIT, BREAK, TRAP, PIPE

Windows下支持的信号:

SEGV, ILL, FPE, ABRT, INT, TERM, BREAK

Windows上编译PHP+Imagick

Windows上编译PHP+Imagick
PHP通过Imagick扩展来实现对图片的处理,Imagick扩展是基于ImageMagick的,但Imagick扩展不是PHP自带的,如果用户想使用它,要么寻找Windows的Binary文件,要么自己编译一个。如果在Linux上,这些都不是问题。但Windows上相关的资料少之又少。下面简单介绍一下本人的编译过程。
准备过程:
1. 下载PHP源代码和编译工具
PHP的源代码可以从www.php.net上下载,具体的下载地址可以到download页面(http://www.php.net/downloads.php)上寻找。
然后到documentation页面(http://www.php.net/docs.php)上寻找编译过程的帮助,具体页面是:http://www.php.net/manual/zh/install.windows.building.php。
可以从这个页面上下载相关的编译工具:win32build和bindlib_w32,并将他们解压缩到源代码放在同级的目录中,具体目录结构如下:
+–BuildRootDir
| |
| +–bindlib_w32
| | |
| | +–arpa
| | |
| | +–conf
| | |
| | +–…
| |
| +–php-5.x.x
| | |
| | +–build
| | |
| | +–…
| | |
| | +–win32
| | |
| | +–…
| |
| +–win32build
| | |
| | +–bin
| | |
| | +–include
| | |
| | +–lib
将win32build\bin目录添加到系统环境变量Path中,这一步也可以在编译的时候指定。此外,需要在C盘建一个目录C:\usr\local\bin,将win32build\bin\目录下的bison.simple拷贝到此目录中。
完成上述工作后,编译resolv.lib。此文件的VC工程文件位于:bindlib_w32下,可以使用VC打开工程文件然后编译即可,将编译产生的resolv.lib拷贝到win32build\lib目录下(如果此文件已存在,覆盖之)。
至此,PHP的编译准备工作已完成。
2. 下载ImageMagick安装包并安装
到ImageMagick主页(http://www.imagemagick.org/script/index.php)上下载Windows的Binary文件(http://www.imagemagick.org/script/binary-releases.php?ImageMagick=ir9ijldaeppff0fudjv4kmfcj0#windows),请选择dll版本,因为只有dll版中有development相关的文件。安装dll版本,安装过程中一定要勾选:install development headers and libraries for C and C++和Add application directory into your system path两个选项。
3. 下载Imagick源代码
到ImageMagick的Program interface页面上(http://www.imagemagick.org/script/api.php)寻找PHP接口Imagick。然后下载(http://pecl.php.net/package/imagick)并解压到php源代码目录下的ext目录中(BuildRootDir/php-5.x.x/ext/imagick)。打开imagick目录下的config.w32文件,替换imagick_read.c为imagick_file.c。此处很可能是imagick的一个Bug。切记。
4. 配置Windows
如果你的Windows系统不是英文版或者默认打开文件的编码不是English(US),编译过程很可能会fail。因此需要对Windows系统的配置稍作改动,具体为:打开控制面板,选择区域与语言,找到非Unicode程序的语言项,然后配置默认使用语言为英语(美国)/English(US)。
经过以上4步之后,终于可以进行编译了。
编译过程:
使用VC的Command Prombt进入字符界面(cmd界面),然后cd到php的目录,检查一下path,看系统path中是否包括win32build\bin目录,如果没有包含进来,需要执行:set path=BuildRootDir\win32build\bin;%path%.
然后在php的源代码目录下执行buildconf.bat文件用于产生configure.js文件。然后系统提示键入”configure –help”.此时可以直接键入configure –enable-snapshot-build –disable-zip –disable-zlib –with-imagick=shared
注意以下最后生成的报告中是否包含imagick shared这样的一行。如果有,表示configure已经成功。可以键入nmake snap进行编译了。建议使用nmake snap >build.log将编译输出重定向到一个文件中。因为编译过程太长,使用日志文件方便日后检查。
编译完成之后会有一个Release_TS目录,下面会有php-5.x.x(5.x.x是你的php版本号)和3个zip文件。
编译的最终结果就位于php-5.x.x目录中。可以将它Copy到你需要的位置使用它。
测试编译结果:
以下是phpinfo()返回的关于imagick的相关信息。

5 个代码语法着色的 WordPress 插件

5 个代码语法着色的 WordPress 插件

程序员的博客,贴代码是必不可少的,语法着色可以让代码看起来更养眼,下面是 5 个 WordPress 的插件,用来对代码进行语法高亮显示。

1) CodeColorer

该插件允许在写文章时插入代码,支持多种着色风格,支持多种编程语言。

使用方法:

下载 CodeColorer 插件

2) WP-Syntax

该插件使用 GeSHi 进行语法着色,使用方法如下:

<pre lang=”LANGUAGE” line=”1″> Code </pre>

// PHP with No Line number
<pre lang=”php”>
// PHP Code goies Here
</pre>

// Java with line number
<pre lang=”java” line=”1″>
// JAVA code goes here.
</pre>

public InputStream openInputStream(String url) throws IOException {
if (url.startsWith("file://")) {
String file = url.substring(7);
InputStream in = this.getClass().getResourceAsStream("/" + file);
return in;
}
return Connector.openInputStream(url);
}

Download

下载 WP-Syntax 插件

3) WP-Code

使用方法

<code lang=”LANGUAGE”>
// Your code goes Here
</code>

4) Crayon Syntax Highlighter

该插件支持多语言,不同风格、字体,可对 URL 地址进行高亮

使用方法:

[crayon lang=”lang”] your code [/crayon]
// where lang will be your language// highlight from URL
[crayon url=”http://example.com/codeblock.txt” /]

下载该插件

5) WP Code Highlight

WP Code Highlight 提供简洁的语法高亮,兼容 W3C 验证

使用方法:

<pre> Your Code Block Here </pre>

下载插件

本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区
文章转载自:开源中国社区 [http://www.oschina.net]
本文标题:5 个代码语法着色的 WordPress 插件
本文地址:http://www.oschina.net/news/22824/wordpress-highlight-code

Discuz X2中QQ互联(QQ登录)注册时强制设置输入密码的修改方案

Posted on 2011/07/25 by zcc Discuz X2推出了云平台,也正式开放了令人心动的QQ互联(QQ登录)。但是当你兴奋积极地开启了QQ互联功能时,你是否有意识到你正在一步步走向腾讯和康盛联合设下的陷阱呢?

直接开门见山:

QQ互联与腾讯开放平台的QQ登录是有区别的
QQ互联的注册环节没有密码设定
绝大部分通过QQ互联注册的用户是不会再去设定他的密码的
很大一部分绑定QQ账号的用户(设定了密码的),也可能已经忘记了它的密码
最关键的是作为站长的你,剥离QQ的情况喜爱,无法来保证大部分用户都能正常登录
太恐怖了!
但是这个功能不用,也是怪可惜了。大部分用户是不清楚这些危害的,你公司的老板也可能不清楚。所以只需要稍微改下代码,稍微减弱些用户体验,你就能保证用户资料的独立性——在QQ互联注册环节强制要求用户设定密码。
操作:
1. 打开文件source/plugin/qqconnect/template/module.htm
(1) 查找
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).outerHTML += ‘$js1’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).required = 0;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).required = 0;

修改成
//$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘username’]}’).outerHTML += ‘$js1’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).required = 1;
//$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).required = 1;

2 打开文件 source/module/member/member_connect.php
查找
$ctl_obj->setting[‘ignorepassword’] = 1;
将它注释掉,或者删除
3 打开文件 source/module/member/member_register.php
查找
DB::query(“INSERT INTO “.DB::table(‘common_member_connect’).” (uid, conuin, conuinsecret, conopenid, conispublishfeed, conispublisht, conisregister, conisqzoneavatar, conisfeed) VALUES (‘$uid’, ‘$conuin’, ‘$conuinsecret’, ‘$conopenid’, ‘$conispublishfeed’, ‘$conispublisht’, ‘1’, ‘$is_qzone_avatar’, ‘$user_auth_fields’)”);

修改成
DB::query(“INSERT INTO “.DB::table(‘common_member_connect’).” (uid, conuin, conuinsecret, conopenid, conispublishfeed, conispublisht, conisregister, conisqzoneavatar, conisfeed) VALUES (‘$uid’, ‘$conuin’, ‘$conuinsecret’, ‘$conopenid’, ‘$conispublishfeed’, ‘$conispublisht’, ‘0’, ‘$is_qzone_avatar’, ‘$user_auth_fields’)”);