【2022最新Java面试宝典】—— Linux面试题(50道含答案)

article/2025/9/20 4:07:09

目录

  • 一、Linux 概述
    • 1. 什么是Linux
    • 2. Windows和Linux的区别
    • 3. Unix和Linux有什么区别?
    • 4. 什么是 Linux 内核?
    • 5. Linux的基本组件是什么?
    • 6. Linux 的体系结构
    • 7. BASH和DOS之间的基本区别是什么?
    • 8. Linux 开机启动过程?
    • 9. Linux系统缺省的运行级别?
    • 10. Linux 使用的进程间通信方式?
    • 11. Linux 有哪些系统日志文件?
    • 12. Linux系统安装多个桌面环境有帮助吗?
    • 13. 什么是交换空间?
    • 14. 什么是root帐户
    • 15. 什么是LILO?
    • 16. 什么是BASH?
    • 17. 什么是CLI?
    • 18. 什么是GUI?
    • 19. 开源的优势是什么?
    • 20. GNU项目的重要性是什么?
  • 二、磁盘、目录、文件
    • 21. 简单 Linux 文件系统?
    • 22. Linux 的目录结构是怎样的?
    • 23. 什么是 inode ?
    • 24. 什么是硬链接和软链接?
    • 25. RAID 是什么?
  • 三、安全
    • 26. 一台 Linux 系统初始化环境后需要做一些什么安全工作?
    • 27. 什么叫 CC 攻击?什么叫 DDOS 攻击?
    • 28. 什么是网站数据库注入?
    • 29. Shell 脚本是什么?
  • 四、实战
    • 30.如何选择 Linux 操作系统版本?
    • 31. 如何规划一台 Linux 主机,步骤是怎样?
    • 32. 请问当用户反馈网站访问慢,你会如何处理?
    • 33. Linux 性能调优都有哪几种方法?
    • 34. 基本命令

一、Linux 概述

1. 什么是Linux

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

2. Windows和Linux的区别

  • Windows是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。 Windows操作系统
    具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可
    以非常方便去进行娱乐、影音、上网。
  • Linux的应用相对单纯很多,没有什么绚丽多彩的效果,因此Linux的性能是非常出色的,可以完
    全针对机器的配置有针对性的优化,
  • 简单来说Windows适合普通用户进行娱乐办公使用,Linux适合软件开发部署

3. Unix和Linux有什么区别?

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

4. 什么是 Linux 内核?

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

5. Linux的基本组件是什么?

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

6. 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 的角度出发,为了保护内核的安全,把系统分成了两部分。

  • 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空
    间的转移:
    • 系统调用;
    • 硬件中断。

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

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

8. Linux 开机启动过程?

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

9. Linux系统缺省的运行级别?

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

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

了解即可,不需要太深入。
1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
2、信号(signal) 。
3、消息队列。
4、共享内存。
5、信号量。
6、套接字(socket) 。

11. Linux 有哪些系统日志文件?

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

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

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

13. 什么是交换空间?

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

14. 什么是root帐户

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

15. 什么是LILO?

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

16. 什么是BASH?

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

17. 什么是CLI?

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

18. 什么是GUI?

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

19. 开源的优势是什么?

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

20. GNU项目的重要性是什么?

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

二、磁盘、目录、文件

21. 简单 Linux 文件系统?

在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出
设备、普通文件或是目录都被看作是一个文件。

  • 也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其实这是 Unix 哲学的一个体现,而
    Linux 是重写 Unix 而来,所以这个概念也就传承了下来。在 Unix 系统中,把一切资源都看作是
    文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就
    可以用读写文件的方式实现对硬件的访问。
  • Linux 支持 5 种文件类型,如下图所示:
    在这里插入图片描述

22. Linux 的目录结构是怎样的?

这个问题,一般不会问。更多是实际使用时,需要知道。

  • Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:
    在这里插入图片描述

常见目录说明

目录介绍
/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
/etc存放系统管理和配置文件;
/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
/usr用于存放系统应用程序;
/opt额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
/proc虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
/root超级用户(系统管理员)的主目录(特权阶级);
/sbin存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
/dev用于存放设备文件;
/mnt系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
/boot存放用于系统引导时使用的各种文件;
/lib存放着和系统运行相关的库文件 ;
/tmp用于存放各种临时文件,是公用的临时文件存储点;
/var用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

23. 什么是 inode ?

一般来说,面试不会问 inode 。但是 inode 是一个重要概念,是理解 Unix/Linux 文件系统和硬
盘储存的基础。

  • 理解inode,要从文件储存说起。
  • 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇
    区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单
    位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
  • 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的
    创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名
    为"索引节点"。
  • 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

简述 Linux 文件系统通过 i 节点把文件的逻辑结构和物理结构转换的工作过程?
如果看的一脸懵逼,也没关系。一般来说,面试官不太会问这个题目。

  • Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。
    • inode 节点是一个 64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所
      有者、文件的存取许可方式以及文件的类型等重要信息。在 inode 节点表中最重要的内容是
      磁盘地址表。在磁盘地址表中有 13 个块号,文件将以块号在磁盘地址表中出现的顺序依次读
      取相应的块。
  • Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当
    前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode
    节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。

24. 什么是硬链接和软链接?

  • 硬链接:由于 Linux 下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,
    指向文件索引节点的指针,系统并不为它重新分配 inode 。每添加一个一个硬链接,文件的链接
    数就加 1 。
    • 不足:
      1.不可以在不同文件系统的文件间建立链接;
      2.只有超级用户才可以为目录创建硬链接。
  • 软链接:软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符
    号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件
    进行链接。
    • 不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录
      中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;
      还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
  • 实际场景下,基本是使用软链接。总结区别如下
    • 硬链接不可以跨分区,软件链可以跨分区。
    • 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。
    • 删除硬链接文件,不会删除原文件,删除软链接文件,会把原文件删除。

25. RAID 是什么?

RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个
相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大
的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统
只会把它当做一个硬盘。
RAID 分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应
用中,可以依据自己的实际需求选择不同的 RAID 方案。

  • 当然,因为很多公司都使用云服务,大家很难接触到 RAID 这个概念,更多的可能是普通云盘、
    SSD 云盘酱紫的概念。

三、安全

26. 一台 Linux 系统初始化环境后需要做一些什么安全工作?

1、添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号。
修改 SSH 端口不一定绝对哈。当然,如果要暴露在外网,建议改下。l
2、服务器使用密钥登陆,禁止密码登陆。
3、开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则。
4、装 fail2ban 这种防止 SSH 暴力破击的软件。
5、设置只允许公司办公网出口 IP 能登陆服务器(看公司实际需要)
也可以安装 VPN 等软件,只允许连接 VPN 到服务器上。
6、修改历史命令记录的条数为 10 条。
7、只允许有需要的服务器可以访问外网,其它全部禁止。
8、做好软件层面的防护。
8.1 设置 nginx_waf 模块防止 SQL 注入。
8.2 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 。

27. 什么叫 CC 攻击?什么叫 DDOS 攻击?

  • CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资
    源消耗殆尽。
  • DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击
    平台,来对一个或多个目标发动 DDOS 攻击。
    攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

怎么预防 CC 攻击和 DDOS 攻击?

  • 防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。
    流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般
    是买服务,毕竟攻击不会是持续长时间。

28. 什么是网站数据库注入?

  • 由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法
    性进行判断。
  • 应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想
    得知的数据,这就是所谓的 SQL 注入。
  • SQL注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如
    果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。

如何过滤与预防?

  • 数据库网页端注入这种,可以考虑使用 nginx_waf 做过滤与预防。

29. Shell 脚本是什么?

  • 一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个
    命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工
    作任务。

四、实战

30.如何选择 Linux 操作系统版本?

一般来讲,桌面用户首选 Ubuntu ;服务器首选 RHEL 或 CentOS ,两者中首选 CentOS 。

  • 根据具体要求:
    • 安全性要求较高,则选择 Debian 或者 FreeBSD 。
    • 需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE 。
    • 想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布
      版本。
    • 【重点】根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现
      在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束。
      CentOS 7 系列,也慢慢使用的会比较多了。

31. 如何规划一台 Linux 主机,步骤是怎样?

1、确定机器是做什么用的,比如是做 WEB 、DB、还是游戏服务器。
不同的用途,机器的配置会有所不同。
2、确定好之后,就要定系统需要怎么安装,默认安装哪些系统、分区怎么做。
3、需要优化系统的哪些参数,需要创建哪些用户等等的。

32. 请问当用户反馈网站访问慢,你会如何处理?

有哪些方面的因素会导致网站网站访问慢?
1、服务器出口带宽不够用

  • 本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口
    带宽就小,访问速度自然就会慢。
  • 跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是
    长城宽带或联通,这也可能导致带宽的缩减。

2、服务器负载过大,导致响应不过来
可以从两个方面入手分析:

  • 分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用
    top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
  • 如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分
    析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访
    问等。

3、数据库瓶颈

  • 如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
  • 如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建
    MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。

4、网站开发代码没有优化好
例如 SQL 语句没有优化,导致数据库读写相当耗时。

针对网站访问慢,怎么去排查?
1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看
看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片
加载慢,还是某些数据加载慢。
3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主
机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看
看是不是某条 SQL 语句查询慢,导致网站访问慢。

怎么去解决?
1、如果是出口带宽问题,那么久申请加大出口带宽。
2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主
从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4、申请购买 CDN 服务,加载用户的访问。
5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同
一个服务。

33. Linux 性能调优都有哪几种方法?

1、Disabling daemons (关闭 daemons)。
2、Shutting down the GUI (关闭 GUI)。
3、Changing kernel parameters (改变内核参数)。
4、Kernel parameters (内核参数)。
5、Tuning the processor subsystem (处理器子系统调优)。
6、Tuning the memory subsystem (内存子系统调优)。
7、Tuning the file system (文件系统子系统调优)。
8、Tuning the network subsystem(网络子系统调优)。

34. 基本命令

cd (change directory:英文释义是改变目录)切换目录

cd ../ ;跳到上级目录
cd /opt ;不管现在到那直接跳到指定的opt文件夹中
cd ~ ;切换当前用户的家目录。root用户的家目录就是root目录。

pwd (print working directory:显示当前工作目录的绝对路径)

pwd
显示当前的绝对路劲

ls (ls:list的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)

ls -a ;显示所有文件夹,隐藏文件也显示出来
ls -R ;连同子目录一起列出来

ll (ll:list的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间,
是否可读写等信息)

ll -a ;显示所有文件,隐藏文件也显示出来
ll -R ;连同子目录内容一起列出来
ll -h ;友好展示详情信息,可以看大小
ll -al ;即能显示隐藏文件又能显示详细列表。

touch (touch:创建文件)创建文件

touch test.txt ;创建test.txt文件
touch /opt/java/test.java ;在指定目录创建test.java文件

mkdir (mkdir:创建目录) 创建目录

mkdir 文件夹名称 ;在此目录创建文件夹
mkdir /opt/java/jdk ;在指定目录创建文件夹

cat (concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内
容)(不能快速定位到最后一页)

cat lj.log ;快捷查看文件命令
Ctrl + c ;暂停显示文件
Ctrl + d ;退出查看文件命令

more (more:更多的意思)分页查看文件命令(不能快速定位到最后一页)

回车:向下n行,需要定义,默认为1行。
空格键:向下滚动一屏或Ctrl+F
B:返回上一层或Ctrl+B
q:退出more

less (lese:较少的意思)分页查看文件命令(可以快速定位到最后一页)

less -m 显示类似于more命令的百分比。
less -N 显示每行的行号。(大写的N)
两参数一起使用如:less -mN 文件名,如此可分页并显示行号。
空格键:前下一页或page down。
回车:向下一行。
b:后退一页 或 page up。
q:退出。
d:前进半页。
u:后退半页

tail(尾巴) 查看文件命令(看最后多少行)

tail -10 ;文件名 看最后10行

cp(copy单词缩写,复制功能)

cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下
cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为aaa.log
cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中

mv(move单词缩写,移动功能,该文件名称功能)

mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下
mv java.log mysql.log ;把java.log改名为mysql.log

rm(remove:移除的意思)删除文件,或文件夹

-f或--force 强制删除文件或目录。删除文件不包括文件夹的文件
-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。
-rf 强制删除文件夹及内容
rm 文件名 ;安全删除命令 (yes删除 no取消)
rm -rf 强制删除文件夹及内容
rm -rf * 删除当前目录下的所有内容。
rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。

find (find:找到的意思)查找指定文件或目录

* 表示0~多个任意字符。
find -name 文件名;按照指定名称查找在当前目录下查找文件
find / -name 文件名按照指定名称全局查找文件
find -name '*文件名' ;任意前缀加上文件名在当前目录下查找文件
find / -name '*文件名*' ;全局进行模糊查询带文件名的文件

vi (VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操作)
vim (VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或
者下可以上下移动查看视角)

输入”vim 文件名” 打开文件,刚刚时是”一般模式”。
一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退
出)等。
插入模式:可以编辑文件内容。
底行模式:可以进行强制退出操作,不保存 :q!
可以进行保存并退出操作 :wq
按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。
在编辑模式下按”Esc” 即可到一般模式
在一般模式下按”:”,冒号进入底行模式。
在一般模式下的快捷键
dd ;删除一整行
X ;向前删除 等同于windowns系统中的删除键
x ;向后删除和大写x相反方向
Ctrl + f ;向后看一页
Ctrl + b ;向前看一页
u ;撤销上一步操作
/word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过
n的方向相反)
?log ;向上查找log关键字 输入:n查找上一个,N查找下一个
:1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/g,n1
代表其实行,n2代表结尾行,g是必须要的
:0 ;光标移动到第一行
:$ ;光标移动到最后一行
:300 ;光标移动到300行,输入多少数字移动到多少行
:w ;保存
:w! ;强制保存
:q ;退出
:q! ;强制退出
5dd ;删除后面5行,打一个参数为自己填写
5x ;删除此光标后面5个字符
d1G ;删除此光标之前的所有
d0 ;从光标当前位置删除到此行的第一个位置
yy ;复制
p ;在光标的下面进行粘贴
P ;在光标的上门进行粘贴

| 管道命令(把多个命令组合起来使用)

管道命令的语法:命令1 | 命令2 | 命令3。

grep (grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。不懂可以先过

单独使用:
grep String test.java ;在test.java文件中查找String的位置,返回整行
一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)
ps aux|grep java ;查找带java关键字的进程
ll |grep java ;查找带java关键字的文件夹及文件

yum install -y lrzsz 命令(实现win到Linux文件互相简单上传文件)

#(实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉文件
#等待下载完了就可以输入:
rz 从win系统中选择文件上传到Linux系统中
sz 文件名 选择Linux系统的文件复制到win系统中

tar (解压 压缩 命令)

常用的组合命令:
-z 是否需要用gzip压缩。
-c 建立一个压缩文件的参数指令(create) –压缩
-x 解开一个压缩文件的参数指令(extract) –解压
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在f之后要立即接档中(file)
常用解压参数组合:zxvf
常用压缩参数组合:zcvf
解压命令:
tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹
tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录
压缩命令:(注意 语法有点反了,我反正每次都搞反)
tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的
文件
tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)

ps (process status:进程状态,类似于windows的任务管理器)

常用组合:ps -ef 标准的格式查看系统进程
ps -aux BSD格式查看系统进程
ps -aux|grep redis BSD格式查看进程名称带有redis的系统进程(常用技巧)
//显示进程的一些属性,需要了解(ps aux)
USER //用户名
PID //进程ID号,用来杀死进程的
%CPU //进程占用的CPU的百分比
%MEM //占用内存的的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间

clear 清屏命令。(强迫症患者使用)

kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程)
(ps类似于打开任务管理器,kill类似于关闭进程)
kill -5 进程的PID ;推荐,和平关闭进程
kill -9 PID ;不推荐,强制杀死进程

ifconfig命令

用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是
用来查看的,很少更改)
如果此命令输入无效,先输入yum -y install net-tools
ifconfig

ping (用于检测与目标的连通性)语法:ping ip地址

测试:
1、在Windows操作系统中cmdipconfig,查看本机IP地址:
2、再到LInux系统中输入 ping ip地址
(公司电脑,我就不暴露Ip了,没图片 自己去试)
按Ctrl + C 可以停止测

free 命令 (显示系统内存)

#显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总

top 命令


#显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示

netstat 命令

#Linux netstat命令用于显示网络状态。
#利用netstat指令可让你得知整个Linux系统的网络情况。
#语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

file (可查看文件类型)

file 文件名

重启linux

Linux centos 重启命令:reboot

关机linux

Linux centos 关机命令:halt

同步时间命令

ntpdate ntp1.aliyun.com

更改为北京时间命令

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

查看时间命令:

date

史上最全Java面试宝典,BAT大厂面试必备。整理不易,建议先关注点赞加收藏

序号名称地址
1Java基础面试题(91道含答案)(点击查看)
2Java并发编程面试题 (123道含答案)(点击查看)
3Java异常面试题 (33道含答案)(点击查看)
4Java虚拟机(JVM)面试题(51道含答案)(点击查看)
5Java集合面试题(52道含答案)(点击查看)
6Linux面试题(50道含答案)(点击查看)
7Memcache面试题(23道含答案)(点击查看)
8Mybatiss面试题 (37道含答案)(点击查看)
9MySQL面试题(40道含答案)(点击查看)
10Netty面试题(49道含答案)(点击查看)
11Nginx面试题(23道含答案)(点击查看)
12RabbitMQ面试题(22道含答案)(点击查看)
13Redis面试题(70道含答案)(点击查看)
14SpringBoot面试题(44道含答案)(点击查看)
15SpringCloud面试题(49道含答案)(点击查看)
16SpringMVC面试题(29道含答案)(点击查看)
17Spring面试题(75道含答案)(点击查看)
18TCP、UDP、Socket、Http网络编程面试题(47道含答案)(点击查看)
19Tomcat面试题(15道含答案)(点击查看)
20Zookeeper面试题(28道含答案)(点击查看)
21多线程面试题(60道含答案)(点击查看)
22设计模式面试题(14道含答案)(点击查看)
23BIO、NIO、AIO、Netty面试题(35道含答案)(点击查看)
24Dubbo面试题(47道含答案)(点击查看)
25ElasticSearch面试题(31道含答案)(点击查看)
26Git常用命令(63条)(点击查看)

http://chatgpt.dhexx.cn/article/ewx2S0sB.shtml

相关文章

Linux面试题附答案

Linux Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于1991年10月5日首次发布&#xff0c;它主要受到Minix和Unix思想的启发&#xff0c;是一个基于POSIX的多用户、多任务、支持多线程和多C…

Linux面试题总结(2022最新版)

关于作者 &#x1f436; 程序猿周周 ⌨️ 短视频小厂BUG攻城狮 &#x1f93a; 如果文章对你有帮助&#xff0c;记得关注、点赞、收藏&#xff0c;一键三连哦&#xff0c;你的支持将成为我最大的动力 本文是《后端面试小册子》系列的第 5️⃣ 篇文章&#xff0c;该系列将整理和梳…

Linux 面试最常问的十个问题

如果你要去面试一个Linux系统运维工程师的职位&#xff0c;下面这十个最常见的问题一定要会&#xff0c;否则你的面试可能就危险了。这些都是比较基本的问题&#xff0c;大家要理解&#xff0c;不能光死记硬背。 1、如何查看系统内核的版本 这里有两种方法&#xff1a; 1&…

Linux面试题

常用命令 艿艿&#xff1a;这一小节会非常非常非常长&#xff0c;当做温故知新吧。 另外&#xff0c;面试官也可能会问&#xff0c;你熟悉 Linux 么&#xff1f;你平时使用哪些 Linux 命令。酱紫的连环炮~ 当然&#xff0c;建议重点看下 「性能相关」 小节。 目录相关 find 命…

Linux面试题(总结最全面的面试题!!!)

文章目录 Linux 概述什么是LinuxWindows和Linux的区别Unix和Linux有什么区别什么是 Linux 内核Linux的基本组件是什么Linux 的体系结构BASH和DOS之间的基本区别是什么Linux 开机启动过程Linux系统缺省的运行级别Linux 使用的进程间通信方式Linux 有哪些系统日志文件Linux系统安…

史上最全Linux面试题(2020最新版)

出处&#xff1a;https://blog.csdn.net/thinkwon/article/details/104588679 作者&#xff1a;ThinkWon 导读&#xff1a;本文整理了最新的Linux面试题&#xff0c;近3万字&#xff0c;约100道题&#xff0c;分享至此&#xff0c;希望对大家有帮助。 一、Linux 概述 1. 什么是…

48 个 Linux 面试问题和答案

你在准备 Linux 面试吗&#xff1f;我们准备了一些常见的 Linux 面试问题及其答案。 如果您是初学者&#xff08;具有一定的 Linux 知识或获得认证&#xff09;或具有专业的 Linux 管理经验&#xff0c;那么下面的问答有助于您准备面试。 1.什么是Linux及基本组件&#xff1f…

Linux面试必备20个常用命令

文章目录 第一章 什么是linux第二章 linux的基础命令1.pwd 命令2.ls 命令3.cd 命令4.man 命令5.grep 命令6.find 命令7.chmod 命令8.ps 命令9.kill 命令10.tail 命令11.netstat 命令8.date 查看当前系统时间10.echo 打印 选项 -e11.ping 地址 检测是否与主机连通 第三章 文件操…

python 取余运算

python中取余运算逻辑如下&#xff1a; 如果a 与d 是整数&#xff0c;d 非零&#xff0c;那么余数 r 满足这样的关系&#xff1a; a qd r , q 为整数&#xff0c;且0 ≤ |r| < |d|。 经过测试可发现&#xff0c;python3.6中取余运算得到的 r 是正整数&#xff1b; 转载于:…

python的取整和取余_python实现取余操作的简单实例

python实现取余操作的方法&#xff1a; 可以利用求模运算符&#xff08;%&#xff09;来实现。求模运算符可以将两个数相除得到其余数。我们还可以使用divmod()函数来实现取余操作&#xff0c;具体方法如&#xff1a;【divmod(10,3)】。 在python中要实现取余操作可以使用求模…

python中如何取余_python如何实现取余操作的方法

python如何实现取余操作的方法 发布时间&#xff1a;2020-08-17 09:36:53 来源&#xff1a;亿速云 阅读&#xff1a;68 作者&#xff1a;小新 这篇文章主要介绍python如何实现取余操作的方法&#xff0c;文中介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的…

chatgpt赋能python:Python取余mod的介绍

#Python取余mod的介绍 Python是一种高级编程语言&#xff0c;可以进行各种计算和数据处理。其中一个很重要的功能是取余操作mod。当我们想要计算余数或者判断某个数是否能被另一个数整除时&#xff0c;就需要使用mod。本文将介绍Python中mod的用法和注意事项。 ##Python中mod…

Python取余/求余(%)问题,负数求余最简单的解释

Python求余中会犯的错误思想如下&#xff1a; 一.忘记求商结果是负数时要向下取整&#xff0c;比如-2.25等于-3。 二.是把负数求余运算和正数求余运算混为一谈 正数求余运算比如9%41&#xff0c;思路可以想成9里面有两个4&#xff0c;还剩一个1&#xff0c;所以余数为1&#xf…

python中的取余运算符是_python取余运算

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算方法1. 整除运算(除法计算出结果后,向下取整)使用整除运算用 1 203 2110 3310 -3-4103 …

python的取整和取余_python取余取整

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 取余的公式:余数=除数-被除数*商python的的余数是按照整除(向下取整)得到的商来计算的。 取余问题主要分为 :正数与正数,负数与负数,正数与负数 ,0正数与…

chatgpt赋能python:Python取余运算详解

Python取余运算详解 在Python中&#xff0c;取余运算是一种非常常见的运算方式&#xff0c;尤其是在各种算法题目中。本篇文章将为大家介绍Python中取余运算的使用方法和相关细节。 取余运算符 在Python中&#xff0c;取余运算使用符号%表示&#xff0c;例如x % y表示x除以y…

kotlin学习

140-手写事件变换操作符之Rx操作符总结(Derry老师)_哔哩哔哩_bilibili 视频链接:导学_哔哩哔哩_bilibili 一、环境搭建 1、工具安装与环境配置 官网地址: Download Android Studio & App Tools - Android Developers 安装步骤就不一一介绍了 新建过程如下(新建一个多…

转载自张俊林的博客,人工智能

张俊林 转载自张俊林博客&#xff0c;非常感谢博主 &#xff08;本文2016年发表于《程序员》杂志&#xff09; 随着深度学习技术的快速进展&#xff0c;人工智能时代的序幕已经揭起&#xff0c;目前深度学习在图像处理方面的能力已经接近人&#xff0c;甚至在某些方面已经超过…

kotlin入门学习文档

kotlin入门学习文档 前言&#xff1a;本文会着重对比java和kotlin&#xff0c;方便Java选手理解 提前总结&#xff1a;kotlin在服务端应用本质上是基于Java进行的改进&#xff0c;底层都是由JVM翻译成底层语言&#xff0c;我们只需要关注kotlin本身的代码&#xff0c;无需担心…

阿里架构师开源《Kotlin入门教程指南》+《高级Kotlin强化实战》

对于有Java基础的程序员来说&#xff0c;Kotlin是一门非常容易上手的编程语言&#xff0c;也是一门必须掌握的编程语言。Java代码在运行前需要编译生成一种特殊的class文件&#xff0c;然后Java虚拟机会识别并解释这些class文件&#xff0c;而Kotlin作为一种新的编程语言&#…