Linux操作系统基础知识

一.Linux操作系统的起源
1.linux操作系统是一种类Unix操作系统,他的发展与Unix操作系统息息相关。
2.Unix操作系统的发展
(1)1969年,Unix系统的第一个版本
Ken Thompson在DECPDP-7计算机上实现,实现了一个文件系统、一个命令解释器(shell)和一些简单的文件工具,可以同时支持两个用户;
(2)1970s末,AT&T成立Unix系统实验室。
Ken Thompson和Dennis Ritchie使用C语言对整个操作系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上;
AT&T以分发许可证的方法,对Unix仅仅收取很少的费用,大学和研究机构就能获得Unix的源代码以进行研究,因而培养了懂得Unix使用和编程的学生,这使得Unix的普及更为广泛;
(3)70年代中期后,在Unix发展到了版本6之后,AT&T认识到了Unix的价值,成立了Unix系统实验室(Unix System Lab,USL)来继续发展Unix,AT&T也宣布对Unix产品的所有权。
(4)1970s末期,CSRG使用Unix对操作系统进行研究
同时期加州大学伯克利分校计算机系统研究小组(CSRG)使用Unix对操作系统进行研究,他们的很多研究反应在他们使用的Unix中;他们对Unix的改进相当多,增加了很多当时非常先进的特性,包括更好的内存管理,快速健壮的文件系统等,大部分原有的代码都被重新写过,以支持这些新特性;很多商业机构,都希望能得到CSRG改进的Unix系统;因此CSRG中的研究员把他们的Unix组成一个完整的Unix系统--BSD Unix(Berkeley Software Distribution),向外发型。
BSD Unix和Unix System V形成了当今Unix的两大主流
BSD Unix影响范围更大;各大Unix厂商为了避免法律上的纠纷,通常选择Unix System V作为商用的Unix的版本。
(5)1990s,Unix系统实验室被AT&T卖给了Novell公司
Novell公司比较友好,允许伯克利的CSRG自由发布BSD,但是其中来自于AT&T的代码必须完全删除;发布了4.4 BSD Lite版本(该系统是不完整的,尤其对于英特尔386体系的计算机系统);由于这个版本不存在法律问题,4.4BSD Lite成为了现代BSD系统的基础版本。
(6)Novell由于自身的经营问题,又将Unixware卖给SCO公司
由于BSD系统已经十分成熟,作为对操作系统进行研究的目标已经达到,伯克利计算机系统研究组(CSRG)在发布了4.4BSD-lite2之后就解散了。严格意义上的Unix System V和BSD Unix都不复存在了,存在的只是他们的各种后续版本。
(7)不同的Unix版本其标识方式不同
AT&T开发的内部Unix使用顺序号标识版本V1到V7
BSD使用主版本加次版本的方法标识,在原始版本的基础上还有派生版本,这些版本通常有自己的名字4.2BSD,4.3BSD,4.3BSD-Net/1,4.3BSD-Net/2
AT&T使用罗马数字标识Unix版本,用Release来表示次版本System V Release 4(简写为SVR4)
其他商业公司的Unix使用各自的版本标识,Sun的Solaris 2.6,IBM的AIX 4.0
(8)常用的Unix版本
NetBSD:在世界上最多的平台上运行的Unix操作系统;
FreeBSD:专注于实用领域;
OpenBSD:专注于安全性和可靠性;
Darwin:Apple的BSD操作系统;
FragonflyBSD:最新诞生的BSD分支。

3.Linux操作系统的诞生
(1)当能运行在X86平台上的Unix相当有限,能自由、免费的使用更是一种奢望。
要移植Unix到PC平台上便需要Unix的源代码,而此时受AT&T的许可权的限制,Unix代码还不能被自由获得。很多计算机爱好者为了实现一个可以自由使用的操作系统,不断进行着努力,自由软件基金会的GNU计划的目的就是打算创建一个自由的、与Unix类似的操作系统。
GNU开发了很多非常有效的工具,包括编译器和很多系统命令。然而GNU计划中的操作系统内核--HURD,却进展缓慢,从而无法构建一个完整的操作系统。
(2)Linux由芬兰赫尔辛基大学的计算机研究生Linus Torvalds创建,通过学习Minix(一个用于教学目的的简单Unix系统,由Tanenbaum教授编写),实现了一个类Unix操作系统。
(3)1991年10月,Linux第一个公开版0.02版发布,在GNU的GPL(General Public License)原则下发行。
(4)Linux的命名:首先作者选了一个很糟糕的名字:Freax,这个字是由free(自由)+freak(怪胎)+x构成的。
管理下载FTP服务器的Ari Lemmke不喜欢Freax这个名字,最后选择了Linus的笔名Linux为操作系统命名。
1994年3月,“Internet Play”的规则下,Linux 1.0版发布,这个内核和GNU的系统工具结合起来,成为当前非常流行的GNU/Linux系统。
(5)Linux的标志是可爱的企鹅,取自芬兰的吉祥物。

二.GNU与GPL/LGPL

GNU:GNU IS NOT UNIX,旨在消除对计算机软件拷贝、分发、修改的限制;
GPL:General Public License,通用公共许可证;
LGPL:Libraray General Public License,程序库通用公共许可证;

1.GPL:General Public License
(1)它要求软件以源代码的形式发布,并规定,任何用户都能够以源代码的形式将软件复制或发布给别的用户;
(2)它提醒每个用户,对于该软件不提供任何形式的担保;
(3)如果用户的软件使用了受GPL保护的任何软件的一部分,那么,该软件就继承了GPL软件,并因此而成为GPL软件,也就是说必须随应用程序一起发布源代码;

2.LGPL:Libraray General Public License
(1)LGPL是GPL的一个主要为类库使用设计的开源协议和;
(2)LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码,这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售;
(3)GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品;

三.Linux操作系统的特点

Linux是一个网络操作系统(Network Operating System,NOS)网络操作系统则在一般操作系统的功能上增加了网络功能,具体包括:
(1)实现网络中各计算机之间的通信和资源共享;
(2)提供多种网络服务软件;
(3)提供网络用户的应用程序接口;
(4)它是由以Linus Torvalds为首的一批Internet上的志愿者开发的,完全免费,并与著名的网络操作系统UNIX完全兼容,是一个具有很高性能价格比的网络操作系统;
(5)由于开放源代码与良好的模块化设计,从而使嵌入式应用成为可能;

四.Linux系统的基本结构

从里到外:Linux内核》运行期库(系统程序)》shell》实用工具程序

五.Linux版本号的命名规则

1.Linux的内核版本由3部分组成
主版本号、次版本号、末版本号(major.minor.patchlevel,例:2.5.7)
版本号的第二位数字,确定Linux内核版本的类型
开发版本:第二位数字是奇数
稳定版本:第二位数字是偶数

2.Linux内核版本发展图示
2.2.8 >修改bug> 2.2.9 >修改bug> 2.2.10 >修改bug>...
2.2.9 >拷贝> 2.3.0 >增加功能> 2.3.1 >增加功能>...
2.1.0 >增加功能>...>增加功能> 2.1.132 >升级> 2.2.0 >修改bug>...>修改bug> 2.2.0

六.著名Linux发行版

RedHat Linux:易用,易维护,目前已成为最流行的Linux发行版;
Novell/SuSE Linux:欧洲大陆的Linux;
Debian Linux:目前唯一有非商业组织维护的Linux发行版本,功能强大;
另外还有Ubuntu,CentOS等...

七.学习Linux的意义

掌握操作系统与高质量程序编写方法,掌握程序设计的技巧;
计算机网络构建、管理、维护;
常用服务器的构建、管理、维护;
嵌入式系统的开发应用;

八.Linux磁盘分区表示

/dev/hda5
dev:所有硬件设备文件的目录;
hd:硬件设备的代号,hd代表IDE设备,sd代表SCSI设备;
a:同类型设备的编号,a代表第一个硬盘,b代表第二个硬盘,以此类推;
5:分区号;
不同目录可以安装在不同的分区上。

九.Linux目录配置

Linux操作系统基础知识_第1张图片
/bin :存放用户一般使用程序,如ls,mv,rm等常用执行文件,有时内容与/usr/bin一样(使用链接文件)
/boot :在这个目录下存放的都是系统启动时要用到的程序。在使用grub或lilo引导linux的时候,会用到这里的一些信息
/lost+found:系统产生异常错误时,会将一些遗失的片段放在该目录下
/dev:dev 是设备(device)的英文缩写,这个目录对所有的用户都十分重要,因为在这个目录中包含了所有linux系统中使用的外部设备,但是这里并不是放的外部设备的驱动程序
/etc :etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下
/etc/rc.d:这个路径主要在记录一些开关机过程中的 scripts 档案, scripts 有点像是DOS 下的批次档(.bat檔名)
/etc/rc.d/init.d:所以服务预设的启动 scripts 都是放在这里的,例如要启动与关闭iptables 可以:
/etc/rc.d/init.d/iptables start
/etc/rc.d/init.d/iptables stop
/etc/X11:这是与 X windows 有关的设定文件所在的目录,如XF86Config-4
/sbin :这个目录是用来存放系统管理员的系统管理程序,如fdisk,mke2fs,fsck等
/home :如果建立一个用户,用户名是“jl”,那么在/home目录下就有一个对应的/home/jl路径,用来存放用户的主目录
/lib :lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的,几乎所有的应用程序都会用到这个目录下的共享库
/mnt :这个目录在一般情况下也是空的,可以临时将别的文件系统挂在这个目录下
/proc :可以在这个目录下获取系统信息,这些信息是在内存中,由系统自己产生的。
/root :如果用户是以超级用户的身份登录的,这个就是超级用户的主目录,设置成较高安全等级700
/tmp :用来存放不同程序执行时产生的临时文件。
/usr :这是linux系统中占用硬盘空间最大的目录,相当于windows下的program files目录
/usr/bin:放置可执行程序,这个目录的档案与 /bin 几乎是相同的
/usr/sbin:放置管理者使用程序,与 /sbin 类似的功能
/usr/include:一些套件的头文件,以源代码形式安装程序时通常会用到
/usr/lib:许多程序与子程序所需的函数库
/usr/local:软件升级后常用的安装目录,可执行文件通常放在
/usr/local/bin
/usr/share/doc:系统说明文档
/usr/share/man:man工具文档放在路径
/usr/src:编译系统时,源代码存放的位置
/var:系统中的可变文档的存放位置,例如日志文件,未读邮件等

九.Linux一些常用指令

1.Linux正确关机
(1)shutdown
-k只发送警告信息,
-r重启,
-h关机,
-c取消关机指令,
-f略过磁盘检查,
-F进行磁盘检查
例:$ shutdown -h now [20:25][+10]"警告信息"
(2)reboot指令
sync;reboot;“嘀”一声后立刻关闭电源键可以关机;
(3)halt
(4)poweroff

2.文件与目录的权限
chown:改变文件拥有者
chgrp:改变文件所属群组
chmod:改变文件属性
umask:改变预设的建立文件或目录属性
chattr:改变文件的特殊属性
lsattr:显示文件的特殊属性
用户建立文件时的默认属性为666(可读,可写不能执行)
用户建立目录的默认属性为777(可读,可执行)
chattr 设置文件或目录的特殊属性
-chattr [+-=] [ASacdistu] [文件或目录名]
-+-=:增加、去除、设置属性
-A:文件或目录的存取时间不能被修改
-S:将数据同步写入到磁盘中,避免数据丢失
-a:文件只能增加数据,不能被删除,限root使用
-c:自动对文件使用压缩存储功能
-d:使文件具有dump功能
-i:使文件不能被删除、更名、设定硬链接,写入数据
-j:当使用ext3时,使文件在写入时先记录在日志中
-s:文件会被完全移出硬盘
-u:与s相反,可以取消删除操作
lsattr [-aR] 显示文件的特殊属性
-a:将隐藏文件的属性显示
-R:连同子目录的数据一同显示

3.搜索文件或目录
which:查看可执行文件位置
whereis:查看文件的位置
locate:配合数据库查看文件位置
find:实际搜寻硬盘查询文件名称

你可能感兴趣的:(Linux)