什么是你最好的高级Linux面试问题

有时候在这个网站上有人问什么是一些系统pipe理面试问题。 大部分阅读时,他们都是初级到中级的问题。

我想知道你最好的高级Linuxpipe理面试问题是什么。

我的两个是

1)如果您已经login到系统中,如何停止叉式炸弹

2)你删除了一个日志文件,Apache正在使用,并没有重新启动Apache,你怎么能恢复该日志文件?

  • 如何看共享库依赖?
  • 如何跟踪系统调用和信号?
  • 如何configuration应用程序
  • 如何在文件中打印可打印字符的string?
  • 什么字段存储在一个inode?
  • 什么是nscd?
  • 什么是Automake和Autoconf?
  • 在不使用useradd / adduser的情况下将用户添加到系统的步骤?
  • 如何看ELF文件的外观信息?
  • 什么是MAJOR和MINOR特殊文件的数量?
  • 如何链接图层过滤?
  • 告诉我关于你完成的最后一个主要的Linux项目。 什么是一些障碍,你是如何克服的。 有时候问这些开放的问题将会揭示更多的小问题,Google很容易回答。 一个伟大的高级pipe理人员不需要知道所有事情,但是他们应该能够为不可能的项目提供惊人的解决scheme。
  • 你有贡献任何开源项目? 如果只是文件,无所谓,它显示了一定的工艺奉献精神。

要弄清楚他们有多好,请问开放式问题…

问题:描述一个场景,当你得到一个“文件系统已满”的错误,但' DF '显示有空闲的空间

答案:文件系统可能用完inode,' df -i '会显示。

开放式问题:

  • 告诉我你如何pipe理你的知识数据库(维基,概述,电子表格,纯文本文件),为什么你select特定的选项
  • 你使用版本控制? 哪一个,为什么? 你的提交信息好看吗?

我喜欢问一个问题,我很舒服地问,这是:

告诉我你在最近一段时间内犯的最大错误,以及今天你会如何做。 你从这个经验中学到了什么?

有十年的经验,有很多系统pipe理员。 许多人似乎连续10年都是同一年。 我希望在我的团队中拥有10个不同的,逐渐变好的年份。 如果你从来没有犯过一个大错误,那么你是否应该把你的办公桌打包好,你还没有真正住过。 🙂

作为面试官或受访者,我不在乎琐事问题。 我喜欢过去曾经让我的供应商难过的问题,或者那些给我“尤里卡”的问题! 时刻。

我一直是的粉丝

  • 请尽可能详细地描述linux启动过程,从系统启动时开始,到达提示时结束。

我喜欢问一些问题,这些问题表明了人们对不同unix之间差异的了解程度。 我也希望看到一个人有多less了解,linux以一种方式做事情,而不是每个人都这样做。 这些问题中的很多都围绕着默认的Linux工具,例如:

  • 告诉我两种方法来同时redirectstderr和stdin
    • &>>/dev/null 2>&1
    • 演示了bash和bourne shell的知识

另一个关键点:对于高级职位,我期望看到公共写作和演讲技巧的证据。 如果你是一名资深人士,你应该多次在networking和杂志上发表文章。 哎呀,只要有自己的科技博客就足够了。 在会议上至less提交了一篇论文是一个很大的优点。 我认为这尤其与高级Linuxpipe理员分开。

我只是运行'chmod -x / bin / chmod'。 我做了什么? 我如何恢复?

描述TCP的握手过程。

traceroute如何工作?

什么时候可能需要使用CTRL-Z或CTRL-D?

粘性物质是干什么的?

你需要调整哪些内核选项?

你怎么知道你正在运行什么发行版?

你怎么知道你正在运行的硬件?

SAN,NAS和本地磁盘有什么区别?

我有30台服务器,我不知道是否每个都有相同的Apacheconfiguration。 我如何找出有多less份,有什么区别?

什么是chroot监狱?

你怎么知道你是否被黑客入侵?

命名你能想到的所有的两个字母的unix命令,他们做了什么? 如何查看系统上的所有双字母unix命令。

我还要求人们在现场做一些简单的功课。 特别是如果他们说写一些脚本的经验。 我要求他们parsing两个不同的数据文件(一个csv,一个| sv)并有效地进行数据连接。 我把一些小问题(格式不好的数据),缺less连接需要的字段,奇怪的序列数据等。我要求他们发送源代码和输出。 (机器问题风格)我通常给3-4小时的时间窗来解决它。 这个任务已经帮助筛选出许多将“脚本”列为技能的候选人,但是在受到压力时却无法实现基本function。

我最喜欢的结束问题:

如果你被困在只有5个命令行实用程序的荒岛上,你会select哪一个?

我的个人名单:

  • tcpdump的
  • PS
  • lsof的
  • strace的

看pipe理员最舒服的命令是一个简单的问题,而且还有助于用非正统的(有趣的)问题来certificate他们的舒适。 有些受访者对这个问题读得太多,而且心慌。 如果你不能回答这个基本的东西,那么告诉我你对自己的技能没有什么信心。 另一方面,如果你努力想出完美的清单,可能暗示你害怕失败,无法思考。

不可否认,这对于初级/中级申请者来说更有用,但是也可以不问。 🙂

我使用这个:

  • Linux内核启动OOM杀手时发生了什么事情,它如何select首先杀死哪个进程。

和其他我没有从我的头顶上..

我在这里有一个强烈的喜爱。 这个问题对候选人如何面对更高级的问题具有很好的预测价值:

一个用户/同事来找你抱怨,一个名为“-fr”的零长文件出现在某个系统的根目录下。

什么是最简单,最安全和最便携的方式来删除该目录条目,为什么这个问题值得一问?

人们得到了一半的功劳: rm -- -fr或者perl -le 'unlink("-fr");' (他们是有效的,但不是最佳的便携式)。

那些关于shell命令行引用和字符转义的人几乎和那些根本不知道为什么这样的文件名会造成任何问题的人一样危险。

那些笑着说…用“点斜线”说什么,并指出这是在UNIXshell最旧的条目之一来自USENIX的常见问题得到额外的信用。

“你使用的是不是linux的unix,你能告诉我它们之间的一些区别吗?

因为,毕竟,不是全世界都是linux(我已经使用了一些非linux的商业单位和一些非linux的开放的,如果你依靠另一个环境中的技能,你将会拍摄你自己在脚下)。

如果你被困在只有5个命令行实用程序的荒岛上,你会select哪一个?

date whoami echo sleep kill

我会说,我觉得很多“哪里是__,什么是__,怎么样”的问题对我来说都是初级/中级问题。 当我正在面试中级Linux职位时,我会问一些典型的基础知识(什么是内核,符号链接和硬链接有什么区别,如果我从chmod中删除可执行位,该怎么办?) 。 一些我认为是更高级的问题的东西:

  1. 通过SysV init使用systemd有什么好处? 缺点? Debian刚刚进入systemd而不是Upstart。 那是什么原因?
    • 其中一件事就是对Linux社区的兴趣和投资,以及这如何影响系统pipe理员的日常工作。 这表明这个人被告知这个领域是如何演变的,并且(可能)愿意随之改变。
  2. 如果我想在远程服务器上安装Apache,那么最好的办法是什么? 如果我想在100台服务器上做同样的事情怎么办? 如果一半是RHEL而另一半是Debian呢?
    • 熟悉使用第三方软件解决实际问题; 熟悉利用configurationpipe理实用程序。
  3. 在架构级和应用级devise高度可用的应用程序时需要考虑什么?
    • 显示这个人可以考虑一个大问题。 显示他们了解负载平衡如何工作,无状态应用程序,可能会显示有关常见的Apacheconfiguration选项以及用于multithreading应用程序和单个服务器级别性能优化的模块的一些知识。
  4. 微内核和单核内核之间有什么区别? Linux是一个单一的内核有什么好处?
    • 在比用户空间更深层次上显示对Linux系统的熟悉程度。
  5. 如果我通过浏览器input“www.google.com”,然后按回车键,那么从我的关键点开始到页面在浏览器中呈现的时间发生了什么?
    • 即使这个职位不是networking工程师,我希望人们能够在这个微观世界之外思考。 这就涉及到大量的networking基础知识以及它们对于单个系统和小型networking在如何适应大型系统方面的意义。 这可以解决本地浏览器/操作系统DNS高速caching,ARP如何工作,路由表如何工作,什么是recursionDNS查询,BGP / OSPF的重要性以及它们在大型networking中扮演的angular色,通常的SSL握手和密码,TCP连接和其他有用的小花絮的gobs深入研究。

这些只是一些非正式的例子,但我认为一般来说,一个高级pipe理员应该熟悉大的图片概念,而不是仅仅是Google的东西。