OpenSnitch:一个 Linux 上的应用程序防火墙
不能因为 Linux 比 Windows 更安全,就可以在 Linux 上放松警惕。Linux 上可以使用的防火墙很多,它们可以让你的 Linux 系统更安全。今天,我们将带你了解一个这样的防火墙工具,它就是 OpenSnitch。Media
via https://linux.cn/article-10337-1.html
不能因为 Linux 比 Windows 更安全,就可以在 Linux 上放松警惕。Linux 上可以使用的防火墙很多,它们可以让你的 Linux 系统更安全。今天,我们将带你了解一个这样的防火墙工具,它就是 OpenSnitch。Media
via https://linux.cn/article-10337-1.html
OpenSnitch:一个 Linux 上的应用程序防火墙
不能因为 Linux 比 Windows 更安全,就可以在 Linux 上放松警惕。Linux 上可以使用的防火墙很多,它们可以让你的 Linux 系统更安全。今天,我们将带你了解一个这样的防火墙工具,它就是 OpenSnitch。OpenSnitch 是什么?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/130335rlrd1dnddla746ta.jpg">Linux firewall and security</a><a href="https://www.opensnitch.io/">OpenSnitch</a> 是从 Little Snitch 上移植过来的。而 Little Snitch 是专门为 Mac OS 设计的一款应用程序防火墙。OpenSnitch 是由 <a href="https://github.com/evilsocket">Simone Margaritelli</a> 设计,也称为 <a href="https://twitter.com/evilsocket">evilsocket</a>。OpenSnitch 所做的主要事情就是跟踪你机器上安装的应用程序所发起的互联网请求。OpenSnitch 允许你去创建规则以同意或阻止那个应用程序发起的互联网访问。当一个应用程序尝试去访问互联网而没有相应的访问规则存在时,就会出现一个对话框,这个对话框让你去选择允许还是阻止那个连接。你也可以决定这个新规则是应用到进程上、具体的 URL 上、域名上、单个实例上,以及本次会话还是永久有效。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/130341i3xyfxamj3x4xjzk.jpg">OpenSnitch firewall app in Linux</a><em>OpenSnatch 规则请求</em>你创建的所有规则都保存为 <a href="https://www.json.org/">JSON 文件</a>,如果以后需要修改它,就可以去修改这个文件。比如说,你错误地阻止了一个应用程序。OpenSnitch 也有一个漂亮的、一目了然的图形用户界面:是什么应用程序访问 web它们使用哪个 IP 地址属主用户是谁使用哪个端口如果你愿意,也可以将这些信息导出到一个 CSV 文&…
不能因为 Linux 比 Windows 更安全,就可以在 Linux 上放松警惕。Linux 上可以使用的防火墙很多,它们可以让你的 Linux 系统更安全。今天,我们将带你了解一个这样的防火墙工具,它就是 OpenSnitch。OpenSnitch 是什么?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/130335rlrd1dnddla746ta.jpg">Linux firewall and security</a><a href="https://www.opensnitch.io/">OpenSnitch</a> 是从 Little Snitch 上移植过来的。而 Little Snitch 是专门为 Mac OS 设计的一款应用程序防火墙。OpenSnitch 是由 <a href="https://github.com/evilsocket">Simone Margaritelli</a> 设计,也称为 <a href="https://twitter.com/evilsocket">evilsocket</a>。OpenSnitch 所做的主要事情就是跟踪你机器上安装的应用程序所发起的互联网请求。OpenSnitch 允许你去创建规则以同意或阻止那个应用程序发起的互联网访问。当一个应用程序尝试去访问互联网而没有相应的访问规则存在时,就会出现一个对话框,这个对话框让你去选择允许还是阻止那个连接。你也可以决定这个新规则是应用到进程上、具体的 URL 上、域名上、单个实例上,以及本次会话还是永久有效。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/130341i3xyfxamj3x4xjzk.jpg">OpenSnitch firewall app in Linux</a><em>OpenSnatch 规则请求</em>你创建的所有规则都保存为 <a href="https://www.json.org/">JSON 文件</a>,如果以后需要修改它,就可以去修改这个文件。比如说,你错误地阻止了一个应用程序。OpenSnitch 也有一个漂亮的、一目了然的图形用户界面:是什么应用程序访问 web它们使用哪个 IP 地址属主用户是谁使用哪个端口如果你愿意,也可以将这些信息导出到一个 CSV 文&…
12 条实用的 zypper 命令范例
zypper 是 Suse Linux 系统的包和补丁管理器,你可以根据下面的 12 条附带输出示例的实用范例来学习 zypper 命令的使用。Media
via https://linux.cn/article-10338-1.html
zypper 是 Suse Linux 系统的包和补丁管理器,你可以根据下面的 12 条附带输出示例的实用范例来学习 zypper 命令的使用。Media
via https://linux.cn/article-10338-1.html
12 条实用的 zypper 命令范例
zypper 是 Suse Linux 系统的包和补丁管理器,你可以根据下面的 12 条附带输出示例的实用范例来学习 zypper 命令的使用。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/132928jmstt99so6s0tesp.jpg">Media</a>Suse Linux 使用 zypper 进行包管理,其是一个由 <a href="https://en.wikipedia.org/wiki/ZYpp">ZYpp 包管理引擎</a>提供的包管理系统。在此篇文章中我们将分享 12 条附带输出示例的实用 zypper 命令,能帮助你处理日常的系统管理任务。不带参数的 zypper 命令将列出所有可用的选项,这比参考详细的 man 手册要容易上手得多。<pre class="prettyprint linenums">root@kerneltalks # zypper 用法: zypper [--global-options] <command> [--command-options] [arguments] zypper <subcommand> [--command-options] [arguments] 全局选项: --help, -h 帮助 --version, -V 输出版本号 --promptids 输出 zypper 用户提示符列表 --config, -c <file> 使用指定的配置文件来替代默认的 --userdata <string> 在历史和插件中使用的用户自定义事务 id --quiet, -q 忽略正常输出,只打印错误信息 --verbose, -v 增加冗长程度 --color --no-color 是否启用彩色模式,如果 tty 支持的话 --no-abbrev, -A 表格中的文字不使用缩写 --table-style, -s 表格样式(整型) --non-interactive, -n 不询问任何选项,自动使用默认答案 --non-interactive-include-reboot-patches 针对带有重启标志的补丁,不使用交互模式 --xmlout, -x 切换至 XML 输出 --ignore-unknown, -i 忽略未知的包 --reposd-dir, -D <dir> 使用自定义仓库文件目录 --cache-dir, -C <dir> 为所有缓存启用可选路径 --raw-cache-dir <dir> 启用可选 raw 元数据缓存路径 --solv-cache-dir <dir> 启用可选 solv 文件缓存路径 --pkg-cache-dir <dir> 启用可选包缓存路径 仓库选项: --no-gpg-checks 忽略 GPG 检查失败并跳过 --gpg-auto-import-keys 自动信任并导入新仓库的签名密钥 --plus…
zypper 是 Suse Linux 系统的包和补丁管理器,你可以根据下面的 12 条附带输出示例的实用范例来学习 zypper 命令的使用。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/132928jmstt99so6s0tesp.jpg">Media</a>Suse Linux 使用 zypper 进行包管理,其是一个由 <a href="https://en.wikipedia.org/wiki/ZYpp">ZYpp 包管理引擎</a>提供的包管理系统。在此篇文章中我们将分享 12 条附带输出示例的实用 zypper 命令,能帮助你处理日常的系统管理任务。不带参数的 zypper 命令将列出所有可用的选项,这比参考详细的 man 手册要容易上手得多。<pre class="prettyprint linenums">root@kerneltalks # zypper 用法: zypper [--global-options] <command> [--command-options] [arguments] zypper <subcommand> [--command-options] [arguments] 全局选项: --help, -h 帮助 --version, -V 输出版本号 --promptids 输出 zypper 用户提示符列表 --config, -c <file> 使用指定的配置文件来替代默认的 --userdata <string> 在历史和插件中使用的用户自定义事务 id --quiet, -q 忽略正常输出,只打印错误信息 --verbose, -v 增加冗长程度 --color --no-color 是否启用彩色模式,如果 tty 支持的话 --no-abbrev, -A 表格中的文字不使用缩写 --table-style, -s 表格样式(整型) --non-interactive, -n 不询问任何选项,自动使用默认答案 --non-interactive-include-reboot-patches 针对带有重启标志的补丁,不使用交互模式 --xmlout, -x 切换至 XML 输出 --ignore-unknown, -i 忽略未知的包 --reposd-dir, -D <dir> 使用自定义仓库文件目录 --cache-dir, -C <dir> 为所有缓存启用可选路径 --raw-cache-dir <dir> 启用可选 raw 元数据缓存路径 --solv-cache-dir <dir> 启用可选 solv 文件缓存路径 --pkg-cache-dir <dir> 启用可选包缓存路径 仓库选项: --no-gpg-checks 忽略 GPG 检查失败并跳过 --gpg-auto-import-keys 自动信任并导入新仓库的签名密钥 --plus…
Cat 命令的源码历史
对于 cat,这个想法和程序本身都很古老。不准确地说,我的电脑上的 cat 来自 1969 年。Media
via https://linux.cn/article-10339-1.html
对于 cat,这个想法和程序本身都很古老。不准确地说,我的电脑上的 cat 来自 1969 年。Media
via https://linux.cn/article-10339-1.html
Cat 命令的源码历史
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/164029zjwhnefzwzo6jmn6.jpg">Media</a>以前我和我的一些亲戚争论过计算机科学的学位值不值得读。当时我正在上大学,并要决定是不是该主修计算机。我姨和我表姐觉得我不应该主修计算机。她们承认知道如何编程肯定是很有用且对自己有利的一件事,但是她们认为计算机科学现在发展的如此迅速以至于我学的东西几乎马上就过时了。建议我更好是把编程作为辅业,选择一个基础原理可以受用终身的领域主修,比如经济学或物理学。我知道我姨和我表姐说的不对,并决定主修计算机科学。(对不住啊!)平常人可能会觉得像计算机科学领域和软件工程专业每隔几年就完全和之前不一样了。其原因很容易理解。我们有了个人电脑,然后有了互联网,有了手机,之后还有了机器学习…… 科技总是在更新,支撑科技发展的原理和技能当然也在改变。当然,最惊人的是其实原理的改变竟然如此之小。我敢肯定,大多数人在知道了他们电脑里一些重要的软件的历史是多么久远时他们一定会深感震惊。当然我不是说那些刷版本号的浮夸软件 —— 我电脑上的 Firefox 浏览器副本,可能是我用的最多的软件,可能两周前就更新过。如果你看了比如 grep 的手册页,你就会发现它在 2010 年后就没有过更新了(至少在 MacOS 上如此)。初版 grep 是在 1974 年写就&#…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/164029zjwhnefzwzo6jmn6.jpg">Media</a>以前我和我的一些亲戚争论过计算机科学的学位值不值得读。当时我正在上大学,并要决定是不是该主修计算机。我姨和我表姐觉得我不应该主修计算机。她们承认知道如何编程肯定是很有用且对自己有利的一件事,但是她们认为计算机科学现在发展的如此迅速以至于我学的东西几乎马上就过时了。建议我更好是把编程作为辅业,选择一个基础原理可以受用终身的领域主修,比如经济学或物理学。我知道我姨和我表姐说的不对,并决定主修计算机科学。(对不住啊!)平常人可能会觉得像计算机科学领域和软件工程专业每隔几年就完全和之前不一样了。其原因很容易理解。我们有了个人电脑,然后有了互联网,有了手机,之后还有了机器学习…… 科技总是在更新,支撑科技发展的原理和技能当然也在改变。当然,最惊人的是其实原理的改变竟然如此之小。我敢肯定,大多数人在知道了他们电脑里一些重要的软件的历史是多么久远时他们一定会深感震惊。当然我不是说那些刷版本号的浮夸软件 —— 我电脑上的 Firefox 浏览器副本,可能是我用的最多的软件,可能两周前就更新过。如果你看了比如 grep 的手册页,你就会发现它在 2010 年后就没有过更新了(至少在 MacOS 上如此)。初版 grep 是在 1974 年写就&#…
Emacs 系列(五):Org 模式之文档与演示稿
Org 模式不仅仅只是一个议程生成程序,它也能输出许多不同的格式: LaTeX、PDF、Beamer、iCalendar(议程)、HTML、Markdown、ODT、普通文本、手册页和其它更多的复杂的格式,比如说网页文件。Media
via https://linux.cn/article-10340-1.html
Org 模式不仅仅只是一个议程生成程序,它也能输出许多不同的格式: LaTeX、PDF、Beamer、iCalendar(议程)、HTML、Markdown、ODT、普通文本、手册页和其它更多的复杂的格式,比如说网页文件。Media
via https://linux.cn/article-10340-1.html
Emacs 系列(五):Org 模式之文档与演示稿
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/225949wapsn1pc0dpfpfbz.png">Media</a>这是 <a href="https://changelog.complete.org/archives/tag/emacs2018">Emacs 和 Org 模式系列</a>的第五篇。这篇博文是由 Org 模式的源文件生成的,其有几种格式:<a href="https://github.com/jgoerzen/public-snippets/blob/master/emacs/emacs-org-beamer/emacs-org-beamer.org">博客页面</a>、<a href="http://changelog.complete.org/archives/9900-emacs-5-documents-and-presentations-with-org-mode">演示稿</a> 和 <a href="https://github.com/jgoerzen/public-snippets/raw/master/emacs/emacs-org-beamer/emacs-org-beamer.pdf">PDF 文档</a>。1 Org 模式的输出1.1 背景Org 模式不仅仅只是一个议程生成程序,它也能输出许多不同的格式: LaTeX、PDF、Beamer、iCalendar(议程)、HTML、Markdown、ODT、普通文本、手册页和其它更多的复杂的格式,比如说网页文件。这也不只是一些事后的想法,这是 Org 模式的设计核心部分并且集成的很好。这一个文件可以同时是源代码、自动生成的输出、任务列表、文档和展示。有些人将 Org 模式作为他们首选的标记格式,甚至对于 LaTeX 文档也是如此。Org 模式手册中的 <a href="https://orgmode.org/manual/Exporting.html#Exporting">输出一节</a> 有更详细的介绍。1.2 开始对于任意的 Org 模式的文档,只要按下 C-c C-e 键,就会弹出一个让你选择多种输出格式和选项的菜单。这些选项通常是次键选择,所以很容易设置和执行。例如:要输出一个 PDF 文档,按 C-c C-e l p,要输出 HMTL 格式的, 按 C-c C-e h h。对于所有的输出选项,都有许多可用的设置;详情参见手册。事实上,使用 LaTeX 格式相当于同时使用 LaTeX 和 HTML 模式,在不同的模式中插入任意的前言和设置等。1.3 第三方插件<a…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/12/225949wapsn1pc0dpfpfbz.png">Media</a>这是 <a href="https://changelog.complete.org/archives/tag/emacs2018">Emacs 和 Org 模式系列</a>的第五篇。这篇博文是由 Org 模式的源文件生成的,其有几种格式:<a href="https://github.com/jgoerzen/public-snippets/blob/master/emacs/emacs-org-beamer/emacs-org-beamer.org">博客页面</a>、<a href="http://changelog.complete.org/archives/9900-emacs-5-documents-and-presentations-with-org-mode">演示稿</a> 和 <a href="https://github.com/jgoerzen/public-snippets/raw/master/emacs/emacs-org-beamer/emacs-org-beamer.pdf">PDF 文档</a>。1 Org 模式的输出1.1 背景Org 模式不仅仅只是一个议程生成程序,它也能输出许多不同的格式: LaTeX、PDF、Beamer、iCalendar(议程)、HTML、Markdown、ODT、普通文本、手册页和其它更多的复杂的格式,比如说网页文件。这也不只是一些事后的想法,这是 Org 模式的设计核心部分并且集成的很好。这一个文件可以同时是源代码、自动生成的输出、任务列表、文档和展示。有些人将 Org 模式作为他们首选的标记格式,甚至对于 LaTeX 文档也是如此。Org 模式手册中的 <a href="https://orgmode.org/manual/Exporting.html#Exporting">输出一节</a> 有更详细的介绍。1.2 开始对于任意的 Org 模式的文档,只要按下 C-c C-e 键,就会弹出一个让你选择多种输出格式和选项的菜单。这些选项通常是次键选择,所以很容易设置和执行。例如:要输出一个 PDF 文档,按 C-c C-e l p,要输出 HMTL 格式的, 按 C-c C-e h h。对于所有的输出选项,都有许多可用的设置;详情参见手册。事实上,使用 LaTeX 格式相当于同时使用 LaTeX 和 HTML 模式,在不同的模式中插入任意的前言和设置等。1.3 第三方插件<a…
降低项目失败率的三个原则
透明和包容性的项目要求可以降低您的失败率。 以下是如何协作收集它们。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/163341meoeovjyfpjdhody.jpg">Media</a>众所周知,明确、简洁和可衡量的需求会带来更多成功的项目。一项<a href="http://calleam.com/WTPF/?page_id=1445">麦肯锡与牛津大学</a>的关于大型项目的研究表明:“平均而言,大型 IT 项目超出预算 45%,时间每推移 7%,价值就比预期低 56% 。”该研究还表明,造成这种失败的一些原因是“模糊的业务目标,不同步的利益相关者以及过度的返工。”业务分析师经常发现自己通过持续对话来构建这些需求。为此,他们必须吸引多个利益相关方,并确保参与者提供明确的业务目标。这样可以减少返工,提高更多项目的成功率。他们可以用开放和包容的方式做到这一点。成功的框架提高项目成功率的一个工具是<a href="https://opensource.com/open-organization/resources/open-decision-framework">开放决策框架</a>。开放决策框架是一种资源,可以帮助用户在拥抱<a href="https://opensource.com/open-organization/resources/open-org-definition">开放原则</a>的组织中做出更有效的决策。该框架强调三个主要原则:透明、包容、以客户为中心。<strong>透明</strong>。很多时候,开发人员和产品设计人员都认为他们知道利益相关者如何使用特定工具或软件。但这些假设往往是不正确的,并导致对利益相关者实际需求的误解。开发人员和企业主讨论时实行透明势在必行。开发团队不…
透明和包容性的项目要求可以降低您的失败率。 以下是如何协作收集它们。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/163341meoeovjyfpjdhody.jpg">Media</a>众所周知,明确、简洁和可衡量的需求会带来更多成功的项目。一项<a href="http://calleam.com/WTPF/?page_id=1445">麦肯锡与牛津大学</a>的关于大型项目的研究表明:“平均而言,大型 IT 项目超出预算 45%,时间每推移 7%,价值就比预期低 56% 。”该研究还表明,造成这种失败的一些原因是“模糊的业务目标,不同步的利益相关者以及过度的返工。”业务分析师经常发现自己通过持续对话来构建这些需求。为此,他们必须吸引多个利益相关方,并确保参与者提供明确的业务目标。这样可以减少返工,提高更多项目的成功率。他们可以用开放和包容的方式做到这一点。成功的框架提高项目成功率的一个工具是<a href="https://opensource.com/open-organization/resources/open-decision-framework">开放决策框架</a>。开放决策框架是一种资源,可以帮助用户在拥抱<a href="https://opensource.com/open-organization/resources/open-org-definition">开放原则</a>的组织中做出更有效的决策。该框架强调三个主要原则:透明、包容、以客户为中心。<strong>透明</strong>。很多时候,开发人员和产品设计人员都认为他们知道利益相关者如何使用特定工具或软件。但这些假设往往是不正确的,并导致对利益相关者实际需求的误解。开发人员和企业主讨论时实行透明势在必行。开发团队不…
数据科学家的命令行技巧
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/221149dirhh8vthq2vll9j.png">Media</a>对于许多数据科学家来说,数据操作从始至终就是 Pandas 或 Tidyverse。从理论上讲,这样做没有任何问题。毕竟,这就是这些工具存在的原因。然而,对于像分隔符转换这样的简单任务,这些工具是大材小用了。立志掌握命令行应该在每个开发人员的学习清单上,特别是数据科学家。学习 shell 的来龙去脉将无可否认地提高你的生产力。除此之外,命令行还是计算领域的一个重要历史课程。例如,awk —— 一种数据驱动的脚本语言。1977 年,在 <a href="https://en.wikipedia.org/wiki/Brian_Kernighan">Brain Kernighan</a>(即传奇的 <a href="https://en.wikipedia.org/wiki/The_C_Programming_Language">K&R 书</a>中 K)的帮助下,awk 首次出现。今天,大约五十年过去了,awk 仍然活跃在每年<a href="https://www.amazon.com/Learning-AWK-Programming-cutting-edge-text-processing-ebook/dp/B07BT98HDS">新出版的书</a>里面。因此,可以安全地假设对命令行魔法的付出不会很快贬值。我们将涵盖什么ICONVHEADTRWCSPLITSORT & UNIQCUTPASTEJOINGREPSEDAWKICONV文件编码可能会很棘手。现在大部分文件都是 UTF-8 编码的。要了解 UTF-8 背后的一些魔力,请查看这个出色的<a href="https://www.youtube.com/watch?v=MijmeoH9LT4">视频</a>。尽管如此,有时我们收到的文件不是这种编码。这可能引起对改变编码模式的一些胡乱尝试。这里,iconv 是一个拯救者。iconv 是一个简单的程序,它将获取采用一种编码的文本并输出采用另一种编码的文本。<pre class="prettyprint linenums"># Converting -f (from) latin1 (ISO-8859-1)# -t (to) standard UTF_8iconv -f ISO-8859-1 -t UTF-8 < input.txt > output.txt</pre>实用选项:iconv -l 列…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/221149dirhh8vthq2vll9j.png">Media</a>对于许多数据科学家来说,数据操作从始至终就是 Pandas 或 Tidyverse。从理论上讲,这样做没有任何问题。毕竟,这就是这些工具存在的原因。然而,对于像分隔符转换这样的简单任务,这些工具是大材小用了。立志掌握命令行应该在每个开发人员的学习清单上,特别是数据科学家。学习 shell 的来龙去脉将无可否认地提高你的生产力。除此之外,命令行还是计算领域的一个重要历史课程。例如,awk —— 一种数据驱动的脚本语言。1977 年,在 <a href="https://en.wikipedia.org/wiki/Brian_Kernighan">Brain Kernighan</a>(即传奇的 <a href="https://en.wikipedia.org/wiki/The_C_Programming_Language">K&R 书</a>中 K)的帮助下,awk 首次出现。今天,大约五十年过去了,awk 仍然活跃在每年<a href="https://www.amazon.com/Learning-AWK-Programming-cutting-edge-text-processing-ebook/dp/B07BT98HDS">新出版的书</a>里面。因此,可以安全地假设对命令行魔法的付出不会很快贬值。我们将涵盖什么ICONVHEADTRWCSPLITSORT & UNIQCUTPASTEJOINGREPSEDAWKICONV文件编码可能会很棘手。现在大部分文件都是 UTF-8 编码的。要了解 UTF-8 背后的一些魔力,请查看这个出色的<a href="https://www.youtube.com/watch?v=MijmeoH9LT4">视频</a>。尽管如此,有时我们收到的文件不是这种编码。这可能引起对改变编码模式的一些胡乱尝试。这里,iconv 是一个拯救者。iconv 是一个简单的程序,它将获取采用一种编码的文本并输出采用另一种编码的文本。<pre class="prettyprint linenums"># Converting -f (from) latin1 (ISO-8859-1)# -t (to) standard UTF_8iconv -f ISO-8859-1 -t UTF-8 < input.txt > output.txt</pre>实用选项:iconv -l 列…
给写作者们的 7 个命令行工具
扔掉你的文字编辑器,然后使用这些开源工具在命令行上写作吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/224349sakaydvbedllll9l.jpg">Media</a>对于大多数人(尤其是非技术人员),写作意味着在 LibreOffice Writer 或者其他带图形界面的文字处理应用上编辑文本。但是还有许多可行的方法可以让任何人通过文本传递他们的信息,尤其是越来越多的作者选择<a href="https://plaintextproject.online">拥抱纯文本</a>。在使用图形界面写作的世界同样有命令行工具的一席之地。这些命令行工具可以帮助他们进行写作,检查他们的拼写等等 —— 无论是在写一篇文章、博客或者故事;写一个 README 文件;或者准备一份技术文档的时候。下面是一些在任何写作情况下都有用的命令行工具。编辑器没错,你可以在命令行进行真正的写作。我知道一些写作者会使用 <a href="https://www.nano-editor.org/">Nano</a>、<a href="https://www.vim.org">Vim</a>、<a href="https://www.gnu.org/software/emacs/">Emacs</a>、以及 <a href="https://opensource.com/article/17/1/jove-lightweight-alternative-vim">Jove</a> 等编辑器在终端窗口中进行工作。而这些编辑器<a href="https://en.wikipedia.org/wiki/List_of_text_editors#Text_user_interface">并非屈指可数</a>。文本编辑器的优势在于它们简单易用以及更专注于文本。非常适合用于编辑任何文本的初稿甚至完成一个漫长而复杂的写作项目。如果你想在命令行中获得更像文字编辑器的体验,不妨了解一下 <a href="https://cowlark.com/wordgrinder/">WordGrinder</a>。它是一款简单但拥有足够的编写和发布功能的文字编辑器。它支持基本的格…
扔掉你的文字编辑器,然后使用这些开源工具在命令行上写作吧。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/224349sakaydvbedllll9l.jpg">Media</a>对于大多数人(尤其是非技术人员),写作意味着在 LibreOffice Writer 或者其他带图形界面的文字处理应用上编辑文本。但是还有许多可行的方法可以让任何人通过文本传递他们的信息,尤其是越来越多的作者选择<a href="https://plaintextproject.online">拥抱纯文本</a>。在使用图形界面写作的世界同样有命令行工具的一席之地。这些命令行工具可以帮助他们进行写作,检查他们的拼写等等 —— 无论是在写一篇文章、博客或者故事;写一个 README 文件;或者准备一份技术文档的时候。下面是一些在任何写作情况下都有用的命令行工具。编辑器没错,你可以在命令行进行真正的写作。我知道一些写作者会使用 <a href="https://www.nano-editor.org/">Nano</a>、<a href="https://www.vim.org">Vim</a>、<a href="https://www.gnu.org/software/emacs/">Emacs</a>、以及 <a href="https://opensource.com/article/17/1/jove-lightweight-alternative-vim">Jove</a> 等编辑器在终端窗口中进行工作。而这些编辑器<a href="https://en.wikipedia.org/wiki/List_of_text_editors#Text_user_interface">并非屈指可数</a>。文本编辑器的优势在于它们简单易用以及更专注于文本。非常适合用于编辑任何文本的初稿甚至完成一个漫长而复杂的写作项目。如果你想在命令行中获得更像文字编辑器的体验,不妨了解一下 <a href="https://cowlark.com/wordgrinder/">WordGrinder</a>。它是一款简单但拥有足够的编写和发布功能的文字编辑器。它支持基本的格…
Bash 中使用控制运算符连接命令
在命令行中,使用控制运算符为复合命令添加逻辑。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/234800qr3691m74995qz56.jpg">Media</a>经常会使用一些简单的复合指令,比如说在一个命令行中连接几个命令。这些命令使用分号分隔,表示一个命令结束。为了在一个命令行中创建一系列简单的 shell 命令,只需要使用分号把每一条命令分隔开,就像下面这样:<pre class="prettyprint linenums">command1 ; command2 ; command3 ; command4 ;</pre>最后一个分号你可以不用添加,因为当你按下回车键时就表示一个命令的结束,但是为了和其它的保持一致,还是建议加上比较好。所有的命令执行都没有什么问题 —— 只要没有什么意外发生。但是当出问题时到底发生了什么呢?我们可以预测,并且通过 Bash 中内置的 && 和 || 运算符跟踪这些错误。这两个控制运算符提供了一些流控制,可以让我们改变代码执行队列的顺序。分号和换行符也被认为是 Bash 的控制运算符。&& 运算符意义简单来说就是“如果 command1 执行成功,就接着执行 command2。”如果 command1 因为任何原因执行失败,那么 command2 将不执行。这个语法看下来像这样:<pre class="prettyprint linenums">command1 && command2</pre>这样写是允许的,因为每一个命令都会返回一个值(RC)给 shell 来表示这个命令在执行的过程中是否执行成功或者失败。通常,返回值是 0 表示成功,而一个正数值表示不同种类的错误。有一些系统管理工具仅仅返回一个 1 来…
在命令行中,使用控制运算符为复合命令添加逻辑。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/13/234800qr3691m74995qz56.jpg">Media</a>经常会使用一些简单的复合指令,比如说在一个命令行中连接几个命令。这些命令使用分号分隔,表示一个命令结束。为了在一个命令行中创建一系列简单的 shell 命令,只需要使用分号把每一条命令分隔开,就像下面这样:<pre class="prettyprint linenums">command1 ; command2 ; command3 ; command4 ;</pre>最后一个分号你可以不用添加,因为当你按下回车键时就表示一个命令的结束,但是为了和其它的保持一致,还是建议加上比较好。所有的命令执行都没有什么问题 —— 只要没有什么意外发生。但是当出问题时到底发生了什么呢?我们可以预测,并且通过 Bash 中内置的 && 和 || 运算符跟踪这些错误。这两个控制运算符提供了一些流控制,可以让我们改变代码执行队列的顺序。分号和换行符也被认为是 Bash 的控制运算符。&& 运算符意义简单来说就是“如果 command1 执行成功,就接着执行 command2。”如果 command1 因为任何原因执行失败,那么 command2 将不执行。这个语法看下来像这样:<pre class="prettyprint linenums">command1 && command2</pre>这样写是允许的,因为每一个命令都会返回一个值(RC)给 shell 来表示这个命令在执行的过程中是否执行成功或者失败。通常,返回值是 0 表示成功,而一个正数值表示不同种类的错误。有一些系统管理工具仅仅返回一个 1 来…
一种新的安全检测的方法
不要只测试已有系统,强安全要求更积极主动的策略。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/14/123745dk16klj99jpkjw2w.png">Media</a>我们当中有多少人曾说出过下面这句话:“我希望这能起到作用!”?毫无疑问,我们中的大多数人可能都不止一次地说过这句话。这句话不是用来激发信心的,相反它揭示了我们对自身能力和当前正在测试的功能的怀疑。不幸的是,这句话非常好地描述了我们传统的安全模型。我们的运营基于这样的假设,并希望我们实施的控制措施 —— 从 web 应用的漏扫到终端上的杀毒软件 —— 防止恶意的病毒和软件进入我们的系统,损坏或偷取我们的信息。渗透测试通过积极地尝试侵入网络、向 web 应用注入恶意代码或者通过发送钓鱼邮件来传播病毒等等这些步骤来避免我们对假设的依赖。由于我们在不同的安全层面上来发现和渗透漏洞,手动测试无法解决漏洞被主动打开的情况。在安全实验中,我们故意在受控的情形下创造混乱,模拟事故的情形,来客观地检测我们检测、阻止这类问题的能力。“安全实验为分布式系统的安全性实验提供了一种方法,以建立对抗恶意攻击的能力的信心。”在分布式系统的安全性和复杂性方面,需要反复地重申混沌工程界的一句名言,“希望不是一种有效的策略”。我们多久会主动测试一次我们设计或构建的系ń…
不要只测试已有系统,强安全要求更积极主动的策略。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/14/123745dk16klj99jpkjw2w.png">Media</a>我们当中有多少人曾说出过下面这句话:“我希望这能起到作用!”?毫无疑问,我们中的大多数人可能都不止一次地说过这句话。这句话不是用来激发信心的,相反它揭示了我们对自身能力和当前正在测试的功能的怀疑。不幸的是,这句话非常好地描述了我们传统的安全模型。我们的运营基于这样的假设,并希望我们实施的控制措施 —— 从 web 应用的漏扫到终端上的杀毒软件 —— 防止恶意的病毒和软件进入我们的系统,损坏或偷取我们的信息。渗透测试通过积极地尝试侵入网络、向 web 应用注入恶意代码或者通过发送钓鱼邮件来传播病毒等等这些步骤来避免我们对假设的依赖。由于我们在不同的安全层面上来发现和渗透漏洞,手动测试无法解决漏洞被主动打开的情况。在安全实验中,我们故意在受控的情形下创造混乱,模拟事故的情形,来客观地检测我们检测、阻止这类问题的能力。“安全实验为分布式系统的安全性实验提供了一种方法,以建立对抗恶意攻击的能力的信心。”在分布式系统的安全性和复杂性方面,需要反复地重申混沌工程界的一句名言,“希望不是一种有效的策略”。我们多久会主动测试一次我们设计或构建的系ń…
在 Linux 命令行上拥有一头奶牛
使用 cowsay 实用程序将牛的话语带到你的终端输出。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/14/132737a4vjqeyp1ndm41vw.png">Media</a>欢迎来到 Linux 命令行玩具第四天。如果这是你第一次访问这个系列,你可能会问自己,什么是命令行玩具。我们也在考虑这一点,但是一般来说,这可能是一个游戏,或者任何简单的娱乐,可以帮助你在终端玩得开心。你们中的一些人会见过我们之前的选中的各种玩具,但是我们希望至少有一个对每个人来说都是新的。因为几乎所有我告诉他这个系列的人都已经问过它了,所以今天的选中的玩具是必须提及的。你也不会认为我们会在不提及 cowsay 的情况下完成这个系列,对吧?cowsay 是一个神奇的实用程序,它将文本作为 ASCII 艺术牛的讲话文本输出。你可能会发现 cowsey 打包在你的默认存储库中,甚至可能已经安装了。对我来说,在 Fedora,像这样安装:<pre class="prettyprint linenums">$ sudo dnf install -y cowsay</pre>然后,用 cowsey 调用它,然后是你的消息。也许你想到昨天我们谈到的 <a href="https://opensource.com/article/18/12/linux-toy-fortune">fortune 应用</a> 连接起来。<pre class="prettyprint linenums">$ fortune | cowsay _________________________________________/ If at first you do succeed, try to hide \\ your astonishment. / ----------------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||</pre>就这样!cowsay 还有点小变体,称为 cow 文件,通常可以在 /usr/share/cowsay 找到 ,要查看系统上可用的 cow 文件,请在 cowsay 之后使用 -l 。然后,用 -f 试试其中之一。<pre class="prettyprint linenums">$ cowsay -f dragon "Run for cover, I feel a sneeze coming on." _______________________________________/ Run for cover, I feel a sneeze coming \\ on. / -----------------------…
使用 cowsay 实用程序将牛的话语带到你的终端输出。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/14/132737a4vjqeyp1ndm41vw.png">Media</a>欢迎来到 Linux 命令行玩具第四天。如果这是你第一次访问这个系列,你可能会问自己,什么是命令行玩具。我们也在考虑这一点,但是一般来说,这可能是一个游戏,或者任何简单的娱乐,可以帮助你在终端玩得开心。你们中的一些人会见过我们之前的选中的各种玩具,但是我们希望至少有一个对每个人来说都是新的。因为几乎所有我告诉他这个系列的人都已经问过它了,所以今天的选中的玩具是必须提及的。你也不会认为我们会在不提及 cowsay 的情况下完成这个系列,对吧?cowsay 是一个神奇的实用程序,它将文本作为 ASCII 艺术牛的讲话文本输出。你可能会发现 cowsey 打包在你的默认存储库中,甚至可能已经安装了。对我来说,在 Fedora,像这样安装:<pre class="prettyprint linenums">$ sudo dnf install -y cowsay</pre>然后,用 cowsey 调用它,然后是你的消息。也许你想到昨天我们谈到的 <a href="https://opensource.com/article/18/12/linux-toy-fortune">fortune 应用</a> 连接起来。<pre class="prettyprint linenums">$ fortune | cowsay _________________________________________/ If at first you do succeed, try to hide \\ your astonishment. / ----------------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||</pre>就这样!cowsay 还有点小变体,称为 cow 文件,通常可以在 /usr/share/cowsay 找到 ,要查看系统上可用的 cow 文件,请在 cowsay 之后使用 -l 。然后,用 -f 试试其中之一。<pre class="prettyprint linenums">$ cowsay -f dragon "Run for cover, I feel a sneeze coming on." _______________________________________/ Run for cover, I feel a sneeze coming \\ on. / -----------------------…