命令行小技巧:读取文件的不同方式
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/000526kk3y3iwphyhkocw4.jpg">Media</a>作为图形操作系统,Fedora 的使用是令人愉快的。你可以轻松地点击完成任何任务。但你可能已经看到了,在底层还有一个强大的命令行。想要在 shell 下体验,只需要在 Fedora 系统中打开你的终端应用。这篇文章是向你展示常见的命令行使用方法的系列文章之一。在这部分,你将学习如何以不同的方式读取文件,如果你在系统中打开一个终端完成一些工作,你就有可能需要读取一两个文件。一应俱全的大餐对命令行终端的用户来说, cat 命令众所周知。 当你 cat 一个文件,你很容易的把整个文件内容展示在你的屏幕上。而真正发生在底层的是文件一次读取一行,然后一行一行写入屏幕。假设你有一个文件,叫做 myfile, 这个文件每行只有一个单词。为了简单起见,每行的单词就是这行的行号,就像这样:<pre class="prettyprint linenums">onetwothreefourfive</pre>所以如果你 cat 这个文件,你就会看到如下输出:<pre class="prettyprint linenums">$ cat myfileonetwothreefourfive</pre>并没有太惊喜,不是吗? 但是有个有趣的转折,只要使用 tac 命令,你可以从后往前 cat 这个文件。(请注意, Fedora 对这种有争议的幽默不承担任何责任!)<pre class="prettyprint linenums">$ tac myfilefivefourthreetwoone</pre>cat 命令允许你以不同的方式装饰输出,比如,你可以输出行号:<pre class="prettyprint linenums">$ cat -n myfile 1 one 2 two 3 three 4 four 5 five</pre>还有其他选项可以显示特殊字符和其ߢ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/000526kk3y3iwphyhkocw4.jpg">Media</a>作为图形操作系统,Fedora 的使用是令人愉快的。你可以轻松地点击完成任何任务。但你可能已经看到了,在底层还有一个强大的命令行。想要在 shell 下体验,只需要在 Fedora 系统中打开你的终端应用。这篇文章是向你展示常见的命令行使用方法的系列文章之一。在这部分,你将学习如何以不同的方式读取文件,如果你在系统中打开一个终端完成一些工作,你就有可能需要读取一两个文件。一应俱全的大餐对命令行终端的用户来说, cat 命令众所周知。 当你 cat 一个文件,你很容易的把整个文件内容展示在你的屏幕上。而真正发生在底层的是文件一次读取一行,然后一行一行写入屏幕。假设你有一个文件,叫做 myfile, 这个文件每行只有一个单词。为了简单起见,每行的单词就是这行的行号,就像这样:<pre class="prettyprint linenums">onetwothreefourfive</pre>所以如果你 cat 这个文件,你就会看到如下输出:<pre class="prettyprint linenums">$ cat myfileonetwothreefourfive</pre>并没有太惊喜,不是吗? 但是有个有趣的转折,只要使用 tac 命令,你可以从后往前 cat 这个文件。(请注意, Fedora 对这种有争议的幽默不承担任何责任!)<pre class="prettyprint linenums">$ tac myfilefivefourthreetwoone</pre>cat 命令允许你以不同的方式装饰输出,比如,你可以输出行号:<pre class="prettyprint linenums">$ cat -n myfile 1 one 2 two 3 three 4 four 5 five</pre>还有其他选项可以显示特殊字符和其ߢ…
如何在双系统引导下替换 Linux 发行版
在双系统引导的状态下,你可以将已安装的 Linux 发行版替换为另一个发行版,同时还可以保留原本的个人数据。Media
via https://linux.cn/article-10137-1.html
在双系统引导的状态下,你可以将已安装的 Linux 发行版替换为另一个发行版,同时还可以保留原本的个人数据。Media
via https://linux.cn/article-10137-1.html
如何在双系统引导下替换 Linux 发行版
在双系统引导的状态下,你可以将已安装的 Linux 发行版替换为另一个发行版,同时还可以保留原本的个人数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/002240jg0d00rl4devsllr.png">How to Replace One Linux Distribution With Another From Dual Boot</a>假设你的电脑上已经<a href="https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/">以双系统的形式安装了 Ubuntu 和 Windows</a>,但经过<a href="https://itsfoss.com/linux-mint-vs-ubuntu/">将 Linux Mint 与 Ubuntu 比较</a>之后,你又觉得 <a href="https://www.linuxmint.com/">Linux Mint</a> 会更适合自己的时候,你会怎样做?又该如何在<a href="https://itsfoss.com/uninstall-ubuntu-linux-windows-dual-boot/">删除 Ubuntu</a> 的同时<a href="https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/">在双系统中安装 Mint</a> 呢?你或许觉得应该首先从在双系统中卸载 <a href="https://www.ubuntu.com/">Ubuntu</a>,然后使用 Linux Mint 重新安装成双系统。但实际上并不需要这么麻烦。如果你已经在双系统引导中安装了一种 Linux 发行版,就可以轻松替换成另一个发行版了,而且也不必卸载已有的 Linux 发行版,只需要删除其所在的分区,然后在腾出的磁盘空间上安装另一个 Linux 发行版就可以了。与此同时,更换 Linux 发行版后,仍然会保留原本 home 目录中包含所有文件。下面就来详细介绍一下。在双系统引导中替换 Linux 发行版<a href="https://youtu.be/ptF2RUehbKs">https://youtu.be/ptF2RUehbKs</a>这是我的演示范例。我使用双系统引导同时安装了 Windows 10 和 Linux Mint 19,然后我会把 Linux Mint 19 替换成 Elementary OS 5,同时在替换后保留我的个人文件(包括音乐、图片、视频和 home 目录中的文件)。你需要做好以下这些准备:使用 Linux 和 Windows…
在双系统引导的状态下,你可以将已安装的 Linux 发行版替换为另一个发行版,同时还可以保留原本的个人数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/002240jg0d00rl4devsllr.png">How to Replace One Linux Distribution With Another From Dual Boot</a>假设你的电脑上已经<a href="https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/">以双系统的形式安装了 Ubuntu 和 Windows</a>,但经过<a href="https://itsfoss.com/linux-mint-vs-ubuntu/">将 Linux Mint 与 Ubuntu 比较</a>之后,你又觉得 <a href="https://www.linuxmint.com/">Linux Mint</a> 会更适合自己的时候,你会怎样做?又该如何在<a href="https://itsfoss.com/uninstall-ubuntu-linux-windows-dual-boot/">删除 Ubuntu</a> 的同时<a href="https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/">在双系统中安装 Mint</a> 呢?你或许觉得应该首先从在双系统中卸载 <a href="https://www.ubuntu.com/">Ubuntu</a>,然后使用 Linux Mint 重新安装成双系统。但实际上并不需要这么麻烦。如果你已经在双系统引导中安装了一种 Linux 发行版,就可以轻松替换成另一个发行版了,而且也不必卸载已有的 Linux 发行版,只需要删除其所在的分区,然后在腾出的磁盘空间上安装另一个 Linux 发行版就可以了。与此同时,更换 Linux 发行版后,仍然会保留原本 home 目录中包含所有文件。下面就来详细介绍一下。在双系统引导中替换 Linux 发行版<a href="https://youtu.be/ptF2RUehbKs">https://youtu.be/ptF2RUehbKs</a>这是我的演示范例。我使用双系统引导同时安装了 Windows 10 和 Linux Mint 19,然后我会把 Linux Mint 19 替换成 Elementary OS 5,同时在替换后保留我的个人文件(包括音乐、图片、视频和 home 目录中的文件)。你需要做好以下这些准备:使用 Linux 和 Windows…
2018 中国开源年度报告:数据篇
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/072354j88kv72aeadge1ge.png">Media</a>第二篇 数据篇<strong>2.1 指南针篇</strong>指南针团队使用网络爬虫与 GitHub 数据 API 获取开源代码库的数据如原代码、项目信息、项目的静态信息如项目名称、起始日期等、与动态信息如fork数、客户给与的星数等众多项目相关的信息储存在本地数据结构中。第一阶段是处理原始数据与结构化的单元,生成如排序、标签等总和数据,如此可以透过如排名、统计等信息的提供。使用机器学习、自然语言处理、数据分析等技术,综合所有数据提供如分类、搜索、推荐、评比等应用服务。另外运用图像数据库的关联技术,对于高维度智能的连接和查询、以交互方式的可视化的提供更复杂的关联呈现。<strong>开源@中国</strong><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/072354bftm39m0hn39honh.png">Media</a>如同世界各地的开发人员和各种企业,中国也经历了对于开源的无感、抵制、怀疑、观望、尝试、接受、以至于认可到支持的过程。中国在开源社区的贡献与影响力,无论在数量与品质、深度与广度都逐年的扩大与攀升。Google 以创新的形象深植在开发人员的心中,对开源的贡献例如在大数据(Hadoop、HDFS 等)、深度学习(如 TensorFlow)都是有目共睹。Microsoft 作为开源的后起之秀,投入的资源和近期的声势都开始受到认可。在 2018 年收购 GitHub 也为其投入与支持开源的决心更为凸&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/072354j88kv72aeadge1ge.png">Media</a>第二篇 数据篇<strong>2.1 指南针篇</strong>指南针团队使用网络爬虫与 GitHub 数据 API 获取开源代码库的数据如原代码、项目信息、项目的静态信息如项目名称、起始日期等、与动态信息如fork数、客户给与的星数等众多项目相关的信息储存在本地数据结构中。第一阶段是处理原始数据与结构化的单元,生成如排序、标签等总和数据,如此可以透过如排名、统计等信息的提供。使用机器学习、自然语言处理、数据分析等技术,综合所有数据提供如分类、搜索、推荐、评比等应用服务。另外运用图像数据库的关联技术,对于高维度智能的连接和查询、以交互方式的可视化的提供更复杂的关联呈现。<strong>开源@中国</strong><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/21/072354bftm39m0hn39honh.png">Media</a>如同世界各地的开发人员和各种企业,中国也经历了对于开源的无感、抵制、怀疑、观望、尝试、接受、以至于认可到支持的过程。中国在开源社区的贡献与影响力,无论在数量与品质、深度与广度都逐年的扩大与攀升。Google 以创新的形象深植在开发人员的心中,对开源的贡献例如在大数据(Hadoop、HDFS 等)、深度学习(如 TensorFlow)都是有目共睹。Microsoft 作为开源的后起之秀,投入的资源和近期的声势都开始受到认可。在 2018 年收购 GitHub 也为其投入与支持开源的决心更为凸&…
在 Linux 命令行中使用 ls 列出文件的技巧
学习一些 Linux <code>ls</code> 命令最有用的变化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/082802j7mkmqx444q44n67.png">Media</a>我在 Linux 中最先学到的命令之一就是 <code>ls</code>。了解系统中文件所在目录中的内容非常重要。能够查看和修改不仅仅是一些文件还有所有文件也很重要。我的第一个 Linux 备忘录是<a href="http://hackerspace.cs.rutgers.edu/library/General/One_Page_Linux_Manual.pdf">单页 Linux 手册</a>,它于 1999 年发布,成了我的首选参考资料。当我开始探索 Linux 时,我把它贴在桌子上并经常参考它。它在第一页第一列的底部介绍了 <code>ls -l</code> 列出文件的命令。之后,我将学习这个最基本命令的其它迭代。通过 <code>ls</code> 命令,我开始了解 Linux 文件权限的复杂性,以及哪些是我的文件,哪些需要 root 或者 sudo 权限来修改。随着时间的推移,我习惯了使用命令行,虽然我仍然使用 <code>ls -l</code> 来查找目录中的文件,但我经常使用 <code>ls -al</code>,这样我就可以看到可能需要更改的隐藏文件,比如那些配置文件。根据 Eric Fischer 在 <a href="http://www.tldp.org/LDP/LG/issue48/fischer.html">Linux 文档项目</a>中关于 <code>ls</code> 命令的文章,该命令的起源可以追溯到 1961 年 MIT 的相容分时系统Compatible Time-Sharing System(CTSS)上的 <code>listf</code> 命令。当 CTSS 被 <a href="https://en.wikipedia.org/wiki/Multics">Multics</a> 代替时,命令变为 <code>list</code>,并有像 <code>list -all</code> 的开关。根据<a href="https://en.wikipedia.org/wiki/Ls">维基百科</a>,<code>ls</code> 出现在 AT&T Unix 的原始版本中。我们今天在 Linux 系统上使用的 <code>ls</code> 命令来自 <a href="http://www.gnu.org/s/coreutils/">GNU Core Utilities</a>。大多数时候,我只使&#…
学习一些 Linux <code>ls</code> 命令最有用的变化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/082802j7mkmqx444q44n67.png">Media</a>我在 Linux 中最先学到的命令之一就是 <code>ls</code>。了解系统中文件所在目录中的内容非常重要。能够查看和修改不仅仅是一些文件还有所有文件也很重要。我的第一个 Linux 备忘录是<a href="http://hackerspace.cs.rutgers.edu/library/General/One_Page_Linux_Manual.pdf">单页 Linux 手册</a>,它于 1999 年发布,成了我的首选参考资料。当我开始探索 Linux 时,我把它贴在桌子上并经常参考它。它在第一页第一列的底部介绍了 <code>ls -l</code> 列出文件的命令。之后,我将学习这个最基本命令的其它迭代。通过 <code>ls</code> 命令,我开始了解 Linux 文件权限的复杂性,以及哪些是我的文件,哪些需要 root 或者 sudo 权限来修改。随着时间的推移,我习惯了使用命令行,虽然我仍然使用 <code>ls -l</code> 来查找目录中的文件,但我经常使用 <code>ls -al</code>,这样我就可以看到可能需要更改的隐藏文件,比如那些配置文件。根据 Eric Fischer 在 <a href="http://www.tldp.org/LDP/LG/issue48/fischer.html">Linux 文档项目</a>中关于 <code>ls</code> 命令的文章,该命令的起源可以追溯到 1961 年 MIT 的相容分时系统Compatible Time-Sharing System(CTSS)上的 <code>listf</code> 命令。当 CTSS 被 <a href="https://en.wikipedia.org/wiki/Multics">Multics</a> 代替时,命令变为 <code>list</code>,并有像 <code>list -all</code> 的开关。根据<a href="https://en.wikipedia.org/wiki/Ls">维基百科</a>,<code>ls</code> 出现在 AT&T Unix 的原始版本中。我们今天在 Linux 系统上使用的 <code>ls</code> 命令来自 <a href="http://www.gnu.org/s/coreutils/">GNU Core Utilities</a>。大多数时候,我只使&#…
PyTorch 1.0 预览版发布:Facebook 最新 AI 开源框架
Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。Media
via https://linux.cn/article-10140-1.html
Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。Media
via https://linux.cn/article-10140-1.html
PyTorch 1.0 预览版发布:Facebook 最新 AI 开源框架
Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。如果你尚不了解,<a href="https://pytorch.org/">PyTorch</a> 是一个基于 Python 的科学计算库。PyTorch 利用 <a href="https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units">GPU 超强的运算能力</a> 来实现复杂的 <a href="https://en.wikipedia.org/wiki/Tensor">张量</a> 计算 和 <a href="https://www.techopedia.com/definition/32902/deep-neural-network">深度神经网络</a>。 因此, 它被世界各地的研究人员和开发人员广泛使用。这一新的可以投入使用的 <a href="https://code.fb.com/ai-research/facebook-accelerates-ai-development-with-new-partners-and-production-capabilities-for-pytorch-1-0">预览版</a> 已于 2018 年 10 月 2 日周二在旧金山 <a href="https://www.themidwaysf.com/">The Midway</a> 举办的 <a href="https://pytorch.fbreg.com/">PyTorch 开发人员大会</a> 宣布。PyTorch 1.0 候选版本的亮点<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/084432rtvtitfvt8teo5v0.jpg">PyTorhc is Python based open source AI framework from Facebook</a>候选版本中的一些主要新功能包括:1、 JITJIT 是一个编译工具集,使研究和生产更加接近。 它包含一个基于 Python 语言的叫做 Torch Script 的脚本语言,也有能使现有代码与它自己兼容的方法。2、 全新的 torch.distributed 库: “C10D”“C10D” 能够在不同的后端上启用异步操作, 并在较慢的网络上提高性能。3、 C++ 前端 (实验性功能)虽然它被特别提到是一个不稳定的 API (估计是在预发行版中), 这是一个 PyTorch 后端的纯 C++ 接口, 遵循 API 和建立的 Python 前端的体系结构,以实现高性能、低延迟的研究和开发直接安装在硬件上的 C++ 应用程序。想要了解更多,可以在 GitHub 上查看完整的 <a href="https://github.com/pytorch/pytorch/releases/tag/v1.0rc0">&…
Facebook 在人工智能项目中广泛使用自己的开源 AI 框架 PyTorch,最近,他们已经发布了 PyTorch 1.0 的预览版本。如果你尚不了解,<a href="https://pytorch.org/">PyTorch</a> 是一个基于 Python 的科学计算库。PyTorch 利用 <a href="https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units">GPU 超强的运算能力</a> 来实现复杂的 <a href="https://en.wikipedia.org/wiki/Tensor">张量</a> 计算 和 <a href="https://www.techopedia.com/definition/32902/deep-neural-network">深度神经网络</a>。 因此, 它被世界各地的研究人员和开发人员广泛使用。这一新的可以投入使用的 <a href="https://code.fb.com/ai-research/facebook-accelerates-ai-development-with-new-partners-and-production-capabilities-for-pytorch-1-0">预览版</a> 已于 2018 年 10 月 2 日周二在旧金山 <a href="https://www.themidwaysf.com/">The Midway</a> 举办的 <a href="https://pytorch.fbreg.com/">PyTorch 开发人员大会</a> 宣布。PyTorch 1.0 候选版本的亮点<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/084432rtvtitfvt8teo5v0.jpg">PyTorhc is Python based open source AI framework from Facebook</a>候选版本中的一些主要新功能包括:1、 JITJIT 是一个编译工具集,使研究和生产更加接近。 它包含一个基于 Python 语言的叫做 Torch Script 的脚本语言,也有能使现有代码与它自己兼容的方法。2、 全新的 torch.distributed 库: “C10D”“C10D” 能够在不同的后端上启用异步操作, 并在较慢的网络上提高性能。3、 C++ 前端 (实验性功能)虽然它被特别提到是一个不稳定的 API (估计是在预发行版中), 这是一个 PyTorch 后端的纯 C++ 接口, 遵循 API 和建立的 Python 前端的体系结构,以实现高性能、低延迟的研究和开发直接安装在硬件上的 C++ 应用程序。想要了解更多,可以在 GitHub 上查看完整的 <a href="https://github.com/pytorch/pytorch/releases/tag/v1.0rc0">&…
Grank:如何评估一个 Github 项目的活跃度
本文为 Grank(Github Rank)的简介及相关思路的介绍。Media
via https://linux.cn/article-10141-1.html
本文为 Grank(Github Rank)的简介及相关思路的介绍。Media
via https://linux.cn/article-10141-1.html
Grank:如何评估一个 Github 项目的活跃度
本文为 Grank(Github Rank)的简介及相关思路的介绍。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/145255spb0n4hhcwycz8ic.jpg">Media</a>在深圳刚刚结束的 CosCon 2018 大会上发布了《<a href="https://linux.cn/article-10135-1.html">中国开源调查报告</a>》,<a href="https://linux.cn/article-10135-1.html">Grank</a> 作为其中<a href="https://linux.cn/article-10138-1.html">数据篇</a>的部分数据提供者,构建了一个 Github 项目活跃度、社区化的模型,并以 Python 实现。项目地址: <a href="https://github.com/lctt/grank/">https://github.com/lctt/grank/</a>Grank 模型我们认为,一个健康的开源项目应该体现为以下两个方面:项目的活跃度趋势项目的社区化(去中心化)程度而这两个方面分别有多个因素组成:活跃度和活跃度趋势项目的活跃度,我们定义为项目的提交数、 拉取请求数和贡献者数(其它数据,如代码行数、文件数、issue 数、 fork 数、star 数,要么是权重相对低得多,要么是代表意义不够确定,此处忽略不计入模型)。但是,对于不同的项目,其横向比较其活跃度,或有不同的活跃度形态,或不具备可比性。很难说一个项目比另外一个项目的提交数高,而拉取请求(PR)数低代表的确切含义。因此我们不认为对不同项目的这些数据进行绝对值的比较有太多的科学意义。所以,我们认为一个项目本身的活跃度变化的趋势和幅度,会更有项目间比较的意义。如果以三维空间来描述一个项目的活跃度,以提交数、拉取请求数、贡献者数为三维,&#…
本文为 Grank(Github Rank)的简介及相关思路的介绍。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/145255spb0n4hhcwycz8ic.jpg">Media</a>在深圳刚刚结束的 CosCon 2018 大会上发布了《<a href="https://linux.cn/article-10135-1.html">中国开源调查报告</a>》,<a href="https://linux.cn/article-10135-1.html">Grank</a> 作为其中<a href="https://linux.cn/article-10138-1.html">数据篇</a>的部分数据提供者,构建了一个 Github 项目活跃度、社区化的模型,并以 Python 实现。项目地址: <a href="https://github.com/lctt/grank/">https://github.com/lctt/grank/</a>Grank 模型我们认为,一个健康的开源项目应该体现为以下两个方面:项目的活跃度趋势项目的社区化(去中心化)程度而这两个方面分别有多个因素组成:活跃度和活跃度趋势项目的活跃度,我们定义为项目的提交数、 拉取请求数和贡献者数(其它数据,如代码行数、文件数、issue 数、 fork 数、star 数,要么是权重相对低得多,要么是代表意义不够确定,此处忽略不计入模型)。但是,对于不同的项目,其横向比较其活跃度,或有不同的活跃度形态,或不具备可比性。很难说一个项目比另外一个项目的提交数高,而拉取请求(PR)数低代表的确切含义。因此我们不认为对不同项目的这些数据进行绝对值的比较有太多的科学意义。所以,我们认为一个项目本身的活跃度变化的趋势和幅度,会更有项目间比较的意义。如果以三维空间来描述一个项目的活跃度,以提交数、拉取请求数、贡献者数为三维,&#…
Grank:如何评估一个 Github 项目的活跃度
本文为 Grank(Github Rank)的简介及相关思路的介绍。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/145255spb0n4hhcwycz8ic.jpg">Media</a>在深圳刚刚结束的 CosCon 2018 大会上发布了《<a href="https://linux.cn/article-10135-1.html">中国开源调查报告</a>》,<a href="https://linux.cn/article-10135-1.html">Grank</a> 作为其中<a href="https://linux.cn/article-10138-1.html">数据篇</a>的部分数据提供者,构建了一个 Github 项目活跃度、社区化的模型,并以 Python 实现。项目地址: <a href="https://github.com/lctt/grank/">https://github.com/lctt/grank/</a>Grank 模型我们认为,一个健康的开源项目应该体现为以下两个方面:项目的活跃度趋势项目的社区化(去中心化)程度而这两个方面分别有多个因素组成:活跃度和活跃度趋势项目的活跃度,我们定义为项目的提交数、 拉取请求数和贡献者数(其它数据,如代码行数、文件数、issue 数、 fork 数、star 数,要么是权重相对低得多,要么是代表意义不够确定,此处忽略不计入模型)。但是,对于不同的项目,其横向比较其活跃度,或有不同的活跃度形态,或不具备可比性。很难说一个项目比另外一个项目的提交数高,而拉取请求(PR)数低代表的确切含义。因此我们不认为对不同项目的这些数据进行绝对值的比较有太多的科学意义。所以,我们认为一个项目本身的活跃度变化的趋势和幅度,会更有项目间比较的意义。如果以三维空间来描述一个项目的活跃度,以提交数、拉取请求数、贡献者数为三维,&#…
本文为 Grank(Github Rank)的简介及相关思路的介绍。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/145255spb0n4hhcwycz8ic.jpg">Media</a>在深圳刚刚结束的 CosCon 2018 大会上发布了《<a href="https://linux.cn/article-10135-1.html">中国开源调查报告</a>》,<a href="https://linux.cn/article-10135-1.html">Grank</a> 作为其中<a href="https://linux.cn/article-10138-1.html">数据篇</a>的部分数据提供者,构建了一个 Github 项目活跃度、社区化的模型,并以 Python 实现。项目地址: <a href="https://github.com/lctt/grank/">https://github.com/lctt/grank/</a>Grank 模型我们认为,一个健康的开源项目应该体现为以下两个方面:项目的活跃度趋势项目的社区化(去中心化)程度而这两个方面分别有多个因素组成:活跃度和活跃度趋势项目的活跃度,我们定义为项目的提交数、 拉取请求数和贡献者数(其它数据,如代码行数、文件数、issue 数、 fork 数、star 数,要么是权重相对低得多,要么是代表意义不够确定,此处忽略不计入模型)。但是,对于不同的项目,其横向比较其活跃度,或有不同的活跃度形态,或不具备可比性。很难说一个项目比另外一个项目的提交数高,而拉取请求(PR)数低代表的确切含义。因此我们不认为对不同项目的这些数据进行绝对值的比较有太多的科学意义。所以,我们认为一个项目本身的活跃度变化的趋势和幅度,会更有项目间比较的意义。如果以三维空间来描述一个项目的活跃度,以提交数、拉取请求数、贡献者数为三维,&#…
2018 中国开源年度报告:洞察篇
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/192202mjcsfzj1b4norncd.png">Media</a>第三篇 洞察篇3.1 驱动开源背后的重要力量<strong>引子</strong>你有没有觉得开源就像有着魔力般的存在?不仅让人对它的产生发生好奇之心,连它的背后运转的过程更是谜一样存在,令人欲罢不能。来自互联网的某个人或某个小团队,发起了一个项目(多数时候是软件),以自由的名义,竟然改变了世界的发展的轨迹,它们有 Linux Kernel 软件项目、Wikipedia 知识、大数据分布式计算算法、人工智能之机器学习、区块链之加密货币等等。以下内容,尝试从工程、方法论的角度阐释开源背后的驱动力所在。开源软件和软件本身比较起来,还算是个“年青人”,正是处于蓬勃向上的嗷嗷叫的时光。1998 年,Bruce Perens 和 Eric S. Raymand 联手创建了开放源代码促进会,正式的将开源软件定义公布于世,成为独立于自由软件之外的一股力量。于是,一个试图平衡商业和热爱自由的程序员之间的张力的理念诞生了,从此一发不可收拾,直到今天,成为了整个互联网和基础设施软件的中流砥柱。<strong>社区是什么?</strong>毫无疑问,现代软件的复杂程度已经超越了任何单个个人的智力和技能的极限,它就像世界上其它的复杂事物一样,需要多人协作来共同完成。我们以 Linux 为例,简单聊一下社区。Linux 系统是一门公共的匠艺,Linux 程序的内核&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/192202mjcsfzj1b4norncd.png">Media</a>第三篇 洞察篇3.1 驱动开源背后的重要力量<strong>引子</strong>你有没有觉得开源就像有着魔力般的存在?不仅让人对它的产生发生好奇之心,连它的背后运转的过程更是谜一样存在,令人欲罢不能。来自互联网的某个人或某个小团队,发起了一个项目(多数时候是软件),以自由的名义,竟然改变了世界的发展的轨迹,它们有 Linux Kernel 软件项目、Wikipedia 知识、大数据分布式计算算法、人工智能之机器学习、区块链之加密货币等等。以下内容,尝试从工程、方法论的角度阐释开源背后的驱动力所在。开源软件和软件本身比较起来,还算是个“年青人”,正是处于蓬勃向上的嗷嗷叫的时光。1998 年,Bruce Perens 和 Eric S. Raymand 联手创建了开放源代码促进会,正式的将开源软件定义公布于世,成为独立于自由软件之外的一股力量。于是,一个试图平衡商业和热爱自由的程序员之间的张力的理念诞生了,从此一发不可收拾,直到今天,成为了整个互联网和基础设施软件的中流砥柱。<strong>社区是什么?</strong>毫无疑问,现代软件的复杂程度已经超越了任何单个个人的智力和技能的极限,它就像世界上其它的复杂事物一样,需要多人协作来共同完成。我们以 Linux 为例,简单聊一下社区。Linux 系统是一门公共的匠艺,Linux 程序的内核&…
如何在 Arch Linux(UEFI)上安装 GRUB
几周前,我不得不在我的笔记本上从头开始重新安装 Arch Linux,同时我发现安装 Grub 并不像我想的那么简单。Media
via https://linux.cn/article-10143-1.html
几周前,我不得不在我的笔记本上从头开始重新安装 Arch Linux,同时我发现安装 Grub 并不像我想的那么简单。Media
via https://linux.cn/article-10143-1.html
如何在 Arch Linux(UEFI)上安装 GRUB
Media前段时间,我写了一篇在安装 Windows 后在 Arch Linux 上如何重新安装 Grub的教程。几周前,我不得不在我的笔记本上从头开始重新安装 Arch Linux,同时我发现安装 Grub 并不像我想的那么简单。出于这个原因,由于在新安装 Arch Linux 时在 UEFI bios 中安装 Grub 并不容易,所以我要写这篇教程。定位 EFI 分区在 Arch Linux 上安装 Grub 的第一件重要事情是定位 EFI 分区。让我们运行以下命令以找到此分区:
via https://linux.cn/article-10143-1.html?utm_source=rss&utm_medium=rss
Media前段时间,我写了一篇在安装 Windows 后在 Arch Linux 上如何重新安装 Grub的教程。几周前,我不得不在我的笔记本上从头开始重新安装 Arch Linux,同时我发现安装 Grub 并不像我想的那么简单。出于这个原因,由于在新安装 Arch Linux 时在 UEFI bios 中安装 Grub 并不容易,所以我要写这篇教程。定位 EFI 分区在 Arch Linux 上安装 Grub 的第一件重要事情是定位 EFI 分区。让我们运行以下命令以找到此分区:
# fdisk -l我们需要检查标记为 EFI System 的分区,我这里是 /dev/sda2。之后,我们需要在例如 /boot/efi 上挂载这个分区:
# mkdir /boot/efi# mount /dev/sdb2 /boot/efi另一件重要的事情是将此分区添加到 /etc/fstab 中。安装 Grub现在我们可以在我们的系统中安装 Grub:
# grub-mkconfig -o /boot/grub/grub.cfg# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB自动将 Windows 添加到 Grub 菜单中为了自动将 Windows 条目添加到 Grub 菜单,我们需要安装 os-prober:
# pacman -Sy os-prober要添加它,让我们运行以下命令:
# os-prober# grub-mkconfig -o /boot/grub/grub.cfg# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB你可以在这里找到更多关于在 Arch Linux 上 Grub 的信息。via: http://fasterland.net/how-to-install-grub-on-arch-linux-uefi.html作者:Francesco Mondello 选题:lujun9972 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-10143-1.html?utm_source=rss&utm_medium=rss
系统管理员需知的 16 个 iptables 使用技巧
iptables 是一款控制系统进出流量的强大配置工具。Media
via https://linux.cn/article-10144-1.html
iptables 是一款控制系统进出流量的强大配置工具。Media
via https://linux.cn/article-10144-1.html
系统管理员需知的 16 个 iptables 使用技巧
iptables 是一款控制系统进出流量的强大配置工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/224826corrbcmnpruin488.jpg">Media</a>现代 Linux 内核带有一个叫 <a href="https://en.wikipedia.org/wiki/Netfilter">Netfilter</a> 的数据包过滤框架。Netfilter 提供了允许、丢弃以及修改等操作来控制进出系统的流量数据包。基于 Netfilter 框架的用户层命令行工具 iptables 提供了强大的防火墙配置功能,允许你添加规则来构建防火墙策略。<a href="https://en.wikipedia.org/wiki/Iptables">iptables</a> 丰富复杂的功能以及其巴洛克式命令语法可能让人难以驾驭。我们就来探讨一下其中的一些功能,提供一些系统管理员解决某些问题需要的使用技巧。避免封锁自己应用场景:假设你将对公司服务器上的防火墙规则进行修改,你需要避免封锁你自己以及其他同事的情况(这将会带来一定时间和金钱的损失,也许一旦发生马上就有部门打电话找你了)技巧 #1: 开始之前先备份一下 iptables 配置文件。用如下命令备份配置文件:<pre class="prettyprint linenums">/sbin/iptables-save > /root/iptables-works</pre>技巧 #2: 更妥当的做法,给文件加上时间戳。用如下命令加时间戳:<pre class="prettyprint linenums">/sbin/iptables-save > /root/iptables-works-`date +%F`</pre>然后你就可以生成如下名字的文件:<pre class="prettyprint linenums">/root/iptables-works-2018-09-11</pre>这样万一使得系统不工作了,你也可以很快的利用备份文件恢复原状:<pre class="prettyprint linenums">/sbin/iptables-restore < /root/iptables-works-2018-09-11</pre>技巧 #3: 每次创建 iptables 配置文件副本时,都创建一个指向最新的文件的链接。<pre class="prettyprint linenums">ln –s /root/iptables-works…
iptables 是一款控制系统进出流量的强大配置工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/22/224826corrbcmnpruin488.jpg">Media</a>现代 Linux 内核带有一个叫 <a href="https://en.wikipedia.org/wiki/Netfilter">Netfilter</a> 的数据包过滤框架。Netfilter 提供了允许、丢弃以及修改等操作来控制进出系统的流量数据包。基于 Netfilter 框架的用户层命令行工具 iptables 提供了强大的防火墙配置功能,允许你添加规则来构建防火墙策略。<a href="https://en.wikipedia.org/wiki/Iptables">iptables</a> 丰富复杂的功能以及其巴洛克式命令语法可能让人难以驾驭。我们就来探讨一下其中的一些功能,提供一些系统管理员解决某些问题需要的使用技巧。避免封锁自己应用场景:假设你将对公司服务器上的防火墙规则进行修改,你需要避免封锁你自己以及其他同事的情况(这将会带来一定时间和金钱的损失,也许一旦发生马上就有部门打电话找你了)技巧 #1: 开始之前先备份一下 iptables 配置文件。用如下命令备份配置文件:<pre class="prettyprint linenums">/sbin/iptables-save > /root/iptables-works</pre>技巧 #2: 更妥当的做法,给文件加上时间戳。用如下命令加时间戳:<pre class="prettyprint linenums">/sbin/iptables-save > /root/iptables-works-`date +%F`</pre>然后你就可以生成如下名字的文件:<pre class="prettyprint linenums">/root/iptables-works-2018-09-11</pre>这样万一使得系统不工作了,你也可以很快的利用备份文件恢复原状:<pre class="prettyprint linenums">/sbin/iptables-restore < /root/iptables-works-2018-09-11</pre>技巧 #3: 每次创建 iptables 配置文件副本时,都创建一个指向最新的文件的链接。<pre class="prettyprint linenums">ln –s /root/iptables-works…
5 个很酷的平铺窗口管理器
Linux 桌面生态中有多种窗口管理器(WM)。有些是作为桌面环境的一部分开发的。有的则被用作独立程序。平铺窗口管理器就是这种情况,它提供了一个更轻量级的自定义环境。Media
via https://linux.cn/article-10145-1.html
Linux 桌面生态中有多种窗口管理器(WM)。有些是作为桌面环境的一部分开发的。有的则被用作独立程序。平铺窗口管理器就是这种情况,它提供了一个更轻量级的自定义环境。Media
via https://linux.cn/article-10145-1.html
5 个很酷的平铺窗口管理器
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/23/221336pyy3mdxbyebcbcj3.jpg">Media</a>Linux 桌面生态中有多种窗口管理器(WM)。有些是作为桌面环境的一部分开发的。有的则被用作独立程序。平铺窗口管理器就是这种情况,它提供了一个更轻量级的自定义环境。本文介绍了五种这样的平铺窗口管理器供你试用。i3<a href="https://i3wm.org/">i3</a> 是最受欢迎的平铺窗口管理器之一。与大多数其他此类 WM 一样,i3 专注于低资源消耗和用户可定制性。您可以参考 <a href="https://fedoramagazine.org/getting-started-i3-window-manager/">Magazine 上的这篇文章</a>了解 i3 安装细节以及如何配置它。sway<a href="https://swaywm.org/">sway</a> 是一个平铺 Wayland 合成器。它有与现有 i3 配置兼容的优点,因此你可以使用它来替换 i3 并使用 Wayland 作为显示协议。您可以使用 dnf 从 Fedora 仓库安装 sway:<pre class="prettyprint linenums">$ sudo dnf install sway</pre>如果你想从 i3 迁移到 sway,这里有一个<a href="https://github.com/swaywm/sway/wiki/i3-Migration-Guide">迁移指南</a>。Qtile<a href="http://www.qtile.org/">Qtile</a> 是另一个平铺管理器,也恰好是用 Python 编写的。默认情况下,你在位于 ~/.config/qtile/config.py 下的 Python 脚本中配置 Qtile。当此脚本不存在时,Qtile 会使用默认<a href="https://github.com/qtile/qtile/blob/develop/libqtile/resources/default_config.py">配置</a>。Qtile 使用 Python 的一个好处是你可以编写脚本来控制 WM。例如,以下脚本打印屏幕详细信息:<pre class="prettyprint linenums">> from libqtile.command import Client> c = Client()> print(c.screen.info){'index': 0, 'width': 1920, 'height': 1006, 'x': 0, 'y': 0}</pre>要在 Fedora 上安装 Qlite,请使用以下命令:<pre class="prettyprint linenums">$ sudo dnf install qtile</pre>dwm<a href="https://dwm.suckless.org/">dwm</a> 窗口管理器更侧重于轻量级。该项目的一个目标是保持 dwm…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/23/221336pyy3mdxbyebcbcj3.jpg">Media</a>Linux 桌面生态中有多种窗口管理器(WM)。有些是作为桌面环境的一部分开发的。有的则被用作独立程序。平铺窗口管理器就是这种情况,它提供了一个更轻量级的自定义环境。本文介绍了五种这样的平铺窗口管理器供你试用。i3<a href="https://i3wm.org/">i3</a> 是最受欢迎的平铺窗口管理器之一。与大多数其他此类 WM 一样,i3 专注于低资源消耗和用户可定制性。您可以参考 <a href="https://fedoramagazine.org/getting-started-i3-window-manager/">Magazine 上的这篇文章</a>了解 i3 安装细节以及如何配置它。sway<a href="https://swaywm.org/">sway</a> 是一个平铺 Wayland 合成器。它有与现有 i3 配置兼容的优点,因此你可以使用它来替换 i3 并使用 Wayland 作为显示协议。您可以使用 dnf 从 Fedora 仓库安装 sway:<pre class="prettyprint linenums">$ sudo dnf install sway</pre>如果你想从 i3 迁移到 sway,这里有一个<a href="https://github.com/swaywm/sway/wiki/i3-Migration-Guide">迁移指南</a>。Qtile<a href="http://www.qtile.org/">Qtile</a> 是另一个平铺管理器,也恰好是用 Python 编写的。默认情况下,你在位于 ~/.config/qtile/config.py 下的 Python 脚本中配置 Qtile。当此脚本不存在时,Qtile 会使用默认<a href="https://github.com/qtile/qtile/blob/develop/libqtile/resources/default_config.py">配置</a>。Qtile 使用 Python 的一个好处是你可以编写脚本来控制 WM。例如,以下脚本打印屏幕详细信息:<pre class="prettyprint linenums">> from libqtile.command import Client> c = Client()> print(c.screen.info){'index': 0, 'width': 1920, 'height': 1006, 'x': 0, 'y': 0}</pre>要在 Fedora 上安装 Qlite,请使用以下命令:<pre class="prettyprint linenums">$ sudo dnf install qtile</pre>dwm<a href="https://dwm.suckless.org/">dwm</a> 窗口管理器更侧重于轻量级。该项目的一个目标是保持 dwm…