Linux基础知识

471 阅读47分钟

老师的课后作业: 1.了解linux相关概念; 2.熟练linux文件系统结构; 3.熟练linux常见命令。 说实话这种收集文档类的作业最简单了。

1. Linux的概念

1.1 什么是Linux

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

Linux标志是一个叫Tux的可爱小企鹅。

001.png

1.2 Linux 怎么读

世界都在争论的一个问题,就是Linux这个单词的发音,创始人钦定也没用。有的读作[ˈlɪnɪks](”李尼克斯“),有的读作[ˈlinju:ks](“李纽克斯”),有的读作[ˈlɪnəks](“李呢克斯”)。林纳斯给出的标准发音为['li:nэks],写成中文就是“李呢克斯”。

1.3 Linux的特点

Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。还可以对Linux进行适当的修改和删减,使之能够在嵌入式系统上使用,这就是嵌入式Linux操作系统。

1.3.1 基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

1.3.2 完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

1.3.3 完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

1.3.4 多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

1.3.5 良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

1.3.6 支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

1.4 Linux的主流发行版

目前linux有四大常见的主分支,分别为Debian系、Redhat系、Arch系和SUSE系:

002.webp

1.4.1 Linux Mint

Linux Mint是一个基于Ubuntu的发行版,最早于2006年由居住在爱尔兰的法国出生的IT专家Clement Lefebvre发布。最初维护一个专门为新Linux用户提供帮助,技巧和文档的Linux网站,笔者看到了开发Linux发行版的必要性,该发行版致力于解决那些技术性较强的产品的使用问题,让它们更易于使用。在他的网站上向访问者征求反馈意见之后,他继续把许多人提到的“改进的Ubuntu”或“Ubuntu完善版”的东西建立起来。注:Ubuntu就是以易用,对新手友好著称的。可想而知Mint的目标更进一步,让Linux更加的贴近了普通用户。

但是,Linux Mint不仅仅是一个具有新的应用程序和更新的桌面主题的Ubuntu。自开始以来,开发人员一直在增加各种Mint下的图形工具以提高可用性;这包括mintDesktop – 用于配置桌面环境的实用程序,mintMenu – 一个新的,优雅的菜单结构,以方便导航,mintInstall – 一个易于使用的软件安装程序,mintUpdate – 一个软件更新程序,提供了一些更突出的几个工具和数百个额外的改进。该项目还开发了很多替代的专有程序以避免一些潜在的法律版权问题,其中包括专利和专利设计的多媒体编解码器,这些编解码器在很多发行版中通常是不存在的。因此,Mint在易用性方面的声誉得到了进一步的加强,也许Linux Mint的最佳特性之一就是开发人员倾听用户的意见,并总是快速地实施好的建议。

因为Linux Mint是可以免费下载,因此该项目通过捐赠,广告和专业支持服务获得收入。它没有固定的发布时间表或者计划的功能列表,但是在每个Ubuntu长期支持版本发布几周后,可以预期Linux Mint的新版本。除Mint的MATE和Cinnamon桌面两个主要版本之外,该项目还使用包括KDE和Xfce在内的其他桌面版本构建版本。这些版本通常在两个“主要”版本几周后完成,有时可能会缺少一些主要分支中中的一些“Mint”工具和其他功能。 Mint系列的另一个版本是基于Debian稳定版分支的“Debian版”。 Linux Mint的Debian版本提供了非常稳定的基础,而桌面软件包的更新速度比Mint的“主要分支”版本更快。 Linux Mint不适用软件自由原则,也不会发布安全公告。

优点:精心整理的内部开发的“Mint”工具,数百个用户友好的增强功能,包含多媒体编解码器.  

缺点:“社区”版本,因此可能并不总是包含最新的功能。另外,项目不会发布安全建议软件包管理: mintInstall包管理器,使用DEB包(与Ubuntu兼容)可用的版本:“主”版本(MATE和Cinnamon桌面),“社区”版本(KDE和Xfce桌面),Linux Mint“Debian”版本(MATE或Cinnamon桌面)替代选择:Ubuntu, elementary OS, Zorin OS, Lubuntu, Xubuntu, Peppermint OS

1.4.2 ubuntu

Ubuntu的推出是在2004年9月首次宣布的。尽管这个项目在Linux发行版中是一个相对较新的,但是它的邮件列表很快就被热情的用户和开发人员所占领。随后的几年中,Ubuntu发展成为最受欢迎的桌面Linux发行版,并为开发易于使用和免费的桌面操作系统做出了巨大贡献,该操作系统成为市场上专有桌面操作系统强有力的竞争者。

Ubuntu成功的原因是什么?首先,这个项目是由南非千万富翁,前Debian开发人员和全球第二位太空游客Mark Shuttleworth共同创建的,该公司是位于马恩岛的Canonical Ltd公司,目前正在为该项目提供资金。其次,Ubuntu从其他类似项目的错误中吸取教训,并从一开始就避免了这些错误 – 它创建了一个优秀的基于Web的基础架构,其中包含Wiki风格的文档,创造性的bug报告功能以及专业的管理方法。第三,由于其富有的创始人,Ubuntu能够向所有感兴趣的用户免费发送CD,从而有助于分发的快速普及。

在技术方面,Ubuntu基于Debian“Sid”(不稳定分支),但是使用的是GNOME,Firefox和LibreOffice等一些著名软件包的最新版本。它使用称为“Unity”独创的用户界面。它具有可预测的6个月发布时间表,外加一个长期支持(LTS)版本,支持5年的安全更新,具体取决于版本(非LTS版本支持9个月)。 Ubuntu的其他特殊功能包括可安装的Live DVD,独占应用和桌面主题,Windows用户的迁移助理,支持3D桌面效果等最新技术,为ATI和NVIDIA图形卡以及无线网络轻松安装专有设备驱动程序,并为非免费或专利设计的媒体编解码器提供按需支持。

优点:固定发布周期和支持期; 具有5年安全更新的长期支持(LTS)变体;新手友好; 丰富的文档,官方和用户无私贡献

缺点:与Debian有一定的兼容性问题; 频繁的重大更新可能流失一些用户,Unity用户界面被批评为更适合移动设备,而不是电脑; 非LTS版本只有9个月的安全支持软件包管理:使用DEB包的高级包工具(APT)其他衍生版:Ubuntu,Kubuntu,Xubuntu,Lubuntu,Ubuntu GNOME,Ubuntu MATE,Ubuntu Budgie,Ubuntu Kylin,适用于64位(x86_64)处理器的Ubuntu Studio;基于Ubuntu的发行版: Linux Mint (桌面版本), elementary OS (桌面版本), Zorin OS (桌面版本), Pinguy OS (桌面版本),Trisquel GNU/Linux (自由软件), Bodhi Linux (Enlightenment桌面)

1.4.3 Debian GNU/Linux

Debian GNU / Linux于1993年首次公布。它的创始人Ian Murdock的初始想法是在空闲时间创建一个由数百名志愿者开发的完全非商业项目。当时怀疑论者远远超过乐观主义者,似乎注定要夭折收尾,但实际情况却恰恰相反。 Debian不仅幸存下来,而且还在不到十年的时间里成为了最大的Linux发行版,也是有史以来创建的最大的协作软件项目!

Debian GNU / Linux的成功可以用下面的数字来说明。它由1000多名志愿者开发,它的软件库包含近50,000个二进制包(编译为8个处理器架构),有120个基于Debian的发行版和live CD。这些数字是任何其他基于Linux的操作系统无法比拟的。 Debian主要有三个主要分支(或四个,如果包括增加稳定性的“实验”分支):“unstable”(也称为“sid”),“testing”和“stable ”。软件包和功能的逐步整合和稳定性,以及项目完善的质量控制机制,使得Debian获得了今天可用的最佳测试和无缺陷发行版之一的声誉。

然而,这种冗长而复杂的开发风格也有一些缺点:Debian的稳定版本并不是特别新,特别是因为新的稳定版本每1 – 3年才会发布一次。那些喜欢最新软件包和技术的用户被迫使用Debian testing(测试)或unstable(不稳定)分支。 Debian高度民主的结构导致了有争议的决定,并引发了开发者之间的分歧。这导致了项目的停滞不前,没有能将项目快速推进。

优点:非常稳定;卓越的质量控制;包括超过30,000个软件包;支持比任何其他Linux发行版更多的处理器体系结构

缺点:保守 – 由于支持许多处理器架构,并不总是包含更新的技术;缓释周期(每1 – 3年稳定释放一次);对开发者邮件列表和博客的讨论有时是不可能的软件包管理:使用DEB包的高级包工具(APT)可用的版本:12个处理器架构的安装CD/DVD和live CD映像,包括来自Intel,AMD,Power和其他所有32位和64位处理器基于Debian的替代方案:Ubuntu, SparkyLinux(Enlightenment, JWM, LXDE, MATE, Openbox, Razor-qt, Xfce桌面), SolydXK (Xfce或KDE), KNOPPIX (LXDE), Tanglu(GNOME, KDE), siduction (LXQt)

1.4.4 Fedora

虽然Fedora仅在2004年9月才正式发布,但它的起源可追溯到1995年,当时它是由Bob Young和Marc Ewing以Red Hat Linux的名义发布的。该公司的第一款产品Red Hat Linux 1.0“母亲节”在同一年发布,之后很快又进行了一些错误修复更新。 1997年,红帽公司推出了革命性的RPM软件包管理系统,具有依赖解决方案和其他先进功能,极大地促进了分发的迅速普及并超越Slackware Linux成为世界上使用最广泛的Linux发行版。在以后的几年中,红帽将按照正常的6个月发布时间表进行开发。

在2003年刚发布Red Hat Linux 9之后,该公司对其产品系列进行了一些根本性的改变。它保留了红帽商业产品的商标,特别是红帽企业Linux,并引入了Fedora Core(后来改名为Fedora),这是一个红帽赞助的,但面向社区的发行版,专为“Linux爱好者”设计。从刚开始的批评后,Linux社区接受了“新的”发行版作为Red Hat Linux的核心延续版本。 Fedora重新成为一个高质量的版本,成为市场上最受欢迎的操作系统之一。与此同时,红帽公司迅速成为全球规模最大,盈利能力最强的Linux公司,拥有创新的产品阵容,出色的客户支持以及红帽认证工程师(RHCE)认证计划等其他受欢迎的计划。

尽管Fedora的方向仍然由Red Hat,Inc.主要控制,并且该产品有时被看作是对红帽企业Linux的测试平台(小白鼠),无论是正确的还是错误的,无可否认,Fedora是最具创新性的分发版之一。它对Linux内核,glibc和GCC的贡献是众所周知的,它最近集成了SELinux功能,虚拟化技术,系统服务管理器,先进的日志文件系统以及其他企业级功能, 。不利的一面是,Fedora仍然缺乏明确的面向桌面的策略,以使产品更容易用于“Linux爱好者”目标以外的用户。

优点:高度创新;突出的安全功能;大量支持的软件包;严格遵守自由软件的理念;具有许多流行桌面环境的Live CD的可用性

缺点:Fedora的优先级倾向于倾向于企业功能,而不是桌面可用性;一些出色的边缘功能,比如早期切换到KDE 4和GNOME 3,偶尔会疏远一些桌面用户软件包管理:使用RPM软件包的YUM图形和命令行工具可用的版本:用于32位(i386)和64位(x86_64)处理器的Fedora;还有GNOME,KDE,LXDE,MATE和Xfce桌面的CD版本基于Fedora的替代方案:Korora(GNOME,KDE,LXDE桌面或Xfce桌面的Live DVD)基于红帽的备选方案:CentOS,Scientific Linux

1.4.5 openSUSE

openSUSE的诞生始于1992年,当时四位德国Linux爱好者Roland Dyroff,Thomas Fehr,Hubert Mantel和Burchard Steinbild以SuSE(Software und System Entwicklung)Linux的名义推出了该项目。在早期,这家年轻的公司出售了一套包含德语版Slackware Linux的软盘,但是在SuSE Linux于1996年5月成为独立发行版4.2之后不久,在随后的几年里,开发人员采用了RPM软件包管理格式,并推出了易于使用的图形系统管理工具YaST。在欧洲和北美地区,SuSE Linux的发布频繁,出色的文档和易用性使得发行日益受到欢迎。

SuSE Linux于2003年底被Novell收购,然后于2010年并入Attachmate。随着第一次收购,SUSE Linux的开发,许可和可用性发生了重大变化 – YaST在General Public许可证(GPL)中,ISO映像是从公共下载服务器免费发布的,最重要的是,发行版的开发首次向公众开放。自从2005年10月发布openSUSE项目并发布10.0版本以来,这个发行版就变得完全免费了。 openSUSE代码已成为Novell商用产品的基础系统,首先命名为Novell Linux,后来又重新命名为SUSE Linux Enterprise Desktop和SUSE Linux Enterprise Server。

今天,openSUSE拥有大量满意的用户。 openSUSE获得用户好评的主要原因是令人愉悦和精美的桌面环境(KDE和GNOME),卓越的系统管理工具(YaST)。然而,Novell和微软之间的臭名昭着的交易,显然承认微软对Linux拥有知识产权的说法,已经引起许多Linux人士的谴责,并促使一些用户转换发行版。尽管Novell低调处理,微软尚未行使任何权利,这一问题仍然成为非常友善的社区Linux公司的郁结。

优点:全面而直观的配置工具;大型软件包库,优秀的网站基础设施和印刷文档

缺点:2006年11月,Novell与微软的专利协议似乎使微软对Linux的知识产权声称合法化;其资源沉重的桌面设置和图形工具有时被视为“臃肿和缓慢”软件包管理:使用RPM包的YaST图形和命令行实用程序可用的版本:openSUSE for 32位(i386),64位(x86_64)处理器(也可安装live CD版);适用于i586,IA64,PowerPC,s390,s390x和x86_64体系结构的SUSE Linux Enterprise Desktop/Server

1.4.6 Arch Linux

Arch Linux的KISS(保持简单愚蠢)哲学是在2002年由加拿大计算机科学专业毕业生Judd Vinet在2002年推出的,几年来,它一直是一个为中级和高级Linux用户设计的边缘项目。但是它“滚动更新”,只需要安装一次,然后保持一直更新,不要从头安装新的系统。这都要感谢其强大的包管理器和一个总是最新的软件库。因此,Arch Linux的“发行版”很少,而且现在只限于一个基本的安装光盘,只有在基本系统发生相当大的变化时,才会发行新的安装介质。

Arch Linux除了拥有备受推崇的“滚动发布”更新机制之外,还以其快速和强大的软件包管理器“Pacman”而闻名,能够从源代码安装软件包,并且由于其AUR基础架构,以及经过充分测试的软件包不断增加的软件库。其高度重视的文档,以及卓越的Arch Linux手册,使得一些高级Linux用户可以自行安装和定制分发。用户可以使用的强大工具意味着发行版可以无限定制到最细微的细节,并且没有两个安装可能是相同的。

不利的一面是,任何滚动更新更新机制都有其危险性:人为错误,库或依赖关系丢失,已存在于存储库中的应用程序的新版本有一个尚未报告的严重错误都可能导致系统的不稳定。在Pacman升级之后,最终导致无法启动的系统是经常遇到的。因此,Arch Linux是一种需要用户警觉并具有足够的知识来解决任何这种可能的问题的发行版。此外,偶尔安装的发行版意味着有时由于重要的系统更改或在较早的Linux内核中缺少硬件支持而无法使用旧版本。

优点:优秀的软件管理基础设施无与伦比的定制和调整选项;一流的在线文档

缺点:偶尔会出现不稳定和风险软件包管理:使用TAR.XZ软件包的“Pacman”包管理器可用的版本:64位(x86_64)处理器的最小安装CD和网络安装CD映像基于Arch Linux的发行版:Manjaro Linux(与Cinnamon,Enlightenment,KDE,LXDE,MATE,Openbox,Xfce一起使用),Antergos(与GNOME 3一起使用),ArchBang Linux(使用Openbox的轻量级),Chakra GNU / Linux (使用KDE的Live CD),Bridge Linux(使用GNOME,KDE,LXDE和Xfce),Parabola GNU / Linux(免费软件),KaOS(使用KDE)

1.4.7 CentOS

CentOS于2003年底推出,是一个社区项目,目标是将红帽企业Linux(RHEL)的源代码重建为可安装的Linux发行版,并为所有包含的软件包提供及时的安全更新。更直白地说,CentOS是一个RHEL克隆版。这两个发行版之间唯一的技术差异就是品牌 – CentOS用自己的所有代码取代了所有的红帽商标和标识。尽管如此,红帽与CentOS之间的关系仍然保持友好,许多CentOS开发者与Red Hat保持着紧密的联系,甚至直接受雇于Red Hat。

CentOS经常被看作是一个可靠的服务器发行版。它配备了经过良好测试和稳定的Linux内核和软件包,构成了其母公司Red Hat Enterprise Linux的基础。尽管是志愿者维护的一个社区项目,但它已经赢得了市场上更高端服务器产品(尤其是经验丰富的Linux系统管理员)的稳定,免费替代品的声誉。 CentOS也适合作为企业桌面解决方案,特别是在稳定性,可靠性和长期支持优于最新软件和功能的地方。像RHEL一样,CentOS支持大约7 – 10年的安全更新。

尽管有其优势,CentOS可能不是所有部署方案中的最佳解决方案。那些喜欢使用最新的Linux技术和最新的软件包进行发布的用户应该到别处去看看。主要的CentOS版本是在RHEL版本的基础上发布的,每2 – 3年才会发布一次,而小版本(例如5.1)则以6到9个月为间隔。小发行通常不包含任何主要功能(虽然有时包括支持更新的硬件),只有少数软件包可能会更新到新版本。 Linux内核,基本系统和大多数应用程序版本保持不变,但偶尔也可以在试验的基础上提供重要软件包(例如LibreOffice或Firefox)的新版本。当然也有一个分支项目,CentOS也为其发行版的用户构建了更新的软件包,但是包含它们的软件库默认是不启用的,因为它们可能会破坏上游的兼容性。

优点:非常稳定和可靠;免费下载和使用;有7年以上的免费安全更新;

缺点:缺乏最新的Linux技术;有时该项目未能履行其及时提供安全更新和新稳定版本的承诺软件包管理:使用RPM软件包的YUM图形和命令行工具可用版本:用于i386和x86_64处理器的安装DVD和可安装的Live CD(GNOME);旧版本(3.x和4.x)也可用于Alpha,IA64和IBM z系列(s390,s390x)处理器。其他RHEL克隆和基于CentOS的发行版:Scientific Linux,Springdale Linux,SME服务器,Rocks Cluster Distribution,Oracle Enterprise Linux

1.4.8 Rocky Linux

2020年12月,收购Centos项目的Red Hat在IBM收购Red Hat后突然宣布改变其重点。该公司宣布,最新版本9将在2021年底结束支持,比之前承诺的10年时间表短得多,取而代之的是滚动发布的Centos Stream开发版本。Centos7将按计划在2024年结束。由于有如此多的用户依赖Centos版本,而该版本将比他们计划的更早地得不到支持,社区意识到需要一个新的项目。Rocky Linux应运而生。

CentOS宣布停止开发后,CentOS的原创始人Gregory Kurtzer在CentOS网站上发表评论宣布,他将再次启动一个项目以实现CentOS的最初目标。它的名字被选为对早期CentOS联合创始人Rocky McGaugh的致敬。到12月12日,Rocky Linux的代码仓库已经成为GitHub上的热门仓库。

和Centos一样,这是一个免费学习Red Hat生态系统的好方法,因为许多商业数据中心都运行RHEL。如果您对科学计算感兴趣,不仅所有主要超级计算机都运行Linux ,而且绝大多数超级计算机都运行RHEL或来自RHEL的发行版。也许我们将来会看到这些超级计算机运行Rocky Linux。

2022年7月16日,Rocky Linux社区宣布,Rocky Linux 9.0 操作系统全面上市,可作为CentOS Linux和CentOS Stream的直接替代品。

2. Linux的系统结构

Linux系统一般有四个主要部分:内核、shell、文件系统、应用程序。 前三者一起构成了基本的操作系统结构,它使得用户可以使用这个操作系统并在系统中完成特定的任务。其结构如下图所示。

003.webp

2.1 Linux内核

内核是操作系统的核心,提供很多的基本功能,它负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统等,决定着系统的性能和稳定性。Linux内核主要由以下几部分组成:内存管理、进程管理、设备驱动程序、文件系统、网络管理等,其体系结构可表示成如下图所示:

004.webp

从上图可以看出,用户与内核之间的交互是通过系统调用接口来完成的。

系统调用接口(System Call Interface)这一层提供了 某些机制执行从用户空间到内核空间的函数调用,接口依赖于体系结构。SCI可以看作是一个非常有用的函数调用式的多路复用、多路分解服务,在目录./linux/kernel下可以找到SCI层的具体实现,在目录./linux/arch 下可以找到其依赖的体系结构。

2.1.1 内存管理

对于计算机而言,内存资源总是有限的,为了让有限的物理内存满足应用程序的需求,Linux采用了“虚拟内存”管理方式, 它使得应用程序认为它拥有连续可用的内存(实际上是多个物理内存碎片,甚至部分暂存在外部磁盘上),让大型程序的编写变得更容易,对物理内存的使用也更有效率。Linux将物理内存划分为容易处理的内存页,目前大多数系统的页面都是4kb 。

Linux包括了管理可用内存的方式以及物理、虚拟映射所使用的硬件机制。当然,内存管理不光是管理4kb缓冲区, 系统提供了对4kb缓冲区的抽象, 它是以4kb为基数,从中分配结构,并跟踪内存页的使用情况,从而达到根据系统的需要动态调整的效果。

为了支持多用户使用内存,有时内存可能被消耗光,系统可以将暂时不用的页面放入磁盘中,这个过程称为交换。内存管理的源代码可以在目录./linux/mm中查看。

2.1.2 进程管理

进程是某特定应用程序的一个运行实体。Linux系统支持多任务,它是通过在“时间片”间隔内轮流执行这些进程来实现的,进程轮流执行的方法称为“进程调度”,完成调度的程序为调度程序。 进程调度就是控制进程对CPU的访问, 每次由调度程序选择“最值得”运行的进程(可运行进程是仅等待CPU资源的进程),这种“最值得”是系统基于优先级的进程调度算法实现的。

通用多任务机制,每个进程可认为只有自己独占计算机,从而简化了程序的编写。每个进程有自己单独的地址空间,并只有自己可以访问,这样可以有效避免进程间的干扰。对于某项任务需要多个进程协作完成的,操作系统提供了进程间通讯机制来辅助完成。Linux系统中常见的进程间通讯机制有:信号、管道、共享内存、信号量、套接字等。

内核通过SCI层提供了一个应用程序编程接口来创建一个新进程(fork 、exec或POSIX函数)、停止进程(kill、exit),并在它们之间进行通信和同步(signal或POSIX机制)。

2.1.3 文件系统

Linux系统将独立的文件系统组合成了一个层次化的树形结构, 并由一个单独的实体代表这一文件系统。对于一个外部新的文件系统,Linux系统通过“挂载”的方式将其挂载到某个目录上,从而让不同的文件系统结合成一个整体。

Linux支持多种不同的文件系统,其中Ext2是其原生文件系统外,它也能够支持FAT、VFAT、FAT32、MINIX等文件系统,从而可以方便地与其它操作系统交换数据。Linux系统之所以能支持不同的文件系统,是因为它将各种文件系统组织成了一个统一的虚拟文件系统(Virtual File System)。

虚拟文件系统为所有设备提供了统一的接口,它在用户和内核所支持的文件系统之间提供了一个交换层,如下图所示:

005.webp

从上图可以看出,在VFS上面是对文件的open、close、read、write等通用API的抽象,在VFS下面是文件系统的抽象,定义了上层函数的实现。文件系统的源代码可以在目录./linux/fs中查看。

有了虚拟文件系统,用户和进程不需要知道文件所在的文件系统类型,而只需要像使用Ext2文件系统一样使用即可。

2.1.4 设备驱动程序

设备驱动程序是Linux系统内核的主要部分,它控制着操作系统和硬件设备间的交互。一般,设备驱动程序与设备的控制芯片有关。

2.1.5 网络接口

网络接口提供了各种网络标准的存取和各种网络硬件的支持。Linux的网络实现支持BSD套接字,支持全部的TCP/IP协议。

2.2 Linux Shell

shell是系统的用户界面,提供了用户与内核进行交互操作的接口,它接收用户输入的命令并将它送到内核去执行。shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其它应用程序具有同样的效果。

目前大部分GNU操作系统上默认的就是bash shell。

2.3 Linux文件系统

文件系统是文件存放在存储设备上的组织方法。Linux系统支持的文件系统非常多,除Ext2、Ext3和Ext4 之外,还能支持FAT、NTFS等Windows文件系统,较常见的文件系统如下表所示。

文件系统详细描述
ExtLinux 中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用
Ext2是 Ext 文件系统的升级版本,Red Hat Linux 7.2 版本以前的系统默认都是 Ext2 文件系统。于 1993 年发布,支持最大 16TB 的分区和最大 2TB 的文件
Ext3是 Ext2 文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时提高文件系统的可靠性。支持最大 16TB 的分区和最大 2TB 的文件
Ext4是 Ext3 文件系统的升级版。Ext4 在性能、伸缩性和可靠性方面进行了大量改进。Ext4 的变化可以说是翻天覆地的,比如向下兼容 Ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块 概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。它是 CentOS 6.3 的默认文件系统
swapswap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB。它是 Linux 的必需分区
NFSNFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源
ISO9660光盘的标准文件系统。Linux 要想使用光盘,必须支持 iso9660 文件系统
FAT就是 Windows 下的 fatl6 文件系统,在 Linux 中识别为 fat
VFAT就是 Windows 下的 fat32 文件系统,在 Linux 中识别为 vfat。支持最大 32GB 的分区和最大 4GB 的文件
NTFS就是 Windows 下的 NTFS 文件系统,不过 Linux 默认是不能识别 NTFS 文件系统的,如果需要识别,则需要重新编译内核才能支持。它比 fat32 文件系统更加安全,速度更快,支持最大2TB 的分区和最大 64GB 的文件
UFSSun 公司的操作系统 Solaris 和 SunOS 所采用的文件系统
procLinux 中基于内存的虚拟文件系统,用来管理内存存储目录 /proc
sysfs和 proc —样,也是基于内存的虚拟文件系统,用来管理内存存储目录 /sysfs
tmpfs也是一种基于内存的虚拟文件系统,不过也可以使用 swap 交换分区

2.3.1 Linux文件类型

Linux系统主要有以下文件类型:

普通文件:分为纯文本文件和二进制文件,如C语言代码、shell脚本、二进制可执行文件等; 目录文件:目录是存储文件的唯一地方; 链接文件:指向同一个文件或目录的文件; 设备文件:与系统外设相关的,一般在目录/dev下面。设备分为块设备和字符设备; 管道文件:提供进程间通信的一种方式; 套接字文件:与网络通信相关的文件; 可以通过命令ls -l、file、stat等命令来查看文件的类型相关信息。

2.3.2 Linux目录

Linux使用标准的目录结构,在安装时就已经为用户创建了文件系统和完整固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。 在系统中,使用/来表示根目录,用.或./表示当前目录,用..或../表示上一层目录。若一个目录或文件名以.开始,则表示这个目录或文件是一个隐藏目录或文件,如.bashrw,在默认方式查找时,不显示该目录或文件。

Linux系统的通过目录结构如下图所示:

006.webp

下表列出了这些目录的作用与存储内容。

目录名称详细描述
/binbin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的程序和指令。
/boot存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devdev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etcetc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录,更改目录下的文件可能会导致系统不能启动。
/home用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/liblib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/sys这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/sbin只有系统管理员才能使用的程序和指令。
/medialinux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/lost+found一般情况下为空的,系统非法关机后,这里就存放一些文件。
/tmp这个目录是用来存放一些临时文件的。
/optopt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/procproc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbins 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv该目录存放一些服务启动之后需要提取的数据
/usrusr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin系统普通用户使用的应用程序。
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src内核源代码默认的放置目录。
/varvar 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

在Linux系统中,有下面几个目录是非常重要的,注意不误删除或随意修改内部文件:

/etc:这个是系统配置文件,修改了目录下的某个文件可能导致系统无法启动; /bin,/sbin,/usr/bin,/usr/sbin:这是系统预设执行文件的放置目录, 不要轻易修改; /var:这是非常重要的一个目录,相当于Windows下的Program files文件夹,系统上运行的很多程序的日志文件也存储于此。

2.4 Linux磁盘分区

Linux分区不同于Windows,硬盘和硬盘分区在Linux系统中都表示为设备。硬盘分区一共有三种:主分区、扩展分区和逻辑分区。主分区与扩展分区的数目之和不能大于四个。

主分区(Primary Partion):可以马上被使用,但不能再分区; 扩展分区(Extension Partion):必须再进行分区后才能使用; 逻辑分区(Logical Partion):由扩展分区建立起来的分区,逻辑分区没有数量上的限制; 扩展分区只不过是逻辑分区的“容器”,实际上只有主分区与逻辑分区进行数据存储。

Linux系统下的硬盘分区标识一般使用/dev/hd[a-z]X(IDE接口的硬盘)或者/dev/sd[a-z]X(SCSI接口的硬盘)格式,其中[a-z]代表硬盘号,X代表硬盘内的分区号。 X的值是1到4时,表示为硬盘的主分区(包含扩展分区),逻辑分区是从5开始的。要注意:即使一块硬盘只有一个主分区,逻辑分区也是从5开始编号的。

总起来说,一个硬盘分区首先要确认在哪个硬盘,然后再确认它在哪个分区。可以使用fdisk -l命令查看硬盘的详细信息。

2.5 硬连接与软连接

Linux中连接有硬连接与软连接之分, 软连接又叫符号连接。它们的特点如下:

硬连接:是指通过索引节点进行连接。文件系统中的文件都会给其分配一个编号,这个编号即索引节点,多个索引节点指向同一文件就是硬连接。硬连接的作用在于允许一个文件有多个路径名,从而建立了硬连接,以防止“误删除”。文件真正删除的条件是与之相关的所有硬连接文件均被删除。 软连接:用ln -s命令建立文件的符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名,类似于Windows下的快捷方式。 硬连接与软连接的区别在于:

硬连接原文件与新文件的inode编号一致,而软连接不一样; 对原文件删除,会导致软连接不可用,而硬连接不受影响; 对原文件的修改,软硬连接文件内容都同样的修改,因为指向的是同一个文件内容的。

2.6 Linux内核参数优化

内核参数是用户与系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时,动态更新内核配置。这些内核参数是通过Linux proc文件系统实现的,因此,可以通过调整proc文件系统达到优化Linux系统性能的目的。

3. Linux常用命令

3.1 基础知识

3.1.1 Linux命令格式

示例:root@app00:~# 
root    //用户名,root为超级用户
@       //分隔符
app00   //主机名称
~       //当前所在目录,默认用户目录为~,会随着目录切换而变化,例如:(root@app00:/bin# ,当前位置在bin目录下)
#       //表示当前用户是超级用户,普通用户为$,例如:("yao@app00:/root$" ,表示使用用户"yao"访问/root文件夹)

3.1.2 Linux命令组成

示例:命令 参数名 参数值

3.2 基础操作

3.2.1 重启系统

立刻关机

shutdown -h now 或者 poweroff

两分钟后关机

shutdown -h 2

3.2.2 关闭系统

立刻重启

shutdown -r now 或者 reboot

两分钟后重启

shutdown -r 2 

3.2.3 帮助命令(help)

ifconfig  --help     //查看 ifconfig 命令的用法

3.2.4 命令说明书(man)

man shutdown         //打开命令说明后,可按"q"键退出

3.2.5 切换用户(su)

su yao               //切换为用户"yao",输入后回车需要输入该用户的密码
exit                 //退出当前用户

3.3 目录操作

3.3.1 切换目录(cd)

cd /                 //切换到根目录
cd /bin              //切换到根目录下的bin目录
cd ../               //切换到上一级目录 或者使用命令:cd ..
cd ~                 //切换到home目录
cd -                 //切换到上次访问的目录
cd xx(文件夹名)       //切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd /xxx/xx/x         //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全

3.3.2 查看目录(ls)

ls                   //查看当前目录下的所有目录和文件
ls -a                //查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l                //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样
ls /bin              //查看指定目录下的所有目录和文件 

3.3.3 创建目录(mkdir)

mkdir tools          //在当前目录下创建一个名为tools的目录
mkdir /bin/tools     //在指定目录下创建一个名为tools的目录

3.3.4 删除目录与文件(rm)

rm 文件名              //删除当前目录下的文件
rm -f 文件名           //删除当前目录的的文件(不询问)
rm -r 文件夹名         //递归删除当前目录下此名的目录
rm -rf 文件夹名        //递归删除当前目录下此名的目录(不询问)
rm -rf *              //将当前目录下的所有目录和文件全部删除
rm -rf /*             //将根目录下的所有文件全部删除【慎用!相当于格式化系统】

3.3.5 修改目录(mv)

mv 当前目录名 新目录名        //修改目录名,同样适用与文件操作
mv /usr/tmp/tool /opt       //将/usr/tmp目录下的tool目录剪切到 /opt目录下面
mv -r /usr/tmp/tool /opt    //递归剪切目录中所有文件和文件夹

3.3.6 拷贝目录(cp)

cp /usr/tmp/tool /opt       //将/usr/tmp目录下的tool目录复制到 /opt目录下面
cp -r /usr/tmp/tool /opt    //递归剪复制目录中所有文件和文件夹

3.3.7 搜索目录(find)

find /bin -name 'a*'        //查找/bin目录下的所有以a开头的文件或者目录

3.3.8 查看当前目录(pwd)

pwd                         //显示当前位置路径

3.4 文件操作

3.4.1 新增文件(touch)

touch  a.txt         //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间

3.4.2 删除文件(rm)

rm 文件名              //删除当前目录下的文件
rm -f 文件名           //删除当前目录的的文件(不询问)

3.4.3 编辑文件(vi、vim)

vi 文件名              //打开需要编辑的文件
--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-刚进入文件就是命令模式,通过方向键控制光标位置,
-使用命令"dd"删除当前整行
-使用命令"/字段"进行查找
-按"i"在光标所在字符前开始插入
-按"a"在光标所在字符后开始插入
-按"o"在光标所在行的下面另起一新行插入
-按""进入底行模式
插入模式
-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
-按"ESC"进入底行模式
底行模式
-退出编辑:      :q
-强制退出:      :q!
-保存并退出:    :wq
## 操作步骤示例 ##
1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车     //保存并退出编辑
2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车     //撤销本次修改并退出编辑
## 补充 ##
vim +10 filename.txt                   //打开文件并跳到第10行
vim -R /etc/passwd                     //以只读模式打开文件

3.4.4 查看文件

cat a.txt          //查看文件最后一屏内容
less a.txt         //PgUp向上翻页,PgDn向下翻页,"q"退出查看
more a.txt         //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
tail -100 a.txt    //查看文件的后100行,"Ctrl+C"退出查看

3.5 文件权限

3.5.1 权限说明

文件权限简介:'r' 代表可读(4),'w' 代表可写(2),'x' 代表执行权限(1),括号内代表"8421法"
##文件权限信息示例:-rwxrw-r--
-第一位:'-'就代表是文件,'d'代表是文件夹
-第一组三位:拥有者的权限
-第二组三位:拥有者所在的组,组员的权限
-第三组三位:代表的是其他用户的权限

3.5.2 文件权限

普通授权    chmod +x a.txt
8421法     chmod 777 a.txt     //1+2+4=7,"7"说明授予所有权限

3.6 打包与解压

3.6.1 说明

.zip、.rar //windows系统中压缩文件的扩展名 .tar //Linux中打包文件的扩展名 .gz //Linux中压缩文件的扩展名 .tar.gz //Linux中打包并压缩文件的扩展名

3.6.2 打包文件

tar -zcvf 打包压缩后的文件名 要打包的文件 参数说明:z:调用gzip压缩命令进行压缩; c:打包文件; v:显示运行过程; f:指定文件名; 示例: tar -zcvf a.tar file1 file2,... //多个文件压缩打包

3.6.3 解压文件

tar -zxvf a.tar                      //解包至当前目录
tar -zxvf a.tar -C /usr------        //指定解压的位置
unzip test.zip             //解压*.zip文件 
unzip -l test.zip          //查看*.zip文件的内容 

3.7 其他常用命令

3.7.1 find

find . -name "*.c"     //将目前目录及其子目录下所有延伸档名是 c 的文件列出来
find . -type f         //将目前目录其其下子目录中所有一般文件列出
find . -ctime -20      //将目前目录及其子目录下所有最近 20 天内更新过的文件列出
find /var/log -type f -mtime +7 -ok rm {} \;     //查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们
find . -type f -perm 644 -exec ls -l {} \;       //查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find / -type f -size 0 -exec ls -l {} \;         //为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

3.7.2 whereis

whereis ls             //将和ls文件相关的文件都查找出来

3.7.3 which

说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
which bash             //查看指令"bash"的绝对路径

3.7.4 sudo

说明:sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。需要输入自己账户密码。
使用权限:在 /etc/sudoers 中有出现的使用者
sudo -l                              //列出目前的权限
$ sudo -u yao vi ~www/index.html    //以 yao 用户身份编辑  home 目录下www目录中的 index.html 文件

3.7.5 grep

grep -i "the" demo_file              //在文件中查找字符串(不区分大小写)
grep -A 3 -i "example" demo_text     //输出成功匹配的行,以及该行之后的三行
grep -r "ramesh" *                   //在一个文件夹中递归查询包含指定字符串的文件

3.7.6 service

说明:service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径
service ssh status      //查看服务状态 
service --status-all    //查看所有服务状态 
service ssh restart     //重启服务 

3.7.7 free

说明:这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况 
free -g            //以G为单位输出内存的使用量,-g为GB,-m为MB,-k为KB,-b为字节 
free -t            //查看所有内存的汇总

3.7.8 top

top               //显示当前系统中占用资源最多的一些进程, shift+m 按照内存大小查看

3.7.9 df

说明:显示文件系统的磁盘使用情况
df -h            //一种易看的显示

3.7.10 mount

mount /dev/sdb1 /u01              //挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上
dev/sdb1 /u01 ext2 defaults 0 2   //添加到fstab中进行自动挂载,这样任何时候系统重启的时候,文件系统都会被加载 

3.7.11 uname

说明:uname可以显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息 
uname -a

3.7.12 yum

说明:安装插件命令
yum install httpd      //使用yum安装apache 
yum update httpd       //更新apache 
yum remove httpd       //卸载/删除apache 

3.7.13 rpm

说明:插件安装命令
rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm      //使用rpm文件安装apache 
rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm      //使用rpm更新apache 
rpm -ev httpd                                 //卸载/删除apache 

3.7.14 date

date -s "01/31/2010 23:59:53"   ///设置系统时间

3.7.15 wget

说明:使用wget从网上下载软件、音乐、视频 
示例:wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
//下载文件并以指定的文件名保存文件
wget -O nagios.tar.gz http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz

3.7.16 ftp

ftp IP/hostname    //访问ftp服务器
mls *.html -       //显示远程主机上文件列表

3.7.17 scp

    scp /opt/data.txt  192.168.1.101:/opt/    //将本地opt目录下的data文件发送到192.168.1.101服务器的opt目录下

3.8 系统管理

3.8.1 防火墙操作

service iptables status      //查看iptables服务的状态
service iptables start       //开启iptables服务
service iptables stop        //停止iptables服务
service iptables restart     //重启iptables服务
chkconfig iptables off       //关闭iptables服务的开机自启动
chkconfig iptables on        //开启iptables服务的开机自启动
##centos7 防火墙操作
systemctl status firewalld.service     //查看防火墙状态
systemctl stop firewalld.service       //关闭运行的防火墙
systemctl disable firewalld.service    //永久禁止防火墙服务

3.8.2 修改主机名(CentOS 7)

hostnamectl set-hostname 主机名

3.8.3 查看网络

ifconfig

3.8.4 修改IP

修改网络配置文件,文件地址:/etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------------------
主要修改以下配置:  
TYPE=Ethernet               //网络类型
BOOTPROTO=static            //静态IP
DEVICE=ens00                //网卡名
IPADDR=192.168.1.100        //设置的IP
NETMASK=255.255.255.0       //子网掩码
GATEWAY=192.168.1.1         //网关
DNS1=192.168.1.1            //DNS
DNS2=8.8.8.8                //备用DNS
ONBOOT=yes                  //系统启动时启动此设置
-------------------------------------------------
修改保存以后使用命令重启网卡:service network restart

3.8.5 配置映射

修改文件: vi /etc/hosts
在文件最后添加映射地址,示例如下:
192.168.1.101  node1
192.168.1.102  node2
192.168.1.103  node3
配置好以后保存退出,输入命令:ping node1 ,可见实际 ping 的是 192.168.1.101。

3.8.6 查看进程

ps -ef         //查看所有正在运行的进程

3.8.7 结束进程

kill pid       //杀死该pid的进程
kill -9 pid    //强制杀死该进程

3.8.8 查看链接

ping IP        //查看与此IP地址的连接情况
netstat -an    //查看当前系统端口
netstat -an | grep 8080     //查看指定端口

3.8.9 快速清屏

ctrl+l        //清屏,往上翻可以查看历史操作

3.8.10 远程主机

ssh IP       //远程主机,需要输入用户名和密码

引用和参考文档:

1.Linux 常用操作命令大全 作者:CSDN/Engineer-Yao 版权声明:CC 4.0 BY-SA 版权协议。

2.百度百科:Linux

3.一文带你全面掌握Linux系统体系结构作者:知乎/可吉拉多

4.11个主流的linux发行版