春招准备之Linux系统篇

本系列内容直接以八股文,即问题的形式总结,面试所需内容

1、 Linux的目录结构及其特点?

Linux的目录结构是一个遵循FHS(Filesystem Hierarchy Standard)标准的树形结构

  • 单一根目录:整个文件系统的起点是唯一的根目录 /,所有的文件和目录,无论它们位于哪个物理设备上,都挂载在这个根目录下
  • 一切皆文件:在Linux中,几乎所有的系统资源,如硬件设备(硬盘、光驱)、套接字等,都以文件的形式存在于文件系统中

它和Windows有什么主要区别?

与Windows的主要区别:

  • 根目录:Linux只有一个根目录 /;而Windows有多个盘符(如 C、D),每个盘符都是一个文件系统的根
  • 路径分隔符:Linux使用正斜杠 / 作为路径分隔符(如 /home/user);Windows使用反斜杠 \(如 C:\Users\user)

2、什么是绝对路径和相对路径?

绝对路径:路径的写法一定由根目录 / 写起。它描述了到达目标位置的完整路径,与当前所在位置无关

示例:cd /home/item/Desktop,无论当前在哪个目录下,这个命令都能准确地切换到Desktop目录

相对路径:路径的写法不是由 / 写起,而是相对于当前工作目录

示例:假设当前在 /home/item目录下,要进入 Desktop 目录,可以使用相对路径 cd Desktop。

这等同于cd ./Desktop

3、在Linux路径中,. .. 和 ~ 这三个特殊符号分别代表什么?

这三个是特殊的路径符:

. (一个点):代表当前所在的目录

.. (两个点):代表上一级目录(父目录)

  • 例如:cd ../.. 切换到上二级的目录,cd ../../.. 表示切换到上三级的目录

~ (波浪号):代表当前用户的家目录(Home Directory)

  • 例如,对于root用户,~ 就代表 /root;对于普通用户item,~ 就代表 /home/item

4、什么是软链接和硬链接?

软链接(Symbolic Link)和硬链接(Hard Link)

软链接:是一个独立的文件,其内容是指向另一个文件的路径(类似 Windows 的快捷方式)

硬链接:是文件系统中的一个条目,它直接指向文件的inode(存储文件元数据和内容的位置)

区别:

inode:硬链接与源文件共享同一个 inode, 软链接拥有自己的 inode 和数据块,存储的是目标文件的路径字符串

删除源文件后:硬链接仍然可以访问文件内容,因为 inode 的引用计数未归零,而软链接会失效(变成"悬空链接")

文件或目录:硬链接只能对文件 创建硬链接,不能对目录创建,不过可以对文件或目录创建软链接

跨文件:硬链接不能跨文件系统(分区)创建,因为不同文件系统的incode表是独立的,

5、ls 命令有哪些常用选项?

ls 命令用于列出目录内容,其常用选项有:

-a (all):显示所有文件,包括以 . 开头的隐藏文件

-l (long):以长列表格式显示文件的详细信息

-h (human-readable):配合 -l 使用,以易于阅读的格式(如K、M、G)显示文件大小

6、如何一次性创建多层嵌套的目录?

例如 /test/a/b/c ?

mkdir-p(parents)选项,一条命令即可一次性创建任意层级的嵌套目录,如果中间目录已存在也不会报错

mkdir -p 层级1/层级2/层级3/...

mkdir -p /test/a/b/c

7、cp, mv, rm 命令的作用是什么?

cp (copy):用于复制文件或目录,复制目录时需要使用 -r 选项进行递归复制

cp source.txt destination.txt

cp -r sourcedir/ destinationdir/

mv (move):用于移动文件或目录,也可以用于重命名

mv old_name.txt new_name.txt (重命名)

mv file.txt /path/to/destination/ (移动)

rm (remove):用于删除文件或目录,删除目录时需要使用 -r 选项。

使用 rm 的注意事项:

rm 是一个非常危险的命令,特别是与 -f (force,强制删除不提示) 选项结合使用时

命令rm -rf / 会从根目录开始递归删除所有文件且不给任何提示,足以摧毁整个系统,必须极度谨慎使用,尤其是在 root 用户下

8、请说出几个你常用的 find 命令示例?

find 命令用于在指定目录树中搜索文件,并可以对搜索到的文件执行操作。

按文件名查找文件

find 起始路径 -name "被查找的文件名"

find 命令 - 通配符 根据语法:

find 起始路径 -name "被查找的文件名",被查找的文件名,支持使用通配符 * 来进行模糊查询

基于通配符的含义,可以结合 find 命令进行文件的模糊查询,即匹配任意内容(包含空) 示例:

test*:表示匹配任何以 test 开头的内容

*test:表示匹配任何以 test 结尾的内容

*test*:表示匹配任何包含 test 的内容

find 命令-按文件大小查询文件 语法:

find 起始路径 -size +/- n【kMG】

+/- ,表示大于或小于

n,表示大小数字

【kMG】表示大小单位,k(小写字母)表示 KB,M 表示 MB,G 表示 GB

示例:

查找小于 10KB 的文件:find / -size - 10k

查找大于 100MB 的文件:find / -size + 100M

9、chmod 命令的作用是什么?

chmod 命令用于修改文件或目录的访问权限

数字方式:使用3位八进制数字来表示权限,每一位分别对应所有者、所属组和其他人

其中 r=4, w=2, x=1

示例:将 hello.txt 文件的权限修改为 rwxr-x--x (所有者可读写执行,所属组可读可执行,其他人仅可执行)

所有者:rwx = 4+2+1 = 7

所属组:r-x = 4+0+1 = 5

其他人:--x = 0+0+1 = 1

命令:chmod 751 hello.txt

字符方式:使用 u(user), g(group), o(other), a(all) 配合 +(增加), -(移除), =(设置) 来修改权限

示例:同上,将 hello.txt 权限修改为 rwxr-x--x

命令:chmod u=rwx,g=rx,o=x hello.txt

10、su 和 sudo 有什么区别?

su (Switch User):用于切换用户身份。如果后面不带用户名,默认切换到 root 用户。切换后,你将完全拥有目标用户的环境变量和权限,直到你 exit 退出。这通常需要输入目标用户的密码

sudo (Super User Do):允许普通用户以临时的 root 权限来执行单条命令。它不需要知道 root 密码,而是验证当前用户的密码。sudo 的权限可以在 /etc/sudoers 文件中进行精细配置,更为安全和可审计

总结:

  • 借权干活 → sudo(安全、可审计、自己密码)

  • 整段会话彻底换身份 → su(需要目标密码,日志弱)

11、如何查看系统中的进程?

("aux 看资源,-ef 追家谱;性能 aux,脚本 ef")

可以使用 ps 命令查看系统中的进程,最常用的组合是 ps -ef 和 ps aux

ps -ef:这是System V风格的命令,列出所有进程 (-e) 的完整格式信息 (-f)

ps aux:这是BSD风格的命令,a 显示所有终端的进程,u 以用户为中心显示格式,x 显示没有控制终端的进程

ps -ef 和 ps aux 有什么异同?

相同点:两者都能显示系统上几乎所有的进程

不同点:输出的格式和信息列不同

例如,ps aux 会显示CPU和内存的百分比占用率(%CPU, %MEM),而ps -ef则会显示父进程ID(PPID)。在实际使用中,可以根据需要选择

12、top 命令是做什么的?它的输出包含哪些关键信息?

top 是一个实时的动态进程监视器,类似于Windows的任务管理器

关键信息包括:

第一行(系统摘要):当前时间、系统运行时间 (up)、登录用户数 (users)、系统平均负载 (load average)(过去1、5、15分钟)

第二行(任务):进程总数 (total)、正在运行的 (running)、睡眠的 (sleeping) 等

第三行(CPU):CPU使用率的详细信息,如用户空间(us)、内核空间(sy)、空闲(id)等

第四、五行(内存):物理内存 (KiB Mem) 和交换空间 (KiB Swap) 的使用情况(总量、空闲、已用)

进程列表:下面是详细的进程列表,包含 PID (进程ID)、USER (用户)、PR (优先级)、%CPU (CPU占用率)、%MEM (内存占用率)、TIME+ (CPU占用时间)、COMMAND (命令名)等

13、如何结束一个进程?

使用 kill 命令来结束一个进程,其基本语法是 kill [信号] <PID>

kill 和 kill -9 有什么本质区别?

本质区别在于发送的信号不同:

kill <PID>:默认情况下,这会向进程发送 SIGTERM (信号编号15)。这是一个**"礼貌"的请求**,它通知进程"请你自行关闭",进程可以捕获这个信号并执行一些清理工作(如保存数据、关闭文件)后再退出。

kill -9 <PID>:这会向进程发送 SIGKILL (信号编号9)。这是一个强制、无条件的命令,它告诉操作系统内核"立即终止这个进程",进程本身无法捕获或忽略这个信号。

总结:应优先尝试使用 kill <PID>,只有当进程无响应,无法正常退出时,才应使用 kill -9 作为最后的手段,因为它可能导致数据丢失或文件损坏。

kill 是"敲门让你自尽",kill -9 是"直接踹门爆头",不到万不得已,别一上来就 -9

14、如何查看机器的IP地址和监听的端口?

查看IP地址:

现代推荐:ip addr 或 ip a

传统方式:ifconfig (可能需要安装 net-tools 包:yum install net-tools)

查看监听的端口:

现代推荐:ss -tuln (t-TCP, u-UDP, l-listening, n-numeric)

传统方式:netstat -tuln (参数含义与 ss 相同)

15、yum 和 apt 是什么?

yum 和 apt 都是Linux系统中的包管理工具,用于自动化地安装、更新、卸载软件包,并能自动处理软件包之间的依赖关系

yum :主要用于基于 RPM 的Linux发行版,如 CentOS, RHEL, Fedora

apt :主要用于基于 Debian 的Linux发行版,如 Ubuntu, Debian

常用命令示例:

更新软件列表: yum makecache / apt update

升级全部: yum update / apt upgrade

升级系统大版本: yum distro-sync / apt full - upgrade

查看文件属于哪个包: yum provides /usr /bin /lsof / apt -file find bin /lsof

清除缓存: yum clean all / apt autoclean && apt autoremove

16、vi/vim 编辑器有哪几种主要模式?

vim 主要有三种模式:

命令模式 (Command Mode):启动 vim 后默认进入的模式,在此模式下,键盘输入被解释为命令,如移动光标、删除文本、复制粘贴等

输入模式 (Insert Mode):在命令模式下按 i, a, o 等键进入,在此模式下,可以像普通编辑器一样输入文本。按 Esc 键可以返回到命令模式

底线命令模式 (Last Line Mode):在命令模式下按 : 键进入,光标会移动到屏幕底部,可以在此输入保存、退出、搜索、替换等命令

如何进行基本的文件保存和退出操作?

基本操作:

:w:保存文件

:q:退出编辑器

:wq:保存并退出

:q!:不保存,强制退出

相关推荐
来生硬件工程师4 小时前
【STM32笔记】:P03 ISP 一键下载电路详解
c语言·笔记·stm32·嵌入式硬件·硬件工程·接口隔离原则·硬件设计
帅锅锅0074 小时前
SeLinux 全面详解
android·linux
白云偷星子4 小时前
MySQL笔记14
数据库·笔记·mysql
王廷胡_白嫖帝4 小时前
1. Linux 驱动开发前景
linux·运维·驱动开发
hjlgs4 小时前
Linux中I2C常见问题一
linux
ha20428941944 小时前
Linux操作系统学习之---线程控制
java·linux·学习
one year.4 小时前
Linux:库制作与原理
linux·运维·服务器
陈苏同学4 小时前
Win11安装 Ubuntu 22.04 子系统 - WSL2 - 安装完迁移到其它盘
linux·运维·ubuntu
酌量5 小时前
从 ROS 订阅视频话题到本地可视化与 RTMP 推流全流程实战
经验分享·笔记·ffmpeg·音视频·ros