文章目录
一、Linux 背景介绍
💦 发展史
在本专栏将学习 Linux 系统编程,你可能要问 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 Release4.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 Release4。为了与 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 系统相形用户界面(一个叫 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 年公布的
💦 开源
▶ 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 也成为了开源软件的代名词
❗ 开源 VS 闭源 ❕
开源一定是更稳定更高效的,因为全世界的人都能看到源码,就像写博客一样,假如你的博客里写的有 bug,那么就会有人跟你探讨交流,这样我们的博客才能越写越好,开源也是一样的 —— 源码之前,了无秘密
❗ 为什么要学习 Linux ❕
比较直观的是:对于操作系统,在平常生活中大多都是 Windows 见的多,很少见到有谁电脑里装的是 Linux。其实在操作系统方面,客户端是 Windows 处于垄断地位,而企业端是 Linux 处于垄断地位 (这也是为什么我们要学习 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️⃣ Debian
Debian 运行起来极其稳定,这使得它非常适合用于服务器。 debian 这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户
2️⃣ Ubuntu
Ubuntu 是 Debian 的一款衍生版,也是当今最受欢迎的免费操作系统。 Ubuntu 侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行 Ubuntu Linux 的移动设备上很常见。Ubuntu 是新手用户肯定爱不释手的一款操作系统
3️⃣ 红帽企业级 Linux
红帽企业级 Linux 这是第一款面向商业市场的 Linux 发行版。它有服务器版本,支持众多处理器架构,包括 x86 和 x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。
4️⃣ CentOS
CentOS 是一款企业级 Linux 发行版,它使用红帽企业级 Linux 中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及 Binary 程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级 Linux;对他们来说, CentOS 值得一试。此外,CentOS 的外观和行为似乎与母发行版红帽企业级 Linux 如出一辙。 CentOS 使用 YUM 来管理软件包
5️⃣ Fedora
小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora 就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora 是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包
6️⃣ Kali Linux
Kali Linux 是 Debian 的一款衍生版。Kali 旨在用于渗透测试。Kali 的前身是 Backtrack。用于 Debian 的所有 Binary 软件包都可以安装到 Kali Linux 上,而 Kali 的魅力或威力就来自于此。此外,支持 Debian 的用户论坛为 Kali 加分不少。Kali 随带许多的渗透测试工具,无论是 Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali 使用 APT 来管理软件包。毫无疑问,Kali Linux 是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统
二、搭建 Linux 环境
💦 Linux 环境的搭建方式
这里有三种方式:
1️⃣ 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐
2️⃣ 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件 (如 VMWare 之类的) 存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾,所以也不推荐
3️⃣ 使用云服务器, 可以直接在腾讯云,阿里云或华为云 等服务器厂商处直接购买一个云服务器,比较推荐
💨 可能有些同学手头本就不富足,其实腾讯云阿里云等为在校学生提供了优惠, 只要通过学生认证, 最低可以 10 块钱一个月,还是挺划算的,当然也可以和朋友一起开几个帐号一起使用
❗ 为什么推荐云服务器 ❕
其实不仅仅是省心,同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用
💦 购买云服务器
这里以腾讯云为例, 其他的服务器厂商也是类似
1、进入官方网站 腾讯云,或者直接搜索 ”腾讯云校园计划“
2、登陆网站 (可以使用 扣扣 或者 微信 登陆),这里就可以进行学生认证
3、右侧的操作系统选择 CentOS 7.6 64 位. 购买时长根据需要选择 (建议1年) , 点击立即购买即可. 这个步骤需要实名认证, 否则会提示
4、购买后我们就能看到公网的 IP 地址了,再重置下 root 密码,注意密码建议设置的稍微复杂一些,
三、使用 XShell 远程登陆到 Linux
💦 关于 Linux 桌面
很多同学的 Linux 启动就进入图形化的桌面,其实这个东西大家以后就可以忘记了,因为以后的工作中没有机会使用图形界面
💦 下载安装 XShell
XShell 是一个远程终端软件,下载官网
1、点击 “家庭/学校免费”
2、填写名字、邮箱并勾选只需Xshell
3、这里点击邮箱里的下载地址,然后点击跳转页面中的 begin downloading 就开始下载了
4、安装就不用说了,一路 next,最后安装好的界面如下
💦 查看 Linux 主机 ip
参考上面的 “购买云服务器” 部分
💦 使用 XShell 登陆主机
这里有三种方式:
1️⃣ 对话框实现
1、新建 -> 名称 -> 主机, 其它默认,然后确定即可
2、连接
2️⃣ 命令行实现
3️⃣ CMD 实现,但不推荐
💦 XShell 下的复制粘贴
注意平时的康 C 康 V 是不行的。有些情况 insert 需要配合 fn 来按
▶ 复制: ctrl + insert
▶ 粘贴: shift + insert
💦 服务器如何共享
❓ 假如你是和同学一起买的,那么如何独立出一个帐号呢 ❔
1、首先登录自己的 root 帐号,可以输入 whoami 证明自己
2、新建用户,使用 adduser 命令新建 HelloLinux 用户,并 passwd 设置密码 (要注意 Linux 下输入密码是不显示的),ls /home 可以查看所有用户
3、删除用户,使用 userdel -r 命令