linux基础简介(一)

news2024/11/22 12:26:03

1.Linux内核

​ Linux 系统从应用角度来看,分为内核空间用户空间两个部分。内核空间是 Linux 操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应用程序包是一个操作系统成功的必要件。

​ Linux 的内核主要由 5 个子系统组成:进程调度内存管理虚拟文件系统网络接口进程间通信

1.1 进程调度 SCHED

​ 进程调度指的是系统对进程的多种状态之间转换的策略。Linux 下的进程调度有 3 种策略:SCHED_OTHER、SCHED_FIFO 和 SCHED_RR

  • SCHED_OTHER:分时调度策略(默认),是用于针对普通进程的时间片轮转调度策略。
  • SCHED_FIFO:实时调度策略,是针对运行的实时性要求比较高、运行时间短的进程调度策略
  • SCHED_RR:实时调度策略,是针对实时性要求比较高、运行时间比较长的进程调度策略。

1.2 内存管理 MMU

  • 内存管理是多个进程间的内存共享策略。在 Linux 中,内存管理主要说的是虚拟内存。
  • 虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍。
  • 每个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。

1.3 虚拟文件系统 VFS

  • 在 Linux 下支持多种文件系统,如 ext、ext2、minix、umsdos、msdos、vfat、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs 等。

  • 目前 Linux 下最常用的文件格式是 ext2 和 ext3。

  • 1.4 网络接口

​ Linux 是在 Internet 飞速发展的时期成长起来的,所以 Linux 支持多种网络接口和协议。网络接口分为网络协议和驱动程序,网络协议是一种网络传输的通信标准,而网络驱动则是对硬件设备的驱动程序。Linux 支持的网络设备多种多样,几乎目前所有网络设备都有驱动程序。

1.5 进程间通信

​ Linux 操作系统支持多进程,进程之间需要进行数据的交流才能完成控制、协同工作等功能,Linux 的进程间通信是从 UNIX 系统继承过来的。Linux 下的进程间的通信方式主要有管道、信号、消息队列、共享内存和套接字等方法。

2. Linux 目录结构

在这里插入图片描述

在 linux 中根目录的子目录结构相对是固定的 (名字固定), 不同的目录功能是也是固定的

  • bin: binary, 二进制文件目录,存储了可执行程序,今天要将的命令对应的可执行程序都在这个目录中
  • sbin: super binary, root 用户使用的一些二进制可执行程序
  • etc: 配置文件目录,系统的或者用户自己安装的应用程序的配置文件都存储在这个目录中
  • lib: library, 存储了一些动态库和静态库,给系统或者安装的软件使用
  • media: 挂载目录,挂载外部设备,比如:光驱,扫描仪
  • mnt: 临时挂载目录,比如我们可以将 U 盘临时挂载到这个目录下
  • proc: 内存使用的一个映射目录,给操作系统使用的
  • tmp: 临时目录,存放临时数据,重启电脑数据就被自动删除了
  • boot: 存储了开机相关的设置
  • home: 存储了普通用户的家目录,家目录名和用户名相同
  • root: root 用户的家目录
  • dev: device , 设备目录,Linux 中一切皆文件,所有的硬件会抽象成文件存储起来,比如:键盘, 鼠标
  • lost+found: 一般时候是空的,电脑异常关闭 / 崩溃时用来存储这些无家可归的文件,用于用户系统恢复
  • opt: 第三方软件的安装目录
  • var: 存储了系统使用的一些经常会发生变化的文件, 比如:日志文件
  • usr: unix system resource, 系统的资源目录
    • /usr/bin: 可执行的二进制应用程序
    • /usr/games: 游戏目录
    • /usr/include: 包含的标准头文件目录
    • /usr/local: 和 opt 目录作用相同,安装第三方软件

对于用户自己的文件,一般都是存放到自己的家目录中,也就是 /home/用户名里边,通过指定的相应的路径就可以找到这个文件了。关于路径的指定的有两种方式:相对路径和绝对路径

2.1 相对路径

相对路径:相对路径就是相对于当前文件的路径。在 Linux 中有两个表示路径的特殊符号:

  • ./ :代表目前所在的目录,也可以使用 . 表示。
  • …/ :代表当前目录的上一层目录,也可以使用 … 表示。
  • 相对路径的优缺点:
    • 优点:简洁,目录相对较短,书写方便
    • 缺点:变更工作目录之后,使用相同的相对路径就找不到原来的文件了

2.2 绝对路径

绝对路径:从系统磁盘起始节点开始描述的路径。

  • Linux:起始节点为根目录,比如: /root/pc0z1/vscode/data
  • Windows: 起始节点为某个磁盘的盘符,比如:E:\root\pc01\vscode\data
  • 以上边的目录为例,从当前 root 家目录 /root, 进入到 data目录使用绝对路径
  • 绝对路径的优缺点:
    • 优点:在操作系统的任意位置都可以通过绝对路径访问到对应的文件
    • 缺点:字符串较长,书写起来比较麻烦,看起来也不够简洁

3. 命令解析器

​ 在 Linux 中需要通过终端执行对应的命令来完成某些操作,那么这些命令是如何被执行的呢?

​ 这些命令都是通过命令解析器解析完成并执行的,如果用户在终端输入是正确的内部指令,命令解析器就执行这个命令,如果不是正确的指令,则提示命令无法解析。

3.1 工作原理

​ 命令解析器在 Linux 操作系统中就是一个进程 (运行的应用程序), 它的名字叫做 bash 通常我们更习惯将其称之为 shell (即: sh)。他们之间的渊源是这样的,在 Unix 操作系统诞生之后一个叫伯恩 (Bourne) 的人为其编写了命令解析器取名为 shell, Linux 操作系统诞生之后伯恩再次改写了 shell (sh),将其称之为 bash (Bourne Again SHell),bash 就是 sh 的增强版本。

​ 在 Linux 操作系统中默认使用的命令解析器是 bash, 当然也同样支持使用 sh。当用户打开一个终端窗口,并输入相关指令, 按回车键, 这时候命令解析器就开始工作了, 具体步骤如下:

  • 在 Linux 中有一个叫做 PATH 的环境变量,里边存储了一些系统目录 (windows也有, 叫 Path)

    # 通过 echo 命令可以查看环境变量 PATH 中的值, 在shell中变量名前加 $ 就是取值
    [root@pc01 ~]$ echo $PATH
    /home/pc01/minicoda3/condabin:/home/pc01/minicoda3/bin ......
    
  • 命令解析器需要依次搜索 PATH 中的各个目录,检查这些目录中是否有用户输入的指令

    • 如果找到了,执行该目录下的可执行程序,用户输入的命令就被执行完毕了
    • 如果没有找到,继续搜索其他目录,最后还是没有找到,会提示命令找不到,因此无法被执行
    [root@pc01 ~]# asdjflksd
    -bash: asdjflksd: command not found
    

3.2 命令提示行

在 Linux 终端中,输入要执行的指令之前会有想用的命令提示,我们将其称之为命令提示行,例如:

3.3 命令行快捷键

快捷键功能备注
Tab命令自动补齐在终端中输入 某个命令的前一个或若干个字符,再按 Tab 键
Ctrl+p显示输入的上一个历史命令从输入的最后一个命令往前倒,也可以使用 ↑键
Ctrl+n显示输入的下一个历史命令也可以使用 ↓键
Ctrl+a光标移动命命令行首也可以使用 Home 键
Ctrl+e光标移动命命令行尾也可以使用 End 键
Ctrl+u删除光标前的部分字符串
Ctrl+k删除光标后的部分字符串
光标向右移动一个字符
光标向右移动一个字符
Backspace/Delete删除光标前 / 后的一个字符

关于 Tab 的补充:

​ 由于很定shell命令的开头字母是相同的, 在这种情况下, 按一次Tab是不会自动补齐的,我们可以连续按两次Tab键,在当前终端中就可以显示出所有匹配成功的shell命令
​ 为了能够快速补全 shell 指令,我们可以多输入一些前缀字符之后,再按 Tab 键








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

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

相关文章

Android Framework基础面试篇~

在Android应用开发面试中,针对Framework的问题是常被考察的。以下是一些常见的Framework金典面试题目及其详解: 1. 什么是Android应用生命周期?你能描述一下它包含哪几个阶段吗? Android应用生命周期指的是应用从启动到关闭的整…

[oeasy]python0048_注释_comment_设置默认编码格式

注释Comment 回忆上次内容 使用了版本控制 git 制作备份进行回滚 尝试了 嵌套的控制结构 层层 控制 不过 除非 到不得以尽量不要 太多层次的嵌套 这样 从顶到底含义 明确而且 还扁平 扁平 也能 含义明确 还可以 做点什么? 让程序含义 更加明确呢?&…

数据结构学习分享之栈和队列详解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:数据结构学习分享⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你了解更多数据结构的知识   🔝🔝 数据结构第五课 1. 前言&a…

文心一言 VS chatgpt (14)-- 算法导论3.2 2~3题

二、证明等式(3.16):a ^ {\log_b c} c ^ {\log_b a}。 文心一言: chatgpt: 我们需要证明的等式为: a log ⁡ b c c log ⁡ b a a^{\log_b c} c^{\log_b a} alogb​cclogb​a。 首先,将 l…

时序预测 | MATLAB实现ARIMA-BP组合模型时间序列预测

时序预测 | MATLAB实现ARIMA-BP组合模型时间序列预测 目录 时序预测 | MATLAB实现ARIMA-BP组合模型时间序列预测预测效果基本介绍模型原理程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现ARIMA-BP组合模型时间序列预测。 模型原理 ARIMA-BP组合模型是一种常用的时间…

2023年第二届材料科学与工程国际会议(CoMSE 2023) | IOP-JPCS出版

会议简介 Brief Introduction 2023年第二届材料科学与工程国际会议(CoMSE 2023) 会议时间:2023年7月21日-23日 召开地点:中国泰州 大会官网:www.icomse.org CoMSE 2023由四川大学、华南理工大学亚热带建筑科学国家重点实验室、国际电气电子和…

PCL学习四:RANSAC-随机采样一致性

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 1. RANSAC 概念及作用 RANSAC(Random Sample Consensus,随机采样一致性)是一种迭代方法,作用:从包含异常值的一组数据中估计数学模型的参数,RANSAC 算…

AIGC:【LLM(一)】——LoRA微调加速技术

文章目录 一.微调方法1.1 Instruct微调1.2 LoRA微调 二.LoRA原理三.LoRA使用 一.微调方法 Instruct微调和LoRA微调是两种不同的技术。 1.1 Instruct微调 Instruct微调是指在深度神经网络训练过程中调整模型参数的过程,以优化模型的性能。在微调过程中&#xff0c…

Flutter——最详细(TextField)使用教程

TextField简介 文本输入框,拥有复杂的属性。可指定控制器、文字样式、装饰线、行数限制、游标样式等。监听输入框变动事件。 使用场景: 搜索框,输入账号密码等 属性作用controller输入框监听器decoration输入框装饰属性textAlign内容对齐方式…

UE5.1.1 C++ 从0开始 (1.人物移动)

开个天坑,UE5.1.1的移动代码做了一个大更新,对于我这种万年蓝图然后正在转C的人来说可以说是个挑战也可以说是个更方便我去工作的一个点。同时斯坦福大学的那个教程的开头几个章节就不适用了,对于学习UE5.1.1的同学来说。所以我这里会尽量每天…

[230506] 2021年托福阅读真题第6篇|Water and Life on Mars|15:30~16:30|16:30~19:19

正确率:6/10 ​​​​​​​ Water and Life on Mars Paragraph 1: The question of life on Mars depends heavily on the characteristics of its air and water. Mars has a relatively thin and dry atmosphere, with a high percentage of carbon dioxide com…

想转行大数据,需要学习什么?

Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作&#xff0…

Spark大数据处理讲课笔记3.7 Spark任务调度

文章目录 零、本节学习目标一、有向无环图(一)DAG概念(二)实例讲解 二、Stage划分依据(一)两阶段案例(二)三阶段案例 三、RDD在Spark中的运行流程(一)RDD Obj…

buuctf7

目录 Crypto MD5 Url编码 看我回旋踢 web [极客大挑战 2019]BuyFlag​ [BJDCTF2020]Easy MD5 Crypto MD5 1.下载文件 2.md5在线解密 3.外包flag Url编码 使用url在线解码 看我回旋踢 下载,得到这串字符,搜一下synt编码 看到使用凯撒密码&#x…

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。 答案2023-05-04: 这段代码实现了使用 libswscale 库进行视频缩放的功能。下面是程序的主要流程: 1.获取命令行参…

唐书计组第三章总线部分课后习题和解答

我自己的一些总结 总线周期分为哪四个阶段 申请分配阶段寻址阶段存数阶段结束阶段 总线分为哪四种通信方式 同步通信异步通信半同步通信分离式通信 总线有哪几种判优方式 链式查询 计数器定时查询 独立请求方式 计算数据传输率 3.14设总线的时钟频率为8MHz,一个总线周期…

(3)信号槽

目录 1.信号槽的概念 2.信号槽的连接 2.1自带信号 → 自带槽 2.2 自带信号 → 自定义槽 2.3 自定义信号 1.信号槽的概念 信号槽指的是信号函数与槽函数的连接,可以使用不同的对象通过信号槽连接在一起,从而实现对象之间的通信。 可以把信号槽的连接…

数字化经营3.0阶段,云徙科技如何定义“为增长而生”?

作者:Lucky 新时代风云变幻中,通过数字化转型,驱动业务增长、提升运营效率是企业升级的必由之路。如今,数字化经营也已经进入3.0阶段,企业对“人、货、场”三位一体的前端数字化的要求更高,行业也需要更有效…

Java设计模式-建造者模式

简介 建造者模式是一种创建型设计模式,用于将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通过将复杂对象的构建过程分解为多个简单的步骤来实现。 与其他创建型模式不同,建造者模式强调的是将构建过…

QML路径视图(The PathView)

路径视图(PathView)非常强大,但也非常复杂,这个视图由QtQuick提供。它创建了一个可以让子项沿着任意路径移动的视图。沿着相同的路径,使用缩放(scale),透明(opacity&…