一、Linux各发行版及其联系与差别;
发行版为不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地话,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。Linux的发行版本可以大体分为两类:一类是商业公司维护的发行版本;一类是社区组织维护的发行版本,前者以著名的RedHat(RHEL)为代表,后者以Debian为代表。
仅有内核而没有应用软件的操作系统是无法使用的,所以许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution),一般谈论的Linux系统便是对针对这些发行版本的。目前估计各种发行版本有数十种,他们的发行版本号各有不同,使用的内核版本号也可能不一样。目前比较著名的三大主流发行版本分别是Debian、RedHat、SUSE。
1、Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上——稳定性。它同时也提供了最大和完整的软件仓库给用户。
Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年常见,分为三个版本(branch):stable、testing和unstable。
1)unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的BUG,适合桌面用户;
2)testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(如SMP);
3)stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定性和安全性都非常高;
Debian最具特色的是apt-get/dpkg包管理方式,其实RedHat的yum也是在模仿Debian的apt方式,但在二进制文件发行方式中,apt应该是最好的了。Debian的资料也很丰富,有很多支持的社区。
2、Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,大致分为以下几个版本。
1)Ubuntu就是标准版,也是主要发行版本,使用Gnome桌面环境;
2)Kubuntu采用KDE桌面环境,KDE环境以功能强大闻名的,功能多、配置华丽,但是资源占用率比较高;
3)Xubuntu采用Xfce桌面环境,Xfce属于比较轻量级的桌面环境,比标准版资源占用率低一些。具备基本完整可用的桌面环境;
4)Lubuntu采用Lxde桌面环境,是比Xfce更轻量的桌面环境。这个版本适合手持电脑、掌上电脑、学生本等,界面精简,只有基本的桌面环境,预装的影音功能却比其他版本更丰富一些。可见是面向简单办公,以娱乐为主的轻薄电脑;
5)Edubuntu是面向教育行业的版本。该版本预装了一些教育相关套件,和一些小游戏等。并且该版本采用了LTSP安装技术,特别适合电教化教室快速安装布置,并且资源占用率也很低,适合教室的教学环境使用;
Ubuntu系列特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
3、RedHat Linux系列是红帽公司研发的Linux发行版,包括Fedora、RHEL、CentOS和Oracle Linux多种版本。相比RHEL,Fedora打包了最著名的更多的软件包。其中一个原因是,多样化的社区参与Fedora的建设;它不只是一家公司。在这个过程中,CentOS用于活动,演示和实验,因为它是最终用户免费提供的,并具有比Fedora的一个更长的发布周期(通常每隔半年左右发布一个版本)。
1)RHEL(Red Hat Enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统。早起版本主要用于桌面环境,免费;
2)Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用,而另外发行的Red Hat Enterprise Linux取代Red Hat Linux在商业应用的领域。Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。Fedora大约每六个月发布新版本;
3)Centos:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的Centos都会获得十年的支持(通过安全更新的方式);
4、SUSE,SUSE Linux Enterprise Server(SLES),和openSUSE之间的关系类似与Fedora,RedHat Enterprise Linux和CentOS的关系。
———— CentOS、RedHat、Linux三者的关系
Linux实际只是一个操作系统的内核,不是一个完整性的操作系统。由Linux内核、大量的开源软件和GNU系统才构成了完整操作系统即GNU/Linux,只不过后来使用的人多了才把完整的操作系统叫做了Linux系统。
Linux是开源系统。RedHat公司是世界上大名鼎鼎的Linux系统开发公司,在其Linux发行版中大多数软件包,都是基于GPL协议发布的,也就是我们常说的开源软件,正因为是这样,RedHat公司必须遵守这个协议,将构成RedHat Enterprise Linux(以下称之为RHEL)的软件包的源码公开发布,只要是遵守GPL协议,任何人都可以在原有的软件构成的基础上再研发和发布。因此一个名为Community Enterprise Operating System的项目诞生了。他的缩写即是CentOS。CentOS社区将RedHat的网站上获得的所有源代码下载下来,进行重新编译。重新编译后,还修正了一些BUG,由于RHEL是商业产品,必须将所有RedHat的Logo和标识改成自己CentOS标识。CentOS就是RedHat的免费版本。使用CentOS,可以获得和RHEL相同的性能感受。
二、安装CentOS7.6;
1、虚拟化环境VMware Workstation;
VMware Workstation是一款功能强大的桌面虚拟计算机软件,是软件虚拟化,提供用户可再单一的桌面上同时运行不同的操作系统,和进行开发、测试、部署新的应用程序的最佳解决方案,也是主流的桌面虚拟化软件。可以从VMware官方网站下载评估版。下载地址:Download VMware Workstation Pro。下载之后安装好,这里不做过多介绍。
安装好图标如下:
打开界面:
2、获取发行版本;
前面已经准备好了虚拟软件,接下来就准备一个Linux发行版的系统。以CentOS7.6为例,可以再网上下载到。官方站点:CentOS Project;国内镜像站,如阿里镜像站:Index of /centos/;网易:Index of /centos/;搜狐:Index of /centos/。此处以搜狐镜像站为例。
1)打开网站:http://mirrors.sohu.com/centos/7.6.1810/isos/x86_64/ ;
2)选择Minimal版本;
3)下载好之后如下;
3、动手安装Linux系统;
1)打开VMware Workstation软件,然后点击“创建新的虚拟机” ;
默认选择“典型”即可,单击”下一步“;
典型安装和自定义安装区别:
典型安装:VMwear会将主流的配置应用在虚拟机的操作系统上,对于新手来很友好;
自定义安装:自定义安装可以针对性的把一些资源加强,把不需要的资源移除。避免资源的浪费。
2)安装客户机操作系统;
选择“稍后安装操作系统”,单击”下一步“;
3)选择客户机操作系统;
选择”客户机操作系统“为Linux,”版本“选择为CentOS 7 64位,单击”下一步“;
4)命名虚拟机;
自定义”虚拟机名称“,”位置“默认安装再C盘,可以点击”浏览“更换安装目录,单机”下一步“;
5)指定磁盘容量;
指定磁盘容量,因为是虚拟磁盘,可以超过实际物理硬盘的大小,建议10G以上,其它默认即可,单击”下一步“;
将虚拟机磁盘存储为单个文件和拆分成多个文件区别:
将虚拟机磁盘拆分成多个文件:可以更轻松地在计算机之间移动虚拟机,但可能会降低大容量磁盘的性能;
将虚拟机磁盘存储为单个文件:虽然提高了磁盘的读写性能,但是对于对于大文件的移动和存储是一个问题。
6)创建成功虚拟机;
单击“完成”;
7)编辑虚拟机;
界面如上所示,单击”编辑虚拟机设置“;
8)添加镜像;
单击”CD/DVD",选择“使用ISO镜像文件”,然后点击“浏览”选择镜像(找到前面下载的CentOS7.6Minimal目录);
9)添加网卡;
选择网络模式为“桥接模式”,单击“确定”;
三种网卡模式比较(转载于:https://www.jianshu.com/p/02c00f940bc6)
桥接模式:虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网相当于在局域网中添加
了一台新的、独立的计算机一样;
NAT模式:相当于虚拟系统把物理主机作为路由器访问互联网,虚拟机和主机在共享一个IP地址;
仅主机模式:虚拟系统和真实的网络是被隔离开的,相当于两台机器通过双绞线(网线)互连。
一般服务器上有四块网卡,可以在左下角选择“添加”,其余设置均可以“添加”,“移除”或修改;
10)开启虚拟机;
11)进入引导安装界面;
按"Ctr+Alt”可以实现Windows和虚拟机的鼠标切换,此处选择“Install CentOS7”,然后回车;
12)选择语言(默认即可);
点击“Continue”;
12)选择安装目的地;
点击“INSTALLATION DESTINATION”;
13)安装目的地;
点击“Done”。
为了简化安装,此处就不选择自定义分区了;
有兴趣自定义分区的参考链接:https://blog.csdn.net/whatday/article/details/104819819
14)设置时区;
点击“DATE&TIME”,选择“ShangHai”;
点击“Done”;
15)启用网络和主机名;
单击“NETWORK&HOSTNAME";
点击”Done”;
16)开始安装;
点击“Begin Installation”;
17)设置root密码和添加新用户;
点击“ROOT PASSWORD"设置root密码:
此处设置密码为root,点击”Done“;
点击”USER CREATION"创建用户;
添加一个自己名字的角色和密码,此处我添加的用户gaolu,密码gaolu,点击“Done”;
18)完成配置;
点击“Finish configuration”完成配置;
19)重启;
到这里表示已经安装好,点击”Reboot“;
4、连接登录;
Linux系统提供三种人机交互的接口:图形界面操作接口,命令行操作接口和应用程序开发接口。
图形界面的操作接口:Graphic User Interface,简称GUI。Linux系统一般提供KDE、Gnome等图形化的界面接口,目的是让普通用户直接使用鼠标,键盘等设备,可以方便的操作计算机,而不需要记忆很多艰涩难懂的命令;
命令行的操作接口:Command Line Interface,简称CLI即终端接口。Linux系统一般提供bash shell、cshell、kshell等终端接口,让运维工程师通过命令行的方式操作计算机。事实上Linux功能的强大也主要体现在终端接口。因为CLI方式完成工作,相对GUI方式,效率更高,所以运维工程师一般都是在CLI的方式下工作。
应用程序开发接口:Aplication Interface,检查API,从编程角度Linux系统就是一个很大的程序调用库,它提供大量的API函数,目的是方便程序员开发应用程序。做运维工程师不太关注此类接口。
由于我们选择的是最小化安装,此处就是CLI模式。
1)用自己前面创建的用户名和密码登陆;
2)输入用户名:gaolu,然后回车;
3)输入密码:gaolu(出于安全的考虑,输入界面默认隐藏了密码),然后回车即可,如上所示。表示成功了。
三、配置环境变量,实现执行history的时候可以看到执行命令的时间;
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。
执行history,默认显然如下;
这里主要配置环境变量,实现执行history的时候可以看到执行命令的时间。
1、临时设置;
HISTTIMEFORMAT="%F %T"
再次执行history命令;
退出终端,执行exit命令,然后重新连接,再执行histroy命令会发现无法保存。如果要将上面的指令永久保存在/etc/profile(全局变量,所有用户均生效) 或者~/.bash_profile(针对当前连接用户)中。
/etc/profile和~/.bash_profile区别:https://blog.csdn.net/u010048823/article/details/51871825
2、永久设置;
vim ~/.bash_profile #在最后一行添加 export HISTTIMEFORMAT="%F %T"
或者 echo 'export HISTTIMEFORMAT="%F %T"' >> ~/.bash_profile
再次退出重新登陆,执行history命令;
证明已经永久生效。
四、Linux哲学思想总结;
Unix诞生并发展了近五十年,依然占有高端服务器市场,其稳定性,性能优异,和其涉及的思想又重要的关系。Linux和Unix一脉相承,也继承了Unix优秀的设计思想,我们称之为“哲学思想”。其思想有下面五个:
1、一切皆文件;
一切皆文件是Unix/Linux的基本哲学之一。不仅对普通的文件(-),目录(d)、字符设备(c)、块设备(b)、套接字(s)等在Unix/Linux中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作接口,使之所有资源的访问都统一的表现为对文件的访问。
Linux文件类型(参考链接:https://www.jianshu.com/p/eda80af7a185)
Linux下查看文件类型的三种方法(参考链接:https://jingyan.baidu.com/article/86f4a73e9df77437d65269fa.html)
2、提供很多小型的单一用途的程序;
Linux中提供的程序和可执行文件一般功能单一,短小精干,所以程序一般不太复杂,从而保证了Linux可以高效运行。Linux中常见的工具也就几百个,掌握这些命令,基本可以玩转Linux了。
3、连接程序,共同完成复杂功能;
由于每个Linux命令功能简单,如果想要实现复杂的任务时,可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能Linux通过许多简单程序的组合方式等实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的。
4、避免令人困惑的用户界面;
对于使用Windows过程中故障和问题,比如莫名其妙地无法上网等,一般人选择的会是重启计算机,实在是不行的话就是重新安装系统了。因为Windows使用图形界面,相对比较复杂,最重要的是Windows不是开源系统,所以Windows的故障,一般的人是根本没有办法解决的。但是Linux就不一样了,Linux通常使用字符界面,相对比较单一,资源消耗小,最重要的是开源的,出现的问题都可以通过简洁的命令实现排错,修改系统的配置,一切都是简洁明了为基础。
5、配置数据存储在文本中;
Linux及各种应用的配置文件都存在文本配置文件中的,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于Windows那样保存在注册表中,并且Windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂。
五、Linux工作常用命令及使用格式;
参考链接:https://www.jianshu.com/p/af5c1e119d60