哪一天 哪一天 我有吃有穿有住有钱 不再流浪 流浪

Linux(Ubuntu) Firefox中Flash播放器乱码问题

这个问题一直困扰了我很久
尤其当你打开一个包含很多flash的网页时
那大段的乱码比看马赛克还难受
哎….还是无码的好啊.

不过,今天从网上搜到了解决方案
原文地址: http://www.zxl.name/archives/1317.html

如下两步:

(1)备份49-sansserif.conf这个字体配置文件

    sudo cp /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak

(2)删除49-sansserif.conf文件做完后重启firefox就可以了。

    sudo rm /etc/fonts/conf.d/49-sansserif.conf

重启下firefox就OK了.

2008-09-28经典收藏

没有评论
1 views

2008.09.29 K197 上海南站 => 厦门

08.09.25刚在家休息一周,
突然想起去厦门的票还未买

查下春秋航空,99,199都已经打上了长长的删除线
5折买机票又感觉不划算

于是看看火车票
可惜网上只能预定动车组
其他代售点又不送票上门

本来想麻烦同事帮忙买
但买票毕竟是个苦差事
这苦差事还是自己来做比较合适

于是09.25一早坐上了去上海的汽车
这几天家里又异常的冷
都低于20度
而我确短袖短裤……
这么冷酷冻人的穿着
反正我是没发现第二个

一路上各个城市皆乌云密布
车行至太仓段,高速竟然绵延几十公里堵车
平生第一次见到如此壮观的车水马龙

还好于下午4时到达上海
同行的一辆车那时仍在常熟停滞不前
庆幸我不在那车上

下车直奔火车票代售点
得到一个令人悲份的消息
K197车票已售完

上海去厦门也有汽车
但是这车是走夜路
最近新闻看多了
走夜路的汽车一概不坐
无奈只能通过网上找别人转让的火车票

而幸运的是:
我找到了转让火车票的
而这张票也到我手里了
不容易.

2008.9.30 就要回到阔别一年多的厦门啦

激动中……

htaccess rewrite 用法.

原文地址: http://www.cccspace.net/b/htaccess.html

以下指命令的作用域都是.htaccess

RewriteEngine On|Off

RewriteEngine 可用On 或者 Off 打开或关闭rewrite功能。
rewrite configurations 不会继承,所以你得给每个你想用 rewrite功能的virtual host加上这个指令。

RewriteBase URL-path

RewriteBase指令显式地设置了目录级重写的基准URL。在下文中,你可以看见RewriteRule可以用于目录级的配置文件中 (.htaccess)并在局部范围内起作用,即规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个路径会被自动地附着回去。默认值 是"RewriteBase physical-directory-path"。
在对一个新的URL进行替换时,此模块必须把这个URL重新注入到服务器处理中。为此,它必须知道其对应的URL前缀或者说URL基准。通常,此前缀就是 对应的文件路径。但是,大多数网站URL不是直接对应于其物理文件路径的,因而一般不能做这样的假定! 所以在这种情况下,就必须用RewriteBase指令来指定正确的URL前缀。
如果你的网站服务器URL不是与物理文件路径直接对应的,而又需要使用RewriteBase指令,则必须在每个对应的.htaccess文件中指定RewriteRule 。

RewriteCond TestString CondPattern

RewriteCond指令定义了一个规则的条件,即在一个RewriteRule指令之前有一个或多个RewriteCond指令。条件之后的重写规则仅在当前URI与pattern匹配并且符合这些条件的时候才会起作用。
Notice:All of these tests can also be prefixed by an exclamation mark (‘!’) to negate their meaning. 在正则表达式中,如果取反的话要用^,在这里需要用!号取反

RewriteOptions Options

Sets some special options for the rewrite engine.
设定一些特殊的选项给rewrite.
The Option string can be currently only one:inherit
inherit
此值强制当前配置可以继承其父配置。 在虚拟主机级配置中,它意味着主服务器的映射表、条件和规则可以被继承。 在目录级配置中,它意味着其父目录的.htaccess中的条件和规则可以被继承。
MaxRedirects=number
为了避免目录级RewriteRule的无休止的内部重定向, 在此类重定向和500内部服务器错误次数达到一个最大值的时候, mod_rewrite会停止对此请求的处理。 如果你确实需要对每个请求允许大于10次的内部重定向,可以增大这个值。
This forces the current configuration to inherit the configuration of the parent.
强制当前的配置继承它parent的配置。
在per-virtual-server环境下,意味着maps, conditions , rules会被继承!
在per-directory 环境下 意味着它父目录的.htaccess配置中的conditions , rules 会被继承!

RewriteRule Pattern Substitution [flags]

Text:
. 任何单字符
[chars] Character class: One of chars
[^chars] Character class: None of chars
text1|text2 两者选一个: text1 or text2

Quantifiers:量词
? 0 or 1 of the 前面的 text
* 0 or N of the 前面的 text (N > 0)
+ 1 or N of the 前面的 text (N > 1)

Grouping:
(text) Grouping of text

可用$N来得到()中的内容:
( (a|b) | (c|d))
$1 $2 $3

Anchors:
^ Start of line anchor
$ End of line anchor

Escaping:
char escape that particular char
(for instance to specify the chars ".[]()" etc.)

注意:没有并且&
=========================================================================================
flags

  1. ‘redirect|R [=code]‘ (强制重定向 redirect)

    以http://thishost[:thisport]/(使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向。 如果code没有指定,则产生一个HTTP响应代码302(临时性移动)。 如果需要使用在300-400范围内的其他响应代码,只需在此指定这个数值即可, 另外,还可以使用下列符号名称之一: temp (默认的), permanent, seeother. 用它可以把规范化的URL反馈给客户端,如, 重写“/~”为 “/u/”,或对/u/user加上斜杠,等等。 注意: 在使用这个标记时,必须确保该替换字段是一个有效的URL! 否则,它会指向一个无效的位置! 并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/的前缀,重写操作仍然会继续。 通常,你会希望停止重写操作而立即重定向,则还需要使用’L'标记.

  2. ‘forbidden|F’ (强制URL为被禁止的 forbidden)

    强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的)。 使用这个标记,可以链接若干RewriteConds以有条件地阻塞某些URL。

  3. ‘gone|G’ (强制URL为已废弃的 gone)

    强制当前URL为已废弃的,即,立即反馈一个HTTP响应代码410(已废弃的)。 使用这个标记,可以标明页面已经被废弃而不存在了.

  4. ‘proxy|P’ (强制为代理 proxy)

    此标记使替换成分被内部地强制为代理请求,并立即(即, 重写规则处理立即中断)把处理移交给代理模块。 你必须确保此替换串是一个有效的(比如常见的以 http://hostname开头的)能够为Apache代理模块所处理的URI。 使用这个标记,可以把某些远程成分映射到本地服务器名称空间, 从而增强了ProxyPass指令的功能。 注意: 要使用这个功能,代理模块必须编译在Apache服务器中。 如果你不能确定,可以检查“httpd -l”的输出中是否有mod_proxy.c。 如果有,则mod_rewrite可以使用这个功能; 如果没有,则必须启用mod_proxy并重新编译“httpd”程序。

  5. ‘last|L’ (最后一个规则 last)

    立即停止重写操作,并不再应用其他重写规则。 它对应于Perl中的last命令或C语言中的break命令。 这个标记可以阻止当前已被重写的URL为其后继的规则所重写。 举例,使用它可以重写根路径的URL(‘/’)为实际存在的URL, 比如, ‘/e/www/’.

  6. ‘next|N’ (重新执行 next round)

    重新执行重写操作(从第一个规则重新开始). 这时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理的URL。 它对应于Perl中的next命令或C语言中的continue命令。 此标记可以重新开始重写操作,即, 立即回到循环的头部。 但是要小心,不要制造死循环!

  7. ‘chain|C’ (与下一个规则相链接 chained)

    此标记使当前规则与下一个(其本身又可以与其后继规则相链接的, 并可以如此反复的)规则相链接。 它产生这样一个效果: 如果一个规则被匹配,通常会继续处理其后继规则, 即,这个标记不起作用;如果规则不能被匹配, 则其后继的链接的规则会被忽略。比如,在执行一个外部重定向时, 对一个目录级规则集,你可能需要删除“.www” (此处不应该出现“.www”的)。

  8. ‘type|T=MIME-type’ (强制MIME类型 type)

    强制目标文件的MIME类型为MIME-type。 比如,它可以用于模拟mod_alias中的ScriptAlias指令, 以内部地强制被映射目录中的所有文件的MIME类型为“application/x-httpd-cgi”.

  9. ‘nosubreq|NS’ (仅用于不对内部子请求进行处理 no internal sub-request)

    在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。 比如,在mod_include试图搜索可能的目录默认文件(index.xxx)时, Apache会内部地产生子请求。对子请求,它不一定有用的,而且如果整个规则集都起作用, 它甚至可能会引发错误。所以,可以用这个标记来排除某些规则。 根据你的需要遵循以下原则: 如果你使用了有CGI脚本的URL前缀,以强制它们由CGI脚本处理, 而对子请求处理的出错率(或者开销)很高,在这种情况下,可以使用这个标记。

  10. ‘nocase|NC’ (忽略大小写 no case)

    它使Pattern忽略大小写,即, 在Pattern与当前URL匹配时,’A-Z’ 和’a-z’没有区别。

  11. ‘qsappend|QSA’ (追加请求串 query string append)

    此标记强制重写引擎在已有的替换串中追加一个请求串,而不是简单的替换。 如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

  12. ‘noescape|NE’ (在输出中不对URI作转义 no URI escaping)

    此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符(如’%', ‘$’, ‘;’等)会被转义为等值的十六进制编码。 此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,如: RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE]
    可以使’/foo/zed’转向到一个安全的请求’/bar?arg=P1=zed’.

  13. ‘passthrough|PT’ (移交给下一个处理器 pass through)

    此标记强制重写引擎将内部结构 request_rec中的uri字段设置为 filename字段的值,它只是一个小修改,使之能对来自其他URI到文件名翻译器的 Alias,ScriptAlias, Redirect 等指令的输出进行后续处理。举一个能说明其含义的例子: 如果要通过mod_rewrite的重写引擎重写/abc为/def, 然后通过mod_alias使/def转变为/ghi,可以这样: RewriteRule ^/abc(.*) /def$1 [PT]
    Alias /def /ghi
    如果省略了PT标记,虽然mod_rewrite运作正常, 即, 作为一个使用API的URI到文件名翻译器, 它可以重写uri=/abc/…为filename=/def/…, 但是,后续的mod_alias在试图作URI到文件名的翻译时,则会失效。
    注意: 如果需要混合使用不同的包含URI到文件名翻译器的模块时, 就必须使用这个标记。混合使用mod_alias和mod_rewrite就是个典型的例子。

    For Apache hackers
    如果当前Apache API除了URI到文件名hook之外,还有一个文件名到文件名的hook, 就不需要这个标记了! 但是,如果没有这样一个hook,则此标记是唯一的解决方案。 Apache Group讨论过这个问题,并在Apache 2.0 版本中会增加这样一个hook。
  14. ’skip|S=num’ (跳过后继的规则 skip)

    此标记强制重写引擎跳过当前匹配规则后继的num个规则。 它可以实现一个伪if-then-else的构造: 最后一个规则是then从句,而被跳过的skip=N个规则是else从句. (它和’chain|C’标记是不同的!)

  15. ‘env|E=VAR:VAL’ (设置环境变量 environment variable)

    此标记使环境变量VAR的值为VAL, VAL可以包含可扩展的反向引用的正则表达式$N和%N。 此标记可以多次使用以设置多个变量。 这些变量可以在其后许多情况下被间接引用,但通常是在XSSI (via or CGI (如 $ENV{‘VAR’})中, 也可以在后继的RewriteCond指令的pattern中通过%{ENV:VAR}作引用。 使用它可以从URL中剥离并记住一些信息。

  16. ‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]’ (设置cookie)

    它在客户端浏览器上设置一个cookie。 cookie的名称是NAME,其值是VAL。 domain字段是该cookie的域,比如’.apache.org’, 可选的lifetime是cookie生命期的分钟数, 可选的path是cookie的路径。

Linux FTP客户端 Lftp 使用方法

原文: http://hi.baidu.com/redcat8850/blog/item/fb01d5e7c153bc2bb8382012.html

一直想找一个在linux里能与FlashFXP比肩的ftp客户端,试过了若干种GUI的ftp client,有free的也有nonfree的,但实际用过得同志应该清楚,说它们是lj,恐怕伤了作者的心,但又实在找不出其他形容。转了一圈又回到 lftp,没有GUI,对于初学者来说,虽然有一点点痛苦,但只要想想,lftp能在众多client中屹立不倒这么多年,而且至今仍然是linux 里最首推崇的利器,足以说明他的功能和易用性都是不错的。我的经验是,花一点时间来学lftp是值得的,不要再徒劳地寻找GUI FTP Client,在unix世界里,没有FlashFXP! 首先来说一下lftp登录站点的操作,有好几种方式,都非常简单。

1. 一气呵成式
$ lftp (ftp://)user:password@site:port
比较常用于网页或bbs上给出的现成链接,缺点是password显示为明文,推荐在月黑风高、四下无人的环境里偷偷输入…如果不幸背后有人
$ lftp (ftp://)user@site:port
然后系统会提示输入password,这是就是******了

2. 老实巴交型

$ lftp site -p port -u user,password
这是lftp说明文档里给出的标准方式,这一招比较费体力,请根据自己身体情况量力而行。如果体能一般,可以
$ lftp site:port -u user,password
似乎是略微省事一点儿,我一般也用这种方法

3. 五短之中暗藏一长

这是一个递归嵌套的招式%¥#@!×&
$ lftp
lftp:~>lftp user:password@site:port
就是说在lftp控制台里进行操作,和在系统终端是完全一样的,你仍然可以毫无顾忌地用使用前面两招,同时也可以用o或open代替lftp,后面站点用户名密码的格式也可以根据自己偏好输入

4. 终极大招

每次登录都狂敲一行user:password@site:port,长年累月,就算李铁来了也扛不住。所以还是要让lftp把常用的站点记下来,就象FlashFXP里的站台管理器,在lftp里,叫做bookmark,具体的咱们日后再说

登 录完成第一件事就是想看看这个服务器上有什么好东东。操作和终端里是一样的,ls就是列出服务器目录。有一点要说明,第一次ls之后,目录表就被保存到了 本地cache,这样再次ls就不能得到这个目录下最新的列表,这时可以用rels重新下载目录表。这里的cache是lftp的默认设置,目的无非就是 更快的得到列表,有时却不符和你的使用习惯。可以用 cache on和cache off开关cache,也可以用cache flush来清空cache。更改目录也是cd,没什么可说的,lftp也支持tab匹配功能,大大减少了劳动强度。

lftp 支援了六种模式, ftp, ftps, http, https, hftp, fish and file(当然了 https 和 ftps 的支援必须在编译就和 openssl library 一起编译好)。

lftp 内建了 shell-like 的命令格式, 允许在背景同时执行多个命令(&)。所有背景执行的工作都是在同一个程序中(process), 能将前景执行的命令放到背景执行(Ctrl-z), 或从背景拿回前景执行(wait 或 fg), 甚至还可以经由上个命令的传回值来决定目前这个命令是否要执行(&& ||)。

在结束 lftp 时, 如果还有程序执行中, lftp 会将自己切换到 no hup 模式並放到背景执行。因此不必担心执行 lftp 当中无法登出。

!
可执行本地端 shell 中的命令, 如 !ls /usr/local/bin/由於 lftp 並没有 lls(显示本地端档案列表的指令), 故可用 !ls 来替代。

alias []
定义别名
alias less more
alias reconnect "close; cd ."
直接输入 alias 即可看到目前定义了那些别名。如果只输入 alias name 的话, 则是取消 name 这个别名。

bookmark SUBCMD
设定书籤, 可将目前站台及所在目录设成书籤, 下次可直接进来, 不用再 cd 来 cd 去的

bookmark add name 用来新增名称为 name 的书籤
bookmark del name 删除名称为 name 的书籤
bookmark list 显示目前有设定那些书籤(另外直接打 bookmark 和 bookmark list 的结果一样)
bookmark edit 呼叫编辑器修改书籤 (~/.lftp/bookmarks)

cd 切换远端目录

cache SUBCMD
管理 lftp 的 cache

rels []
从 cache 中显示远端档案列表
rels 则不会从 cache 中读取

recls opts [path/]pattern
从 cache 中显示远端的档案列表, 应该算是 ls 的加强版, 有很多参数可用,应该是可用来产生各种不同>的档案列表以供其他程式使用。
recls 则不会从 cache 中读取

du options
计算远端整个目录佔用容量

get OPTS -o
抓取远端档案

get rfile -o lfile
抓 rfile 到本地改名为 lfile
-c 为续传
-E 抓档完成後, 将远端的档案砍了
-a 为 ascii mode, 预设为 binary mode
-O 设定 base directory 为本地端放档案的目录

mget OPTS
下载远端档案(可用 wildcard expansion 也就是 *)

pget OPTS -o
使用多个连结来下载档案, 预设为五个。
-n 3 为叁个连结

jobs -v
显示目前有那些程序在背景执行
-v 显示详细的资讯(-v 可多加幾个来显示更详细的资讯)

lcd
切换本地端的目录

mirror OPTS remote [local]
下载整个目录(楼上的 get 只能用来抓档案)
-c 续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-R 上传整个目录
-n 只下载较新的档案
-r 不用递迴到目录中
–parallel=n 同时下载 n 个档案(预设一次只下载一个)

module name args
载入模组

put OPTS -o
上传档案

mput OPTS
上传档案(可用 wildcard expansion 也就是 *)

mv
将远端的 file1 改名为 file2

mrm
用 wildcard expansion 方式来删除远端档案

open OPTS
开启某个站台
open -u , -p site

queue OPTS []
将 cmd 放到伫列中等待执行
-d index 将编号为 index 的 job 删除
-m index new_index 将编号为 index 的 job 移至编号 new_index, 插队专用。
-n index 在编号 index 之前新增一个 job

wait []
将背景执行中的程序移至前景(也可用 fg)

kill all|
删除全部的 jobs 或 job_no

repeat delay command
每隔 delay 秒, 重覆执行 command, 预设是每隔一秒

rm -r -f
移除远端档案

mkdir -p
建立远端目录

rmdir -f
移除远端目录

set OPT []
设定变数
直接键入 set 可看目前定义了那些变数

source
读取 file, 並执行 file 中的命令(应该是和 bash 中的 source 命令是一样的吧)

debug [|off] -o
设定 debug level 为 level
-o 将输出导向至 file

exit [|bg]
结束 lftp
此时若还有 jobs, 则会将 lftp 放至背景执行, 继续未完成的工作

history -w file-r file-c|-l cnt
和 bash 中的 history 功能一样

renlist []
只显示远端的档名

pwd -p
显示目前远端所在目录
-p 连登入密码也显示

scache []
只打 scache 显示目前所有的 session, 加上 session_no 可切换至其他的 session,
对於同时开启多个站台或同个站台不同目录间切换。

小 弟有遇过某些站台, 一个 ip 只允许登入一次的,如果想同时抓好幾个档案在不同目录下,就只能一次抓一个,等到抓完了才能再切换到别的目录去抓第二个, 这时 lftp 的 queue 就派上用场了。一般下了 get, mget 的话, 档案就直接开始下载了, 这时就无法再切换到其他目录了, 因此, 先将 queue 给停止, 首先下个 queue, 按 enter, 再下个 jobs 即可看到目前 queue 是停止的。这时再将要抓的东东一个个加入 queue 中, 等到要抓的东东都进入
queue 後, 再下 queue start 一次全部传送, 这样子可省去随时注意档案是否抓完,迼成困扰。

lftp localhost:/pub/Iso> queue

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.

lftp localhost:/pub/Iso> queue get rettcd.iso

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.
Commands queued:
1. get rettcd.iso

lftp localhost:/pub/Iso> queue mirror Linux/

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Queue is stopped.
Commands queued:
1. get rettcd.iso
2. mirror Linux/

lftp localhost:/pub/Iso> queue start

lftp localhost:/pub/Iso> jobs
0 queue (ftp://localhost)
Now executing: 1 get rettcd.iso
Commands queued:
1. mirror Linux/
1 get rettcd.iso
`rettcd.iso’ at 4772864 (9%) 3.00M/s eta:14s Receiving data
相关文件

/etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/et
c

~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。
lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行

debug 3

就可以看到出错信息了。
更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。

~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里

~/.lftp/bookmarks
这是lftp存储书签的地方,可以lftp查看bookmark命令

~/.lftp/cwd_history
这个文件用来存储访问过的站点的工作目录

碰到一个中文字符集显示的问题, Remote FTP Server 的 Charset 是 gb2312 的, 我若直接 ls, 所有中文字符都是乱码, 根本没有办法使用. 要这样给一个参数才行:

lftp ryun@www.example.com:/>set ftp:charset gb2312

然后再 ls 一下看看, 是不是亲切多了 ^____^

这里还有一个方法, 针对经常使用中文字符集FTP的朋友可以这样来设定配置文件:

touch ~/.lftp/rc
echo ‘debug 4′ >> ~/.lftp/rc
echo ’set ftp:charset GBK’ >> ~/.lftp/rc

现在 lftp 后直接支持中文字符显示

无法被动模式连接,转为主动模式就可以列目录了:在 lftp 登录后执行:
set ftp:passive-mode no

linux解压 tar命令

tar命令

tar [-cxtzjvfpPN] 文件与目录 ….
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]#
tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/” from member names』那是关於绝对路径的特殊设定。
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N “2005/06/01″ -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf – /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!

2008-09-16生活记事

3条评论
1 views

9.17 => 10.14

爽.
工作一年终于可以好好的休息一下了.

终于可以不用上班了
终于可以安稳睡觉了

终于可以回家啦!!!!!!!!!!!

Apache的rewrite的重写相关的参数

Apache mod_rewrite规则重写的标志一览

R[=code](force redirect) 强制外部重定向
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
P(force proxy) 强制使用代理转发。
L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
N(next round) 重新从第一条规则开始运行重写过程。
C(chained with next rule) 与下一条规则关联
如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。
T=MIME-type(force MIME type) 强制MIME类型
NS (used only if no internal sub-request) 只用于不是内部子请求
NC(no case) 不区分大小写
QSA(query string append) 追加请求字符串
NE(no URI escaping of output) 不在输出转义特殊字符
例如:RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed
PT(pass through to next handler) 传递给下一个处理
例如:
RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理
Alias /def /ghi
S=num(skip next rule(s)) 跳过num条规则
E=VAR:VAL(set environment variable) 设置环境变量

使用mod_rewrite时常用的服务器变量:
HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT
connection & request: REMOTE_ADDR, QUERY_STRING
server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL
system stuff: TIME_YEAR, TIME_MON, TIME_DAY

RewriteRule规则表达式的说明:
    . 匹配任何单字符
    [chars] 匹配字符串:chars
    [^chars] 不匹配字符串:chars
    text1|text2 可选择的字符串:text1或text2
    ? 匹配0到1个字符
    * 匹配0到多个字符
    + 匹配1到多个字符
    ^ 字符串开始标志
    $ 字符串结束标志
    n 转义符标志

反向引用 $N 用于 RewriteRule 中匹配的变量调用(0 <= N <= 9)
反向引用 %N 用于 RewriteCond 中最后一个匹配的变量调用(1 <= N <= 9)

RewriteCond适用的标志符
‘nocase|NC’ (no case)忽略大小
‘ornext|OR’ (or next condition)逻辑或,可以同时匹配多个RewriteCond条件

RewriteRule适用的标志符
‘redirect|R [=code]’ (force redirect)强迫重写为基于http开头的外部转向(注意URL的变化) 如:[R=301,L]
‘forbidden|F’ (force URL to be forbidden)重写为禁止访问
‘proxy|P’ (force proxy)重写为通过代理访问的http路径
‘last|L’ (last rule)最后的重写规则标志,如果匹配,不再执行以后的规则
‘next|N’ (next round)循环同一个规则,直到不能满足匹配
‘chain|C’ (chained with next rule)如果匹配该规则,则继续下面的有Chain标志的规则。
‘type|T=MIME-type’ (force MIME type)指定MIME类型
‘nosubreq|NS’ (used only if no internal sub-request)如果是内部子请求则跳过
‘nocase|NC’ (no case)忽略大小
‘qsappend|QSA’ (query string append)附加查询字符串
‘noescape|NE’ (no URI escaping of output)禁止URL中的字符自动转义成%[0-9]+的形式。
‘passthrough|PT’ (pass through to next handler)将重写结果运用于mod_alias
’skip|S=num’ (skip next rule(s))跳过下面几个规则
‘env|E=VAR:VAL’ (set environment variable)添加环境变量

实战
    例子:
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ^MSIE [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Opera [NC]
    RewriteRule ^.* – [F,L] 这里”-”表示没有替换,浏览器为IE和Opera的访客将被禁止访问。

    例子:
    RewriteEngine On
    RewriteBase /test
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ([^/]+)$ /test/$1.php
    #for example: /test/admin => /test/admin.php
    RewriteRule ([^/]+).html$ /test/$1.php [L]
    #for example: /test/admin.html => /test/admin.php

    限制目录只能显示图片
    < IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !^.*.(gif|jpg|jpeg|png|swf)$
    RewriteRule .*$ – [F,L]
    < /IfModule>

2008-09-07生活记事

2条评论
0 views

2008-09-07

本周:
Lay Lee同学离职去读研,
Christonphe离职回France

周五散伙饭,Lay Lee同学展现了平时工作难得一见的豪放.
小弟深感佩服.
=>好好考研,将来深造.

散伙饭之前匆忙没来得及与Christonphe合照
小弟深表遗憾
=>Demo Page,我没做完

最近发觉如果关注某个人
首先想到的确是baidu一下
想了解一下她的前世今生
看来这是一种潮流
叫"人肉搜索"

以上几十字,竟然写了半个多小时.
既然等会还要加班,不如现在就睡觉.

返回顶部