一个用于家庭项目的单用户、轻量级操作系统
业余爱好者应该了解一下 RISC OS 的五个原因。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/18/101917hepepjr5ennpaieg.jpg">Media</a>究竟什么是 RISC OS?嗯,它不是一种新的 Linux。它也不是有些人认为的 Windows。事实上,它发布于 1987 年,它比它们任何一个都要古老。但你看到它时不一定会意识到这一点。其点击式图形用户界面在底部为活动的程序提供一个固定面板和一个图标栏。因此,它看起来像 Windows 95,并且比它早了 8 年。这个操作系统最初是为 <a href="https://en.wikipedia.org/wiki/Acorn_Archimedes">Acorn Archimedes</a> 编写的。这台机器中的 Acorn RISC Machines CPU 是全新的硬件,因此需要在其上运行全新的软件。这是最早的 ARM 芯片上的系统,早于任何人想到的 Android 或 <a href="https://www.armbian.com/">Armbian</a> 之前。虽然 Acorn 桌面最终消失了,但 ARM 芯片继续征服世界。在这里,RISC OS 一直有一个优点 —— 通常在嵌入式设备中,你从来没有真正地意识到它。RISC OS 过去长期以来一直是一个完全专有的操作系​​统。但近年来,该抄系统的所有者已经开始将源代码发布到一个名为 <a href="https://www.riscosopen.org/content/">RISC OS Open</a> 的项目中。1、你可以将它安装在树莓派上树莓派的官方操作系统 <a href="https://www.raspbian.org/">Raspbian</a> 实际上非常棒(如果你对摆弄不同技术上新奇的东西不感兴趣,那么你可能最初也不会选择树莓派)。由于 RISC OS 是专门为 ARM 编写的,因此它可以在各种小型计算机上运行,​​包括树莓派的各个型号。2ӌ…
业余爱好者应该了解一下 RISC OS 的五个原因。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/18/101917hepepjr5ennpaieg.jpg">Media</a>究竟什么是 RISC OS?嗯,它不是一种新的 Linux。它也不是有些人认为的 Windows。事实上,它发布于 1987 年,它比它们任何一个都要古老。但你看到它时不一定会意识到这一点。其点击式图形用户界面在底部为活动的程序提供一个固定面板和一个图标栏。因此,它看起来像 Windows 95,并且比它早了 8 年。这个操作系统最初是为 <a href="https://en.wikipedia.org/wiki/Acorn_Archimedes">Acorn Archimedes</a> 编写的。这台机器中的 Acorn RISC Machines CPU 是全新的硬件,因此需要在其上运行全新的软件。这是最早的 ARM 芯片上的系统,早于任何人想到的 Android 或 <a href="https://www.armbian.com/">Armbian</a> 之前。虽然 Acorn 桌面最终消失了,但 ARM 芯片继续征服世界。在这里,RISC OS 一直有一个优点 —— 通常在嵌入式设备中,你从来没有真正地意识到它。RISC OS 过去长期以来一直是一个完全专有的操作系​​统。但近年来,该抄系统的所有者已经开始将源代码发布到一个名为 <a href="https://www.riscosopen.org/content/">RISC OS Open</a> 的项目中。1、你可以将它安装在树莓派上树莓派的官方操作系统 <a href="https://www.raspbian.org/">Raspbian</a> 实际上非常棒(如果你对摆弄不同技术上新奇的东西不感兴趣,那么你可能最初也不会选择树莓派)。由于 RISC OS 是专门为 ARM 编写的,因此它可以在各种小型计算机上运行,​​包括树莓派的各个型号。2ӌ…
如何使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务
在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。Media
via https://linux.cn/article-10245-1.html
在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。Media
via https://linux.cn/article-10245-1.html
如何使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/18/105900phch0hxaxthy0mam.jpg">Media</a>对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们。在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。我们需要手动的开启或者关闭那些服务。Linux 中有三个著名的且一直在被使用的初始化系统。什么是初始化系统?在以 Linux/Unix 为基础的操作系统上,init (初始化的简称) 是内核引导系统启动过程中第一个启动的进程。init 的进程 id (pid)是 1,除非系统关机否则它将会一直在后台运行。init 首先根据 /etc/inittab 文件决定 Linux 运行的级别,然后根据运行级别在后台启动所有其他进程和应用程序。BIOS、MBR、GRUB 和内核程序在启动 init 之前就作为 Linux 的引导程序的一部分开始工作了。下面是 Linux 中可以使用的运行级别(从 0~6 总共七个运行级别):0:关机1:单用户模式2:多用户模式(没有NFS)3:完全的多用户模式4:系统未使用5:图形界面模式6:重启下面是 Linux 系统中最常用的三个初始化系统:System V(Sys V)Upstartsystemd什么是 System V(Sys V)?System V(Sys V)是类 Unix 系统第一个也是传统的初始化系统。init 是内核引导系统启动过程中第一支启动的程序,它是所有程序的父进程。大部分 Linux 发行&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/18/105900phch0hxaxthy0mam.jpg">Media</a>对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们。在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。我们需要手动的开启或者关闭那些服务。Linux 中有三个著名的且一直在被使用的初始化系统。什么是初始化系统?在以 Linux/Unix 为基础的操作系统上,init (初始化的简称) 是内核引导系统启动过程中第一个启动的进程。init 的进程 id (pid)是 1,除非系统关机否则它将会一直在后台运行。init 首先根据 /etc/inittab 文件决定 Linux 运行的级别,然后根据运行级别在后台启动所有其他进程和应用程序。BIOS、MBR、GRUB 和内核程序在启动 init 之前就作为 Linux 的引导程序的一部分开始工作了。下面是 Linux 中可以使用的运行级别(从 0~6 总共七个运行级别):0:关机1:单用户模式2:多用户模式(没有NFS)3:完全的多用户模式4:系统未使用5:图形界面模式6:重启下面是 Linux 系统中最常用的三个初始化系统:System V(Sys V)Upstartsystemd什么是 System V(Sys V)?System V(Sys V)是类 Unix 系统第一个也是传统的初始化系统。init 是内核引导系统启动过程中第一支启动的程序,它是所有程序的父进程。大部分 Linux 发行&…
8 个很棒的 pytest 插件
Python 测试工具最好的一方面是其强大的生态系统。这里列出了八个最好的插件。Media
via https://linux.cn/article-10246-1.html
Python 测试工具最好的一方面是其强大的生态系统。这里列出了八个最好的插件。Media
via https://linux.cn/article-10246-1.html
8 个很棒的 pytest 插件
Python 测试工具最好的一方面是其强大的生态系统。这里列出了八个最好的插件。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/114149ufkyyfiq3n4n3y5z.jpg">Media</a>我们是 <a href="https://docs.pytest.org/en/latest/">pytest</a> 的忠实粉丝,并将其作为工作和开源项目的默认 Python 测试工具。在本月的 Python 专栏中,我们分享了为什么我们喜欢 <code>pytest</code> 以及一些让 <code>pytest</code> 测试工作更有趣的插件。什么是 pytest?正如该工具的网站所说,“pytest 框架可以轻松地编写小型测试,也能进行扩展以支持应用和库的复杂功能测试。”<code>pytest</code> 允许你在任何名为 <code>test_*.py</code> 的文件中定义测试,并将其定义为以 <code>test_*</code> 开头的函数。然后,pytest 将在整个项目中查找所有测试,并在控制台中运行 <code>pytest</code> 时自动运行这些测试。pytest 接受<a href="https://docs.pytest.org/en/latest/usage.html">标志和参数</a>,它们可以在测试运行器停止时更改,这些包含如何输出结果,运行哪些测试以及输出中包含哪些信息。它还包括一个 <code>set_trace()</code> 函数,它可以进入到你的测试中。它会暂停您的测试, 并允许你与变量进行交互,不然你只能在终端中“四处翻弄”来调试你的项目。<code>pytest</code> 最好的一方面是其强大的插件生态系统。因为 <code>pytest</code> 是一个非常流行的测试库,所以多年来创建了许多插件来扩展、定制和增强其功能。这八个插件是我们的最爱。8 个很棒的插件1、pytest-sugar<a href="https://github.com/Frozenball/pytest-sugar">pytest-sugar</a> 改变了 <code>pytest</code> 的默认外观,添加了一个进&#…
Python 测试工具最好的一方面是其强大的生态系统。这里列出了八个最好的插件。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/114149ufkyyfiq3n4n3y5z.jpg">Media</a>我们是 <a href="https://docs.pytest.org/en/latest/">pytest</a> 的忠实粉丝,并将其作为工作和开源项目的默认 Python 测试工具。在本月的 Python 专栏中,我们分享了为什么我们喜欢 <code>pytest</code> 以及一些让 <code>pytest</code> 测试工作更有趣的插件。什么是 pytest?正如该工具的网站所说,“pytest 框架可以轻松地编写小型测试,也能进行扩展以支持应用和库的复杂功能测试。”<code>pytest</code> 允许你在任何名为 <code>test_*.py</code> 的文件中定义测试,并将其定义为以 <code>test_*</code> 开头的函数。然后,pytest 将在整个项目中查找所有测试,并在控制台中运行 <code>pytest</code> 时自动运行这些测试。pytest 接受<a href="https://docs.pytest.org/en/latest/usage.html">标志和参数</a>,它们可以在测试运行器停止时更改,这些包含如何输出结果,运行哪些测试以及输出中包含哪些信息。它还包括一个 <code>set_trace()</code> 函数,它可以进入到你的测试中。它会暂停您的测试, 并允许你与变量进行交互,不然你只能在终端中“四处翻弄”来调试你的项目。<code>pytest</code> 最好的一方面是其强大的插件生态系统。因为 <code>pytest</code> 是一个非常流行的测试库,所以多年来创建了许多插件来扩展、定制和增强其功能。这八个插件是我们的最爱。8 个很棒的插件1、pytest-sugar<a href="https://github.com/Frozenball/pytest-sugar">pytest-sugar</a> 改变了 <code>pytest</code> 的默认外观,添加了一个进&#…
COPR 仓库中 4 个很酷的新软件(2018.10)
COPR 是软件的个人存储库的集合,它包含那些不在标准的 Fedora 仓库中的软件。Media
via https://linux.cn/article-10247-1.html
COPR 是软件的个人存储库的集合,它包含那些不在标准的 Fedora 仓库中的软件。Media
via https://linux.cn/article-10247-1.html
COPR 仓库中 4 个很酷的新软件(2018.10)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/120125j6ip4lh26fc2cii4.jpg">Media</a>COPR 是软件的个人存储库的<a href="https://copr.fedorainfracloud.org/">集合</a>,它包含那些不在标准的 Fedora 仓库中的软件。某些软件不符合允许轻松打包的标准。或者它可能不符合其他 Fedora 标准,尽管它是自由开源的。COPR 可以在标准的 Fedora 包之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,它是尝试新的或实验性软件的一种很好的方法。这是 COPR 中一组新的有趣项目。[编者按:这些项目里面有一个兵不适合通过 COPR 分发,所以从本文中 也删除了。相关的评论也删除了,以免误导读者。对此带来的不便,我们深表歉意。](LCTT 译注:本文后来移除了对“GitKraken”项目的介绍。)Music On Console<a href="http://moc.daper.net/">Music On Console</a> 播放器(简称 mocp)是一个简单的控制台音频播放器。它有一个类似于 “Midnight Commander” 的界面,并且很容易使用。你只需进入包含音乐的目录,然后选择要播放的文件或目录。此外,mocp 提供了一组命令,允许直接从命令行进行控制。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/120126im5pu5llnpe65s7p.png">Media</a>安装说明该仓库目前为 Fedora 28 和 29 提供 Music On Console 播放器。要安装 mocp,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable Krzystof/Mocsudo dnf install moc</pre>cnping<a href="https://github.com/cnlohr/cnping">Cnping</a> 是小型的图形化 ping IPv4 工具,可用于可视化显示 RTT 的变化。它提供了一个选项来控制每个数据包之间的间隔以及发送的数据大小&#…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/120125j6ip4lh26fc2cii4.jpg">Media</a>COPR 是软件的个人存储库的<a href="https://copr.fedorainfracloud.org/">集合</a>,它包含那些不在标准的 Fedora 仓库中的软件。某些软件不符合允许轻松打包的标准。或者它可能不符合其他 Fedora 标准,尽管它是自由开源的。COPR 可以在标准的 Fedora 包之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,它是尝试新的或实验性软件的一种很好的方法。这是 COPR 中一组新的有趣项目。[编者按:这些项目里面有一个兵不适合通过 COPR 分发,所以从本文中 也删除了。相关的评论也删除了,以免误导读者。对此带来的不便,我们深表歉意。](LCTT 译注:本文后来移除了对“GitKraken”项目的介绍。)Music On Console<a href="http://moc.daper.net/">Music On Console</a> 播放器(简称 mocp)是一个简单的控制台音频播放器。它有一个类似于 “Midnight Commander” 的界面,并且很容易使用。你只需进入包含音乐的目录,然后选择要播放的文件或目录。此外,mocp 提供了一组命令,允许直接从命令行进行控制。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/120126im5pu5llnpe65s7p.png">Media</a>安装说明该仓库目前为 Fedora 28 和 29 提供 Music On Console 播放器。要安装 mocp,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable Krzystof/Mocsudo dnf install moc</pre>cnping<a href="https://github.com/cnlohr/cnping">Cnping</a> 是小型的图形化 ping IPv4 工具,可用于可视化显示 RTT 的变化。它提供了一个选项来控制每个数据包之间的间隔以及发送的数据大小&#…
程序员的痛点:我竟然还不懂 Linux 性能优化
作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是 web 应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。Media
via https://linux.cn/article-10248-1.html
作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是 web 应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。Media
via https://linux.cn/article-10248-1.html
程序员的痛点:我竟然还不懂 Linux 性能优化
<em>(本文为付费赞助文章)</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/122326vi0zixi9pxpllxwt.png">Media这些问题或者场景,你是否曾经遇到过?流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 <code>top</code> 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写的有问题?系统并没有跑什么吃内存的程序,但是敲完 <code>free</code> 命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,这个时候该怎么办?作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是 web 应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。但是在实际的工作中,很多情况下只能看到症状,却完全不知道该从哪儿下手去排查和解决它。之前有读者问过到,社区有没有系统学习 Linux 性能优化的书籍推荐?网上的资料和书籍可以扩充底层知识体系,从虚拟化的原理、到操作系统和网络原理、再到 Linux 内核和硬件驱动程序等等。但是 Linux 性能优化是个系统工程,除了基础知识点之外,学习中还有两点是比较重要的:第一、要学习大量性能优化&#…
<em>(本文为付费赞助文章)</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/122326vi0zixi9pxpllxwt.png">Media这些问题或者场景,你是否曾经遇到过?流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 <code>top</code> 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写的有问题?系统并没有跑什么吃内存的程序,但是敲完 <code>free</code> 命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机 CPU 的 I/O Wait 较高,这个时候该怎么办?作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是 web 应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。但是在实际的工作中,很多情况下只能看到症状,却完全不知道该从哪儿下手去排查和解决它。之前有读者问过到,社区有没有系统学习 Linux 性能优化的书籍推荐?网上的资料和书籍可以扩充底层知识体系,从虚拟化的原理、到操作系统和网络原理、再到 Linux 内核和硬件驱动程序等等。但是 Linux 性能优化是个系统工程,除了基础知识点之外,学习中还有两点是比较重要的:第一、要学习大量性能优化&#…
gitbase:用 SQL 查询 Git 仓库
gitbase 是一个使用 go 开发的的开源项目,它实现了在 Git 仓库上执行 SQL 查询。Media
via https://linux.cn/article-10249-1.html
gitbase 是一个使用 go 开发的的开源项目,它实现了在 Git 仓库上执行 SQL 查询。Media
via https://linux.cn/article-10249-1.html
gitbase:用 SQL 查询 Git 仓库
gitbase 是一个使用 go 开发的的开源项目,它实现了在 Git 仓库上执行 SQL 查询。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/131443ox250dpk3nx6fsc2.jpg">MediaGit 已经成为了代码版本控制的事实标准,但尽管 Git 相当普及,对代码仓库的深入分析的工作难度却没有因此而下降;而 SQL 在大型代码库的查询方面则已经是一种久经考验的语言,因此诸如 Spark 和 BigQuery 这样的项目都采用了它。所以,source{d} 很顺理成章地将这两种技术结合起来,就产生了 gitbase(LCTT 译注:source{d} 是一家开源公司,本文作者是该公司开发者关系副总裁)。gitbase 是一个代码即数据code-as-data的解决方案,可以使用 SQL 对 git 仓库进行大规模分析。<a href="https://github.com/src-d/gitbase">gitbase 是一个完全开源的项目。它站在了很多巨人的肩上,因此得到了足够的发展竞争力。下面就来介绍一下其中的一些“巨人”。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/131453rqezttbxqhuut259.png">Media<em>gitbase playground 为 gitbase 提供了一个可视化的操作环境。</em>用 Vitess 解析 SQLgitbase 通过 SQL 与用户进行交互,因此需要能够遵循 MySQL 协议来对通过网络传入的 SQL 请求作出解析和理解,万幸由 YouTube 建立的 <a href="https://github.com/vitessio/vitess">Vitess 项目已经在这一方面给出了解决方案。Vitess 是一个横向扩展的 MySQL 数据库集群系统。我们只是使用了这个项目中的部分重要代码,并将其转化为一个可以让任何人在数分钟以内编写出一个 MySQL 服务器的<a href="https://github.com/src-d/go-mysql-server">开源程序,就像我在 <a href="http://justforfunc.com/">justforfunc 视频系列中…
gitbase 是一个使用 go 开发的的开源项目,它实现了在 Git 仓库上执行 SQL 查询。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/131443ox250dpk3nx6fsc2.jpg">MediaGit 已经成为了代码版本控制的事实标准,但尽管 Git 相当普及,对代码仓库的深入分析的工作难度却没有因此而下降;而 SQL 在大型代码库的查询方面则已经是一种久经考验的语言,因此诸如 Spark 和 BigQuery 这样的项目都采用了它。所以,source{d} 很顺理成章地将这两种技术结合起来,就产生了 gitbase(LCTT 译注:source{d} 是一家开源公司,本文作者是该公司开发者关系副总裁)。gitbase 是一个代码即数据code-as-data的解决方案,可以使用 SQL 对 git 仓库进行大规模分析。<a href="https://github.com/src-d/gitbase">gitbase 是一个完全开源的项目。它站在了很多巨人的肩上,因此得到了足够的发展竞争力。下面就来介绍一下其中的一些“巨人”。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/131453rqezttbxqhuut259.png">Media<em>gitbase playground 为 gitbase 提供了一个可视化的操作环境。</em>用 Vitess 解析 SQLgitbase 通过 SQL 与用户进行交互,因此需要能够遵循 MySQL 协议来对通过网络传入的 SQL 请求作出解析和理解,万幸由 YouTube 建立的 <a href="https://github.com/vitessio/vitess">Vitess 项目已经在这一方面给出了解决方案。Vitess 是一个横向扩展的 MySQL 数据库集群系统。我们只是使用了这个项目中的部分重要代码,并将其转化为一个可以让任何人在数分钟以内编写出一个 MySQL 服务器的<a href="https://github.com/src-d/go-mysql-server">开源程序,就像我在 <a href="http://justforfunc.com/">justforfunc 视频系列中…
Chrony:一个类 Unix 系统上 NTP 客户端和服务器替代品
Chrony 可以更快的同步系统时钟,具有更好的时钟准确度,并且它对于那些不是一直在线的系统很有帮助。Media
via https://linux.cn/article-10250-1.html
Chrony 可以更快的同步系统时钟,具有更好的时钟准确度,并且它对于那些不是一直在线的系统很有帮助。Media
via https://linux.cn/article-10250-1.html
Chrony:一个类 Unix 系统上 NTP 客户端和服务器替代品
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/143408gzwwbvwcalflvvbb.jpg">Media</a>在这个教程中,我们会讨论如何安装和配置 <strong>Chrony</strong>,一个类 Unix 系统上 NTP 客户端和服务器的替代品。Chrony 可以更快的同步系统时钟,具有更好的时钟准确度,并且它对于那些不是一直在线的系统很有帮助。Chrony 是自由开源的,并且支持 GNU/Linux 和 BSD 衍生版(比如 FreeBSD、NetBSD)、macOS 和 Solaris 等。安装 ChronyChrony 可以从大多数 Linux 发行版的默认软件库中获得。如果你使用的是 Arch Linux,运行下面的命令来安装它:<pre class="prettyprint linenums">$ sudo pacman -S chrony</pre>在 Debian、Ubuntu、Linux Mint 上:<pre class="prettyprint linenums">$ sudo apt-get install chrony</pre>在 Fedora 上:<pre class="prettyprint linenums">$ sudo dnf install chrony</pre>当安装完成后,如果之前没有启动过的话需启动 chronyd.service 守护进程:<pre class="prettyprint linenums">$ sudo systemctl start chronyd.service</pre>使用下面的命令让它每次重启系统后自动运行:<pre class="prettyprint linenums">$ sudo systemctl enable chronyd.service</pre>为了确认 chronyd.service 已经启动,运行:<pre class="prettyprint linenums">$ sudo systemctl status chronyd.service</pre>如果一切正常,你将看到类似下面的输出:<pre class="prettyprint linenums">● chrony.service - chrony, an NTP client/serverLoaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enaActive: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s agoDocs: man:chronyd(8)man:chronyc(1)man:chrony.conf(5)Main PID: 2482 (chronyd)Tasks: 1 (limit: 2320)CGroup: /system.slice/chrony.service└─2482 /usr/sbin/chronydOct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server...Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMONOct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppmOct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server.Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200</pre>可以看到,Chrony 服务已经启动并且正在工作!配置 ChronyNTP 客户端需要…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/143408gzwwbvwcalflvvbb.jpg">Media</a>在这个教程中,我们会讨论如何安装和配置 <strong>Chrony</strong>,一个类 Unix 系统上 NTP 客户端和服务器的替代品。Chrony 可以更快的同步系统时钟,具有更好的时钟准确度,并且它对于那些不是一直在线的系统很有帮助。Chrony 是自由开源的,并且支持 GNU/Linux 和 BSD 衍生版(比如 FreeBSD、NetBSD)、macOS 和 Solaris 等。安装 ChronyChrony 可以从大多数 Linux 发行版的默认软件库中获得。如果你使用的是 Arch Linux,运行下面的命令来安装它:<pre class="prettyprint linenums">$ sudo pacman -S chrony</pre>在 Debian、Ubuntu、Linux Mint 上:<pre class="prettyprint linenums">$ sudo apt-get install chrony</pre>在 Fedora 上:<pre class="prettyprint linenums">$ sudo dnf install chrony</pre>当安装完成后,如果之前没有启动过的话需启动 chronyd.service 守护进程:<pre class="prettyprint linenums">$ sudo systemctl start chronyd.service</pre>使用下面的命令让它每次重启系统后自动运行:<pre class="prettyprint linenums">$ sudo systemctl enable chronyd.service</pre>为了确认 chronyd.service 已经启动,运行:<pre class="prettyprint linenums">$ sudo systemctl status chronyd.service</pre>如果一切正常,你将看到类似下面的输出:<pre class="prettyprint linenums">● chrony.service - chrony, an NTP client/serverLoaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enaActive: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s agoDocs: man:chronyd(8)man:chronyc(1)man:chrony.conf(5)Main PID: 2482 (chronyd)Tasks: 1 (limit: 2320)CGroup: /system.slice/chrony.service└─2482 /usr/sbin/chronydOct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server...Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMONOct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppmOct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server.Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200</pre>可以看到,Chrony 服务已经启动并且正在工作!配置 ChronyNTP 客户端需要…
Kubernetes 渐成行业趋势,迁移过程的问题怎么破?
快来收获2018年底架构实践深度复盘,看看Google、Netflix、Amazon、阿里巴巴、腾讯等海内外一线互联网公司有哪些新技术可以借鉴使用。Media
via https://linux.cn/article-10251-1.html
快来收获2018年底架构实践深度复盘,看看Google、Netflix、Amazon、阿里巴巴、腾讯等海内外一线互联网公司有哪些新技术可以借鉴使用。Media
via https://linux.cn/article-10251-1.html
[推广] Kubernetes 渐成行业趋势,迁移过程的问题怎么破?
<em>(本文为付费赞助文章)</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/154049l19wdnw373mm9gry.jpg">Media</a>据 Gartner 和麦肯锡前几年的调研数据,全球的服务器利用率只有 6% 到 12%,这一技术领域的价值还远远没有被释放,也说明最近几年 Docker 容器和编排调度 Kubernetes 的流行是行业发展的必然趋势,这些技术成为云原生时代的标配,引领了新一轮的技术浪潮。在这些迁移到 Kubernetes 的应用,要如何调整架构适应环境,又如何实施 CI/CD 简化这些流程,都是值得我们关注的问题。<strong>2018 年 12 月 7 ~ 8 日</strong>,由极客邦科技和 InfoQ 主办的 <strong>ArchSummit 全球架构师峰会</strong>将在北京国际会议中心举办,阿里巴巴高级技术专家、技术顾问张磊将与来自 Microsoft、新浪微博、阿里云、华为云的技术专家一起分享 Kubernetes 的应用。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190436b22jn19w9j5v1tni.jpg">Media</a>此外,ArchSummit 架构师峰会还请到了京东集团副总裁翁志、菜鸟网络 CTO 谷雪梅、Google 技术工程师 Xiuduan Fang,以及来自 Uber、微软、Amazon、阿里巴巴、蚂蚁金服、美团、滴滴、知乎等知名大企的 100 多位技术专家,一起探讨人工智能、微服务、开源、区块链、运维、前端等领域的先进技术思路和落地实践。部分精彩分享<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/154646zslcoz1r35ihara4.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190458bvfn5olvv5a7ev5z.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190522e1ez3e08em0hg0em.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190541nr4el818el7rarjx.jpg">Media</a>ArchSummit 北京 2018 目前 <strong>9 折优惠购త…
<em>(本文为付费赞助文章)</em><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/154049l19wdnw373mm9gry.jpg">Media</a>据 Gartner 和麦肯锡前几年的调研数据,全球的服务器利用率只有 6% 到 12%,这一技术领域的价值还远远没有被释放,也说明最近几年 Docker 容器和编排调度 Kubernetes 的流行是行业发展的必然趋势,这些技术成为云原生时代的标配,引领了新一轮的技术浪潮。在这些迁移到 Kubernetes 的应用,要如何调整架构适应环境,又如何实施 CI/CD 简化这些流程,都是值得我们关注的问题。<strong>2018 年 12 月 7 ~ 8 日</strong>,由极客邦科技和 InfoQ 主办的 <strong>ArchSummit 全球架构师峰会</strong>将在北京国际会议中心举办,阿里巴巴高级技术专家、技术顾问张磊将与来自 Microsoft、新浪微博、阿里云、华为云的技术专家一起分享 Kubernetes 的应用。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190436b22jn19w9j5v1tni.jpg">Media</a>此外,ArchSummit 架构师峰会还请到了京东集团副总裁翁志、菜鸟网络 CTO 谷雪梅、Google 技术工程师 Xiuduan Fang,以及来自 Uber、微软、Amazon、阿里巴巴、蚂蚁金服、美团、滴滴、知乎等知名大企的 100 多位技术专家,一起探讨人工智能、微服务、开源、区块链、运维、前端等领域的先进技术思路和落地实践。部分精彩分享<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/154646zslcoz1r35ihara4.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190458bvfn5olvv5a7ev5z.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190522e1ez3e08em0hg0em.jpg">Media</a><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/190541nr4el818el7rarjx.jpg">Media</a>ArchSummit 北京 2018 目前 <strong>9 折优惠购త…
设计更快的网页(三):字体和 CSS 调整
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/225442rooi2wcissa6dl4u.jpg">Media</a>欢迎回到我们为了构建更快网页所写的系列文章。本系列的<a href="https://linux.cn/article-10166-1.html">第一部分</a>和<a href="https://linux.cn/article-10217-1.html">第二部分</a>讲述了如何通过优化和替换图片来减少浏览器脂肪。本部分会着眼于在 CSS(<a href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets">层叠式样式表</a>)和字体中减掉更多的脂肪。调整 CSS首先,我们先来看看问题的源头。CSS 的出现曾是技术的一大进步。你可以用一个集中式的样式表来装饰多个网页。如今很多 Web 开发者都会使用 Bootstrap 这样的框架。这些框架当然方便,可是很多人都会将整个框架直接复制粘贴走。Bootstrap 非常大:目前 Bootstrap 4.0 的“最小”版本也有 144.9 KB. 在这个以 TB 来计数据的时代,它可能不算多。但就像所说的那样,一头小牛也能搞出大麻烦。我们回头来看 <a href="https://getfedora.org">getfedora.org</a> 的例子。我们在<a href="https://linux.cn/article-10166-1.html">第一部分</a>中提过,第一个分析结果显示 CSS 文件占用的空间几乎比 HTML 本身还要大十倍。这里显示了所有用到的样式表:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/225443ynye1kl66ybbmoo3.png">Media</a>那是九个不同的样式表。其中的很多样式在这个页面中并没有用上。移除、合并、以及压缩/缩小化Font-awesome CSS 代表了包含未使用样式的极端。这个页面中只用到了这个字体的三个字形。如果以 KB 为单位,getfedora.org 用到的 font-awesome CSS 最初有 25.2 KB. 在清理掉所有未使用的样式后,它只有 1.3…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/225442rooi2wcissa6dl4u.jpg">Media</a>欢迎回到我们为了构建更快网页所写的系列文章。本系列的<a href="https://linux.cn/article-10166-1.html">第一部分</a>和<a href="https://linux.cn/article-10217-1.html">第二部分</a>讲述了如何通过优化和替换图片来减少浏览器脂肪。本部分会着眼于在 CSS(<a href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets">层叠式样式表</a>)和字体中减掉更多的脂肪。调整 CSS首先,我们先来看看问题的源头。CSS 的出现曾是技术的一大进步。你可以用一个集中式的样式表来装饰多个网页。如今很多 Web 开发者都会使用 Bootstrap 这样的框架。这些框架当然方便,可是很多人都会将整个框架直接复制粘贴走。Bootstrap 非常大:目前 Bootstrap 4.0 的“最小”版本也有 144.9 KB. 在这个以 TB 来计数据的时代,它可能不算多。但就像所说的那样,一头小牛也能搞出大麻烦。我们回头来看 <a href="https://getfedora.org">getfedora.org</a> 的例子。我们在<a href="https://linux.cn/article-10166-1.html">第一部分</a>中提过,第一个分析结果显示 CSS 文件占用的空间几乎比 HTML 本身还要大十倍。这里显示了所有用到的样式表:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/225443ynye1kl66ybbmoo3.png">Media</a>那是九个不同的样式表。其中的很多样式在这个页面中并没有用上。移除、合并、以及压缩/缩小化Font-awesome CSS 代表了包含未使用样式的极端。这个页面中只用到了这个字体的三个字形。如果以 KB 为单位,getfedora.org 用到的 font-awesome CSS 最初有 25.2 KB. 在清理掉所有未使用的样式后,它只有 1.3…
more、less 和 most 的区别
如果你是一个 Linux 方面的新手,你可能会在 more、less、most 这三个命令行工具之间产生疑惑。Media
via https://linux.cn/article-10253-1.html
如果你是一个 Linux 方面的新手,你可能会在 more、less、most 这三个命令行工具之间产生疑惑。Media
via https://linux.cn/article-10253-1.html
more、less 和 most 的区别
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/232127o6yg63g9wtgzwgtl.png">Media</a>如果你是一个 Linux 方面的新手,你可能会在 more、less、most 这三个命令行工具之间产生疑惑。在本文当中,我会对这三个命令行工具进行对比,以及展示它们各自在 Linux 中的一些使用例子。总的来说,这几个命令行工具之间都有相通和差异,而且它们在大部分 Linux 发行版上都有自带。我们首先来看看 more 命令。more 命令more 是一个老式的、基础的终端分页阅读器,它可以用于打开指定的文件并进行交互式阅读。如果文件的内容太长,在一屏以内无法完整显示,就会逐页显示文件内容。使用回车键或者空格键可以滚动浏览文件的内容,但有一个限制,就是只能够单向滚动。也就是说只能按顺序往下翻页,而不能进行回看。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/232130w02jt4ctvcmc2rou.gif">Media</a><strong>更正</strong>有的 Linux 用户向我指出,在 more 当中是可以向上翻页的。不过,最原始版本的 more 确实只允许向下翻页,在后续出现的较新的版本中也允许了有限次数的向上翻页,只需要在浏览过程中按 b 键即可向上翻页。唯一的限制是 more 不能搭配管道使用(如 ls | more)。(LCTT 译注:此处原作者疑似有误,译者使用 more 是可以搭配管道使用的,或许与不同 more 版本有关)按 q 即可退出 more。<strong>更多示例</strong>打开 ostechnix.txt 文件进行交互式阅读,可以执行以下命令:<pre class="prettyprint linenums">$ more ostechnix.txt</pre>在阅读过程ߑ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/232127o6yg63g9wtgzwgtl.png">Media</a>如果你是一个 Linux 方面的新手,你可能会在 more、less、most 这三个命令行工具之间产生疑惑。在本文当中,我会对这三个命令行工具进行对比,以及展示它们各自在 Linux 中的一些使用例子。总的来说,这几个命令行工具之间都有相通和差异,而且它们在大部分 Linux 发行版上都有自带。我们首先来看看 more 命令。more 命令more 是一个老式的、基础的终端分页阅读器,它可以用于打开指定的文件并进行交互式阅读。如果文件的内容太长,在一屏以内无法完整显示,就会逐页显示文件内容。使用回车键或者空格键可以滚动浏览文件的内容,但有一个限制,就是只能够单向滚动。也就是说只能按顺序往下翻页,而不能进行回看。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/19/232130w02jt4ctvcmc2rou.gif">Media</a><strong>更正</strong>有的 Linux 用户向我指出,在 more 当中是可以向上翻页的。不过,最原始版本的 more 确实只允许向下翻页,在后续出现的较新的版本中也允许了有限次数的向上翻页,只需要在浏览过程中按 b 键即可向上翻页。唯一的限制是 more 不能搭配管道使用(如 ls | more)。(LCTT 译注:此处原作者疑似有误,译者使用 more 是可以搭配管道使用的,或许与不同 more 版本有关)按 q 即可退出 more。<strong>更多示例</strong>打开 ostechnix.txt 文件进行交互式阅读,可以执行以下命令:<pre class="prettyprint linenums">$ more ostechnix.txt</pre>在阅读过程ߑ…
写直白的代码
为开源项目作贡献最好的方式是为它减少代码,我们应致力于写出让新手程序员无需注释就容易理解的代码,让维护者也无需花费太多精力就能着手维护。Media
via https://linux.cn/article-10254-1.html
为开源项目作贡献最好的方式是为它减少代码,我们应致力于写出让新手程序员无需注释就容易理解的代码,让维护者也无需花费太多精力就能着手维护。Media
via https://linux.cn/article-10254-1.html
写直白的代码
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/20/000830bnjj4ojw6ea8e8t8.jpg">Media</a>为开源项目作贡献最好的方式是为它减少代码,我们应致力于写出让新手程序员无需注释就容易理解的代码,让维护者也无需花费太多精力就能着手维护。在学生时代,我们会更多地用复杂巧妙的技术去挑战新的难题。首先我们会学习循环,然后是函数啊,类啊,等等。当我们到达一定高的程度,能用更高级的技术写更长的程序,我们会因此受到称赞。此刻我们发现老司机们用 monads 而新手们用 loop 作循环。之后我们毕业找了工作,或者和他人合作开源项目。我们用在学校里学到的各种炫技寻求并骄傲地给出解决方案的代码实现。<em>哈哈,我能扩展这个项目,并实现某牛 X 功能啦,我这里能用继承啦,我太聪明啦!</em>我们实现了某个小的功能,并以充分的理由觉得自己做到了。现实项目中的编程却不是针对某某部分的功能而言。以我个人的经验而言,以前我很开心的去写代码,并骄傲地向世界展示我所知道的事情。有例为证,作为对某种编程技术的偏爱,这是用另一种元编程语言构建的一个 <a href="https://github.com/mrocklin/matrix-algebra">线性代数语言</a>,注意,这么多年以来一直没人愿意碰它。在维护了更多的代码后,我的观点发生了变化。我们不应去刻意探求如何构建软件。软件是我们为解决问题所付出的代价,那&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/20/000830bnjj4ojw6ea8e8t8.jpg">Media</a>为开源项目作贡献最好的方式是为它减少代码,我们应致力于写出让新手程序员无需注释就容易理解的代码,让维护者也无需花费太多精力就能着手维护。在学生时代,我们会更多地用复杂巧妙的技术去挑战新的难题。首先我们会学习循环,然后是函数啊,类啊,等等。当我们到达一定高的程度,能用更高级的技术写更长的程序,我们会因此受到称赞。此刻我们发现老司机们用 monads 而新手们用 loop 作循环。之后我们毕业找了工作,或者和他人合作开源项目。我们用在学校里学到的各种炫技寻求并骄傲地给出解决方案的代码实现。<em>哈哈,我能扩展这个项目,并实现某牛 X 功能啦,我这里能用继承啦,我太聪明啦!</em>我们实现了某个小的功能,并以充分的理由觉得自己做到了。现实项目中的编程却不是针对某某部分的功能而言。以我个人的经验而言,以前我很开心的去写代码,并骄傲地向世界展示我所知道的事情。有例为证,作为对某种编程技术的偏爱,这是用另一种元编程语言构建的一个 <a href="https://github.com/mrocklin/matrix-algebra">线性代数语言</a>,注意,这么多年以来一直没人愿意碰它。在维护了更多的代码后,我的观点发生了变化。我们不应去刻意探求如何构建软件。软件是我们为解决问题所付出的代价,那&…