https://www.freecodecamp.org/news/the-best-linux-tutorials/
Linux的名称广泛地表示围绕Linux内核构建的一系列免费和开源软件操作系统发行版。
Linux发行版的定义组件是Linux内核,它是Linus Torvalds于1991年9月17日首次发布的操作系统内核。
许多Linux发行版的名称中都使用“ Linux”一词。自由软件基金会使用名称GNU / Linux来指代操作系统家族以及特定的发行版,以强调大多数Linux发行版不仅是Linux内核,而且不仅具有内核,而且还具有共同点。许多实用程序和库,其中很大一部分来自GNU项目。
Linux的开发是自由和开源软件协作的最杰出的例子之一。任何人都可以根据其各自的许可(例如GNU通用公共许可)的条款,以商业或非商业方式使用,修改和分发基础源代码。
Linux最初是作为MINIX操作系统的克隆而启动的。开源贡献者添加到内核并扩展了其硬件兼容性。Linux的硬件支持和免费许可使Linux在90年代中期成为台式机和服务器计算的流行选择。今天,Linux是世界上最受欢迎的操作系统。它为全球90%的服务器提供动力,并且是Google流行的Android操作系统的基础。
还有许多设计用于在个人计算机上运行的Linux版本,例如Debian或Ubuntu。更重要的是,这些不同版本的Linux(称为发行版)允许用户对操作系统进行不同程度的个性化和控制。这意味着用户可以根据自己的需求选择他们的Linux发行版。
还有Kali Linux,用于高级渗透测试和审计。它有700多种工具,要想有效地使用它,您将需要知道如何使用命令行。不建议初学者使用。
Linux的流行发行版包括:
- 的Ubuntu
- Linux Mint
- CentOS的
- RHEL
- Arch Linux
软件包类型在更高级别的发行版之间划分,其中Debian(.deb)和Red Hat(.rpm)是最常用的两种。但是,还有其他一些,包括Pacman(用于Arch Linux)和PetGet(Puppy Linux)。
Linux发行版也有各种形状和大小,并且大多数(如果不是全部)都提供了在所谓的“ Live CD”环境中直接通过CD / DVD运行的功能,如果主板支持从USB引导,甚至可以直接通过USB运行。
有关Linux的更多信息,请阅读freeCodeCamp创始人Quincy Larson的文章 Linux is 25。让我们用有关Linux的25个令人震惊的事实来庆祝。
一些最好的Linux教程
您可以观看此命令行崩溃课程,其中涵盖了许多最常见的命令。
或Briana的Bash教程,其中涵盖了各种命令行工具和命令。

Linux的一些优点
持续有效的改进。
Linux更新是通过开发人员的全球协作进行的。通过这种类型的支持,可以更快地记录和解决错误。此外,由于开发人员也是最终用户,因此他们有适当的动力来确保它可以满足用户的需求,并确保其运行良好。
风险较小。
软件仅与所提供的支持一样好。想象一下:一个软件是由XYZ公司创建的,后来又破产了,或者被决定削减支持的另一家公司收购。该软件永远不会看到改进或修正,因此其实用性将不可避免地被侵蚀和消亡。
Linux并非由单个实体或公司所有和运营,因此这种情况不会发生。除此之外,任何人都可以自由选择它并做出贡献。由于其压倒性的普及和使用,失去对Linux的支持的风险极小。
轻巧。
Linux在系统上运行的要求远低于Windows或Mac。使用正确的Linux发行版,用户可以进行适当的设置,而Linux将为您提供系统价值。磁盘空间和内存占用空间也可以更低。有些发行版适用于可追溯到Pentium系列的CPU,另一些发行版仅需要128MB的RAM,而磁盘空间却差不多!
大量文档供初学者和高级用户使用。
Linux的社区活跃,愿意分享他们的知识和帮助(就像FreeCodeCamp!一样)。Linux内置有命令行实用程序,可提供有关命令,库,标准等的文档(手册页和信息页),Internet上有多种格式的文档,包括Linux文档计划,LinuxQuestions,ServerFault和The Arch Wiki。
除了文档之外,还有许多有用且欢迎的社区,供新手提出诸如Ask Ubuntu和Reddit的r / linuxquestions之类的问题。
可以采取在IT行业中认可的自定进度的证书(CompTIA的Linux +和LPI的LPIC测试)。尽管不是必需的,但学习C可以使用户查看Linux代码以查看其运行情况。
贸易支持。
世界依赖于Linux支持关键系统,因此需求不会消失。这不仅对那些有助于Linux的人很重要,而且对支持Linux的人也很重要(工作!)。Linux支持在IT中变得越来越重要,但作为开发人员,也要具备这些知识,这将使他们更加全面和有用(即Full stack开发人员)。
与其他操作系统的互操作性。
Linux对NTFS和HFS +文件系统(由Windows和Mac使用)提供驱动程序支持,还对Windows计算机上的文件/打印服务支持提供Samba。
更好的硬件支持。
对于其他操作系统,通常用户必须访问制造商的网站以获取针对不同类型硬件的驱动程序支持。Linux内核通过即插即用功能自动支持大多数硬件(很大程度上是由于开源社区)。一些制造商还开发了其专有驱动程序的Linux版本,可以通过发行版的软件存储库或手动安装提供的二进制文件轻松地安装它们。
软件可用性/兼容性。
Linux具有丰富的可用应用程序集。它具有办公应用程序,Web浏览器(Google Chrome和Mozilla Firefox),媒体播放器,图像 / 视频处理等。对于视频游戏,Steam在具有许多受支持游戏的Linux上运行。Windows应用程序也可以在Linux中运行(有关详细信息,请参见Wine)。
为发展而建。
由于Linux最初是由开发人员为开发人员开发的,因此他们花费了大量的时间和精力来完善将要使用的工具。
它具有功能强大的外壳程序,可用于各种编程和管理任务(Bash是Linux上最受欢迎和默认的选择)。
尽管Linux在gedit中具有等效的“记事本” ,但它还提供了更强大和可自定义的基于文本的编辑器,例如Vim和Emacs(建议Linux用户至少知道这些编辑器之一)。
还有一些可用于Web开发的IDE,例如Atom,Aptana / Eclipse,Sublime,KomodoIDE等。Linux还可以利用Apache之类的软件来设置用于测试的本地Web服务器,用于版本控制的Git,以及诸如Node.js / Ruby / SaSS / Heroku之类的其他工具/语言都对Linux有所支持,并且具有可以用于代替GUI。
可定制
Linux允许用户更改桌面设计和主题,添加小部件等。这些更改可以在桌面环境中完成。不同的环境具有不同的选项集。一些流行的是:KDE,GNOME,XFCE,万神殿。
免费。
很难击败!
Linux入门
选择发行版
如今,有多种类型的Linux发行版可供选择,而选择发行版是Linux世界中的主要关注点。考虑到易于使用的操作系统,该类别中排名第一的是:
- Ubuntu-稳定的Debian系统的衍生产品,Ubuntu在易于使用和最新的环境中蓬勃发展。
- Mint-基于Ubuntu和Debian,此操作系统具有强大的功能,例如Ubuntu的PPA兼容性,apt软件包管理器。基本的薄荷发行版使您想起Windows,对于来自Windows的用户而言,这可能是一个不错的特性。
- Trisquel-从Ubuntu衍生的发行版,专注于仅使用完全免费的软件,避免使用专有软件。Trisquel得到了自由软件基金会(FSF)的认可。
正在安装
大多数Linux发行版都非常易于安装,因为所有信息都在安装的每个步骤之间显示。
要确定的重要一步是确定新Linux发行版的安装位置。对于初次使用的用户,最好选择“引导”选项,因为它将为您完成所有工作。
记住要仔细阅读所有步骤,并在硬盘中为新发行版留一些空间-我说最小30Gb是一个不错的选择。
可怕的码头
不用担心Linux的终端,实际上,通过一些实践它很容易使用,它可以使您的日常任务大大自动化。
在Debian / Ubuntu及其衍生版本中,打开CLI(命令行界面)的快捷方式是“ Ctrl + Alt + T”。让我们打开终端并尝试一些命令。
cd(更改目录)-cd命令是您在Linux命令行上最常使用的命令之一。它允许您更改工作目录。您可以使用它在文件系统的层次结构中四处移动。
cd
单独使用cd命令会将当前目录更改为用户主目录,该目录位于“ / home / username”中,如“ / home / mark”中所示。
ls(列表)-此命令列出当前目录中的内容。它也可以用来列出文件信息。
ls
现在我们可以在家里看到目录了。
此处列出的命令是基本命令,可帮助您快速入门。但是它们也很强大,随着您的Linux专业知识的扩展,它们将继续发挥作用。
echo
这会将您输入的文本发送到某个地方-返回屏幕,文件或另一个命令。例:echo "hello!"
cat
要显示文本文件的内容,只需键入cat myfile
。find
它按照它说的做,而且很擅长。使用它可以按路径,大小,日期,所有者和其他许多有用的过滤器查找文件。范例:find . -type f -mtime -1h # List files in this directory modified in the past hour
。date
如果您想知道现在是几点,只需输入日期即可。范例:date "+It's %l:%m%p on %A"
。在脚本中使用它可以根据当前日期命名文件。ls
这个目录里有什么?ls
与一些有用的标志结合使用,可以按日期和大小显示和排序目录内容。它还为您提供了许多格式化输出的选项。pwd
我在哪里?Linux可能会令人宽容,尤其是在删除某些内容时。发出命令之前,请确保您知道自己的位置。mail
Linux的邮件程序外观不佳,但确实很有帮助。您可以创建一条消息,并在一个命令中添加文本,收件人和附件。例:echo "We're having a great time." | mail -s "Wish you were here!" -A postcard.png -t [email protected]
cut
当您有一个带有分隔符的字符串时,用于cut
过滤某些字段。例:echo "this, that, and the other" | cut -d, -f2 # "that"
grep
要查找包含特定字符串的文本行,请使用grep。例:grep 'root' /etc/passwd # root:x:0:0:root:/root:/bin/bash
sed
使用sed查找和更改文本中的子字符串。例:echo "this, that, and the other" | sed 's/that/those/' # "this, those, and the other"
shutdown
使用关闭系统并关闭电源。示例:shutdown -h now
立即关闭系统。shutdown -h +5
五分钟后关闭系统。
在脚本和命令行中使用这些命令。它们都是非常强大的命令,Linux主页上有很多有关每个命令的信息。
另外,用于系统管理员的重要命令如下:
uptime
:显示系统已经运行了多长时间以及当前登录的用户数量。它还显示了1.5分钟和15分钟间隔的平均负载。w
:显示当前登录的用户及其过程以及平均负载。还显示登录名,tty名称,远程主机,登录时间,空闲时间,JCPU,PCPU,命令和进程。users
:显示当前登录的用户。除了help和version,此命令没有其他参数。who
:仅返回用户名,日期,时间和主机信息。who命令类似于w命令。与w不同,谁不打印用户在做什么。whoami
:打印当前用户的名称。您也可以使用“我是谁”来显示当前用户。如果您以root用户身份登录,则使用sudo命令“ whoami”以当前用户身份返回root。如果您想知道确切的用户登录名,请使用“我是谁”。ls
:以易于阅读的格式显示文件列表。crontab
:使用crontab命令和-l选项列出当前用户的计划作业。less
:允许您快速查看文件。您可以上下翻页。按“ q”从较少窗口中退出。more
:允许您快速查看文件并以百分比显示详细信息。您可以上下翻页。按“ q”退出更多窗口。cp
:将文件从源复制到目标并保持相同模式。
这些是adiminstrator经常使用的命令列表。这不是完整的列表,但是是需要时要引用的紧凑命令列表。
- 发行版:它是“发行版”的缩写;发行版是GNU / Linux操作系统的一个特殊品牌–如Redhat,Fedora,Ubuntu和Debian。
- Shell:这是一个读取命令输入并运行指定命令的程序。光标前面的美元符号($)称为shell提示符;它告诉您系统已准备就绪,正在等待命令形式的输入。
- CLI:代表命令行界面。它是简单的用户界面,可提供用户使用文本命令与Linux OS交互所需的服务。它使用户不必知道复杂的硬件细节。
- GUI:代表图形用户界面。它是Linux系统的一部分,包括使指向和单击成为可能的窗口,图标,图片(通常是图形)。
- 终端:是用于访问Linux Shell的应用程序。
- 内核:这是Linux系统的核心-您可以称之为“大脑”。内核控制计算机的资源,并通过与计算机的硬件直接交互来确定如何使用它们。
- Tux: Linux的官方吉祥物。那是通常与Linux相关的企鹅–如果您在线上看到黄色和黑色的企鹅,那么您就看到了晚礼服。
- 根:也称为超级用户,是Linux计算机管理员的“默认”用户名。通常在Linux终端上用 “#”符号表示。
- 命令:是给Linux计算机的文本输入或指令(通过在终端中键入),以告诉计算机该做什么(即,为了获得所需的结果)。
- 资料库:资料库(简称“资料库”)是通常在线上托管的发行版软件包的集合。将软件程序添加到程序包管理器时,可以从发行版提供的默认存储库中安装软件程序,也可以从第三方存储库中安装软件程序。
- 软件包管理器:是一个软件程序,使您可以搜索,安装,更新和删除应用程序以及其他应用程序管理功能。每个发行版都有来自最终程序包管理器(如Ubuntu软件中心)的图形和命令行程序包管理工具(如“ apt-get”)。
- 依赖关系:依赖关系是您要安装的程序需要运行的软件程序。在安装程序时,它会向默认程序包管理器提供其依赖项列表,以检查它们是否已安装,如果尚未安装,则从存储库中下载它们。