春招准备之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!:不保存,强制退出

相关推荐
用户97183563346618 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪19 小时前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
SM177152118382 天前
NSK紧凑型FA系列丝杠技术详解
经验分享·规格说明书
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
闪闪发亮的小星星2 天前
高斯光以及高斯光公式解释
笔记
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
cqbzcsq2 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息