Hi_Amos
坚持每天都在进步!!
摘要: 文件权限详解一、chmod命令详解文件权限和所有权是Unix/Linux文件系统最显著的特征之一。linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种:用户(User)是文件的所有者;用户组(Group)是多个用户的集合,系统允许用户进行某些形式的访问;其他用户(others)是除用户和用户组以外的任何用户。用命令ls -l(或者ll)可以列出文件的权限:实例:amosli@amosli-pc:/$ ls -ldrwxr-xr-x 11 root root 4096 6月 17 2013 usrlrwxrwxrwx 1 root root 33 12月 ... 阅读全文
posted @ 2013-12-27 01:13 Hi_Amos 阅读(3235) 评论(0) 推荐(0) 编辑
摘要: 一、创建目录(mkdir命令详解)amosli@amosli-pc:~/learn$ mkdir diramosli@amosli-pc:~/learn/dir$ mkdir folderamosli@amosli-pc:~/learn/dir$ lsfolder上面的命令中用到了mkdir,即是创建一个目录,非常常用的一个linux 命令。该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录.在命令行内输入mkdir --help查看帮助信息.amosli@amosli-pc:~/learn/dir$ mkdir --helpUsage 阅读全文
posted @ 2013-12-26 23:40 Hi_Amos 阅读(10985) 评论(0) 推荐(3) 编辑
摘要: 一、生成任意大小的文件(dd命令):举例:amosli@amosli-pc:~/learn/example$ dd if=/dev/zero of=test.zip bs=2M count=1;1+0 records in1+0 records out2097152 bytes (2.1 MB) copied, 0.0115033 s, 182 MB/samosli@amosli-pc:~/learn/example$ lstest.zipdd命令介绍:创建特定大小的文件最简单的方法就是使用dd命令,dd命令会克隆给定的输入内容然后将一模一样的一份副本写入到输出。stdin,设备文件,普通文件 阅读全文
posted @ 2013-12-26 02:07 Hi_Amos 阅读(969) 评论(2) 推荐(1) 编辑
摘要: rename命令详解:对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如:amosli@amosli-pc:~/learn/example$ lsabc.txtamosli@amosli-pc:~/learn/example$ mv abc.txt a.txtamosli@amosli-pc:~/learn/example$ lsa.txt那么如何对指文件进行重命名呢?当然你可以全部手动去赋值,但很影响效率,如下,将所有文件名称都改为大写的,如何做呢?amosli@amosli-pc:~/learn/example$ lsa.txt b.txt c.txt d.txt ... 阅读全文
posted @ 2013-12-26 00:51 Hi_Amos 阅读(28669) 评论(3) 推荐(1) 编辑
摘要: 一、校验与核实目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和。举例:amosli@amosli-pc:~/learn$ md5sum text.txt 186931e2ff7cb0cde2c17b2298be604c text.txt如上所示,使用md5sum生成了一个由32个字符组成的十六进制串。可以将输出的校验重定向到一个文件中,然后再用这个md5文件来核实数据的完整性:amosli@amosli-pc:~/learn$ md5sum text.txt > md5_text.txtamosli@amosli-pc:~/learn$ ca 阅读全文
posted @ 2013-12-24 00:27 Hi_Amos 阅读(2192) 评论(0) 推荐(0) 编辑
摘要: tr命令详解什么是tr命令?tr,translate的简写,translate的翻译:[trænsˈleit]vi.翻译, 能被译出vt.翻译, 解释, 转化, 转变为, 调动在这里用到的意思是转化,转变,转换,在linux下输入tr --help查看一下提示:amosli@amosli-pc:~$ tr --helpUsage: tr [OPTION]... SET1 [SET2]Translate, squeeze, and/or delete characters from standard input,writing to standard output. -c, -C, - 阅读全文
posted @ 2013-12-23 23:31 Hi_Amos 阅读(9647) 评论(2) 推荐(5) 编辑
摘要: xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。例如,下面的命令:rm `find /path -type f`如果path目录下文件过多就会因为“参数列表过长”而报错无法执行。但改用xargs以后,问题即获解决。find /path -type f -print0 | xargs -0 rm本例中xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm。-print0表示输出以null分隔(-print使用换行);-0表示输入以null分隔。这样要比如下使用find命令效率高的多。find 阅读全文
posted @ 2013-12-23 02:17 Hi_Amos 阅读(1882) 评论(4) 推荐(3) 编辑
摘要: 程序入口:Test_Email_N.javaimport java.io.IOException;import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Transport;import javax.mail.inter 阅读全文
posted @ 2013-12-20 12:10 Hi_Amos 阅读(2174) 评论(0) 推荐(1) 编辑
摘要: 1.find命令详解语法:find base_path#base_path可以是任何位置,find会从该位置向下找实例:amosli@amosli-pc:~$ find /home/amosli/learn//home/amosli/learn//home/amosli/learn/timing.log/home/amosli/learn/file.py......查找当前目录:find . -print,'.'代表当前目录,'..'代表父目录,-printf指明打钱出匹配文件的文件名(路径)。当使用-print时,‘\n’作为分隔文件的定界符根据文件名或者正则 阅读全文
posted @ 2013-12-20 02:02 Hi_Amos 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 1.cat命令详解cat 是concatnate(拼接)的简写.语法:cat file1 file2 file3 ....作用:将文件内容拼接在一起进行输出具体应用:1).压缩空白行加上-s参数压缩连续的空白行amosli@amosli-pc:~/learn$ cat mutil_blank.txt thisis blank!amosli@amosli-pc:~/learn$ cat -s mutil_blank.txt #压缩连续的空白行thisis blank!移除所有的空白行,tr -s "\n"amosli@amosli-pc:~/learn$ cat mutil_ 阅读全文
posted @ 2013-12-20 01:27 Hi_Amos 阅读(1016) 评论(0) 推荐(1) 编辑
摘要: 1.Bash中的READ命令#读取n个字符存入变量read -n number_of_chars variable_name示例:amosli@amosli-pc:~$ read -n 2 varheamosli@amosli-pc:~$ echo $varhe#不回显的方式读取密码read -s var示例:amosli@amosli-pc:~$ read -s varamosli@amosli-pc:~$ echo $varpw#显示提示信息read -p "Enter input:" var示例:amosli@amosli-pc:~$ read -p "En 阅读全文
posted @ 2013-12-19 01:59 Hi_Amos 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 1.关于文件描述符和重定向:文件描述符是与一个打开的文件或数据流相关联的整数。文件描述符0、1以及2是系统预留的.0——stdin(标准输入)1——stdout(标准输出)2——stderr(标准错误)使用“echo $?”来显示状态amosli@amosli-pc:~/learn$ echo $?2amosli@amosli-pc:~/learn$ ls + 2> out.txt //没有任何输出,因为已经重定向到out.txt里面了amosli@amosli-pc:~/learn$ cat out.txt ls: cannot access +: No such file or di 阅读全文
posted @ 2013-12-19 00:36 Hi_Amos 阅读(1468) 评论(1) 推荐(0) 编辑
摘要: 官方api教程:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started-with-java-driverpackage com.infomorrow.webroot;im... 阅读全文
posted @ 2013-12-18 16:58 Hi_Amos 阅读(12489) 评论(0) 推荐(1) 编辑
摘要: 1.关于echo和printf打印输出如果要使用转义序列,那么需要在echo 后面加上参数 -e来进行识别,下面例子是进行对比:amosli@amosli-pc:~/learn$ echo -e "1\t2\t3\t"1 2 3 amosli@amosli-pc:~/learn$ echo "1\t2\t\3\t"1\t2\t\3\t输出彩色输出:颜色码:重置为0,黑色为30,红色为31,绿色为32,黄色为33,蓝色为34,洋红为35,青色为36,白色为37.echo -e "\e[31m this is red text" //将终 阅读全文
posted @ 2013-12-18 01:44 Hi_Amos 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: 1.获取当前日期:package com.infomorrow.dao;import java.sql.Timestamp;import java.util.Calendar;import java.util.TimeZone;import org.junit.Test;public class test_date {@Testpublic void test(){ Timestamp today = new Timestamp(Calendar.getInstance(TimeZone.getTimeZone("GMT+8")).getTimeInMillis()); i 阅读全文
posted @ 2013-12-17 13:06 Hi_Amos 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 定义和用法escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。语法escape(string)参数描述string必需。要被转义或编码的字符串。返回值已编码的string的副本。其中某些字符被替换成了十六进制的转义序列。说明该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。提示和注释提示:可以使用unescape()对 escape() 编码的字符串进行解码。注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decod 阅读全文
posted @ 2013-12-17 00:55 Hi_Amos 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 定义和用法indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。语法stringObject.indexOf(searchvalue,fromindex)参数描述searchvalue必需。规定需检索的字符串值。fromindex可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。说明该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromin 阅读全文
posted @ 2013-12-17 00:39 Hi_Amos 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 什么是cookie?cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。有关cookie的例子:名字 cookie当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。密码 cookie当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再 阅读全文
posted @ 2013-12-17 00:29 Hi_Amos 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: JavaScript 计时事件通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:setTimeout()未来的某时执行代码clearTimeout()取消setTimeout()setTimeout()语法var t=setTimeout("javascript语句",毫秒)setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量 阅读全文
posted @ 2013-12-16 01:51 Hi_Amos 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1.警告框警告框经常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。语法:alert("文本")2.确认框确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。语法:confirm("文本")3.提示框提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值 阅读全文
posted @ 2013-12-16 01:13 Hi_Amos 阅读(735) 评论(0) 推荐(0) 编辑
摘要: window.navigator 对象包含有关访问者浏览器的信息。Window Navigatorwindow.navigator 对象在编写时可不使用 window 这个前缀。Navigator Object PropertiesPropertyDescriptionappCodeNameReturns the code name of the browserappNameReturns the name of the browserappVersionReturns the version information of the browsercookieEnabledDetermines 阅读全文
posted @ 2013-12-16 00:41 Hi_Amos 阅读(489) 评论(0) 推荐(0) 编辑
摘要: window.history对象在编写时可不使用 window 这个前缀。为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。一些方法:history.back() - 与在浏览器点击后退按钮相同history.forward() - 与在浏览器中点击按钮向前相同Window History Backhistory.back() 方法加载历史列表中的前一个 URL。这与在浏览器中点击后退按钮是相同的Window History Forwardhistory forward() 方法加载历史列表中的下一个 URL。这与在浏览器中点击前进按钮是相同的Window History 阅读全文
posted @ 2013-12-16 00:10 Hi_Amos 阅读(1385) 评论(0) 推荐(0) 编辑
摘要: window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。Window Locationwindow.location对象在编写时可不使用 window 这个前缀。一些例子:location.hostname 返回 web 主机的域名location.pathname 返回当前页面的路径和文件名location.port 返回 web 主机的端口 (80 或 443)location.protocol 返回所使用的 web 协议(http:// 或 https://)实例:返回(当前页面的)整个 URL: alert(location.href);Wi 阅读全文
posted @ 2013-12-15 23:50 Hi_Amos 阅读(854) 评论(0) 推荐(0) 编辑
摘要: window.screen 对象包含有关用户屏幕的信息。Window Screenwindow.screen对象在编写时可以不使用 window 这个前缀。一些属性:screen.availWidth - 可用的屏幕宽度screen.availHeight - 可用的屏幕高度Window Screen 可用宽度screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。实例Window Screen 可用高度screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。window.screen,常用属性如下: 阅读全文
posted @ 2013-12-15 23:24 Hi_Amos 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。浏览器对象模型 (BOM)浏览器对象模型(BrowserObjectModel)尚无正式标准。由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。Window 对象所有浏览器都支持window对象。它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。全局变量是 window 对象的属性。全局函数是 window 对象的方法。甚至 HTML DOM 的 document 也是 window 对象的 阅读全文
posted @ 2013-12-15 23:14 Hi_Amos 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 什么是 RegExp?RegExp 是regular expression的缩写.RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。RegExp 对象直接量语法/pattern/attributes创建 RegExp 对象的语法:new RegExp(pattern, attributes);参数参数pattern是一个字符串,指定了正则表 阅读全文
posted @ 2013-12-15 22:44 Hi_Amos 阅读(1194) 评论(0) 推荐(0) 编辑
摘要: JavaScriptMathObjectMath ObjectThe Math object allows you to perform mathematical tasks.Math is not a constructor. All properties/methods of Math can be called by using Math as an object, without creating it.Syntaxvar x = Math.PI; // Returns PIvar y = Math.sqrt(16); // Returns the square root of 16F 阅读全文
posted @ 2013-12-15 17:54 Hi_Amos 阅读(381) 评论(0) 推荐(0) 编辑
摘要: Create a Boolean ObjectThe Boolean object represents two values: "true" or "false".The following code creates a Boolean object called myBoolean:var myBoolean=new Boolean();If the Boolean object has no initial value, or if the passed value is one of the following:0-0null"&quo 阅读全文
posted @ 2013-12-15 16:15 Hi_Amos 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 删除所有空白行(^是行的开始,\s*是零个或者多个空白字符;$是行尾):g/^\s*$/d删除一行:dd复制一行:yy ,之后是要 p 才会贴上来的. 阅读全文
posted @ 2013-12-15 15:52 Hi_Amos 阅读(6241) 评论(0) 推荐(0) 编辑
摘要: Array 对象Array 对象用于在单个的变量中存储多个值。创建 Array 对象的语法:new Array();new Array(size);new Array(element0, element1, ..., elementn);参数参数size是期望的数组元素个数。返回的数组,length 字段将被设为size的值。参数element...,elementn是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。返回值返回新创建并被初始化了的数组。如果调用构造函数 Array() 时没有使用 阅读全文
posted @ 2013-12-15 02:13 Hi_Amos 阅读(289) 评论(0) 推荐(0) 编辑
摘要: Date 对象Date 对象用于处理日期和时间。创建 Date 对象的语法:var myDate=new Date()注释:Date 对象会自动把当前日期和时间保存为其初始值。Date 对象属性FF: Firefox, IE: Internet Explorer属性描述FFIEconstructor返回对创建此对象的 Date 函数的引用。14prototype使您有能力向对象添加属性和方法。14Date 对象方法FF: Firefox, IE: Internet Explorer方法描述FFIEDate()返回当日的日期和时间。13getDate()从 Date 对象返回一个月中的某一天 ( 阅读全文
posted @ 2013-12-15 01:59 Hi_Amos 阅读(258) 评论(0) 推荐(0) 编辑
摘要: String 对象String 对象用于处理文本(字符串)。创建 String 对象的语法:new String(s);String(s);参数参数s是要存储在 String 对象中或转换成原始字符串的值。返回值当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串s或s的字符串表示。当不用 new 运算符调用 String() 时,它只把s转换成原始的字符串,并返回转换后的值。String 对象属性FF: Firefox, IE: Internet Explorer属性描述FFIEconstructor对创建该对象的函数的引用1 阅读全文
posted @ 2013-12-15 01:56 Hi_Amos 阅读(319) 评论(0) 推荐(0) 编辑
摘要: JavaScript 数字JavaScript 数字可以使用也可以不使用小数点来书写:实例var pi=3.14; // 使用小数点var x=34; // 不使用小数点极大或极小的数字可通过科学(指数)计数法来写:实例var y=123e5; // 12300000var z=123e-5; // 0.00123所有 JavaScript 数字均为 64 位(8 比特)JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。JavaScript 中的所有数字都存储为根为 10 的 64 位... 阅读全文
posted @ 2013-12-15 01:47 Hi_Amos 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 1.需要深入学习DOM对象知识,very important!http://www.w3school.com.cn/htmldom/index.asp2.深入学习javascript RegExp对象,即正则表达式:http://www.w3school.com.cn/js/jsref_obj_regexp.asp3.深入学习jsBOM知识http://www.w3schools.com/js/js_window.asp 阅读全文
posted @ 2013-12-15 01:06 Hi_Amos 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 添加和删除节点(HTML 元素)。创建新的 HTML 元素如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。这是一个段落这是第二个段落这段代码创建新的 元素:var para=document.createElement("p");如需向 元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点: var node= document.createTextNode("这是新段落!");然后您必须向 元素追加这个文本节点: document.getElementById('p1' 阅读全文
posted @ 2013-12-15 01:01 Hi_Amos 阅读(282) 评论(0) 推荐(0) 编辑
摘要: url在传输时不允许的一些字符串,参考自:http://www.ietf.org/rfc/rfc1738.txt以下字符用java正则替换为"_",一句话搞定:"{", "}", "|", "\", "^", "~", "[", "]", and "`"."#" ""java正则:Pattern.compile("[{}\\[\\]|\\^~`#% 阅读全文
posted @ 2013-12-12 16:13 Hi_Amos 阅读(1529) 评论(0) 推荐(0) 编辑
摘要: 想用命令行打开网页文件,实现方法如下:1.Ctrl+Alt+T可以打开shell,F11可以全屏显示,输入以下命令即可打开js17.html,并且指定浏览器,比如指定chrome,google-chrome js17.html 类似用firefox打开,可用命令如下:firefox js17.html2.xdg-openxdg-open js17.htmlxdg-open格式:xdg-open { file | URL }xdg-open { --help | --manual | --version }可以使用xdg-open可以打开各种类型的文件,但都只是用默认程序打开,上面打开js17. 阅读全文
posted @ 2013-12-12 00:29 Hi_Amos 阅读(755) 评论(0) 推荐(0) 编辑
摘要: HTML DOM (文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。HTML DOM 树通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。JavaScript 能够改变页面中的所有 HTML 元素JavaScript 能够改变页面中的所有 HTML 属性JavaScript 能够改变页面中的所有 CSS 样式JavaScript 能够对页面中的所有事件做出反应dom中包含元素,属性,文本三种节点,dom应用非常广泛,掌握好了对于学习js有很大帮助.查找 HTML 阅读全文
posted @ 2013-12-11 23:29 Hi_Amos 阅读(463) 评论(0) 推荐(0) 编辑
摘要: JavaScript 表单验证JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。被 JavaScript 验证的这些典型的表单数据有:用户是否已填写表单中的必填项目?用户输入的邮件地址是否合法?用户是否已输入合法的日期?用户是否在数据域 (numeric field) 中输入了文本?必填(或必选)项目下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):function validate_required(field,al 阅读全文
posted @ 2013-12-11 01:31 Hi_Amos 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 1.简要说明with语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。2.语法格式with(object instance) { //代码块 } 在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:with(objInstance){varstr=属性1;.....}去除了多次写对象名的麻烦。3.举例 阅读全文
posted @ 2013-12-11 01:27 Hi_Amos 阅读(265) 评论(0) 推荐(0) 编辑