Linux
认识Linux
什么是操作系统
现实生活中的操作系统
win7
Mac
Android
iOS
操作系统的发展史
Unix
1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。
为了解决数量不够用的问题
- 1965年左后由贝尔实验室、麻省理工学院 以及 通用电气共同发起了Multics项目,想让大型主机支持300台终端。
- 1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究。
- 1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间 编写出了 Unix操作系统的原型。
- 1970年,美国贝尔实验室的 Ken Thompson,以 BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。
- 因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言。
肯·汤普逊(左)和丹尼斯·里奇(右)
- 1972年,美国贝尔实验室的 Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
- 1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统。
Minix
- 因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。
- Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
Linux
- 因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范);
- 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;
操作系统的发展
Minix没有火起来的原因
Minix的创始人说,MINIX 3没有统治世界是源于他在1992年犯下的一个错误,当时他认为BSD必然会一统天下,因为它是一个更稳定和更成熟的系统,其它操作系统难以与之竞争。
- 因此他的MINIX的重心集中在教育上。
- 四名BSD开发者已经成立了一家公司销售BSD系统,他们甚至还有一个有趣的电话号码1-800-ITS-UNIX。然而他们正因为这个电话号码而惹火上身。
- 美国电话电报公司因电话号码而提起诉讼。官司打了三年才解决。在此期间,BSD陷于停滞,而Linux则借此一飞冲天。
- 他的错误在于没有意识官司竟然持续了如此长的时间,以及BSD会因此受到削弱。如果美国电话电报公司没有起诉,Linux永远不会流行起来,BSD将统治世界。
Linux版本说明及应用领域
Linux内核及发行版介绍
Linux内核版本
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
- 开发版:由于要试验各种解决方案,所以变化很快。
- 内核源码网址:http://www.kernel.org 所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。
Linux发行版本
Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
Fedora
Redhat
Ubuntu
应用领域
个人桌面领域的应用
- 此领域是传统linux应用最薄弱的环节,传统linux由于界面简单、操作复杂、应用软件少的缺点,一直被windows所压制,但近些年来随着ubuntu、fedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux在个人桌面领域的占有率在逐渐的提高
- 典型代表:ubuntu、fedora、suse linux
- 在Ubuntu中玩QQ
服务器领域
查看要当前主流网站使用的服务器的网上【踩点器】
linux在服务器领域的应用是其重要分支
linux免费、稳定、高效等特点在这里得到了很好的体现,但早期因为维护、运行等原因同样受到了很大的限制,但近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛
典型代表:
- Red Hat公司的AS系列
- 完全开源的debian系列
- suse EnterPrise 11系列等
嵌入式领域
- 近些年来linux在嵌入式领域的应用得到了飞速的提高。
- linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
- 主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、等都是其应用领域,得到了摩托罗拉、三星、NEC、Google等公司的大力推广。
VMware的安装
VMware前言
因为我们一般都是用的windows系统,但是想用到linux时就必须先安装一个虚拟机(在这安装的是VMWare WorkStation Pro),然后再到虚拟机里面安装一个linux操作系统镜像,这样就可以使用linux操作系统了。
VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。VMware Workstation允许操作系统(OS)和应用程序(Application)在一台虚拟机内部运行。虚拟机是独立运行主机操作系统的离散环境。在 VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机,这一切不会影响你的主机操作和任何操作系统或者其它正在运行的应用程序。
下载
链接:https://pan.baidu.com/s/1k1peOxPqvRDM6Q8YXCwauw
提取码:o6io
下载完成之后
安装
1.双击安装
2.安装首页面点击下一步
3.接收协议下一步
4.选择安装路径【路径自行选择】下一步
5.去掉检查 下一步
6.选择创建桌面图标
7.安装
8.安装执行中
9.安装完成
10.点击许可证输入密钥 5A02H-AU243-TZJ49-GTC7K-3C61N
11.安装完成之后,我们可以在桌面看到该软件的图标
12.双击它,就可以进入该软件主界面,则代表该软件安装完成
在VMware上创建虚拟机
前言
因为WM只是一个软件。这个软件可以从计算机中虚拟多个操作系统出来。所以如果想要使用,那么必须要创建虚拟机,再到虚拟机上安装操作系统之后才能使用,因为我们是学习,所以只创建虚拟机,下一节内容里面来详细说明在VM的虚拟机里面安装操作系统的步骤。
接上一章节,我们安装完了VM之后打开主页面是这样的
虚拟机创建【不安装系统哦】
接下来我们创建一个虚拟机,注意每个步骤的说明
点击下面的创建虚拟机
虚拟机向导选择典型安装
操作系统选择
- 注意
- 在这里我们选择稍后安装操作系统
- 这里相当于只是创建一个没有操作系统的虚拟电脑
- 当然,可以在创建虚拟电脑的同时安装操作系统
- 如果本机电脑有光驱,选择第一个什么光盘安装【现在很多电脑没有光区了】
- 没有光驱可以选择电脑里面某一个下载好的操作系统的安装包
- 因为我们这里只是讲VM的使用,所以我们不安装操作系统
选择虚拟机的操作系统
因为我们要安装的是CentOS.它属于Linux里面的一个社区版本【不要钱的】
给虚拟机命名和选择虚拟机的存盘地址
选择虚拟机磁盘大小
注意
- 这里选择大小可以根据自己的需求来,如虚拟机到时候要安装tomcat和mysql等软件。至少要给这个软件留足空间哦
- 至于是否拆分文件,默认到行了
下一步
完成
- 左边的是虚拟机选项
- 右边的是未启动的虚拟机
虚拟机设置
从以上我们可以看到,可以设置
内存
至少628M
处理器
根据自己电脑的特点来【电脑是双核的可以选择2,学习的时候选择1就可以了】
硬盘
默认就行了
CD/DVD
不用设置
网络适配器
- 设置状态:因为现在还没有安装操作系统,安装操作系统之后注意把已连接勾上
- 网络连接形式
- 桥接模式:默认使用vmnet0的虚拟网卡使用当有电脑路由器的分配的IP地址,也就是使用这种模式之后虚拟器就相当于当前局域网的一个真正的电脑了
- NAT模式:使用vmnet8的虚拟网卡,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配
- 仅主机模式:静态ip设置(桥接类似,网段,掩码,网关什么的都做响应的修改)。主机模式下:虚拟机与主机单独组网,好处在于安全,其他网络是无法访问的。
其它的可以不用设置了
VM提供的其它好用的功能
编辑--->虚拟网络编辑器
vmnet0桥接模式使用
注意点
如果电脑既使用有网线,也使用了无线网络,也会桥接的时候注意选择一下网卡
虚拟机快照功能
作用
可以保存当前虚拟机的某个状态,如果出现问题,可以恢复到当前的快照只来也就是相当于备份系统的某个点,后面可以还原到这个点来。
在VMware安装CentOS
CentOS下载地址
https://www.centos.org/download/
- DVD ISO:此镜像类型为普通光盘安装版,可离线安装到计算机硬盘上,包含大量的常用软件,一般选择这种镜像类型即可。
- Everything ISO:这个镜像涵盖了上种镜像的内容,并对其进行补充,集成了所有软件。
- Minimal ISO:这个版本为精简版的镜像,可以安装一个基本的CentOS系统,包含了可启动系统基本所需的最小安装包。
找到old-version
点击进入,查看相关的版本号
选择需要的版本下载
- bin-DVD.iso: 本地离线镜像文件,可直接直接安装到硬盘上,一般下载这个即可;
- LiveCD/DVD.iso: 是一个光盘Centos系统,可通过
- 光盘在电脑上启动系统,也可以安装到计算机,有些内容还需要再次下载;
- minimal.iso: 精简版的镜像,可安装最基本的Centos系统,一般用在服务器上。
- netinstall.iso: 在线安装版本,启动后需在线边下载边安装。
- 现在最高版本是7,注意7和6的安装界面的差别有点大哦
- 这个文章以6为原型来说明,如果要安装7,大家可以去百度查查相关的帖子
CentOS镜像下载
之后点击镜像文件后你以为胜利在望,其实GG,这时会进入一个下载资源站点选择页面,如下
选择一个版本进入
再来下载,这样就不会有问题了 (一般长的好看的人都会成功的)
安装
- 打开VM,打开选择中刚才创建的虚拟主机-->编辑虚拟机
- 启动虚拟机
跳过 skip
下一步选择语言
下一步,选择键盘
下一步,选择存储器【默认就行】
下一步,格式化磁盘
- 因为新装系统,所有要格式化,大小就是创建虚拟机时分配的20G的内存大小
下一步,设置计算机名【推荐不更改】
centos7上配置自动连接
下一步,选择时区
设置密码
因为学习,所以设置的密码简单
选择安装类型
把修改写入磁盘
选择最小的桌面版本
安装中
安装完成
重新引导--->进入系统--->加载中哦
欢迎页面
前进---同意许可
创建用户
设置时间
登陆
当然,也可以使用管理员登陆 root +密码
接下来就可以进入系统主页面了,这是一个最简单的+桌面的系统
但是在开发中,我们安装的一般都是没有桌面的系统,也就是在安装时选择系统的时候选择以下的设置
安装完成之后
安装XFTP和XShell
XFTP的安装
作用:可以使用XFTP和linux虚拟机互传文件
下载
http://www.pc6.com/softview/SoftView_93092.html
安装
双击Xftp6_vm.exe一路一下步到最后完成
使用
使用之前确保自己的虚拟机启动了
打开--新建会话
接收并保存
可以看到已经连接成功。这样就可以向linux里面传文件和从linux里面下载文件
安装XShell
作用:现在如果要操作linux我们需要切换到linux系统里面,每次不是很文件,在开发中,我们可以使用远程登陆工具连接linux所以就可以使用XShell
在XFTP里面点击上面图标,如果出现如上面所示,说明你的电脑里面没有安装XShell.可以先安装XShell
下载
自己百度搜索
安装
一步向西,下一步哦,别怕!
尽情使用吧
文件和目录
Windows和Linux文件系统区别
在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符
每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示
在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录)
Linux系统目录结构
linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面
Linux 目录说明
/bin
: (binaries)存放系统命令的目录,所有用户都可以执行。
/sbin
: (super user binaries) 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令,有些命令可以允许普通用户查看。(root)
/usr/bin:存放系统命令的目录,所有用户可以执行。这些命令和系统启动无关,单用户模式下不能执行
/usr/sbin:存放根文件系统不必要的系统管理命令,超级用户可执行
/root
: 存放root用户的相关文件,root用户的家目录。宿主目录 超级用户
/home:用户缺省宿主目录eg:/home/spark/home/pengpeng
/tmp:(temporary)存放临时文件
/etc
:(etcetera)系统配置文件
/usr
:(unix software resource)系统软件共享资源目录,存放所有命令、库、手册页等
/proc:虚拟文件系统,数据保存在内存中,存放当前进程信息
/boot:系统启动目录
/dev:(devices)存放设备文件
/sys :虚拟文件系统,数据保存在内存中,主要保存于内存相关信息
/lib:存放系统程序运行所需的共享库
/lost+found:存放一些系统出错的检查结果。
/var:(variable)动态数据保存位置,包含经常发生变动的文件,如邮件、日志文件、计划任务等
/mnt:(mount)挂载目录。临时文件系统的安装点,默认挂载光驱和软驱的目录
/media:挂载目录。 挂载媒体设备,如软盘和光盘
/misc:挂载目录。 挂载NFS服务
/opt
: 第三方安装的软件保存位置。 习惯放在/usr/local/目录下
/srv : 服务数据目录
用户目录
位于/home/user,称之为用户工作目录或家目录,表示方式
- /home/user
- ~
相对路径和绝对路径
绝对路径
从/目录开始描述的路径为绝对路径,如
- cd /home
- ls /usr
相对路径
从当前位置开始描述的路径为相对路径,如
- cd ../../
- ls abc/def
- .和..
每个目录下都有.和..
- . 表示当前目录
- .. 表示上一级目录,即父目录
- 根目录下的.和..都表示当前目录
文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。
Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
访问用户
通过设定权限可以从以下三种访问方式限制访问权限
- 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
- 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
- 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类
这有点类似于 QQ 空间的访问权限
- 这个 QQ 空间是属于我的,我相当于管理者(也就是“所有者”),我想怎么访问就怎么访问。
- 同时,我可以设置允许 QQ 好友访问,而这些 QQ 好友则类似于“用户组”。
- 当然,我可以允许所有人访问,这里的所有人则类似于“其他用户”。
访问权限
用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限
读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
。写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限
。可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限
。- 注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。
示例说明
第1个字母代表文件的类型:
d
代表文件夹、-
代表普通文件、c
代表硬件字符设备、b
代表硬件块设备、s
表示管道文件、l
代表软链接文件。 后 9 个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。
每一个用户都有它自身的读、写和执行权限。
第一组权限控制访问自己的文件权限,即所有者权限
。第二组权限控制用户组访问其中一个用户的文件的权限
。第三组权限控制其他所有用户访问一个用户的文件的权限
。- 这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。
- R 4
- W 2
- X 1