面向系统管理员的容器手册
你所需了解的容器如何工作的知识。<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…
如何移除或禁用 Ubuntu Dock
如果你想用其它 dock(例如 Plank dock)或面板来替换 Ubuntu 18.04 中的 Dock,或者你想要移除或禁用 Ubuntu Dock,本文会告诉你如何做。Media
via https://linux.cn/article-10170-1.html
如果你想用其它 dock(例如 Plank dock)或面板来替换 Ubuntu 18.04 中的 Dock,或者你想要移除或禁用 Ubuntu Dock,本文会告诉你如何做。Media
via https://linux.cn/article-10170-1.html
如何移除或禁用 Ubuntu Dock
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/193718cfrnf5uwtczfq38n.png">Media</a>如果你想用其它 dock(例如 Plank dock)或面板来替换 Ubuntu 18.04 中的 Dock,或者你想要移除或禁用 Ubuntu Dock,本文会告诉你如何做。Ubuntu Dock - 屏幕左侧栏,可用于固定应用程序或访问已安装的应用程序。使用默认的 Ubuntu 会话时,<a href="https://bugs.launchpad.net/ubuntu/+source/gnome-tweak-tool/+bug/1713020">无法</a>使用 Gnome Tweaks 禁用它(禁用无效)。但是如果你需要,还是有几种方法来摆脱它的。下面我将列出 4 种方法可以移除或禁用 Ubuntu Dock,以及每个方法的缺点(如果有的话),还有如何撤销每个方法的更改。本文还包括在没有 Ubuntu Dock 的情况下访问活动概览Activities Overview和已安装应用程序列表的其它方法。如何在没有 Ubuntu Dock 的情况下访问活动概览如果没有 Ubuntu Dock,你可能无法访问活动的或已安装的应用程序列表(可以通过单击 Dock 底部的“显示应用程序”按钮从 Ubuntu Dock 访问)。例如,如果你想使用 Plank Dock 就是这样。显然,如果你安装了 Dash to Panel 扩展来替代 Ubuntu Dock,那么还好。因为 Dash to Panel 提供了一个按钮来访问活动概览或已安装的应用程序。根据你计划用来替代 Ubuntu Dock 的软件,如果无法访问活动概览,那么你可以启用“活动概览热角”选项,只需将鼠标移动到屏幕的左上角即可打开活动概览。访问已安装的应用程序列表的另一种方法是使用快捷键:Super + A。如果要启用“活动概览热角”,使用以下命令:<pre class="prettyprint linenums">gsettings set org.gnome.shell enable-hot…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/193718cfrnf5uwtczfq38n.png">Media</a>如果你想用其它 dock(例如 Plank dock)或面板来替换 Ubuntu 18.04 中的 Dock,或者你想要移除或禁用 Ubuntu Dock,本文会告诉你如何做。Ubuntu Dock - 屏幕左侧栏,可用于固定应用程序或访问已安装的应用程序。使用默认的 Ubuntu 会话时,<a href="https://bugs.launchpad.net/ubuntu/+source/gnome-tweak-tool/+bug/1713020">无法</a>使用 Gnome Tweaks 禁用它(禁用无效)。但是如果你需要,还是有几种方法来摆脱它的。下面我将列出 4 种方法可以移除或禁用 Ubuntu Dock,以及每个方法的缺点(如果有的话),还有如何撤销每个方法的更改。本文还包括在没有 Ubuntu Dock 的情况下访问活动概览Activities Overview和已安装应用程序列表的其它方法。如何在没有 Ubuntu Dock 的情况下访问活动概览如果没有 Ubuntu Dock,你可能无法访问活动的或已安装的应用程序列表(可以通过单击 Dock 底部的“显示应用程序”按钮从 Ubuntu Dock 访问)。例如,如果你想使用 Plank Dock 就是这样。显然,如果你安装了 Dash to Panel 扩展来替代 Ubuntu Dock,那么还好。因为 Dash to Panel 提供了一个按钮来访问活动概览或已安装的应用程序。根据你计划用来替代 Ubuntu Dock 的软件,如果无法访问活动概览,那么你可以启用“活动概览热角”选项,只需将鼠标移动到屏幕的左上角即可打开活动概览。访问已安装的应用程序列表的另一种方法是使用快捷键:Super + A。如果要启用“活动概览热角”,使用以下命令:<pre class="prettyprint linenums">gsettings set org.gnome.shell enable-hot…
命令行:增强版
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204617yz2aaxzfrlyc22nl.jpg">Media</a>我不确定有多少 Web 开发者能完全避免使用命令行。就我来说,我从 1997 年上大学就开始使用命令行了,那时的 l33t-hacker 让我着迷,同时我也觉得它很难掌握。过去这些年我的命令行本领在逐步加强,我经常会去搜寻工作中能用的更好的命令行工具。下面就是我现在使用的用于增强原有命令行工具的列表。怎么忽略我所做的命令行增强通常情况下我会用别名将新的增强的命令行工具覆盖原来的命令(如 cat 和 ping)。如果我需要运行原来的命令的话(有时我确实需要这么做),我会像下面这样来运行未加修改的原始命令。(我用的是 Mac,你的用法可能不一样)<pre class="prettyprint linenums">$ \cat # 忽略叫 "cat" 的别名 - 具体解释: https://stackoverflow.com/a/16506263/22617$ command cat # 忽略函数和别名</pre>bat > catcat 用于打印文件的内容,如果你平时用命令行很多的话,例如语法高亮之类的功能会非常有用。我首先发现了 <a href="https://github.com/jingweno/ccat">ccat</a> 这个有语法高亮功能的工具,然后我发现了 <a href="https://github.com/sharkdp/bat">bat</a>,它的功能有语法高亮、分页、行号和 git 集成。bat 命令也能让我在(多于一屏的)输出里使用 / 搜索(和用 less 搜索功能一样)。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204653xppy14y8y4zu6h7s.gif">Simple bat output</a>我将别名 cat 指到了 bat 命令:<pre class="prettyprint linenums">alias cat='bat'</pre><a href="https://github.com/sharkdp/bat">安装指引</a>prettyping > pingping 非常有用,当我碰到“糟了,是不是 X 挂了?/我的网不通了?”这种情况下我最先想到的工具就是它了。但是 prettyping(“prettyping” 可不是指“pre typing”)在 ping 的基础上加了友好的输出,这可让我感觉命令行友好了很多呢。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204655zcznq3x70xjexzv3.gif">prettyping</a>我也将 ping 用别名链接到了 prettyping 命令:<pre class="prettyprint linenums">alias ping='prettyping --nolegend'</pre><a href="http://denilson.sa.nom.br/prettyping/">安装指引</a>fzf > ctrl+r在终端里,使用 ctrl+r 将允许你在命令历史里<a href="https://lifehacker.com/278888/ctrl%252Br-to-search-and-other-terminal-history-tricks">反向搜索</a>使用过的命令,这是个挺好的小技巧,尽管它有点麻烦。fzf 这个工具相比于 ctrl+r 有了<strong>巨大的</strong>进步。它能针对命令行历史进行模糊查询,并且提供了对可能的合格结果进行全面交互式预览。除了搜索命令历史,fzf 还能预览和打开文件,我在下面的视频里展示了这些功能。为了这个预览的效果,我创建了一个叫 preview 的别名,它将 fzf 和前文提到的 bat 组合起来完成预览功能,还给上面绑定了一个定制的热键 ctrl+o 来打开 VS Code:<pre class="prettyprint linenums">alias preview="fzf --preview 'bat --color \"always\" {}'"# 支持在 VS Code 里用 ctrl+o 来打开选择的文件export FZF_DEFAULT_OPTS="--bind='ctrl-o:execute(code {})+abort'"</pre><a href="https://github.com/junegunn/fzf">安装指引</a>htop > toptop 是当我想快速诊断为什么机器上的 CPU 跑的那么累或者风扇为什么突然呼呼大做的时候首先会想到的工具。我在生产环境也会使用这个工具。讨厌的是 Mac 上的 top 和 Linux 上的 top 有着极大的不同(恕我直言,应该是差的多)。不过,htop 是对 Linux 上的 top 和 Mac 上蹩脚的 top 的极大改进。它增加了包括颜色输出,键盘热键绑定以及不同的视图输出,这对理解进程之间的父子关系有极大帮助。一些很容易上手的热键:P —— 按 CPU 使用率排序M —— 按内存使用排序F4 —— 用字符串过滤进程(例如只看包括 node 的进程)space —— 锚定一个单独进程,这样我能观察它是否有尖峰状态<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204657hnfne1peg857gtdq.jpg">htop output</a>在 Mac Sierra 上 htop 有个奇怪的 bug,不过这个 bug 可以通过以 root 运行来绕过(我实在记不清这个 bug 是什么,但是这个别名能搞定它,有点讨厌的是我得每次都输入 root 密码。):<pre class="prettyprint linenums">alias top="sudo htop" # 给 top 加上别名并且绕过 Sierra 上的 bug</pre><a href="http://hisham.hm/htop/">安装指引</a>diff-so-fancy > diff我非常确定我是几年前从 Paul Irish 那儿学来的这个技巧,尽管我很少直接使用 diff,但我的 git 命令行会一直使用 diff。diff-so-fancy 给了我代码语法颜色和更改字符高亮的功能。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204658r8zajeo2b98ase4b.jpg">diff so fancy</a>在我的 ~/.gitconfig 文件里我用了下面的选项来打开 git diff 和 git show 的 diff-so-fancy 功能。<pre class="prettyprint linenums">[pager] diff = diff-so-fancy | less --tabs=1,5 -RFX show = diff-so-fancy | less --tabs=1,5 -RFX</pre><a href="https://github.com/so-fancy/diff-so-fancy">安装指引</a>fd > find尽管我使用 Mac,但我绝不是 Spotlight 的粉丝,我觉得它的性能很差,关键字也难记,加上更新它自己的数据库时会拖慢 CPU,简直一无是处。我经常使用 <a href="https://www.alfredapp.com/">Alfred</a>,但是它的搜索功能也不是很好。我倾向于在命令行中搜索文件,但是 find 的难用在于很难去记住那些合适的表达式来描述我想要的文件。(而且 Mac 上的 find 命令和非 Mac 的 find 命令还有些许不同,这更加深了我的失望。)fd 是一个很好的替代品(它的作者和 bat 的作者是同一个人)。它非常快而且对于我经常要搜索的命令非常好记。几个上手的例子:<pre class="prettyprint linenums">$ fd cli # 所有包含 "cli" 的文件名$ fd -e md # 所有以 .md 作为扩展名的文件$ fd cli -x wc -w # 搜索 "cli" 并且在每个搜索结果上运行 `wc -w`</pre><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204700varcm94gce19m91g.png">fd output</a><a href="https://github.com/sharkdp/fd/">安装指引</a>ncdu > du对我来说,知道当前磁盘空间被什么占用了非常重要。我用过 Mac 上的 <a href="https://daisydiskapp.com/">DaisyDisk</a>,但是我觉得那个程序产生结果有点慢。du -sh 命令是我经常会运行的命令(-sh 是指结果以“汇总…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204617yz2aaxzfrlyc22nl.jpg">Media</a>我不确定有多少 Web 开发者能完全避免使用命令行。就我来说,我从 1997 年上大学就开始使用命令行了,那时的 l33t-hacker 让我着迷,同时我也觉得它很难掌握。过去这些年我的命令行本领在逐步加强,我经常会去搜寻工作中能用的更好的命令行工具。下面就是我现在使用的用于增强原有命令行工具的列表。怎么忽略我所做的命令行增强通常情况下我会用别名将新的增强的命令行工具覆盖原来的命令(如 cat 和 ping)。如果我需要运行原来的命令的话(有时我确实需要这么做),我会像下面这样来运行未加修改的原始命令。(我用的是 Mac,你的用法可能不一样)<pre class="prettyprint linenums">$ \cat # 忽略叫 "cat" 的别名 - 具体解释: https://stackoverflow.com/a/16506263/22617$ command cat # 忽略函数和别名</pre>bat > catcat 用于打印文件的内容,如果你平时用命令行很多的话,例如语法高亮之类的功能会非常有用。我首先发现了 <a href="https://github.com/jingweno/ccat">ccat</a> 这个有语法高亮功能的工具,然后我发现了 <a href="https://github.com/sharkdp/bat">bat</a>,它的功能有语法高亮、分页、行号和 git 集成。bat 命令也能让我在(多于一屏的)输出里使用 / 搜索(和用 less 搜索功能一样)。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204653xppy14y8y4zu6h7s.gif">Simple bat output</a>我将别名 cat 指到了 bat 命令:<pre class="prettyprint linenums">alias cat='bat'</pre><a href="https://github.com/sharkdp/bat">安装指引</a>prettyping > pingping 非常有用,当我碰到“糟了,是不是 X 挂了?/我的网不通了?”这种情况下我最先想到的工具就是它了。但是 prettyping(“prettyping” 可不是指“pre typing”)在 ping 的基础上加了友好的输出,这可让我感觉命令行友好了很多呢。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204655zcznq3x70xjexzv3.gif">prettyping</a>我也将 ping 用别名链接到了 prettyping 命令:<pre class="prettyprint linenums">alias ping='prettyping --nolegend'</pre><a href="http://denilson.sa.nom.br/prettyping/">安装指引</a>fzf > ctrl+r在终端里,使用 ctrl+r 将允许你在命令历史里<a href="https://lifehacker.com/278888/ctrl%252Br-to-search-and-other-terminal-history-tricks">反向搜索</a>使用过的命令,这是个挺好的小技巧,尽管它有点麻烦。fzf 这个工具相比于 ctrl+r 有了<strong>巨大的</strong>进步。它能针对命令行历史进行模糊查询,并且提供了对可能的合格结果进行全面交互式预览。除了搜索命令历史,fzf 还能预览和打开文件,我在下面的视频里展示了这些功能。为了这个预览的效果,我创建了一个叫 preview 的别名,它将 fzf 和前文提到的 bat 组合起来完成预览功能,还给上面绑定了一个定制的热键 ctrl+o 来打开 VS Code:<pre class="prettyprint linenums">alias preview="fzf --preview 'bat --color \"always\" {}'"# 支持在 VS Code 里用 ctrl+o 来打开选择的文件export FZF_DEFAULT_OPTS="--bind='ctrl-o:execute(code {})+abort'"</pre><a href="https://github.com/junegunn/fzf">安装指引</a>htop > toptop 是当我想快速诊断为什么机器上的 CPU 跑的那么累或者风扇为什么突然呼呼大做的时候首先会想到的工具。我在生产环境也会使用这个工具。讨厌的是 Mac 上的 top 和 Linux 上的 top 有着极大的不同(恕我直言,应该是差的多)。不过,htop 是对 Linux 上的 top 和 Mac 上蹩脚的 top 的极大改进。它增加了包括颜色输出,键盘热键绑定以及不同的视图输出,这对理解进程之间的父子关系有极大帮助。一些很容易上手的热键:P —— 按 CPU 使用率排序M —— 按内存使用排序F4 —— 用字符串过滤进程(例如只看包括 node 的进程)space —— 锚定一个单独进程,这样我能观察它是否有尖峰状态<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204657hnfne1peg857gtdq.jpg">htop output</a>在 Mac Sierra 上 htop 有个奇怪的 bug,不过这个 bug 可以通过以 root 运行来绕过(我实在记不清这个 bug 是什么,但是这个别名能搞定它,有点讨厌的是我得每次都输入 root 密码。):<pre class="prettyprint linenums">alias top="sudo htop" # 给 top 加上别名并且绕过 Sierra 上的 bug</pre><a href="http://hisham.hm/htop/">安装指引</a>diff-so-fancy > diff我非常确定我是几年前从 Paul Irish 那儿学来的这个技巧,尽管我很少直接使用 diff,但我的 git 命令行会一直使用 diff。diff-so-fancy 给了我代码语法颜色和更改字符高亮的功能。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204658r8zajeo2b98ase4b.jpg">diff so fancy</a>在我的 ~/.gitconfig 文件里我用了下面的选项来打开 git diff 和 git show 的 diff-so-fancy 功能。<pre class="prettyprint linenums">[pager] diff = diff-so-fancy | less --tabs=1,5 -RFX show = diff-so-fancy | less --tabs=1,5 -RFX</pre><a href="https://github.com/so-fancy/diff-so-fancy">安装指引</a>fd > find尽管我使用 Mac,但我绝不是 Spotlight 的粉丝,我觉得它的性能很差,关键字也难记,加上更新它自己的数据库时会拖慢 CPU,简直一无是处。我经常使用 <a href="https://www.alfredapp.com/">Alfred</a>,但是它的搜索功能也不是很好。我倾向于在命令行中搜索文件,但是 find 的难用在于很难去记住那些合适的表达式来描述我想要的文件。(而且 Mac 上的 find 命令和非 Mac 的 find 命令还有些许不同,这更加深了我的失望。)fd 是一个很好的替代品(它的作者和 bat 的作者是同一个人)。它非常快而且对于我经常要搜索的命令非常好记。几个上手的例子:<pre class="prettyprint linenums">$ fd cli # 所有包含 "cli" 的文件名$ fd -e md # 所有以 .md 作为扩展名的文件$ fd cli -x wc -w # 搜索 "cli" 并且在每个搜索结果上运行 `wc -w`</pre><a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/29/204700varcm94gce19m91g.png">fd output</a><a href="https://github.com/sharkdp/fd/">安装指引</a>ncdu > du对我来说,知道当前磁盘空间被什么占用了非常重要。我用过 Mac 上的 <a href="https://daisydiskapp.com/">DaisyDisk</a>,但是我觉得那个程序产生结果有点慢。du -sh 命令是我经常会运行的命令(-sh 是指结果以“汇总…
用这个漂亮的工具将方程式截图迅速转换为 LaTeX
Mathpix 是一个漂亮的小工具,它允许你截取复杂数学方程式的截图,并立即将其转换为 LaTeX 可编辑文本。Media
via https://linux.cn/article-10172-1.html
Mathpix 是一个漂亮的小工具,它允许你截取复杂数学方程式的截图,并立即将其转换为 LaTeX 可编辑文本。Media
via https://linux.cn/article-10172-1.html
理解 Linux 链接(一)
链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/30/235607uc4dohmhoal96u28.jpg">Media</a>除了 cp 和 mv 这两个我们在<a href="https://www.linux.com/blog/2018/8/linux-beginners-moving-things-around">本系列的前一部分</a>中详细讨论过的,链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。它的优点是可以让你同时在多个位置显示一个文件或目录。如前所述,在物理磁盘这个级别上,文件和目录之类的东西并不真正存在。文件系统是为了方便人类使用,将它们虚构出来。但在磁盘级别上,有一个名为分区表partition table的东西,它位于每个分区的开头,然后数据分散在磁盘的其余部分。虽然有不同类型的分区表,但是在分区开头的那个表包含的数据将映射每个目录和文件的开始和结束位置。分区表的就像一个索引:当从磁盘加载文件时,操作系统会查找表中的条目,分区表会告诉文件在磁盘上的起始位置和结束位置。然后磁盘头移动到起点,读取数据,直到它到达终点,您看:这就是你的文件。硬链接硬链接只是分区表中的一个条目,它指向磁盘上的某个区域,表示该区域<strong>已经被分配给文件</strong>。换句话说,硬链接指向已经被另一个条目索引的数据。让我们看看它是如何工作的。打开终端,创建一个实验目录并进入:<pre class="prettyprint linenums">mkdir test_dircd test_dir</pre>使用 <a href="https://www.linux.com/…
链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/30/235607uc4dohmhoal96u28.jpg">Media</a>除了 cp 和 mv 这两个我们在<a href="https://www.linux.com/blog/2018/8/linux-beginners-moving-things-around">本系列的前一部分</a>中详细讨论过的,链接是可以将文件和目录放在你希望它们放在的位置的另一种方式。它的优点是可以让你同时在多个位置显示一个文件或目录。如前所述,在物理磁盘这个级别上,文件和目录之类的东西并不真正存在。文件系统是为了方便人类使用,将它们虚构出来。但在磁盘级别上,有一个名为分区表partition table的东西,它位于每个分区的开头,然后数据分散在磁盘的其余部分。虽然有不同类型的分区表,但是在分区开头的那个表包含的数据将映射每个目录和文件的开始和结束位置。分区表的就像一个索引:当从磁盘加载文件时,操作系统会查找表中的条目,分区表会告诉文件在磁盘上的起始位置和结束位置。然后磁盘头移动到起点,读取数据,直到它到达终点,您看:这就是你的文件。硬链接硬链接只是分区表中的一个条目,它指向磁盘上的某个区域,表示该区域<strong>已经被分配给文件</strong>。换句话说,硬链接指向已经被另一个条目索引的数据。让我们看看它是如何工作的。打开终端,创建一个实验目录并进入:<pre class="prettyprint linenums">mkdir test_dircd test_dir</pre>使用 <a href="https://www.linux.com/…