Ubuntu
-
如何在 Linux Shell 编程中定义和使用函数
函数是一段可复用的代码。我们通常把重复的代码放进函数中并且在不同的地方去调用它。库是函数的集合。我们可以在库中定义经常使用的函数,这样其它脚本便可以不再重复代码而使用这些函数。 本…
-
对比 Ubuntu 18.04 和 Fedora 28
大家好,我准备在今天突出说明一下两大主流 Linux 发行版,即 Ubuntu 18.04 和 Fedora 28,包括一些特性和差异。两者都有各自的包管理系统,其中 Ubuntu…
-
如何在 Ubuntu 中切换多个 PHP 版本
有时,最新版本的安装包可能无法按预期工作。你的程序可能与更新的软件包不兼容,并且仅支持特定的旧版软件包。在这种情况下,你可以立即将有问题的软件包降级到其早期的工作版本。请参阅我们的…
-
Linux DNS 查询剖析(第二部分)
在 Linux DNS 查询剖析 – 第一部分 中,我介绍了: nsswitch /etc/hosts /etc/resolv.conf ping …
-
使用 Docker 的用户名字空间功能
用户名字空间User Namespaces 于 Docker 1.10 版本正式纳入其中,该功能允许主机系统将自身的 uid 和 gid 映射为容器进程中的另一个 uid 和 gi…
-
如何在 Linux 中切换相同程序的不同版本
几天前,我们曾经讨论如何在不同的 PHP 版本之间进行切换。在那篇文章中,我们使用 update-alternatives 命令实现从一个 PHP 版本切换到另一个 PHP 版本。…
-
献给命令行重度用户的一组实用 BASH 脚本
今天,我偶然发现了一组适用于命令行重度用户的实用 BASH 脚本,这些脚本被称为 Bash-Snippets,它们对于那些整天都与终端打交道的人来说可能会很有帮助。想要查看你居住地…
-
包管理器的进化
包管理器在 Linux 软件管理中扮演了重要角色。这里对一些主要的包管理器进行了对比。 今天,每个可计算设备都会使用某种软件来完成预定的任务。在软件开发的上古时期,为了找出软件中的…
-
Linux 下如何通过两个或多个输出设备播放声音
在 Linux 上处理音频是一件很痛苦的事情。Pulseaudio 的出现则是利弊参半。虽然有些事情 Pluseaudio 能够做的更好,但有些事情则反而变得更复杂了。处理音频的输…
-
如何查看 Linux 中所有正在运行的服务
有许多方法和工具可以查看 Linux 中所有正在运行的服务。大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status …