3.1 Linux 前置知识

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 目录结构

  • /:根目录,一般根目录下只存放目录,不要存放文件。
  • /usr:存放应用程序目录,如命令、帮助文档等。安装 Linux 软件包时默认安装到/usr/local 目录下。
    • /usr/bin:系统用户使用的应用程序。
    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
    • /usr/src: 内核源代码默认的放置目录。
    • /usr/local:这个目录一般是用来存放用户自编译安装软件的存放目录。
  • /bin ->/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等。
  • /sbin->/usr/sbin:存放超级用户使用的比较高级的管理程序和系统守护程序。普通用户无权限执行这个目录下的命令。这个目录和/usr/sbin 或/usr/local/sbin 目录是相似的;
  • /boot:存放 Linux 启动时内核文件及引导系统程序(grub 系统引导管理器)所需要的核心文件。
  • /dev:存放 Linux 系统下的设备文件。访问该目录下的某个文件相当于访问某个硬件设备。
  • /etc:一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录, 如/etc/fstab 存放系统分区信息
  • /proc:操作系统运行时,进程信息及内核信息(比如 cpu、硬盘分区、内存信息等)存放在这里。这个目录是一个虚拟的目录,它是系统内存的映射。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,
  • /sys:存放一些内核文件,与/proc 类似,是一个虚拟的文件系统,主要记录与系统内核相关的信息,如系统当前已经载入的模块信息等。这个目录实际不占磁盘容量。
  • /home:系统默认的普通用户的主目录(家目录的上一层目录)。
  • /root:系统管理员 root 的家目录。
  • /lib->/usr/lib:存放着系统最基本的动态链接共享库,其作用类似于 Windows 里的 DLL 文件。程序在执行过程中,需要调用一些额外的参数时需要动态连接库的协助。
  • /lib64->/usr/lib64:库文件(64 位)
  • /mnt:用于存放挂载储存设备的挂载目录
  • /media:有些 linux 的发行版使用这个目录来挂载那些 usb 接口的移动硬盘(包括 U 盘)、CD/DVD 驱动器等等
  • /opt:这是给主机额外安装软件所存放的目录,有些软件包也会被安装在这里,也就是自定义软包,我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/目录。安装到/opt 目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。直接删除程序不影响系统设置。
  • /run:一些进程产生的临时文件,重启会消失
  • /srv:空目录,存放一些服务产生的文件。如 www 服务需要访问的网页数据存放在/srv/www 内。
  • /tmp:临时文件目录,任何人都可以访问。系统软件或用户运行程序如 MySQL 时 产生的临时文件存放到这里,此目录数据需要定期清除。重要数据不可放置在此目 录下,此目录空间不宜过小。
  • /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 builtintype 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”键退出,d: 向下翻半页 u: 向上翻半页 g: 返回顶端 G: 返回底端

-k 查看关键字段选项

可以在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来获得简要信息。

    • 内部命令:help 命令
    • 外部命令:命令 --help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/175560.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ERROR】ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND No package.json

1、报错 启动项目的时候,报这个错误,是因为根目录错误,查看,根目录是否错误。

gmpy2 GMP is_prime函数底层c代码分析

偶然看到一篇paper(2018年发表),说GMP中的素性检测使用的是单独的Miller_Rabin方法,单独的Miller_Rabin素性检测会存在部分安全问题(低概率),然后突然想求证一下最新版本的GMP中是否进行了修改。…

android studio开发flutter应用,使用mumu模拟器调试软件

安装好mumu模拟器,先打开网易mumu模拟器的开发者模拟。系统应用 > 设置 > 关于手机 > 版本号 多点击几次调出开发者模式: 然后打开Hbulider软件:(具体应该是hbulider执行了一个adb命令,让android studio能识别…

跨境电商邮件营销的策略?外贸营销怎么做?

跨境电商邮件营销怎么做?跨境电商电子邮件营销工具? 随着全球电子商务的快速发展,跨境电商已经成为越来越多企业的选择。在跨境电商领域,邮件营销是一种非常重要的营销手段。蜂邮将探讨跨境电商邮件营销的策略,帮助企…

MySQL数据库约束

目录 数据库约束 1.NULL约束 2.UNIQUE:唯一约束 3.DEFAULT:默认值约束 4.PRIMARY KEY:主键约束 5.FOREIGN KEY:外键约束 数据库约束 以下为本篇文章会介绍的约束 (1)NOT NULL - 指示某列不能存储 NULL 值。 (2)UNIQUE - …

蓝牙特征值示例1-迈金L308自行车尾灯夜骑智能表情尾灯的

了解商品级蓝牙特征值 1 服务器(设备)描述 0x02-01-06 05-03-0F180A18 09-FF-FFFF166B001C0101 0A-09-4C3330385F37393937 01设备标识 03服务UUID FF厂商自定义数据(厂家编号:FFFF-166B001C0101) 完整设备名称: L308-7997 2 服…

(论文阅读31/100)Stacked hourglass networks for human pose estimation

31.文献阅读笔记 简介 题目 Stacked hourglass networks for human pose estimation 作者 Alejandro Newell, Kaiyu Yang, and Jia Deng, ECCV, 2016. 原文链接 https://arxiv.org/pdf/1603.06937.pdf 关键词 Human Pose Estimation 研究问题 CNN运用于Human Pose E…

HelloWorld - 从Houdini导出HDA到UE5

1.配置插件 在Houdini安装目录下找到对应版本引擎的插件,例如这里是Houdini19对应UE5.2的版本,我们就要保证先下载好UE5.2: 将Houdini插件粘贴到UE安装目录的Plugins文件夹下: 目前插件配置完成,打开UE会自动启用插…

python数据处理作业11:建一个5*3的随机数组和一个3*2的数组,其元素为1,2,3,4,5,6,求两矩阵的积

每日小语 打碎的杯子,烫伤的手,对菩萨是堪忍,因为他在里面得悟甚深之法,心生欢喜。 可是对一般人来说,一生何止打破千百个杯子?何止烫伤过千百次手?他只是痛苦地忍受,只记得下次要…

FPGA UDP RGMII 千兆以太网(4)ARP ICMP UDP

1 以太网帧 1.1 1以太网帧格式 下图为以太网的帧格式: 前导码(Preamble):8 字节,连续 7 个 8’h55 加 1 个 8’hd5,表示一个帧的开始,用于双方 设备数据的同步。 目的 MAC 地址:6 字节,存放目的设备的物理地址,即 MAC 地址 源 MAC 地址:6 字节,存放发送端设备的…

Xilinx Kintex7中端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…

AK F.*ing leetcode 流浪计划之半平面求交

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 本期话题:半平面求交 背景知识 学习资料 视频讲解 https://www.bilibili.com/video/BV1jL411C7Ct/?spm_id_from333.1007.top_right_bar_window_history…