尚硅谷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),是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统作为接口的示意图:
如上图所示,在操作系统的最上层是用户,中间层是操作系统(里面可能装了很多的应用程序),最下层是硬件的支撑,包含CPU/内存/硬盘等
这就是一个完成的操作系统结构图
主流操作系统按照应用领域的划分
1、桌面操作系统
- Window 系列
- 用户群体大
- macOS
- 细节处理的更好, 没有windows软件丰富, 价格高
- Linux
- 应用软件少
2、服务器操作系统
-
Linux
- 安全、稳定、免费
- 占有率高
-
Windows Server
- 付费
- 占有率低
3、嵌入式操作系统
Linux
4、移动设备操作系统
- 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开始盛行开来...
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可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。
Linux与其他操作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
1.3.2 Linux的特点
基本思想
Linux的基本思想有两点:
第一:一切都是文件
第二:每个软件都有确定的用途
其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从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/IPv4、 TCP/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。
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 等
以下是主要的发行版本
需要注意的:
下面的内容主要是介绍了下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发行版本的操作系统。
5、centos
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发行厂商,功能全面、稳定。
- Redhat 被 IBM 收购!
- 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是无法使用的。
开启虚拟化的步骤:
1、开机(或重启)时进入Blos
注意:不同计算机使用的快捷键不同例如F2、F12、DEL、ESC等键就可以进入到BIOS
进入到BIOS后,找到Configuration选项或者Security选项,然后选择Virtualization,或者Intel Virtual
Technology,就可以开始设置了
这里以ThinkPad为例
2、然后选择Virtualization,或者Intel Virtual Technology然后回车,将其值设置为Enabled。
3、在保存BIOS设置之后,重启计算机。
此时,虚拟化支持就全部设置完毕了,我们在创建虚拟机的时候就不在报上面的错了.
2、VMware下载与安装
- 下载
1.进入VMware https://www.vmware.com/cn.html,点击左侧导航栏中的产品下载,再点击图中标记的
Workstation Pro,如下图所示
下载完成后安装即可
注意:
虚拟软件安装完成后会在 \控制面板\网络和Internet\网络连接 下多出来两个虚拟网卡VMware Network Adapter
VMnet1和VMware Network Adapter VMnet8
VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡
在我们的虚拟机中有三种模式,分别对应仅主机、桥接、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系统的镜像文件
点击上面的其他镜像,可以查询其他国家的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/
4、创建虚拟机
引子:
此时,我们的VMware已经安装完毕了,并且CentOS镜像也成功下载完毕了(如果没有下载,在我们的附件资料【软件】文件夹中有VMware和CentOS的打包文件),这个时候,我们就可以创建一个新从虚拟机了,创建虚拟机需要用到CentOS系统镜像,下面,我们一起进入到详细的安装过程...
在上面的安装想到页面中依次选择:”典型(推荐)(T)“
一》选择稍后安装操作系统
一》选择操作系统类型:1、客户机操作系统:选择Linux 2、 版本:选择CentOS7 64位
一》 1、虚拟机名称可以自定义(注意:不要出现特殊字符即可)2、虚拟机运行文件路径选择本地磁盘路径(注意:磁盘空间尽量要大写,因为一个虚拟机的运行文件大约要在4G以上
一》设置磁盘容量,根据自己的需要设置:此次我们使用如下:
一》 选择自定义硬件,主要设置CentOS的镜像
点击【自定义硬件】
一》新建虚拟机镜像
选择硬件【cd/dvd】,在【使用ISO镜像文件】中选择我们在sohu镜像源下载的镜像
CentOS-7-x86_64-DVD-1810.iso文件
设置完成后点击【关闭】
一》 此时会回到【新建虚拟机向导】页面,点击完成即可配置完毕
5、启动虚拟机
CentOS设置
1、点击箭头方向即可启动我们的VMware
2、设置语言
在第一步设置完成后,我们一直等待,即可来到语言设置界面
此处我们设置【中文】
3、设置安装信息
将下面带有【感叹号图标】的内容进行设置,比如时间和键盘,可根据自己的需要进行初始化设置,此处我们设置
下CentOS的桌面,继续往下看..
在软件选择安装我们的桌面,此处选择GNOME桌面
4、点击右下角的”开始安装“
5、配置用户信息
此处设置root账号密码,我们设置为root,暂时不创建新的用户(进入到欢迎页面的时候会提示我们创建用户)
点击"ROOT密码"设置密码为:root
设置完毕后不在有【感叹号图标】警告提示了
然后点击右下角”重启“
6、接受许可
在重启过程中,会有【未接受许可证】的警告提示,点击提示信息
设置(打勾)同意许可
7、开机进入欢迎页面
此处设置为语言为【汉语】
8、选择键盘输入
键盘输入类型此处我们选择”英语(美国)“
9、关闭隐私服务
10、设置国家和地区,我们设置中国上海
11、绑定账号
此处我们选择跳过【skip】
12、创建用户
我们新建用户itcast
全名:itcast
用户名:itcast
为用户itcast设置密码Itheima888
此处注意密码设置规范:大小写+数字
13、设置完毕,进入CentOS桌面
14、重启,输入用户名、密码就可以登录了
SecureCRT访问
注册过程略、其他设置(如字符集、颜色等)略
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根据需要选择
为提高速度,不勾选如下两项
centos7安装
下载地址1: http://mirrors.163.com/
下载地址2:Index of /centos-store/7.6.1810/isos/x86_64/ (liu.se) 选4.2G那个
其他安装步骤跟上边”安装“里的第5步(5、启动虚拟机) 差不多,下面其他步骤如下:
因为不是生产环境,我们不用选择最小安装,我们按如下图示选择即可
配置分区
(不选这个选项,使用自动分区也可以)
文件系统中的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格式
根分区
然后点击左上角的”完成“按钮,则会弹出提示框如下:选择接受更改即可
KDUMP
但是此处我们是讲课,就不开启了
网络和主机名
以后shell命令行终端里每一行都会显示
主机名不能有空格下划线等特殊符号
然后再点击左上角”完成“
SECURITY POLICY
此处我们就不设置安全策略了
现在点击右下角”开始安装“然后耐心等待进度条完成,此时我们也先设置一下root账户密码,然后再点击创建用户,创建一个其他用户:tom(举例)
进入界面后测试即可:
2、网络连接的三种模式
1)、桥接模式
假如在局域网下,有如下三个人的电脑,选择桥接模式三人的电脑里可以互相通讯(前提是设置成同一个网段192.168.0.xxx),但是有缺点: 虚拟系统可以和外部系统通讯,但是容易造成IP冲突
2)、NAT模式
内部虚拟机借助主机IP192.168.0.50可以访问外网,但是外网不能访问192.168.100.88虚拟机
如下图示:
3)、主机模式)
就像是一个独立的主机,随便都行
3、共享文件夹
参考文章:
(129条消息) 设置VirtualBox共享文件夹的方法_爱自然的李老师的博客-CSDN博客_virtualbox 共享文件夹
如果在tom用户中设置共享文件夹失败,则可以切换到root用户再进行设置:
mount -t vboxsf VMshare myshare_dir
B站尚硅谷Linux2022课程笔记
第 1 章 Linux 介绍
第 2 章 VM 与 Linux 的安装
最新centod7.9安装下载:
下载地址:Index of /centos/7.9.2009/isos/x86_64/ (163.com)
下面的那个是选的最新
安装Linux--创建虚拟机
1、创建虚拟机初步设置
创建虚拟机就相当于我们自己攒一台电脑(diy一台电脑)
2、虚拟机命名和位置
myps:命名虚拟机为CentOS792207,表示使用的是centos7.9的2207的iso版本镜像
3、设置cpu和内存
4、设置网络
5、I/O控制器
使用默认即可
6、选磁盘类型
下面将创建一个磁盘文件(名称默认使用我们的主机名)
点击完成,至此我们自己攒的电脑硬件已经完成,接下来就是来安装操作系统了
安装Linux--安装系统
参考上边: B站韩顺平老师Linux2021课程笔记
boot分区
swap分区
剩下的分到根分区
KDUMP点进去,目前是学习状态,为节省资源取消勾选,生产环境可以开启
第 3 章 Linux 文件与目录结构
参考:B站韩顺平老师Linux2021课程笔记
-
linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“I”,然后在此目录下再创建其他的目录。
-
深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。
3)记住一句经典的话:在 Linux世界里,一切皆文件(!!)
4)示意图
4.2具体的目录结构(不用背,知道即可)
- /bin(常用)(/usr/bin 、 /usr/local/bin)
是Binary的缩写,这个目录存放着最经常使用的命令
2)/sbin(/usr/sbin ./usr/local/sbin)
s就是Super User 的意思,这里存放的是系统管理员使用的系统管理程序。
-
/home[常用]
存放普通用户的主目录,在Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名 -
/root[常用]
该目录为系统管理员,也称作超级权限者的用户主目录 -
/lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
6)/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
-
/etc[常用]
所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库my.conf -
/usr[常用]
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows 下的 program files 目录。
9)/boot [常用]存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
-
/proc[不能动]这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息11)/srv[不能动]service缩写,该目录存放一些服务启动之后需要提取的数据,
也可以说是系统进程的目录映射 -
/sys[不能动]这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs=》【别动】
-
/tmp 这个目录是用来存放一些临时文件的
-
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储 -
/media[常用] linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下
-
/mnt[常用]
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。如:d:/myshare
17)/opt这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空
-
/usr/local[常用]
这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序 -
/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输入法)
vi/vim键盘图(清晰打印版,桌面背景好图)_www_helloworld_com的博客-CSDN博客_vi/vim键盘图
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 所
桥接模式:
此时我们的自己电脑里的虚拟机是和宿主机平级的、相等的,其他同局域网下的人可以和此虚拟机通讯,这样安全性、私密性不太好,另外占用ip,可能会导致局域网内的ip不够用(ip只有1-254可以用,也就是说此局域网下只有254个ip,如果每个人都搭虚拟机集群就会占用ip太多),下面说下NAT模式
此模式下没有虚拟网卡,配置最简单(仅将ip和宿主机配置在同一个网段下就行,子网掩码和默认网关都一样),
虚拟机和宿主机是完全平等的,都能被外网访问,也都能访问外网和互相访问
NAT模式
这样这虚拟网卡vmNet8就是和其他虚拟机是在同一个局域网下,这样就能相互通讯了(网关是第二个虚拟出的路由器地址)
仅主机模式
此模式下也虚拟出了一个vmNet1网卡
原理详解
具体查看p020_基础篇-网络配置二 第23分钟-25分钟,讲解清晰
020_基础篇_网络配置(二)_网络连接模式_哔哩哔哩_bilibili
2)修改虚拟网卡 Ip,如图 5-2 所示
【此节为重点】
因为现在虚拟机默认都是DHCP动态分配的ip,我们后面连接这些虚拟机的时候每次还得查看分配的具体是什么ip,特别麻烦,还有其他问题等,所以我们需要将其都改为静态ip(写死ip),这样我们使用远程连接工具的时候就不用每次去看去找ip了
因为绝大部分情况都是我们使用工具连接虚拟机,所以我们不需要改主机ip(虚拟路由器ip),只需要改虚拟机的ip为静态ip即可(当然如果想改,我们也可以改)
下面我们就讲下怎样在Linux虚拟机中指定静态ip
先看下我们目前的设置
网关和DHCP配置
可以看到目前是自动分配的ip
我们需要在Linux中设置,如果Linux有图形界面则可以使用如下方式设置:
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
如果是没有图形界面,则必须在终端命令控制台使用命令来配置了:
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
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
修改完成后重启虚拟机生效。
当然如果不想重启也可以使用如下方式
如果我们再次打开一个命令行终端则可以看到主机名已经修改成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命令行工具自带)
xshell工具远程连接
防止显示中文乱码
第 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
[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 所示
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 [选项] 时间
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
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 所示
如果没有权限,就会出现减号[ - ]而已。从左至右用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
(1)如果查看到是文件:链接数指的是硬链接个数。
(2)如果查看的是文件夹:链接数指的是子文件夹个数。
7.6.2 chmod 改变权限
1)基本语法
如图 7-3 所示
第一种方式变更权限
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
参数,会使此文件夹下里面的所有文件具有上述权限
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
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/
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)只显示当前目录下一级的文件大小和当前目录总大小
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
7.9.5 mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
1)挂载前准备(必须要有光盘或者已经连接镜像文件),如图 7-5, 7-6 所示
状态改成已连接(让系统识别出此设备)
点击确定之后就会发现Linux桌面多了一个图标:如下图示
这时候就可以点击此图标进入查看此”光驱设备“内的文件了(我们也可以右击此图标进行弹出)
如果我们不通过系统桌面的形式查看此设备的话,我们可以使用如下命令查看:
[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的设置里面点击连接,如下图:
/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所示
fsck:检查和修复文件系统的命令
如果设置成开机启动,则可加上最后这行,如下图:
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)案例实操
我们模拟再添加一块虚拟机磁盘,如下图:
此刻添加之后我们使用lsblk命令来查看的话,会发现还是只有一块硬盘,为什么呢?是因为添加硬盘之后需要重启电脑,重启之后可以查看到新的硬盘sdb(名称adb解释:sd后面是abcde...这样对新增加的硬盘排序的),如下图:
可以使用帮助命令:
常用:n、q、w、p
在Linux下,一个磁盘最多可以划分出4个主分区,扩展分区最多有12个,所以序号最多到16个(sdb1~sdb16)
上面分区完成之后,稍等片刻,可以使用fdisk -l命令查看:
这个时候还没有进行格式化,Linux还不知道给这个硬盘sdb使用什么文件系统,所以使用lsblk查看到如下信息:(并没有uuid和文件系统类型)
格式化:
接下来就差挂载了,如下图:
卸载,如下图:
(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:产生此进程的命令名
(2)ps -ef 显示信息说明
UID:用户 ID
PID:进程 ID
PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越 小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称(就是我们常用的命令行窗口,一般值为pts/0|1,?表示无终端)
TIME:CPU 时间
CMD:启动进程所用的命令和参数
4)经验技巧
两个命令的选择技巧:
如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef;
5)案例实操
[root@hadoop101 datas]# ps aux
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终端,到现在这么几个终端的父子进程关系,需要多回看几次本节视频
实际工作中千万不要使用 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
(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占比来排序的
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命令的,如下图:
再输入一个信号,就可以杀掉进程了,比如输入9,如下图:(相当于 [root@hadoop101 桌面]# kill -9 PID)
7.10.5 netstat 显示网络状态和端口占用信息
1)基本语法
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
2)选项说明
表 7-40
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
3)案例实操
(1)通过进程号查看sshd进程的网络信息
使用:netstat -anp | less 显示如下图:
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 编辑你的工作。
* * * * * 执行的任务
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 所
有点像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
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-
2)点击下一步
3)选择虚拟机中的当前状态
4)选择创建完整克隆,如图 9-4
5)设置虚拟机名称及存储位置
6)等等等……等待克隆完成即可
9.2 开机修改系统相关配置
注意: 使用 root 用户。
1)修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,修改 IP 地址,如图 9-8
vim /etc/sysconfig/network-scripts/ifcfg-eth0
2)修改 /etc/hostname ,修改主机名,如图 9-9
vim /etc/hostname
第 10 章 常见错误及解决方
1)虚拟化支持异常情况如下几种情况
问题原因:宿主机 BIOS 设置中的硬件虚拟化被禁用了
解决办法:需要打开笔记本 BIOS 中的 IVT 对虚拟化的支
第 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