前言
本文主要介绍了Linux的概述、安装和结构,主要包括Linux概述、安装Linux和Linux结构,是Linux的入门教程,也是后边搭建大数据集群的基础。
1.Linux概述
(1)Linux简介
Unix 是较早被广泛使用的计算机操作系统之一,也是Linux的前身,它的第一版于1969年由 Ken Thompson 在 AT&T 贝尔实验室实现,1973年Ken Thompson与Dennis Ritchie用C语言重写了 Unix 的第三版内核。
相关人物如下:
Unix系统的特点:
Unix是一个强大的多用户、多任务操作系统;
UNIX的商标权由国际开放标准组织(The Open Group)所拥有;
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。
Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生Linus Torvalds和后来陆续加入的众多爱好者共同开发完成。
Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
其中,GPL协议:
Richard M.Stallman 于1984年创立自由软件体系GNU,拟定普遍公用版权协议 (GeneralPublicLicense,简称GPL),今天Linux的成功就得益于GPL协议;
所有GPL协议下的自由软件都遵循着Richard M. Stallman的"Copyleft"(非版权)原则,即自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必须向所有用户公开。
GNU计划:
GNU计划和自由软件基金会FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似UNIX 并且是自由软件的完整操作系统;
到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境。这是Linux 能够诞生的基础之一,以至于目前许多人都将Linux 操作系统称为GNU/Linux操作系统。
相关任务如下:
Linux 系统特点:
- 开放性(开源)
- 多用户
多个用户,在登录计算机(操作系统),允许同时登录多个用户进行操作
- 多任务
多个任务,允许用户同时进行多个操作任务。
其中,Windows 属于单用户多任务,Linux 属于多用户多任务。
- 良好的用户界面
- 优异的性能和稳定性
(2)Linux的应用领域及版本介绍
Linux的应用领域如下:
- 服务器系统
Web应用服务器、数据库服务器、游戏服务器、接口服务器、DNS、FTP等等。
因为Linux安全性和稳定性较高。
- 嵌入式系统
路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等。
- 高性能运算、计算密集型应用
Linux有强大的运算能力。
IBM的Watson超级计算机就是使用了Linux系统。
- 桌面应用系统
很多桌面操作系统的底层也是Linux。
- 移动手持系统
Android系统底层就是基于Linux。
Linux 的版本继承了 Unix 的版本定制规则,分为内核版本和发行版本:
- 内核版本
内核就是核心,其他软件都基于这个核心,不能直接使用,内核版本统一在http://www.linux.org发布。
内核版本分为稳定版和开发版,区分方式是根据次版本的奇偶判定,奇数为开发版、偶数为稳定版。
- 发行版本
由各个 Linux 发行商发布,Linux 发行商有权选择 Linux 的内核版本。
常见的 Linux 发行版本包括RedHat、CentOS、Debian、Ubuntu等,如下图:
分别如下:
- Debian
Debian运行起来极其稳定,这使得它非常适合用于服务器。
- redhat
这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构。 全球最大的linux发行厂商,功能全面、稳定。
- ubuntu:
Ubuntu是Debian的一款衍生版,侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行的移动设备上很常见。
- centos:
CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。
- Fedora
- Fedora同是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。
2.安装Linux
(1)VMWare的安装
Linux操作系统软件,依赖于硬件设备,及需要安装到硬件上才能使用,在没有多余硬件设备的情况下,可以选择使用虚拟机来模拟硬件,然后再将Linux装到虚拟机上即可使用。
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环 境中的完整计算机系统。
常用的虚拟机软件如下:
- VMware Workstation
是VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86相容电脑的虚拟机套装,其允许用户同时创建和运行多个x86虚拟机。
- VirtualBox
VirtualBox是一款开源虚拟机软件。VirtualBox是由德国Innotek公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被Oracle收购后正式更名成Oracle VM VirtualBox。
- Virtua* PC
是Microsoft最新的虚拟化技术,主要适合做微软自己产品的服务。
本机电脑与虚拟机的关系如下:
选择VMware Workstation 15或者16版本下载,并点击进行安装,选择安装目录为非系统盘,一般默认情况下点击下一步即可完成安装。
安装成功,并打开VMWare的界面如下:
(2)使用VMWare构建虚拟机器
现在通过虚拟机软件构建一台硬件设备,即模拟买一台电脑的过程:
(1)点击创建新的虚拟机,并选择自定义(高级),点击下一步
(2)选择虚拟机硬件兼容性默认下一步,安装客户端操作系统选择稍后安装操作系统,下一步:
(3)选择客户端操作系统
(4)命名虚拟机,并选择安装目录
(5)处理器配置、此虚拟机的内存默认,网络类型选择使用网络地址转换
其中,网络类型是指虚拟机与电脑本地的网络交流方式。
(6)I/O控制器类型选择LSI Login(推荐),即默认方式,虚拟磁盘选择SCSI,即默认方式,磁盘选择创建新虚拟磁盘,磁盘大小使用默认值(20GB),并指定磁盘文件名为默认
(7)点击完成,即可创建好虚拟机器:
可以看到,已经有了创建好的机器。
(3)安装CentOS操作系统
安装CentOS操作系统需要使用CentOS系统对应版本的镜像文件。
过程如下:
(1)加载镜像文件
(2)点击开启此虚拟机,并选择Install CentOS 7,待响应后再根据提示按Enter键:
(2)选择语言,下滑选择中文->简体中文(中国),再点击继续:
(3)等待几秒,选择日期和时间,选择亚洲上海:
(4)选择软件安装为最小安装,安装位置选择默认,即可开始安装:
(5)设置root账户密码:
设置密码为自己方便使用的密码即可,后边以root身份登录系统都会用到。
(6)安装完成后重启,即可输入用户名root和密码进行使用:
(4)配置静态IP
为了让安装好的虚拟机CentOS系统与物理机Windows系统进行关联,则需要设置网络。
有3种模式可以实现虚拟机与物理机之间的通信:
- 桥接模式
桥接模式下,可以实现虚拟机与虚拟机、虚拟机与物理机之间相互通信。
图示如下:
以前用得较多,现在用得较少,存在一定的安全问题。
- NAT模式
虚拟机与虚拟机、虚拟机与物理机之间相互通信,同时虚拟机可以连接外网(Internet)。
图示如下:
- 仅主机模式
仅主机模式,可以实现虚拟机和物理主机之间相互通信,但虚拟机无法与外网(Internet)之间互相通信。
图示如下:
这3种模式与之前在创建虚拟机器时选择网络适配器时额选项是一致的,我们选择NAT模式。
安装完VMWare之后,会给本地物理机虚拟2块网卡,如下:
选择VMnet8设置静态IP:
设置IP时,前面2位数字是192和168,第3位网段可以根据自己的需要在合理范围内设置,前3位(这里是192.168.31)是网段,最后1位是主机号、用于标识局域网中的每一台计算机,属于C类网络。
然后在VMWare中进行配置,在进行配置前需要关闭虚拟机,然后进行配置:
(1)打开配置页面
(2)子网IP配置
需要注意:
这一步与之后步骤中的IP网段(前3位)都需要与前面设置的网段保持一致,后面才能正常连接。
(3)NAT设置,获取网关IP
获取网关IP,后面需要用到,这里为192.168.31.2。
(3)DHCP设置,获取起始IP和结束IP
获取到起始IP和结束IP,这里为192.168.31.128和192.168.31.254。
现在需要进入操作系统配置网卡信息,来使得虚拟机可以访问外部网络:
(1)进入操作系统
[root@localhost~]ping www.baidu.com
ping: www.baidu.com: Name or service not knowm
显然,此时虚拟机还不能访问外部网络。
(2)编辑配置文件
执行vi /etc/sysconfig/network-scripts/ifcfg-ens33
,输入i
进入编辑模式:
TYPE=EthernetPROXY_METHOD=noneBROLSER_ONLY=noBOOTPROTO=dhcpBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_DDR_GEN_MODE=stable-priuacyNAME=ens33UUID=e715fecf-165e-43f8-b9d4-adf95b68631aDEVICE=ens33ONBOOT=noONBOOT=yes添加IPADDR=192.168.31.155NETMASK=255.255.255.0GATEWAY=192.168.31.2DNS1=8.8.8.8
编辑完成后先按ESC键退出、输入:x
保存;
其中,IPADDR为位于起始IP和结束IP范围内的IP;
NETMASK为子网掩码;
GATEWAY为之前获取到的网关IP。
(3)重启网络服务
执行systemctl restart network
重启网络服务,再执行ip addr
,查看IP地址:
可以看到,就是修改之后的地址;
再执行ping www.baidu.com
,如下:
此时就能ping通了,说明可以访问外部网络了。
(5)给虚拟机设置快照
快照就是还原点,其目的是在出现异常时,可以快速备份恢复到某个状态。
使用VMWare创建和使用快照的步骤如下:
(1)打开创建快照
(2)创建快照
(3)使用快照恢复状态
按照图中操作,再点击是即可使用快照、恢复到指定快照的状态。
(6)客户端连接工具的介绍和使用
客户端连接工具主要功能是向Linux系统远程发送命令,原理如下:
包括以下分类:
- Xshell
目前最好用的工具之一,用户很多。
- SecureCRT
收费软件,用户也较多。
- Putty
已经停止维护,很多功能不能支持,但因为习惯依旧很多人支持。
- Final Shell
小众但好用的远程连接工具,包含了远程连接和FTP文件传输功能。
以XShell所在的工具包XManager为例进行说明:
(1)安装
与普通软件安装类似,可能需要输入密钥。
(2)创建连接
(3)输入认证信息
此时即创建成功连接。
(4)进行连接
即能连接成功:
此时就可以输入各种命令进行操作了。
3.Linux结构
(1)Linux组成
其中:
- COMPUTER RESOURCES
是计算机硬件资源。
- KERNEL
内核,即操作系统的核心,是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
作用包括:
- 管理内存
- 管理CPU
- 管理进程
- 管理文件系统
- 管理设备驱动及网络通信
特点如下:
- 支持多任务
- 支持共享库
- 支持需求挂载
- Shell
是系统的用户界面,提供了用户和内核之间进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行,Shell传递给内核进行执行。
可以简单理解,Shell就是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,即Shell编程。
- FILE SYSTEMS
文件系统,文件系统是文件存放在磁盘等存储设备上的组织方法;
Linux支持多种文件系统,如EXT2、EXT3、FAT、FAT32、VFAT、NFS、SMB、ISO9660等。
- PROGRAMS/UTILITIES/TOOLS
应用程序,标准的Linux操作系统都会有一套应用程序,例如X-Window、Open Office等。
- USER APPLICATIONS
用户应用。
(2)Linux目录结构
进入CentOS系统后,查看你根目录的目录结构,如下:
[root@instance-6m0ylrf0 ~]cd/[root@instance-6m0ylrf0 /]tree -L1.
├── backup
├── bin -> usr/bin
├── boot
├── data
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── patch
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
├── var
└── www
如下图:
其中,主要目录及含义如下:
- /bin
核心的二进制文件目录,存放用户的基本命令,例如ls、cat等命令。
- /boot 启动引导目录,系统引导文件、内核,存放了程序加载所需要的文件。
- /dev
设备文件目录,存放了特殊的文件和备份文件,例如终端设备、USB设备文件。
- /etc
配置目录,存放程序的配置文件,包含了启动和停止单个程序的脚本。
- /home 普通用户的家目录,一个用户登进系统就会有一个对应的家目录。
- /lib
系统库目录,存放了共享文件和内核模块的文件。
- lib64
存放x86-64的辅助共享文件。
- /media
移动设备挂载点。
- /mnt
临时文件系统挂载点。
- /opt
第三方应用程序的安装位置。
- /proc
用于输出内核与进程信息相关的虚拟文件系统
- /root
root(超级管理员)用户目录,当前系统管理员主目录。
- /run 存放运行中进程的相关数据,例如进程的pid。
- /sbin
存放二进制文件,即管理类的基本命令,由超级管理员运行。
- /srv
系统运行的服务用到的数据。
- /sys
用于输出当前系统上硬件设备相关信息的虚拟文件系统
- /tmp
临时文件存放地。
- /usr
共享的只读数据,包含了二进制、库文件、文档、应用程序及源代码。
- /var
变化的数据文件,存放变量、函数等。
常用的目录包括/bin、/etc、/usr、/mnt、/root等。
总结
Linux是开发者必须掌握的重要知识体系之一,包括Linux的基本原理、操作和故障排除等,在部署项目和运维方面有着极为重要的作用。
0 留言