3.1 Linux 前置知识

news2024/11/20 6:24:59
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 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”键退出,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.coloradmin.cn/o/1210291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

王道数据结构课后代码题p40 6.有一个带头结点的单链表L,设计一个算法使其元素递增有序 (c语言代码实现)

这一题其实用到了直接插入排序的思想 视频讲解在这里哦:👇 p40 第6题 王道数据结构课后代码题 c语言代码实现_哔哩哔哩_bilibili 本题代码为 void paixu(linklist* L)//对单链表内的元素排序 {lnode* p (*L)->next;lnode* pre *L;lnode* r p-&…

「 电商API接口系列之淘宝API接口调用 」

API从技术角度来说就是应用程序编程接口。通过API我们可以直接获取一些我们需要的数据结果,而不需要自己编写相应的程序,有点类似模块化调用函数,大大加快了我们编程的速度。当然这个数据传输是需要网络的,所以一般API的形式看起来…

论文十问:ResNet(Deep Residual Learning for Image Recognition)

文章目录 1. 论文试图解决什么问题?2. 这是否是一个新的问题?3. 这篇文章要验证一个什么科学假设?4. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?5. 论文中提到的解决方案之关键是什么?6. 论文中的实验是如何设计的?…

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…

【LeetCode刷题笔记】二叉树(二)

257. 二叉树的所有路径 解题思路: 1. DFS 前序遍历 ,每次递归将 当前节点的拼接结果 传递到 下一层 中,如果当前节点是 叶子节点 ,就将 当前拼接结果 收集答案并返回。 注意:路径path结果可以使用 String 来拼接,这样可以避免回溯处理。

Git 本地库基本教程

目录 一. Git 概述 1.1 何为版本控制 1.2 为什么需要版本控制 1.3 版本控制工具 1.3.1 集中式版本控制工具 1.3.2 分布式版本控制系统 1.4 Git简介 1.5 Git工作机制 1.6 Git 和代码托管中心 1.6.1 局域网 1.6.2 互联网 二. Git 安装 三. Git…

SystemC 学习之与 System Verilog 的混合仿真(九)

1、下载 uvmc (uvm connect) https://download.csdn.net/download/yp18792574062/88529417?spm1001.2014.3001.5501 2、配置相关环境变量 export UVM_HOME${VCS_HOME}/etc/uvm export UVMC_HOME/home/yangpan/yangpan/uvmc/uvmc-2.3.1 然后执行 source ~/.zshrc 更新 3、…

让公有云服务“宁安如梦”的“定心丸”在哪里?

电视剧《宁安如梦》正在热播中,该剧讲述了主人公在经历人生的重大风险后,重获新生再活一遍,以确定性的方式抵御和化解原有的重大风险。然而,在现实的生活中,却没有这样的重来机会。 2023年11月13日,Gartne…

二、服务拆分及远程调用

目录 一、注意事项: 1.单一职责: 2.数据独立: 3.面向服务: 二、服务拆分例子: 三、远程调用例子: 微服务调用方式: 四、提供者与消费者 服务调用关系: 一、注意事项: 1.单一职责: 不同…

某建筑网页js逆向分析过程(有坑)

某建筑网页: 网站: import base64 # 解码 website base64.b64decode(aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55.encode(utf-8)) print(website)JSON.parse() ​ 当你有一个包含JSON字符串的变量时,你可以使用JSON.parse()将…

No209.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

19 - 如何用协程来优化多线程业务?

近几年,国内很多互联网公司开始使用或转型 Go 语言,其中一个很重要的原因就是 Go 语言优越的性能表现,而这个优势与 Go 实现的轻量级线程 Goroutines(协程 Coroutine)不无关系。那么 Go 协程的实现与 Java 线程的实现有…

高效免费办公神器——ONLYOFFICE入手指南

前言: 作为开发者,有时候经常为寻找适合的开发工具而苦恼;或者因为高昂的费用而犹豫不决;亦或喜欢的办公产品只能在单一的平台上使用,与其把时间花在复杂的工具使用上,不如节省出时间投入思考和技术的提升。…

【洛谷算法题】P5711-闰年判断【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5711-闰年判断【入门2分支结构】🌏题目描述🌏输入格式&a…

js写轮播图,逐步完善

目录 1、自动轮播 2、点击更换 3、自动播放加左右箭头点击切换 4、完整版轮播图 1、自动轮播 用定时器setInterval()来写&#xff0c;可以实现自动播放 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><met…

一例plugx样本的分析(AcroRd32cWP)

这是一例plugx的样本&#xff0c;使用了一个合法签名的程序 &#xff0c;使用侧加载的方式加载一个恶意的dll&#xff0c;解密一个dat文件来&#xff0c;在内存中执行一个反射型dll来完成恶意功能。 这个病毒会使用摆渡的方式的来窃取内网的文档数据&#xff0c;具有严重的失泄…

Git新建分支

修改代码之Git策略思考&#xff1a; 有三种办法&#xff1a; 需要在主分支上新建一个分支&#xff0c;不合并新建版本。其实也是先新建一个分支&#xff0c;然后合并到主分支&#xff0c;再删除分支。直接新建远程仓库。 考虑&#xff0c;3&#xff09;最浪费&#xff0c;其…

QGIS之十七按范围选择要素

效果 步骤 1、准备数据 &#xff08;1&#xff09;、范围面 &#xff08;2&#xff09;、point 2、Qgis中裁剪 工具箱中搜索“裁剪” 注意编码问题 3、裁剪结果

Skybox天空盒子的更换教程_unity基础开发教程

Skybox天空盒子的更换 Skybox的下载与导入更换SkyboxSkybox属性自定义 Skybox的下载与导入 打开资源商店 搜索FREE Skybox 这里是我使用的是这一款资源&#xff0c;点击添加至我的资源 打开包管理器Package Manager Packages选择My Assets 搜索Sky 选择刚刚添加的天空盒子 点…

​TechSmith Camtasia 2024破解版功能介绍及使用教程

在现在的网络互联网时代&#xff0c;越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频&#xff0c;也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音&#xff0c;做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…