【面试 - 八股文】Linux 高频面试题,助你吊打面试官系列

继上次输出【面试-八股文】mysql 万字总结,助你吊打面试官,业界反响还不错

从 linux 基础、三剑客(grep\sed\awk)、shell 脚本编程、文件管理命令、磁盘管理命令、网络通讯命令、系统备份命令 以及 高频面试题角度出发的呕心力作(呵呵呵*2)

只为助你拿下高薪 offer

建议小伙伴先一键三连点赞、关注、收藏(其实收藏对你们帮助大,你点赞+关注就当是温大大的朋友啦,日后朋友有难温大大第一个站出来帮你哟,咱们拒绝白嫖)

目录 0. 基础

  • 0.1 什么是 Linux
  • 0.2 Unix 和 Linux 有什么区别?
  • 0.3 什么是 Linux 内核?
  • 0.4 Linux 的基本组件是什么?
  • 0.5 Linux 的体系结构
  • 0.6 BASH 和 DOS 之间的基本区别是什么?
  • 0.7 Linux 开机启动过程?
  • 0.8 Linux 系统缺省的运行级别?
  • 0.9 Linux 使用的进程间通信方式?
  • 0.10 Linux 有哪些系统日志文件?
  • 0.11 Linux 系统安装多个桌面环境有帮助吗?
  • 0.12 什么是交换空间?
  • 0.13 什么是 root 帐户
  • 0.14 什么是 LILO?
  • 0.15 什么是 BASH?
  • 0.16 什么是 CLI?
  • 0.17 什么是 GUI?
  • 0.18 开源的优势是什么?
  • 0.19 GNU 项目的重要性是什么?

linux 三剑客 grep、sed、awk

  • 1.0 简介
  • 1.1 grep
  • 1.2 sed
  • 1.3 awk
  1. shell
  • 2.1 Shell 脚本是什么
  • 2.2 可以在 Shell 脚本中使用哪些类型的变量?
  • 2.3 Shell 脚本中 if 语法如何嵌套?
  • 2.4 Shell 脚本中 case 语句的语法?
  • 2.5 Shell 脚本中 for 循环语法?
  • 2.6 Shell 脚本中 while 循环语法?
  • 2.7 Shell 脚本中 break 命令的作用?
  • 2.8 Shell 脚本中 continue 命令的作用?
  • 2.9 如何使脚本可执行?
  • 2.10 如何调试 Shell 脚本?
  • 2.11 如何将标准输出和错误输出同时重定向到同一位置?
  • 2.12 如何在 Shell 脚本如何定义函数呢?
  • 2.13 如何执行算术运算?
  1. 文件管理命令
  • 3.1 cat 命令
  • 3.2 chmod 命令
  • 3.3 chown 命令
  • 3.4 cp 命令
  • 3.5 find 命令
  • 3.6 head 命令
  • 3.7 less 命令
  • 3.8 ln 命令
  • 3.9 locate 命令
  • 3.10 more 命令
  • 3.11 mv 命令
  • 3.12 rm 命令
  • 3.13 tail 命令
  • 3.14 touch 命令
  • 3.15 vim 命令
  • 3.16 whereis 命令
  • 3.17 which 命令
  1. 文档编辑命令
  • 4.1 grep 命令
  • 4.2 wc 命令
  1. 磁盘管理命令
  • 5.1 cd 命令
  • 5.2 df 命令
  • 5.3 du 命令
  • 5.4 ls 命令
  • 5.5 mkdir 命令
  • 5.6 pwd 命令
  • 5.7 rmdir 命令
  1. 网络通讯命令
  • 6.1 ifconfig 命令
  • 6.2 iptables 命令
  • 6.3 netstat 命令
  • 6.4 ping 命令
  • 6.5 telnet 命令
  1. 系统管理命令
  • 7.1 date 命令
  • 7.2 free 命令
  • 7.3 kill 命令
  • 7.4 ps 命令
  • 7.5 rpm 命令
  • 7.6 top 命令
  • 7.7 yum 命令
  1. 备份压缩命令
  • 8.1 bzip2 命令
  • 8.2 gzip 命令
  • 8.3 tar 命令
  • 8.4 unzip 命令

0. 基础

0.1 什么是 Linux

  • Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

0.2 Unix 和 Linux 有什么区别?

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

0.3 什么是 Linux 内核?

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

0.4 Linux 的基本组件是什么?

  • 就像任何其他典型的操作系统一样,Linux 拥有所有这些组件:内核,shell 和 GUI,系统实用程序和应用程序。Linux 比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。

0.5 Linux 的体系结构

从大的方面讲,Linux 体系结构可以分为两块:

  • 用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
  • 内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。

为什么 Linux 体系结构要分为用户空间和内核空间的原因?

  • 1、现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。
  • 2、Linux 从 CPU 的角度出发,为了保护内核的安全,把系统分成了两部分。
  • 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移:1)系统调用;2)硬件中断。

0.6 BASH 和 DOS 之间的基本区别是什么?

BASH 和 DOS 控制台之间的主要区别在于 3 个方面:

  • BASH 命令区分大小写,而 DOS 命令则不区分;
  • 在 BASH 下,/ character 是目录分隔符,\作为转义字符。在 DOS 下,/用作命令参数分隔符,\是目录分隔符
  • DOS 遵循命名文件中的约定,即 8 个字符的文件名后跟一个点,扩展名为 3 个字符。BASH 没有遵循这样的惯例。

0.7 Linux 开机启动过程?

了解即可

  • 1、主机加电自检,加载 BIOS 硬件信息。
  • 2、读取 MBR 的引导文件(GRUB、LILO)。
  • 3、引导 Linux 内核。
  • 4、运行第一个进程 init (进程号永远为 1 )。
  • 5、进入相应的运行级别。
  • 6、运行终端,输入用户名和密码。

0.8 Linux 系统缺省的运行级别?

  • 关机。
  • 单机用户模式。
  • 字符界面的多用户模式(不支持网络)。
  • 字符界面的多用户模式。
  • 未分配使用。
  • 图形界面的多用户模式。
  • 重启。

0.9 Linux 使用的进程间通信方式?

了解即可

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

0.10 Linux 有哪些系统日志文件?

  • 比较重要的是 /var/log/messages 日志文件。
  • 该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。
  • 另外,如果胖友的系统里有 ELK 日志集中收集,它也会被收集进去。

0.11 Linux 系统安装多个桌面环境有帮助吗?

  • 通常,一个桌面环境,如 KDE 或 Gnome,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。

0.12 什么是交换空间?

  • 交换空间是 Linux 使用的一定空间,用于临时保存一些并发运行的程序。当 RAM 没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

0.13 什么是 root 帐户

  • root 帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装 Linux 时都是默认帐户。

0.14 什么是 LILO?

  • LILO 是 Linux 的引导加载程序。它主要用于将 Linux 操作系统加载到主内存中,以便它可以开始运行。

0.15 什么是 BASH?

  • BASH 是 Bourne Again SHell 的缩写。它由 Steve Bourne 编写,作为原始 Bourne Shell(由/ bin / sh 表示)的替代品。它结合了原始版本的 Bourne Shell 的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行 Linux 的大多数系统的默认 shell。

0.16 什么是 CLI?

  • 命令行界面(英语**:command-line interface**,缩写]:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。
  • 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。

0.17 什么是 GUI?

  • 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
  • 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。

0.18 开源的优势是什么?

  • 开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。

0.19 GNU 项目的重要性是什么?

  • 这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。

1.0 简介

  • Linux 中最重要的三个命令在业界被称为“三剑客”,它们是 awk,sed,grep。
  • 我们现在知道 Linux 下一切皆文件,对 Linux 的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令。
  • grep 擅长查找功能,sed 擅长取行和替换。awk 擅长取列。

1.1 grep

  • grep: 过滤
grep [OPTIONS] PATTERN [FILE...]
--color=auto 对匹配到的文本着色显示
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE,相当于egrep
-F 相当于fgrep,不支持正则表达式

例:

1、包含 root: grep -n root

2、不包含 root: grep -nv root

3、s 开头: grep ^s

4、以 n 结尾: grep -n n$

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值