猿创征文|Java面试之Linux篇(offer 拿来吧你)

现在关于Java面试的资料是层出不穷,对于选择困难症的同学来说,无疑是陷入了一次次的抉择与不安中,担心错过了关键内容,现在小曾哥秉持着"融百家之所长,汇精辟之文档"的思想,整理一下目前主流的一些八股文,以达到1+1 > 2 的效果!

文章目录

      • 1、Linux介绍
      • 2、Unix和Linux有什么区别?
      • 3、什么是 Linux 内核?
      • 4、Linux的目录结构
      • 5、Linux 系统启动过程
      • 6、常用的Linux命令
        • 6.1 文件基本属性命令
        • 6.2 文件与目录管理
        • 6.3 Linux 用户和用户组管理
      • 7、软链接与硬链接的区别
      • 8、用户进程间通信主要哪几种方式?

1、Linux介绍

linux是一种自由和开放源码的类Unix操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c++/php/python/java/go)都会部署到Linux/unix系统上。

常见的操作系统(windows、IOS、Android、 MacOS, Linux, Unix)
猿创征文|Java面试之Linux篇(offer 拿来吧你)_第1张图片

2、Unix和Linux有什么区别?

猿创征文|Java面试之Linux篇(offer 拿来吧你)_第2张图片

  • 开源性: Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。
  • 跨平台性: Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。
  • 可视化界面: Linux除了进行命令行操作,还有窗体管理系统;Unix只是命令行下的系统。
  • 硬件环境: Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,按照难度较大。
  • 用户群体:Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。
  • 相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用!

3、什么是 Linux 内核?

  • Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
  • 系统内存管理
  • 应用程序管理
  • 硬件设备管理
  • 文件系统管理

4、Linux的目录结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
猿创征文|Java面试之Linux篇(offer 拿来吧你)_第3张图片

常用的目录
/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。

5、Linux 系统启动过程

linux系统启动过程主要分为5个阶段:内核的引导、运行 init、系统初始化、建立终端 、用户登录系统。
猿创征文|Java面试之Linux篇(offer 拿来吧你)_第4张图片

  1. 内核的引导 :当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。

操作系统接管硬件以后,首先读入/boot 目录下的内核文件。

  1. 运行init: init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。

init 程序首先是需要读取配置文件 /etc/inittab

  1. 运行级别 : Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

Linux系统有7个运行级别(runlevel):
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

  1. 系统初始化 : 它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
  2. 建立终端:init接下来会打开6个终端,以便用户登录系统。
  3. 用户登录系统 :(1)命令行登录(2)ssh登录(3)图形界面登录

6、常用的Linux命令

6.1 文件基本属性命令

使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change owner) : 修改所属用户与组。

-c 显示更改的部分的信息 chown -c :mail t.log 改变文件群组
-R 处理指定目录及子目录 chown -cR mail: test/ 改变文件夹及子文件目录属主及属组为 mail

  • chmod (change mode) : 修改用户的权限。

常用参数
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
权限范围
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
-:删除权限,用数字0表示
s :特殊权限

chmod 实例: chmod a+x t.log 所有用户可执行权限:a+x
chmod u=r t.log 撤销所有的权限 +赋予可读权限:u=r

6.2 文件与目录管理

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:makedirectory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:movefile): 移动文件与目录,或修改文件与目录的名称

6.3 Linux 用户和用户组管理

Linux系统用户账号的管理:

  • useradd 选项 用户名 添加新的用户账号使用useradd命令
  • userdel 选项 用户名 userdel 选项 用户名
  • usermod 选项 用户名 修改已有用户的信息使用usermod命令
  • passwd 选项 用户名 指定和修改用户口令的Shell命令是passwd

Linux系统用户组的管理

  • groupadd 选项 用户组 增加一个新的用户组使用groupadd命令
  • groupdel 用户组 如果要删除一个已有的用户组,使用groupdel命令
  • groupmod 选项 用户组 修改用户组的属性使用groupmod命令

Linux 磁盘管理

  • df(英文全称:disk free):列出文件系统的整体磁盘使用量
  • du(英文全称:disk used):检查磁盘空间使用量
  • fdisk:用于磁盘分区

文档编辑命令

  • grep 命令:强大的文本搜索命令 grep [option] pattern file|dir

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

还有很多常用命令,就简单的列举一下,其他命令,可以直接查询这个链接 Linux 命令大全

find 命令 : 用于在文件树中查找文件,并作出相应的处理。
head 命令 : head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行
less 命令 : 使用 less 可以随意浏览文件,在查看之前不会加载整个文件
locate 命令 : locate 与 find 命令相似,可以使用如 *、? 等进行正则匹配查找
more 命令 : more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
vim 命令 : 文本编辑器

7、软链接与硬链接的区别

软链接
1.以路径的形式存在。类似于Windows操作系统中的快捷方式
2.可以 跨文件系统 ,硬链接不可以
3.可以对一个不存在的文件名进行链接
4.可以对目录进行链接

硬链接
1.以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.只有在同一个文件系统中才能创建

8、用户进程间通信主要哪几种方式?

1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
2、信号(signal) 。
3、消息队列。
4、共享内存。
5、信号量。
6、套接字(socket) 。

欢迎各位小伙伴们阅读以下内容,定能收获满满!
参考文档:
知乎:https://zhuanlan.zhihu.com/p/471650456
菜鸟教程: https://www.runoob.com/linux/linux-tutorial.html
韩顺平老师 :2021图解Linux全面升级

你可能感兴趣的:(面试训练营,linux,java,面试,Offer拿来吧你)