尚硅谷Linux通关2022

# Linux-v10.0-01天-课堂笔记

学习目标

  • 能够知道什么是Linux系统以及它的应用场景
  • 能够独立完成安装VMware虚拟机和网络配置
  • 能够独立完成安装CentOS以及远程终端SecureCRT
  • 能够熟练编写账户管理、用户组的增删改查和添加命令
  • 能够熟练编写系统管理的常用命令
  • 能够熟练编写目录常用命令
  • 能够熟练编写权限常用命令
  • 能够知道用户组实际应用场景

1 初识Linux

在前面的课程中,我们无论是开发、测试。部署、存储都在Windwos操作系统的环境中,从今天开始我们一起学习下Linux,Linux系统和Windows系统最大的区别就是图形化界面操作和用途上有所差异,除了这两点,两者有异曲同工之妙,在国内, Linux 系统更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows,也就是说Linux与Windows一样,同样也是操作系统只是在使用以及应用上有所差异,其他都是一样的;
因为Linux也是操作系统
所以在正式进入Linux学习之前,我们先简单的学习操作系统的知识,然后在讲解Linux

1.1 操作系统

操作系统(Operation System, OS),是管理计算机硬件软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

操作系统作为接口的示意图:

1576199620565

如上图所示,在操作系统的最上层是用户,中间层是操作系统(里面可能装了很多的应用程序),最下层是硬件的支撑,包含CPU/内存/硬盘等

这就是一个完成的操作系统结构图

主流操作系统按照应用领域的划分

1、桌面操作系统

  • Window 系列
    • 用户群体大
  • macOS
    • 细节处理的更好, 没有windows软件丰富, 价格高
  • Linux
    • 应用软件少

2、服务器操作系统

  • Linux

    • 安全、稳定、免费
    • 占有率高
  • Windows Server

    • 付费
    • 占有率低

    1558234034446

3、嵌入式操作系统

​ Linux

4、移动设备操作系统

1560477460567

  • IOS
  • Android (基于Linux)
  • 华为鸿蒙(基于linux)

1.2 Linux发展历程

引子
在上面,我们学习了操作系统的知识,也知道了主流操作系统按照应用领域划分了四个类型的操作系统,其中Linux操作系统在四个领域都有提名,因为它是至今开源序列最好的操作系统,下面,我们就一起看下Linux的发展历程,看看它是怎么诞生的...

1984年,Andrew S.Tanenbaum 开发了用于教学的Unix系统,命名为Minix,但是仅仅用于教学
1989年,Andrew S.Tanenbaum将Minix系统运行于x86的pc平台
1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触Minix系统
1991年,Linus Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件
1991年年底,Linus Torvalds公开了Linux内核源码0.02版,仅仅是内核
1994年,Linux 1.0版本发行,Linux转向GPL版权协议
至此,Linux开始盛行开来...

1575879660267

Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 Unix操作系统 Minix 太难用了,于是决定自己开发一个操作系统。

第 1 版本于 1991 发布,当时仅有 10 000 行代码。

李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。

据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。

Unix

Unix 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。

Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T的贝尔实验室开发。Unix 的商标权由国际开放标准组织(The Open Group)所拥有。Unix操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。

1.3 Linux简介

引子
Linux和我们常见的Windows一样,都是操作系统,
例如:新浪、百度、淘宝等互联网公司,他们使用的服务器全都是Linux系统;全球500强企业95%的服务器使用的都是Linux系统。

1.3.1 什么是 Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 的标志和吉祥物是一只名字叫做Tux(它克斯)的企鹅,Linux是基于Unix的。

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机

1575881750752

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。

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

1.3.2 Linux的特点

基本思想

Linux的基本思想有两点:

第一:一切都是文件

第二:每个软件都有确定的用途

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

完全免费

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

完全兼容POSIX1.0标准

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

多用户、多任务

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

良好的界面

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

支持多种平台

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

优点

1)Linux由众多微内核组成,其源代码完全开源;

2)Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

3)Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

1.4 Linux和Unix区别

1、开源情况

Unix 是商业化的,而 Linux 是开源的,是免费、公开源代码的。

2、硬件适用

Unix 系统大多是与硬件配套的,也就是说,大多数Unix系统如AIX、HP-UX等是无法安装在 x86 服务器和个人计算机上的,而 Linux则可以运行在多种硬件平台上。

可以先学习Linux后再学习Unix,因为Linux可以方便的在虚拟机上运行,防止新手的误操作。

3、本质不同

Linux是开放源代码的自由软件,用户对前者有很高的自主权,在实际的的开发是处在一个完全开放的环境之中;

而Unix是对源代码实行知识产权保护的传统商业软件,用户的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型;

Unix 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 Unix是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 Unix

1.5 Linux和Windows区别

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。主要区别如下

比较 Windows Linux
界面 界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 Unix传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少。

Windows与Linux在其他方面的不同

开放性

所谓的开放性就是Linux 操作系统是开放源码系统,可以对其程序进行编辑修改。而微软的Windows 系统是受微软版权保护,就是只能微软内部进行开发及修改。

文件格式不同

Windows 操作系统内核是NT,而Linux 是 shell;

另外,windows 硬盘文件格式是fat32或NTFS,而Linux 需要的文件格式是ext2或ext3,该操作系统还多一个SWAP格式的交换分区

免费与收费

在中国,对个人用户Windows 和Linux 都是免费的,对公用户Windows 需要收费,Linux 是免费的。

技术支持

Windows 较普及。Linux 需要深度的Linux 版块支持。

安全性

Linux 相对Windows 来说安全性更高。

开源

开源就是指对外部开放软件源代码。Linux 开源,而Windows并不开源。

使用习惯

Windows 放弃了dos的字符模式,主攻图形界面,让桌面系统更易用。Linux 字符模式运行的更好,图形界面还只是附带品,可有可无。

软件与支持

Windows 下可以运行绝大部分软件、玩99.999%的游戏、硬件厂商近乎100%的支持。Linux 下可直接运行的软件数量和win下比起来就是1和99的区别,而且目前选择Linux 的人基本不会考虑玩游戏,同时Linux 正期待更多硬件厂商的支持

1.6 Linux发行商和常见发行版

Linux发行版是由个人,自由组织,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。
一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件

Linux发行版的某些版本是不需要安装,只需通过CD或者可启动的USB存储设备就能使用的版本,他们称为LiveCD。

1575879998775

Linux的版本号分为两部分:内核版本和发行版本

1.Linux的内核版本
内核版本指的是在Linus Torvalds领导下的开发小组开发出的系统内核的版本号,通常,内核版本号的第二位是偶数表示是稳定的版本,如2.6.25;是奇数表示有一些新的东西加入,是不稳定的测试版本,如2.5.6。Linux操作系统的核心就是它的内核,Linus Torvalds和他的小组在不断地开发和推出新内核。

任务:进程调度、内存管理、配置管理虚拟文件系统、提供网络接口以及支持进程间通信。像所有软件一样,Linux的内核也在不断升级。

2.Linux的发行版本
一个完整的操作系统不仅仅只有内核,还包括一系列为用户提供各种服务的外围程序。外围程序包括GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。所以,许多个人、组织和企业,开发了基于GNU/Linux的Linux发行版,他们将Linux系统的内核与外围应用软件和文档包装起来,并提供一些系统安装界面和系统设置与管理工具, 这样就构成了一个发行版本。
实际上,Linux的发行版本就是Linux内核再加上外围的实用程序组成的一个大软件包而已。相对于操作系统内核版本,发行版本的版本号是随发布者的不同而不同,与Linux系统内核的版本号是相对独立的,例如:RedHat EnterpriseLinux 5.2的操作系统内核是Linux-2.6.18。
Linux的发行版本大体可以分为两类:

一类是商业公司维护的发行版本

一类是社区组织维护的发行版本,前者以著名的RedHatLinux为代表,后者以Debian为代表

以下为Linux的主流版本:

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等

1575882315996

以下是主要的发行版本

需要注意的:
下面的内容主要是介绍了下Linux发行家族以及发行版本的一些详细信息,虽然我们当前的课程讲解的是CentOS,但是其他的一些发行商、主流的发行版本比如Ubuntu、Redhat也需要让学生多多了解下,毕竟这是Linux体系内产品线
注意
下面的文字虽然很多,但是只要让学生知道有这么回事即可
在下面会简单的总结..

1、Debian 介绍

Debian名字的由来----DebianGNU/Linux是由一个叫做伊恩·默多克(IanMurdock)在1993年发起的,他的名字以Ian开头,他太太的名字Debra开头三个字母是Deb。

Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由 Ian Murdock于1993年创建,分为三个版本分支: stable(服务器版), testing(稳定版) 和unstable(测试版)。

2、Ubuntu介绍

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。

共分三个版本:

  • 基于Gnome的Ubuntu,
  • 基于KDE的Kubuntu以。
  • 基于Xfc的 Xubuntu。

特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。稳定性,其实都差不多,难易度嘛,

Ubuntu 默认桌面环境采用 GNOME,一个 Unix和 Linux 主流桌面套件和开发平台。

Ubuntu的版本和发布号
Ubuntu的版本号是由该次发布的年份和月份组成,并未反映其实际版本。我们的首次发布是在2004年10月,因此该版本为4.10。当前版本(DapperDrake)于2006年6月发布,因此版本号为6.06 LTS。

3、Redhat

可能这是最著名的Linux版本了,Red Hat Linux已经创造了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,他们都致力于开放的源代码体系。
Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。
Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于 Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和 Red Hat那里得到充分的技术支持。我发现Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户更有吸引力

4、Fedora

Fedora和Redhat这两个Linux的发行版放联系很密切。Redhat 自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。Fedora项目是由 Red Hat 赞助,由开源社区与 Red Hat 工程师合作开发的项目统称。Fedora 的目标,是推动自由和开源软件更快地进步。

特点:
1、 Fedora 是一个开放的、创新的、前瞻性的操作系统和平台,基于 Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。可运行的体系结构包括x86(即i386),x86_64 和PowerPC!
2、Fedora 可以说是Redhat 桌面版本的延续,只不过是与开源社区合作。

3、Fedora 是一个独立的inux发行版本的操作系统。

5centos

CentOS(Community ENTerprise Operating System)是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用(我会告诉你,以为企业想省钱,运维要靠这个东西来赚钱嘛,国内运维主流是CentOS剩下版本很少)。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境

6、Slackware介绍

Slackware 由PatrickVolkerding(帕特里克.沃克登)创建于1992年。算起来应当是历史最悠久的Linux发行版。尽管如此,Slackware仍然深入人心(大部分都是比较有经验的 Linux老手)。Slackware稳定、安全,所以仍然有大批的忠实用户。由于Slackware尽量采用原版的软件包而不进行任何修改,所以制造新 bug的几率便低了很多。Slackware的版本更新周期较长(大约1年),但是新版本的软件仍然不间断的提供给用户下载。

7、openSUSE介绍

SUSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉。SUSE自主开发的软件包管理系统也大受好评。SUSE于2003年年末被Novell收购。SUSE在收购之后的发布显得比较混乱,比如9.0版本是收费的,而10.0版本(也许由于各种压力)又免费发布。这使得一部分用户感到困惑,也转而使用其它发行版本。最近还跟微软扯到了一起。但是瑕不掩瑜,SUSE仍然是一个非常专业、优秀的发行版。

openSUSE 项目是由Novell公司资助的全球性社区计划,旨在推进 Linux 的广泛使用。这个计划提供免费的openSUSE 操作系统。这里是一个由普通用户和开发者共同构成的社区,我们拥有一个共同的目标—创造世界上最好用的 Linux 发行版。openSUSE 是 Novell 公司发行的企业级 Linux 产品的系统基础。

openSUSE 项目是由Novell 发起的开源社区计划。 旨在推进 Linux 的广泛使用。提供了自由简单的方法来获得世界上最好用的 Linux 发行版,SUSE Linux。openSUSE 项目为 Linux 开发者和爱好者提供了开始使用 Linux 所需要的一切。

8、中国大陆的Linux发行版

红旗Linux(RedflagLinux) ,冲浪Linux(Xteam Linux) ,蓝点Linux , GNU/Linux,OpenDesktop等等 。

9、 台湾地区的Linux发行版

鸿奇Linux

目前最著名的发行版本:Debian,ubuntu、OpenSuse(原Suse)、CentOS、fedora等。国内比较著名的红旗Linux版本

对于上面的知识我们做下重点总结

  • redhat:目前,全球最大的linux发行厂商,功能全面、稳定。
    • RedhatIBM 收购!
  • ubuntu:目前,是linux桌面操作系统做的最好的。
  • centos:免费版的redhat,centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
    • 目前 centos 已经被 Redhat 公司收购,但是依然免费

1.7 Linux 应用领域

今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位。在企业级开发中,我们通常使用Linux作为我们的服务器。

比如:服务器系统Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;

嵌入式系统路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,高性能运算、计算密集型应用Linux有强大的运算能力。

目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎

  • 巴西联邦政府由于支持 Linux 而世界闻名。
  • 有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。
  • 印度的 Kerala 联邦计划在向全联邦的高中推广使用 Linux。
  • 中华人民共和国为取得技术独立,在龙芯处理器中排他性地使用 Linux。
  • 在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。
  • 葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。
  • 法国和德国同样开始逐步采用 Linux。

1.8 Linux之CentOS

前面章节介绍了一些Linux的基本知识,前已经对Linux有了一个初步的认识,也知道了在Linux发行版中有各个家族的发行版本;比如比较知名的ubuntu、CentOS,在今天的Linux课程中我们将采用发行版CentOS作为我们Linux课程的讲解内容。

CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本;是一个稳定,可预测,可管理和可复制的免费企业级计算平台

主要特点:

1.主流: 目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是RedHat或者CentOS
2.免费: RedHat 和CentOS差别不大,CentOS是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本
3.更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RED HAT那样需要花钱购买支持服务!

我们在当前课程中的环境:

Windows7 , VMware Workstation15.02, CentOS Linux release 7.6.1810

安装:

1、开启虚拟化支持

有的不用此设置,可以跳过

引子
开启虚拟化选项能够使我们在电脑中安装虚拟机,比如VirtualBox,它能够让我们在一台电脑中虚拟化出另一个工作环境,如果不开启虚拟机支持,我们在启动虚拟机的时候会报错,所以,我们在正式启动虚拟机之前开启虚拟化技术

不开启虚拟化的报错信息如下:

我们在创建虚拟机的时候如果不开启虚拟化,会报下面的一个错误,此时,我们就要根据下面的步骤去开启硬件的
虚拟化支持

注意:
目前大部分硬件版本都支持虚拟化的开启,只有很少的Blos硬件不支持
如果遇到不支持的VMware是无法使用的。

1670663385778

开启虚拟化的步骤:

1、开机(或重启)时进入Blos

注意:不同计算机使用的快捷键不同例如F2、F12、DEL、ESC等键就可以进入到BIOS

进入到BIOS后,找到Configuration选项或者Security选项,然后选择Virtualization,或者Intel Virtual
Technology,就可以开始设置了

这里以ThinkPad为例

1670663415898

2、然后选择Virtualization,或者Intel Virtual Technology然后回车,将其值设置为Enabled。

1670663435191

3、在保存BIOS设置之后,重启计算机。

此时,虚拟化支持就全部设置完毕了,我们在创建虚拟机的时候就不在报上面的错了.

2、VMware下载与安装

  1. 下载
    1.进入VMware https://www.vmware.com/cn.html,点击左侧导航栏中的产品下载,再点击图中标记的
    Workstation Pro,如下图所示

1670663172543

下载完成后安装即可

注意:
虚拟软件安装完成后会在 \控制面板\网络和Internet\网络连接 下多出来两个虚拟网卡VMware Network Adapter
VMnet1和VMware Network Adapter VMnet8

VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡

1670663238415

在我们的虚拟机中有三种模式,分别对应仅主机、桥接、nat模式
分别对应0、1、8如下
VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机
VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机
VMnet8:这是VMware用于虚拟NAT网络下的虚拟交换机

而上面的VMware Network Adapter VMnet1和VMware Network Adapter VMnet8就是对应我们的VMnet1和
VMnet8,分别是nat模式和仅主机模式 我们在当前环境中将使用默认的桥接模式
NAT模式可以提供访问外网的能力

3、下载CentOS镜像

引子:
镜像可以看成是类似ZIP的压缩文件,与rar ZIP压缩包类似,镜像文件是无法直接使用的,需要利用一些虚拟光驱工具进行解压后才能使用

我们这里就是CentOS系统的镜像文件

1670663510814

1670663526289

点击上面的其他镜像,可以查询其他国家的CentOS镜像列表

CentO国内镜像源

我们在下载的时候建议使用国内镜像源,速度快也稳定 http://mirrors.aliyun.com http://mirrors.sohu.com htt
p://mirrors.163.com https://mirrors.tuna.tsinghua.edu.cn/centos
http://mirrors.cqu.edu.cn/CentOS/

1670663615111

4、创建虚拟机

引子:
此时,我们的VMware已经安装完毕了,并且CentOS镜像也成功下载完毕了(如果没有下载,在我们的附件资料【软件】文件夹中有VMware和CentOS的打包文件),这个时候,我们就可以创建一个新从虚拟机了,创建虚拟机需要用到CentOS系统镜像,下面,我们一起进入到详细的安装过程...

1670663791145

在上面的安装想到页面中依次选择:”典型(推荐)(T)“

一》选择稍后安装操作系统

一》选择操作系统类型:1、客户机操作系统:选择Linux 2、 版本:选择CentOS7 64位

一》 1、虚拟机名称可以自定义(注意:不要出现特殊字符即可)2、虚拟机运行文件路径选择本地磁盘路径(注意:磁盘空间尽量要大写,因为一个虚拟机的运行文件大约要在4G以上

一》设置磁盘容量,根据自己的需要设置:此次我们使用如下:

1670664055042

一》 选择自定义硬件,主要设置CentOS的镜像
点击【自定义硬件】

一》新建虚拟机镜像
选择硬件【cd/dvd】,在【使用ISO镜像文件】中选择我们在sohu镜像源下载的镜像
CentOS-7-x86_64-DVD-1810.iso文件

1670664104743

设置完成后点击【关闭】

一》 此时会回到【新建虚拟机向导】页面,点击完成即可配置完毕

5、启动虚拟机

CentOS设置

1、点击箭头方向即可启动我们的VMware

1670664350929

2、设置语言
在第一步设置完成后,我们一直等待,即可来到语言设置界面
此处我们设置【中文】

3、设置安装信息
将下面带有【感叹号图标】的内容进行设置,比如时间和键盘,可根据自己的需要进行初始化设置,此处我们设置
下CentOS的桌面,继续往下看..

1670664421956

在软件选择安装我们的桌面,此处选择GNOME桌面

1670664436962

4、点击右下角的”开始安装“

5、配置用户信息
此处设置root账号密码,我们设置为root,暂时不创建新的用户(进入到欢迎页面的时候会提示我们创建用户)

点击"ROOT密码"设置密码为:root

设置完毕后不在有【感叹号图标】警告提示了

然后点击右下角”重启“

6、接受许可
在重启过程中,会有【未接受许可证】的警告提示,点击提示信息

设置(打勾)同意许可

7、开机进入欢迎页面
此处设置为语言为【汉语】

8、选择键盘输入
键盘输入类型此处我们选择”英语(美国)“

9、关闭隐私服务

10、设置国家和地区,我们设置中国上海

11、绑定账号
此处我们选择跳过【skip】

12、创建用户
我们新建用户itcast
全名:itcast
用户名:itcast

为用户itcast设置密码Itheima888
此处注意密码设置规范:大小写+数字

13、设置完毕,进入CentOS桌面

14、重启,输入用户名、密码就可以登录了

SecureCRT访问

注册过程略、其他设置(如字符集、颜色等)略

1670664735337

1.9 总结

当前章节主要介绍了Linux发行的主要版本(我们使用的是CentOS Linux release 7.6.1810 )、以及与Unix、Windows系统的区别;主要让学生了解Linux是基于Unix的以及与Windows一样,Linux也是操作系统即可。

B站韩顺平老师Linux2021课程笔记

1、安装vm和centos7

vm安装(略)

官方下载地址: VMware Workstation Player | VMware | CN

适配12代酷睿cpu问题: (125条消息) VMware16安装虚拟机遇到的问题_幽反丶叛冥的博客-CSDN博客_安装vmware16.0出现的问题

VMware17安装

参考文章:[VMware Workstation PRO 17.0虚拟机安装教程附激活密钥 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/586971116#:~:text=安装步骤 双击下载好的VMware Workstation PRO 17.0软件,启动软件安装程序。,如果遇到"重新启动系统以完成 Microsoft VC redistribute 的安装"的提示,点击"是",重新系统即可。 2.)

1、更改安装位置,添加的PATH根据需要选择

1672634880215

为提高速度,不勾选如下两项

1672634948167

1673771549494

1672635235581

centos7安装

下载地址1: http://mirrors.163.com/

下载地址2:Index of /centos-store/7.6.1810/isos/x86_64/ (liu.se) 选4.2G那个

其他安装步骤跟上边”安装“里的第5步(5、启动虚拟机) 差不多,下面其他步骤如下:

因为不是生产环境,我们不用选择最小安装,我们按如下图示选择即可

1670658940304

配置分区

1670664984365

(不选这个选项,使用自动分区也可以)

1670665509079

1670665657597

1670665733741

1670665826373

1670665867306

文件系统中的ext4是centos6默认的,到了centos7则默认使用xfs格式的

Linux/CentOS格式化xfs格式磁盘分区

CentOS7#、#Linux格式化磁盘分区#、#xfs分区#、#xfs格式化#、#ext4简介#、#xfs简介#、#ext4和xfs区别#

之前写了常见的ext4格式的磁盘分区、格式化、挂载,今天讲一下xfs格式的分区格式化。

1.ext4与xfs的一些区别
(1)ext4简介
ext4是第四代拓展文件系统(Fourth Extended Filesystem,缩写为ext4)是是2008年推出的Linux系统下的日志文件系统,是ext3的后继版本。ext4的文件系统最大容量达到1EB,单个文件容量达到了16TB。ext3目前只支持32000个子目录,而ext4取消了这一限制,理论上支持无限数量的子目录。
(2)xfs简介
xfs是一种高性能的日志文件系统,在2002年被移植到Linux内核上,xfs特别擅长处理大文件,同时提供大型的数据传输。xfs对文件系统元数据提供了日志支持,当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志。XFS的日志被保存在磁盘块的循环缓冲区上,不会被正常的文件系统操作影响。
xfs是一个64位文件系统,最大支持8EB单个文件系统,实际部署时取决于宿主操作系统的最大块限制。如,32位Linux系统,文件和文件系统的大小会被限制在16TB。
(3)ext4和xfs区别
CentOS7默认文件系统是xfs,CentOS6是ext4,CentOS5是ext3。
ext4的文件系统最大容量达到1EB,单个文件容量达到了16TB。xfs是一个64位文件系统,最大支持8EB单个文件系统。
ext4受限制于磁盘结构和兼容问题,可扩展性确实不如xfs。
————————————————
版权声明:本文为CSDN博主「IT小胖豆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43502523/article/details/122935607

swap分区

类似于windows系统的虚拟机内存,一般设置为内存的1-2倍,格式只能选择swap格式

1670665914777

根分区

1670665952997

然后点击左上角的”完成“按钮,则会弹出提示框如下:选择接受更改即可

KDUMP

1670666246358

但是此处我们是讲课,就不开启了

网络和主机名

以后shell命令行终端里每一行都会显示


1670666483860

主机名不能有空格下划线等特殊符号

1670671619232

然后再点击左上角”完成“

SECURITY POLICY

此处我们就不设置安全策略了

现在点击右下角”开始安装“然后耐心等待进度条完成,此时我们也先设置一下root账户密码,然后再点击创建用户,创建一个其他用户:tom(举例)

进入界面后测试即可:

2、网络连接的三种模式

1)、桥接模式

假如在局域网下,有如下三个人的电脑,选择桥接模式三人的电脑里可以互相通讯(前提是设置成同一个网段192.168.0.xxx),但是有缺点: 虚拟系统可以和外部系统通讯,但是容易造成IP冲突

1670669194959

2)、NAT模式

内部虚拟机借助主机IP192.168.0.50可以访问外网,但是外网不能访问192.168.100.88虚拟机

如下图示:

1670672763805

3)、主机模式)

就像是一个独立的主机,随便都行

3、共享文件夹

参考文章:

(129条消息) 设置VirtualBox共享文件夹的方法_爱自然的李老师的博客-CSDN博客_virtualbox 共享文件夹

如果在tom用户中设置共享文件夹失败,则可以切换到root用户再进行设置:

 mount -t vboxsf VMshare myshare_dir

B站尚硅谷Linux2022课程笔记

第 1 章 Linux 介绍

1672640027421

第 2 章 VM 与 Linux 的安装

最新centod7.9安装下载:

下载地址:Index of /centos/7.9.2009/isos/x86_64/ (163.com)

1672635765284

下面的那个是选的最新

安装Linux--创建虚拟机

1、创建虚拟机初步设置

创建虚拟机就相当于我们自己攒一台电脑(diy一台电脑)

1672635883239

1672635898088

1672635988208

1672636028404

2、虚拟机命名和位置

myps:命名虚拟机为CentOS792207,表示使用的是centos7.9的2207的iso版本镜像

1672636419109

3、设置cpu和内存

1672636620885

1672636640430

4、设置网络

1672636664262

5、I/O控制器

使用默认即可

1672636716259

6、选磁盘类型

1672636743932

1672636759017

1672636815110

下面将创建一个磁盘文件(名称默认使用我们的主机名)

1672637490847

1672637510397

点击完成,至此我们自己攒的电脑硬件已经完成,接下来就是来安装操作系统了

安装Linux--安装系统

参考上边: B站韩顺平老师Linux2021课程笔记

boot分区

1672651057238

swap分区

1672651128087

剩下的分到根分区

1672651261217

1672651284057

KDUMP点进去,目前是学习状态,为节省资源取消勾选,生产环境可以开启

1672651384873

1672651680509

第 3 章 Linux 文件与目录结构

参考:B站韩顺平老师Linux2021课程笔记

  1. linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“I”,然后在此目录下再创建其他的目录。

  2. 深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。

3)记住一句经典的话:在 Linux世界里,一切皆文件(!!)

4)示意图

1672640339092

4.2具体的目录结构(不用背,知道即可)

  1. /bin(常用)(/usr/bin 、 /usr/local/bin)
    是Binary的缩写,这个目录存放着最经常使用的命令

2)/sbin(/usr/sbin ./usr/local/sbin)
s就是Super User 的意思,这里存放的是系统管理员使用的系统管理程序。

  1. /home[常用]
    存放普通用户的主目录,在Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名

  2. /root[常用]
    该目录为系统管理员,也称作超级权限者的用户主目录

  3. /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库

6)/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

  1. /etc[常用]
    所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库my.conf

  2. /usr[常用]
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows 下的 program files 目录。

9)/boot [常用]存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

  1. /proc[不能动]这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息11)/srv[不能动]service缩写,该目录存放一些服务启动之后需要提取的数据,
    也可以说是系统进程的目录映射

  2. /sys[不能动]这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs=》【别动】

  3. /tmp 这个目录是用来存放一些临时文件的

  4. /dev
    类似于windows的设备管理器,把所有的硬件用文件的形式存储

  5. /media[常用] linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下

  6. /mnt[常用]
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。如:d:/myshare

17)/opt这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空

  1. /usr/local[常用]
    这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序

  2. /var[常用]
    这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件

20)/selinux [security-enhanced linux]
SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.

我们可以随便动的:tep、opt、etc(谨慎)等

第 4 章 VI/VIM 编辑器(重要)

4.1 是什么

VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。
VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。

4.2 测试数据准备

1)拷贝/etc/profile 数据到/root 目录下

[root@hadoop100 桌面]# cp /etc/profile /root
[root@hadoop100 桌面]# cd /root/

4.3 一般模式

以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。

中英文输入法切换

中英文输入法切换:win键+空格 (前提是先在桌面的设置里面添加zh-pinyin输入法)

1672641868983

1672641585651

vi/vim键盘图(清晰打印版,桌面背景好图)_www_helloworld_com的博客-CSDN博客_vi/vim键盘图

1672642030601

4.4 编辑模式

在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。

​ 注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

1)进入编辑模式

表4-2 常用语法

按键 功能
i 当前光标前
a 当前光标后
o 当前光标行的下一行
I 光标所在行最前
A 光标所在行最后
O 当前光标行的上一行

2)退出编辑模式

按『Esc』键 退出编辑模式,之后所在的模式为一般模式

4.5 指令模式

​ 在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
​ 在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

1)基本语法

表4-3

命令 功能
:w 保存
:q 退出
:! 强制执行
/要查找的词 然后可按n 查找下一个,N 往上查找
:noh 取消高亮显示
:set nu 显示行号
:set nonu 关闭行号
:%s/old/new/g 替换内容 /g 替换匹配到的所有内容

2)案例实操

(1)强制保存退出

:wq!

4.6 模式之间转换

第 5 章 网络配置(重点)

5.1 查看网络 IP 和 网关

1)查看虚拟网络编辑器,如图 5-1 所

1672658074417

桥接模式:

1672657982631

此时我们的自己电脑里的虚拟机是和宿主机平级的、相等的,其他同局域网下的人可以和此虚拟机通讯,这样安全性、私密性不太好,另外占用ip,可能会导致局域网内的ip不够用(ip只有1-254可以用,也就是说此局域网下只有254个ip,如果每个人都搭虚拟机集群就会占用ip太多),下面说下NAT模式

1672661369628

此模式下没有虚拟网卡,配置最简单(仅将ip和宿主机配置在同一个网段下就行,子网掩码和默认网关都一样),

虚拟机和宿主机是完全平等的,都能被外网访问,也都能访问外网和互相访问

NAT模式

1672660919395

这样这虚拟网卡vmNet8就是和其他虚拟机是在同一个局域网下,这样就能相互通讯了(网关是第二个虚拟出的路由器地址)

仅主机模式

1672661162399

此模式下也虚拟出了一个vmNet1网卡

原理详解

具体查看p020_基础篇-网络配置二 第23分钟-25分钟,讲解清晰

020_基础篇_网络配置(二)_网络连接模式_哔哩哔哩_bilibili

2)修改虚拟网卡 Ip,如图 5-2 所示

【此节为重点】

因为现在虚拟机默认都是DHCP动态分配的ip,我们后面连接这些虚拟机的时候每次还得查看分配的具体是什么ip,特别麻烦,还有其他问题等,所以我们需要将其都改为静态ip(写死ip),这样我们使用远程连接工具的时候就不用每次去看去找ip了

因为绝大部分情况都是我们使用工具连接虚拟机,所以我们不需要改主机ip(虚拟路由器ip),只需要改虚拟机的ip为静态ip即可(当然如果想改,我们也可以改)

下面我们就讲下怎样在Linux虚拟机中指定静态ip

先看下我们目前的设置

1672663132067

网关和DHCP配置

1672663213382

可以看到目前是自动分配的ip

我们需要在Linux中设置,如果Linux有图形界面则可以使用如下方式设置:

1672663363197

5.2 配置网络 ip 地址

5.2.1 ifconfig 配置网络接口

ifconfig :network interfaces configuring 网络接口配置
1)基本语法
ifconfig (功能描述:显示所有网络接口的配置信息)
2)案例实操
(1)查看当前网络 ip
[root@hadoop100 桌面]# ifconfig

5.2.2 ping 测试主机之间网络连通性

1)基本语法
ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机)

2)案例实操
(1)测试当前服务器是否可以连接百度
[root@hadoop100 桌面]# ping www.baidu.com

5.2.3 修改 IP 地址

1) 查看 IP 配置文件,如图 5-5 所示

[root@hadoop100 桌面]#vim /etc/sysconfig/network-scripts/ifcfg-ens33

1672665021445

如果是没有图形界面,则必须在终端命令控制台使用命令来配置了:

vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 编辑

进入编辑模式后,更改为如下

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"	# 将dhcp修改为static
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="dfa59e32-5226-45bf-82aa-8ebee7602fdb"
DEVICE="ens33"
ONBOOT="yes"
# 加上下面3行配置(子网掩码默认就是255.255.255.0,所以可以不加,当然加上也行)
#IP 地址
IPADDR=192.168.88.100
#网关
GATEWAY=192.168.88.2
#域名解析器
DNS1=192.168.88.2

加上上面3行配置(子网掩码默认就是255.255.255.0,所以可以不加,当然加上也行)

编辑完后,按键盘 esc ,然后输入 :wq 回车即可。

然后重启网络服务

service network restart

1672664699494

5.2.4 修改 IP 地址后可能会遇到的问题

(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行

(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有问题

(3)虚拟机 Ping www.baidu.com 显示域名未知等信息,一般查看 GATEWAY 和 DNS 设置是否正确

(4)如果以上全部设置完还是不行,需要关闭 NetworkManager 服务

  • systemctl stop NetworkManager 关闭
  • systemctl disable NetworkManager 禁用

(5)如果检查发现 systemctl status network 有问题 需要检查 ifcfg-ens33

5.3 配置主机名

5.3.1 修改主机名称

1) 基本语法

hostname (功能描述:查看当前服务器的主机名称)

2) 案例实操

(1)查看当前服务器主机名称

[root@hadoop100 桌面]# hostname 

(2)如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/hostname 文件

[root@hadoop100 桌面]# vi /etc/hostname

修改完成后重启虚拟机生效。

当然如果不想重启也可以使用如下方式

1672665432735

如果我们再次打开一个命令行终端则可以看到主机名已经修改成spark10

5.3.2 修改 hosts 映射文件

1)修改 linux 的主机映射文件(hosts 文件)

后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置,
比较简单方便。 不用刻意记 ip 地址。
(1)打开/etc/hosts

[root@hadoop100 桌面]# vim /etc/hosts

添加如下内容

192.168.88.100 hadoop100
192.168.88.101 hadoop101
192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104
192.168.88.105 hadoop105

(2)重启设备,重启后,查看主机名,已经修改成功

2)修改 windows 的宿主机映射文件(hosts 文件)

(1)进入 C:\Windows\System32\drivers\etc 路径
(2)打开 hosts 文件并添加如下内容

192.168.88.100 hadoop100
192.168.88.101 hadoop101
192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104
192.168.88.105 hadoop105

ping主机名测试

ping hadoop100
防止域名劫持

​ 我们一定要经常检查host文件,防止黑客将host文件中的IP改成钓鱼网站的ip

其他安全方式百度即可

5.4 远程登录

​ 通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不可缺的,目前,比较主流的有 Xshell, SSH Secure Shell, SecureCRT,FinalShell 等,同学们可以根据自己的习惯自行选择

ssh方式(windows命令行工具自带)

1672667073078

xshell工具远程连接

1672667508678

1672667613575

1672667617445

防止显示中文乱码

1672668440399

第 6 章 系统管理

6.1 Linux 中的进程和服务

计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。PID

启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。

6.2 service 服务管理(CentOS 6 版本-了解)

1) 基本语法(CentOS 6 版本的方式,现在已经不再使用)
service 服务名 start | stop |· restart | status

2) 经验技巧
查看服务的方法:/etc/init.d/服务名 ,发现只有两个服务保留在 service

1672669430808

[root@hadoop100 init.d]# pwd
/etc/init.d
[root@hadoop100 init.d]# ls -al
drwxr-xr-x. 2 root root 4096 3 月 19 15:24 .
drwxr-xr-x. 10 root root 4096 3 月 19 15:24 ..
-rw-r--r--. 1 root root 18104 1 月 3 2018 functions
-rwxr-xr-x. 1 root root 4334 1 月 3 2018 netconsole
-rwxr-xr-x. 1 root root 7293 1 月 3 2018 network
-rw-r--r--. 1 root root 1160 4 

3) 案例实操
(1)查看网络服务的状态
[root@hadoop100 桌面]#service network status

(2)停止网络服务
[root@hadoop100 桌面]#service network stop

(3)启动网络服务
[root@hadoop100 桌面]#service network start

(4)重启网络服务
[root@hadoop100 桌面]#service network restart

6.3 chkconfig 设置后台服务的自启配置(CentOS 6 版本)

1) 基本语法
chkconfig (功能描述:查看所有服务器自启配置)
chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list (功能描述:查看服务开机启动状态)

2) 案例实操
(1)开启/关闭 network(网络)服务的自动启动

[root@hadoop100 桌面]#chkconfig network on
[root@hadoop100 桌面]#chkconfig network off

(2)开启/关闭 network 服务指定级别的自动启动
[root@hadoop100 桌面]#chkconfig --level 指定级别 network on
[root@hadoop100 桌面]#chkconfig --level 指定级别 network off

6.4 systemctl (CentOS 7 版本-重点掌握)

1) 基本语法
systemctl start | stop | restart | status 服务名

2) 经验技巧
查看服务的方法:/usr/lib/systemd/system

[root@hadoop100 system]# pwd
/usr/lib/systemd/system
[root@hadoop100 init.d]# ls -al
-rw-r--r--. 1 root root 275 4 月 27 2018
-rw-r--r--. 1 root root 380 4 月 27 2018 abrtd.service
-rw-r--r--. 1 root root 361 4 月 27 2018 abrt-oops.service
-rw-r--r--. 1 root root 266 4 月 27 2018 abrt-pstoreoops.service
-rw-r--r--. 1 root root 262 4 月 27 2018 abrt-vmcore.service
-rw-r--r--. 1 root root 311 4 月 27 2018 abrt-xorg.service
-rw-r--r--. 1 root root 751 4 月 11 2018 accounts-daemon.service
-rw-r--r--. 1 root root 527 3 月 25 2017 alsa-restore.service
-rw-r--r--. 1 root root 486 3 月 25 2017 alsa-state.service
……

3)案例实操

(1)查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld

(2)停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld

(3)启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld

(4)重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalld

6.5 systemctl 设置后台服务的自启配置

1)基本语法
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)

2)案例实操
(1)开启/关闭 iptables(防火墙)服务的自动启动
[root@hadoop100 桌面]# systemctl enable firewalld.service
[root@hadoop100 桌面]# systemctl disable firewalld.service

6.6 系统运行级别

1)Linux 运行级别[CentOS 6],如图 7-1 所示

1672670710059

2)CentOS7 的运行级别简化为:

multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)

3) 查看当前运行级别:

systemctl get-default

4)修改当前运行级别

systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical)

也可以按快捷键CTRL + ALT + F2切换到命令行形式(即运行级别 3),再按CTRL + ALT + F2可以切换回GUI图形界面(即运行级别5)

6.7 关闭防火墙

1) 临时关闭防火墙

(1)查看防火墙状态
[root@hadoop100 桌面]# systemctl status firewalld

(2)临时关闭防火墙
[root@hadoop100 桌面]# systemctl stop firewalld

2)开机启动时关闭防火墙

(1)查看防火墙开机启动状态
[root@hadoop100 桌面]# systemctl enable firewalld.service (

2)设置开机时关闭防火墙
[root@hadoop100 桌面]# systemctl disable firewalld.service

6.8 关机重启命令

在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

1)基本语法
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:停机,关闭系统,但不断电)
(3)poweroff (功能描述:关机,断电)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] 时间
1672671087292

2) 经验技巧

​ Linux 系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux 核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用 sync 指令可以立即将缓冲区的数据写入磁盘。

3)案例实操

(1)将数据由内存同步到硬盘中
[root@hadoop100 桌面]#sync

(2)重启
[root@hadoop100 桌面]# reboot

(3)停机(不断电)
[root@hadoop100 桌面]#halt

(4)计算机将在 1 分钟后关机,并且会显示在登录用户的当前屏幕中
[root@hadoop100 桌面]#shutdown -h 1 ‘This server will shutdown after 1 mins’

(5)立马关机(等同于 poweroff)
[root@hadoop100 桌面]# shutdown -h now

(6)系统立马重启(等同于 reboot)
[root@hadoop100 桌面]# shutdown -r now

第 7 章 常用基本命令(重要)

​ Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由 shell 进行解释并最终交给内核执行。 本章就将分类介绍常用的基本 shell 命令。

7.1 帮助命令

7.1.1 man 获得帮助信息

1)基本语法

man [命令或配置文件] (功能描述:获得帮助信息)

2)显示文本说明

使用man。。命令之后显示的信息说明

信息 功能
NAME 命令的名称和单行描述
SYNOPSIS 怎样使用命令
DESCRIPTION 命令功能的深入讨论
EXAMPLES 怎样使用命令的例子
SEE ALSO 相关主题(通常是手册页)

3)案例实操

(1)查看 ls 命令的帮助信息
[root@hadoop101 ~]# man ls

7.1.2 help 获得 shell 内置命令的帮助信息

​ 一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”。

1)基本语法
help 命令(功能描述:获得 shell 内置命令的帮助信息)

2)案例实操
(1)查看 cd 命令的帮助信息
[root@hadoop101 ~]# help cd

7.1.3 常用快捷键

常用快捷键 功能
ctrl + c 停止进程
ctrl+l 清屏,等同于 clear;彻底清屏是:reset
善于用 tab 键 提示(更重要的是可以防止敲错)
上下键 查找执行过的命

7.2 文件目录类

7.2.1 pwd 显示当前工作目录的绝对路径

pwd:print working directory 打印工作目录

1)基本语法
pwd (功能描述:显示当前工作目录的绝对路径)

2)案例实操
(1)显示当前工作目录的绝对路径

[root@hadoop101 ~]# pwd
/root

7.2.2 ls 列出目录的内容

ls:list 列出目录内容

1)基本语法

ls [选项] [目录或是文件]

2)选项说明

​ 选项说明

选项 功能
-a 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”

3)显示说明

​ 每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字

4)案例实操
(1)查看当前目录的所有内容信息

[atguigu@hadoop101 ~]$ ls -al
总用量 44
drwx------. 5 atguigu atguigu 4096 5 月 27 15:15 .
drwxr-xr-x. 3 root root 4096 5 月 27 14:03 ..
drwxrwxrwx. 2 root root 4096 5 月 27 14:14 hello
-rwxrw-r--. 1 atguigu atguigu 34 5 月 27 14:20 test.txt

ll相当于ls -al

7.2.3 cd 切换目录

​ cd:Change Directory 切换路径

1)基本语法

​ cd [参数]

2)参数说明

参数 功能
cd 绝对路径 切换路径
cd 相对路径 切换路径
cd ~或者 cd 回到自己的家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非快捷方式路径

3)案例实操

(1)使用绝对路径切换到 root 目录

​ [root@hadoop101 ~]# cd /root/

(2)使用相对路径切换到“公共的”目录

​ [root@hadoop101 ~]# cd 公共的/

(3)表示回到自己的家目录,亦即是 /root 这个目录

​ [root@hadoop101 公共的]# cd ~

(4)cd- 回到上一次所在目录

​ [root@hadoop101 ~]# cd -

(5)表示回到当前目录的上一级目录,亦即是 “/root/公共的”的上一级目录的意思;

​ [root@hadoop101 公共的]# cd ..

7.2.4 mkdir 创建一个新的目录

​ mkdir:Make directory 建立目录

1)基本语法

​ mkdir [选项] 要创建的目录

2)选项说明

选项 功能
-p 创建多层目录

3)案例实操

(1)创建一个目录

​ [root@hadoop101 ~]# mkdir xiyou
​ [root@hadoop101 ~]# mkdir xiyou/mingjie

(2)创建一个多级目录
[root@hadoop101 ~]# mkdir -p xiyou/dssz/meihouwang

7.2.5 rmdir 删除一个空的目录

​ rmdir:Remove directory 移除目录

1)基本语法

rmdir 要删除的空目录

2)案例实操

(1)删除一个空的文件夹

​ [root@hadoop101 ~]# rmdir xiyou/dssz/meihouwang

7.2.6 touch 创建空文件

1)基本语法

​ touch 文件名称

2)案例实操

​ [root@hadoop101 ~]# touch xiyou/dssz/sunwukong.txt

7.2.7 cp 复制文件或目录

1)基本语法

​ cp [选项] source dest (功能描述:复制source文件到dest)

2)选项说明

选项 功能
-r 递归复制整个文件夹

3)参数说明

参数 功能
source 源文件
dest 目标文件

4)经验技巧

​ 强制覆盖不提示的方法:\cp

5)案例实操

(1)复制文件

​ [root@hadoop101 ~]# cp xiyou/dssz/suwukong.txt xiyou/mingjie/

(2)递归复制整个文件夹

​ [root@hadoop101 ~]# cp -r xiyou/dssz/ ./

7.2.8 rm 删除文件或目录

1)基本语法

​ rm [选项] deleteFile (功能描述:递归删除目录中所有内容)

2)选项说明

选项 功能
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不提示用于进行确认。
-v 显示指令的详细执行过程

3)案例实操

(1)删除目录中的内容

​ [root@hadoop101 ~]# rm xiyou/mingjie/sunwukong.txt

(2)递归删除目录中所有内容

​ [root@hadoop101 ~]# rm -rf dssz/

7.2.9 mv 移动文件与目录或重命名

1)基本语法

(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件)

2)案例实操

(1)重命名
[root@hadoop101 ~]# mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt

(2)移动文件
[root@hadoop101 ~]# mv xiyou/dssz/houge.txt ./

7.2.10 cat 查看文件内容

​ 查看文件内容,从第一行开始显示。

1)基本语法

​ cat [选项] 要查看的文件

2)选项说明

选项 功能描述
-n 显示所有行的行号,包括空行。

3)经验技巧

一般查看比较小的文件,一屏幕能显示全的。

4)案例实操

(1)查看文件内容并显示行号

​ [atguigu@hadoop101 ~]$ cat -n houge.txt

7.2.11 more 文件内容分屏查看器

​ more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明。

1)基本语法

​ more 要查看的文件

2)操作说明

操作 功能说明
空白键 (space) 代表向下翻一页;
Enter 代表向下翻『一行』;
q 代表立刻离开 more命令 ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

3)案例实操

(1)采用more查看文件

​ [root@hadoop101 ~]# more smartd.conf

7.2.12 less 分屏显示文件内容

​ less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

1)基本语法

​ less 要查看的文件

2)操作说明

操作 功能说明
空白键 向下翻动一页;
[pagedown] 向下翻动一页
[pageup] 向上翻动一页;
/字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q 离开 less 这个程序;

3)经验技巧

​ 用SecureCRT时[pagedown]和[pageup]可能会出现无法识别的问题。

4)案例实操

(1)采用less查看文件

​ [root@hadoop101 ~]# less smartd.conf

7.2.13 echo

​ echo 输出内容到控制台

1)基本语法

​ echo [选项] [输出内容]

​ 选项:

​ -e: 支持反斜线控制的字符转换

控制字符 作用
\\ 输出\本身
\n 换行符
\t 制表符,也就是 Tab 键

2)案例实操

[atguigu@hadoop101 ~]$ echo “hello\tworld”
hello\tworld
[atguigu@hadoop101 ~]$ echo -e “hello\tworld”
hello world

7.2.14 head 显示文件头部内容

​ head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。

1)基本语法

​ head 文件 (功能描述:查看文件头10行内容)

​ head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)

2)选项说明

选项 功能
-n<行数> 指定显示头部内容的行数

3)案例实操

(1)查看文件的头2行

​ [root@hadoop101 ~]# head -n 2 smartd.conf

7.2.15 tail 输出文件尾部内容

​ tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。

1) 基本语法

(1)tail 文件 (功能描述:查看文件尾部10行内容)

(2)tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)

(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)

2) 选项说明

选项 功能
-n<行数> 输出文件尾部 n 行内容
-f 显示文件最新追加的内容,监视文件变化

3)案例实操

(1)查看文件尾 1 行内容

​ [root@hadoop101 ~]# tail -n 1 smartd.conf

(2)实时追踪该档的所有更新

​ [root@hadoop101 ~]# tail -f houge.txt

7.2.16 > 输出重定向和 >> 追加

1)基本语法

(1)ls -l > 文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))

(2)ls -al >> 文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)

(3)cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)

(4)echo “内容” >> 文件

2)案例实操

(1)将 ls 查看信息写入到文件中

​ [root@hadoop101 ~]# ls -l>houge.txt

(2)将 ls 查看信息追加到文件中

​ [root@hadoop101 ~]# ls -l>>houge.txt

(3)采用 echo 将 hello 单词追加到文件中

​ [root@hadoop101 ~]# echo hello>>houge.txt

7.2.17 ln 软链接

​ 软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。

1)基本语法

​ ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

2)经验技巧

​ 删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/

​ 如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉

​ 查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向。

3)案例实操

(1)创建软连接

[root@hadoop101 ~]# mv houge.txt xiyou/dssz/
[root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi
[root@hadoop101 ~]# ll
lrwxrwxrwx. 1 root root 20 6 月 17 12:56 houzi ->
xiyou/dssz/houge.txt

(2)删除软连接(注意不要写最后的/)

​ [root@hadoop101 ~]# rm -rf houzi

(3)进入软连接实际物理路径

​ [root@hadoop101 ~]# ln -s xiyou/dssz/ ./dssz
​ [root@hadoop101 ~]# cd -P dssz/

7.2.18 history 查看已经执行过历史命令

1)基本语法

​ history (功能描述:查看已经执行过历史命令)

2)案例实操

(1)查看已经执行过的历史命令

​ [root@hadoop101 test1]# history

7.3 时间日期类

1)基本语法

​ date [OPTION]... [+FORMAT]

2)选项说明

选项 功能
-d<时间字符串> 显示指定的“时间字符串”表示的时间,而非当前时间
-s<日期时间> 设置系统日期时间

3)参数说明

参数 功能
<+日期时间格式> 指定显示时使用的日期时间格式

7.3.1 date 显示当前时间

1)基本语法

(1)date (功能描述:显示当前时间)

(2)date +%Y (功能描述:显示当前年份)

(3)date +%m (功能描述:显示当前月份)

(4)date +%d (功能描述:显示当前是哪一天)

(5)date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)

2)案例实操

(1)显示当前时间信息

​ [root@hadoop101 ~]# date

​ 2017 年 06 月 19 日 星期一 20:53:30 CST

(2)显示当前时间年月日

​ [root@hadoop101 ~]# date +%Y%m%d

​ 20170619

(3)显示当前时间年月日时分秒

​ [root@hadoop101 ~]# date "+%Y-%m-%d %H:%M:%S"

​ 2017-06-19 20:54:58

7.3.2 date 显示非当前时间

1)基本语法

(1)date -d '1 days ago' (功能描述:显示前一天时间)

(2)date -d '-1 days ago' (功能描述:显示明天时间)

2)案例实操

(1)显示前一天

​ [root@hadoop101 ~]# date -d '1 days ago'

​ 2017 年 06 月 18 日 星期日 21:07:22 CST

(2)显示明天时间

​ [root@hadoop101 ~]#date -d '-1 days ago'
​ 2017 年 06 月 20 日 星期日 21:07:22 CST

1673528401832

7.3.3 date 设置系统时间

1)基本语法

date -s 字符串时间

2)案例实操

(1)设置系统当前时间

[root@hadoop101 ~]# date -s "2017-06-19 20:52:18"

7.3.4 cal 查看日历

1)基本语法

cal [选项] (功能描述:不加选项,显示本月日历)

2)选项说明

选项 功能
具体某一年 显示这一年的日历

3)案例实操

(1)查看当前月的日历

[root@hadoop101 ~]# cal

(2)查看 2017 年的日历

[root@hadoop101 ~]# cal 2017

7.4 用户管理命令

7.4.1 useradd 添加新用户

1)基本语法

useradd 用户名 (功能描述:添加新用户)

useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

2)案例实操

(1)添加一个用户

[root@hadoop101 ~]# useradd tangseng

[root@hadoop101 ~]#ll /home/

7.4.2 passwd 设置用户密码

1)基本语法

passwd 用户名 (功能描述:设置用户密码)

**2)案例实操

(1)设置用户的密码

[root@hadoop101 ~]# passwd tangseng

7.4.3 id 查看用户是否存在

1)基本语法

id 用户名

2)案例实操

(1)查看用户是否存在

[root@hadoop101 ~]#id tangseng

7.4.4 cat /etc/passwd

查看创建了哪些用户

1)案例实操

[root@hadoop101 ~]# cat /etc/passwd

7.4.5 su 切换用户

su: swith user 切换用户

1)基本语法

su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)

su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)

2)案例实操

(1)切换用户

[root@hadoop101 ~]#su tangseng
[root@hadoop101 ~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@hadoop101 ~]#exit
[root@hadoop101 ~]#su - tangseng
[root@hadoop101 ~]#echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin

7.4.6 userdel 删除用户

1)基本语法

(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)

(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

2)选项说明

选项 功能
-r 删除用户的同时,删除与用户相关的所有文件。

3)案例实操

(1)删除用户但保存用户主目录

​ [root@hadoop101 ~]#userdel tangseng
​ [root@hadoop101 ~]#ll /home/

(2)删除用户和用户主目录,都删除

​ [root@hadoop101 ~]#useradd zhubajie
​ [root@hadoop101 ~]#ll /home/
​ [root@hadoop101 ~]#userdel -r zhubajie
​ [root@hadoop101 ~]#ll /home/

7.4.7 who 查看登录用户信息

1)基本语法

(1)whoami (功能描述:显示自身用户名称)

(2)who am i (功能描述:显示登录用户的用户名以及登陆时间)

2)案例实操

(1)显示自身用户名称

​ [root@hadoop101 opt]# whoami

(2)显示登录用户的用户名

​ [root@hadoop101 opt]# who am i

7.4.8 sudo 设置普通用户具有 root 权限

1)添加 atguigu 用户,并对其设置密码。

​ [root@hadoop101 ~]#useradd atguigu
​ [root@hadoop101 ~]#passwd atguigu

2)修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers

修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行,如下所示:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL

或者配置成采用 sudo 命令时,不需要输入密码

## Allow root to run any commands anywhere

root ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL

修改完毕,现在可以用 atguigu 帐号登录,然后用命令 sudo ,即可获得 root 权限进行操作。

3)案例实操

(1)用普通用户在/opt 目录下创建一个文件夹

​ [atguigu@hadoop101 opt]$ sudo mkdir module
​ [root@hadoop101 opt]# chown atguigu:atguigu module/

7.4.9 usermod 修改用户

1)基本语法
usermod -g 用户组 用户名

2)选项说明

选项 功能
-g 修改用户的初始登录组,给定的组必须存在。默认组 id 是 1。

3)案例实操

(1)将用户加入到用户组

​ [root@hadoop101 opt]# usermod -g root zhubajie

7.5 用户组管理命令

​ 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

7.5.1 groupadd 新增组

1)基本语法

​ groupadd 组名

2)案例实操

(1)添加一个xitianqujing组

​ [root@hadoop101 opt]#groupadd xitianqujing

7.5.2 groupdel 删除组

1)基本语法

​ groupdel 组名

2)案例实操

(1)删除xitianqujing组

​ [root@hadoop101 opt]# groupdel xitianqujing

7.5.3 groupmod 修改组

1)基本语法

​ groupmod -n 新组名 老组名

2)选项说明

选项 功能描述
-n<新组名> 指定工作组的新组名

3)案例实操

(1)修改atguigu组名称为atguigu1

​ [root@hadoop101 ~]#groupadd xitianqujing
​ [root@hadoop101 ~]# groupmod -n xitian xitianqujing

7.5.4 cat /etc/group 查看创建了哪些组

1)基本操作

​ [root@hadoop101 atguigu]# cat /etc/group

7.6 文件权限类

7.6.1 文件属性

​ Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

1)从左到右的 10 个字符表示,如图 7-1 所示

1673529201360

如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:

(1)0 首位表示类型

​ 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

​ -代表文件
​ d 代表目录
​ l 链接文档(link file);

(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

(4)第7-9位确定其他用户拥有该文件的权限 ---Other

2)rwx 作用文件和目录的不同解释

(1)作用到文件:

​ [ r ]代表可读(read): 可以读取,查看

​ [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

​ [ x ]代表可执行(execute):可以被系统执行

(2)作用到目录:

​ [ r ]代表可读(read): 可以读取,ls查看目录内容

​ [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录

​ [ x ]代表可执行(execute):可以进入该目录

3)案例实操

[root@hadoop101 ~]# ll
总用量 104
-rw-------. 1 root root 1248 1 月 8 17:36 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 1 月 12 14:02 dssz
lrwxrwxrwx. 1 root root 20 1 月 12 14:32 houzi -> xiyou/dssz/houge.tx

1673529331563

​ (1)如果查看到是文件:链接数指的是硬链接个数。
​ (2)如果查看的是文件夹:链接数指的是子文件夹个数。

7.6.2 chmod 改变权限

1)基本语法
如图 7-3 所示

1673529374440

​ 第一种方式变更权限

​ chmod [{ugoa}{+-=}{rwx}] 文件或目录

​ 第二种方式变更权限

​ chmod [mode=421 ] [文件或目录]

2)经验技巧

​ u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

​ r=4 w=2 x=1 rwx=4+2+1=7

3)案例实操

(1)修改文件使其所属主用户具有执行权限

​ [root@hadoop101 ~]# cp xiyou/dssz/houge.txt ./
​ [root@hadoop101 ~]# chmod u+x houge.txt

(2)修改文件使其所属组用户具有执行权限

​ [root@hadoop101 ~]# chmod g+x houge.txt

(3)修改文件所属主用户执行权限,并使其他用户具有执行权限

​ [root@hadoop101 ~]# chmod u-x,o+x houge.txt

(4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。

​ [root@hadoop101 ~]# chmod 777 houge.txt

(5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。

​ [root@hadoop101 ~]# chmod -R 777 xiyou/

​ 即增加-R参数,会使此文件夹下里面的所有文件具有上述权限

1673529722044

7.6.3 chown 改变所有者

1)基本语法

​ chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)

2)选项说明

选项 功能
-R 递归操作

3)案例实操

(1)修改文件所有者

​ [root@hadoop101 ~]# chown atguigu houge.txt
​ [root@hadoop101 ~]# ls -al
​ -rwxrwxrwx. 1 atguigu root 551 5 月 23 13:02 houge.txt

(2)递归改变文件所有者和所有组

[root@hadoop101 xiyou]# ll
drwxrwxrwx. 2 root root 4096 9 月 3 21:20 xiyou
[root@hadoop101 xiyou]# chown -R atguigu:atguigu xiyou/
[root@hadoop101 xiyou]# ll
drwxrwxrwx. 2 atguigu atguigu 4096 9 月 3 21:20 xiyou 

7.6.4 chgrp 改变所属组

1)基本语法

​ chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

2)案例实操

(1)修改文件的所属组

7.7 搜索查找类

7.7.1 find 查找文件或者目录

​ find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

1)基本语法

​ find [搜索范围] [选项]

2)选项说明

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件,单位为:
b —— 块(512 字节)
c —— 字节
w —— 字(2 字节)
k —— 千字节
M —— 兆字节
G —— 吉字节

3)案例实操

(1)按文件名:根据名称查找/目录下的filename.txt文件。

​ [root@hadoop101 ~]# find xiyou/ -name "*.txt"

(2)按拥有者:查找/opt目录下,用户名称为-user的文件

​ [root@hadoop101 ~]# find xiyou/ -user atguigu

(3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)

​ [root@hadoop101 ~]find /home -size +204800

1673530494916

7.7.2 locate 快速定位文件路径

​ locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。

1)基本语法

​ locate 搜索文件

2)经验技巧

​ 由于 locate 指令基于数据库进行查询,数据库存储的文件名不是实时的,而是每天更新一次的,所以我们在第一次运行前,必须使用 updatedb 指令重新创建 locate 数据库。(进行一边更新,这样查出的结果才会准确)

3)案例实操

(1)查询文件夹
[root@hadoop101 ~]# updatedb
[root@hadoop101 ~]# locate tmp

​ ps:上边命令中tmp是文件名

7.7.3 grep 过滤查找及“|”管道符

​ 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

1)基本语法

​ grep 选项 查找内容 源文件

2)选项说明

选项 功能
-n 显示匹配行及行号。

3)案例实操

(1)查找某文件在第几行

​ [root@hadoop101 ~]# ls | grep -n test

​ ps: 在上述命令中的逻辑意思是:在ls命令查出的结果文本中 再 继续查找test文字

7.8 压缩和解压类

7.8.1 gzip/gunzip 压缩

1)基本语法

​ gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)

​ gunzip 文件.gz (功能描述:解压缩文件命令)

2)经验技巧

(1)只能压缩文件不能压缩目录

(2)不保留原来的文件

(3)同时多个文件会产生多个压缩包

3)案例实操

(1)gzip压缩

[root@hadoop101 ~]# ls
test.java
[root@hadoop101 ~]# gzip houge.txt
[root@hadoop101 ~]# ls
houge.txt.gz 

(2)gunzip解压缩文件

[root@hadoop101 ~]# gunzip houge.txt.gz
[root@hadoop101 ~]# ls
houge.txt

##### 7.8.2 zip/unzip 压缩

1)基本语法

​ zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

此命令可以同时压缩目录和文件,可以加上-r选项进行递归压缩,这样就和Windows系统里的压缩一样的效果了

​ unzip [选项] XXX.zip (功能描述:解压缩文件)

2)选项说明

zip 选项 功能
-r (recursive 递归的) 压缩目录
unzip 选项 功能
-d<目录> 指定解压后文件的存放目录

3)经验技巧

​ zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件。

4)案例实操

(1)压缩 houge.txt 和bailongma.txt,压缩后的名称为mypackage.zip

[root@hadoop101 opt]# touch bailongma.txt
[root@hadoop101 ~]# zip mypackage.zip houge.txt bailongma.txt
adding: houge.txt (stored 0%)
adding: bailongma.txt (stored 0%)
[root@hadoop101 opt]# ls
houge.txt bailongma.txt mypackage.zip

(2)解压 mypackage.zip

[root@hadoop101 ~]# unzip mypackage.zip
Archive: houma.zip
extracting: houge.txt
extracting: bailongma.txt
[root@hadoop101 ~]# ls
houge.txt bailongma.txt mypackage.zip

(3)解压mypackage.zip到指定目录-d

[root@hadoop101 ~]# unzip mypackage.zip -d /opt
[root@hadoop101 ~]# ls /opt/

7.8.3 tar 打包

1)基本语法

​ tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

tar是可以结合gzip使用的(加“-z”选项)表示打包的同时进行压缩

使用频率:经常使用

2)选项说明

选项 功能
-c 产生.tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar 文件
-C 解压到指定目录

注意:tar命令可以对文件目录打包压缩,但是生成的文件的后缀名一定得是.tar.gz

3)案例实操

(1)压缩多个文件

[root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt
houge.txt
bailongma.txt
[root@hadoop101 opt]# ls
houma.tar.gz houge.txt bailongma.txt

(2)压缩目录

[root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt

(3)解压到当前目录

[root@hadoop101 ~]# tar -zxvf houma.tar.gz (4)解压到指定目录
[root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt
[root@hadoop101 ~]# ll /opt/

1673670076806

7.9 磁盘查看和分区类

7.9.1 du 查看文件和目录占用的磁盘空间

​ du: disk usage 磁盘占用情况

1)基本语法

​ du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)

2)选项说明

选项 功能
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-a 不仅查看子目录大小,还要包括文件
-c 显示所有的文件和子目录大小后,显示总和
-s 只显示总和
--max-depth=n 指定统计子目录的深度为第 n 层

3)案例实操

(1)查看当前用户主目录占用的磁盘空间大小

​ [root@hadoop101 ~]# du -sh # 只显示一行
​ 166M .

​ [root@hadoop101 ~]# du -ah # 查看当前目录和当前目录下所有文件的大小,会显示非常多行数

ps: 也可以使用ls命令 # 注意: 这个只是将root文件夹当做一个文件算出的文件大小

[root@hadoop100 ~]# ls -lh /  #myps:查看 / 根目录(显示文件目录的详细信息)
总用量 32K  # 注意: 这个只是将root文件夹当做一个文件算出的文件大小
lrwxrwxrwx.   1 root root    7 1月   2 17:28 bin -> usr/bin
dr-xr-xr-x.   5 root root 4.0K 1月   2 17:38 boot
drwxr-xr-x.  19 root root 3.2K 1月  14 12:29 dev
drwxr-xr-x. 144 root root 8.0K 1月  14 12:29 etc
drwxr-xr-x.   4 root root   32 1月   7 11:33 home
lrwxrwxrwx.   1 root root    7 1月   2 17:28 lib -> usr/lib
其他略......

(2)只显示当前目录下一级的文件大小和当前目录总大小

1673674782817

7.9.2 df 查看磁盘空间使用情况

​ df: disk free 空余磁盘

1)基本语法

​ df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)

2)选项说明

选项 功能
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

3)案例实操

(1)查看磁盘使用情况

[root@hadoop100 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        3.9G     0  3.9G    0% /dev
tmpfs           3.9G     0  3.9G    0% /dev/shm
tmpfs           3.9G   13M  3.9G    1% /run
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda3        41G  4.6G   37G   12% /
/dev/sda1      1014M  171M  844M   17% /boot
tmpfs           797M   24K  797M    1% /run/user/0
[root@hadoop100 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8G        921M        5.7G         27M        1.2G        6.6G
Swap:          8.0G          0B        8.0G
[root@hadoop100 ~]# 

7.9.3 lsblk 查看设备挂载情况

1)基本语法

​ lsblk (功能描述:查看设备挂载情况)

2)选项说明

选项 功能
-f 查看详细的设备挂载情况,显示文件系统信息
[root@hadoop100 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 		# 硬盘
├─sda1   8:1    0    1G  0 part /boot	# 分区1
├─sda2   8:2    0    8G  0 part [SWAP]	# 内存交换分区
└─sda3   8:3    0   41G  0 part /		# 分区3
sr0     11:0    1 1024M  0 rom  		# 光驱(当初安装系统时候用的光驱,现在依然存在)

[root@hadoop100 ~]# ll /dev/ | grep sr0
lrwxrwxrwx.  1 root root           3 1月  14 12:29 cdrom -> sr0 		# 软连接到sr0
brw-rw----+  1 root cdrom    11,   0 1月  14 12:29 sr0				# sr0光驱

scsi硬盘、SATA、IDE

1673678652594

1673678883079

7.9.5 mount/umount 挂载/卸载

​ 对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。

​ Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。

1)挂载前准备(必须要有光盘或者已经连接镜像文件),如图 7-5, 7-6 所示

1673682742864

状态改成已连接(让系统识别出此设备)

点击确定之后就会发现Linux桌面多了一个图标:如下图示

1673682931077

这时候就可以点击此图标进入查看此”光驱设备“内的文件了(我们也可以右击此图标进行弹出)

如果我们不通过系统桌面的形式查看此设备的话,我们可以使用如下命令查看:

[root@hadoop100 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    8G  0 part [SWAP]
└─sda3   8:3    0   41G  0 part /
sr0     11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64 #可看到默认挂在到此目录下

[root@hadoop100 ~]# cd /run/media/root/CentOS 7 x86_64
-bash: cd: /run/media/root/CentOS: 没有那个文件或目录

[root@hadoop100 ~]# cd /run/media/root/CentOS\ 7\ x86_64/
[root@hadoop100 CentOS 7 x86_64]# ll
总用量 698
-rw-rw-r--. 2 root root     14 10月 30 2020 CentOS_BuildTag
drwxr-xr-x. 3 root root   2048 7月  26 22:39 EFI
-rw-rw-r--. 2 root root    227 8月  30 2017 EULA
-rw-rw-r--. 2 root root  18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root   2048 7月  26 22:40 images
drwxr-xr-x. 2 root root   2048 7月  26 22:39 isolinux
drwxr-xr-x. 2 root root   2048 7月  26 22:39 LiveOS
drwxr-xr-x. 2 root root 675840 7月  26 00:51 Packages
drwxr-xr-x. 2 root root   4096 7月  26 00:51 repodata
-rw-rw-r--. 2 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 2 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 7月  26 23:09 TRANS.TBL
[root@hadoop100 CentOS 7 x86_64]# 

如果弹出光驱之后,再在VMware界面设置里进行连接光驱的话,这个时候如果Linux图形界面还开着,则会再次进行自动挂载到“/run/media/root/CentOS\ 7\ x86_64/”目录下,同时图形界面的桌面也会自动显示一个光驱图标,这个时候我们就无法进行手动挂载了,所以我们需要将图形界面关掉(不关闭虚拟机),怎么办呢?我们可以单机右上角的电源按钮,把root用户注销掉,然后再在VMware的设置里面点击连接,如下图:

1673683752052

1673684088564

/dev/cdrom 是我们光驱设备名称。

在卸载的时候也可以使用此名称进行卸载

2)基本语法

​ mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
​ umount 设备文件名或挂载点 (功能描述:卸载设备)

3)参数说明

参数 功能
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660
DOS fat16 文件系统:msdos
Windows 9x fat32 文件系统:vfat
Windows NT ntfs 文件系统:ntfs
Mount Windows 文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 要挂接(mount)的设备
dir 设备在系统上的挂接点(mount point)

4)案例实操

(1)挂载光盘镜像文件

[root@hadoop101 ~]# mkdir /mnt/cdrom/ 建立挂载点
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom 挂载到 挂载点 : /mnt/cdrom 中
[root@hadoop101 ~]# ll /mnt/cdrom/

(2)卸载光盘镜像文件

[root@hadoop101 ~]# umount /mnt/cdrom

5)设置开机自动挂载

[root@hadoop101 ~]# vi /etc/fstab

添加红框中内容,保存退出。
如图7-7所示

1673684377014

1673685066429

fsck:检查和修复文件系统的命令

如果设置成开机启动,则可加上最后这行,如下图:

1673685112928

7.9.4 fdisk 分区

​ 如果我们新增加一个硬盘的情况下,则我们不光需要挂载,还需要分区了

1)基本语法

​ fdisk -l (功能描述:查看磁盘分区详情)

​ fdisk 硬盘设备名 (功能描述:对新增硬盘进行分区操作)

2)选项说明

表 7-27

选项 功能
-l 显示所有硬盘的分区列表

3)经验技巧

​ 该命令必须在 root 用户下才能使用

4)功能说明

(1)Linux 分区
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
System:分区类型

(2)分区操作按键说明
m:显示命令列表
p:显示当前磁盘分区
n:新增分区
w:写入分区信息并退出
q:不保存分区信息直接退出

5)案例实操

​ 我们模拟再添加一块虚拟机磁盘,如下图:

1673685758135

此刻添加之后我们使用lsblk命令来查看的话,会发现还是只有一块硬盘,为什么呢?是因为添加硬盘之后需要重启电脑,重启之后可以查看到新的硬盘sdb(名称adb解释:sd后面是abcde...这样对新增加的硬盘排序的),如下图:

1673685974759

可以使用帮助命令:

1673686049000

常用:n、q、w、p

在Linux下,一个磁盘最多可以划分出4个主分区,扩展分区最多有12个,所以序号最多到16个(sdb1~sdb16)

1673686362546

上面分区完成之后,稍等片刻,可以使用fdisk -l命令查看:

1673686444549

这个时候还没有进行格式化,Linux还不知道给这个硬盘sdb使用什么文件系统,所以使用lsblk查看到如下信息:(并没有uuid和文件系统类型)

1673686573678

格式化:

1673686735004

接下来就差挂载了,如下图:

1673686921240

卸载,如下图:

1673687629190

(1)查看系统分区情况

[root@hadoop100 CentOS 7 x86_64]# fdisk -l

磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bc196

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    18876415     8388608   82  Linux swap / Solaris
/dev/sda3        18876416   104851455    42987520   83  Linux
[root@hadoop100 CentOS 7 x86_64]# 

7.10 进程管理类

​ 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

7.10.1 ps 查看当前系统进程状态

​ ps:process status 进程状态

1)基本语法

常见ps命令的用法:

​ BSD风格的命令:

​ ps aux | grep xxx (功能描述:查看系统中所有进程)

标准UNIX风格:(带“-”)

​ ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

2)选项说明

表 7-30

选项 功能
a 列出带有终端的所有用户的进程
x 列出当前用户的所有进程,包括没有终端的进程
u 面向用户友好的显示风格
-e 列出所有进程
-u 列出某个用户关联的所有进程
-f 显示完整格式的进程列表

3)功能说明

(1)ps aux 显示信息说明

​ USER:该进程是由哪个用户产生的
​ PID:进程的 ID 号
​ %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
​ %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
​ VSZ:该进程占用虚拟内存的大小,单位 KB;
​ RSS:该进程占用实际物理内存的大小,单位 KB;
​ TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,
​ tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
​ STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、
​ Z:僵尸状态(基本已经完成了,就剩下一个空壳,可清楚)、s:包含子进程、l:多线程、+:当前线 程在前台显示
​ START:该进程的启动时间
​ TIME:该进程占用 CPU 的运算时间,注意不是系统时间
​ COMMAND:产生此进程的命令名

1673704302767

(2)ps -ef 显示信息说明
UID:用户 ID
PID:进程 ID
PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越 小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称(就是我们常用的命令行窗口,一般值为pts/0|1,?表示无终端)
TIME:CPU 时间
CMD:启动进程所用的命令和参数

1673704582242

4)经验技巧

​ 两个命令的选择技巧:

​ 如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
​ 如果想查看进程的父进程 ID 可以使用 ef;

5)案例实操

​ [root@hadoop101 datas]# ps aux

1673704991865

1673705405488

ps: 打开一个atguigu用户会产生两个进程,一个UID为root,一个UID为gtguigu;主要是因为权限管理的需要,多的UID为root的进程是执行需要root权限命令时使用的,执行普通命令是用的UID为atguigu进程。

7.10.2 kill 终止进程

这一章很重要,可以多回看几遍B站p058第9分钟左右(怕kill错进程,这里讲的非常细致)

058_实操篇_进程管理类(二)_终止进程_哔哩哔哩_bilibili

1)基本语法

​ kill [选项] 进程号(PID) (功能描述:通过进程号杀死进程)

​ killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有 用)

2)选项说明

表 7-31

选项 功能
-9 表示强迫进程立即停止

3)案例实操

(1)杀死浏览器进程

​ [root@hadoop101 桌面]# kill -9 5102

(2)通过进程名称杀死进程

​ [root@hadoop101 桌面]# killall firefox

具体怎么理顺从系统一启动就开始的bash终端,到现在这么几个终端的父子进程关系,需要多回看几次本节视频

1673706384472

1673706378894

​ 实际工作中千万不要使用 kill -9 sshd这个命令,这样会把所有的ssh相关的进程都杀掉,包括ssh服务进程,这样的话我们所有的ssh都不能远程连接了,我们只能去物理的实际机房里面启动一个终端,再使用 “systemctl start sshd” 这命令来启用ssh服务了

7.10.3 pstree 查看进程树

​ 如果没有安装pstree的话,则使用 yum install pstree来安装一下

1)基本语法

​ pstree [选项]

2)选项说明

表 7-32

选项 功能
-p 显示进程的 PID
-u 显示进程的所属用户

3)案例实操

​ [root@hadoop101 datas]# pstree

1673706937888

(1)显示进程 pid

​ [root@hadoop101 datas]# pstree -p

(2)显示进程所属用户

​ [root@hadoop101 datas]# pstree -u

7.10.4 top 实时监控系统进程状态

​ 和ps命令相比,ps命令像是一个快照,而top命令则是实时监控的(界面显示会随时变化)

1)基本命令

​ top [选项]

2)选项说明

选项 功能
-d 秒数(刷新频率) 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当中可以执行的命令:
-i 使 top 不显示任何闲置或者僵死进程。
-p 通过指定监控进程 ID 来仅仅监控某个进程的状态。

3) 操作说明

在显示窗口直接输入如下命令可以切换显示效果

操作 功能
P 以 CPU 使用率排序,默认就是此项
M 以内存的使用率排序
N 以 PID 排序
q 退出 top命令

直接用top命令(无参数)默认是按照cpu占比来排序的

1673707791439

4)查询结果文本字段解释

第一行信息为任务队列信息

表 7-35

内容 说明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间,本机已经运行 1 天13 小时 32 分钟
2 users 当前登录了两个用户
load average: 0.00, 0.00, 0.00 系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小。如果大于1,系统已经超出负荷。

第二行为进程信息

表 7-36

Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是 0,需要手工检查僵尸进程

第三行为 CPU 信息

表 7-37

Cpu(s): 0.1%us 用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni (NICE) 改变过优先级的用户进程占用的 CPU 百分比
99.7%id 空闲 CPU 的 CPU 百分比
0.1%wa 等待输入/输出的进程的占用 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息

表 7-38

Mem: 625344k total 物理内存的总量,单位 KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了 628MB 内存,所以只有 53MB 的空闲内存了
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息

表 7-39

Swap: 524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小

5)案例实操

[root@hadoop101 atguigu]# top -d 1
[root@hadoop101 atguigu]# top -i
[root@hadoop101 atguigu]# top -p 2575

​ 执行上述命令后,可以按 P、M、N 对查询出的进程结果进行排序。

也可以输入 u 之后 输入用户名 ,可以只查看某用户的线程信息

也可以输入 k 进入kill命令,top是整合了kill命令的,如下图:

1673708875598

再输入一个信号,就可以杀掉进程了,比如输入9,如下图:(相当于 [root@hadoop101 桌面]# kill -9 PID)

1673708954555

7.10.5 netstat 显示网络状态和端口占用信息

1)基本语法

​ netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
​ netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

2)选项说明

表 7-40

选项 功能
-a 显示所有正在监听(listen)和未监听的套接字(socket)
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用

3)案例实操

(1)通过进程号查看sshd进程的网络信息

1673748860558

使用:netstat -anp | less 显示如下图:

1673748814615

7.11 crontab 系统定时任务

7.11.1 crontab 服务管理

1)重新启动 crond 服务

​ [root@hadoop101 ~]# systemctl restart crond

7.11.2 crontab 定时任务设置

1)基本语法

​ crontab [选项]

2)选项说明

表 7-41

选项 功能
-e 编辑 crontab 定时任务
-l 查询 crontab 任务
-r 删除当前用户所有的 crontab 任务

3)参数说明

​ [root@hadoop101 ~]# crontab -e

(1)进入 crontab 编辑界面。会打开 vim 编辑你的工作。

​ * * * * * 执行的任务

1673749446990

4)案例实操

(1)每隔 1 分钟,向/root/bailongma.txt 文件中添加一个 11 的数

​ */1 * * * * /bin/echo ”11” >> /root/bailongma.tx


第 8 章 软件包管理

8.1 RPM

8.1.1 RPM 概述

​ RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。

​ RPM包的名称格式

​ Apache-1.3.23-11.i386.rpm

上述格式说明:

  • “apache” 软件名称

  • “1.3.23-11”软件的版本号,主版本和此版本

  • “i386”是软件所运行的硬件平台,Intel 32位处理器的统称

  • “rpm”文件扩展名,代表RPM包

8.1.2 RPM 查询命令(rpm -qa)

1)基本语法

​ rpm -qa (功能描述:查询所安装的所有 rpm 软件包)

2)经验技巧

​ 由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

3)案例实操

(1)查询firefox软件安装情况

​ [root@hadoop101 Packages]# rpm -qa |grep firefox
​ firefox-45.0.1-1.el6.centos.x86_64

8.1.3 RPM 卸载命令(rpm -e)

1)基本语法

(1)rpm -e RPM软件包

(2) rpm -e --nodeps 软件包

2)选项说明

表 8-1

选项 功能
-e 卸载软件包
--nodeps 卸载软件时,不检查依赖(强制卸载)。这样的话,那些使用该软件包的软件在此之
后可能就不能正常工作了。

3)案例实操

(1)卸载firefox软件

​ [root@hadoop101 Packages]# rpm -e firefox

8.1.4 RPM 安装命令(rpm -ivh)

1)基本语法

​ rpm -ivh RPM 包全名

2)选项说明

表 8-2

选项 功能
-i install,安装
-v --verbose,显示详细信息(安装过程)
-h --hash,显示进度条
--nodeps 安装前不检查依赖

3)案例实操

(1)安装firefox软件

[root@hadoop101 Packages]# pwd
/run/media/root/CentOS 7 x86_64/Packages
[root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
warning: firefox-45.0.1-1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1
Signature, key ID c105b9de: NOKEY
Preparing... ###########################################
[100%]
1:firefox ###########################################
[100%]

8.2 YUM 仓库配置

8.2.1 YUM 概述

​ YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,如图 8-1 所

1673750641276

有点像maven

8.2.2 YUM 的常用命令

1)基本语法

​ yum [选项] [参数]

2)选项说明

表 8-3

选项 功能
-y 对所有提问都回答“yes”

3)参数说明

表 8-4

参数 功能
install 安装 rpm 软件包
update 更新 rpm 软件包
check-update 检查是否有可用的更新 rpm 软件包
remove 删除指定的 rpm 软件包
list 显示软件包信息
clean 清理 yum 过期的缓存
deplist 显示 yum 软件包的所有依赖关系

4)案例实操实操

(1)采用 yum 方式安装 firefox

​ [root@hadoop101 ~]#yum

8.2.3 修改网络 YUM 源

​ 默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络YUM 源为国内镜像的网站,比如网易 163,aliyun 等

1)安装 wget, wget 用来从指定的 URL 下载文件

​ [root@hadoop101 ~] yum install wget

2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件,

[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base
.repo.backup

3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一,如图 8-2

[root@hadoop101 yum.repos.d] wget
http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云
[root@hadoop101 yum.repos.d] wget
http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易 163

1673751012136

4)使用下载好的 repos 文件替换默认的 repos 文件

​ 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo
​ [root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo

5)清理旧缓存数据,缓存新数据

​ [root@hadoop101 yum.repos.d]#yum clean all
​ [root@hadoop101 yum.repos.d]#yum makecache

​ yum makecache 就是把服务器的包信息下载到本地电脑缓存起来

6)测试

​ [root@hadoop101 yum.repos.d]# yum list | grep firefox
​ [root@hadoop101 ~]#yum -y install firefox


第 9 章 克隆虚拟机

9.1 克隆

1)从现有虚拟机(关机状态)克隆出新虚拟机,右键选择管理=>克隆,如图 9-

1673751099476

2)点击下一步

3)选择虚拟机中的当前状态

4)选择创建完整克隆,如图 9-4

1673751153549

5)设置虚拟机名称及存储位置

6)等等等……等待克隆完成即可

9.2 开机修改系统相关配置

注意: 使用 root 用户。

1)修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,修改 IP 地址,如图 9-8

​ vim /etc/sysconfig/network-scripts/ifcfg-eth0

1673751233839

2)修改 /etc/hostname ,修改主机名,如图 9-9

​ vim /etc/hostname


第 10 章 常见错误及解决方

1)虚拟化支持异常情况如下几种情况

1673751315742

问题原因:宿主机 BIOS 设置中的硬件虚拟化被禁用了

解决办法:需要打开笔记本 BIOS 中的 IVT 对虚拟化的支

1673751355829


第 11 章 企业真实面试题

11.1 百度&考满分

问题:Linux 常用命令

参考答案:find、df、tar、ps、top、netstat 等。(尽量说一些高级命令)

11.2 瓜子二手车

问题:Linux 查看内存、磁盘存储、io 读写、端口占用、进程等命令

答案:
1、查看内存:top
2、查看磁盘存储情况:df -h
3、查 看磁盘 IO 读写情况:iotop(需要安装一下:yum install iotop)、
	iotop -o(直接查看输出比较高的磁盘读写程序)
4、查看端口占用情况:netstat -tunlp | grep 端口号
5、查看进程:ps -au
posted @ 2023-01-15 16:39  起跑线小言  阅读(179)  评论(0编辑  收藏  举报