采用 10 个能够提高您的 UNIX® 命令行效率的好习惯——并在此过程中摆脱不良的使用模式。本文循序渐进地指导您学习几项用于命令行操作的技术,这些技术非常好,但是通常被忽略。了解常见 错误和克服它们的方法,以便您能够确切了解为何值得采用这些 UNIX 习惯。
引言
当您经常使用某个系统时,往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式做事的习惯。有时,您的不良习惯甚至会导致出现混乱。 纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习惯的好习惯。本文提出了 10 个值得采用的 UNIX 命令行习惯——帮助您克服许多常见使用怪癖,并在该过程中提高命令行工作效率的好习惯。下面列出了这 10 个好习惯,之后对进行了更详细的描述。
采用 10 个好习惯
要采用的十个好习惯为:
在单个命令中创建目录树。
更改路径;不要移动存档。
将命令与控制操作符组合使用。
谨慎引用变量。
使用转义序列来管理较长的输入。
在列表中对命令分组。
在 find 之外使用 xargs。
了解何时 grep 应该执行计数——何时应该绕过。
匹配输出中的某些字段,而不只是对行进行匹配。
停止对 cat 使用管道。
在单个命令中创建目录树
清单 1 演示了最常见的 UNIX 坏习惯之一:一次定义一个目录树。
清单 1. 坏习惯 1 的示例:单独定义每个目录树
~ $ mkdir tmp~ $ cd tmp~/tmp $ mkdir a~/tmp $ cd a~/tmp/a $ mkdir b~/tmp/a $ cd b~/tmp/a/b/ $ mkdir c~/tmp/a/b/ $ cd c~/tmp/a/b/c $
使用 mkdir 的 -p 选项并在单个命令中创建所有父目录及其子目录要容易得多。但是即使对于知道此选项的管理员,他们在命令行上创建子目录时也仍然束缚于逐步创建每级子目录。花时间有意识地养成这个好习惯是值得的:
清单 2. 好习惯 1 的示例:使用一个命令来定义目录树
~ $ mkdir -p tmp/a/b/c
您可以使用此选项来创建整个复杂的目录树(在脚本中使用是非常理想的),而不只是创建简单的层次结构。例如:
清单 3. 好习惯 1 的另一个示例:使用一个命令来定义复杂的目录树
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
过去,单独定义目录的唯一借口是您的 mkdir 实现不支持此选项,但是在大多数系统上不再是这样了。IBM、AIX®、mkdir、GNU mkdir 和其他遵守单一 UNIX 规范 (Single UNIX Specification) 的系统现在都具有此选项。
对于仍然缺乏该功能的少数系统,您可以使用 mkdirhier 脚本(请参见参考资料),此脚本是执行相同功能的 mkdir 的包装:
~ $ mkdirhier project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
更改路径;不要移动存档
另一个不良的使用模式是将 .tar 存档文件移动到某个目录,因为该目录恰好是您希望在其中提取 .tar 文件的目录。其实您根本不需要这样做。您可以随心所欲地将任何 .tar 存档文件解压缩到任何目录——这就是 -C 选项的用途。在解压缩某个存档文件时,使用 -C 选项来指定要在其中解压缩该文件的目录:
清单 4. 好习惯 2 的示例:使用选项 -C 来解压缩 .tar 存档文件
~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
相对于将存档文件移动到您希望在其中解压缩它的位置,切换到该目录,然后才解压缩它,养成使用 -C 的习惯则更加可取——当存档文件位于其他某个位置时尤其如此。
将命令与控制操作符组合使用
您可能已经知道,在大多数 Shell 中,您可以在单个命令行上通过在命令之间放置一个分号 (;) 来组合命令。该分号是 Shell 控制操作符, 虽然它对于在单个命令行上将离散的命令串联起来很有用,但它并不适用于所有情况。例如,假设您使用分号来组合两个命令,其中第二个命令的正确执行完全依赖 于第一个命令的成功完成。如果第一个命令未按您预期的那样退出,第二个命令仍然会运行——结果会导致失败。相反,应该使用更适当的控制操作符(本文将描述 其中的部分操作符)。只要您的 Shell 支持它们,就值得养成使用它们的习惯。
仅当另一个命令返回零退出状态时才运行某个命令
使用 && 控制操作符来组合两个命令,以便仅当 第一个命令返回零退出状态时才运行第二个命令。换句话说,如果第一个命令运行成功,则第二个命令将运行。如果第一个命令失败,则第二个命令根本就不运行。例如:
清单 5. 好习惯 3 的示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
在此例中,存档的内容将提取到 ~/tmp/a/b/c 目录中,除非该目录不存在。如果该目录不存在,则 tar 命令不会运行,因此不会提取任何内容。
仅当另一个命令返回非零退出状态时才运行某个命令
类似地,|| 控制操作符分隔两个命令,并且仅当第一个命令返回非零退出状态时才运行第二个命令。换句话说,如果第一个命令成功,则第二个命令不会运行。如果第一个命令失败,则第二个命令才会 运行。在测试某个给定目录是否存在时,通常使用此操作符,如果该目录不存在,则创建它:
清单 6. 好习惯 3 的另一个示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c
您还可以组合使用本部分中描述的控制操作符。每个操作符都影响最后的命令运行:
清单 7. 好习惯 3 的组合示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar
谨慎引用变量
始终要谨慎使用 Shell 扩展和变量名称。一般最好将变量调用包括在双引号中,除非您有不这样做的足够理由。类似地,如果您直接在字母数字文本后面使用变量名称,则还要确保将该变 量名称包括在方括号 ([]) 中,以使其与周围的文本区分开来。否则,Shell 将把尾随文本解释为变量名称的一部分——并且很可能返回一个空值。清单 8 提供了变量的各种引用和非引用及其影响的示例。
清单 8. 好习惯 4 的示例:引用(和非引用)变量
~ $ ls tmp/a b~ $ VAR="tmp/*"~ $ echo $VARtmp/a tmp/b~ $ echo "$VAR"tmp/*~ $ echo $VARa~ $ echo "$VARa"~ $ echo "${VAR}a"tmp/*a~ $ echo ${VAR}atmp/a~ $
使用转义序列来管理较长的输入
您或许看到过使用反斜杠 (\) 来将较长的行延续到下一行的代码示例,并且您知道大多数 Shell 都将您通过反斜杠联接的后续行上键入的内容视为单个长行。然而,您可能没有在命令行中像通常那样利用此功能。如果您的终端无法正确处理多行回绕,或者您的 命令行比通常小(例如在提示符下有长路经的时候),反斜杠就特别有用。反斜杠对于了解键入的长输入行的含义也非常有用,如以下示例所示:
清单 9. 好习惯 5 的示例:将反斜杠用于长输入
~ $ cd tmp/a/b/c || \> mkdir -p tmp/a/b/c && \> tar xvf -C tmp/a/b/c ~/archive.tar
或者,也可以使用以下配置:
清单 10. 好习惯 5 的替代示例:将反斜杠用于长输入
~ $ cd tmp/a/b/c \> || \> mkdir -p tmp/a/b/c \> && \> tar xvf -C tmp/a/b/c ~/archive.tar
然而,当您将输入行划分到多行上时,Shell 始终将其视为单个连续的行,因为它总是删除所有反斜杠和额外的空格。
注意:在大多数 Shell 中,当您按向上箭头键时,整个多行输入将重绘到单个长输入行上。
在列表中对命令分组
大多数 Shell 都具有在列表中对命令分组的方法,以便您能将它们的合计输出向下传递到某个管道,或者将其任何部分或全部流重定向到相同的地方。您一般可以通过在某个 Subshell 中运行一个命令列表或通过在当前 Shell 中运行一个命令列表来实现此目的。
在 Subshell 中运行命令列表
使用括号将命令列表包括在单个组中。这样做将在一个新的 Subshell 中运行命令,并允许您重定向或收集整组命令的输出,如以下示例所示:
清单 11. 好习惯 6 的示例:在 Subshell 中运行命令列表
~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && \> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) \> | mailx admin -S "Archive contents"
在此示例中,该存档的内容将提取到 tmp/a/b/c/ 目录中,同时将分组命令的输出(包括所提取文件的列表)通过邮件发送到地址 admin。
当您在命令列表中重新定义环境变量,并且您不希望将那些定义应用于当前 Shell 时,使用 Subshell 更可取。
在当前 Shell 中运行命令列表
将命令列表用大括号 ({}) 括起来,以在当前 Shell 中运行。确保在括号与实际命令之间包括空格,否则 Shell 可能无法正确解释括号。此外,还要确保列表中的最后一个命令以分号结尾,如以下示例所示:
清单 12. 好习惯 6 的另一个示例:在当前 Shell 中运行命令列表
~ $ { cp ${VAR}a . && chown -R guest.guest a && \> tar cvf newarchive.tar a; } | mailx admin -S "New archive"
在 find 之外使用 xargs
使用 xargs 工具作为筛选器,以充分利用从 find 命令挑选的输出。find 运行通常提供与某些条件匹配的文件列表。此列表被传递到 xargs 上,后者然后使用该文件列表作为参数来运行其他某些有用的命令,如以下示例所示:
清单 13. xargs 工具的经典用法示例
~ $ find some-file-criteria some-file-path | \> xargs some-great-command-that-needs-filename-arguments
然而,不要将 xargs 仅看作是 find 的辅助工具;它是一个未得到充分利用的工具之一,当您养成使用它的习惯时,将会希望进行所有试验,包括以下用法。
传递空格分隔的列表
在最简单的调用形式中,xargs 就像一个筛选器,它接受一个列表(每个成员分别在单独的行上)作为输入。该工具将那些成员放置在单个空格分隔的行上:
清单 14. xargs 工具产生的输出示例
~ $ xargsabcControl-Da b c~ $
您可以发送通过 xargs 来输出文件名的任何工具的输出,以便为其他某些接受文件名作为参数的工具获得参数列表,如以下示例所示:
清单 15. xargs 工具的使用示例
~/tmp $ ls -1 | xargsDecember_Report.pdf README a archive.tar mkdirhier.sh~/tmp $ ls -1 | xargs fileDecember_Report.pdf: PDF document, version 1.3README: ASCII texta: directoryarchive.tar: POSIX tar archivemkdirhier.sh: Bourne shell script text executable~/tmp $
xargs 命令不只用于传递文件名。您还可以在需要将文本筛选到单个行中的任何时候使用它:
清单 16. 好习惯 7 的示例:使用 xargs 工具来将文本筛选到单个行中
~/tmp $ ls -l | xargs-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \joe joe 3239 Sep 30 12:40 mkdirhier.sh~/tmp $
谨慎使用 xargs
从技术上讲,使用 xargs 很少遇到麻烦。缺省情况下,文件结束字符串是下划线 (_);如果将该字符作为单个输入参数来发送,则它之后的所有内容将被忽略。为了防止这种情况发生,可以使用 -e 标志,它在不带参数的情况下完全禁用结束字符串。
了解何时 grep 应该执行计数——何时应该绕过
避免通过管道将 grep 发送到 wc -l 来对输出行数计数。grep 的 -c 选项提供了对与特定模式匹配的行的计数,并且一般要比通过管道发送到 wc 更快,如以下示例所示:
清单 17. 好习惯 8 的示例:使用和不使用 grep 的行计数
~ $ time grep and tmp/a/longfile.txt | wc -l2811real 0m0.097suser 0m0.006ssys 0m0.032s~ $ time grep -c and tmp/a/longfile.txt2811real 0m0.013suser 0m0.006ssys 0m0.005s~ $
除了速度因素外,-c 选项还是执行计数的好方法。对于多个文件,带 -c 选项的 grep 返回每个文件的单独计数,每行一个计数,而针对 wc 的管道则提供所有文件的组合总计数。
然而,不管是否考虑速度,此示例都表明了另一个要避免地常见错误。这些计数方法仅提供包含匹配模式的行数——如果那就是您要查找的结果,这没什么问题。但是在行中具有某个特定模式的多个实例的情况下,这些方法无法为您提供实际匹配实例数量 的真实计数。归根结底,若要对实例计数,您还是要使用 wc 来计数。首先,使用 -o 选项(如果您的版本支持它的话)来运行 grep 命令。此选项仅 输出匹配的模式,每行一个模式,而不输出行本身。但是您不能将它与 -c 选项结合使用,因此要使用 wc -l 来对行计数,如以下示例所示:
清单 18. 好习惯 8 的示例:使用 grep 对模式实例计数
~ $ grep -o and tmp/a/longfile.txt | wc -l3402~ $
在此例中,调用 wc 要比第二次调用 grep 并插入一个虚拟模式(例如 grep -c)来对行进行匹配和计数稍快一点。
匹配输出中的某些字段,而不只是对行进行匹配
当您只希望匹配输出行中特定字段 中的模式时,诸如 awk 等工具要优于 grep。
下面经过简化的示例演示了如何仅列出 12 月修改过的文件。
清单 19. 坏习惯 9 的示例:使用 grep 来查找特定字段中的模式
~/tmp $ ls -l /tmp/a/b/c | grep Dec-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf-rw-r--r-- 1 root root 238 Dec 03 08:19 README-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar~/tmp $
在此示例中,grep 对行进行筛选,并输出其修改日期和名称中带 Dec 的所有文件。因此,诸如 December_Report.pdf 等文件是匹配的,即使它自从一月份以来还未修改过。这可能不是您希望的结果。为了匹配特定字段中的模式,最好使用 awk,其中的一个关系运算符对确切的字段进行匹配,如以下示例所示:
清单 20. 好习惯 9 的示例:使用 awk 来查找特定字段中的模式
~/tmp $ ls -l | awk '$6 == "Dec"'-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar-rw-r--r-- 1 root root 238 Dec 03 08:19 README~/tmp $
有关如何使用 awk 的更多详细信息,请参见参考资料。
停止对 cat 使用管道
grep 的一个常见的基本用法错误是通过管道将 cat 的输出发送到 grep 以搜索单个文件的内容。这绝对是不必要的,纯粹是浪费时间,因为诸如 grep 这样的工具接受文件名作为参数。您根本不需要在这种情况下使用 cat,如以下示例所示:
清单 21. 好习惯和坏习惯 10 的示例:使用带和不带 cat 的 grep
~ $ time cat tmp/a/longfile.txt | grep and2811real 0m0.015suser 0m0.003ssys 0m0.013s~ $ time grep and tmp/a/longfile.txt2811real 0m0.010suser 0m0.006ssys 0m0.004s~ $
此错误存在于许多工具中。由于大多数工具都接受使用连字符 (-) 的标准输入作为一个参数,因此即使使用 cat 来分散 stdin 中的多个文件,参数也通常是无效的。仅当您使用带多个筛选选项之一的 cat 时,才真正有必要在管道前首先执行连接。
结束语:养成好习惯
最好检查一下您的命令行习惯中的任何不良的使用模式。不良的使用模式会降低您的速度,并且通常会导致意外错误。本文介绍了 10 个新习惯,它们可以帮助您摆脱许多最常见的使用错误。养成这些好习惯是加强您的 UNIX 命令行技能的积极步骤。
原文地址 http://linux.chinaunix.net/docs/2007-03-08/3956.shtml
引言
当您经常使用某个系统时,往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式做事的习惯。有时,您的不良习惯甚至会导致出现混乱。 纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习惯的好习惯。本文提出了 10 个值得采用的 UNIX 命令行习惯——帮助您克服许多常见使用怪癖,并在该过程中提高命令行工作效率的好习惯。下面列出了这 10 个好习惯,之后对进行了更详细的描述。
采用 10 个好习惯
要采用的十个好习惯为:
在单个命令中创建目录树。
更改路径;不要移动存档。
将命令与控制操作符组合使用。
谨慎引用变量。
使用转义序列来管理较长的输入。
在列表中对命令分组。
在 find 之外使用 xargs。
了解何时 grep 应该执行计数——何时应该绕过。
匹配输出中的某些字段,而不只是对行进行匹配。
停止对 cat 使用管道。
在单个命令中创建目录树
清单 1 演示了最常见的 UNIX 坏习惯之一:一次定义一个目录树。
清单 1. 坏习惯 1 的示例:单独定义每个目录树
~ $ mkdir tmp~ $ cd tmp~/tmp $ mkdir a~/tmp $ cd a~/tmp/a $ mkdir b~/tmp/a $ cd b~/tmp/a/b/ $ mkdir c~/tmp/a/b/ $ cd c~/tmp/a/b/c $
使用 mkdir 的 -p 选项并在单个命令中创建所有父目录及其子目录要容易得多。但是即使对于知道此选项的管理员,他们在命令行上创建子目录时也仍然束缚于逐步创建每级子目录。花时间有意识地养成这个好习惯是值得的:
清单 2. 好习惯 1 的示例:使用一个命令来定义目录树
~ $ mkdir -p tmp/a/b/c
您可以使用此选项来创建整个复杂的目录树(在脚本中使用是非常理想的),而不只是创建简单的层次结构。例如:
清单 3. 好习惯 1 的另一个示例:使用一个命令来定义复杂的目录树
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
过去,单独定义目录的唯一借口是您的 mkdir 实现不支持此选项,但是在大多数系统上不再是这样了。IBM、AIX®、mkdir、GNU mkdir 和其他遵守单一 UNIX 规范 (Single UNIX Specification) 的系统现在都具有此选项。
对于仍然缺乏该功能的少数系统,您可以使用 mkdirhier 脚本(请参见参考资料),此脚本是执行相同功能的 mkdir 的包装:
~ $ mkdirhier project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
更改路径;不要移动存档
另一个不良的使用模式是将 .tar 存档文件移动到某个目录,因为该目录恰好是您希望在其中提取 .tar 文件的目录。其实您根本不需要这样做。您可以随心所欲地将任何 .tar 存档文件解压缩到任何目录——这就是 -C 选项的用途。在解压缩某个存档文件时,使用 -C 选项来指定要在其中解压缩该文件的目录:
清单 4. 好习惯 2 的示例:使用选项 -C 来解压缩 .tar 存档文件
~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
相对于将存档文件移动到您希望在其中解压缩它的位置,切换到该目录,然后才解压缩它,养成使用 -C 的习惯则更加可取——当存档文件位于其他某个位置时尤其如此。
将命令与控制操作符组合使用
您可能已经知道,在大多数 Shell 中,您可以在单个命令行上通过在命令之间放置一个分号 (;) 来组合命令。该分号是 Shell 控制操作符, 虽然它对于在单个命令行上将离散的命令串联起来很有用,但它并不适用于所有情况。例如,假设您使用分号来组合两个命令,其中第二个命令的正确执行完全依赖 于第一个命令的成功完成。如果第一个命令未按您预期的那样退出,第二个命令仍然会运行——结果会导致失败。相反,应该使用更适当的控制操作符(本文将描述 其中的部分操作符)。只要您的 Shell 支持它们,就值得养成使用它们的习惯。
仅当另一个命令返回零退出状态时才运行某个命令
使用 && 控制操作符来组合两个命令,以便仅当 第一个命令返回零退出状态时才运行第二个命令。换句话说,如果第一个命令运行成功,则第二个命令将运行。如果第一个命令失败,则第二个命令根本就不运行。例如:
清单 5. 好习惯 3 的示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
在此例中,存档的内容将提取到 ~/tmp/a/b/c 目录中,除非该目录不存在。如果该目录不存在,则 tar 命令不会运行,因此不会提取任何内容。
仅当另一个命令返回非零退出状态时才运行某个命令
类似地,|| 控制操作符分隔两个命令,并且仅当第一个命令返回非零退出状态时才运行第二个命令。换句话说,如果第一个命令成功,则第二个命令不会运行。如果第一个命令失败,则第二个命令才会 运行。在测试某个给定目录是否存在时,通常使用此操作符,如果该目录不存在,则创建它:
清单 6. 好习惯 3 的另一个示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c
您还可以组合使用本部分中描述的控制操作符。每个操作符都影响最后的命令运行:
清单 7. 好习惯 3 的组合示例:将命令与控制操作符组合使用
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar
谨慎引用变量
始终要谨慎使用 Shell 扩展和变量名称。一般最好将变量调用包括在双引号中,除非您有不这样做的足够理由。类似地,如果您直接在字母数字文本后面使用变量名称,则还要确保将该变 量名称包括在方括号 ([]) 中,以使其与周围的文本区分开来。否则,Shell 将把尾随文本解释为变量名称的一部分——并且很可能返回一个空值。清单 8 提供了变量的各种引用和非引用及其影响的示例。
清单 8. 好习惯 4 的示例:引用(和非引用)变量
~ $ ls tmp/a b~ $ VAR="tmp/*"~ $ echo $VARtmp/a tmp/b~ $ echo "$VAR"tmp/*~ $ echo $VARa~ $ echo "$VARa"~ $ echo "${VAR}a"tmp/*a~ $ echo ${VAR}atmp/a~ $
使用转义序列来管理较长的输入
您或许看到过使用反斜杠 (\) 来将较长的行延续到下一行的代码示例,并且您知道大多数 Shell 都将您通过反斜杠联接的后续行上键入的内容视为单个长行。然而,您可能没有在命令行中像通常那样利用此功能。如果您的终端无法正确处理多行回绕,或者您的 命令行比通常小(例如在提示符下有长路经的时候),反斜杠就特别有用。反斜杠对于了解键入的长输入行的含义也非常有用,如以下示例所示:
清单 9. 好习惯 5 的示例:将反斜杠用于长输入
~ $ cd tmp/a/b/c || \> mkdir -p tmp/a/b/c && \> tar xvf -C tmp/a/b/c ~/archive.tar
或者,也可以使用以下配置:
清单 10. 好习惯 5 的替代示例:将反斜杠用于长输入
~ $ cd tmp/a/b/c \> || \> mkdir -p tmp/a/b/c \> && \> tar xvf -C tmp/a/b/c ~/archive.tar
然而,当您将输入行划分到多行上时,Shell 始终将其视为单个连续的行,因为它总是删除所有反斜杠和额外的空格。
注意:在大多数 Shell 中,当您按向上箭头键时,整个多行输入将重绘到单个长输入行上。
在列表中对命令分组
大多数 Shell 都具有在列表中对命令分组的方法,以便您能将它们的合计输出向下传递到某个管道,或者将其任何部分或全部流重定向到相同的地方。您一般可以通过在某个 Subshell 中运行一个命令列表或通过在当前 Shell 中运行一个命令列表来实现此目的。
在 Subshell 中运行命令列表
使用括号将命令列表包括在单个组中。这样做将在一个新的 Subshell 中运行命令,并允许您重定向或收集整组命令的输出,如以下示例所示:
清单 11. 好习惯 6 的示例:在 Subshell 中运行命令列表
~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && \> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) \> | mailx admin -S "Archive contents"
在此示例中,该存档的内容将提取到 tmp/a/b/c/ 目录中,同时将分组命令的输出(包括所提取文件的列表)通过邮件发送到地址 admin。
当您在命令列表中重新定义环境变量,并且您不希望将那些定义应用于当前 Shell 时,使用 Subshell 更可取。
在当前 Shell 中运行命令列表
将命令列表用大括号 ({}) 括起来,以在当前 Shell 中运行。确保在括号与实际命令之间包括空格,否则 Shell 可能无法正确解释括号。此外,还要确保列表中的最后一个命令以分号结尾,如以下示例所示:
清单 12. 好习惯 6 的另一个示例:在当前 Shell 中运行命令列表
~ $ { cp ${VAR}a . && chown -R guest.guest a && \> tar cvf newarchive.tar a; } | mailx admin -S "New archive"
在 find 之外使用 xargs
使用 xargs 工具作为筛选器,以充分利用从 find 命令挑选的输出。find 运行通常提供与某些条件匹配的文件列表。此列表被传递到 xargs 上,后者然后使用该文件列表作为参数来运行其他某些有用的命令,如以下示例所示:
清单 13. xargs 工具的经典用法示例
~ $ find some-file-criteria some-file-path | \> xargs some-great-command-that-needs-filename-arguments
然而,不要将 xargs 仅看作是 find 的辅助工具;它是一个未得到充分利用的工具之一,当您养成使用它的习惯时,将会希望进行所有试验,包括以下用法。
传递空格分隔的列表
在最简单的调用形式中,xargs 就像一个筛选器,它接受一个列表(每个成员分别在单独的行上)作为输入。该工具将那些成员放置在单个空格分隔的行上:
清单 14. xargs 工具产生的输出示例
~ $ xargsabcControl-Da b c~ $
您可以发送通过 xargs 来输出文件名的任何工具的输出,以便为其他某些接受文件名作为参数的工具获得参数列表,如以下示例所示:
清单 15. xargs 工具的使用示例
~/tmp $ ls -1 | xargsDecember_Report.pdf README a archive.tar mkdirhier.sh~/tmp $ ls -1 | xargs fileDecember_Report.pdf: PDF document, version 1.3README: ASCII texta: directoryarchive.tar: POSIX tar archivemkdirhier.sh: Bourne shell script text executable~/tmp $
xargs 命令不只用于传递文件名。您还可以在需要将文本筛选到单个行中的任何时候使用它:
清单 16. 好习惯 7 的示例:使用 xargs 工具来将文本筛选到单个行中
~/tmp $ ls -l | xargs-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \joe joe 3239 Sep 30 12:40 mkdirhier.sh~/tmp $
谨慎使用 xargs
从技术上讲,使用 xargs 很少遇到麻烦。缺省情况下,文件结束字符串是下划线 (_);如果将该字符作为单个输入参数来发送,则它之后的所有内容将被忽略。为了防止这种情况发生,可以使用 -e 标志,它在不带参数的情况下完全禁用结束字符串。
了解何时 grep 应该执行计数——何时应该绕过
避免通过管道将 grep 发送到 wc -l 来对输出行数计数。grep 的 -c 选项提供了对与特定模式匹配的行的计数,并且一般要比通过管道发送到 wc 更快,如以下示例所示:
清单 17. 好习惯 8 的示例:使用和不使用 grep 的行计数
~ $ time grep and tmp/a/longfile.txt | wc -l2811real 0m0.097suser 0m0.006ssys 0m0.032s~ $ time grep -c and tmp/a/longfile.txt2811real 0m0.013suser 0m0.006ssys 0m0.005s~ $
除了速度因素外,-c 选项还是执行计数的好方法。对于多个文件,带 -c 选项的 grep 返回每个文件的单独计数,每行一个计数,而针对 wc 的管道则提供所有文件的组合总计数。
然而,不管是否考虑速度,此示例都表明了另一个要避免地常见错误。这些计数方法仅提供包含匹配模式的行数——如果那就是您要查找的结果,这没什么问题。但是在行中具有某个特定模式的多个实例的情况下,这些方法无法为您提供实际匹配实例数量 的真实计数。归根结底,若要对实例计数,您还是要使用 wc 来计数。首先,使用 -o 选项(如果您的版本支持它的话)来运行 grep 命令。此选项仅 输出匹配的模式,每行一个模式,而不输出行本身。但是您不能将它与 -c 选项结合使用,因此要使用 wc -l 来对行计数,如以下示例所示:
清单 18. 好习惯 8 的示例:使用 grep 对模式实例计数
~ $ grep -o and tmp/a/longfile.txt | wc -l3402~ $
在此例中,调用 wc 要比第二次调用 grep 并插入一个虚拟模式(例如 grep -c)来对行进行匹配和计数稍快一点。
匹配输出中的某些字段,而不只是对行进行匹配
当您只希望匹配输出行中特定字段 中的模式时,诸如 awk 等工具要优于 grep。
下面经过简化的示例演示了如何仅列出 12 月修改过的文件。
清单 19. 坏习惯 9 的示例:使用 grep 来查找特定字段中的模式
~/tmp $ ls -l /tmp/a/b/c | grep Dec-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf-rw-r--r-- 1 root root 238 Dec 03 08:19 README-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar~/tmp $
在此示例中,grep 对行进行筛选,并输出其修改日期和名称中带 Dec 的所有文件。因此,诸如 December_Report.pdf 等文件是匹配的,即使它自从一月份以来还未修改过。这可能不是您希望的结果。为了匹配特定字段中的模式,最好使用 awk,其中的一个关系运算符对确切的字段进行匹配,如以下示例所示:
清单 20. 好习惯 9 的示例:使用 awk 来查找特定字段中的模式
~/tmp $ ls -l | awk '$6 == "Dec"'-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar-rw-r--r-- 1 root root 238 Dec 03 08:19 README~/tmp $
有关如何使用 awk 的更多详细信息,请参见参考资料。
停止对 cat 使用管道
grep 的一个常见的基本用法错误是通过管道将 cat 的输出发送到 grep 以搜索单个文件的内容。这绝对是不必要的,纯粹是浪费时间,因为诸如 grep 这样的工具接受文件名作为参数。您根本不需要在这种情况下使用 cat,如以下示例所示:
清单 21. 好习惯和坏习惯 10 的示例:使用带和不带 cat 的 grep
~ $ time cat tmp/a/longfile.txt | grep and2811real 0m0.015suser 0m0.003ssys 0m0.013s~ $ time grep and tmp/a/longfile.txt2811real 0m0.010suser 0m0.006ssys 0m0.004s~ $
此错误存在于许多工具中。由于大多数工具都接受使用连字符 (-) 的标准输入作为一个参数,因此即使使用 cat 来分散 stdin 中的多个文件,参数也通常是无效的。仅当您使用带多个筛选选项之一的 cat 时,才真正有必要在管道前首先执行连接。
结束语:养成好习惯
最好检查一下您的命令行习惯中的任何不良的使用模式。不良的使用模式会降低您的速度,并且通常会导致意外错误。本文介绍了 10 个新习惯,它们可以帮助您摆脱许多最常见的使用错误。养成这些好习惯是加强您的 UNIX 命令行技能的积极步骤。
原文地址 http://linux.chinaunix.net/docs/2007-03-08/3956.shtml
因为需要在我的主机上支持J2EE和ROR,所以我就选择安装Apache,虽然有lighttpd这个选择,但我觉得还是Apache更稳定,毕竟我们公司都是用YApache的。
安装Apache
先把 Apache 2.0.59 下载到 /home/用户目录/Devtools 下,然后加压缩到/usr/local/src/目录
1 shell> cd /usr/local/src 2 shell> tar -zxvf httpd-2.0.59.tar.gz view plain | print | copy to clipboard | ? shell> cd /usr/local/src
shell> tar -zxvf httpd-2.0.59.tar.gz 然后进入httpd目录新建一个编译脚本,方便维护和以后升级。每次执行下面的setup.sh就可以安装了(前提是安装libxml2库、zlib库)
1 #!/bin/bash 2 ./configure --prefix=/opt/apache 3 --enable-so 4 --enable-rewrite 5 --enable-dav 6 --enable-info 7 --enable-cgid 8 --enable-mime-magic 9 --enable-alias 10 --enable-access 11 --enable-deflate 12 --enable-proxy 13 --enable-proxy-http 14 --enable-forward 15 16 make 17 make install view plain | print | copy to clipboard | ? #!/bin/bash
./configure --prefix=/opt/apache
--enable-so
--enable-rewrite
--enable-dav
--enable-info
--enable-cgid
--enable-mime-magic
--enable-alias
--enable-access
--enable-deflate
--enable-proxy
--enable-proxy-http
--enable-forward
make
make install
这样就可以把制定的模块静态编译到Apache里,而且也支持动态加载模块。
把Apache当作服务启动
1 shell> cp /opt/apache/bin/apachectl /etc/rc.d/init.d/httpd 2 shell> chmod 700 /etc/rc.d/init.d/httpd 3 shell> chkconfig –add httpd 4 shell> chkconfig –level 345 httpd on 5 shell> service httpd start 6 shell> netstat -atln view plain | print | copy to clipboard | ? shell> cp /opt/apache/bin/apachectl /etc/rc.d/init.d/httpd
shell> chmod 700 /etc/rc.d/init.d/httpd
shell> chkconfig –add httpd
shell> chkconfig –level 345 httpd on
shell> service httpd start
shell> netstat -atln
现在可以看到80端口已经开始监听了,访问自己的ip也可以看到Apache的欢迎界面:)
http://www.zhangzhang.net/articles/2006/09/03/Linux-Installs-Apache2
安装Apache
先把 Apache 2.0.59 下载到 /home/用户目录/Devtools 下,然后加压缩到/usr/local/src/目录
1 shell> cd /usr/local/src 2 shell> tar -zxvf httpd-2.0.59.tar.gz view plain | print | copy to clipboard | ? shell> cd /usr/local/src
shell> tar -zxvf httpd-2.0.59.tar.gz 然后进入httpd目录新建一个编译脚本,方便维护和以后升级。每次执行下面的setup.sh就可以安装了(前提是安装libxml2库、zlib库)
1 #!/bin/bash 2 ./configure --prefix=/opt/apache 3 --enable-so 4 --enable-rewrite 5 --enable-dav 6 --enable-info 7 --enable-cgid 8 --enable-mime-magic 9 --enable-alias 10 --enable-access 11 --enable-deflate 12 --enable-proxy 13 --enable-proxy-http 14 --enable-forward 15 16 make 17 make install view plain | print | copy to clipboard | ? #!/bin/bash
./configure --prefix=/opt/apache
--enable-so
--enable-rewrite
--enable-dav
--enable-info
--enable-cgid
--enable-mime-magic
--enable-alias
--enable-access
--enable-deflate
--enable-proxy
--enable-proxy-http
--enable-forward
make
make install
这样就可以把制定的模块静态编译到Apache里,而且也支持动态加载模块。
把Apache当作服务启动
1 shell> cp /opt/apache/bin/apachectl /etc/rc.d/init.d/httpd 2 shell> chmod 700 /etc/rc.d/init.d/httpd 3 shell> chkconfig –add httpd 4 shell> chkconfig –level 345 httpd on 5 shell> service httpd start 6 shell> netstat -atln view plain | print | copy to clipboard | ? shell> cp /opt/apache/bin/apachectl /etc/rc.d/init.d/httpd
shell> chmod 700 /etc/rc.d/init.d/httpd
shell> chkconfig –add httpd
shell> chkconfig –level 345 httpd on
shell> service httpd start
shell> netstat -atln
现在可以看到80端口已经开始监听了,访问自己的ip也可以看到Apache的欢迎界面:)
http://www.zhangzhang.net/articles/2006/09/03/Linux-Installs-Apache2
品位不凡,威严,略显高深,喜爱一切美丽的事物,易怒,固执,有些利己,但关心接近他的人。谦逊,但非常有野心,有才能,刻苦,是不甚令人满意的伴侣,朋友众多,树敌也多,是可以信赖的人
除非我们没有应该做得很多的事情,否则就不能完全享受懒惰。教育使人跳脱命运的掌控,成为一个独立自主的个人,成为真正的自己。
友谊之光像磷光,当四周漆黑之际,最为显露。你应该抛开所有不必要的担忧,只须全心全意去考虑事情的结果即可。
鄙吝一销,白云方可赠客;渣滓尽化,明月自来照人
除非我们没有应该做得很多的事情,否则就不能完全享受懒惰。教育使人跳脱命运的掌控,成为一个独立自主的个人,成为真正的自己。
友谊之光像磷光,当四周漆黑之际,最为显露。你应该抛开所有不必要的担忧,只须全心全意去考虑事情的结果即可。
鄙吝一销,白云方可赠客;渣滓尽化,明月自来照人
http://www.aboutplayer.com/ours/play.asp?song=风中有朵雨做的云%20%20&word=mp3,http://www.sncbxx.com/vdj0000/200641633240579.mp3?/9AEA2QPjXGphX1hmZe0eDgEFA-oZCSEPJ-f3CPs2.mp3,,[%B7%E7%D6%D0%D3%D0%B6%E4%D3%EA%D7%F6%B5%C4%D4%C6+%C3%CF%CD%A5%CE%AD]&si=%B7%E7%D6%D0%D3%D0%B6%E4%D3%EA%D7%F6%B5%C4%D4%C6;;%C3%CF%CD%A5%CE%AD;;0;;35934&lm=16777216


http://www.aboutplayer.com/ours/play.asp?song=我是一只牛%20%20&word=mp3,http://69587.cn/attachment/200707/YWtglaOasJedk6hhnpWYpZCTkpaqoqNllKGWoaVpNw$$.mp3,,[%CE%D2%CA%C7%D2%BB%D6%BB%C5%A3+%C1%F5%B5%C2%BB%AA]&si=%CE%D2%CA%C7%D2%BB%D6%BB%C5%A3;;%C1%F5%B5%C2%BB%AA;;69432;;69432&lm=16777216
http://www.happytreefriends.cn/quanji/famu.html
观望现在的IT市场,竞争愈趋激烈,很多商家在想尽各种手段提高自己的产品的品牌形象或者知名度的同时,却又做出了一幕幕恶性攻击其他对手的小人手段,让我们来回顾一下最近发生的这几档子事吧。。。。
既然大庭广众之下做了,所以也别嫌人说你。。。就首先说说你,HP,惠普。。5月初惠普在上海召开了全球移动技术峰会,参与大会的业内人事和很多媒体却成了一场闹剧的目击者。。。3个身穿着标有“戴尔”,“联想”,“宏基”logo的工程师人手一个对应品牌的笔记本电脑,放在了又绘有这3个厂家商标的展示台上,然后,进行了详细的拆解,踩踏等测试,最后,和放在一旁的惠普自己的笔记本来对比,堂而皇之地大肆阐述惠普的笔记本比对手在安全性能等多方面完全胜出的结论。。。此情此景,让下面的人不禁哑然。。。
记得当联想宣布收购IBM PC业务的时候taiwan惠普的董事长谁谁(记不太清了,一个女的)当时曾经喊出的企业口号,“要把IBM变不见”“连想(联想)都不用想”。让人记忆犹新。感觉他们已经把这些对手完全不放在眼里了,“戴尔只是我们众多的对手之一。。。最多不过是赶上或者模仿我们”,听听,多么牛的话啊,真的豪气冲天!现在在看看最新的这个事情,我只能说,惠普,你凭什么这么牛!
论到产品的技术,IBM(永远经典的小黑)等商家这些研发和申请专利可能是最被大家津津乐道的,说道售后,dell的理念和国内一些大型的IT企业恐怕都要强与HP,HP敢拿出来吼叫一下的,也就是这两年(从2005)换了可以个CEO后市场占有率的提高。。但是,它对整个行业的态度,转变之大却远远高与自身的的发展。
针对此次事件,被拿来和HP做比较的3大厂商第一时间内做出了反应。dell的一个负责人说的很中肯,“他们拿最新的产品和我们的老产品比,我们很愿意在新产品上和他们一起比较”,而宏基也表示“HP的笔记本性能只能与我们的老型号基本持平,不明白他们有什么好拿出来show的”。。。联想的态度则温和许多,“他们的行为应该去符合商业道德”。。。。
商业道德,这个东西恐怕是HP现在已经不考虑的事情了吧,为了业绩,道德,get away....
且就不说这次事件反映出的这几年HP产生的恶劣习性,这个由自己公司一手策划的测试(无第3方监督验证),它的公平和可靠性到底又有多少呢?看看HP的行动,真的难道他们不了解中国人也不是傻子吗?人的眼睛都是雪亮的,在激烈的IT商场中,一个企业应该保持怎样的一个心态去良性竞争,这是我们消费者和国家都应该关注的事情。。。
像HP这种有违不正当竞争法的做法,谁都不知道下一次会发生在什么时候什么地方,但是有一点肯定的是,这种事情,只会让我们更瞧不起HP,你可以超越你的对手,但你不能侮辱和陷害你的对手,因为这种店大欺客的事情,起码在中国,我们是不会买你的帐的!
既然大庭广众之下做了,所以也别嫌人说你。。。就首先说说你,HP,惠普。。5月初惠普在上海召开了全球移动技术峰会,参与大会的业内人事和很多媒体却成了一场闹剧的目击者。。。3个身穿着标有“戴尔”,“联想”,“宏基”logo的工程师人手一个对应品牌的笔记本电脑,放在了又绘有这3个厂家商标的展示台上,然后,进行了详细的拆解,踩踏等测试,最后,和放在一旁的惠普自己的笔记本来对比,堂而皇之地大肆阐述惠普的笔记本比对手在安全性能等多方面完全胜出的结论。。。此情此景,让下面的人不禁哑然。。。
记得当联想宣布收购IBM PC业务的时候taiwan惠普的董事长谁谁(记不太清了,一个女的)当时曾经喊出的企业口号,“要把IBM变不见”“连想(联想)都不用想”。让人记忆犹新。感觉他们已经把这些对手完全不放在眼里了,“戴尔只是我们众多的对手之一。。。最多不过是赶上或者模仿我们”,听听,多么牛的话啊,真的豪气冲天!现在在看看最新的这个事情,我只能说,惠普,你凭什么这么牛!
论到产品的技术,IBM(永远经典的小黑)等商家这些研发和申请专利可能是最被大家津津乐道的,说道售后,dell的理念和国内一些大型的IT企业恐怕都要强与HP,HP敢拿出来吼叫一下的,也就是这两年(从2005)换了可以个CEO后市场占有率的提高。。但是,它对整个行业的态度,转变之大却远远高与自身的的发展。
针对此次事件,被拿来和HP做比较的3大厂商第一时间内做出了反应。dell的一个负责人说的很中肯,“他们拿最新的产品和我们的老产品比,我们很愿意在新产品上和他们一起比较”,而宏基也表示“HP的笔记本性能只能与我们的老型号基本持平,不明白他们有什么好拿出来show的”。。。联想的态度则温和许多,“他们的行为应该去符合商业道德”。。。。
商业道德,这个东西恐怕是HP现在已经不考虑的事情了吧,为了业绩,道德,get away....
且就不说这次事件反映出的这几年HP产生的恶劣习性,这个由自己公司一手策划的测试(无第3方监督验证),它的公平和可靠性到底又有多少呢?看看HP的行动,真的难道他们不了解中国人也不是傻子吗?人的眼睛都是雪亮的,在激烈的IT商场中,一个企业应该保持怎样的一个心态去良性竞争,这是我们消费者和国家都应该关注的事情。。。
像HP这种有违不正当竞争法的做法,谁都不知道下一次会发生在什么时候什么地方,但是有一点肯定的是,这种事情,只会让我们更瞧不起HP,你可以超越你的对手,但你不能侮辱和陷害你的对手,因为这种店大欺客的事情,起码在中国,我们是不会买你的帐的!
经过一天的研究,PHP与Mysql的编码问题终于解决,现将我的研究成果与大家分享:
1)读取mysql前设置编码,代码如下:
mysql_query("SET NAMES 'utf-8'",$database->_resource);
mysql_query("SET CHARACTER SET utf-8",$database->_resource);
但不是总有效,设置gb2312就不行;
2)使用iconv函数转换编码,但是Php默认不支持;
3)使用mb_convert_encoding函数转换编码,有些虚拟主机不支持;
4)使用博大公司写的http://zeal.newmenbase.net/attachment/chinese.rar转换编码,可以避免以上出现的问题,为较好的解决方案。 将UTF8转换为GB2312的代码如下:
include("class.Chinese.php");
$chs = new Chinese("UTF8","GB2312",trim($title));
$title = $chs->ConvertIT();
1)读取mysql前设置编码,代码如下:
mysql_query("SET NAMES 'utf-8'",$database->_resource);
mysql_query("SET CHARACTER SET utf-8",$database->_resource);
但不是总有效,设置gb2312就不行;
2)使用iconv函数转换编码,但是Php默认不支持;
3)使用mb_convert_encoding函数转换编码,有些虚拟主机不支持;
4)使用博大公司写的http://zeal.newmenbase.net/attachment/chinese.rar转换编码,可以避免以上出现的问题,为较好的解决方案。 将UTF8转换为GB2312的代码如下:
include("class.Chinese.php");
$chs = new Chinese("UTF8","GB2312",trim($title));
$title = $chs->ConvertIT();
PHP转化GB2312到UTF-8这个问题已经困扰我好几天了,今天终于解决这个问题了。
这几天在网上查了很多的资料,说法不一,也有自己写函数的,看起来实在是复杂,在网上查资料的时候无意间发现了iconv()这个函数,其实找了这么几天,这个函数就是专门用来做编码转化的,直接用它转化为自己想要的编码然后重新更新数据库就可以了。
函数的具体使用是:iconv("UTF-8", "GB2312","待转化的字符串或变量");
里芬奇,通过对话筒吹哨子来入侵电话系统。有5岁小骇客的酷刑:6年不准碰任何电子设备,1. 6 年之内不得自由使用电子产品,所有上网行为必须在监控之下才得以进行。
2. 必须提交所有帐户的帐号、密码。
3. 规范期间不得与骇客组织 UGNazi、Anonymous 或其他骇客成员联系。
————————————————————————————————————
看过一部国产制作宏大的关于部队信息化建设的连续剧.场面颇为宏大,不知动用谁的力量请来了坦克,装甲车,直升机.然后又花费了N多纳税人的钱买来火药加弹药充斥场面.冲着导演这份精神也得赞赏下.
不过,导演在描写一位从美国麻......麻省理工回来的计算机高手(批注: 还是个帅哥)黑网吧电脑时.让我啼笑皆非,导演以非常"简洁"的手法远距离拍摄显示器后背,然后只见高手双手以不规则运动手法敲击键盘,几近秒杀的速度, 电脑全部启动.然后看见明显是WORD编排的字体逐步出现:"你的电脑已全部被我控制......"
以我当时的幼稚头脑都会奇怪导演何以如此简陋拍摄.让我很是怀疑这位高手的身份.同时也为祖国部队的未来担忧,后来长见识了后,也琢磨出来了,不是人家高手无能,要么,是导演电脑水平太次,或者根本不重视这方面细节,要么,黑客这个字眼就是个禁区.导演只好糊弄下过关就OK了.
黑客绝对是个吸引眼球的字眼,君不见,黑客教学光盘,黑客教程图书卖到手软还会惹来众生骚动.网上跟黑客沾边的文章都能点击率飙升,指不定我这篇文章都能沾点光呢.我也算个黑客崇拜迷,看到新闻里报道一位根正苗红发展势头旺盛的青年因为黑了电脑盗取资料而被判刑,在满场惋惜和嘲笑的叹息声中,我却是抛出滔滔江水般的敬仰之心.巴不得立马磕头行八拜之礼拜其为师.渴望艺成之后,能牵着天龙八部,拿着倚天和屠龙,相伴神雕侠侣一起笑傲江湖.当然.相信有我之心的人不在少数.
缘何如此?黑客从某方面来说,代表着技术巅峰,对于IT人来说,踏到这个巅峰就像拿到国家科技奖般令人万种钦佩.就像披红戴帽,骑马游街般令人争相敬仰.虽然,其泡MM效果还比不上帮她装个系统,杀个小毒.同时,成为黑客也意味着这辈子你注定会是个抢手货.挥动下手指就能享受白领高薪待遇.在如今我们这个人才和木材匮乏的国家,你将是个成功的典范.
不过,黑客所以为黑,而不是白.全在于它的不请自入.跟小偷的原理很相像.盗取资料数据还不让你知道.手段高超者,事后连脚印指纹唇纹头发脚毛都不留一点.叫你后院着火叫苦连天之际却不知哪家阿猫阿狗干的.论卑鄙可恶程度,确实犹甚于小偷小摸.这可能也是导演为什么宁愿花血本请来飞机却不敢舍小钱请个黑客顾问的原因吧.
我也很想成了个黑客.像小榕样,只要花个几分钟,就能黑一个网站.不过,我也知道,技术到了那个程度,已是不屑于干这活了.网站被黑往往要么是某个菜鸟级别黑客在练练手,要么就是某个后台组织带有牟利性的行为.不管是哪个原因,做为个IT人,还是不要去以身试法了.要知道现在的网络警察叔叔一天24小时拿着先进性武器,读着先进性教育在网络上监督着呢.要是实在想锻炼自己的能力, 干脆多借几台电脑自己在家随便整.
因为,黑客,可是个禁区哦.
2. 必须提交所有帐户的帐号、密码。
3. 规范期间不得与骇客组织 UGNazi、Anonymous 或其他骇客成员联系。
————————————————————————————————————
看过一部国产制作宏大的关于部队信息化建设的连续剧.场面颇为宏大,不知动用谁的力量请来了坦克,装甲车,直升机.然后又花费了N多纳税人的钱买来火药加弹药充斥场面.冲着导演这份精神也得赞赏下.
不过,导演在描写一位从美国麻......麻省理工回来的计算机高手(批注: 还是个帅哥)黑网吧电脑时.让我啼笑皆非,导演以非常"简洁"的手法远距离拍摄显示器后背,然后只见高手双手以不规则运动手法敲击键盘,几近秒杀的速度, 电脑全部启动.然后看见明显是WORD编排的字体逐步出现:"你的电脑已全部被我控制......"
以我当时的幼稚头脑都会奇怪导演何以如此简陋拍摄.让我很是怀疑这位高手的身份.同时也为祖国部队的未来担忧,后来长见识了后,也琢磨出来了,不是人家高手无能,要么,是导演电脑水平太次,或者根本不重视这方面细节,要么,黑客这个字眼就是个禁区.导演只好糊弄下过关就OK了.
黑客绝对是个吸引眼球的字眼,君不见,黑客教学光盘,黑客教程图书卖到手软还会惹来众生骚动.网上跟黑客沾边的文章都能点击率飙升,指不定我这篇文章都能沾点光呢.我也算个黑客崇拜迷,看到新闻里报道一位根正苗红发展势头旺盛的青年因为黑了电脑盗取资料而被判刑,在满场惋惜和嘲笑的叹息声中,我却是抛出滔滔江水般的敬仰之心.巴不得立马磕头行八拜之礼拜其为师.渴望艺成之后,能牵着天龙八部,拿着倚天和屠龙,相伴神雕侠侣一起笑傲江湖.当然.相信有我之心的人不在少数.
缘何如此?黑客从某方面来说,代表着技术巅峰,对于IT人来说,踏到这个巅峰就像拿到国家科技奖般令人万种钦佩.就像披红戴帽,骑马游街般令人争相敬仰.虽然,其泡MM效果还比不上帮她装个系统,杀个小毒.同时,成为黑客也意味着这辈子你注定会是个抢手货.挥动下手指就能享受白领高薪待遇.在如今我们这个人才和木材匮乏的国家,你将是个成功的典范.
不过,黑客所以为黑,而不是白.全在于它的不请自入.跟小偷的原理很相像.盗取资料数据还不让你知道.手段高超者,事后连脚印指纹唇纹头发脚毛都不留一点.叫你后院着火叫苦连天之际却不知哪家阿猫阿狗干的.论卑鄙可恶程度,确实犹甚于小偷小摸.这可能也是导演为什么宁愿花血本请来飞机却不敢舍小钱请个黑客顾问的原因吧.
我也很想成了个黑客.像小榕样,只要花个几分钟,就能黑一个网站.不过,我也知道,技术到了那个程度,已是不屑于干这活了.网站被黑往往要么是某个菜鸟级别黑客在练练手,要么就是某个后台组织带有牟利性的行为.不管是哪个原因,做为个IT人,还是不要去以身试法了.要知道现在的网络警察叔叔一天24小时拿着先进性武器,读着先进性教育在网络上监督着呢.要是实在想锻炼自己的能力, 干脆多借几台电脑自己在家随便整.
因为,黑客,可是个禁区哦.
有这样一个男子
他从不轻易动情
怀着一颗金子般赤诚的心
每天都在漫无目的地等
若说没有神明的眷顾
那又怎可让人心悦服诚
将要离开那片灰色人生的时候
却收获到了----爱情
迟疑的心总会萌动
看上的人啊,机缘握紧
经过小心翼翼的试探
成全了两人甜蜜的触碰
她上学在西,他工作去东
隔着千里之外的天空
他不知道
自己会时常出现在深夜她的日记中
时过境移
二人同城
以前再平常不过的活动
因为她(他),有了不同
她活泼,他文静
她爱撒娇,他有时候不知道怎么去哄
可一丝不差的想法和语言
温馨地说明
他们是一对几世才修来的精灵
谈到了柴米油盐
仙女偶尔也会失去耐性
经历了好多活生生的痛
他的婆
伤在心里却还朝他做出微笑的表情
就是这样一个女子
她从不轻易动情
怀着一颗金子般赤诚的心
跟着她认定的那个男生
.......(未完待续)
他从不轻易动情
怀着一颗金子般赤诚的心
每天都在漫无目的地等
若说没有神明的眷顾
那又怎可让人心悦服诚
将要离开那片灰色人生的时候
却收获到了----爱情
迟疑的心总会萌动
看上的人啊,机缘握紧
经过小心翼翼的试探
成全了两人甜蜜的触碰
她上学在西,他工作去东
隔着千里之外的天空
他不知道
自己会时常出现在深夜她的日记中
时过境移
二人同城
以前再平常不过的活动
因为她(他),有了不同
她活泼,他文静
她爱撒娇,他有时候不知道怎么去哄
可一丝不差的想法和语言
温馨地说明
他们是一对几世才修来的精灵
谈到了柴米油盐
仙女偶尔也会失去耐性
经历了好多活生生的痛
他的婆
伤在心里却还朝他做出微笑的表情
就是这样一个女子
她从不轻易动情
怀着一颗金子般赤诚的心
跟着她认定的那个男生
.......(未完待续)
如果是真正的黑客,你们一定会知道
1.发明TCP/IP的是美国人 .
2. LINUX的作者,linus大侠现在也在美国工作 .
3. OPEN SOURCE的开创人 STALLMAN 也是美国人,他提倡软件不分国界的自由的精神 .
4. FREE BSD 的作者是美国人,他的SOURCE 让真正的黑客受惠
5.世界级软件科学大师 tanabaom,也是美国的客座教授,他的minix,ameba和教材教育了全世界几代优秀的黑客。提到这些,我不是崇美,不是恐美,只想证明:
1.很多大师级的美国黑客,他们的理念恰恰是自由、开放、无国界;他们的自由软件,开放源码,是与政治无关的,更不会用他们进行敲诈勒索,它是超越国界的,给全世界人们带来福音。
2.真正的黑客精神,是要让人类超越计算机,成为计算机的主宰,从而成为自由的。
所有的黑客同胞们:
当你们正通过下载外国人或自己人写的黑客工具,来攻击我们自己国家优秀商业网站并乐此不疲时,你们是否想过:
此时此刻,印度的软件人士,正在努力提高软件技术,他们的软件水平、软件产业已经超越了中国;难道我们不应该痛苦地承认这个现实,并且奋起直追吗?中国发明了火药,但是缺少研究精神,结果是被西方人研究改进了以后打中国,这样的教训还少吗?中国向来不缺爱国热情,但是我们缺少对科技的认真研究精神,知耻而后勇的追赶精神。难道我们不愿意承认这一点吗?从战术上来说,过早暴露自己的实力是不聪明的;冒昧地问一句,如果真的战争爆发了,您的黑客技术完全掌握好了吗,您已经为那一天的到来在进行技术储备吗?
您有没有想向那些真正为中国科技做出杰出贡献的科学家如钱学森学习呢?
所有黑客同胞们:
请把你们的聪明才智用到真正提高你们的水平,对国家的强大有帮助的地方吧:
如果您愿意对国家有所贡献:
1.中国的863计划中有一个重点研究项目: 并行计算,分布计算,向量计算。您愿意研究它吗?
2. 作为现代通讯技术的一个根本数学基础,大合数的快速因子分解,还是一个难题。您愿意研究它吗?
如果您想提高技术,对中国的软件技术有所贡献:
1.研究 VC,JAVA
2.研究数据结构,去考高级程序员
3. 研究操作系统,读minix source code
4. 研究tcp/ip, rfc文档
5. 通读linux, 才算达到黑客境界
6. 学习 UML,ROSE,软件工程,达到系统分析员水平。
如果您对提高中国的科技有兴趣,去研究生物基因,材料技术(纳米技术),计算机技术,航天技术……
我的黑客同胞们:
一个真正的民族主义者,不是义和团,不是太平天国,不是闭关锁国,不是盲目仇外,不是不敢正视自己民族和文化的丑陋和缺点。真正的民族主义者是成熟的、清醒的、理智的、无私的、务实的民族主义。真正的民族主义者不是极端份子,不是破坏者。
真正的民族主义者以追求本民族——中华民族的利益最大化为目标、准则、信念。判断一个人是不是真正的民族主义者,判断标准很简单:看他是给本民族的整体利益带来好处,还是损害民族利益。真正的民族主义者最务实,因为他知道坚持原则,同时又懂得策略。
让我们成为真正的顶尖黑客!让我们成为真正的民族主义者!要知道你是应该是正义的!
1.发明TCP/IP的是美国人 .
2. LINUX的作者,linus大侠现在也在美国工作 .
3. OPEN SOURCE的开创人 STALLMAN 也是美国人,他提倡软件不分国界的自由的精神 .
4. FREE BSD 的作者是美国人,他的SOURCE 让真正的黑客受惠
5.世界级软件科学大师 tanabaom,也是美国的客座教授,他的minix,ameba和教材教育了全世界几代优秀的黑客。提到这些,我不是崇美,不是恐美,只想证明:
1.很多大师级的美国黑客,他们的理念恰恰是自由、开放、无国界;他们的自由软件,开放源码,是与政治无关的,更不会用他们进行敲诈勒索,它是超越国界的,给全世界人们带来福音。
2.真正的黑客精神,是要让人类超越计算机,成为计算机的主宰,从而成为自由的。
所有的黑客同胞们:
当你们正通过下载外国人或自己人写的黑客工具,来攻击我们自己国家优秀商业网站并乐此不疲时,你们是否想过:
此时此刻,印度的软件人士,正在努力提高软件技术,他们的软件水平、软件产业已经超越了中国;难道我们不应该痛苦地承认这个现实,并且奋起直追吗?中国发明了火药,但是缺少研究精神,结果是被西方人研究改进了以后打中国,这样的教训还少吗?中国向来不缺爱国热情,但是我们缺少对科技的认真研究精神,知耻而后勇的追赶精神。难道我们不愿意承认这一点吗?从战术上来说,过早暴露自己的实力是不聪明的;冒昧地问一句,如果真的战争爆发了,您的黑客技术完全掌握好了吗,您已经为那一天的到来在进行技术储备吗?
您有没有想向那些真正为中国科技做出杰出贡献的科学家如钱学森学习呢?
所有黑客同胞们:
请把你们的聪明才智用到真正提高你们的水平,对国家的强大有帮助的地方吧:
如果您愿意对国家有所贡献:
1.中国的863计划中有一个重点研究项目: 并行计算,分布计算,向量计算。您愿意研究它吗?
2. 作为现代通讯技术的一个根本数学基础,大合数的快速因子分解,还是一个难题。您愿意研究它吗?
如果您想提高技术,对中国的软件技术有所贡献:
1.研究 VC,JAVA
2.研究数据结构,去考高级程序员
3. 研究操作系统,读minix source code
4. 研究tcp/ip, rfc文档
5. 通读linux, 才算达到黑客境界
6. 学习 UML,ROSE,软件工程,达到系统分析员水平。
如果您对提高中国的科技有兴趣,去研究生物基因,材料技术(纳米技术),计算机技术,航天技术……
我的黑客同胞们:
一个真正的民族主义者,不是义和团,不是太平天国,不是闭关锁国,不是盲目仇外,不是不敢正视自己民族和文化的丑陋和缺点。真正的民族主义者是成熟的、清醒的、理智的、无私的、务实的民族主义。真正的民族主义者不是极端份子,不是破坏者。
真正的民族主义者以追求本民族——中华民族的利益最大化为目标、准则、信念。判断一个人是不是真正的民族主义者,判断标准很简单:看他是给本民族的整体利益带来好处,还是损害民族利益。真正的民族主义者最务实,因为他知道坚持原则,同时又懂得策略。
让我们成为真正的顶尖黑客!让我们成为真正的民族主义者!要知道你是应该是正义的!
跟我的在乡下老家居住的弟弟(今年才高考完)说话,谈谈他想报考的专业,就不可避免的说到了计算机专业,IT这些。。。由于生活在小村镇里,虽然对盛大,网易,9城等有所耳闻,但对他们的发家史和掌门人也确实不怎么知道了。
那我就得跟弟弟好好说说啊,毕竟中国前100大富翁有多少都是搞IT的啊。。。
恩恩,盛大,老总陈天桥,复旦毕业,搞《传奇》起家(这个他知道。。)
9城,老总朱骏,海外归来,搞虚拟社区没什么名堂,代理的《奇迹》大家耳熟能详 (这 个。。。还能衍生到现在的《奇迹世界》),到眼下正似火骄阳般的《魔兽世界》,这个,比雷锋是谁都被孩子们知道的多。。
征途,老板史玉柱,从“今年过年不收礼”转到现在的《征途》,号称以后就吃网游这块饭的传奇人物。。。。
网易,丁磊,《梦幻西游》,应该是最早的达到百万人同时在线的国产游戏,现在主力业务也放在了网游上。。
还有若干。。。。。!!!等等等等。。。。
表弟就会问啦,原来全是做网络游戏的啊!。。。。我说,恩,啊,对啊。这个,这个,挣钱啊。。。
乡下地方小,但这几年也开了不少家网吧了(而且大部分都没营业执照),我偶尔去了几次,发现也是小小的孩子们在大呼小叫的PK啊,打宝啊之类的。。。这几十万人百万人在线,有多少IP是出自我们这些小县城深山沟的啊。。。
表弟不禁奇怪,那些每天跑到小网吧的同学或者小孩子,学习可都不怎么样啊,怎么还会挣大钱。。我说,恩恩,人家开网络公司的这些老板可不玩。。。
“总之,表弟,你要知道,你要学计算机的话,现在这个时代,想创业很难了,小的公司每天都要破产很多很多家,也不是那种做个不错的个人网站就能很容易吸引到风险投资什么的年代了。。。不过,现在的方向很广,需要的开发操作维护人员还是供不应求,就算是做网游,也得要好多编程的,测试的,维护的。。。”
说了半天怎么又提到这个上面了。。。
前两天看新闻,央视,有个什么行走学校虐待里面的学生,像对待牲畜一样的任意糟践他们的身体和灵魂,那里面,有很多学生是被家长送去戒网瘾的。。。我为这些孩子,感到深深的同情和难过。。。。
做事,有因有果,有回报,有报应。。。。
对于网络游戏,我一点好感也没有了,就算我以后也是从事IT行业的话,起码我,绝对不会沾到这个领域的了。呵呵。。。
这个时代,也是英雄出少年的时代,有几岁就打台球打成世界冠军的,有从大学里退学打竞技游戏拿到大奖的,但,在我眼力,只是佩服他们各自的毅力和行动,但,我绝不赞赏他们的做法,毕竟,99%的人都是有着相同的所谓天赋和资本,那些人的路,我们不能盲从,自己的特点自己要把握清楚。我们需要偶像,也会崇拜偶像,但,绝对不要跟着这些偶像随意的进入,重点就是,学习他们的韧性和毅力,走适合自己的线路!
好像有几个打魔兽的高手的形象就要被印到可乐罐上了,希望少些孩子问这些是谁谁干什么的,真要问,你就说是运动员好了。呵呵。。
那我就得跟弟弟好好说说啊,毕竟中国前100大富翁有多少都是搞IT的啊。。。
恩恩,盛大,老总陈天桥,复旦毕业,搞《传奇》起家(这个他知道。。)
9城,老总朱骏,海外归来,搞虚拟社区没什么名堂,代理的《奇迹》大家耳熟能详 (这 个。。。还能衍生到现在的《奇迹世界》),到眼下正似火骄阳般的《魔兽世界》,这个,比雷锋是谁都被孩子们知道的多。。
征途,老板史玉柱,从“今年过年不收礼”转到现在的《征途》,号称以后就吃网游这块饭的传奇人物。。。。
网易,丁磊,《梦幻西游》,应该是最早的达到百万人同时在线的国产游戏,现在主力业务也放在了网游上。。
还有若干。。。。。!!!等等等等。。。。
表弟就会问啦,原来全是做网络游戏的啊!。。。。我说,恩,啊,对啊。这个,这个,挣钱啊。。。
乡下地方小,但这几年也开了不少家网吧了(而且大部分都没营业执照),我偶尔去了几次,发现也是小小的孩子们在大呼小叫的PK啊,打宝啊之类的。。。这几十万人百万人在线,有多少IP是出自我们这些小县城深山沟的啊。。。
表弟不禁奇怪,那些每天跑到小网吧的同学或者小孩子,学习可都不怎么样啊,怎么还会挣大钱。。我说,恩恩,人家开网络公司的这些老板可不玩。。。
“总之,表弟,你要知道,你要学计算机的话,现在这个时代,想创业很难了,小的公司每天都要破产很多很多家,也不是那种做个不错的个人网站就能很容易吸引到风险投资什么的年代了。。。不过,现在的方向很广,需要的开发操作维护人员还是供不应求,就算是做网游,也得要好多编程的,测试的,维护的。。。”
说了半天怎么又提到这个上面了。。。
前两天看新闻,央视,有个什么行走学校虐待里面的学生,像对待牲畜一样的任意糟践他们的身体和灵魂,那里面,有很多学生是被家长送去戒网瘾的。。。我为这些孩子,感到深深的同情和难过。。。。
做事,有因有果,有回报,有报应。。。。
对于网络游戏,我一点好感也没有了,就算我以后也是从事IT行业的话,起码我,绝对不会沾到这个领域的了。呵呵。。。
这个时代,也是英雄出少年的时代,有几岁就打台球打成世界冠军的,有从大学里退学打竞技游戏拿到大奖的,但,在我眼力,只是佩服他们各自的毅力和行动,但,我绝不赞赏他们的做法,毕竟,99%的人都是有着相同的所谓天赋和资本,那些人的路,我们不能盲从,自己的特点自己要把握清楚。我们需要偶像,也会崇拜偶像,但,绝对不要跟着这些偶像随意的进入,重点就是,学习他们的韧性和毅力,走适合自己的线路!
好像有几个打魔兽的高手的形象就要被印到可乐罐上了,希望少些孩子问这些是谁谁干什么的,真要问,你就说是运动员好了。呵呵。。
在当今广阔的互联网上,有这么一种无需花费或者花费很低,并且没什么风险,可以避开所有的防护系统,在任何操作系统上都能进行,不会留下犯罪痕迹,几乎百分之百有效,最重要的是人们还没有普遍意识到的东西;它可以只用一个电话,也可以层层布局;可以只花几分钟时间,也可以花上好几年;可以只由一个人完成,也可以团队合作。。。
是的,我们习惯用IT行业中“没有硝烟的战争”来诠释这门高深莫测的“欺骗艺术”----社会工程学!
还是一贯作风,先和大家一起了解了解这个信息安全对抗的新对手吧。
20世纪70年代末期,一个叫做斯坦利·马克·瑞夫金的年轻人成功地实施了史上最大的银行劫案。他没有雇用帮手、没有使用武器、没有天衣无缝的行动计划,“甚至无需计算机的协助”,仅仅依靠一个进入电汇室的机会并打了三个电话,便成功地将一千零二十万美元转入自己在国外的个人账户。“奇怪的是,这一事件却以‘最大的计算机诈骗案’为名,收录在吉尼斯世界纪录中。斯坦利·瑞夫金利用的就是欺骗的艺术,这种技巧我们现在把它称为—社会工程学。” (源自internet资料)
专家们的完整定义是:社会工程学(Social Engineering),一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的手法。
在社会工程学中,它不单单是一个技术性的问题,更是关于人的问题。
人,这个世界中最为复杂和 事物,常常说“只有想不到的,没有做不到的”,就算作为一个自认为最有警惕性最小心的人,一样会被高明的社会工程学手段所蒙蔽欺骗。。。
大家对电影《疯狂的石头》里的“大搬家”有印象吧,就简简单单的几句话几个沉稳的表演,很容易的将两方甚者3方人员全部打包骗倒。。。呵呵,这个,很典型的社会工程学。在我身边发生过的,也有这么一个例子,有个玩网游的朋友,在游戏里认识了一个过命交情的网友,他们从一级一起练起,中间每天花很多时间来练级打包,很多时候那个搭档都会把好的装备物品毫不吝啬的给我这个朋友,所以我的这个朋友很放心的将自己的帐号密码都告诉了那个人,因为要上班,所以那人也拿他的号升了不少的经验打了不少的东西。直到我的这个朋友,级别很高了以后,认识了很多其他的铁哥们,身上的装备也通过各种渠道(人家送啊,自己买啊)提升到一定的档次后,终于有一天,伴随着的就是被那个十分信任的好友洗劫一空,并拿着他的人物的身份向其他网友欺骗了不少金币和装备。。。我的这个朋友,经历了这一幕,对游戏的乐趣一下荡然无存了。。。呵呵。
你看,这个伪装成“发小”(从1级一起玩到满级)的“高手”(绝对的社会心理学的高手),城府是多么的深,并且有着多么伟大的耐心啊。。。
E时代的信任危机,已不是简简单单的对某个软件某个系统灾难的恐惧了,在这个企业和个人都逐步把灾难和备份机制完善化的时候,博大精深的心理学倒是冒出了头!
网站钓鱼、病毒、间谍软件、银行木马,黑客们带着和善的面具,早已为你布下了无孔不入的层层陷阱。。。而你并不知道,他们什么时候会对你耍出新招或者突然下手。
这里,我们为了对付社会工程攻击,必须组建“由人组成的防火墙”,同时抛弃网络架构刀枪不入之类的幻想,即使你的企业部署了严密的软件硬件防火墙等安全系统。
互联网络专家给出的应策是:
一,建立事故响应小组,事故响应小组应当由来自公司不同关键部门的知识渊博的员工组成,他们要经过良好培训并随时准备对社会工程攻击做出反应,有效的分析出入侵的目的与方式。
二,制定规章与教育相结合,对员工进行培训,建立雇员参与机制,制定简单的规则,确定什么是敏感信息,提高安全意识。
三,模拟入侵程序,公司利用模拟环境和测试,能有效地评价安全控制措施,来制定相应的对策和解决方法。
四,应用其他技术措施,比如电话录音、客户访问记录、文档等级制度。
最安全的计算机是那台没有连到网络上的单机,社会工程学能做到的,是让你自愿自发的把这台机器接上RJ45插头联入到网络中。。。因此,我们要面对的,还会很多,要提防和注意的,也还是很多很多!。。。
是的,我们习惯用IT行业中“没有硝烟的战争”来诠释这门高深莫测的“欺骗艺术”----社会工程学!
还是一贯作风,先和大家一起了解了解这个信息安全对抗的新对手吧。
20世纪70年代末期,一个叫做斯坦利·马克·瑞夫金的年轻人成功地实施了史上最大的银行劫案。他没有雇用帮手、没有使用武器、没有天衣无缝的行动计划,“甚至无需计算机的协助”,仅仅依靠一个进入电汇室的机会并打了三个电话,便成功地将一千零二十万美元转入自己在国外的个人账户。“奇怪的是,这一事件却以‘最大的计算机诈骗案’为名,收录在吉尼斯世界纪录中。斯坦利·瑞夫金利用的就是欺骗的艺术,这种技巧我们现在把它称为—社会工程学。” (源自internet资料)
专家们的完整定义是:社会工程学(Social Engineering),一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的手法。
在社会工程学中,它不单单是一个技术性的问题,更是关于人的问题。
人,这个世界中最为复杂和 事物,常常说“只有想不到的,没有做不到的”,就算作为一个自认为最有警惕性最小心的人,一样会被高明的社会工程学手段所蒙蔽欺骗。。。
大家对电影《疯狂的石头》里的“大搬家”有印象吧,就简简单单的几句话几个沉稳的表演,很容易的将两方甚者3方人员全部打包骗倒。。。呵呵,这个,很典型的社会工程学。在我身边发生过的,也有这么一个例子,有个玩网游的朋友,在游戏里认识了一个过命交情的网友,他们从一级一起练起,中间每天花很多时间来练级打包,很多时候那个搭档都会把好的装备物品毫不吝啬的给我这个朋友,所以我的这个朋友很放心的将自己的帐号密码都告诉了那个人,因为要上班,所以那人也拿他的号升了不少的经验打了不少的东西。直到我的这个朋友,级别很高了以后,认识了很多其他的铁哥们,身上的装备也通过各种渠道(人家送啊,自己买啊)提升到一定的档次后,终于有一天,伴随着的就是被那个十分信任的好友洗劫一空,并拿着他的人物的身份向其他网友欺骗了不少金币和装备。。。我的这个朋友,经历了这一幕,对游戏的乐趣一下荡然无存了。。。呵呵。
你看,这个伪装成“发小”(从1级一起玩到满级)的“高手”(绝对的社会心理学的高手),城府是多么的深,并且有着多么伟大的耐心啊。。。
E时代的信任危机,已不是简简单单的对某个软件某个系统灾难的恐惧了,在这个企业和个人都逐步把灾难和备份机制完善化的时候,博大精深的心理学倒是冒出了头!
网站钓鱼、病毒、间谍软件、银行木马,黑客们带着和善的面具,早已为你布下了无孔不入的层层陷阱。。。而你并不知道,他们什么时候会对你耍出新招或者突然下手。
这里,我们为了对付社会工程攻击,必须组建“由人组成的防火墙”,同时抛弃网络架构刀枪不入之类的幻想,即使你的企业部署了严密的软件硬件防火墙等安全系统。
互联网络专家给出的应策是:
一,建立事故响应小组,事故响应小组应当由来自公司不同关键部门的知识渊博的员工组成,他们要经过良好培训并随时准备对社会工程攻击做出反应,有效的分析出入侵的目的与方式。
二,制定规章与教育相结合,对员工进行培训,建立雇员参与机制,制定简单的规则,确定什么是敏感信息,提高安全意识。
三,模拟入侵程序,公司利用模拟环境和测试,能有效地评价安全控制措施,来制定相应的对策和解决方法。
四,应用其他技术措施,比如电话录音、客户访问记录、文档等级制度。
最安全的计算机是那台没有连到网络上的单机,社会工程学能做到的,是让你自愿自发的把这台机器接上RJ45插头联入到网络中。。。因此,我们要面对的,还会很多,要提防和注意的,也还是很多很多!。。。
今天周未到公司加班,在332去中关村的路上,上车后服务员的态度极端不好,对待它的衣食父母一点都不负责,让我想起我在杭州坐公交时感觉比北京好多了,希望注意一下素质
再就是到公司前路过一小杂志店,买了本黑客x档案,刚开始没看就买了,拿到公司翻了一下,好多都是介绍QQ什么的,什么让QQ的收费什么变为免费呀,明着是什么黑客,全是广告。。。看了几页就不看了,想起当时在说大学的时候,当时也没有钱,但还是偶尔要买一本,里面的特刊办得很不错,全是介绍什么linux apache iis php之类的,现在这方面少了,不像是一本技术书了,给我的感觉是全是广告。。。下次要买得看清了,要不好就飘过。
再就是到公司前路过一小杂志店,买了本黑客x档案,刚开始没看就买了,拿到公司翻了一下,好多都是介绍QQ什么的,什么让QQ的收费什么变为免费呀,明着是什么黑客,全是广告。。。看了几页就不看了,想起当时在说大学的时候,当时也没有钱,但还是偶尔要买一本,里面的特刊办得很不错,全是介绍什么linux apache iis php之类的,现在这方面少了,不像是一本技术书了,给我的感觉是全是广告。。。下次要买得看清了,要不好就飘过。