我们知道,组成计算机的硬件主要有“主机”和“输入/输出设备”。
硬件介绍
服务器也是一种计算机。服务器,也称伺服器,服务器是指在网络环境下运行相应的应用软件,为网络上用户提供信息资源和各种服务的一种高性能计算机,英文名叫做 Server。
由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。所以服务器无论是在网络连接性能,还是在稳定性等其他各个方面都比 PC 机要高的多。
服务器的构成包括处理器、硬盘、内存,系统等,和通用的计算机架构类似,但 是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 服务器的特性:
服务器的分类
开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。
开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。
对于准备编写一款开源软件的开发人员,也非常建议先了解一下当前最热门的开源许可协议,选择一个合适的开源许可协议来最大限度保护自己的软件权益。
现今存在的开源协议很多 , 可以在 (http://www.opensource.org/licenses/alphabetical )详细查看。我们最常用到的开源协议有 6 种,GPL,LGPL,BSD,Apache,Mozilla,MIT。这些都是 OSI 批准的协议,也是绝大多数公司会用到的协议。
Linux 系统一般有 4 个主要部分:内核、shell、文件系统和应用程序。“内核”、“shell”和“文件系统”一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
Linux 内核
Linux 内核是 linux 系统的核心组成,用于实现 CPU 和内存分配、进程调节、设备驱动等核心操作,以面向硬件为主(包围在硬件之上,控制系统程序与硬件之间打交道)
内核作用:内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核版本
Linux 内核版本有两种:稳定版和开发版,Linux 内核版本号由 3 组数字组成 (x.yy.zz):第一个组数字.第二组数字.第三组数字
Linux 内核的版本号命名是有一定规则的,版本号的格式通常为“主版本号.次版本号.修正号”。主版本号和次版本号标志着重要的功能变动,修正号表示较小的功能变更。
以 2.6.22 版本为例,2 代表主版本号,6 代表次版本号,22 代表修正号
shell
shell 是系统的用户界面,包裹在内核之上,作用是提供人机交互界面,用户与内核之间打交道的功能,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。
文件系统
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux 系统能支持多种目前流行的文件系统,如 EXT2、EXT3、EXT4、XFS、FAT、FAT32、VFAT 和 ISO9660 等。
文件系统类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件系统类型。在 Windows 系统中,硬盘分区通常都是采用 FAT32 或 NTFS 文件系统,而在 Linux 系统中,硬盘分区则大都是采用 EXT4、XFS 文件系统。
应用程序
构成 Linux 系统的应用程序大部分来自 GNU 项目或其他组织的开源软件,例如:
因此 Linux 操作系统最确切的含义为 "GNU/Linux 操作系统" GNU 的名称来源于 "GNU is Not UNIX" 的缩写(自由软件的通用许可协议)。其 目标是编写大量兼容于 UNIX 操作系统的可自由传播、使用的软件,来替换 UNIX 系统的各种商业软件。
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、
/sbin 应该和根目录放置在一个分区中。
这些命令对应的文件都是可执行的,普通用户可以使用大部分的命令。
执行命令存放地,普通用户无权限执行这个目录下的命令,如 fdisk、shutdown、
mount 等。与/bin 不同的是,这个目录是给系统管理员 root 使用的命令,普通用
户只能”查看”而不能设置和使用。这个目录和/usr/sbin 或/usr/local/sbin 目录是相
似的;我们记住就行了,凡是目录 sbin 中包含的都是 root 权限才能执行的。
grub 系统引导管理器都位于此目录,建议单独分区,分区大小 100M~500M 即可
件相当于访问某个硬件设备。
如/etc/fstab 存放系统分区信息
个自己的目录,一般该目录名是以用户的账号命名的。新增用户账号时,用户的家
目录都存放在此目录下,~表示当前用户的家目录,~test 表示用户 test 的家目录。
建议单独分区,并设置较大的磁盘空间,方便用户存放数据
能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用 root 帐号。
Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。程序在执行
过程中,需要调用一些额外的参数时需要动态连接库的协助。
U 盘)、CD/DVD 驱动器等等
也就是自定义软件包,我们自己编译的软件包,就可以安装在这个目录中;通过源
码包安装的软件,可以通过 ./configure --prefix=/opt/目录。安装到/opt 目录下的程
序,它所有的数据、库文件等等都是放在同个目录下面。直接删除程序不影响系统
设置。
等)存放在这里。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通
过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,
我们也可以直接修改里面的某些文件,
在/srv/www 内。
统内核相关的信息,如系统当前已经载入的模块信息等。这个目录实际不占磁盘容
量。
产生的临时文件存放到这里,此目录数据需要定期清除。重要数据不可放置在此目
录下,此目录空间不宜过小。
户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目
录。安装 Linux 软件包时默认安装到/usr/local 目录下。/usr/bin:系统用户使用的应
用程序。/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。/usr/src:
内核源代码默认的放置目录。/usr/local:这个目录一般是用来存放用户自编译安装
软件的存放目录。
统库文件等。
Linux 命令的执行必须依赖于 shell 命令解释器,shell 实际上是在 linux 操作系统
中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命
令并进行解释,将需要执行的操作传递给系统内核执行。
shell 在用户和内核之间 充当了“翻译官”的角色。当用户登录到 linux 系统时,会自动加载一个 shell 程序, 以便给用户提供可以输入命令的操作系统。
Bash 是 linux 操作系统中默认使用的 shell 程序,文件位于/bin/bash,根据 linux
命令与 shell 程序的关系,linux 命令一般分为以下两种类型。
内部命令
是指集成于 shell 解释器程序(如 bash)内部的一些特殊指令,也称为内建(built-in)指令,内部指令属于 shell 的一部分,所以没有单独对应的系统文件,只要 shell 解释器被运行,内部指令也就自动载入内存了,用户可以直接使用,内部指令无须从硬盘中读取文件,因此执行效率较高。
外部命令
是指 linux 操作系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应系统中的一个文件,是属于 shell 解释器程序之外的命令,所以称为外部命令。Linux操作系统必须知道外部命令对应的文件位置,才能够有shell加载并执行。
Linux 操作系统默认会将存放外部命令、程序的目录(如/bin、/usr/bin、/usr/local/bin 等)添加到用户的“搜索路径”中,当使用位于这些目录中的外部命令时,用户不需要指定具体的位置。
- # 查看命令所在的位置
- type 命令
- type cd cd is a shell builtin
- type cat cat is /usr/bin/cat
[root@cong11 ~]#
- [] 提示符的分隔符号,没有特殊含义。
- root 当前的登录用户,现在使用的是 root 用户登录。
- @ 分隔符号,没有特殊含义。
- cong11 当前系统的主机名。
- ~ 代表用户当前所在的目录。
- # 命令提示符,Linux 用这个符号标识登录的用户权限等级。#: 超级用户,$: 普通用户
命令的基本格式:命令字 [选项] [操作]
a.善于使用Tab键:自动补齐命令或路径。
b.善于使用命令历史:输入“history 命令"可以显示所有的命令记录,每条记录都有相应的编号。如果想执行标号为200的命令历史,可以这样输入:!200
c.查找命令存储位置:通过which 命令可以找到常用命令的存储位置。如输入which find,系统将返回find 命令的实际存储位置/bin/find.
a.man 手册:(man ls) 使用 man 手册更详细的查看命令使用帮助,”空格键“:向下翻页,按 “q”键退出,可以在man 中查找,如下操作:
b. info 信息:(info ls)info信息与man手册的内容类似,但info信息是模块化的,它通过连接显示不同的信息块,看起来有点类似网页。N键进入下一模块信息,P键进入上一信息块,U键返回上一层,空格键翻页,q键退出。
c. help 命令:(ls --help) man手册和info信息内容往往比较多,而仅仅需要的是简短的帮助信息,可以通过--help来获得简要信息。