Linux面试题总结(2022最新版)

2023-05-16

关于作者
🐶 程序猿周周
⌨️ 短视频小厂BUG攻城狮
🤺 如果文章对你有帮助,记得关注、点赞、收藏,一键三连哦,你的支持将成为我最大的动力

本文是《后端面试小册子》系列的第 5️⃣ 篇文章,该系列将整理和梳理笔者作为 Java 后端程序猿在日常工作以及面试中遇到的实际问题,通过这些问题的系统学习,也帮助笔者顺利拿到阿里、字节、华为、快手等多个大厂 Offer,也祝愿大家能够早日斩获自己心仪的 Offer。

标题地址
MySQL数据库面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/122910606
Redis面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/122934938
计算机网络面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/122973684
操作系统面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/122994599
Linux面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/122994862
Spring面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123016872
Java基础面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123080189
Java集合面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123171501
Java并发面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123266624
Java虚拟机面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123412605
Java异常面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123462676
设计模式面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123490442
Dubbo面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123538243
Netty面试题总结(2022版)https://blog.csdn.net/adminpd/article/details/123564362

文章目录

  • 一、概念
      • 1、如何理解一切接文件?
  • 二、命令
      • 1、说一下用户权限配置?
      • 2、哪些常用命令?
      • 3、常用命令的参数理解?
  • 三、实操
      • 1、有哪些抓包方式?
      • 2、CPU 负载过高如何处理?
      • 3、服务响应慢改如何排查?

一、概念

1、如何理解一切接文件?

Linux 中所有内容都是以文件的形式保存和管理,包括一切软硬件。 这样做最明显的好处是,开发者仅需要一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。同时也带来不利之处,如使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。

二、命令

1、说一下用户权限配置?

使用 chown(change mode) 命令修改文件目录的权限,其中读写执行的权限值分别是 4、2、1,同时三组数字包含所有者,同组用户,其他用户的权限。

2、哪些常用命令?

1)pwd:显示当前所在位置;

2)su:申请切换root用户,需要输入root用户密码(sudo su是当前用户暂时申请root权限,需要输入当前用户密码);

3)grep:要搜索的字符串 要搜索的文件 --color : 搜索命令,–color 代表高亮显示;

4)ps -ef || ps -aux:两者的区别是展示格式不同(System V风格和BSD风格);

5)kill -9 [pid] : 销毁进程(-9表示强制停止),先用ps查找进程,然后用kill掉;

6)find :寻找;

7)tar -zcvf :打包并压缩文件 ;tar -xvf 压缩文件 - C 解压的位置 : 解压压缩包;

8)free : 显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存;

9)wget : 是从远程下载的工具 ; curl ;

10)top : 监控系统状况,比如CPU、内存的使用,显示系统上正在运行的进程 load average(系统负载,就是进程队列的长度);

11)vmstat : 虚拟内存性能监控、CPU 监控。

ref

3、常用命令的参数理解?

[Linux常用命令的常用参数](https://www.cnblogs.com/autoria/p/6123449.html

三、实操

1、有哪些抓包方式?

  • tcpdump https://www.cnblogs.com/fonxian/p/6565209.html

  • wireshark https://blog.csdn.net/hnjb5873/article/details/48657001

2、CPU 负载过高如何处理?

系统平均负载被定义为在特定时间间隔内运行队列中(在 CPU 上运行或者等待运行多少进程)的平均进程数。

如果一个进程满足以下条件则其就会位于运行队列中:

  • 它没有在等待 I/O 操作的结果
  • 它没有主动进入等待状态(没有调用 wait
  • 没有被停止(如等待终止)

在 Linux 中,进程分为三种状态,一种是阻塞的进程(blocked process),一种是可运行的进程(runnable process),另外就是正在运行的进程(running process)。

进程可运行状态时,它处在一个运行队列 run queue 中,与其他可运行进程争夺 CPU 时间。系统的 load 是指正在运行和准备好运行的进程的总数。 比如现在系统有 2 个正在运行的进程,3 个可运行进程,那么系统的 load 就是 5。load average 就是一定时间内的 load 数量。

一般来说只要每个CPU的当前活动进程数不大于 3 那么系统的性能就是良好的,如果每个 CPU 的任务数大于 5,那么就表示这台机器的性能有严重问题。

排查思路

1)首先通过命令 ps ux 排查哪些进程 cpu 占用率高;

2)查看对应 java 进程的每个线程的 CPU 占用率。通过命令 ps -Lp 15047 cu

3)追踪线程内部,查看 load 过高原因。通过命令 jstack 15047

当然第三步也可打印线程 jstack pidof java > stack.out,查找到对应的 threadid,再反查代码。

cpu load过高问题排查

3、服务响应慢改如何排查?


PS:《后端面试小册子》已整理成册,目前共十三章节,总计约二十万字,欢迎👏🏻关注公众号【程序猿周周】获取电子版和更多学习资料(最新系列文章也会在此陆续更新)。公众号后台可以回复关键词「电⼦书」可获得这份面试小册子。文中所有内容都会在 Github 开源,项目地址 csnotes,如文中存在错误,欢迎指出。如果觉得文章还对你有所帮助,赶紧点个免费的 star 支持一下吧!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux面试题总结(2022最新版) 的相关文章

  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写

随机推荐