Linux面试题及答案(2024最新详细版)

Linux面试题及答案(2024最新详细版)-mikechen

Linux面试题是经常在Java面试被问到的,下面重点详解最常见的Linux面试题及答案。

1.什么是Linux?有什么特点?

Linux是一种开源操作系统,它是在 1991 年由芬兰人 Linus Torvalds 开发出来的, Linux 是基于 Unix 操作系统的,它提供了与 Unix 类似的文件系统、进程管理、网络连接等功能。

Linux 操作系统的优点非常多,其中最重要的是它是免费的,可以自由使用和修改,它还具有很高的稳定性和安全性,适用于各种类型的应用场景,包括个人电脑、服务器等。

 

2.Linux 的发行版有哪些?

常见的 Linux 发行版包括: Ubuntu、Debian、CentOS、Red Hat、Fedora、openSUSE 等。

 

3.Linux核心组件有哪些?

Linux 由 4 个基本组件构成:

1)Kernel

Kernel是Linux系统的核心,它负责与硬件组件交互,并确保操作系统与硬件设备进行通信。

2)Shell

Shell 是 Linux 用户和内核之间的接口,在 Shell 中命令由用户发出,然后由操作系统执行。

3)系统库

这些是特殊程序或函数,它们负责实现操作系统的大部分功能,而不依赖于内核模块的代码访问权限。

4)系统实用程序

这些是执行某些任务的特定程序,例如:LibreOffice、Brasero、Gparted。

 

4.Linux系统的文件结构?

如下图所示:

Linux面试题及答案(2024最新详细版)-mikechen

常见目录说明:

  • /bin: 存放二进制可执行文件,常用命令一般都在这里;
  • /etc: 存放系统管理和配置文件;
  • /home: 存放所有用户文件的根目录,是用户主目录的基点;
  • /usr: 用于存放系统应用程序;
  • /opt: 额外安装的可选应用程序包所放置的位置,比如:可以把tomcat等都安装到这里;
  • /proc: 虚拟文件系统目录,是系统内存的映射;
  • /root: 超级用户,系统管理员的主目录;
  • /sbin: 存放二进制可执行文件,只有root才能访问;
  • /dev: 用于存放设备文件;
  • /boot: 存放用于系统引导时使用的各种文件;
  • /lib: 存放着和系统运行相关的库文件 ;

 

5.Linux架构?

如下图所示:

Linux面试题及答案(2024最新详细版)-mikechen

Linux体系结构可以分为两块:内核空间和用户空间。

1)用户空间(User Space)

用户空间包括:用户的应用程序(User Applications)、C 库(C Library) 。

2)内核空间(Kernel Space)

内核空间包括:系统调用接口、内核(Kernel)、平台架构依赖代码、以及硬件平台。

 

6.什么是Linux内核?主要作用有哪些?

Linux内核是Linux系统的核心,它将底层硬件与操作系统连接起来。

Linux内核如下图:

Linux面试题及答案(2024最新详细版)-mikechen
内核的用途主要有以下 5项工作:

1)内存管理

负责管理内存资源,以便让各个进程可以安全地共享机器的内存资源。

2)进程管理

负责管理CPU资源,确定哪些进程可以使用中央处理器,以及何时使用,以及持续多长时间,以便让各个进程可以以尽量公平的方式访问CPU。

3)设备驱动程序

充当硬件与进程之间的调解程序,解释程序。

4)虚拟文件系统

Linux内核将不同功能的外部设备,例如:Disk设、输入输出设备、显示设备等等,抽象为可以通过统一的文件操作接口。

比如:open、close、read、write等来访问,这就是Linux系统“一切皆是文件”的体现。

5)进程间通信

IPC不管理任何的硬件,它主要负责Linux系统中进程之间的通信。

 

7.什么是Linux进程通信?

进程间通信简称:IPC(Interprocess communication),进程间通信就是在不同进程之间传播或交换信息。

为什么需要进程通信?

linux环境下进程地址空间相互独立,每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另外一个进程中都看不到,所以进程和进程之间不能相互访问。

Linux面试题及答案(2024最新详细版)-mikechen

要交互数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区中把数据读走,内核提供的这种机制称为:进程间通信。

 

8.Linux进程通信有哪些方式?

有如下方式:

  • 管道(pipe);
  • 信号(signal);
  • 消息队列;
  • 共享内存;
  • 信号量;
  • 套接字(socket);

 

9.查看文件内容有哪些命令可以使用?

vi 文件名 :编辑方式查看,可修改;

cat 文件名 :显示全部文件内容;

more 文件名 :分页显示文件内容;

less 文件名 :与 more 相似,更好的是可以往前翻页;

tail 文件名 :仅查看尾部,还可以指定行数;

head 文件名 :仅查看头部,还可以指定行数;

 

10.Linux远程连接工具有哪些?

FinalShell(推荐):功能强大,颜值高,好操作;

XShell:个人用免费/商用收费;

Putty:免费开源的;

SecureCRT:收费;

MobaXterm:免费;

 

11.Linux常见命令有哪些?

1)查看进程:

比如:

ps aux | grep java

ps ef | grep rocketmq

2).删除进程:

kill 9 -s uid

 

3).查找文件

格式:

find . -type f -name "*.txt"

比如:查找目录下大于100M的文件:

find . -type f -size  100M

 

4)在文件内容中搜索

命令:

grep -ri search_term

find命令根据文件的名称和类型来搜索文件,如果你想根据文件的内容进行搜索,你可以使用grep命令。

 

5)系统命令

  • uname -a 查看内核、操作系统,cpu信息
  • env 查看环境变量,资源
  • top 查看内存,CPU使用情况,和资源管理器一样
  • free -m 查看内存使用量和交换区使用量
  • fdisk -l 查看所有分区
  • id 查看用户信息
  • hostname 查看计算机名
  • netstat -rn 查看gataway
  • cat /etc/resolv.conf 查看DNS
  • clear 清屏
  • kill 杀死某进程
  • sudo apt-get install softName 安装软件

以上就是常见的Linux面试题详解,更多的Java面试题及答案,请查看:1000+Java面试题及答案详解

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法