Linux环境搭配
文章目录
1.Linux背景介绍
1.1 系统发展史
我们学习Linux系统编程,那Linux从哪里来?它是怎么发展的?要说 Linux,还得从UNIX说起
UNIX发展史:
- 1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念
- 1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础 上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值 的、高效的、多用户和多任务的操作系统
- UNIX从满足个人的设计需求开始,逐步成长为由许多不同开发商所支持的标准软件产品
- 第一个UNIX版本是免费给许多知名大学的计算机系使用的
- 1972年,贝尔实验室开始发放商业版本,并且给不同的用户授权使用这个系统,使用者之一是加州大学伯克莱 分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准
- 1975年伯克莱由下属部门BSD发行了自己的UNIX版本。UNIX的BSD版本成为AT&T贝尔实验室版本的主要竞争 者,而其它的独立开发出的UNIX版本也开始萌生
- 1980年微软公司开发了叫做Xenix的UNIX PC版本。AT&T发行了第一个商业版本。名叫System Ⅲ,后来被成为 对商用软件产品良好支持的System Ⅴ所替代
- 同时UNIX的BSD版本不断发展,在70年代末期,BSD UNIX成为了国防部的高科技研究机构科研项目的基础。 其结果,伯克莱发行了一个叫做BSD Release 4.2的有效版本
- 它包括了高级的文件管理器和基于TCP/IP网络协议的网络特点。现在TCP/IP被Internet所使用。BSD Release 4.2被许多厂商所采用,例如SUN Microsystem
- UNIX不同版本的出现导致了UNIX标准的需要,软件开发商不知道他们的程序运行在哪些版本上比较合适
- 到80年代中期,两个竞争的标准出现了,一个是基于AT&T的UNIX版本,另一个是BSD版本。在今天的书店里你 能发现分别适用于这两个版本的不同的UNIX的书,一些是System V,另一些集中在BSD UNIX
- AT&T建立了一个叫UNIX系统实验室的新组织,它的作用就是综合UNIX的不同版本,集中开发一个标准系统
- 1991年,UNIX综合实验室综合了System V Release3,SUN OS和Xenix的所有特点,发行了System V Release 4。为了与System V Release 4 竞争,一些其它公司,如IBM和惠普Open Software Foundation(OSF)去产 生自己的UNIX标准版本,继而出现了两个标准商业版本OSF版本和System Release 4
- 1993年,AT&T把它的UNIX转卖给Novell公司。UNIX系统实验室成为了Novell的UNIX系统小组的一部分。 Novell发行了基于System V Release 4的自己的UNIX版本UNIXWare,它可以和Novell公司的Netware系统相联。SUN公司已经把System V Release 4 融进了它的SUN OS,发行了Solaris。两个相互竞争的UNIX使用的图形用户界面(一个叫Motif,另一个叫Openlook),已经合并为一个新的工作平台标准,叫做通用平台环境 (CDE)
Linux发展历史:
- 1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一 个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也 许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发 布,原因是0.01版本不实用。Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本 的的源代码
- Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU的 C编译程序(gcc)以及为数不多的其它语言。Torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux
- Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的
1.2 开源与官方网址
- Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发 布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内 核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它 包括GUI组件和许多其他实用工具
- GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软 件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于 GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码
- Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可 以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成 在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词
Linux官方地址:Kernel官方地址
1.3 企业Linux应用现状
-
Linux在服务器领域的发展
随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占 据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、 金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力 度,Linux服务器产品一定能够冲击更大的服务器市场。 据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛 起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量
-
Linux在桌面领域的发展
近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗 Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得 到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积 累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面
-
Linux在移动嵌入式领域的发展
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目 前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的 Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系 统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。 此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系 统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在 逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量
-
Linux在云计算/大数据领域的发展
互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源 软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云 计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统
1.4 Linux发行版本
-
Debian
Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户
-
Ubuntu
Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应 用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不 释手的一款操作系统
-
红帽企业级Linux
这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包 括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管 理员进行培训和认证
-
CentOS
CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版 完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红 帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业 级Linux如出一辙。 CentOS使用YUM来管理软件包
-
Fedora
小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公 司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好 的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包
-
Kali Linux
Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有 Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论 坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马 可以使用。Kali使用APT来管理软件包毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统
-
还有很多Linux版本…
2.Linux环境搭配
2.1 Linux环境搭配方式
1.直接安装在物理机上(即直接安装Linux系统给电脑)—不推荐,因为Linux桌面使用起来非常不友好
2.使用虚拟机安装,将Linux搭建在虚拟机上—当前虚拟机软件存在BUG,会导致环境上出现各种莫名其妙的问题,比较折腾人
3.使用云服务器,直接去购买—比较推荐,学生有优惠很便宜,系统出问题重新配置方便且快捷
使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问 到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用
2.2 服务器购买
大厂出的服务器都差不多,买来学习1G1核都够,建议1G2核,买的时候调有活动的买
服务器购买地址:
2.3 云服务器配置
第一:购买云服务器
第二:选择镜像CentOS7.6
选择CentOS7.6是因为它适合初学者学习且企业很多都在用CentOS7开发
第三:进入云服务器控制台管理
进入后先重置root密码,root 密码建议设置的稍微复杂一 些, 否则容易被黑客入侵
第四:在这里面主要查看三个东西,为了方便后续使用Xshell远程登陆
1. 服务器的外网 IP
2. 服务器的管理员账户 (固定为 root)
3. 管理员账户密码(在网站上设置的)
3.Linux远程登陆
3.1 Linux桌面
关于Linux桌面啊,很多初学者都是使用Ubuntu学习的,Ubuntu自带GUI(图形用户界面),但是我们实际开发是不会使用图形用户界面的,我们大部分时间都对着黑框框在哪里敲代码,主要原因是当你熟练Linux后,GUI反而降低了开发的安全性和效率
3.2 远程登陆工具
Xshell是一个远程终端软件,这个软件很好用,方便我们远程登陆访问服务器,只要有网就行
Xshell下载地址:Xshell免费版本
家庭和校园使用是免费的(个人用户)填了邮箱就可以了,官方会往你的邮箱里面发一个下载软件的链接,下载安装的时候选择 “home/school” 则为免费版本
3.3 Xshell登陆服务器(单用户)
方法一:打开Xshell,它会弹出会话,点击新建会话
输入公网IP,端口号22不要改,系统会让你输入用户名和密码,使用用户名root和你刚刚设置的root密码就可以登录了
方法二:在tx云控制台这里直接点登录,会使用tx云的默认账户lighthouse连接你的云主机
这个方法只适合基础使用,下面讲解两个不同的方法:
1.使用SSH密钥
因为Xshell比较聪明,会帮我们记住账户密码,自动输入。但是在很多软件(比如putty)每次开启连接都需要输入账户和密码。这时候我们可以使用更加安全的加密SSH方式连接我们的终端
首先:在Xshell的选项卡中,新建一个密匙,这里会让你输入密匙名称和密码,请记住这里的密码!如果忘记了就只能重新生成一个密匙了
其次:来到tx云控制台,密钥,点击创建密钥,选择已有公钥,把刚刚复制的内容丢进去并起个名字。注意这里的地域必须和云服务选择的相同!
最后:新建一个会话,这里同样填公网ip,然后需要设置用户身份验证
,这里很重要!Xshell提示“密钥没有和云服务器绑定”都是因为这里没有设置!选择你创建的本地密匙,输入创建密匙时的密码!不出意外,设置完毕后,你就可以免登录连接到云服务器的root用户了
这个方案只适用于单用户使用,如果多个用户想用这个方法连接同一个云服务器,就会出现大家一起用一个文件路径的问题
3.4 Xshell登陆服务器(多用户)
参考:腾讯云如何实现多用户登陆服务器 (tencent.com)
第一:创建新用户
1.先用root连接终端
sudo useradd -g root 用户名—这个命令的含义是在root分组下(这个是默认的分组)建立一个新的用户,用户名自定义
2.然后使用这个命令设置刚刚创建的那个用户的密码
sudo passwd 用户名
3.随后,使用下面命令测试进入另外一个用户
su - 用户名
注:因为我们是从具有最高权限的root用户进入子用户,所以是不需要输入密码的,但是如果你从子用户往root跑,就需要输入root用户的密码!
你可以在root用户和子用户终端下用mkdir 文件夹名字创建两个不同的文件夹,ls查看当前路径下的文件夹,你会发现,root和另外一个用户直接是相互看不到对方的文件夹的,这就是我们要达到的隔离效果!相当于互不干扰!从子用户A跑到子用户B中,需要输入子用户B的密码。这需要root用户在里面创建新的用户,所以服主是知道每个用户的密码的。这就看你们的信任问题了。如果真的信不过,就让每个人进root账户,自己设置自己账户的密码,那就没啥问题了
第二:修改密码
实际上,在自己的用户名下,是可以更改当前用户名的密码的,所以可以让服主创建好用户后,自己登陆进去,把自己的密码改掉
修改密码代码:passwd
除了上面的方法外,还有一种方法可以实现多用户管理!
腾讯云支持多用户管理,你可以在用户组这里邀请其他人,他们就能在自己的控制台里面看到你的云服务器了
多用户方法登陆服务器不能使用SSH密钥登陆,只能使用账号密码登陆
处理办法文档:如何远程连接服务器