一窥你安装的 Linux 软件包
这些最有用的命令可以让你了解安装在你的 Debian 类的 Linux 系统上的包的情况。Media
via https://linux.cn/article-10160-1.html
这些最有用的命令可以让你了解安装在你的 Debian 类的 Linux 系统上的包的情况。Media
via https://linux.cn/article-10160-1.html
一窥你安装的 Linux 软件包
这些最有用的命令可以让你了解安装在你的 Debian 类的 Linux 系统上的包的情况。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/27/095619ks5en1rsgvguoojs.jpg">Media</a>你有没有想过你的 Linux 系统上安装了几千个软件包? 是的,我说的是“千”。 即使是相当一般的 Linux 系统也可能安装了上千个软件包。 有很多方法可以获得这些包到底是什么包的详细信息。首先,要在基于 Debian 的发行版(如 Ubuntu)上快速得到已安装的软件包数量,请使用 apt list --installed, 如下:<pre class="prettyprint linenums">$ apt list --installed | wc -l2067</pre>这个数字实际上多了一个,因为输出中包含了 “Listing …” 作为它的第一行。 这个命令会更准确:<pre class="prettyprint linenums">$ apt list --installed | grep -v "^Listing" | wc -l2066</pre>要获得所有这些包的详细信息,请按以下方式浏览列表:<pre class="prettyprint linenums">$ apt list --installed | moreListing...a11y-profile-manager-indicator/xenial,now 0.1.10-0ubuntu3 amd64 [installed]account-plugin-aim/xenial,now 3.12.11-0ubuntu3 amd64 [installed]account-plugin-facebook/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-flickr/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-google/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-jabber/xenial,now 3.12.11-0ubuntu3 amd64 [installed]account-plugin-salut/xenial,now 3.12.11-0ubuntu3 amd64 [installed]</pre>这需要观察很多细节 —— 特别是让你的眼睛在所有 2000 多个文件中徘徊。 它包含包名称、版本等,以及更多但并不是以最易于我们人类解析的显示信息。 dpkg-query 使得描述更容易理解,但这些描述会塞满你的命令窗口,除非窗口非常宽。 因此,为了让此篇文章更容易阅读,下面的数据显示已经分成了左右两侧。左侧:<pre class="prettyprint linenums">$ dpkg-query -l | moreDesired=Unknown/Install/Remove/Purge/Hold| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)||/…
这些最有用的命令可以让你了解安装在你的 Debian 类的 Linux 系统上的包的情况。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/27/095619ks5en1rsgvguoojs.jpg">Media</a>你有没有想过你的 Linux 系统上安装了几千个软件包? 是的,我说的是“千”。 即使是相当一般的 Linux 系统也可能安装了上千个软件包。 有很多方法可以获得这些包到底是什么包的详细信息。首先,要在基于 Debian 的发行版(如 Ubuntu)上快速得到已安装的软件包数量,请使用 apt list --installed, 如下:<pre class="prettyprint linenums">$ apt list --installed | wc -l2067</pre>这个数字实际上多了一个,因为输出中包含了 “Listing …” 作为它的第一行。 这个命令会更准确:<pre class="prettyprint linenums">$ apt list --installed | grep -v "^Listing" | wc -l2066</pre>要获得所有这些包的详细信息,请按以下方式浏览列表:<pre class="prettyprint linenums">$ apt list --installed | moreListing...a11y-profile-manager-indicator/xenial,now 0.1.10-0ubuntu3 amd64 [installed]account-plugin-aim/xenial,now 3.12.11-0ubuntu3 amd64 [installed]account-plugin-facebook/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-flickr/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-google/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]account-plugin-jabber/xenial,now 3.12.11-0ubuntu3 amd64 [installed]account-plugin-salut/xenial,now 3.12.11-0ubuntu3 amd64 [installed]</pre>这需要观察很多细节 —— 特别是让你的眼睛在所有 2000 多个文件中徘徊。 它包含包名称、版本等,以及更多但并不是以最易于我们人类解析的显示信息。 dpkg-query 使得描述更容易理解,但这些描述会塞满你的命令窗口,除非窗口非常宽。 因此,为了让此篇文章更容易阅读,下面的数据显示已经分成了左右两侧。左侧:<pre class="prettyprint linenums">$ dpkg-query -l | moreDesired=Unknown/Install/Remove/Purge/Hold| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)||/…
为什么 Python 这么慢?
对于一个类似的程序,Python 要比其它语言慢 2 到 10 倍不等,这其中的原因是什么?又有没有改善的方法呢?Media
via https://linux.cn/article-10161-1.html
对于一个类似的程序,Python 要比其它语言慢 2 到 10 倍不等,这其中的原因是什么?又有没有改善的方法呢?Media
via https://linux.cn/article-10161-1.html
为什么 Python 这么慢?
Python 现在越来越火,已经迅速扩张到包括 DevOps、数据科学、Web 开发、信息安全等各个领域当中。然而,相比起 Python 扩张的速度,Python 代码的运行速度就显得有点逊色了。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/27/114058v8793uq037m9007f.jpg">Media在代码运行速度方面,Java、C、C++、C# 和 Python 要如何进行比较呢?并没有一个放之四海而皆准的标准,因为具体结果很大程度上取决于运行的程序类型,而语言基准测试Computer Language Benchmarks Games可以作为<a href="http://algs4.cs.princeton.edu/faq/">衡量的一个方面。根据我这些年来进行语言基准测试的经验来看,Python 比很多语言运行起来都要慢。无论是使用 <a href="https://en.wikipedia.org/wiki/Just-in-time_compilation">JIT 编译器的 C#、Java,还是使用 <a href="https://en.wikipedia.org/wiki/Ahead-of-time_compilation">AOT 编译器的 C、C++,又或者是 JavaScript 这些解释型语言,Python 都<a href="https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/python.html">比它们运行得慢。注意:对于文中的 &ldquo<a href="https://dn-linuxcn.qbox.me/static/image/smiley/default/titter.gif">Mediaython” ,一般指 CPython 这个官方的实现。当然我也会在本文中提到其它语言的 Python 实现。我要回答的是这个问题:对于一个类似的程序,Python 要比其它语言慢 2 到 10 倍不等,这其中的原因是什么?又有没有改善的方法呢?主流的说法有这些:“是全局解释器锁Global Interpreter Lock(GIL)的原因”“是因为 Python 是解释型语言而不是编译型语言”“是因为 Python 是一种动态类型的语言”哪一个才是是影响 Python 运行效率的主要原因呢?是全局解释器锁的原因吗?现在很多计算机都配ã…
Python 现在越来越火,已经迅速扩张到包括 DevOps、数据科学、Web 开发、信息安全等各个领域当中。然而,相比起 Python 扩张的速度,Python 代码的运行速度就显得有点逊色了。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/27/114058v8793uq037m9007f.jpg">Media在代码运行速度方面,Java、C、C++、C# 和 Python 要如何进行比较呢?并没有一个放之四海而皆准的标准,因为具体结果很大程度上取决于运行的程序类型,而语言基准测试Computer Language Benchmarks Games可以作为<a href="http://algs4.cs.princeton.edu/faq/">衡量的一个方面。根据我这些年来进行语言基准测试的经验来看,Python 比很多语言运行起来都要慢。无论是使用 <a href="https://en.wikipedia.org/wiki/Just-in-time_compilation">JIT 编译器的 C#、Java,还是使用 <a href="https://en.wikipedia.org/wiki/Ahead-of-time_compilation">AOT 编译器的 C、C++,又或者是 JavaScript 这些解释型语言,Python 都<a href="https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/python.html">比它们运行得慢。注意:对于文中的 &ldquo<a href="https://dn-linuxcn.qbox.me/static/image/smiley/default/titter.gif">Mediaython” ,一般指 CPython 这个官方的实现。当然我也会在本文中提到其它语言的 Python 实现。我要回答的是这个问题:对于一个类似的程序,Python 要比其它语言慢 2 到 10 倍不等,这其中的原因是什么?又有没有改善的方法呢?主流的说法有这些:“是全局解释器锁Global Interpreter Lock(GIL)的原因”“是因为 Python 是解释型语言而不是编译型语言”“是因为 Python 是一种动态类型的语言”哪一个才是是影响 Python 运行效率的主要原因呢?是全局解释器锁的原因吗?现在很多计算机都配ã…
坚实的 React 基础:初学者指南
这篇文章针对的是那些希望理论与实践完美结合的观众。我会告诉你一些理论,以便你了解幕后发生的事情,然后我会向你展示如何编写一些 React.js 代码。Media
via https://linux.cn/article-10162-1.html
这篇文章针对的是那些希望理论与实践完美结合的观众。我会告诉你一些理论,以便你了解幕后发生的事情,然后我会向你展示如何编写一些 React.js 代码。Media
via https://linux.cn/article-10162-1.html
坚实的 React 基础:初学者指南
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/104728nzehe82q5h9b8fqj.png">Media</a>在过去的几个月里,我一直在使用 React 和 React-Native。我已经发布了两个作为产品的应用, <a href="https://kivenaa.com/">Kiven Aa</a>(React)和 <a href="https://play.google.com/store/apps/details?id=com.pollenchat.android">Pollen Chat</a>(React Native)。当我开始学习 React 时,我找了一些不仅仅是教我如何用 React 写应用的东西(一个博客,一个视频,一个课程,等等),我也想让它帮我做好面试准备。我发现的大部分资料都集中在某一单一方面上。所以,这篇文章针对的是那些希望理论与实践完美结合的观众。我会告诉你一些理论,以便你了解幕后发生的事情,然后我会向你展示如何编写一些 React.js 代码。如果你更喜欢视频形式,我在 [YouTube][<a href="https://youtu.be/WJ6PgzI16I4">https://youtu.be/WJ6PgzI16I4</a>] 上传了整个课程,请去看看。让我们开始……React.js 是一个用于构建用户界面的 JavaScript 库你可以构建各种单页应用程序。例如,你希望在用户界面上实时显示变化的聊天软件和电子商务门户。一切都是组件React 应用由组件组成,数量繁多且互相嵌套。你或许会问:”可什么是组件呢?“组件是可重用的代码段,它定义了某些功能在 UI 上的外观和行为。 比如,按钮就是一个组件。让我们看看下面的计算器,当你尝试计算 2 + 2 = 4 -1 = 3(简单的数学题)时,你会在 Google 上看到这个计算器。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/104744a002jj0m8gwkxw2m.png">Media</a><em>红色标记表示组件</em>如上图所示,这个计算器有…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/104728nzehe82q5h9b8fqj.png">Media</a>在过去的几个月里,我一直在使用 React 和 React-Native。我已经发布了两个作为产品的应用, <a href="https://kivenaa.com/">Kiven Aa</a>(React)和 <a href="https://play.google.com/store/apps/details?id=com.pollenchat.android">Pollen Chat</a>(React Native)。当我开始学习 React 时,我找了一些不仅仅是教我如何用 React 写应用的东西(一个博客,一个视频,一个课程,等等),我也想让它帮我做好面试准备。我发现的大部分资料都集中在某一单一方面上。所以,这篇文章针对的是那些希望理论与实践完美结合的观众。我会告诉你一些理论,以便你了解幕后发生的事情,然后我会向你展示如何编写一些 React.js 代码。如果你更喜欢视频形式,我在 [YouTube][<a href="https://youtu.be/WJ6PgzI16I4">https://youtu.be/WJ6PgzI16I4</a>] 上传了整个课程,请去看看。让我们开始……React.js 是一个用于构建用户界面的 JavaScript 库你可以构建各种单页应用程序。例如,你希望在用户界面上实时显示变化的聊天软件和电子商务门户。一切都是组件React 应用由组件组成,数量繁多且互相嵌套。你或许会问:”可什么是组件呢?“组件是可重用的代码段,它定义了某些功能在 UI 上的外观和行为。 比如,按钮就是一个组件。让我们看看下面的计算器,当你尝试计算 2 + 2 = 4 -1 = 3(简单的数学题)时,你会在 Google 上看到这个计算器。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/104744a002jj0m8gwkxw2m.png">Media</a><em>红色标记表示组件</em>如上图所示,这个计算器有…
面向系统管理员的容器手册
你所需了解的容器如何工作的知识。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/111518jruxxoukh0txu447.jpg">Media</a>现在人们严重过度使用了“容器”这个术语。另外,对不同的人来说,它可能会有不同的含义,这取决于上下文。传统的 Linux 容器只是系统上普通的进程。一组进程与另外一组进程是相互隔离的,实现方法包括:资源限制(控制组 [cgoups])、Linux 安全限制(文件权限,基于 Capability 的安全模块、SELinux、AppArmor、seccomp 等)还有名字空间(进程 ID、网络、挂载等)。如果你启动一台现代 Linux 操作系统,使用 <code>cat /proc/PID/cgroup</code> 命令就可以看到该进程是属于一个控制组的。还可以从 <code>/proc/PID/status</code> 文件中查看进程的 Capability 信息,从 <code>/proc/self/attr/current</code> 文件中查看进程的 SELinux 标签信息,从 <code>/proc/PID/ns</code> 目录下的文件查看进程所属的名字空间。因此,如果把容器定义为带有资源限制、Linux 安全限制和名字空间的进程,那么按照这个定义,Linux 操作系统上的每一个进程都在一个容器里。因此我们常说 <a href="https://www.redhat.com/en/blog/containers-are-linux">Linux 就是容器,容器就是 Linux</a>。而<strong>容器运行时</strong>是这样一种工具,它调整上述资源限制、安全限制和名字空间,并启动容器。Docker 引入了<strong>容器镜像</strong>的概念,镜像是一个普通的 TAR 包文件,包含了:<strong>rootfs(容器的根文件系统)</strong>:一个目录,看起来像是操作系统的普通根目录(<code>/</code>),例如,一个包含 <code>/usr</code>, <code>/var</code>…
你所需了解的容器如何工作的知识。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/111518jruxxoukh0txu447.jpg">Media</a>现在人们严重过度使用了“容器”这个术语。另外,对不同的人来说,它可能会有不同的含义,这取决于上下文。传统的 Linux 容器只是系统上普通的进程。一组进程与另外一组进程是相互隔离的,实现方法包括:资源限制(控制组 [cgoups])、Linux 安全限制(文件权限,基于 Capability 的安全模块、SELinux、AppArmor、seccomp 等)还有名字空间(进程 ID、网络、挂载等)。如果你启动一台现代 Linux 操作系统,使用 <code>cat /proc/PID/cgroup</code> 命令就可以看到该进程是属于一个控制组的。还可以从 <code>/proc/PID/status</code> 文件中查看进程的 Capability 信息,从 <code>/proc/self/attr/current</code> 文件中查看进程的 SELinux 标签信息,从 <code>/proc/PID/ns</code> 目录下的文件查看进程所属的名字空间。因此,如果把容器定义为带有资源限制、Linux 安全限制和名字空间的进程,那么按照这个定义,Linux 操作系统上的每一个进程都在一个容器里。因此我们常说 <a href="https://www.redhat.com/en/blog/containers-are-linux">Linux 就是容器,容器就是 Linux</a>。而<strong>容器运行时</strong>是这样一种工具,它调整上述资源限制、安全限制和名字空间,并启动容器。Docker 引入了<strong>容器镜像</strong>的概念,镜像是一个普通的 TAR 包文件,包含了:<strong>rootfs(容器的根文件系统)</strong>:一个目录,看起来像是操作系统的普通根目录(<code>/</code>),例如,一个包含 <code>/usr</code>, <code>/var</code>…
如何构建 RPM 包
节省跨多个主机安装文件和脚本的时间和精力。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/125431qw2n6p643hww4wzy.jpg">Media</a>自20多年前我开始使用 Linux 以来,我已经使用过基于 rpm 的软件包管理器在 Red Hat 和 Fedora Linux 系统上安装软件。我使用过 rpm 程序本身,还有 yum 和 dnf ,用于在我的 Linux 主机上安装和更新软件包,dnf 是 yum 的一个近亲。 yum 和 dnf 工具是 rpm 实用程序的包装器,它提供了其他功能,例如查找和安装包依赖项的功能。多年来,我创建了许多 Bash 脚本,其中一些脚本具有单独的配置文件,我希望在大多数新计算机和虚拟机上安装这些脚本。这也能解决安装所有这些软件包需要花费大量时间的难题,因此我决定通过创建一个 rpm 软件包来自动执行该过程,我可以将其复制到目标主机并将所有这些文件安装在适当的位置。虽然 rpm 工具以前用于构建 rpm 包,但该功能已被删除,并且创建了一个新工具来构建新的 rpm。当我开始这个项目时,我发现很少有关于创建 rpm 包的信息,但我找到了一本书,名为《Maximum RPM》,这本书才帮我弄明白了。这本书现在已经过时了,我发现的绝大多数信息都是如此。它也已经绝版,用过的副本也需要花费数百美元。<a href="http://ftp.rpm.org/max-rpm/">Maximum RPM</a> 的在线版本是免费提供的,并保持最新。该 <a href="http://rpm.org/index.html">RPM 网站</a>还有其他网站的链接,这些网站上有很多关于 rpm 的文档。其他的信息往往是简短…
节省跨多个主机安装文件和脚本的时间和精力。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/125431qw2n6p643hww4wzy.jpg">Media</a>自20多年前我开始使用 Linux 以来,我已经使用过基于 rpm 的软件包管理器在 Red Hat 和 Fedora Linux 系统上安装软件。我使用过 rpm 程序本身,还有 yum 和 dnf ,用于在我的 Linux 主机上安装和更新软件包,dnf 是 yum 的一个近亲。 yum 和 dnf 工具是 rpm 实用程序的包装器,它提供了其他功能,例如查找和安装包依赖项的功能。多年来,我创建了许多 Bash 脚本,其中一些脚本具有单独的配置文件,我希望在大多数新计算机和虚拟机上安装这些脚本。这也能解决安装所有这些软件包需要花费大量时间的难题,因此我决定通过创建一个 rpm 软件包来自动执行该过程,我可以将其复制到目标主机并将所有这些文件安装在适当的位置。虽然 rpm 工具以前用于构建 rpm 包,但该功能已被删除,并且创建了一个新工具来构建新的 rpm。当我开始这个项目时,我发现很少有关于创建 rpm 包的信息,但我找到了一本书,名为《Maximum RPM》,这本书才帮我弄明白了。这本书现在已经过时了,我发现的绝大多数信息都是如此。它也已经绝版,用过的副本也需要花费数百美元。<a href="http://ftp.rpm.org/max-rpm/">Maximum RPM</a> 的在线版本是免费提供的,并保持最新。该 <a href="http://rpm.org/index.html">RPM 网站</a>还有其他网站的链接,这些网站上有很多关于 rpm 的文档。其他的信息往往是简短…
24 个必备的 Linux 应用程序
我们会列举出那些在所有 Linux 发行版上你都会安装的最优秀的 Linux 应用程序。Media
via https://linux.cn/article-10165-1.html
我们会列举出那些在所有 Linux 发行版上你都会安装的最优秀的 Linux 应用程序。Media
via https://linux.cn/article-10165-1.html
24 个必备的 Linux 应用程序
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/190052elhoxx7rzl2lxr7r.png">Media</a>提要:Linux 上必备的应用程序是什么呢?这个答案具有主观性并取决于你使用 Linux 桌面的目的是什么。但确实存在一些必备的并且大部分 Linux 用户都会安装的应用程序。接下来我们会列举出那些在所有 Linux 发行版上你都会安装的最优秀的 Linux 应用程序。在 Linux 的世界中,所有东西都由你选择。你要选择一个发行版?你能找到一大把。你想要找到一个称心的音乐播放器?同样会有许多选择。但它们并非全部遵循相同的设计理念 —— 其中一些可能追求极致轻量化而另一些会提供数不清的特性。因此想要找到正中需求的应用程序会成为相当令人头疼的繁重任务。那就让我们来缓解你的头疼吧。对于 Linux 用户来说最优秀的自由软件接下来我将罗列一系列在不同应用场景下我偏爱的必备 Linux 自由软件。当然此处我并非在说它们是最好的,但确实是在特定类别下我尝试的一系列软件中最喜欢的。也同样欢迎你在评论区介绍你最喜欢的应用程序。同时我们也制作了关于此次应用清单的<a href="https://youtu.be/awawJnkUbWs">视频</a>。在 YouTube 上订阅我们的频道获取更多的 Linux 视频。网页浏览器<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/190103u62l9o9iy4ssae4o.jpg">网页浏览器</a><em>网页浏览器</em>Google Chrome<a href="https://www.google.com/chrome/browser">Google Chrome</a> 是一个强大并且功能完善的浏览器解决方案,它拥有完美的同步功能以及丰富&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/190052elhoxx7rzl2lxr7r.png">Media</a>提要:Linux 上必备的应用程序是什么呢?这个答案具有主观性并取决于你使用 Linux 桌面的目的是什么。但确实存在一些必备的并且大部分 Linux 用户都会安装的应用程序。接下来我们会列举出那些在所有 Linux 发行版上你都会安装的最优秀的 Linux 应用程序。在 Linux 的世界中,所有东西都由你选择。你要选择一个发行版?你能找到一大把。你想要找到一个称心的音乐播放器?同样会有许多选择。但它们并非全部遵循相同的设计理念 —— 其中一些可能追求极致轻量化而另一些会提供数不清的特性。因此想要找到正中需求的应用程序会成为相当令人头疼的繁重任务。那就让我们来缓解你的头疼吧。对于 Linux 用户来说最优秀的自由软件接下来我将罗列一系列在不同应用场景下我偏爱的必备 Linux 自由软件。当然此处我并非在说它们是最好的,但确实是在特定类别下我尝试的一系列软件中最喜欢的。也同样欢迎你在评论区介绍你最喜欢的应用程序。同时我们也制作了关于此次应用清单的<a href="https://youtu.be/awawJnkUbWs">视频</a>。在 YouTube 上订阅我们的频道获取更多的 Linux 视频。网页浏览器<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/190103u62l9o9iy4ssae4o.jpg">网页浏览器</a><em>网页浏览器</em>Google Chrome<a href="https://www.google.com/chrome/browser">Google Chrome</a> 是一个强大并且功能完善的浏览器解决方案,它拥有完美的同步功能以及丰富&…
设计更快的网页(一):图片压缩
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/213800xzz7e7txh75t5hhl.jpg">Media</a>很多 Web 开发者都希望做出加载速度很快的网页。在移动设备浏览占比越来越大的背景下,使用响应式设计使得网站在小屏幕下看起来更漂亮只是其中一个方面。Browser Calories 可以展示网页的加载时间 —— 这不单单关系到用户,还会影响到通过加载速度来进行评级的搜索引擎。这个系列的文章介绍了如何使用 Fedora 提供的工具来给网页“瘦身”。准备工作在你开始缩减网页之前,你需要明确核心问题所在。为此,你可以使用 <a href="https://browserdiet.com/calories/">Browserdiet</a>. 这是一个浏览器插件,适用于 Firefox、Opera、 Chrome 和其它浏览器。它会对打开的网页进行性能分析,这样你就可以知道应该从哪里入手来缩减网页。然后,你需要一些用来处理的页面。下面的例子是针对 <a href="http://getfedora.org">getferoda.org</a> 的测试截图。一开始,它看起来非常简单,也符合响应式设计。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/213800fjped7j9c1p3ej15.jpg">Browser Diet - getfedora.org 的评分</a>然而,BroserDiet 的网页分析表明,这个网页需要加载 1.8MB 的文件。所以,我们现在有活干了!Web 优化网页中包含 281 KB 的 JavaScript 文件、203 KB 的 CSS 文件,还有 1.2 MB 的图片。我们先从最严重的问题 —— 图片开始入手。为了解决问题,你需要的工具集有 GIMP、ImageMagick 和 optipng. 你可以使用如下命令轻松安装它们:<pre class="prettyprint linenums">sudo dnf install gimp imagemagick optipng</pre>比如,我们先拿到这个 6.4 KB 的<a href="https://getfedora.org/static/images/cinnamon.png">文&#…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/213800xzz7e7txh75t5hhl.jpg">Media</a>很多 Web 开发者都希望做出加载速度很快的网页。在移动设备浏览占比越来越大的背景下,使用响应式设计使得网站在小屏幕下看起来更漂亮只是其中一个方面。Browser Calories 可以展示网页的加载时间 —— 这不单单关系到用户,还会影响到通过加载速度来进行评级的搜索引擎。这个系列的文章介绍了如何使用 Fedora 提供的工具来给网页“瘦身”。准备工作在你开始缩减网页之前,你需要明确核心问题所在。为此,你可以使用 <a href="https://browserdiet.com/calories/">Browserdiet</a>. 这是一个浏览器插件,适用于 Firefox、Opera、 Chrome 和其它浏览器。它会对打开的网页进行性能分析,这样你就可以知道应该从哪里入手来缩减网页。然后,你需要一些用来处理的页面。下面的例子是针对 <a href="http://getfedora.org">getferoda.org</a> 的测试截图。一开始,它看起来非常简单,也符合响应式设计。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/213800fjped7j9c1p3ej15.jpg">Browser Diet - getfedora.org 的评分</a>然而,BroserDiet 的网页分析表明,这个网页需要加载 1.8MB 的文件。所以,我们现在有活干了!Web 优化网页中包含 281 KB 的 JavaScript 文件、203 KB 的 CSS 文件,还有 1.2 MB 的图片。我们先从最严重的问题 —— 图片开始入手。为了解决问题,你需要的工具集有 GIMP、ImageMagick 和 optipng. 你可以使用如下命令轻松安装它们:<pre class="prettyprint linenums">sudo dnf install gimp imagemagick optipng</pre>比如,我们先拿到这个 6.4 KB 的<a href="https://getfedora.org/static/images/cinnamon.png">文&#…
使用开源同步工具 Syncthing 控制你的数据
决定如何存储和共享您的个人信息。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/221100kbn1vv61a3lt2b13.png">Media</a>如今,我们的一些最重要的财产 —— 从家人和朋友的照片和视频到财务和医疗文件 —— 都是数据。即便是云存储服务的迅猛发展,我们仍有对隐私和个人数据缺乏控制的担忧。从棱镜监控计划到谷歌<a href="https://gizmodo.com/google-says-it-doesnt-go-through-your-inbox-anymore-bu-1827299695">让 APP 开发者扫描你的个人邮件</a>,这些新闻的报道应该会让我们对我们个人信息的安全性有所顾虑。<a href="https://syncthing.net/">Syncthing</a> 可以让你放下心来。它是一款开源的点对点文件同步工具,可以运行在 Linux、Windows、Mac、Android 和其他(抱歉,没有iOS)。Syncthing 使用自定的协议,叫<a href="3">块交换协议</a>。简而言之,Syncting 能让你无需拥有服务器来跨设备同步数据。在这篇文章中,我将解释如何在 Linux 电脑和安卓手机之间安装和同步文件。LinuxSyncting 在大多数流行的发行版都能下载。Fedora 28 包含其最新版本。要在 Fedora 上安装 Syncthing,你能在软件中心搜索,或者执行以下命令:<pre class="prettyprint linenums">sudo dnf install syncthing syncthing-gtk</pre>一旦安装好后,打开它。你将会看到一个助手帮你配置 Syncthing。点击 “Next” 直到它要求配置 WebUI。最安全的选项是选择“Listen on localhost”。那将会禁止 Web 界面并且阻止未经授权的用户。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/221458enntztxnwoe9nnlm.png">Media</a><em>Syncthing 安装时的 WebUI 对话框</em>关闭对话框。现在 Syncthing 安装好了。现在可以分享文件夹,连接一台设…
决定如何存储和共享您的个人信息。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/221100kbn1vv61a3lt2b13.png">Media</a>如今,我们的一些最重要的财产 —— 从家人和朋友的照片和视频到财务和医疗文件 —— 都是数据。即便是云存储服务的迅猛发展,我们仍有对隐私和个人数据缺乏控制的担忧。从棱镜监控计划到谷歌<a href="https://gizmodo.com/google-says-it-doesnt-go-through-your-inbox-anymore-bu-1827299695">让 APP 开发者扫描你的个人邮件</a>,这些新闻的报道应该会让我们对我们个人信息的安全性有所顾虑。<a href="https://syncthing.net/">Syncthing</a> 可以让你放下心来。它是一款开源的点对点文件同步工具,可以运行在 Linux、Windows、Mac、Android 和其他(抱歉,没有iOS)。Syncthing 使用自定的协议,叫<a href="3">块交换协议</a>。简而言之,Syncting 能让你无需拥有服务器来跨设备同步数据。在这篇文章中,我将解释如何在 Linux 电脑和安卓手机之间安装和同步文件。LinuxSyncting 在大多数流行的发行版都能下载。Fedora 28 包含其最新版本。要在 Fedora 上安装 Syncthing,你能在软件中心搜索,或者执行以下命令:<pre class="prettyprint linenums">sudo dnf install syncthing syncthing-gtk</pre>一旦安装好后,打开它。你将会看到一个助手帮你配置 Syncthing。点击 “Next” 直到它要求配置 WebUI。最安全的选项是选择“Listen on localhost”。那将会禁止 Web 界面并且阻止未经授权的用户。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/221458enntztxnwoe9nnlm.png">Media</a><em>Syncthing 安装时的 WebUI 对话框</em>关闭对话框。现在 Syncthing 安装好了。现在可以分享文件夹,连接一台设…
如何列出在 Linux 上已启用/激活的仓库
有很多方法可以列出在 Linux 已启用的仓库。我们将在下面展示给你列出已激活仓库的简便方法。Media
via https://linux.cn/article-10168-1.html
有很多方法可以列出在 Linux 已启用的仓库。我们将在下面展示给你列出已激活仓库的简便方法。Media
via https://linux.cn/article-10168-1.html
如何列出在 Linux 上已启用/激活的仓库
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/235306c9l9v687b4q62575.jpg">Media</a>有很多方法可以列出在 Linux 已启用的仓库。我们将在下面展示给你列出已激活仓库的简便方法。这有助于你知晓你的系统上都启用了哪些仓库。一旦你掌握了这些信息,你就可以添加任何之前还没有准备启用的仓库了。举个例子,如果你想启用 epel 仓库,你需要先检查它是否已经启用了。这篇教程将会帮助你做这件事情。什么是仓库?存储特定程序软件包的中枢位置就是一个软件仓库。所有的 Linux 发行版都在维护自己的仓库,而且允许用户下载并安装这些软件包到他们的机器上。每个仓库提供者都提供了一套包管理工具,用以管理他们的仓库,比如搜索、安装、更新、升级、移除等等。大多数 Linux 发行版都作为免费软件,除了 RHEL 和 SUSE,要访问他们的仓库你需要先购买订阅。<strong>建议阅读:</strong><a href="https://www.2daygeek.com/how-to-add-enable-disable-a-repository-dnf-yum-config-manager-on-linux/">在 Linux 上,如何通过 DNF/YUM 设置管理命令添加、启用、关闭一个仓库</a><a href="https://www.2daygeek.com/how-to-list-installed-packages-by-size-largest-on-linux/">在 Linux 上如何按大小列出已安装的包</a><a href="https://www.2daygeek.com/how-to-view-list-the-available-packages-updates-in-linux/">在 Linux 上如何列出升级的包</a><a href="https://www.2daygeek.com/how-to-view-a-particular-package-installed-updated-upgraded-removed-erased-date-on-linux/">在 Linux 上如何查看一个特定包安装/升级/更新/移除/清除的日期</a><a href="https://www.2daygeek.com/how-to-view-detailed-information-about-a-package-in-linux/">在 Linux 上如何查看一个包的详细信息</a><a href="https://www.2daygeek.com/how-to-search-if-a-package-is-available-on-your-linux…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/28/235306c9l9v687b4q62575.jpg">Media</a>有很多方法可以列出在 Linux 已启用的仓库。我们将在下面展示给你列出已激活仓库的简便方法。这有助于你知晓你的系统上都启用了哪些仓库。一旦你掌握了这些信息,你就可以添加任何之前还没有准备启用的仓库了。举个例子,如果你想启用 epel 仓库,你需要先检查它是否已经启用了。这篇教程将会帮助你做这件事情。什么是仓库?存储特定程序软件包的中枢位置就是一个软件仓库。所有的 Linux 发行版都在维护自己的仓库,而且允许用户下载并安装这些软件包到他们的机器上。每个仓库提供者都提供了一套包管理工具,用以管理他们的仓库,比如搜索、安装、更新、升级、移除等等。大多数 Linux 发行版都作为免费软件,除了 RHEL 和 SUSE,要访问他们的仓库你需要先购买订阅。<strong>建议阅读:</strong><a href="https://www.2daygeek.com/how-to-add-enable-disable-a-repository-dnf-yum-config-manager-on-linux/">在 Linux 上,如何通过 DNF/YUM 设置管理命令添加、启用、关闭一个仓库</a><a href="https://www.2daygeek.com/how-to-list-installed-packages-by-size-largest-on-linux/">在 Linux 上如何按大小列出已安装的包</a><a href="https://www.2daygeek.com/how-to-view-list-the-available-packages-updates-in-linux/">在 Linux 上如何列出升级的包</a><a href="https://www.2daygeek.com/how-to-view-a-particular-package-installed-updated-upgraded-removed-erased-date-on-linux/">在 Linux 上如何查看一个特定包安装/升级/更新/移除/清除的日期</a><a href="https://www.2daygeek.com/how-to-view-detailed-information-about-a-package-in-linux/">在 Linux 上如何查看一个包的详细信息</a><a href="https://www.2daygeek.com/how-to-search-if-a-package-is-available-on-your-linux…
如何在 Linux 上锁定虚拟控制台会话
我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。Media
via https://linux.cn/article-10169-1.html
我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。Media
via https://linux.cn/article-10169-1.html
如何在 Linux 上锁定虚拟控制台会话
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/184916y0fikww5t8sh4z75.png">Media</a>当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么。如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。要感谢 <strong>Vlock</strong>(<strong>V</strong>irtual Console <strong>lock</strong>),这是一个命令行程序,用于锁定 Linux 控制台上的一个或多个会话。如有必要,你可以锁定整个控制台并完全禁用虚拟控制台切换功能。Vlock 对于有多个用户访问控制台的共享 Linux 系统特别有用。安装 Vlock在基于 Arch 的系统上,Vlock 软件包被替换为默认预安装的 <strong>kpd</strong> 包,因此你无需为安装烦恼。在 Debian、Ubuntu、Linux Mint 上,运行以下命令来安装 Vlock:<pre class="prettyprint linenums">$ sudo apt-get install vlock</pre>在 Fedora 上:<pre class="prettyprint linenums">$ sudo dnf install vlock</pre>在 RHEL、CentOS 上:<pre class="prettyprint linenums">$ sudo yum install vlock</pre>在 Linux 上锁定虚拟控制台会话Vlock 的一般语法是:<pre class="prettyprint linenums">vlock [ -acnshv ] [ -t <timeout> ] [ plugins... ]</pre>这里:a —— 锁定所有虚拟控制台会话,c —— 锁定当前虚拟控制台会话,n —— 在锁定所有会话之前切换到新的空控制台,s —— 禁用 SysRq 键机制,t —— 指定屏保插件的超时时间,h —— 显示帮助,v —— 显示版本。让我举几个例子。1、 锁定当前控制台会话在没有任何参数的情况下运行 Vlock 时,它默认锁定当前控制台会话 (TYY)。要解锁会话,你需要输入当前用户的密码或 root 密码。<pre class="prettyprint linenums">$ vlock</pre><a href="https://dn-linuxcn.qbox.me/data/atta…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/184916y0fikww5t8sh4z75.png">Media</a>当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么。如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。要感谢 <strong>Vlock</strong>(<strong>V</strong>irtual Console <strong>lock</strong>),这是一个命令行程序,用于锁定 Linux 控制台上的一个或多个会话。如有必要,你可以锁定整个控制台并完全禁用虚拟控制台切换功能。Vlock 对于有多个用户访问控制台的共享 Linux 系统特别有用。安装 Vlock在基于 Arch 的系统上,Vlock 软件包被替换为默认预安装的 <strong>kpd</strong> 包,因此你无需为安装烦恼。在 Debian、Ubuntu、Linux Mint 上,运行以下命令来安装 Vlock:<pre class="prettyprint linenums">$ sudo apt-get install vlock</pre>在 Fedora 上:<pre class="prettyprint linenums">$ sudo dnf install vlock</pre>在 RHEL、CentOS 上:<pre class="prettyprint linenums">$ sudo yum install vlock</pre>在 Linux 上锁定虚拟控制台会话Vlock 的一般语法是:<pre class="prettyprint linenums">vlock [ -acnshv ] [ -t <timeout> ] [ plugins... ]</pre>这里:a —— 锁定所有虚拟控制台会话,c —— 锁定当前虚拟控制台会话,n —— 在锁定所有会话之前切换到新的空控制台,s —— 禁用 SysRq 键机制,t —— 指定屏保插件的超时时间,h —— 显示帮助,v —— 显示版本。让我举几个例子。1、 锁定当前控制台会话在没有任何参数的情况下运行 Vlock 时,它默认锁定当前控制台会话 (TYY)。要解锁会话,你需要输入当前用户的密码或 root 密码。<pre class="prettyprint linenums">$ vlock</pre><a href="https://dn-linuxcn.qbox.me/data/atta…