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系统的文件结构?
如下图所示:
常见目录说明:
- /bin: 存放二进制可执行文件,常用命令一般都在这里;
- /etc: 存放系统管理和配置文件;
- /home: 存放所有用户文件的根目录,是用户主目录的基点;
- /usr: 用于存放系统应用程序;
- /opt: 额外安装的可选应用程序包所放置的位置,比如:可以把tomcat等都安装到这里;
- /proc: 虚拟文件系统目录,是系统内存的映射;
- /root: 超级用户,系统管理员的主目录;
- /sbin: 存放二进制可执行文件,只有root才能访问;
- /dev: 用于存放设备文件;
- /boot: 存放用于系统引导时使用的各种文件;
- /lib: 存放着和系统运行相关的库文件 ;
5.Linux架构?
如下图所示:
Linux体系结构可以分为两块:内核空间和用户空间。
1)用户空间(User Space)
用户空间包括:用户的应用程序(User Applications)、C 库(C Library) 。
2)内核空间(Kernel Space)
内核空间包括:系统调用接口、内核(Kernel)、平台架构依赖代码、以及硬件平台。
6.什么是Linux内核?主要作用有哪些?
Linux内核是Linux系统的核心,它将底层硬件与操作系统连接起来。
Linux内核如下图:
1)内存管理
负责管理内存资源,以便让各个进程可以安全地共享机器的内存资源。
2)进程管理
负责管理CPU资源,确定哪些进程可以使用中央处理器,以及何时使用,以及持续多长时间,以便让各个进程可以以尽量公平的方式访问CPU。
3)设备驱动程序
充当硬件与进程之间的调解程序,解释程序。
4)虚拟文件系统
Linux内核将不同功能的外部设备,例如:Disk设、输入输出设备、显示设备等等,抽象为可以通过统一的文件操作接口。
比如:open、close、read、write等来访问,这就是Linux系统“一切皆是文件”的体现。
5)进程间通信
IPC不管理任何的硬件,它主要负责Linux系统中进程之间的通信。
7.什么是Linux进程通信?
进程间通信简称:IPC(Interprocess communication),进程间通信就是在不同进程之间传播或交换信息。
为什么需要进程通信?
linux环境下进程地址空间相互独立,每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另外一个进程中都看不到,所以进程和进程之间不能相互访问。
要交互数据必须通过内核,在内核中开辟一块缓冲区,进程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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》