• 001.前置知识


    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 等)添加到用户的“搜索路径”中,当使用位于这些目录中的外部命令时,用户不需要指定具体的位置。

    1. # 查看命令所在的位置
    2. type 命令
    3. type cd cd is a shell builtin
    4. type cat cat is /usr/bin/cat
    7、Linux 命令行的格式

    [root@cong11 ~]#

    1. [] 提示符的分隔符号,没有特殊含义。
    2. root 当前的登录用户,现在使用的是 root 用户登录。
    3. @ 分隔符号,没有特殊含义。
    4. cong11 当前系统的主机名。
    5. ~ 代表用户当前所在的目录。
    6. # 命令提示符,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来获得简要信息。

  • 相关阅读:
    这也许是22年国内最牛的Java面试八股文合集(全彩版),不接受反驳
    Elasticsearch的介绍 以及使用python操作es详细步骤
    基于SpringBoot的大学生体质测试管理系统
    (四)支持向量机(SVM)
    进程控制,父子进程
    Unity 2021 请求 Android 12 读取本地文件权限
    Python实现双目标定、畸变矫正、立体矫正
    【TCPDF】使用TCPDF导出PDF文件
    windows 电脑改成安卓桌面
    Python【判断列表的存在与否关系】
  • 原文地址:https://blog.csdn.net/Yuanshigou9/article/details/134459392