首页 互联网 如何选择更适合你的 Linux 发行版?

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?

今天我决定写一篇关于如何选择Linux发行版的博客文章,以便于大家借鉴。

我与Linux的历史

我觉得我应该先介绍一下我和Linux的过往,以防你在阅读本文时无法理解我。当然,如果你不在乎,你也可以跳过。

我在1996年左右开始使用Linux。我和Linux的第一次亲密接触是Slackware 4,这是我在Egghead Software购买的一套CD(没错,是旧的)。我的一个朋友告诉我这个Unix非常棒,他说我只需要尝试一下,就会喜欢它。

我读过关于Unix的很多文章,对此非常好奇。我在互联网服务提供商那有一个shell账户,我曾经笨拙地修改过。在使用Unix的起初我有点犹豫:“为什么我要用Unix?”他的回答很简单:“因为你非常讨厌Windows 95,喜欢DOS,所以你会喜欢Unix”。然后我就买了它。他是对的。

我拿了一个旧硬盘来安装。经过若干小时又若干天的战斗,我终于启动了桌面,可以开始运行了。我不知道是什么驱使我渡过了这段难熬的时光,但我心中有一个念想就是我一定一定要弄清楚如何使这个系统工作,即便困难重重。我必须非常了解我的硬件!简单的事情突然再次变得困难起来。最终我成功了。我开始构建一些愚蠢的脚本以获得乐趣。系统速度很快,这种可以掌控操纵一切的感觉棒极了。

有内置的C编译器吗?因为不懂这个,因此我刚买了某个非常昂贵的Borland软件包。但是这个操作系统内置了一个编译器?!还有免费的图像编辑器?!我被完全迷住了!

此后多年,我尝试过大量发行版。甚至是BSD Unix系列的。我的“主计算机”总是双启动的,其中一些是纯Linux。21世纪初的大部分时间里,我完全避开了Windows。所以到今年为止,关于我的“主机”,它是这样的:

  • 1996-1999:Slackware
  • 1999-2002:Redhat(及FreeBSD)
  • 2003-2005:FreeBSD / Knoppix
  • 2005-2009:Gentoo
  • 2009-2011:Linux Mint
  • 2011-2018:Arch Linux / Debian

我使用过大约50个或更多发行版,运行在我的“主机”上,用于工作、浏览和开发以及其他任何事情。很明显,Arch迄今为止运行时间最长,主要是因为我对其进行配置之后,很长一段时间遗忘了它。

因此,最近几年我“真正用于工作”的主要发行版本是Debian。

下面,让我们谈谈你应该使用哪个版本。

你想做什么?

我将根据常见需求对Linux版本进行分类。这里有一些重叠的地方,而且如果准备充分的话,这些Linux发行版任何一个都可以满足你的期望需求。Linux的一大优点是允许你随心所欲。但是,归根结底,发行版之间还是有区别的,有些能为你做很多工作,或者某个版本具有更适合针对某个目标的设计。下面我会根据实现目标的最简单途径来对这些发行版分类。

我是刚刚入门的Linux新手

有很长一段时间,我会给Linux新手推荐Ubuntu。就易用性和兼容性而言,Ubuntu非常棒。但我现在非常讨厌Ubuntu。不过,我仍然会在我的课程和文章的demo中使用,因为用Ubuntu的人很多,但我不喜欢他们运行这种发行版的方式——内置Amazon广告软件,而且Unity相当令人讨厌。

所以如果你刚入门,我的建议是:

  • Linux Mint Download
  • Debian Download

这是一个骗局,因为Linux Mint与Debian有密切关系,但Mint看起来更漂亮并且有一些跨平台的东西。

出于以下目的,可以使用这些发布版:

  • 类似Windows的体验
  • 安装简单
  • 可靠
  • “类似Linux”,且不自成一派
  • “恰好管用”

好吧,最后一条真的很重要。我们需要的就是有效和管用。这些发行版都是即插即用的。设置好了即可。我的开发机器现在越来越依赖Debian,因为有时我并不关心操作系统,也不希望它来妨碍我。当我处于一种只想构建东西的状态时,就会所向无敌。

我想了解关于Linux / Unix和硬件的更多信息

也许你正处于一种嬉戏和试验的心情。你想挑战自己,想要通过实践来强迫自己学习。这很好,这也正是我所做的。

如果你想挑战自我并学习一些东西,我的建议是:

  • Slackware Linux
  • Arch Linux
  • Gentoo Linux
  • FreeBSD(不是Linux,但适合分到这一类别)

这些发行版中的每一个都需要大量配置,硬件发现和源代码编译。Gentoo,你必须编译所有东西。这是绝对完全掌控操作系统的好方法。

出于以下目的,可以使用这些发布版:

  • 完全掌控你的电脑和操作系统
  • 了解Linux内部
  • 精简的优化系统

这需要付出代价:主要是时间。完整安装这些可能需要几个小时。从好的一面来看,它们可以运行很久。

我在Lenvov上安装Arch Install,差不过周六一天时间都花在了配置上,之后又大概花了10个小时甚至更长时间。它毫不费力就运行了5年(直到笔记本电脑硬件报废)。偶尔需要更新一下,但是它让我可靠地使用了整整5年时间。因此,这是一次很有价值的投资。

我想要成为技术弄潮儿

好吧,也许你不在乎其稳定性如何,只想要最新最好的软件。你想要摆弄内核,或者做一些其他程序员昨天提交的很酷的玩意儿。

为了稳定性和安全,现在你需要的是最新的:

  • Arch Linux
  • OpenSuse Tumbleweed
  • Fedora Rawhide
  • Gentoo Unstable

出于以下目的,可以使用这些发布版:

  • 为学习最新的东西而甘冒风险
  • 最新和最伟大的功能
  • 有趣的配置以便于处理重大更改

公平地说,我个人使用过Arch和Gentoo,虽然没有出现严重的稳定性问题,但是是有风险的。

我只想完成一些工作

好的,也许你并不关心操作系统的细节,只是想要GSD(Get Stuff Done完成任务)。也许你想要构建Node或GoLang app,道听途说Linux最适合。

如果你想完成工作的话,下面这些很有帮助:

  • Debian Download
  • Fedora
  • openSuse Leap
  • Ubuntu Studio  (虽然它是Ubuntu,但可以很好地组合在一起)

出于以下目的,可以使用这些发布版:

  • 运行平稳,维护量低
  • 最小配置
  • 大部分事情可以自动完成
  • 兼容硬件和软件

正如我所说的,我现在经常使用Debian,因为我通常只是制作一些东西,而不是真的想要修整和优化。它稳定,快速,并且不会妨碍我的行事方式。我正是在Debian 9中写的这篇文章。

我想构建服务器

也许你想建立一个Web服务器或虚拟主机,却不知道要用哪个版本。此分类中的第一个就是用于虚拟主机的主要发布版,所以如果你想要一些可以模拟托管软件的网站的东西,那么试试CentOS(或学习Docker!)

下面这些是用于虚拟主机的坚实可靠的帮手:

  • CentOS
  • Red Hat Enterprise Linux (RHEL)
  • Debian 9 Download
  • FreeBSD (不是Linux,但适合分到这个类别)

出于以下目的,可以使用这些发布版:

  • 稳定性
  • 安全
  • 支持其他出于同样原因的程序员使用

我相信任何Linux发行版都可以有效地用于虚拟主机,但有些会更繁琐。

我想尽可能大地提升性能

如果你是那种每一次性能提升都想出成果的类型(曾经我也是如此),那么这些发行版对你而言肯定很棒。其中一些需要编译所有源代码,以便为处理器生成优化的二进制文件。超有意思!

  • Clear Linux  (For Intel CPUS, by Intel)
  • Gentoo Linux
  • Arch Linux
  • FreeBSD (不是Linux,但适合分到这个类别)

出于以下目的,可以使用这些发布版:

  • 显著的性能提升
  • 高负载计算

请记住,硬件已经达到了性能要求,因此它不再像以前那样显得至关重要。15年前,你可以破解内核并拨号服务,然后发现会有一个大的提升。现在,硬件的差异可以忽略不计。运行任何Linux都能够非常流畅。

我想要安全的桌面

或者你想建立一个很难侵入的系统,无论出于何种原因。有若干安全性发布版值得成为关注的焦点。如果你真的担心锁定主机,那么可以看看这些:

  • TAILS Linux
  • Alpine Linux
  • CoreOS
  • TENS Linux (DOD Project)
  • Tin Hat Linux
  • OpenBSD (不是Linux,但适合分到这个类别)

出于以下目的,可以使用这些发布版:

  • 安全性
  • 匿名性

我想要最小的计算机系统

好的,有时你只想要一些精简和轻巧的东西,完成某项工作即可。我绝对理解。也许你有一个想重新定位的旧奔腾处理器。也许操作系统只是目标的一小部分,你想要最小化的容量和配置。

  • ArchBang
  • Lubuntu
  • Puppy Linux
  • Tiny Core Linux
  • Bodhi Linux

出于以下目的,可以使用这些发布版:

  • 将在旧的硬件上运行
  • 尽可能最小化

结论

可能你觉得这篇文章看上去有点琐碎,但你可以根据你的具体情况和实际目的,从我给出的分类中挑选Linux发行版,并将其配置和调整成你想要的模样。这就是Linux的本质,最大化的可自定义。这些都是允许快速入门的极佳发布版。如果你认为我有遗漏的地方,欢迎随时在评论中留言。

不管你是干什么的,如果你因为对Linux好奇而打开这个页面,那么务必请尝试一回!就是现在!绝对物有所值,让你爱不释手!

站心网

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐..

为您推荐

年底跳槽,我来告诉你如何选择下一家公司?

从成都转战深圳的粉丝来信上周五,一位从成都离职,转战深圳发展的女粉丝,跟我微信私聊,问我找工作选择公司的问题,现在不知道要选择什么公司的offer。(插一句,都说土哥的这个号,是前端圈里,妹子关注最多的技..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

Kubernetes(k8s) Linux安装和配置

什么是Kubernetes(k8s)?Kubernetes(通常称为"k8s")是一种用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个容器编排和管理系统,可以自动化应用程序的部署、管理和缩放,并确保它们的高可用性。在..

Linux下RabbitMQ安装和.NET Core使用RabbitMQ.Client操作

RabbitMQ简介AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反..

linux shell的几种截取字符串的方法

写shell脚本时,免不了需要截图字符串,这里有几种截取字符串的方法供参考。假设shell中有字符串变量:str=aabbccddeeffaabbccddeeff1. 符号“#“截取,删除指定字符串最左边一次匹配位置左边的字符串,保留右边字符..

Linux sed命令关键字匹配文件中整行的任意字符然后替换整行

Linux sed命令关键字匹配文件中整行的任意字符然后替换整行语法:sed -i s/.*要匹配的字串符.*/待替换的字串符/ test.txt例如,文件中内容如下:aabbccddbbccdd要将包含bb的行替换为www,使用如下命令:sed -i s/.*b..

linux的Shell脚本中如何判断某个命令是否存在

我们在写shell脚本时,有时候需要根据某个命令是否存在来决定是否执行某些操作,可以有两种方法来判断命令是否存在,参考代码如下:判断linux命令是否存在,方法1:#!/bin/bashif which mycmd /dev/null 21; thenech..

Linux中date命令如何格式化输出需要的时间格式

linux中date命令,可以输出各种格式的时间,有时候在shell脚本中需要获取一定格式的时间字符串,直接使用date命令格式化时间输出就可以完成。date命令的help如下:ferris@ferris-pc:~$ date --help用法:date [选项]..

使用Docker Wine Qemu KVM在Linux运行Windows应用

Docker、Wine、Qemu和KVM都是在Linux上运行Windows程序的工具,但它们的实现方式和使用场景有所不同。Docker是一个容器化技术,它可以在Linux系统中创建和运行容器,这些容器可以包含Windows程序和其所需的依赖项。D..

Debian Linux国内常用镜像源

随着Debian Buster 10.3的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级到 Debian Buster 做前期验证了。这里我们整理一下国内较知名的镜像站点,供大家在生产环..

CentOS7安装unzip解压工具命令使用方法

CentOS7可以通过yum命令安装支持zip的工具unzip,下面是安装和使用的方法。安装unzip工具yuminstall-yunzipzip使用unzip命令解压zip文件#解压到当前目录下unziptest.zip#使用-d参数解压到指定目录下unzip-d/filestes..

Linux使用Docker部署.NET6网站图文教程

本文主要实践在Linux使用Docker部署.NET Core网站。服务器使用的是CentOS7.9版本。我们使用Visual Studio2022创建.NET Core网站并生成Dockerfile文件,然后上传到Linux服务器并使用Docker部署网站。创建网站并生成Do..

linux中Qt工程编译报错: error: 找不到 -lGL

编译一个Qt项目报错:Qt error: 找不到 -lGL这是因为 Qt编译器找不到 OpenGL 的动态链接库(libGL.so)。 在大部分 Linux 发行版中都是默认安装OpenGL,包括 Ubuntu、CentOS 等,找不到该链接库一般都是路径不对,如..

Linux为网站配置SSL证书实现https访问

在Linux系统上配置证书,实现https访问,一般需要以下几个步骤:获取证书要启用https,需要在服务器上安装SSL/TLS证书。您可以从商业证书颁发机构(CA)购买证书,或使用免费的Let's Encrypt证书。可以使用certb..

Linux中通过命令连接指定WiFi

前言在Linux中,尤其是在没有GUI界面的Linux系统中,需要连接WiFi时只能通过命令来完成,大致过程如下:安装软件连接WiFi需要用到iw,wpa_supplicant和net-tools中的一些工具,一些嵌入型Linux中可能已经在生成系统..

linux中USB设备的绑定和解绑(类似于Windows中disable和enable)

前言在Linux中要通过命令实现USB设备的enable和disable,类似于在Windows设备管理器中禁用再启动设备一样,在某些场景,如调试USB固件时,重新加载了固件时,又不希望物理上插拔设备时,可以采用绑定和解绑这种方式..

Linux下执行的Shell脚本如何判断当前脚本执行是否有root权限

我们写Linux下执行的shell脚本,有时候我们需要在root权限下执行,如果当前没有root权限,则给出提示,并直接退出。可以使用如下代码实现:if [ $(id -u) != 0 ]; then echo You must run this script as root 12 ex..

什么是宝塔Linux

宝塔Linux(BT)是一个用于服务器管理的免费开源软件控制面板,它提供了一套简单直观的界面,帮助用户轻松管理服务器上的网站、数据库、FTP、DNS等服务。宝塔Linux可以在Linux服务器上部署,支持诸多常用的Linux发行..

Linux下不写驱动如何访问PCI/PCIe设备的内存空间

前言在Linux中,有一个新的PCI/PCIe设备需要进行测试,但又不想编写Linux内核驱动程序。事实证明,Linux可以在没有驱动驱动的情况下读取和写入PCI设备的内存空间。Cheers!Linux为PCI设备提供了一个sysfs接口。从该..

发表回复

返回顶部