如何弄清 Linux 系统运行何种系统管理程序
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/003654a6ytyyyomtl62ydy.jpg">Media</a>虽然我们经常听到系统管理器System Manager这词,但很少有人深究其确切意义。现在我们将向你展示其区别。我会尽自己所能来解释清楚一切。我们大多都知道 System V 和 systemd 两种系统管理器。 System V (简写 SysV) 是老式系统所使用的古老且传统的初始化系统及系统管理器。Systemd 是全新的初始化系统及系统管理器,并且已被大部分主流 Linux 发行版所采用。Linux 系统中主要有三种有名而仍在使用的初始化系统。大多数 Linux 发行版都使用其中之一。什么是初始化系统管理器?在基于 Linux/Unix 的操作系统中,init (初始化的简称) 是内核启动系统时开启的第一个进程。它持有的进程 ID(PID)号为 1,其在后台一直运行着,直到关机。init 会查找 /etc/inittab 文件中相应配置信息来确定系统的运行级别,然后根据运行级别在后台启动所有的其它进程和应用。作为 Linux 启动过程的一部分,BIOS、MBR、GRUB 和内核进程在此进程之前就被激活了。下面列出的是 Linux 的可用运行级别(存在七个运行级别,从 0 到 6)。0:停机1:单用户模式2:多用户,无 NFS(LCTT 译注:NFS 即 Network File System,网络文件系统)3:全功能多用户模式4:未使用5:X11(GUI – 图形用户界面)6:重启下面列出的是 Linux 系统中广泛使用的三种初始化系统。System V (Sys V):是类 Unix 操作系统传统的也是首款初始化系ń…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/003654a6ytyyyomtl62ydy.jpg">Media</a>虽然我们经常听到系统管理器System Manager这词,但很少有人深究其确切意义。现在我们将向你展示其区别。我会尽自己所能来解释清楚一切。我们大多都知道 System V 和 systemd 两种系统管理器。 System V (简写 SysV) 是老式系统所使用的古老且传统的初始化系统及系统管理器。Systemd 是全新的初始化系统及系统管理器,并且已被大部分主流 Linux 发行版所采用。Linux 系统中主要有三种有名而仍在使用的初始化系统。大多数 Linux 发行版都使用其中之一。什么是初始化系统管理器?在基于 Linux/Unix 的操作系统中,init (初始化的简称) 是内核启动系统时开启的第一个进程。它持有的进程 ID(PID)号为 1,其在后台一直运行着,直到关机。init 会查找 /etc/inittab 文件中相应配置信息来确定系统的运行级别,然后根据运行级别在后台启动所有的其它进程和应用。作为 Linux 启动过程的一部分,BIOS、MBR、GRUB 和内核进程在此进程之前就被激活了。下面列出的是 Linux 的可用运行级别(存在七个运行级别,从 0 到 6)。0:停机1:单用户模式2:多用户,无 NFS(LCTT 译注:NFS 即 Network File System,网络文件系统)3:全功能多用户模式4:未使用5:X11(GUI – 图形用户界面)6:重启下面列出的是 Linux 系统中广泛使用的三种初始化系统。System V (Sys V):是类 Unix 操作系统传统的也是首款初始化系ń…
在命令行使用 Pandoc 进行文件转换
这篇指南介绍如何使用 Pandoc 将文档转换为多种不同的格式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/115159kt7mokqq5m5umitr.jpg">Media</a>Pandoc 是一个命令行工具,用于将文件从一种标记语言转换为另一种标记语言。标记语言使用标签来标记文档的各个部分。常用的标记语言包括 Markdown、ReStructuredText、HTML、LaTex、ePub 和 Microsoft Word DOCX。简单来说,<a href="https://pandoc.org/">Pandoc</a> 允许你将一些文件从一种标记语言转换为另一种标记语言。典型的例子包括将 Markdown 文件转换为演示文稿、LaTeX,PDF 甚至是 ePub。本文将解释如何使用 Pandoc 从单一标记语言(在本文中为 Markdown)生成多种格式的文档,引导你完成从 Pandoc 安装,到展示如何创建多种类型的文档,再到提供有关如何编写易于移植到其他格式的文档的提示。文中还将解释使用元信息文件对文档内容和元信息(例如,作者姓名、使用的模板、书目样式等)进行分离的意义。Pandoc 安装和要求Pandoc 默认安装在大多数 Linux 发行版中。本教程使用 pandoc-2.2.3.2 和 pandoc-citeproc-0.14.3。如果不打算生成 PDF,那么这两个包就足够了。但是,我建议也安装 texlive,这样就可以选择生成 PDF 了。通过以下命令在 Linux 上安装这些程序:<pre class="prettyprint linenums">sudo apt-get install pandoc pandoc-citeproc texlive</pre>您可以在 Pandoc 的网站上找到其他平台的 <a href="http://pandoc.org/installing.html">安装说明</a>。我强烈建议安装 <a href="https://hackage.haskell.org/package/pandoc-crossref">pandoc-crossref</a>,这是一个“用于对图表,方程式,表格和交叉引用进行编号的过ଖ…
这篇指南介绍如何使用 Pandoc 将文档转换为多种不同的格式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/115159kt7mokqq5m5umitr.jpg">Media</a>Pandoc 是一个命令行工具,用于将文件从一种标记语言转换为另一种标记语言。标记语言使用标签来标记文档的各个部分。常用的标记语言包括 Markdown、ReStructuredText、HTML、LaTex、ePub 和 Microsoft Word DOCX。简单来说,<a href="https://pandoc.org/">Pandoc</a> 允许你将一些文件从一种标记语言转换为另一种标记语言。典型的例子包括将 Markdown 文件转换为演示文稿、LaTeX,PDF 甚至是 ePub。本文将解释如何使用 Pandoc 从单一标记语言(在本文中为 Markdown)生成多种格式的文档,引导你完成从 Pandoc 安装,到展示如何创建多种类型的文档,再到提供有关如何编写易于移植到其他格式的文档的提示。文中还将解释使用元信息文件对文档内容和元信息(例如,作者姓名、使用的模板、书目样式等)进行分离的意义。Pandoc 安装和要求Pandoc 默认安装在大多数 Linux 发行版中。本教程使用 pandoc-2.2.3.2 和 pandoc-citeproc-0.14.3。如果不打算生成 PDF,那么这两个包就足够了。但是,我建议也安装 texlive,这样就可以选择生成 PDF 了。通过以下命令在 Linux 上安装这些程序:<pre class="prettyprint linenums">sudo apt-get install pandoc pandoc-citeproc texlive</pre>您可以在 Pandoc 的网站上找到其他平台的 <a href="http://pandoc.org/installing.html">安装说明</a>。我强烈建议安装 <a href="https://hackage.haskell.org/package/pandoc-crossref">pandoc-crossref</a>,这是一个“用于对图表,方程式,表格和交叉引用进行编号的过ଖ…
什么是纯粹的开源社区精神,我用了十年去探索
今天,我们有一个机会,可以好好了解一下中国互联网发展史上发展最亲密的一个社群。这个社群追求的理想,让许多新东西的出现成为了可能。Media
via https://linux.cn/article-10229-1.html
今天,我们有一个机会,可以好好了解一下中国互联网发展史上发展最亲密的一个社群。这个社群追求的理想,让许多新东西的出现成为了可能。Media
via https://linux.cn/article-10229-1.html
什么是纯粹的开源社区精神,我用了十年去探索
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/145941dn6iezi3diies1ui.jpg">Media</a>人类本身是一个协作能力极强的物种,而随着很多划时代科技发明的诞生,蒸汽机、电、互联网等技术的出现,人们变的更容易聚在一起。这些小伙伴从一开始的三五成群,到最后拥有一套共同语言和认知的历史。在互联网时代,大家通过社区的力量,把开源的精神传播到世界各处。小伙伴可以更容易的组队,通过合理的分工,将不可能的事情变为可能(甚至这些小伙伴都不需要聚集在同一个办公室)。而今天,我们有一个机会,可以好好了解一下中国互联网发展史上发展最亲密的一个社群。这个社群追求的理想,让许多新东西的出现成为了可能。这到底是怎样的一个社群?怎样的一段奇妙经历?就让担任 Ruby China 论坛管理员的 Daniel 给我们好好讲述一下。(enjoy~那时我才 25 岁 这是一段超过 10 年的经历,仔细算算应该是 11 年多了。这段经历,链接了很多过去的人和很多的事, 现在的秘猿和 Nervos 社区所有的人,都是通过 Ruby 结缘的。可能要从 2007 年开始说起,那时候我才开始接触社区。当时,我在上海一家做 Ruby 技术的公司工作 。由于工作的原因,我参加了当时 Ruby 社区的一些线下活动,也机缘巧合地认识了 Ruby 社区的两个创始人:一个叫张元一,另一个叫 Steven。那段时间我…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/13/145941dn6iezi3diies1ui.jpg">Media</a>人类本身是一个协作能力极强的物种,而随着很多划时代科技发明的诞生,蒸汽机、电、互联网等技术的出现,人们变的更容易聚在一起。这些小伙伴从一开始的三五成群,到最后拥有一套共同语言和认知的历史。在互联网时代,大家通过社区的力量,把开源的精神传播到世界各处。小伙伴可以更容易的组队,通过合理的分工,将不可能的事情变为可能(甚至这些小伙伴都不需要聚集在同一个办公室)。而今天,我们有一个机会,可以好好了解一下中国互联网发展史上发展最亲密的一个社群。这个社群追求的理想,让许多新东西的出现成为了可能。这到底是怎样的一个社群?怎样的一段奇妙经历?就让担任 Ruby China 论坛管理员的 Daniel 给我们好好讲述一下。(enjoy~那时我才 25 岁 这是一段超过 10 年的经历,仔细算算应该是 11 年多了。这段经历,链接了很多过去的人和很多的事, 现在的秘猿和 Nervos 社区所有的人,都是通过 Ruby 结缘的。可能要从 2007 年开始说起,那时候我才开始接触社区。当时,我在上海一家做 Ruby 技术的公司工作 。由于工作的原因,我参加了当时 Ruby 社区的一些线下活动,也机缘巧合地认识了 Ruby 社区的两个创始人:一个叫张元一,另一个叫 Steven。那段时间我…
使用 SonarQube 追踪代码问题
通过不断分析代码以了解潜在的质量问题,开源的 SonarQube 项目支持了 DevOps 的“尽早发布和经常发布” 的思维模式。Media
via https://linux.cn/article-10230-1.html
通过不断分析代码以了解潜在的质量问题,开源的 SonarQube 项目支持了 DevOps 的“尽早发布和经常发布” 的思维模式。Media
via https://linux.cn/article-10230-1.html
使用 SonarQube 追踪代码问题
通过不断分析代码以了解潜在的质量问题,开源的 SonarQube 项目支持了 DevOps 的“尽早发布和经常发布” 的思维模式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/092831ypfrsw7f2z5iyy2w.jpg">Media</a>越来越多的组织正在实施 <a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a> 以便在通过中间开发和测试环境以后更快更好的将新代码引入到生产环境。虽然版本控制、持续集成和部署以及自动化测试都属于 DevOps 的范畴,但仍然存在一个关键问题:组织如何量化代码质量,而不仅仅是部署的速度?<a href="https://www.sonarqube.org/">SonarQube</a> 是用来填补这个空隙的一种选择。它是一个开源平台,通过代码的自动化静态分析不断的检查代码质量。 SonarQube 支持 20 多种语言的分析,并在各种类型的项目中输出和存储问题。SonarQube 同时也提供了一个可同时维护和管理不同项目、不同代码的集中的环境。可以为每个项目定制规则。持续的检查和分析代码的健康轨迹。SonarQube 还可以集成到可持续集成和开发(CI/CD)流程中,协助和自动确定代码是否为生产环境做好了准备的过程。它可以衡量什么开箱即用,SonarQube 可以测量的关键指标,包括代码错误、代码异味code smells、安全漏洞和重复的代码。<strong>代码错误</strong> 是代码中的一部分不正确或无法正常运行、可能会导致错误的结果,是指那些在代码发布到生产环境之前应该被修复的明显的错误。<a href="https://en.wikipedia.org/wiki/Code_smell">代码异味</a> 不同于代…
通过不断分析代码以了解潜在的质量问题,开源的 SonarQube 项目支持了 DevOps 的“尽早发布和经常发布” 的思维模式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/092831ypfrsw7f2z5iyy2w.jpg">Media</a>越来越多的组织正在实施 <a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a> 以便在通过中间开发和测试环境以后更快更好的将新代码引入到生产环境。虽然版本控制、持续集成和部署以及自动化测试都属于 DevOps 的范畴,但仍然存在一个关键问题:组织如何量化代码质量,而不仅仅是部署的速度?<a href="https://www.sonarqube.org/">SonarQube</a> 是用来填补这个空隙的一种选择。它是一个开源平台,通过代码的自动化静态分析不断的检查代码质量。 SonarQube 支持 20 多种语言的分析,并在各种类型的项目中输出和存储问题。SonarQube 同时也提供了一个可同时维护和管理不同项目、不同代码的集中的环境。可以为每个项目定制规则。持续的检查和分析代码的健康轨迹。SonarQube 还可以集成到可持续集成和开发(CI/CD)流程中,协助和自动确定代码是否为生产环境做好了准备的过程。它可以衡量什么开箱即用,SonarQube 可以测量的关键指标,包括代码错误、代码异味code smells、安全漏洞和重复的代码。<strong>代码错误</strong> 是代码中的一部分不正确或无法正常运行、可能会导致错误的结果,是指那些在代码发布到生产环境之前应该被修复的明显的错误。<a href="https://en.wikipedia.org/wiki/Code_smell">代码异味</a> 不同于代…
使用 Redis 和 Python 构建一个共享单车的应用程序
学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。Media
via https://linux.cn/article-10231-1.html
学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。Media
via https://linux.cn/article-10231-1.html
使用 Redis 和 Python 构建一个共享单车的应用程序
学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/112130al1dd1ctqtcs0utc.png">Media</a>我经常出差。但不是一个汽车狂热分子,所以当我有空闲时,我更喜欢在城市中散步或者骑单车。我参观过的许多城市都有共享单车系统,你可以租个单车用几个小时。大多数系统都有一个应用程序来帮助用户定位和租用他们的单车,但对于像我这样的用户来说,在一个地方可以获得可租赁的城市中所有单车的信息会更有帮助。为了解决这个问题并且展示开源的强大还有为 Web 应用程序添加位置感知的功能,我组合了可用的公开的共享单车数据、<a href="https://www.python.org/">Python</a> 编程语言以及开源的 <a href="https://redis.io/">Redis</a> 内存数据结构服务,用来索引和查询地理空间数据。由此诞生的共享单车应用程序包含来自很多不同的共享系统的数据,包括纽约市的 <a href="https://www.citibikenyc.com/">Citi Bike</a> 共享单车系统(LCTT 译注:Citi Bike 是纽约市的一个私营公共单车系统。在 2013 年 5 月 27 日正式营运,是美国最大的公共单车系统。Citi Bike 的名称有两层意思。Citi 是计划赞助商花旗银行(CitiBank)的名字。同时,Citi 和英文中“城市(city)”一词的读音相同)。它利用了花旗单车系统提供的 通用共享单车数据流General Bikeshare Feed,并利用其数据演示了一些使用 Redis 地理空间数据索引的功能。 花旗单车数据可按照 <a href="https://w…
学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/112130al1dd1ctqtcs0utc.png">Media</a>我经常出差。但不是一个汽车狂热分子,所以当我有空闲时,我更喜欢在城市中散步或者骑单车。我参观过的许多城市都有共享单车系统,你可以租个单车用几个小时。大多数系统都有一个应用程序来帮助用户定位和租用他们的单车,但对于像我这样的用户来说,在一个地方可以获得可租赁的城市中所有单车的信息会更有帮助。为了解决这个问题并且展示开源的强大还有为 Web 应用程序添加位置感知的功能,我组合了可用的公开的共享单车数据、<a href="https://www.python.org/">Python</a> 编程语言以及开源的 <a href="https://redis.io/">Redis</a> 内存数据结构服务,用来索引和查询地理空间数据。由此诞生的共享单车应用程序包含来自很多不同的共享系统的数据,包括纽约市的 <a href="https://www.citibikenyc.com/">Citi Bike</a> 共享单车系统(LCTT 译注:Citi Bike 是纽约市的一个私营公共单车系统。在 2013 年 5 月 27 日正式营运,是美国最大的公共单车系统。Citi Bike 的名称有两层意思。Citi 是计划赞助商花旗银行(CitiBank)的名字。同时,Citi 和英文中“城市(city)”一词的读音相同)。它利用了花旗单车系统提供的 通用共享单车数据流General Bikeshare Feed,并利用其数据演示了一些使用 Redis 地理空间数据索引的功能。 花旗单车数据可按照 <a href="https://w…
Sed 命令完全指南
在前面的文章中,我展示了 <a href="https://linuxhandbook.com/sed-command-basics/">Sed 命令的基本用法</a>, Sed 是一个实用的流编辑器。今天,我们准备去了解关于 Sed 更多的知识,深入了解 Sed 的运行模式。这将是你全面了解 Sed 命令的一个机会,深入挖掘它的运行细节和精妙之处。因此,如果你已经做好了准备,那就打开终端吧,<a href="https://gist.github.com/s-leroux/5cb36435bac46c10cfced26e4bf5588c">下载测试文件</a> 然后坐在电脑前:开始我们的探索之旅吧!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/191948l9y6vzqu18yz18v4.jpg">Media</a>关于 Sed 的一点点理论知识首先我们看一下 sed 的运行模式要准确理解 Sed 命令,你必须先了解工具的运行模式。当处理数据时,Sed 从输入源一次读入一行,并将它保存到所谓的模式空间pattern space中。所有 Sed 的变换都发生在模式空间。变换都是由命令行上或外部 Sed 脚本文件提供的单字母命令来描述的。大多数 Sed 命令都可以由一个地址或一个地址范围作为前导来限制它们的作用范围。默认情况下,Sed 在结束每个处理循环后输出模式空间中的内容,也就是说,输出发生在输入的下一个行覆盖模式空间之前。我们可以将这种运行模式总结如下:尝试将下一个行读入到模式空间中如果读取成功:按脚本中的顺序将所有命令应用到与那个地址匹配的当前输入行上如果 sed 没有以静默模式(-n)运行,那么将输出模式空间中的所有内容(可能会是修改过的)&…
在前面的文章中,我展示了 <a href="https://linuxhandbook.com/sed-command-basics/">Sed 命令的基本用法</a>, Sed 是一个实用的流编辑器。今天,我们准备去了解关于 Sed 更多的知识,深入了解 Sed 的运行模式。这将是你全面了解 Sed 命令的一个机会,深入挖掘它的运行细节和精妙之处。因此,如果你已经做好了准备,那就打开终端吧,<a href="https://gist.github.com/s-leroux/5cb36435bac46c10cfced26e4bf5588c">下载测试文件</a> 然后坐在电脑前:开始我们的探索之旅吧!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/14/191948l9y6vzqu18yz18v4.jpg">Media</a>关于 Sed 的一点点理论知识首先我们看一下 sed 的运行模式要准确理解 Sed 命令,你必须先了解工具的运行模式。当处理数据时,Sed 从输入源一次读入一行,并将它保存到所谓的模式空间pattern space中。所有 Sed 的变换都发生在模式空间。变换都是由命令行上或外部 Sed 脚本文件提供的单字母命令来描述的。大多数 Sed 命令都可以由一个地址或一个地址范围作为前导来限制它们的作用范围。默认情况下,Sed 在结束每个处理循环后输出模式空间中的内容,也就是说,输出发生在输入的下一个行覆盖模式空间之前。我们可以将这种运行模式总结如下:尝试将下一个行读入到模式空间中如果读取成功:按脚本中的顺序将所有命令应用到与那个地址匹配的当前输入行上如果 sed 没有以静默模式(-n)运行,那么将输出模式空间中的所有内容(可能会是修改过的)&…
Caffeinated 6.828:使用的工具
在这个课程中你将使用两套工具:一个是 x86 模拟器 QEMU,它用来运行你的内核;另一个是编译器工具链,包括汇编器、链接器、C 编译器,以及调试器,它们用来编译和测试你的内核。Media
via https://linux.cn/article-10233-1.html
在这个课程中你将使用两套工具:一个是 x86 模拟器 QEMU,它用来运行你的内核;另一个是编译器工具链,包括汇编器、链接器、C 编译器,以及调试器,它们用来编译和测试你的内核。Media
via https://linux.cn/article-10233-1.html
Caffeinated 6.828:使用的工具
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/093141rznmgo1nmnszsc1i.jpg">Media</a>在这个课程中你将使用两套工具:一个是 x86 模拟器 QEMU,它用来运行你的内核;另一个是编译器工具链,包括汇编器、链接器、C 编译器,以及调试器,它们用来编译和测试你的内核。本文有你需要去下载和安装你自己的副本相关信息。本课程假定你熟悉所有出现的 Unix 命令的用法。我们强烈推荐你使用一个 Debathena 机器去做你的实验,比如 athena.dialup.mit.edu。如果你使用运行在 Linux 上的 MIT Athena 机器,那么本课程所需要的所有软件工具都在 6.828 的存储中:只需要输入 add -f 6.828 就可以访问它们。如果你不使用 Debathena 机器,我们建议你使用一台 Linux 虚拟机。如果是这样,你可以在你的 Linux 虚拟机上构建和安装工具。我们将在下面介绍如何在 Linux 和 MacOS 计算上来构建和安装工具。在 <a href="http://www.cygwin.com">Cygwin</a> 的帮助下,在 Windows 中运行这个开发环境也是可行的。安装 cygwin,并确保安装了 flex 和 bison 包(它们在开发 header 软件包分类下面)。对于 6.828 中使用的工具中的有用的命令,请参考<a href="labguide.html">实验工具指南</a>。编译器工具链“编译器工具链“ 是一套程序,包括一个 C 编译器、汇编器和链接器,使用它们来将代码转换成可运行的二进制文件。你需要一个能够生成在 32 位 Intel 架构(x86 架构)上运行的 ELF 二进制格式程序的编译器工具链。测试你的编译器工具链现代的 Linux 和 BSD UNIX 发行版…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/093141rznmgo1nmnszsc1i.jpg">Media</a>在这个课程中你将使用两套工具:一个是 x86 模拟器 QEMU,它用来运行你的内核;另一个是编译器工具链,包括汇编器、链接器、C 编译器,以及调试器,它们用来编译和测试你的内核。本文有你需要去下载和安装你自己的副本相关信息。本课程假定你熟悉所有出现的 Unix 命令的用法。我们强烈推荐你使用一个 Debathena 机器去做你的实验,比如 athena.dialup.mit.edu。如果你使用运行在 Linux 上的 MIT Athena 机器,那么本课程所需要的所有软件工具都在 6.828 的存储中:只需要输入 add -f 6.828 就可以访问它们。如果你不使用 Debathena 机器,我们建议你使用一台 Linux 虚拟机。如果是这样,你可以在你的 Linux 虚拟机上构建和安装工具。我们将在下面介绍如何在 Linux 和 MacOS 计算上来构建和安装工具。在 <a href="http://www.cygwin.com">Cygwin</a> 的帮助下,在 Windows 中运行这个开发环境也是可行的。安装 cygwin,并确保安装了 flex 和 bison 包(它们在开发 header 软件包分类下面)。对于 6.828 中使用的工具中的有用的命令,请参考<a href="labguide.html">实验工具指南</a>。编译器工具链“编译器工具链“ 是一套程序,包括一个 C 编译器、汇编器和链接器,使用它们来将代码转换成可运行的二进制文件。你需要一个能够生成在 32 位 Intel 架构(x86 架构)上运行的 ELF 二进制格式程序的编译器工具链。测试你的编译器工具链现代的 Linux 和 BSD UNIX 发行版…
使用 Python 的 toolz 库开始函数式编程
toolz 库允许你操作函数,使其更容易理解,更容易测试代码。Media
via https://linux.cn/article-10234-1.html
toolz 库允许你操作函数,使其更容易理解,更容易测试代码。Media
via https://linux.cn/article-10234-1.html
使用 Python 的 toolz 库开始函数式编程
toolz 库允许你操作函数,使其更容易理解,更容易测试代码。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/094212wlddczeiledlztjo.png">Media</a>在这个由两部分组成的系列文章的第二部分中,我们将继续探索如何将函数式编程方法中的好想法引入到 Python中,以实现两全其美。在上一篇文章中,我们介绍了<a href="https://linux.cn/article-10222-1.html">不可变数据结构</a>。 这些数据结构使得我们可以编写“纯”函数,或者说是没有副作用的函数,仅仅接受一些参数并返回结果,同时保持良好的性能。在这篇文章中,我们使用 toolz 库来构建。 这个库具有操作此类函数的函数,并且它们在纯函数中表现得特别好。 在函数式编程世界中,它们通常被称为“高阶函数”,因为它们将函数作为参数,将函数作为结果返回。让我们从这里开始:<pre class="prettyprint linenums">def add_one_word(words, word): return words.set(words.get(word, 0) + 1)</pre>这个函数假设它的第一个参数是一个不可变的类似字典的对象,它返回一个新的类似字典的在相关位置递增的对象:这就是一个简单的频率计数器。但是,只有将它应用于单词流并做<em>归纳</em>时才有用。 我们可以使用内置模块 functools 中的归纳器。<pre class="prettyprint linenums">functools.reduce(function, stream, initializer)</pre>我们想要一个函数,应用于流,并且能能返回频率计数。我们首先使用 toolz.curry 函数:<pre class="prettyprint linenums">add_all_words = curry(functools.reduce, add_one_word)</pre>使用此版本,我们需要提供初始化程序。但是,我们不能只将 pyrsistent.m …
toolz 库允许你操作函数,使其更容易理解,更容易测试代码。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/094212wlddczeiledlztjo.png">Media</a>在这个由两部分组成的系列文章的第二部分中,我们将继续探索如何将函数式编程方法中的好想法引入到 Python中,以实现两全其美。在上一篇文章中,我们介绍了<a href="https://linux.cn/article-10222-1.html">不可变数据结构</a>。 这些数据结构使得我们可以编写“纯”函数,或者说是没有副作用的函数,仅仅接受一些参数并返回结果,同时保持良好的性能。在这篇文章中,我们使用 toolz 库来构建。 这个库具有操作此类函数的函数,并且它们在纯函数中表现得特别好。 在函数式编程世界中,它们通常被称为“高阶函数”,因为它们将函数作为参数,将函数作为结果返回。让我们从这里开始:<pre class="prettyprint linenums">def add_one_word(words, word): return words.set(words.get(word, 0) + 1)</pre>这个函数假设它的第一个参数是一个不可变的类似字典的对象,它返回一个新的类似字典的在相关位置递增的对象:这就是一个简单的频率计数器。但是,只有将它应用于单词流并做<em>归纳</em>时才有用。 我们可以使用内置模块 functools 中的归纳器。<pre class="prettyprint linenums">functools.reduce(function, stream, initializer)</pre>我们想要一个函数,应用于流,并且能能返回频率计数。我们首先使用 toolz.curry 函数:<pre class="prettyprint linenums">add_all_words = curry(functools.reduce, add_one_word)</pre>使用此版本,我们需要提供初始化程序。但是,我们不能只将 pyrsistent.m …
17 种查看 Linux 物理内存的方法
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/190200pf1w100f20a1g2s1.jpg">Media</a>大多数系统管理员在遇到性能问题时会检查 CPU 和内存利用率。Linux 中有许多实用程序可以用于检查物理内存。这些命令有助于我们检查系统中存在的物理内存,还允许用户检查各种方面的内存利用率。我们大多数人只知道很少的命令,在本文中我们试图包含所有可能的命令。你可能会想,为什么我想知道所有这些命令,而不是知道一些特定的和例行的命令呢。不要觉得没用或对此有负面的看法,因为每个人都有不同的需求和看法,所以,对于那些在寻找其它目的的人,这对于他们非常有帮助。什么是 RAM计算机内存是能够临时或永久存储信息的物理设备。RAM 代表随机存取存储器,它是一种易失性存储器,用于存储操作系统,软件和硬件使用的信息。有两种类型的内存可供选择:主存辅助内存主存是计算机的主存储器。CPU 可以直接读取或写入此内存。它固定在电脑的主板上。<strong>RAM</strong>:随机存取存储器是临时存储。关闭计算机后,此信息将消失。<strong>ROM</strong>: 只读存储器是永久存储,即使系统关闭也能保存数据。方法-1:使用 free 命令free 显示系统中空闲和已用的物理内存和交换内存的总量,以及内核使用的缓冲区和缓存。它通过解析 /proc/meminfo 来收集信息。<strong>建议阅读:</strong> <a href="https://www.2daygeek.com/free-command-to-check-memory-usage-statistics…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/190200pf1w100f20a1g2s1.jpg">Media</a>大多数系统管理员在遇到性能问题时会检查 CPU 和内存利用率。Linux 中有许多实用程序可以用于检查物理内存。这些命令有助于我们检查系统中存在的物理内存,还允许用户检查各种方面的内存利用率。我们大多数人只知道很少的命令,在本文中我们试图包含所有可能的命令。你可能会想,为什么我想知道所有这些命令,而不是知道一些特定的和例行的命令呢。不要觉得没用或对此有负面的看法,因为每个人都有不同的需求和看法,所以,对于那些在寻找其它目的的人,这对于他们非常有帮助。什么是 RAM计算机内存是能够临时或永久存储信息的物理设备。RAM 代表随机存取存储器,它是一种易失性存储器,用于存储操作系统,软件和硬件使用的信息。有两种类型的内存可供选择:主存辅助内存主存是计算机的主存储器。CPU 可以直接读取或写入此内存。它固定在电脑的主板上。<strong>RAM</strong>:随机存取存储器是临时存储。关闭计算机后,此信息将消失。<strong>ROM</strong>: 只读存储器是永久存储,即使系统关闭也能保存数据。方法-1:使用 free 命令free 显示系统中空闲和已用的物理内存和交换内存的总量,以及内核使用的缓冲区和缓存。它通过解析 /proc/meminfo 来收集信息。<strong>建议阅读:</strong> <a href="https://www.2daygeek.com/free-command-to-check-memory-usage-statistics…
我爱开源的 7 个理由
成为开源社区的一员绝对是一个明智之举,原因有很多。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/232200u1kgbq116bizdcdy.png">Media</a>这就是我为什么包括晚上和周末在内花费非常多的时间待在 <a href="https://github.com/ColinEberhardt/">GitHub</a> 上,成为开源社区的一个活跃成员。我参加过各种规模的项目,从个人项目到几个人的协作项目,乃至有数百位贡献者的项目,每一个项目都让我有新的受益。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/232202tqfpic1lzhfgq0ri.gif">Media</a>也就是说,这里有七个原因让我为开源做出贡献:<strong>它让我的技能与时俱进。</strong> 在咨询公司的管理职位工作,有时我觉得自己与创建软件的实际过程越来越远。参与开源项目使我可以重新回到我最热爱的编程之中。也使我能够体验新技术,学习新技术和语言,并且使我不被酷酷的孩子们落下。<strong>它教我如何与人打交道。</strong> 与一群素未谋面的人合作开源项目在与人交往方面能够教会你很多。你很快会发现每个人有他们自己的压力,他们自己的义务,以及不同的时间表。学习如何与一群陌生人合作是一种很好的生活技能。<strong>它使我成为一个更好的沟通者。</strong> 开源项目的维护者的时间有限。你很快就知道,要成功地贡献,你必须能够清楚、简明地表达你所做的改变、添加或修复,最重要的是,你为什么要这么做。<strong>它使我成为一个更好的开发者。</strong> 没有什么能…
成为开源社区的一员绝对是一个明智之举,原因有很多。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/232200u1kgbq116bizdcdy.png">Media</a>这就是我为什么包括晚上和周末在内花费非常多的时间待在 <a href="https://github.com/ColinEberhardt/">GitHub</a> 上,成为开源社区的一个活跃成员。我参加过各种规模的项目,从个人项目到几个人的协作项目,乃至有数百位贡献者的项目,每一个项目都让我有新的受益。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/232202tqfpic1lzhfgq0ri.gif">Media</a>也就是说,这里有七个原因让我为开源做出贡献:<strong>它让我的技能与时俱进。</strong> 在咨询公司的管理职位工作,有时我觉得自己与创建软件的实际过程越来越远。参与开源项目使我可以重新回到我最热爱的编程之中。也使我能够体验新技术,学习新技术和语言,并且使我不被酷酷的孩子们落下。<strong>它教我如何与人打交道。</strong> 与一群素未谋面的人合作开源项目在与人交往方面能够教会你很多。你很快会发现每个人有他们自己的压力,他们自己的义务,以及不同的时间表。学习如何与一群陌生人合作是一种很好的生活技能。<strong>它使我成为一个更好的沟通者。</strong> 开源项目的维护者的时间有限。你很快就知道,要成功地贡献,你必须能够清楚、简明地表达你所做的改变、添加或修复,最重要的是,你为什么要这么做。<strong>它使我成为一个更好的开发者。</strong> 没有什么能…
Terminalizer:一个记录您终端活动并且生成 Gif 图像的工具
这个工具可以帮助我们记录用户的终端活动,以帮助我们从输出的文件中找到有用的信息。Media
via https://linux.cn/article-10237-1.html
这个工具可以帮助我们记录用户的终端活动,以帮助我们从输出的文件中找到有用的信息。Media
via https://linux.cn/article-10237-1.html
Terminalizer:一个记录您终端活动并且生成 Gif 图像的工具
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/233937pys5heheqq5ve2h5.jpg">Media</a>今天我们要讨论一个广为人知的主题,我们也围绕这个主题写过许多的文章,因此我不会针对这个如何记录终端会话流程给出太多具体的资料。我们可以使用脚本命令来记录 Linux 的终端会话,这也是大家公认的一种办法。不过今天我们将来介绍一个能起到相同作用的工具 — Terminalizer。这个工具可以帮助我们记录用户的终端活动,以帮助我们从输出的文件中找到有用的信息。什么是 Terminlizer用户可以用 Terminlizer 记录他们的终端活动并且生成一个 Gif 图像。它是一个允许高度定制的 CLI 工具。用户可以在网络播放器、在线播放器上用链接分享他们记录下的文件。<strong>推荐阅读:</strong><a href="https://www.2daygeek.com/script-command-record-save-your-terminal-session-activity-linux/">Script – 一个记录您终端对话的简单工具</a><a href="https://www.2daygeek.com/automatically-record-all-users-terminal-sessions-activity-linux-script-command/">在 Linux 上自动记录/捕捉所有用户的终端对话</a><a href="https://www.2daygeek.com/teleconsole-share-terminal-session-instantly-to-anyone-in-seconds/">Teleconsole – 一个能立即与任何人分享您终端对话的工具</a><a href="https://www.2daygeek.com/tmate-instantly-share-your-terminal-session-to-anyone-in-seconds/">tmate – 立即与任何人分享您的终端对话</a><a href="https://www.2daygeek.com/peek-create-animated-gif-screen-recorder-capture-arch-linux-mint-fedora-ubuntu/">Peek – 在 Linux 里制造一个 Gif 记录器</a><a href="https://www.2daygeek.com/kgif-create-animated-gif-file-active-window-screen-recorder-capture-arch-linux-mint-fedora-ubuntu-debian-opensuse-centos/">Kgif – 一个能生成 Gif 图片,以记录窗口活动的简单 Shell 脚本</a><a href="https://www.2daygeek.com/gifine-create-animated-gif-vedio-recorder-linux-mint-debian-ubuntu/">Gifine – 在 Ubuntu/Debian 里快速制造一个 Gif 视频</a>目前没…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/15/233937pys5heheqq5ve2h5.jpg">Media</a>今天我们要讨论一个广为人知的主题,我们也围绕这个主题写过许多的文章,因此我不会针对这个如何记录终端会话流程给出太多具体的资料。我们可以使用脚本命令来记录 Linux 的终端会话,这也是大家公认的一种办法。不过今天我们将来介绍一个能起到相同作用的工具 — Terminalizer。这个工具可以帮助我们记录用户的终端活动,以帮助我们从输出的文件中找到有用的信息。什么是 Terminlizer用户可以用 Terminlizer 记录他们的终端活动并且生成一个 Gif 图像。它是一个允许高度定制的 CLI 工具。用户可以在网络播放器、在线播放器上用链接分享他们记录下的文件。<strong>推荐阅读:</strong><a href="https://www.2daygeek.com/script-command-record-save-your-terminal-session-activity-linux/">Script – 一个记录您终端对话的简单工具</a><a href="https://www.2daygeek.com/automatically-record-all-users-terminal-sessions-activity-linux-script-command/">在 Linux 上自动记录/捕捉所有用户的终端对话</a><a href="https://www.2daygeek.com/teleconsole-share-terminal-session-instantly-to-anyone-in-seconds/">Teleconsole – 一个能立即与任何人分享您终端对话的工具</a><a href="https://www.2daygeek.com/tmate-instantly-share-your-terminal-session-to-anyone-in-seconds/">tmate – 立即与任何人分享您的终端对话</a><a href="https://www.2daygeek.com/peek-create-animated-gif-screen-recorder-capture-arch-linux-mint-fedora-ubuntu/">Peek – 在 Linux 里制造一个 Gif 记录器</a><a href="https://www.2daygeek.com/kgif-create-animated-gif-file-active-window-screen-recorder-capture-arch-linux-mint-fedora-ubuntu-debian-opensuse-centos/">Kgif – 一个能生成 Gif 图片,以记录窗口活动的简单 Shell 脚本</a><a href="https://www.2daygeek.com/gifine-create-animated-gif-vedio-recorder-linux-mint-debian-ubuntu/">Gifine – 在 Ubuntu/Debian 里快速制造一个 Gif 视频</a>目前没…