55道<Linux>面试题(超级易懂版)

1. 什么是 Linux 及其基本组件?

Linux 就像是电脑的“大脑”,控制着所有的硬件和软件。它主要用于服务器、开发人员的电脑,还有智能设备比如手机和电视。

Linux 有四个基本部件:

  • 内核 (Kernel):这是核心部分,就像电脑的大脑,负责管理和协调硬件资源。
  • Shell:这是用户和内核之间的翻译器。用户输入命令后,Shell 把这些命令翻译成电脑能懂的指令。
  • 系统库 (System Libraries):这些是特殊的程序,提供操作系统的大部分功能,不需要直接访问内核。
  • 系统工具 (System Utilities):这些是特定的程序,比如 LibreOffice(办公软件),用来执行某些任务。

2. 什么是 Linux 内核?

Linux 内核 是 Linux 系统的核心部分,它连接了底层硬件和操作系统,确保硬件和软件能协同工作。

3. Linux 和 Unix 有什么区别?

Linux 是从 Unix 演变而来的一个克隆版本。Linux 是开源和免费的,而 Unix 通常是专有和收费的。

4. 什么是 Linux 中的 inode?如何找到与文件关联的 inode?

inode 就像是文件的身份证。在 Unix 风格的文件系统中,文件创建时会分配一个唯一的 inode 编号。这个编号包含了文件的元数据(比如权限、所有者、大小、位置等)。通过 ls -i 命令可以查看文件的 inode 编号。

5. 什么是 Linux shell?如何检查当前的 shell?

Linux shell 是一个命令解释器。要检查当前使用的 shell,可以运行 echo $0 命令。

6. 用什么命令查找内存和交换使用情况?

使用 free 命令可以查看内存和交换空间的使用情况。

7. 软链接和硬链接的区别?

  • 硬链接:只能链接文件,删除原文件硬链接仍然存在。
  • 软链接(符号链接):可以链接目录,删除原文件软链接失效。

8. 解释 Linux 中的文件权限?

文件权限有读(Read)、写(Write)和执行(Execute)。这些权限可以分配给文件的所有者、组和其他用户。

9. 如何在 Linux 中创建和删除目录?

使用 mkdir 创建目录,使用 rmdir 或 rm -r 删除目录。

10. 如何在 Linux 中创建文件?

使用 touch 命令创建文件,也可以使用 cat > filename 创建并编辑文件。

11. 如何在 Linux 中重命名文件和目录?

使用 mv 命令重命名文件或目录。

12. 如何在 Linux 中复制文件和目录?

使用 cp 命令复制文件或目录。

13. 如何在 Linux 中列出和挂载设备?

使用 df -aTh 或 findmnt 可以列出挂载点。

14. 如何在 Linux 中创建空文件?

使用 touch new_file 创建一个空文件。

15. 如何在 Linux 中调度任务?什么是 crontab 并解释 crontab 中的字段?

cron 是一个调度工具,用来在特定时间执行命令。crontab 是用来管理 cron 作业的表。格式如下:

* * * * * command
| | | | | 
| | | | +-- 年 (可选)
| | | +---- 星期几 (0 - 7) (0 和 7 都是星期天)
| | +------ 月 (1 - 12)
| +-------- 日 (1 - 31)
+---------- 时 (0 - 23)
+---------- 分 (0 - 59)

16. 你知道哪些基本的 Vim 命令?

  • 保存文件ESC -> :wq! 或 :ZZ
  • 退出文件ESC -> :q
  • 跳到文件中特定行1G 跳到文件开头,G 跳到文件末尾

17. 如何将二进制文件添加到 $PATH 变量中?

使用 export PATH=$PATH:/path/to/the/binary/file

18. 解释 Grep 命令和正则表达式?

Grep 用于搜索文本中的匹配行,例如 ls | grep cron 会在 ls 命令输出中查找包含 "cron" 的行。

19. umask 和 ulimit 有什么区别?

umask 控制新文件和目录的默认权限,ulimit 控制用户进程的资源限制。

20. 解释 ls 命令在 Linux 中的输出?

ls 列出目录内容,可以显示文件权限、大小、修改时间等信息。

21. 解释 Linux 中 top 命令的输出?

top 是一个实时系统监控工具,显示系统负载、CPU 和内存使用情况等信息。

22. Linux 中的进程状态有哪些?

主要有四种状态:运行中、等待中、停止和僵尸。

23. 如何在 Linux 中备份或归档文件(tar 命令)?

使用 tar -cvf 备份目录,例如 tar -cvf backup.tar /path/to/directory

24. 如何停止 Linux 中正在运行的进程?

使用 kill 命令,后跟进程的 PID,例如 kill 3836

25. 如何在 Linux 中搜索文件?

使用 locate 或 find 命令

26. 如何检查某项服务是否在运行?

使用 systemctl status service_name

27. 如何在重启时启动服务?

使用 systemctl enable service_name

28. 如何启动和停止服务?

使用 systemctl start service_name 启动服务,systemctl stop service_name 停止服务。

29. 如何远程登录另一台 Linux 电脑?

可以使用 SSH 或 VNC 服务。

30. 如何查看磁盘使用情况?

使用 df 命令查看硬盘使用情况,使用 du 命令查看特定目录的使用情况。

31. 为什么要使用导出命令?

export 命令用于标记和导出环境变量,使其在子进程中可用。

32. 如何使用 bash 脚本从多个 Linux 服务器获取版本?

编写一个脚本,通过 SSH 登录到服务器并获取内核版本:

#!/bin/bash

serverlist='server_list.txt'
servers=`cat $serverlist`
result='result.txt'

echo -e "Servername \t\t kernel version"> $result

for server in $servers
do
  kernel=`ssh root@${server} "uname -r"`
  echo -e "$server \t\t $kernel" >> $result
done

33. Linux 安装的最低要求是什么?

典型要求

  • 25 GB 硬盘空间:你需要一个足够大的地方来安装和存储文件。
  • 2 GB 内存:相当于你电脑的“短期记忆”需要足够大,才能运行系统和程序。
  • 2 GHz 双核处理器:就像你的电脑大脑,需要足够快才能处理任务。
  • 1024x768 屏幕分辨率:屏幕需要足够清晰,才能正常显示界面。
  • CD/DVD ROM 或 USB 端口:用来安装系统的时候,需要有一个接口插入安装盘或U盘。

34. 如何设置 Linux 文件/目录权限?

使用 chmod 命令,例如 chmod 664 filename 设置文件权限。就像在你的门上设置不同的锁,控制谁能读、写、执行文件。

35. 如何设置文件/目录的所有权?

使用 chown 命令,例如 chown user:user filename。就像把一本书的所有权从一个人转移给另一个人。

36. 如何在 Linux 中创建用户和组?

使用 adduser 命令,例如 adduser user_name 创建用户。就像在你的电脑里给一个新朋友创建一个专属账号。

37. 如何在 Linux 中查找内核/操作系统版本?

运行 uname -a 命令。就像你查找你手机的系统版本号一样,可以看到详细信息。

38. 如何查找接口 IP 地址?

使用 ifconfig 或 ip addr show 命令。就像你查看你家网络的IP地址,知道你的设备在网络上的位置。

39. 什么是 initrd 镜像?

initrd 是在实际根文件系统可用之前的初始根文件系统,帮助加载必要模块。就像你启动电脑时先要加载一些必要的东西,才能继续完成启动。

40. 解释 SUID、SGID 和粘滞位?

  • SUID:执行文件时继承文件所有者的权限。就像别人拿着你的钥匙去做某事。
  • SGID:执行文件时继承文件组的权限。就像在一个小组里,大家都能用组里的工具。
  • 粘滞位:文件夹中的文件只能由所有者删除。就像公共冰箱里的食物,只有主人能拿走自己的东西。

41. Linux 中的运行级别是什么,如何更改它们?

运行级别定义系统的不同状态

  • 0:关机
  • 1:单用户模式
  • 3:多用户文本模式
  • 5:多用户图形界面模式
  • 6:重启

可以通过 init 命令更改运行级别,例如 init 3 切换到运行级别 3。就像你选择电脑是关机、重启还是进入不同的使用模式。

42. 什么是 SELinux?

SELinux 是一个安全功能,用于保护服务器免受错误配置和受损守护程序的影响。就像给你的电脑加了一个更强的防火墙。

43. 选择 5 个 Linux 中常用的网络命令?

  • ping:检查网络连通性,就像打电话确认对方是否在线。
  • netstat:查看网络状态,就像查看你家里有哪些设备连上了网络。
  • ifconfig:查看和配置网络接口,就像配置你家路由器的连接信息。
  • traceroute:跟踪数据包路径,就像追踪一个包裹的运输路线。
  • nslookup:查询 DNS 记录,就像查询一个电话号码的归属地。

44. 基于名称的虚拟主机和基于IP的虚拟主机有什么区别?

虚拟主机是用来在一台服务器上托管多个网站的。这里有两种方式:

  • 基于IP的虚拟主机:每个网站都有自己独立的IP地址。例如,网站A用IP地址1.2.3.4,网站B用IP地址5.6.7.8。
  • 基于名称的虚拟主机:多个网站共享同一个IP地址,但通过不同的域名区分。例如,网站A和网站B都用IP地址1.2.3.4,但网站A用域名www.siteA.com,网站B用域名www.siteB.com。

打个比方:基于IP的虚拟主机就像一栋楼里每个住户都有自己的门牌号(IP地址),而基于名称的虚拟主机就像每个住户在同一个门牌号(IP地址)里,但有各自不同的名字(域名)。

45. 网络绑定有什么优势?

网络绑定是把多个网络接口捆绑在一起,形成一个虚拟接口。这样做有几个好处:

  • 冗余和容错:如果一个网络接口坏了,另一个会自动接替,保证网络不中断。
  • 负载平衡:多个接口一起工作,可以分担网络流量,提高整体网络速度。

打个比方:这就像把几条小溪合并成一条大河,不仅水流更稳定,而且流量更大。

46. /etc/passwd 和 /etc/shadow 文件有什么用?

  • /etc/passwd 文件:保存了所有用户的基本信息,比如用户名、用户ID、组ID、主目录和默认shell。
  • /etc/shadow 文件:保存了用户的加密密码和一些额外的密码相关信息,比如密码的有效期。

打个比方:/etc/passwd 文件就像一本地址簿,列出了每个用户的名字和住址;/etc/shadow 文件就像一本保险箱,里面锁着每个用户的密码。

47. 为什么要设置无密码的SSH登录?

为了提高安全性,很多组织使用基于密钥的身份验证来代替基于密码的身份验证。具体操作是:

  • 公钥放在服务器上
  • 私钥保存在客户端

这样,即使有人知道了你的用户名和密码,也无法登录,因为还需要对应的私钥。

打个比方:基于密码的登录就像用钥匙开门,基于密钥的登录就像需要指纹识别,即使别人有你的钥匙,也进不去。

48. 什么是 Linux 中的 swappiness?

swappiness 是一个参数,控制系统什么时候把内存中的内容移到交换空间(swap)。交换空间就是硬盘上的一部分,临时用来当内存用。

  • swappiness=0:尽量不要用交换空间,把内容尽量留在物理内存里。
  • swappiness=100:积极使用交换空间,把内容从内存移到交换空间。

打个比方:内存就像你的办公桌,交换空间就像档案柜。swappiness=0 就是尽量把文件放在桌上,方便取用;swappiness=100 就是把文件尽快移到档案柜里,腾出桌面空间。

49. 什么是内核空间和用户空间?

  • 内核空间:操作系统内核运行的区域,有最高权限,可以访问所有硬件资源。
  • 用户空间:普通程序运行的区域,权限有限,不能直接访问硬件资源。

打个比方:内核空间就像是政府高层,可以接触和操作所有国家资源;用户空间就像普通市民,只能使用政府公开的资源。

50. 如何在Linux中查看系统日志?

可以用命令 dmesg 查看内核日志,用 journalctl 查看系统日志。

打个比方:查看系统日志就像翻阅日记,能看到系统每天发生了什么事,哪些程序出错了。

51. 如何在 Linux 中查找文件?

使用 find 命令,例如 find /home -name filename。就像在你的房子里搜索某个特定的东西。

52. 如何查看当前正在运行的进程?

使用 ps 或 top 命令。就像查看你电脑当前有哪些程序在运行。

53. 如何安装软件包?

使用 apt-get 或 yum 等包管理工具,例如 sudo apt-get install package_name。就像从网上下载并安装一个应用程序。

54. 如何查看磁盘使用情况?

使用 df 命令,例如 df -h。就像查看你电脑的硬盘剩余空间。

55. 如何创建和解压缩 tar.gz 文件?

  • 创建tar -czvf filename.tar.gz /path/to/directory
  • 解压缩tar -xzvf filename.tar.gz

就像把一堆文件打包成一个压缩包,或把压缩包解开。

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值