当前位置: 首页 > news >正文

Linux探秘:驾驭开源,解锁高性能——基础指令(续集)


♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥

♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥

♥♥♥我们一起努力成为更好的自己~♥♥♥

♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥

♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥

✨✨✨✨✨✨ 个人主页✨✨✨✨✨✨

        在上一篇博客我们已经进行了部分基础指令的讲解,这一篇博客我们继续来看看Linux系统下的一些基础指令并且进行部分理论知识的输出,准备好了吗~我们发车去探索Linux的奥秘啦~🚗🚗🚗🚗🚗🚗

目录

基础指令

mv

tac

理论小课堂【程序日志】

more

less

head

tail

输出任意区间行内容

date

cal

which

find

whereis

alias

grep

文本编辑器nano

grep使用

查看系统进程的命令

ps ajx

top

使用场景

混合使用

打包压缩【理论小课堂】

1. 是什么?

2. 为什么?

打包压缩在不同操作系统间的应用

zip/unzip

rzsz

tar

bc

uname

热键

关机

重启

总结+操作系统理解

理解操作系统


基础指令

mv

        mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),经常用来备份文件或者目录~

语法: mv [选项] 源文件或目录(src)  目标文件或目录(dst)

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中~
  2. 当第二个参数类型是当前路径不存在的文件/目录时,mv命令完成文件/目录重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名~
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至(剪切)目标目录中~

常用选项:

  • -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!

tac

        在对这个命令进行讲解前,我们先来回顾一下cat命令~

cat可以用来输出普通文件内容

  • 常见选项:
  • -b 对非空输出行编号【空行不进行编号】
  • -n 对输出的所有行编号【空行也有内容('\n')】
  • -s 不输出多行空行【相邻空行压缩为一行】

使用示例:

    tac

    功能直接行反向输出文件内容(先输出最后一行)~

    常用选项(与cat有区别)

    选项说明示例
    无选项默认反向输出文件内容tac file.txt
    -b--before在分隔符前插入内容(默认行为,实际使用较少)tac -b -s "分隔符" file.txt
    -r--regex将分隔符解释为正则表达式tac -r -s "正则表达式" file.txt
    -s--separator指定行分隔符(默认是换行符 \ntac -s "," file.csv

    使用得不是很多,大家了解一下就可以了~

    理论小课堂【程序日志】

            我们知道cat命令可以输出我们的普通文件内容,我们一般使用cat进行小文件和配置文件内容的输出,但是如果是比较大的文件(比如程序日志)呢?如果使用cat命令输出文件内容,就会显得比较繁琐,所以也就有了我们接下来需要学习的命令~

            程序日志是程序运行时自动记录的“运行日记”,像飞机的黑匣子一样,实时记录程序的操作、状态和事件。它告诉开发者程序做了什么(如用户点击按钮)、遇到了什么问题(如网络超时、数据错误),甚至能追踪黑客攻击。通过日志,可以快速定位崩溃原因、监控服务是否正常运行(比如网站是否卡顿),还能统计用户行为(如每天多少人访问)。日志会分等级(错误、警告、调试信息等),重要问题用醒目标记。合理管理日志(如定期清理、集中存储分析)能避免服务器存储爆满,同时让问题排查更高效。

           

    more

    语法:more [选项]

    功能:more命令功能类似cat,分批显示文件内容

    常用选项:

    • -n 指定输出行数
    • q 退出more

    我们以/var/log/messages (root账户可以查看)(Linux 系统中记录系统级常规日志的核心文件)的为例:

    按回车就可以向下更新

    输入q就可以退出~

    当然我们也可以指定行数显示

            我们可以看到虽然可以向下更新内容,但是不能往前面翻阅,这样翻过了就比较麻烦~我们也就有了接下来的命令~

    less

            less工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大,less的用法比起more更加的有弹性,在more的时候,我们并没有办法向前面翻,只能往后面看向下更新,但若使用了less时,就可以使用[pageup] [pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容,除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

    语法:less [参数] 文件

    功能:less与more类似,但使用less可以随意浏览文件,而more仅能向下移动,却不能向上移动,less分页显示文件内容,可以前后翻,而且less在查看之前不会加载整个文件~

    选项:

    • -i 忽略搜索时的大小写
    • -N 显示每行的行号
    • /字符串:向下搜索“字符串”的功能
    • ?字符串:向上搜索“字符串”的功能
    • n:重复前一个搜索(与 / 或 ? 有关),找到下一个搜索到的字符串位置
    • N:反向重复前一个搜索(与 / 或 ? 有关)
    • q:quit

    为了效果更加明显,我们自己创建一个大文件:

    命令行输入:

            count=1; while [ $count -le 10000 ]; do echo "${count} hello xiaodu\!" >> mylog.txt; count=$((count + 1)); done

    命令解释

            用bash实现循环写入日志:初始化计数器count为1,当count小于等于10000时,将count值和"hello xiaodu!"追加到mylog.txt文件,然后count自增1。循环直至count大于10000结束,实现向文件写入10000行日志的功能。

    使用cat就可以输出文件内容,可以发现这个文件还是很大的,有10000行,十分难翻~

    使用less mylog.txt

            显示一屏满就不再显示,使用[pageup] [pagedown]等按键的功能来往前往后翻看文件~还可以使用/xiaodu进行搜索,xiaodu就会高亮显示

    按q就可以进行退出~

            head与tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。

    语法:head [参数]... [文件]...

    功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行

    选项:

    • -n<行数> 显示的行数  (n可以省略)

    tail

            tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.

    语法:tail [必要参数] [文件]

    功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。

    常用查看日志文件~

    选项:

    • -f 循环读取
    • -n<行数> 显示行数(n可以省略)

    输出任意区间行内容

            通过前面的学习,我们已经可以输出文件全部内容,头尾部分内容?那么如果我想输出任意区间行的内容应该怎么办呢?

            我们需要使用管道符|,管道符 | 】用于将前一个命令的输出作为后一个命令的输入~(后面会详细讲解)

            我们来看看使用:

    同时管道符可以连接任意数量的命令,形成复杂的命令序列~

    例:

    命令行输入:

            head  -5525 mylog.txt | tail -26 | tac | wc -l

    命令解释:

            该命令由head、tail、tac和wc四个Linux命令组成。先用head -5525从mylog.txt中提取前5525行,再用tail -26从这些行中选取最后26行。接着,tac命令将这些行顺序反转。最后,wc -l统计反转后的行数,由于tac只是改变行的顺序,不增减行数,所以结果恒为26。此命令组合可用于查看日志文件开头部分中的最后几行,并以相反顺序展示,有助于特定场景下的日志分析和调试。

    date

    指定年月日格式显示时间:date +%Y-%m-%d

    用法:date [OPTION]... [+FORMAT]

    说明:+号不可以省略

    显示年月日+时分秒(空格需要转义,确保命令行参数被正确解析)

    1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
      • %H:小时(00..23)
      • %M:分钟(00..59)
      • %S:秒(00..61)
      • %X:相当于 %H:%M:%S
      • %d:日 (01..31)
      • %m:月份 (01..12)
      • %Y:完整年份 (0000..9999)
      • %F:相当于 %Y-%m-%d
    2. 在设定时间方面
      • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
      • date -s 20050521 //设置成 20050521,这样会把具体时间设置成空00:00:00
      • date -s 01:01:01 //设置具体时间,不会对日期做更改
      • date -s “01:01:01 2005-05-21” //这样可以设置全部时间
      • date -s “01:01:01 20050521” //这样可以设置全部时间
      • date -s “2005-05-21 01:01:01” //这样可以设置全部时间
      • date -s “ 20050521 01:01:01” //这样可以设置全部时间
    3. 时间戳
      • 时间->时间戳:date +%s
      • 时间戳->时间:date -d@17468699508   【也可以指定格式输出】
      • Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

            我们知道世界上不同地方是有时差的,我们处于东八区,我们会加上八个小时~

    图片中的内容是关于Linux中的cal指令的说明:

    cal

      cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

    用法cal [参数] [年份]

    功能用于查看日历等时间信息使用cal [年份]的格式,查看年份,同时cal命令只支持1到9999之间的年份;使用cal [月份] [年份]的格式,查看年月~

    常用选项

    • -3:显示系统前一个月,当前月,下一个月的月历
    • -j:显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
    • -y:显示当前年份的日历

    查看指定年:

    查看指定年月:

    显示系统前一个月,当前月,下一个月的月历:

    显示系统当前年:

    显示系统当前月:

    which

           功能: which命令可以用来查询某一个命令在哪一个路径下~

    find

    • Linux下find命令在目录结构中搜索文件,并执行指定的操作
    • Linux下find命令提供了相当多的查找条件,功能很强大~由于find具有强大的功能,所以它的选项也很多,大家可以抽时间了解一下~
    • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限~
    • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)~

    语法find pathname -options

    功能用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

    常用选项

    • -name ——按照文件名查找文件 
    • -type [类型]——按文件类型过滤:f【普通文件】,d【目录】

    • 其他选项大家可以通过大模型查询,这里就不一一赘述了~

    whereis

    功能用于找到程序的源、二进制文件或手册

    alias

    功能设置命令的别名

    在上一篇博客,我们就介绍到了这个命令,我们来温故知新一下:

    关于别名的删除:

    第一种方法:直接关闭Xshell

    第二种方法:alias 别名=‘ ’   【把别名设置为空】

    grep

    语法grep [选项] 搜寻字符串 文件

    功能在文件中搜索字符串,将找到的行打印出来

    常用选项:

    • -i:忽略大小写的不同,所以大小写视为相同
    • -n:输出对应行号
    • -v:反向选择,即显示出没有 '搜寻字符串' 内容的那一行

    文本编辑器nano

            在正式讲解之前,我们先了解一个小工具nano,nano 是 Linux 和类 Unix 系统中的一款简单易用的文本编辑器,可以快速编辑文件~当然我们首先要安装这个小工具~

    nano安装(root账户下安装)

            Centos:yum install -y nano

            Ubuntu:apt install -y nano

    小编使用的是Ctenos版本:

    安装成功,接下来就可以使用nano这个简单易用的文本编辑器了~

    首先把mylog.txt的内容复制一份:

    nano的使用

            nano filename # 打开或新建文件

    常用快捷键

    快捷键功能
    Ctrl+O保存文件(确认文件名后按 Enter)
    Ctrl+X退出编辑器(若有未保存内容会提示保存)
    Ctrl+K剪切当前行
    Ctrl+U粘贴剪切的行
    Ctrl+W搜索字符串
    Ctrl+C显示当前光标位置
    Ctrl+_跳转到指定行号
    Ctrl+R从另一个文件插入内容

    grep使用

    实验:

    查看系统进程的命令

    ps ajxtop 是两个用于查看系统进程的命令,它们在功能和输出格式上有一些区别。

    ps ajx
    • 功能: ps 命令用于报告当前系统的进程状态。选项 ajx 组合提供了详细的进程信息~          
    • 输出: ps ajx 会输出一个静态的进程列表,包括进程ID (PID)、终端 (TTY)、累积CPU时间 (TIME)、命令名 (CMD) 等。这个命令提供了一次性的快照信息,适合用于脚本或需要保存输出的情况~
    • a 选项显示终端上所有用户的进程。
    • j 选项使用任务格式输出,包含更多详细信息。
    • x 选项显示没有控制终端的进程。
    top
    • 功能: top 是一个动态实时视图工具,显示系统中各个进程的运行状态,它会定期更新显示,让用户实时监控系统的性能和资源使用情况~

    • 输出: top 提供一个交互式界面,默认每隔几秒钟自动刷新一次(默认不退出,按q退出)     它显示的信息包括:

      • 系统总体信息:如当前时间、系统运行时间、登录用户数、负载平均值。
      • 进程信息:如进程ID (PID)、用户、优先级 (PR)、nice值 (NI)、虚拟内存 (VIRT)、常驻内存 (RES)、共享内存 (SHR)、状态 (S)、CPU使用率 (%CPU)、内存使用率 (%MEM)、累积CPU时间 (TIME+) 和命令名 (COMMAND)。
    • 交互性: top 允许用户在运行时进行交互,比如排序进程、过滤特定进程、改变更新间隔、杀死进程等。

    • 常用选项

      -d 选项可以指定刷新时间周期(单位秒)

      -n 选项可以指定刷新次数,达到刷新次数就退出

    使用场景
    • ps ajx: 适合需要获取一次性进程信息的情况,比如脚本中需要记录某一时刻的进程状态,或者需要详细分析某个特定进程的状态。

    • top: 适合实时监控系统性能,尤其是在需要观察系统资源动态变化、识别高资源消耗进程时非常有用。

    混合使用

    命令行输入:

            ps ajx | grep 'sshd'

    命令解释:

           首先,ps ajx 命令以详细格式列出系统中所有正在运行的进程,包括那些没有控制终端的进程,提供了全面的进程状态信息。随后,通过管道【 | 】将 ps ajx 的输出传递给 grep 'sshd'grep 命令会在这些进程中搜索并仅显示包含 "sshd" 字符串的行。帮助我们快速定位与 SSH 服务相关的进程,如 SSH 守护进程,从而进行监控、调试或确保 SSH 服务正常运行。

    补充:sshd 是 OpenSSH 守护进程的名称,通常用于提供 SSH 服务~通过这个命令可以查看所有与 sshd 相关的进程信息~

    打包压缩【理论小课堂】

    1. 是什么?

            打包压缩是把文件数据进行归档,形成一个文件的过程。简单来说,就是将多个文件或文件夹整合成一个单独的文件,这个文件通常具有更小的体积,方便存储和传输。

    2. 为什么?

    • 网络发送方便:将多个文件打包成一个文件后,在网络传输时只需要传输一个文件,相比传输多个分散的文件,操作更加简便。
    • 节省磁盘空间:通过压缩技术,可以减少文件占用的磁盘空间。例如,一些文本文件、图像文件等在压缩后体积会明显变小。
    • 体积小,网络传送的速度快:由于压缩后的文件体积变小,在网络传输时所需的时间会减少,传输速度相应提高。

    打包压缩在不同操作系统间的应用

    • 获取到我的windows本地:将打包压缩后的文件传输到Windows本地系统中
    • Linux <-> windows :打包压缩的文件可以在Linux和Windows操作系统之间进行传输和交互~
    • Linux <-> Linux:Linux系统之间也可以方便地进行打包压缩文件的传输和共享~

    zip/unzip

    没有找到命令,我们首先就需要进行安装

    安装工具(root账户):zip/unzip

    Centosyum install -y zip unzip

    Ubuntuapt install -y zip unzip

    安装成功~

    接下来我们就可以进行使用了~

    zip语法

            zip  压缩文件.zip  目录或文件

       【     zip 压缩的文件dst 需要压缩的文件src    】

    功能

            将目录或文件压缩成zip格式

    常用选项
            -r选项——递归处理,将指定目录下的所有文件和子目录一并打包压缩处理~

    打包压缩大文件:

    打包目录+文件:

    首先我们把原来创建的目录和文件移动到一个新建目录下

    需要加-r选项——递归处理,将指定目录下的所有文件和子目录一并打包压缩处理~

    默认解压到当前路径下,我们也可以指定解压的位置:

    rzsz

            rzsz是Linux下基于ZMODEM协议的文件传输工具,包含 rz(接收文件)和 sz(发送文件)两个命令,支持通过终端(如Xshell)与本地(如Windows)交互文件~

    安装工具(root账户):rzsz

    Centosyum install -y lrzsz

    Ubuntuapt install -y lrzsz

    当然也可以进行直接拖拽~

    这些也就体现了打包压缩在不同操作系统间的应用

    • 获取到我的windows本地:将打包压缩后的文件传输到Windows本地系统中
    • Linux <-> windows :打包压缩的文件可以在Linux和Windows操作系统之间进行传输和交互

    tar

            tar命令可以将多个文件或目录打包成一个单独的归档文件(.tar),并支持结合压缩算法(如 gzip、bzip2 等)进一步减小文件体积~功能也就是打包和解包~

    核心功能:

    1. 归档(打包):将多个文件/目录合并为一个 .tar 文件~
    2. 解压(拆包):从 .tar 文件中提取内容
    3. 查看内容:列出归档中的文件列表(不解压)
    4. 组合压缩:支持与 gzipbzip2xz 等压缩工具结合,生成 .tar.gz.tar.bz2.tar.xz

    常用选项

    选项含义
    -c创建新归档(Create)
    -x解压归档(eXtract)
    -t列出归档内容(Table)
    -v显示操作过程(Verbose)
    -f指定归档文件名(File,必须紧接文件名)
    -z使用 gzip 压缩/解压(生成 .tar.gz
    -j使用 bzip2 压缩/解压(生成 .tar.bz2
    -J使用 xz 压缩/解压(生成 .tar.xz
    -C解压到指定目录(Change directory)
    --exclude排除特定文件/目录

    常用命令模板

    • 打包并压缩
      tar -czvf 压缩包名.tar.gz 目标文件/目录
      -z 对应 gzip-j 替换为 bzip2-J 替换为 xz

    • 解压
      tar -xzvf 压缩包名.tar.gz
      (默认解压到当前目录,加 -C /目标路径 指定目录) 

    • 查看内容
      tar -tvf 压缩包名.tar.gz


    关键提示

    • 选项 -f 必须紧跟文件名(如 tar -czvf file.tar.gz dir
    • 压缩效率:xz > bzip2 > gzip,但速度反之
    • tar.gz只是文件后缀,可以进行简写

    bc

      bc是Linux里的终端计算器,能算加减乘除、平方根,还能处理小数(比如设置保留几位小数)。支持循环、条件判断,甚至进制转换(如十进制转十六进制)。用-l选项能调用高级数学函数,-q可以安静启动不显示提示。适合快速算数或写脚本时做复杂计算。

    联合使用:

    命令解释:

            echo "1+2*2-3" | bc

            使用echo输出数学表达式1+2*2-3,通过管道符|将其传递给bc命令行计算器,bc计算表达式结果,遵循运算优先级,先乘法后加减,最终得出结果2并显示在终端~

    uname

    语法:uname [选项]

    功能uname用来获取电脑和操作系统的相关信息(硬件方面)~

    uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

    常用选项
            -a或--all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

    补充:lsb_release -a,可以在 Linux 系统中用于查询操作系统版本的命令(软件方面)

    热键

    Linux热键是键盘上的快捷组合键,能快速操作系统~

    [Tab]按键——具有『命令补全』和『档案补齐』的功能【一次不行就多次】
    [Ctrl]+c按键——让当前的程序『停掉』,也就是强制停止当前程序
    [Ctrl]+d按键——通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外它可以用来取代exit~

    [Ctrl]+r按键——Ctrl+r是终端反向搜索热键,按下后输入关键词可快速检索历史命令(按时间倒序匹配),支持多次按Ctrl+R切换结果,找到目标命令后回车执行或编辑~

    !+命令字符——执行最近以命令字符开头的历史命令

    我们可以看到历史命令可以被检索,说明我们的历史命令是被记录下来的,我们可以命令行输入【history】得到最近的历史命令——一般记录1000条最近历史命令

    关机

    语法shutdown [选项]

    常见选项

    • -h:将系统的服务停掉后,立即关机。
    • -r:在将系统的服务停掉之后就重新启动
    • -t sec:-t 后面加秒数,亦即『过几秒后关机』的意思

    重启

    reboot

    • 直接输入reboot并执行,系统会立即开始重启过程~该命令通常需要root权限,普通用户使用时可能需要通过sudo提升权限,如sudo reboot

    总结+操作系统理解

            到这里,Linux基础指令博客部分就结束了,当然Linux指令肯定不止于此,后面在使用过程中,我们可以学习到更多的命令~

            通过前面的使用,我们来仔细看看命令行:

            命令的本质其实就是Linux系统中指定目录下的可执行文件~

    理解操作系统

            狭义上的操作系统就是内核,而广义上的操作系统=内核+外壳程序(也包括系统上默认安装的某些软件)

    画图理解:

    shell外壳程序也就是命令行解释器,命令行解释器(command Interpreter)作用主要包含:
    将使用者的命令翻译给核心(kernel)处理~
    同时,将核心的处理结果翻译给使用者~

    那么为什么要多一层外壳程序呢?

    外壳程序的作用
    1. 保护操作系统
    2. 方便用户操作,减少用户使用操作系统的使用成本~

    外壳程序怎么工作?【简述:外壳程序一般会创建子进程去解释执行命令

    1. 命令行读取:Shell程序首先从用户那里读取输入的命令行。用户在终端中输入命令,Shell等待用户完成输入并按下回车键。

    2. 命令解析:一旦命令被输入,Shell会解析命令行,将其分解成可执行的部分。这包括识别命令本身、选项、参数以及重定向和管道等特殊符号。

    3. 命令执行

      • 内置命令:如果输入的命令是Shell的内置命令(如cdecho等),Shell会直接执行这些命令。
      • 外部程序:如果命令是可执行程序(如lsgcc等),Shell会在系统的PATH环境变量指定的目录中查找该程序,并启动一个新的进程来执行它
      • 脚本执行:如果输入的是一个脚本文件,Shell会读取脚本内容,逐行解释并执行其中的命令。
    4. 输入/输出重定向和管道:Shell处理输入/输出重定向(如><)和管道(|),将一个命令的输出作为另一个命令的输入,实现复杂的数据流处理。

    5. 环境管理:Shell维护一个环境,其中包括变量、别名、函数等。这些可以在命令执行过程中被引用和修改。

    6. 结果返回:执行完命令后,Shell会捕获命令的退出状态(通常是一个整数值,0表示成功,非0表示失败),并根据需要将其返回给用户或用于后续的条件判断。

    7. 交互循环:Shell在执行完一个命令后,会返回到命令读取状态,等待用户的下一个输入,形成一个交互循环。

    很多专业术语在后面我们会学习到,这里简单了解一下就可以了~

    计算机操作系统层次结构示意图:

    从上到下分为四个主要层次:用户、操作系统、驱动程序和底层硬件。

    1. 用户:这一层表示用户与操作系统交互的界面,用户可以通过指令操作、开发操作和管理操作来与系统进行交互。
    2. 操作系统:这一层负责管理计算机的硬件资源,包括内存管理、进程管理、文件管理和驱动管理。
    3. 驱动程序:这一层包含各种硬件设备的驱动程序,如网卡驱动、硬盘驱动和其他驱动,它们负责与硬件设备进行通信。
    4. 底层硬件:这一层表示计算机的物理硬件,如网卡、硬盘等。

    什么是操作系统?

            操作系统是一款进行软硬件资源管理的软件
    为什么有操作系统?
            通过对下做好软硬件的管理工作(手段),操作系统对上给用户提供一个良好【稳定 高效 安全】的运行环境(目的)


    ♥♥♥本篇博客内容结束,期待与各位优秀程序员交流,有什么问题请私信♥♥♥

    ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥

    ✨✨✨✨✨✨个人主页✨✨✨✨✨✨


    相关文章:

  • 【RocketMQ 生产者和消费者】- 生产者启动源码-创建 MQClientInstance(2)
  • 硬件,软件和进程
  • 【Linux】进程间通信(四):System V标准(共享内存、消息队列、信息量)
  • 通过Python 在Excel工作表中轻松插入行、列
  • Mysql 刷题Day09
  • nvm版本管理下pnpm 安装失败问题解决
  • 智能赋能与人文滋养:人工智能时代高中数字化教育的范式重构
  • 【视频】使用海康SDK保存的MP4无法在浏览器(html5)中播放
  • 解决前端路由切换导致Keycloak触发页面刷新问题
  • landsat卫星遥感影像下载、处理教程
  • 数据结构 -- B树和B+树
  • 学习vue3:跨组件通信(provide+inject)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Blurry Loading (毛玻璃加载)
  • PostgreSQL 14 pacemaker 高可用集群
  • 从单链表 list 中删除第 i 个元素--Python
  • 软件设计师“面向对象设计”真题考点分析——求三连
  • 华为2025年校招笔试手撕真题教程(二)
  • 华为2025年校招笔试真题手撕教程(一)
  • Spring Bean 的定义与管理、配置方式详解
  • 《数据资产价值与收益分配评价模型》
  • 网站模板侵权问题/微平台推广
  • php做网站不兼容ie8/百度官网下载安装
  • 大型网站 中小型网站/g3云推广靠谱吗
  • 如何免费建一个wordpress/seo推广方法
  • 繁体商城网站模板/网络营销方案案例范文
  • 三 网站建设/重庆网站建设软件