Linux 工具:点的含义
Paul Brown 解释了 Linux shell 命令中那个不起眼的“点”的各种意思和用法。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/000250f1x67c4ec3kxicp1.jpg">Media</a>在现实情况中,使用 shell 命令编写的单行命令或脚本可能会令人很困惑。你使用的很多工具的名称与它们的实际功能相差甚远(grep、tee 和 awk,还有吗?),而当你将两个或更多个组合起来时,所组成的 “句子” 看起来更像某种外星人的天书。因此,上面说的这些对于你并无帮助,因为你用来编写一连串的指令所使用的符号根据你使用的场景有着不同的意义。位置、位置、位置就拿这个不起眼的点(.)来说吧。当它放在一个需要一个目录名称的命令的参数处时,表示“当前目录”:<pre class="prettyprint linenums">find . -name "*.jpg"</pre>意思就是“在当前目录(包括子目录)中寻找以 .jpg 结尾的文件”。ls . 和 cd . 结果也如你想的那样,它们分别列举和“进入”到当前目录,虽然在这两种情况下这个点都是多余的。而一个紧接着另一个的两个点呢,在同样的场景下(即当你的命令期望一个文件目录的时候)表示“当前目录的父目录”。如果你当前在 /home/your_directory 下并且运行:<pre class="prettyprint linenums">cd ..</pre>你就会进入到 /home。所以,你可能认为这仍然适合“点代表附近目录”的叙述,并且毫不复杂,对吧?那下面这样会怎样呢?如果你在一个文件或目录的开头加上点,它表示这个文件或目录会被隐藏:<pre class="prettyprint linenums">$ touch somedir/file01.txt somedir/file02.txt…
Paul Brown 解释了 Linux shell 命令中那个不起眼的“点”的各种意思和用法。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/000250f1x67c4ec3kxicp1.jpg">Media</a>在现实情况中,使用 shell 命令编写的单行命令或脚本可能会令人很困惑。你使用的很多工具的名称与它们的实际功能相差甚远(grep、tee 和 awk,还有吗?),而当你将两个或更多个组合起来时,所组成的 “句子” 看起来更像某种外星人的天书。因此,上面说的这些对于你并无帮助,因为你用来编写一连串的指令所使用的符号根据你使用的场景有着不同的意义。位置、位置、位置就拿这个不起眼的点(.)来说吧。当它放在一个需要一个目录名称的命令的参数处时,表示“当前目录”:<pre class="prettyprint linenums">find . -name "*.jpg"</pre>意思就是“在当前目录(包括子目录)中寻找以 .jpg 结尾的文件”。ls . 和 cd . 结果也如你想的那样,它们分别列举和“进入”到当前目录,虽然在这两种情况下这个点都是多余的。而一个紧接着另一个的两个点呢,在同样的场景下(即当你的命令期望一个文件目录的时候)表示“当前目录的父目录”。如果你当前在 /home/your_directory 下并且运行:<pre class="prettyprint linenums">cd ..</pre>你就会进入到 /home。所以,你可能认为这仍然适合“点代表附近目录”的叙述,并且毫不复杂,对吧?那下面这样会怎样呢?如果你在一个文件或目录的开头加上点,它表示这个文件或目录会被隐藏:<pre class="prettyprint linenums">$ touch somedir/file01.txt somedir/file02.txt…
用 rcm 管理隐藏文件
许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。这些配置文件经常隐藏在用户的主目录中。Media
via https://linux.cn/article-10466-1.html
许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。这些配置文件经常隐藏在用户的主目录中。Media
via https://linux.cn/article-10466-1.html
用 rcm 管理隐藏文件
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/104627m4y4jfa8z5ny6kzk.jpg">Media</a>许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。几乎所有常见的自由软件都将配置设置保存在纯文本文件中,通常采用结构化格式,如 JSON、YAML 或<a href="https://en.wikipedia.org/wiki/INI_file">“类似 ini”</a> 的文件中。这些配置文件经常隐藏在用户的主目录中。但是,基本的 ls 不会显示它们。UNIX 标准要求以点开头的任何文件或目录名称都被视为“隐藏”,除非用户特意要求,否则不会列在目录列表中。例如,要使用 ls 列出所有文件,要传递 -a 选项。随着时间的推移,这些配置文件会有很多定制配置,管理它们变得越来越具有挑战性。不仅如此,在多台计算机之间保持同步是大型组织所面临的共同挑战。最后,许多用户也对其独特的配置感到自豪,并希望以简单的方式与朋友分享。这就是用到 rcm 介入的地方。rcm 是一个 “rc” 文件管理套件(“rc” 是命名配置文件的另一种约定,它已被某些 GNU/Linux 程序采用,如 screen 或 bash)。 rcm 提供了一套命令来管理和列出它跟踪的文件。使用 dnf 安装 rcm。开始使用默认情况下,rcm 使用 ~/.dotfiles 来存储它管理的所有隐藏文件。一个被管理的隐藏文件实际保存在 ~/.dotfiles 目录中,而它的符号链接会放在文件原本的位置。例如,如果 ~/.bashrc 由 rcm 所管理,那么详细列表将如下所示。<pre class="prettyprint linenums">[link@localhost ~]$ ls -l ~/.bashrclrwxrwxrwx. 1 link link 27 Dec 16 05:19 .bashrc -> /home/link/.dotfiles/bashrc[link@localhost ~]$</pre>rcm 包含 4 &…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/104627m4y4jfa8z5ny6kzk.jpg">Media</a>许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。几乎所有常见的自由软件都将配置设置保存在纯文本文件中,通常采用结构化格式,如 JSON、YAML 或<a href="https://en.wikipedia.org/wiki/INI_file">“类似 ini”</a> 的文件中。这些配置文件经常隐藏在用户的主目录中。但是,基本的 ls 不会显示它们。UNIX 标准要求以点开头的任何文件或目录名称都被视为“隐藏”,除非用户特意要求,否则不会列在目录列表中。例如,要使用 ls 列出所有文件,要传递 -a 选项。随着时间的推移,这些配置文件会有很多定制配置,管理它们变得越来越具有挑战性。不仅如此,在多台计算机之间保持同步是大型组织所面临的共同挑战。最后,许多用户也对其独特的配置感到自豪,并希望以简单的方式与朋友分享。这就是用到 rcm 介入的地方。rcm 是一个 “rc” 文件管理套件(“rc” 是命名配置文件的另一种约定,它已被某些 GNU/Linux 程序采用,如 screen 或 bash)。 rcm 提供了一套命令来管理和列出它跟踪的文件。使用 dnf 安装 rcm。开始使用默认情况下,rcm 使用 ~/.dotfiles 来存储它管理的所有隐藏文件。一个被管理的隐藏文件实际保存在 ~/.dotfiles 目录中,而它的符号链接会放在文件原本的位置。例如,如果 ~/.bashrc 由 rcm 所管理,那么详细列表将如下所示。<pre class="prettyprint linenums">[link@localhost ~]$ ls -l ~/.bashrclrwxrwxrwx. 1 link link 27 Dec 16 05:19 .bashrc -> /home/link/.dotfiles/bashrc[link@localhost ~]$</pre>rcm 包含 4 &…
s-tui:在 Linux 中监控 CPU 温度、频率、功率和使用率的终端工具
它其实是一个压力测试的终端 UI,可以帮助管理员通过颜色查看 CPU 温度。Media
via https://linux.cn/article-10467-1.html
它其实是一个压力测试的终端 UI,可以帮助管理员通过颜色查看 CPU 温度。Media
via https://linux.cn/article-10467-1.html
s-tui:在 Linux 中监控 CPU 温度、频率、功率和使用率的终端工具
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/234445t2ozz2p3lp393l7i.jpg">Media</a>一般每个 Linux 管理员都会使用 <a href="https://www.2daygeek.com/view-check-cpu-hard-disk-temperature-linux/">lm_sensors 监控 CPU 温度</a>。lm_sensors (Linux 监控传感器)是一个自由开源程序,它提供了监控温度、电压和风扇的驱动和工具。如果你正在找替代的 CLI 工具,我会建议你尝试 s-tui。它其实是一个压力测试的终端 UI,可以帮助管理员通过颜色查看 CPU 温度。s-tui 是什么s-tui 是一个用于监控计算机的终端 UI。s-tui 可以在终端以图形方式监控 CPU 温度、频率、功率和使用率。此外,它还显示由发热量限制引起的性能下降,它需要很少的资源并且不需要 X 服务器。它是用 Python 编写的,需要 root 权限才能使用它。s-tui 是一个独立的程序,可以开箱即用,并且不需要配置文件就可以使用其基本功能。s-tui 使用 psutil 来探测你的一些硬件信息。如果不支持你的一些硬件,你可能看不到所有信息。以 root 身份运行 s-tui 时,当压测所有 CPU 核心时,可以将 CPU 发挥到最大睿频频率。它在后台使用 Stress 压力测试工具,通过对系统施加某些类型的计算压力来检查其组件的温度是否超过其可接受的范围。只要计算机稳定并且其组件的温度不超过其可接受的范围,PC 超频就没问题。有几个程序可以通过压力测试得到系统的稳定性,从而评估超频水平。如何在 Linux 中安装 s-tui它是用 Python 写的,pip 是在…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/22/234445t2ozz2p3lp393l7i.jpg">Media</a>一般每个 Linux 管理员都会使用 <a href="https://www.2daygeek.com/view-check-cpu-hard-disk-temperature-linux/">lm_sensors 监控 CPU 温度</a>。lm_sensors (Linux 监控传感器)是一个自由开源程序,它提供了监控温度、电压和风扇的驱动和工具。如果你正在找替代的 CLI 工具,我会建议你尝试 s-tui。它其实是一个压力测试的终端 UI,可以帮助管理员通过颜色查看 CPU 温度。s-tui 是什么s-tui 是一个用于监控计算机的终端 UI。s-tui 可以在终端以图形方式监控 CPU 温度、频率、功率和使用率。此外,它还显示由发热量限制引起的性能下降,它需要很少的资源并且不需要 X 服务器。它是用 Python 编写的,需要 root 权限才能使用它。s-tui 是一个独立的程序,可以开箱即用,并且不需要配置文件就可以使用其基本功能。s-tui 使用 psutil 来探测你的一些硬件信息。如果不支持你的一些硬件,你可能看不到所有信息。以 root 身份运行 s-tui 时,当压测所有 CPU 核心时,可以将 CPU 发挥到最大睿频频率。它在后台使用 Stress 压力测试工具,通过对系统施加某些类型的计算压力来检查其组件的温度是否超过其可接受的范围。只要计算机稳定并且其组件的温度不超过其可接受的范围,PC 超频就没问题。有几个程序可以通过压力测试得到系统的稳定性,从而评估超频水平。如何在 Linux 中安装 s-tui它是用 Python 写的,pip 是在…
软件 bug 的生命周期
从发现软件故障到解决它们,这里讲述是开发团队如何压制软件 bug。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/002319dwfsgwpp7mhr7fg4.jpg">Media</a>1947 年,发现了第一个计算机 bug —— 被困在计算机继电器中的飞蛾。要是所有的 bug 都能如此简单地发现就好了。随着软件变得越来越复杂,测试和调试的过程也变得更加复杂。如今,软件 bug 的生命周期可能会很长,尽管正确的技术和业务流程可能会有所帮助。对于开源软件,开发人员使用严格的工单服务和协作来查找和解决 bug。确认计算机 bug在测试过程中,发现的 bug 会报告给开发团队。质量保证测试人员尽可能详细地描述 bug ,报告他们的系统状态、他们正在进行的过程以及 bug 是如何表现出来的。尽管如此,一些 bug 从未得到确认;它们可能会在测试中报告,但永远无法在可控环境中重现。在这种情况下,它们可能得不到解决,而是被关闭。有些计算机 bug 可能很难确认,因为使用的平台种类繁多,用户行为也非常多。有些 bug 只是间歇性地或在非常特殊的情况下发生的,而另一些 bug 可能会出现在随机的情况下。许多人使用开源软件并与之交互,许多 bug 和问题可能是不可重复的,或者可能没有得到充分的描述。不过,由于每个用户和开发人员也都扮演质量保证测试人员的角色,至少在一定程度上,bug 还是很有可能会发现的。确认 bug 后A…
从发现软件故障到解决它们,这里讲述是开发团队如何压制软件 bug。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/002319dwfsgwpp7mhr7fg4.jpg">Media</a>1947 年,发现了第一个计算机 bug —— 被困在计算机继电器中的飞蛾。要是所有的 bug 都能如此简单地发现就好了。随着软件变得越来越复杂,测试和调试的过程也变得更加复杂。如今,软件 bug 的生命周期可能会很长,尽管正确的技术和业务流程可能会有所帮助。对于开源软件,开发人员使用严格的工单服务和协作来查找和解决 bug。确认计算机 bug在测试过程中,发现的 bug 会报告给开发团队。质量保证测试人员尽可能详细地描述 bug ,报告他们的系统状态、他们正在进行的过程以及 bug 是如何表现出来的。尽管如此,一些 bug 从未得到确认;它们可能会在测试中报告,但永远无法在可控环境中重现。在这种情况下,它们可能得不到解决,而是被关闭。有些计算机 bug 可能很难确认,因为使用的平台种类繁多,用户行为也非常多。有些 bug 只是间歇性地或在非常特殊的情况下发生的,而另一些 bug 可能会出现在随机的情况下。许多人使用开源软件并与之交互,许多 bug 和问题可能是不可重复的,或者可能没有得到充分的描述。不过,由于每个用户和开发人员也都扮演质量保证测试人员的角色,至少在一定程度上,bug 还是很有可能会发现的。确认 bug 后A…
你(多半)不需要 Kubernetes
这也许是一个不太受欢迎的观点,但大多数主流公司最好不要再使用 k8s 了。Media
via https://linux.cn/article-10469-1.html
这也许是一个不太受欢迎的观点,但大多数主流公司最好不要再使用 k8s 了。Media
via https://linux.cn/article-10469-1.html
你(多半)不需要 Kubernetes
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/010935ah4tgomzmamntzhi.jpg">Media</a>这也许是一个不太受欢迎的观点,但大多数主流公司最好不要再使用 k8s 了。你知道那个古老的“以程序员技能写 Hello world ”笑话吗?—— 从一个新手程序员的 <code>printf("hello, world\n")</code> 语句开始,最后结束于高级软件架构工程师令人费解的 Java OOP 模式设计。使用 k8s 就有点像这样。新手系统管理员:<code>./binary</code>有经验的系统管理员:在 EC2 上的 <code>./binary</code>DevOp:在 EC2 上自部署的 CI 管道运行 <code>./binary</code>高级云编排工程师:在 EC2 上通过 k8s 编排的自部署 CI 管道运行 <code>./binary</code>¯\\_(ツ)_/¯这不意味着 Kubernetes 或者任何这样的东西本身都是<em>坏的</em>,就像 Java 或者 OOP 设计本身并不是坏的一样,但是,在很多情况下,它们被严重地误用,就像在一个 hello world 的程序中可怕地误用 Java 面向对象设计模式一样。对大多数公司而言,系统运维从根本上来说并不十分复杂,此时在这上面应用 k8s 起效甚微。复杂性本质上来说创造了工作,我十分怀疑使用 k8s 对大多数使用者来说是省时的这一说法。这就好像花一天时间来写一个脚本,用来自动完成一些你一个月进行一次,每次只花 10 分钟完成的工作。这不是一个好的时间投资(特别是你可能会在未来由于扩展或调试这个脚本而进一步投入的更多时间)。你的部署大概应该<em>需要</em>自动化 – 以免你 <a href="https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/">最终像 Knightmare</a> 那样 —— 但 k8s 通常Ö…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/010935ah4tgomzmamntzhi.jpg">Media</a>这也许是一个不太受欢迎的观点,但大多数主流公司最好不要再使用 k8s 了。你知道那个古老的“以程序员技能写 Hello world ”笑话吗?—— 从一个新手程序员的 <code>printf("hello, world\n")</code> 语句开始,最后结束于高级软件架构工程师令人费解的 Java OOP 模式设计。使用 k8s 就有点像这样。新手系统管理员:<code>./binary</code>有经验的系统管理员:在 EC2 上的 <code>./binary</code>DevOp:在 EC2 上自部署的 CI 管道运行 <code>./binary</code>高级云编排工程师:在 EC2 上通过 k8s 编排的自部署 CI 管道运行 <code>./binary</code>¯\\_(ツ)_/¯这不意味着 Kubernetes 或者任何这样的东西本身都是<em>坏的</em>,就像 Java 或者 OOP 设计本身并不是坏的一样,但是,在很多情况下,它们被严重地误用,就像在一个 hello world 的程序中可怕地误用 Java 面向对象设计模式一样。对大多数公司而言,系统运维从根本上来说并不十分复杂,此时在这上面应用 k8s 起效甚微。复杂性本质上来说创造了工作,我十分怀疑使用 k8s 对大多数使用者来说是省时的这一说法。这就好像花一天时间来写一个脚本,用来自动完成一些你一个月进行一次,每次只花 10 分钟完成的工作。这不是一个好的时间投资(特别是你可能会在未来由于扩展或调试这个脚本而进一步投入的更多时间)。你的部署大概应该<em>需要</em>自动化 – 以免你 <a href="https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/">最终像 Knightmare</a> 那样 —— 但 k8s 通常Ö…
如何构建一台网络引导服务器(四)
在本系列教程中所构建的网络引导服务器有一个很重要的限制,那就是所提供的操作系统镜像是只读的。一些使用场景或许要求终端用户能够修改操作系统镜像。Media
via https://linux.cn/article-10470-1.html
在本系列教程中所构建的网络引导服务器有一个很重要的限制,那就是所提供的操作系统镜像是只读的。一些使用场景或许要求终端用户能够修改操作系统镜像。Media
via https://linux.cn/article-10470-1.html
如何构建一台网络引导服务器(四)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/222618djzymxhxdrwjrqrd.jpg">Media</a>在本系列教程中所构建的网络引导服务器有一个很重要的限制,那就是所提供的操作系统镜像是只读的。一些使用场景或许要求终端用户能够修改操作系统镜像。例如,一些教师或许希望学生能够安装和配置一些像 MariaDB 和 Node.js 这样的包来做为他们课程练习的一部分。可写镜像的另外的好处是,终端用户“私人定制”的操作系统,在下次不同的工作站上使用时能够“跟着”他们。修改 Bootmenu 应用程序以使用 HTTPS为 bootmenu 应用程序创建一个自签名的证书:<pre class="prettyprint linenums">$ sudo -i# MY_NAME=$(</etc/hostname)# MY_TLSD=/opt/bootmenu/tls# mkdir $MY_TLSD# openssl req -newkey rsa:2048 -nodes -keyout $MY_TLSD/$MY_NAME.key -x509 -days 3650 -out $MY_TLSD/$MY_NAME.pem</pre>验证你的证书的值。确保 Subject 行中 CN 的值与你的 iPXE 客户端连接你的网络引导服务器所使用的 DNS 名字是相匹配的:<pre class="prettyprint linenums"># openssl x509 -text -noout -in $MY_TLSD/$MY_NAME.pem</pre>接下来,更新 bootmenu 应用程序去监听 HTTPS 端口和新创建的证书及密钥:<pre class="prettyprint linenums"># sed -i "s#listen => .*#listen => ['https://$MY_NAME:443?cert=$MY_TLSD/$MY_NAME.pem\&key=$MY_TLSD/$MY_NAME.key\&ciphers=AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA'],#" /opt/bootmenu/bootmenu.conf</pre>注意 <a href="http://ipxe.org/crypto">iPXE 当前支持的</a> 加密算法是有限制的。GnuTLS 要求 “CAPDACREAD_SEARCH” 能力,因此将它添加到 bootmenu 应用程序的 systemd 服务:<pre class="prettyprint linenums"># sed -i '/^AmbientCapabilities=/ s/$/ CAP_DAC_READ_SEARCH/' /etc/systemd/system/bootmenu.service# sed -i 's/Serves iPXE Menus over HTTP/Serves iPXE Menus over HTTPS/' /etc/systemd/system/bootmenu.service# systemctl daemon-reload</pre>现在,在防火墙中为 bootmenu 服务添加一个例外规则并重启动该服务:<pre class="prettyprint linenums"># MY_SUBNET=192.0.2.0# MY_PREFIX=24# firewall-cmd --add-rich-rule="rule family='ipv4' source address='$MY_SUBNET/$MY_PREFIX' service name='https' accept"# firewall…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/222618djzymxhxdrwjrqrd.jpg">Media</a>在本系列教程中所构建的网络引导服务器有一个很重要的限制,那就是所提供的操作系统镜像是只读的。一些使用场景或许要求终端用户能够修改操作系统镜像。例如,一些教师或许希望学生能够安装和配置一些像 MariaDB 和 Node.js 这样的包来做为他们课程练习的一部分。可写镜像的另外的好处是,终端用户“私人定制”的操作系统,在下次不同的工作站上使用时能够“跟着”他们。修改 Bootmenu 应用程序以使用 HTTPS为 bootmenu 应用程序创建一个自签名的证书:<pre class="prettyprint linenums">$ sudo -i# MY_NAME=$(</etc/hostname)# MY_TLSD=/opt/bootmenu/tls# mkdir $MY_TLSD# openssl req -newkey rsa:2048 -nodes -keyout $MY_TLSD/$MY_NAME.key -x509 -days 3650 -out $MY_TLSD/$MY_NAME.pem</pre>验证你的证书的值。确保 Subject 行中 CN 的值与你的 iPXE 客户端连接你的网络引导服务器所使用的 DNS 名字是相匹配的:<pre class="prettyprint linenums"># openssl x509 -text -noout -in $MY_TLSD/$MY_NAME.pem</pre>接下来,更新 bootmenu 应用程序去监听 HTTPS 端口和新创建的证书及密钥:<pre class="prettyprint linenums"># sed -i "s#listen => .*#listen => ['https://$MY_NAME:443?cert=$MY_TLSD/$MY_NAME.pem\&key=$MY_TLSD/$MY_NAME.key\&ciphers=AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA'],#" /opt/bootmenu/bootmenu.conf</pre>注意 <a href="http://ipxe.org/crypto">iPXE 当前支持的</a> 加密算法是有限制的。GnuTLS 要求 “CAPDACREAD_SEARCH” 能力,因此将它添加到 bootmenu 应用程序的 systemd 服务:<pre class="prettyprint linenums"># sed -i '/^AmbientCapabilities=/ s/$/ CAP_DAC_READ_SEARCH/' /etc/systemd/system/bootmenu.service# sed -i 's/Serves iPXE Menus over HTTP/Serves iPXE Menus over HTTPS/' /etc/systemd/system/bootmenu.service# systemctl daemon-reload</pre>现在,在防火墙中为 bootmenu 服务添加一个例外规则并重启动该服务:<pre class="prettyprint linenums"># MY_SUBNET=192.0.2.0# MY_PREFIX=24# firewall-cmd --add-rich-rule="rule family='ipv4' source address='$MY_SUBNET/$MY_PREFIX' service name='https' accept"# firewall…
Pelican 入门:一个 Python 静态网站生成器
Pelican 是那些想要自我托管简单网站或博客的 Python 用户的绝佳选择。Media
via https://linux.cn/article-10471-1.html
Pelican 是那些想要自我托管简单网站或博客的 Python 用户的绝佳选择。Media
via https://linux.cn/article-10471-1.html
Pelican 入门:一个 Python 静态网站生成器
Pelican 是那些想要自我托管简单网站或博客的 Python 用户的绝佳选择。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/232503d2jfzedsq2xxer2s.png">Media</a>如果你想创建一个自定义网站或博客,有很多选择。许多提供商可以托管你的网站并为你完成大部分工作。(WordPress 是一个非常受欢迎的选项。)但是使用托管方式,你会失去一些灵活性。作为一名软件开发人员,我更喜欢管理我自己的服务器,并在我的网站如何运行方面保持更多的自由。然而,管理 Web 服务器需要大量的工作。安装它并获得一个简单的应用程序来提供内容是非常容易的。但是,维护安全补丁和更新是非常耗时得。如果你只想提供静态网页,那么拥有一个 Web 服务器和一系列应用程序可能会得不偿失。手动创建 HTML 页面也不是一个好选择。这是静态网站生成器的用武之地。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。(例如,所有显示的页面都带有公共标签或关键词。)静态网站生成器可以帮助你使用导航区域、页眉和页脚等元素创建一个具有公共外观的网站。我使用 <a href="https://opensource.com/resources/python">Pyhton</a> 已经很多年了,所以,当我第一次开始寻找生成静态 HTML 页面的东西时,我想要用 Python 编写的东西。主要原因是我经常想要了解应用程序如何工作的内部细节,而使用一种我已经…
Pelican 是那些想要自我托管简单网站或博客的 Python 用户的绝佳选择。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/232503d2jfzedsq2xxer2s.png">Media</a>如果你想创建一个自定义网站或博客,有很多选择。许多提供商可以托管你的网站并为你完成大部分工作。(WordPress 是一个非常受欢迎的选项。)但是使用托管方式,你会失去一些灵活性。作为一名软件开发人员,我更喜欢管理我自己的服务器,并在我的网站如何运行方面保持更多的自由。然而,管理 Web 服务器需要大量的工作。安装它并获得一个简单的应用程序来提供内容是非常容易的。但是,维护安全补丁和更新是非常耗时得。如果你只想提供静态网页,那么拥有一个 Web 服务器和一系列应用程序可能会得不偿失。手动创建 HTML 页面也不是一个好选择。这是静态网站生成器的用武之地。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。(例如,所有显示的页面都带有公共标签或关键词。)静态网站生成器可以帮助你使用导航区域、页眉和页脚等元素创建一个具有公共外观的网站。我使用 <a href="https://opensource.com/resources/python">Pyhton</a> 已经很多年了,所以,当我第一次开始寻找生成静态 HTML 页面的东西时,我想要用 Python 编写的东西。主要原因是我经常想要了解应用程序如何工作的内部细节,而使用一种我已经…
关于团队敏捷开发实践的 6 个常见问题
专家回答了敏捷实践如何帮助团队更有效的 6 个常见问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/234907hdxbo21xxq8qovv7.png">Media</a>”有问题么?“你可能听过演讲者在演讲结束的时候提出这个问题。这是演讲中最重要的部分 —— 毕竟,你不仅仅是听讲座, 而是参加讨论和社群交流。最近,我有机会听到我的同伴 Red Hatters 给当地一所大学的一群技术型学生做一个名为 “<a href="http://zijemeit.cz/sessions/agile-in-practice/">敏捷实践</a>” 的讲座。讲座中有软件工程师 Tomas Tomecek 和敏捷开发的从业者 Fernando Colleone 、Pavel Najman 合作解释了敏捷开发方法的基础,并展示最佳实践在日常活动中的应用。知道了学生们参加这个课程是为了了解什么是敏捷实践以及如何将其应用于项目,我想知道学生们的问题会与我作为敏捷从业者在 Red Hat 每天听到的问题相比有什么不同。结果学生的疑问和我的同事们如出一辙。这些问题都直指敏捷实践的核心。1、完美的团队规模是多大?学生们想知道一个小团队和一个大团队的规模是多少。这个问题与任何曾经合作过做项目的人都是相关的。根据 Tomas 作为技术领导的经验,12 个人从事的项目被认为是一个大型团队。现实中,团队规模通常与生产力没有直接关系。在有些时候,在一个地方或同一个时区的小团队也许会比一个成员分布在满世界的大团队更具有生产力。最终,该讲座建议理想௚…
专家回答了敏捷实践如何帮助团队更有效的 6 个常见问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/23/234907hdxbo21xxq8qovv7.png">Media</a>”有问题么?“你可能听过演讲者在演讲结束的时候提出这个问题。这是演讲中最重要的部分 —— 毕竟,你不仅仅是听讲座, 而是参加讨论和社群交流。最近,我有机会听到我的同伴 Red Hatters 给当地一所大学的一群技术型学生做一个名为 “<a href="http://zijemeit.cz/sessions/agile-in-practice/">敏捷实践</a>” 的讲座。讲座中有软件工程师 Tomas Tomecek 和敏捷开发的从业者 Fernando Colleone 、Pavel Najman 合作解释了敏捷开发方法的基础,并展示最佳实践在日常活动中的应用。知道了学生们参加这个课程是为了了解什么是敏捷实践以及如何将其应用于项目,我想知道学生们的问题会与我作为敏捷从业者在 Red Hat 每天听到的问题相比有什么不同。结果学生的疑问和我的同事们如出一辙。这些问题都直指敏捷实践的核心。1、完美的团队规模是多大?学生们想知道一个小团队和一个大团队的规模是多少。这个问题与任何曾经合作过做项目的人都是相关的。根据 Tomas 作为技术领导的经验,12 个人从事的项目被认为是一个大型团队。现实中,团队规模通常与生产力没有直接关系。在有些时候,在一个地方或同一个时区的小团队也许会比一个成员分布在满世界的大团队更具有生产力。最终,该讲座建议理想௚…
Arch-Audit:一款在 Arch Linux 上检查易受攻击的软件包的工具
Arch-audit 是一个类似于 Arch Linux 的 pkg-audit 工具。它使用了令人称赞的 Arch 安全小组收集的数据。Media
via https://linux.cn/article-10473-1.html
Arch-audit 是一个类似于 Arch Linux 的 pkg-audit 工具。它使用了令人称赞的 Arch 安全小组收集的数据。Media
via https://linux.cn/article-10473-1.html
Arch-Audit:一款在 Arch Linux 上检查易受攻击的软件包的工具
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/194257itv2aa72qvkrkbhh.jpg">Media</a>我们必须经常更新我们的系统以减少宕机时间和问题。每月给系统打一次补丁,60 天一次或者最多 90 天一次,这是 Linux 管理员的例行任务之一。这是忙碌的工作计划,我们不能在不到一个月内做到这一点,因为它涉及到多种活动和环境。基本上,基础设施会一同提供测试、开发、 QA 环境(即各个分段和产品)。最初,我们会在测试环境中部署补丁,相应的团队将监视系统一周,然后他们将给出一份或好或坏的状态的报告。如果成功的话,我们将会在其他环境中继续测试,若正常运行,那么最后我们会给生产服务器打上补丁。许多组织会对整个系统打上补丁,我的意思是全系统更新,对于典型基础设施这是一种常规修补计划。某些基础设施中可能只有生产环境,因此,我们不应该做全系统更新,而是应该使用安全修补程序来使系统更加稳定和安全。由于 Arch Linux 及其衍生的发行版属于滚动更新版本,因此可以认为它们始终是最新的,因为它使用上游软件包的最新版本。在某些情况下,如果要单独更新安全修补程序,则必须使用 arch-audit 工具来标识和修复安全修补程序。漏洞是什么?漏洞是软件程序或硬件组件(固件)中的安全漏洞。这是一个可以让它容易受到攻…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/194257itv2aa72qvkrkbhh.jpg">Media</a>我们必须经常更新我们的系统以减少宕机时间和问题。每月给系统打一次补丁,60 天一次或者最多 90 天一次,这是 Linux 管理员的例行任务之一。这是忙碌的工作计划,我们不能在不到一个月内做到这一点,因为它涉及到多种活动和环境。基本上,基础设施会一同提供测试、开发、 QA 环境(即各个分段和产品)。最初,我们会在测试环境中部署补丁,相应的团队将监视系统一周,然后他们将给出一份或好或坏的状态的报告。如果成功的话,我们将会在其他环境中继续测试,若正常运行,那么最后我们会给生产服务器打上补丁。许多组织会对整个系统打上补丁,我的意思是全系统更新,对于典型基础设施这是一种常规修补计划。某些基础设施中可能只有生产环境,因此,我们不应该做全系统更新,而是应该使用安全修补程序来使系统更加稳定和安全。由于 Arch Linux 及其衍生的发行版属于滚动更新版本,因此可以认为它们始终是最新的,因为它使用上游软件包的最新版本。在某些情况下,如果要单独更新安全修补程序,则必须使用 arch-audit 工具来标识和修复安全修补程序。漏洞是什么?漏洞是软件程序或硬件组件(固件)中的安全漏洞。这是一个可以让它容易受到攻…
用这个吃豆人游戏在你的终端中玩街机
想要重现你最喜欢的街机游戏的魔力么?今天的命令行玩具将带你回到过去。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/204422nrfobzm0oscvj20s.png">Media</a>欢迎来到今天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你会问什么是命令行玩具。基本上,它们是游戏和简单的消遣,可以帮助你在终端玩得开心。有些是新的,有些是古老的经典。我们希望你喜欢。今天的玩具,MyMan,是经典街机游戏<a href="https://en.wikipedia.org/wiki/Pac-Man">吃豆人</a>Pac-Man(你不会认为这是<a href="https://wiki.archlinux.org/index.php/pacman">类似命名的</a> Linux 包管理器对吧?)的有趣克隆。 如果你和我一样,为了在吃豆人游戏中取得高分,你过去在其中花费了很多时间,那么有机会的话,你应该试试这个。MyMan 并不是 Linux 终端上唯一的吃豆人克隆版,但是我选择介绍它,因为 1)我喜欢它与原版一致的视觉风格,2)它为我的 Linux 发行版打包了,因此安装很容易。但是你也应该看看其他的克隆。这是<a href="https://github.com/YoctoForBeaglebone/pacman4console">另一个</a>看起来可能不错的,但我没有尝试过。由于 MyMan 已为 Fedora 打包,因此安装非常简单:<pre class="prettyprint linenums">$ dnf install myman</pre>MyMan 在 MIT 许可下可用,你可以在 <a href="https://myman.sourceforge.io/">SourceForge</a> 上查看源代码。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/204436w75azcy1egq15ba7.gif">Media</a>你有特别喜欢的命令行小玩具需要我介绍的吗?这个系列要介绍的小玩具大部分已经有了落实,但还预留了几个空位置。如…
想要重现你最喜欢的街机游戏的魔力么?今天的命令行玩具将带你回到过去。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/204422nrfobzm0oscvj20s.png">Media</a>欢迎来到今天的 Linux 命令行玩具日历。如果这是你第一次访问该系列,你会问什么是命令行玩具。基本上,它们是游戏和简单的消遣,可以帮助你在终端玩得开心。有些是新的,有些是古老的经典。我们希望你喜欢。今天的玩具,MyMan,是经典街机游戏<a href="https://en.wikipedia.org/wiki/Pac-Man">吃豆人</a>Pac-Man(你不会认为这是<a href="https://wiki.archlinux.org/index.php/pacman">类似命名的</a> Linux 包管理器对吧?)的有趣克隆。 如果你和我一样,为了在吃豆人游戏中取得高分,你过去在其中花费了很多时间,那么有机会的话,你应该试试这个。MyMan 并不是 Linux 终端上唯一的吃豆人克隆版,但是我选择介绍它,因为 1)我喜欢它与原版一致的视觉风格,2)它为我的 Linux 发行版打包了,因此安装很容易。但是你也应该看看其他的克隆。这是<a href="https://github.com/YoctoForBeaglebone/pacman4console">另一个</a>看起来可能不错的,但我没有尝试过。由于 MyMan 已为 Fedora 打包,因此安装非常简单:<pre class="prettyprint linenums">$ dnf install myman</pre>MyMan 在 MIT 许可下可用,你可以在 <a href="https://myman.sourceforge.io/">SourceForge</a> 上查看源代码。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/24/204436w75azcy1egq15ba7.gif">Media</a>你有特别喜欢的命令行小玩具需要我介绍的吗?这个系列要介绍的小玩具大部分已经有了落实,但还预留了几个空位置。如…
DevSecOps 提升安全性的五种方式
安全必须进化以跟上当今的应用开发和部署方式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/25/001721dx7b7dmdnua2p2w2.jpg">Media</a>对于我们是否需要扩展 DevOps 以确实提升安全性,我们一直都有争议。毕竟,我们认为,DevOps 一直是一系列的新实践的简写,使用新工具(通常是开源的)并且在这之上构建更多的协作文化。为什么 <a href="https://opensource.com/article/18/5/steps-apply-devops-culture-beyond-it">DevBizOps</a> 不能更好地满足商业的需求?或者说 DevChatOps 强调的是更快更好的沟通?然而,如 <a href="https://www.devsecopsdays.com/articles/its-just-a-name">John Willis</a> 在今年(LCTT 译注:此处是 2018 年)的早些时候写的关于他对 <a href="https://opensource.com/article/18/4/devsecops">DevSecOps</a> 术语的理解,“我希望,有一天我们能在任何地方都不再使用 DevSecOps 这个词,安全会是所有关于服务交付的讨论中理所应当的部分。在那一天到来前,在这一点上,我的一般性结论是,这个词只是三个新的特性而已。更重要的是,我们作为一个产业,在信息安全方面并没有做的很好,而这个名称切实地区分出了问题的状况。”所以,为什么我们在<a href="https://opensource.com/article/18/6/where-cycle-security-devops">信息安全</a>方面做的不好,在 DevSecOps 的语境下安全做的好又是什么意思呢?尽管(也可能是因为)庞大的复杂行业的单点产品解决了特定方面的问题,但我们可以说是从未做好过信息安全。我们仍然可以在这个时代把工作做得足够好,以此来防范威胁,这些威胁主要集中在一个范…
安全必须进化以跟上当今的应用开发和部署方式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/25/001721dx7b7dmdnua2p2w2.jpg">Media</a>对于我们是否需要扩展 DevOps 以确实提升安全性,我们一直都有争议。毕竟,我们认为,DevOps 一直是一系列的新实践的简写,使用新工具(通常是开源的)并且在这之上构建更多的协作文化。为什么 <a href="https://opensource.com/article/18/5/steps-apply-devops-culture-beyond-it">DevBizOps</a> 不能更好地满足商业的需求?或者说 DevChatOps 强调的是更快更好的沟通?然而,如 <a href="https://www.devsecopsdays.com/articles/its-just-a-name">John Willis</a> 在今年(LCTT 译注:此处是 2018 年)的早些时候写的关于他对 <a href="https://opensource.com/article/18/4/devsecops">DevSecOps</a> 术语的理解,“我希望,有一天我们能在任何地方都不再使用 DevSecOps 这个词,安全会是所有关于服务交付的讨论中理所应当的部分。在那一天到来前,在这一点上,我的一般性结论是,这个词只是三个新的特性而已。更重要的是,我们作为一个产业,在信息安全方面并没有做的很好,而这个名称切实地区分出了问题的状况。”所以,为什么我们在<a href="https://opensource.com/article/18/6/where-cycle-security-devops">信息安全</a>方面做的不好,在 DevSecOps 的语境下安全做的好又是什么意思呢?尽管(也可能是因为)庞大的复杂行业的单点产品解决了特定方面的问题,但我们可以说是从未做好过信息安全。我们仍然可以在这个时代把工作做得足够好,以此来防范威胁,这些威胁主要集中在一个范…