1、硬件
我们知道,组成计算机的硬件主要有“主机”和“输入/输出设备”。
- 主机包括机箱、电源、主板、CPU(Central Processing Unit,中央处理器)、内存、显卡、声卡、网卡、 硬盘、光驱等。
- 输入/输出设备包括显示器、键盘、鼠标、音箱、摄像头、打印机和扫描仪等。
硬件介绍
- 电源保护:UPS(不间断电源,一般能维持 30 分钟-1 小时左右)、双电源(AB 双路)。
- CPU:相当于人的大脑,常用品牌 Intel(XEON 志强,专门给服务器用的)、AMD。 服务器里面的 CPU 的个数按路算(1 个 CPU 叫 1 路,2 个叫 2 路),注:服务器是 几 U 与几路 CPU 没有关系。CPU 与核心的关系:(CPU 比如工厂,核心比如工人, 而一个核心等于 2 个线程),早期的 CPU 只有一个核心,后来的新技术可以将多个核心封装在一个 CPU 芯片中,性能得到数倍的提升。
- 内存:是 CPU 和硬盘之间的缓冲设备,临时存储器,断电数据丢失
- 硬盘:永久存放数据的设备。也有缓存大小,如:7200 转/64M (64M 指缓存区大小)
- 阵列卡(RAID 卡)的好处:1.把所有硬盘的容量加在一起,2.数据更安全,3. 性能更好。是服务器的标配,连接到服务器的硬盘必须经过 RAID 卡。一般好点的RAID 卡配有电池,可以单独供电。
- 远程管理卡(iDRAC):利用它可以完成远程的服务器管理工作如:服务器开关 机、配置 BIOS、配置 Raid 卡,安装操作系统等操作。有独立,还有集成的。
- 程序、进程:程序,放在硬盘中的(静态执行的代码);进程,运行起来的软件(动态执行的代码)
2、服务器
服务器也是一种计算机。服务器,也称伺服器,服务器是指在网络环境下运行相应的应用软件,为网络上用户提供信息资源和各种服务的一种高性能计算机,英文名叫做 Server。
由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。所以服务器无论是在网络连接性能,还是在稳定性等其他各个方面都比 PC 机要高的多。
服务器的构成包括处理器、硬盘、内存,系统等,和通用的计算机架构类似,但 是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 服务器的特性:
- 高速度的 CPU 运算能力
- 长时间的可靠运行
- 强大的 I/O 外部数据吞吐能力
- 服务器通常具有更高的性能,效率,高可靠,高可用性,以及更好的扩展性
服务器的分类
- 按外形分类
-
- 塔式服务器
- 机架式服务器
- 刀片式服务器
3、开源协议
开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。
开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。
对于准备编写一款开源软件的开发人员,也非常建议先了解一下当前最热门的开源许可协议,选择一个合适的开源许可协议来最大限度保护自己的软件权益。
现今存在的开源协议很多 , 可以在 (http://www.opensource.org/licenses/alphabetical )详细查看。我们最常用到的开源协议有 6 种,GPL,LGPL,BSD,Apache,Mozilla,MIT。这些都是 OSI 批准的协议,也是绝大多数公司会用到的协议。
4、Linux 系统构成
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 文件系统。
- EXT4:第 4 代扩展文件系统,是 RHEL6 中默认使用的文件系统类型,属于典型的 日志型文件系统。其特点是保持有磁盘存取记录的日志数据,便于恢复,性能和稳定性更加出色。
- SWAP:除了 EXT4 文件系统之外,Linux 中还有一个比较特殊的 SWAP 类型的文件系统,swap 文件系统是专门给交换分区使用的。交换分区类似于 Windows 系统中的虚拟内存,能够在一定程度上缓解物理内存不足的问题。不同的是,在Windows系统中是采用一个名为 pagefile.sys 的系统文件作为虚拟内存使用,而在 Linux 系统 中则是划分了一个单独的分区作为虚拟内存,这个分区就被称为交换分区。交换分区的大小通常设置为主机物理内存的 2 倍,如主机的物理内存大小为 1GB,则交换分区大小设置为 2GB 即可。
- XFS:RHEL7/CENTOS7 中默认使用文件系统,并不是说原有的 EXT 文件系统不再使用,RHEL 7 仍然是支持 ext4 的,而是面对未来爆炸式增长的数据量,ext 文件系统已经显得原来越力不从心。XFS 文件系统完全为大数据而生,单个文件系统最大可以支持到 8EB 大小,单个文件的大小最大可达到 16T,并且提供了丰富的日志系统,是应对大数据存储的强大的文件系统。XFS 是扩展性高、高性能的文件系统。
应用程序
构成 Linux 系统的应用程序大部分来自 GNU 项目或其他组织的开源软件,例如:
-
- 顶顶有名的 C 语言编译工具 GCC
- 命令解析器程序 bash
- 网站服务程序 httpd等,
因此 Linux 操作系统最确切的含义为 "GNU/Linux 操作系统" GNU 的名称来源于 "GNU is Not UNIX" 的缩写(自由软件的通用许可协议)。其 目标是编写大量兼容于 UNIX 操作系统的可自由传播、使用的软件,来替换 UNIX 系统的各种商业软件。
5、Linux 目录结构
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、
/sbin 应该和根目录放置在一个分区中。
- /bin ->/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等。
这些命令对应的文件都是可执行的,普通用户可以使用大部分的命令。
- /sbin->/usr/sbin:大多是涉及系统管理的命令的存放,是超级权限用户 root 的可
执行命令存放地,普通用户无权限执行这个目录下的命令,如 fdisk、shutdown、
mount 等。与/bin 不同的是,这个目录是给系统管理员 root 使用的命令,普通用
户只能”查看”而不能设置和使用。这个目录和/usr/sbin 或/usr/local/sbin 目录是相
似的;我们记住就行了,凡是目录 sbin 中包含的都是 root 权限才能执行的。
- /boot:存放 Linux 启动时内核及引导系统程序所需要的核心文件,内核文件和
grub 系统引导管理器都位于此目录,建议单独分区,分区大小 100M~500M 即可
- /dev:存放 Linux 系统下的设备文件,如光驱,磁盘等。访问该目录下的某个文
件相当于访问某个硬件设备。
- /etc:一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,
如/etc/fstab 存放系统分区信息
- /home:系统默认的普通用户的主目录(家目录),在 Linux 中,每个用户都有一
个自己的目录,一般该目录名是以用户的账号命名的。新增用户账号时,用户的家
目录都存放在此目录下,~表示当前用户的家目录,~test 表示用户 test 的家目录。
建议单独分区,并设置较大的磁盘空间,方便用户存放数据
- /root:系统管理员 root 的家目录。对于系统来说,系统管理员就好比是上帝,它
能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用 root 帐号。
- /lib->/usr/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于
Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。程序在执行
过程中,需要调用一些额外的参数时需要动态连接库的协助。
- /lib64->/usr/lib64:库文件(64 位)
- /mnt:用于存放挂载储存设备的挂载目录
- /media:有些 linux 的发行版使用这个目录来挂载那些 usb 接口的移动硬盘(包括
U 盘)、CD/DVD 驱动器等等
- /opt:这是给主机额外安装软件所存放的目录,有些软件包也会被安装在这里,
也就是自定义软件包,我们自己编译的软件包,就可以安装在这个目录中;通过源
码包安装的软件,可以通过 ./configure --prefix=/opt/目录。安装到/opt 目录下的程
序,它所有的数据、库文件等等都是放在同个目录下面。直接删除程序不影响系统
设置。
- /proc:操作系统运行时,进程信息及内核信息(比如 cpu、硬盘分区、内存信息
等)存放在这里。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通
过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,
我们也可以直接修改里面的某些文件,
- /run:一些进程产生的临时文件,重启会消失
- /srv:空目录,存放一些服务产生的文件。如 www 服务需要访问的网页数据存放
在/srv/www 内。
- /sys:存放一些内核文件,与/proc 类似,是一个虚拟的文件系统,主要记录与系
统内核相关的信息,如系统当前已经载入的模块信息等。这个目录实际不占磁盘容
量。
- /tmp:临时文件目录,任何人都可以访问。系统软件或用户运行程序如 MySQL 时
产生的临时文件存放到这里,此目录数据需要定期清除。重要数据不可放置在此目
录下,此目录空间不宜过小。
- /usr:应用程序存放目录,如命令、帮助文档等,这是一个非常重要的目录,用
户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目
录。安装 Linux 软件包时默认安装到/usr/local 目录下。/usr/bin:系统用户使用的应
用程序。/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。/usr/src:
内核源代码默认的放置目录。/usr/local:这个目录一般是用来存放用户自编译安装
软件的存放目录。
- /var:这个目录的内容经常变动的,/var/log 用于存放系统日志,/var/lib 存放系
统库文件等。
6、Linux 命令
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
7、Linux 命令行的格式
[root@cong11 ~]#
[] 提示符的分隔符号,没有特殊含义。
root 当前的登录用户,现在使用的是 root 用户登录。
@ 分隔符号,没有特殊含义。
cong11 当前系统的主机名。
~ 代表用户当前所在的目录。
# 命令提示符,Linux 用这个符号标识登录的用户权限等级。#: 超级用户,$: 普通用户
命令的基本格式:命令字 [选项] [操作]
- 选项:又分为短格式选项(-a)和长格式选项(--all)。短格式选项是英文的简写,用一个减号调用, 而长格式选项是英文完整单词,一般用两个减号调用
- 参数:参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作。
8、Linux 常用快捷键
- Ctrl +c 强制终止当前命令
- Ctrl + l 清屏,等价 clear 命令
- Ctrl +a 光标移动到行首
- Ctrl + e 光标移动到行末
- Ctrl + u 快速删除当前光标处之前的所有字符内容
- Ctrl + k 快速删除从当前光标处到行尾的所有字符内容
- Ctrl + r 在历史命令中搜索, history 查看历史命令
- Tab 键:可以将输入的不完整命令或文件、目录名自动补齐。
- 反斜杠”\”:如果输入的一行内容太长,终端会自动换行。有时候为了显示美观及方便查看,也可以插入”\”强制换行,在下一行出现的”>”提示符后可以继续输入内容,作为上一行命令的延续。
9、Linux 命令技巧
a.善于使用Tab键:自动补齐命令或路径。
b.善于使用命令历史:输入“history 命令"可以显示所有的命令记录,每条记录都有相应的编号。如果想执行标号为200的命令历史,可以这样输入:!200
c.查找命令存储位置:通过which 命令可以找到常用命令的存储位置。如输入which find,系统将返回find 命令的实际存储位置/bin/find.
10、Linux 帮助命令
a.man 手册:(man ls) 使用 man 手册更详细的查看命令使用帮助,”空格键“:向下翻页,按 “q”键退出,可以在man 中查找,如下操作:
-
- 1. 在 man 手册中键入 /
- 2. 输入要搜索的内容
- 3. n 查找下一个匹配字符 , 按 N 回到上一个查询到的字符
b. info 信息:(info ls)info信息与man手册的内容类似,但info信息是模块化的,它通过连接显示不同的信息块,看起来有点类似网页。N键进入下一模块信息,P键进入上一信息块,U键返回上一层,空格键翻页,q键退出。
c. help 命令:(ls --help) man手册和info信息内容往往比较多,而仅仅需要的是简短的帮助信息,可以通过--help来获得简要信息。