【面经】Linux

一、高频

1、Linux常见的指令

  • 路径/目录类
    • cd, mkdir, rmdir, pwd ,ls等重要指令;
    • rmdir 仅能删除空目录,要删除非空目录需使用“ rm -r ”指令;
  • 文件类
    • 创建:mkdir文件夹,touch文件
    • 移动mv
    • 复制cp
    • 修改名字mv
    • 删除rm
    • 打开/编辑gedit/vi
    • 查看:cat正着查看,tac反着查看,nl添加行号,more向后翻页,less可以向前翻页,head 只看头几行,tail 只看尾巴几行,od 以二进制的方式读取文件内容
    • umask 就是指定 “目前使用者在创建文件或目录时候的权限默认值”
    • chattr (设置文件隐藏属性)
    • lsattr (显示文件隐藏属性)
    • 观察文件类型:file
    • 查找文件:which (只能查“可执行文件”),whereis (由一些特定的目录中寻找文件文件名),locate(只加文件名,依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字文件名) / updatedb(用于更新 locate 命令所使用的数据库),find直接搜索磁盘,较慢
    • 权限(chmod XXX)其中111(7)对应rwx。当前用户,用户组,其他用户;chgrp;chown
  • 通讯类:ping ip、ipconfig、hostname -I、netstat
  • 查看:(进程ps)
  • 搜索:grep能使用正则表达式搜索文本,并把匹配的行打印出来。grep [stringSTRING] filename
  • 进程:查看ps,杀掉kill
  • 后台:查看后台任务job -l,把后台任务调到前台执行 fg,把停下的后台任务在后台执行起来 bg

2、Linux与Windows的区别,为什么嵌入式开发用linux?

  1. 开源性质:Linux是一个开源操作系统,其源代码对于用户和开发者来说是可访问和可修改的。这使得开发者能够针对特定的嵌入式系统进行定制和优化,以满足硬件和应用程序的需求。相比之下,Windows系统不开源或半开源,这限制了开发者对系统的完全控制。
  2. 可定制性:Linux内核的开源性质使得嵌入式开发者可以根据具体需求定制和裁剪系统,将其精简为适合特定嵌入式设备的最小系统。这种灵活性使得Linux成为嵌入式设备开发的理想选择。而Windows系统由于其庞大的体积和复杂的结构,很难做到如此高度的可定制性。
  3. 跨平台支持:Linux支持多种硬件架构,包括x86、ARM、MIPS等,可以在不同类型的嵌入式设备上运行。这种跨平台的特性使得开发者可以更方便地在不同的嵌入式平台上进行开发。而Windows系统主要支持x86架构,对于其他架构的支持相对较弱。
  4. 安全性:Linux系统在设计上注重安全性,通过权限管理、内存保护等机制来保护系统免受攻击和破坏。相比之下,Windows系统在过去曾存在过一些安全漏洞和攻击事件,这在一定程度上影响了其在嵌入式开发领域的应用。
  5. 丰富的驱动程序和工具链:Linux环境下有丰富的驱动程序和工具链,包括编译器、调试器、模拟器等,这些工具和资源可以满足嵌入式开发的各种需求。而Windows系统虽然也提供了相应的开发工具链,但在某些方面可能不如Linux系统完善。

3、ps的状态

在 Linux 中,进程可以有多种状态。这些状态在 ps 命令的输出中可以通过特定的符号来表示。以下是一些常见的进程状态及其对应的 ps 输出中的符号:

  1. R (Running or Runnable):

    • 进程正在运行或在运行队列中等待运行。
    • 在 ps 中,这通常显示为 R
  2. S (Interruptible Sleep):

    • 进程在等待某个条件成立(例如,等待 I/O 操作完成)而处于可中断的睡眠状态。
    • 在 ps 中,这通常显示为 S
  3. D (Disk Sleep):

    • 进程在等待 I/O 操作完成(通常是磁盘 I/O),此时它不会被中断。
    • 在 ps 中,这通常显示为 D。注意,这种状态的进程很少见,因为大多数 I/O 操作都是可中断的。
  4. T (Stopped or Traced):

    • 进程已被停止(例如,通过 SIGSTOP 信号)或正在被调试器跟踪。
    • 在 ps 中,这通常显示为 T
  5. Z (Zombie):

    • 进程已终止,但其父进程尚未通过 wait() 或类似的系统调用来获取其终止状态。这样的进程也被称为“僵尸进程”。
    • 在 ps 中,这通常显示为 Z,但注意,ps 的默认输出可能不显示僵尸进程。要查看它们,你可能需要使用特定的选项,如 ps -ef | grep defunct 或 ps -eo pid,stat,cmd | grep Z
  6. I (Idle):

    • 这个状态在某些版本的 Linux 中可能并不常见,但在某些上下文中,它可能表示进程处于空闲状态。
    • 在 ps 中的表示可能因系统而异。
  7. W (Waking):

    • 这个状态在某些系统上可能表示进程正在从睡眠状态唤醒。但在现代的 Linux 系统中,这个状态可能不常见或已被其他状态所取代。
    • 在 ps 中的表示可能因系统而异。

二、基础

1、Linux学什么

  • 计算机基础 (http://www.study-area.org/compu/compu.htm)
  • 网络基础 (http://www.study-area.org/network/network.htm)
  • 计算机概论与硬件相关知识
  • Linux的安装与指令
  • Linux操作系统的基础技能:“使用者、群组的概念”、“权限的观念”,“程序的定义”等等
  • vi文书编辑器
  • Shell与Shell Script的学习
  • 软件管理员
  • 网络基础的创建
  • 网站的架设

2、磁盘分区

1. 分区类型

Linux 支持多种分区方案,但最常见的是基于 GUID 分区表 (GUID Partition Table, GPT) 和传统的 Master Boot Record (MBR) 分区方案。

  • MBR 分区方案:MBR 使用 512 字节的引导扇区,其中 64 字节用于分区表。MBR 分区方案最多支持 4 个主分区,或者 3 个主分区加 1 个扩展分区(扩展分区内可以有多个逻辑分区)。

  • GUID 分区表 (GPT):GPT 克服了 MBR 的限制,允许几乎无限数量的分区,并且支持大于 2TB 的分区。GPT 通常用于需要超过 4 个分区或处理大分区的情况。

2. 分区用途

在 Linux 中,常见的分区用途包括:

  • /boot:存放启动加载器(如 GRUB)和内核文件的分区,通常是一个较小的主分区。

  • /(根文件系统):存放操作系统文件、应用程序和大部分用户数据的分区。

  • /home:存放用户主目录的分区,这样可以将用户数据与操作系统文件分离。

  • /var:存放经常变动的数据,如日志文件、邮件队列等。

  • /usr:存放用户共享的文件和应用程序。

  • 交换空间 (swap):用于虚拟内存,当物理内存不足时,Linux 会使用 swap 空间。

3. 分区工具:MBR 分区表请使用 fdisk 分区, GPT 分区表请使用 gdisk 分区

三、文件

1、Linux的使用者与群组

Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限

2、Linux文件权限

用 su - 切换身份成为root后, 下达“ ls -al ”:ls是“list”的意思,重点在显示文件的文件名与相关属性。而选项“-al”则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为“ . ”的文件)

  1. 第一栏代表文件的类型和权限(10个字符):档案类型、档案拥有者之权限、档案所属群组之权限、其他人之权限
  2. 第二栏表示有多少文件名链接到此节点(i-node)
  3. 第三栏表示这个文件(或目录)的“拥有者帐号
  4. 第四栏表示这个文件的所属群组
  5. 第五栏为这个文件的容量大小,默认单位为Bytes
  6. 第六栏为这个文件的创建日期或者是最近的修改日期
  7. 第七栏为这个文件的文件名

与Windows系统不一样的是,在Linux系统当中,每一个文件都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢? 其实,最大的用途是在“数据安全性”上面的(系统保护、团队开发软件或数据共享的功能)

3、改变文件属性与权限

  • chgrp :改变文件所属群组(change group, 要被改变的群组名称必须要在/etc/group文件内存在才行)
  • chown :改变文件拥有者(change own,使用者必须是已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变;chown还可以直接修改群组的名称,加上-R)
  • chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

    • 各权限的分数对照表:> r:4 > w:2 > x:1,777就是用户、群组和其他都是全部rwx

4、Linux 文件类型

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件(进一步还包括纯文本文件,二进制文件,数据格式文件)
  • 若是[ l ]则表示为链接文件(link file);
  • 若是[ b ]则表示区块设备文件,为设备文件里面的可供储存的周边设备(可随机存取设备);
  • 若是[ c ]则表示字符设备文件,为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)
  • [s] 数据接口文件(sockets)
  • [p] 数据输送档(FIFO, pipe)

5、文件扩展名

只要你的权限当中具有x的话,即代表这个文件具有可以被执行的能力,但不一定执行成功

6、Linux目录配置-FPS标准

7、文件与目录管理

  • cd:变换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录

8、Linux文件系统

Linux文件系统具有以下几个特点:

  1. 树形结构:Linux文件系统采用树状目录结构,具有单一的根目录(/),所有文件和目录都从根目录开始,一层一层向下延伸。
  2. 无结构的字符流式文件:Linux中的文件被视为无结构的字符流,这意味着文件内容可以被视为连续的字符序列,而不考虑其内部的结构或格式。
  3. 动态增长或减少:Linux文件可以动态地增长或减少,即文件的大小可以在使用过程中动态地改变。
  4. 访问权限控制:文件数据可由文件拥有者设置相应的访问权限而受到保护,这有助于保护文件的安全性和完整性。
  5. 设备文件:在Linux中,外部设备(如磁盘设备、键盘、鼠标和串口等)都被看作文件,这使得设备可以通过文件系统隐蔽掉设备特性,从而简化了设备的管理和使用。

Linux支持多种文件系统类型,其中一些常见的包括:

  • EXT系列文件系统:EXT系列文件系统是专门为Linux设计的高性能文件系统,包括EXT2、EXT3和EXT4等版本。这些文件系统具有良好的磁盘空间管理和容错能力,以及较高的性能和可靠性。
  • VFAT文件系统:VFAT文件系统是一种在Windows操作系统下广泛使用的文件系统类型,也称为FAT32。虽然它在Windows中广泛使用,但在Linux中也有一些应用场景。VFAT文件系统具有较好的兼容性,可以在不同的操作系统之间共享文件。

inode是什么?——索引节点

  • inode即为index node,就是索引节点
  • inode表中包含文件系统所有文件列表
  • 一个节点是在一个表项,包含了有关文件的信息(元数据)。
  • 一个文件有且只有一个inode

block是什么?——数据块

  • 文件数据存储在block中
  • 每块block只能存储一个文件
  • block 文件系统的最小存储单位是 1k,2k,4k,2^n

inode与block关系

1.磁盘被分区格式化分区之后,会分为inode和block两部分
2.inode存放文件的属性以及指向文件实体的指针(block的位置)
3.superblock用来存储inode和block的全部信息,包括inode和block的大小,数量,以及block的使用情况。
4.创建了一个文件时会同时创建inode和block,inode用来存储元数据和block指针,block用来存储数据内容。
5.一个block只能被一个文件使用,所以一个block并不是越大越好,当服务器存储的小文件居多,那么block设置的小一点比较好,不会浪费空间。当服务器存储的大数据居多,block设置的大一点比较好。

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

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

相关文章

基于SSM的宠物领养系统的设计与实现

摘要 在当前社会,随着人们生活水平的提高,越来越多的家庭和个人开始养宠物。然而,由于各种原因,一些宠物被遗弃或需要救助,同时也有许多潜在的宠物领养者希望通过正规途径领养宠物。本次设计为宠物救助组织、寻找新家…

蓝桥杯2024【第十五届省赛】Python B (78分题解)

第三年蓝球杯,感觉题目比往年简单多了。题量合适够我这种菜鸟解答... ... 大概可能有45分,希望进省一大三最后i一次机会了55555 进省一了耶耶耶 试题 A: 穿越时空之门(满分) 本题总分:5 分 【问题描述】 随着 202…

【经验】mysql冷热数据分离

使用mysql存储时,为了提升数据的查询效率,降低磁盘存储压力等,我们常常使用"冷热数据分离"分离的方案。即,将数据从所谓的“热表”(即经常有写入和查询操作的活跃表)迁移到“冷表”(用…

Django——中间件

Django——中间件 中间件可以介入 Django 的请求和响应的处理过程,修改 Django 的响应数据。中间件的设计为程序开发者提供了一种无侵入式的开发方式,增强 Django 框架的健壮性。 中间件可以在 Django 处理视图的不同阶段的干预。 Django 框架中原先内…

Python深度学习基于Tensorflow(7)视觉处理基础

文章目录 视觉基础图像基础卷积层:图像的中全连接层的优化卷积核tf.keras中的卷积函数池化层 现代经典网络DenseNet 数据增强 图像的本质是一个矩阵, 矩阵中的一个点就是一个像素,如果像素大小为 1000 1000 1000 \times 1000 10001000&…

代码随想录算法训练营第五十二天|LeetCode300.最大递增子序列、LeetCode674.最长连续递增子序列、LeetCode718.最长重复子数组

LeetCode 300 最大递增子序列 题目链接:300. 最长递增子序列 - 力扣(LeetCode) 【解题思路】 1.确定dp数组含义 dp[i]表示的是i之前以nums[i]为结尾的最长递增子序列的长度 2.确定递推公式 如果nums[i]>nums[j] max(dp[j]1,dp[i]) 3.初…

Scala、Spark SQL 常用方法

目录 数组常用方法 列表操作常用方法 Scala中常用的查看列表元素的方法有head、init、last、tail和take()。 合并两个列表还可以使用concat()方法。 集合操作常用方法 map()方法 foreach()方法 filter()方法 flatten()方法 groupBy()方法 ​编辑 从内存中读取数据创建…

二叉树之左叶子的和

题目: 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24示例 2: 输入: root […

时间瑾眼中的IT行业现状与未来趋势

文章目录 技术革新与行业应用IT行业的人才培养与教育人工智能与机器学习的演进数据安全与隐私保护可持续发展与绿色技术社会责任与道德规范 随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链…

朋友在阿里测试岗当HR,给我整理的面试题文档

以下是软件测试相关的面试题及答案,欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验&…

动手学深度学习18 预测房价竞赛总结

动手学深度学习18 预测房价竞赛总结 李沐老师代码AutoGluonh2o集成学习automlQA 视频: https://www.bilibili.com/video/BV15Q4y1o7vc/?vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 代码: https://www.bilibili.com/video/BV1rh411m7Hb/?vd_sourceeb04…

笔灵ai答辩ppt、轻竹PPT、AIPPT、iSlide:这四款AI PPT工具有何独特优势?

提起PPT,大家的第一反应就是痛苦。经常接触PPT的学生党和打工人,光看到这3个字母,就已经开始头痛了: 1、PPT内容框架与文案挑战重重,任务艰巨,耗费大量精力。 2、PPT的排版技能要求高,并非易事…

springboot整合s3,用ImageIO进行图片格式转换

上次用laravel进行了一些s3得整合&#xff0c;可以看出来其实蛮简单得。 先导包 <dependency><groupId>software.amazon.awssdk</groupId><artifactId>s3</artifactId></dependency> 然后在配置类中写bean private static final String …

【软考】设计模式之观察者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. java示例 1. 说明 1.定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。2.也称为模型-视图模式、源-收听者模式或从属者…

关于Double接收到字符串 插入失败 Overflow Exception trying to bind NaN

前端计算 传值给后端NaN 后端接收到之后直接执行插入操作 报错 Error updating database. Cause: java.sql.SQLException: Internal Error: Overflow Exception trying to bind NaN 如果前端传值 NaN 或者 Infinity java是不报错的 只有插入报错 double result1 10.0 / 0; /…

神经网络复习--数学相关基础知识

文章目录 矩阵范数卷积激活函数信息熵 矩阵 标量&#xff1a;一个标量就是一个单独的数向量&#xff1a;一个向量是一列数。这些数是有序排列的。通过次序中的索引&#xff0c;我们可以确定每个单独的数矩阵&#xff1a;矩阵是一个二维数组&#xff0c;其中的每个元素被两个索…

华为机试打卡 HJ5 进制转换

要机试了&#xff0c;华孝子求捞&#xff0c;功德 描述 写出一个程序&#xff0c;接受一个十六进制的数&#xff0c;输出该数值的十进制表示。 数据范围&#xff1a;保证结果在 1≤&#x1d45b;≤2^31−1 输入描述&#xff1a; 输入一个十六进制的数值字符串。 输出描述…

【JAVA】递归

接着上一讲继续&#xff0c;内容不多&#xff0c;讲解一下递归相关内容。 1. 生活中的故事 从前有坐山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚给小和尚将故事&#xff0c;讲的就是&#xff1a; "从前有座山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚…

uos server 无法通过ssh工具连接

问题现象 uos server 服务器操作系统 在虚拟机中安装好之后&#xff0c;防火墙已经关闭&#xff0c;ssh服务已经启动&#xff0c;但通过finalshell等ssh工具连接报错 &#xff1a;java.net.ConnectException: Connection timed out: connect 经过确认 防火墙已关&#xff0c;s…

48.乐理基础-音符的组合方式-休止符

休止符 音乐中总有一些停顿的地方&#xff0c;一次停顿多久是创作人固定好的&#xff0c;休止符就是用来表示每一次停顿多久 需要停顿的位置就用 0 来表示&#xff0c;数字 0 就是简谱中的休止符 音符有全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符等&…