资讯详情

Linux基础自测:覆盖文件、权限、进程与日志的核心技能清单

📅 2026/10/10 20:52:45 | 华诺云谱 👁 阅读
Linux基础自测:覆盖文件、权限、进程与日志的核心技能清单
1. 为什么需要一套Linux基础自测题带过不少新人和实习生之后我越来越发现一个问题很多人的Linux知识是会用但不懂甚至用过但没系统学过。能敲出几个命令但一问到为什么这样写、换一个环境会不会失效就答不上来了。面试的时候更是明显——简历上写着熟悉Linux常用命令结果实际操作里连权限都搞不清楚日志也不会看系统出了问题只会重启。所以我整理了这套Linux基础自测题。它不是那种一题一答案的背题目录而是把日常运维和开发中最常用、最容易踩坑的知识点串起来按真实的Linux工作场景出题每一道题都对应一个实际使用场景。包括文件操作、权限管理、进程调度、网络配置、日志分析、磁盘存储这些高频方向基本覆盖了一个Linux使用者的核心能力圈。这套题适合谁三类人刚入门Linux的新手用来检验自己到底掌握了多少哪些知识点是以为会了其实不会。准备Linux运维或后端岗位面试的人很多面试题就藏在这些基础题里考的是你平时有没有真正动过手。带团队的技术负责人可以用这套题快速评估团队成员的Linux实操水平省去逐个面试的精力。我自己在带人的时候用过这套思路效果不错。下面我按主题把题目拆开讲每个部分都会说清楚考点、常见错误和我的实操经验。2. 第一关目录与文件操作自测2.1 高频考点与易错命令文件操作是Linux的第一课也是很多翻车现场的高发区。先来一组自查题你可以在自己的机器上敲一遍看看能不能答对查看当前所在目录用哪个命令pwd。查看目录下的文件包括隐藏文件用哪个命令ls -la。为什么要加-l和-a-l显示详细信息-a显示隐藏文件两个参数合起来才能看到目录的全貌。创建一个多级目录/data/logs/2025/08正确的是mkdir -p /data/logs/2025/08。很多人第一次会不加-p结果报错说上级目录不存在。-p的意思是自动创建上级目录这是高频参数务必记住。复制整个目录/opt/app到/backup/app正确的是cp -r /opt/app /backup/。这个-r是递归复制不加就只能复制文件遇到目录直接报错。但是要注意cp -r在一些老系统上会有隐含的坑如果源目录包含符号链接-r只是把链接复制过去而不是链接指向的内容。想要完整保留文件属性建议用cp -a-a等于-dR --preserveall归档模式能保留权限、时间戳、链接等信息。移动或重命名文件用mv。它在同一个文件系统内是改指针操作瞬时完成跨文件系统则等于复制删除。所以移动大文件时如果感觉卡顿先检查是不是跨分区了。删除文件或目录用rm。删目录加-r强制删加-f这俩参数连用就是著名的rm -rf。我见过不止一次有人因为rm -rf变量没赋好值把系统目录给删了——比如rm -rf $DIR/如果$DIR为空等于执行了rm -rf /。这不是段子是真实事故。我的习惯是生产环境机器上先执行echo $DIR确认路径再用ls看一眼目录内容最后才删。另外rm -rf /在CentOS 7及以后的系统上会有--no-preserve-root保护提示但在很多嵌入式环境或旧系统上并没有别拿生产环境赌这个。列出/etc目录下所有以.conf结尾的文件正确的是find /etc -name *.conf。有人会用ls /etc/*.conf这也能列出来但要注意如果匹配不到任何文件ls会直接报错No such file or directory而find只是安静地不输出。脚本里用ls做判断极容易出问题。2.2 硬链接与软链接的理解题链接是Linux里绕不开的知识点也是面试常客。别急着看答案先自己想想这两个问题软链接符号链接和硬链接有什么区别我的理解方式是这样的硬链接就是给同一个inode索引节点多起了一个名字两个文件名指向同一个实体删除其中一个另一个依然有效因为链接计数减一而不是清零。软链接则是一个独立的文件存放的是目标文件的路径字符串如果目标文件被删除软链接就成了断链ls -l会显示红色或闪烁访问会报No such file。实操上有一个冷门但有用的点ln -s创建软链接时建议使用绝对路径。我踩过这个坑——在/home/user下执行ln -s ../conf/app.conf ./app_link当时看着没问题但一旦当前目录切换这个链接就失效了。原因很简单软链接里存的是相对路径相对路径是相对于链接所在目录来解析的不是相对于执行命令时的目录。用绝对路径一劳永逸。# 推荐方式绝对路径创建软链接 ln -s /data/config/app.conf /home/user/app_link # 检查链接是否有效 ls -l /home/user/app_link readlink -f /home/user/app_link顺手练一下写一条命令把/var/log/messages软链接到/home/user/messages然后用readlink验证。这条命令大概10秒钟做完但做过和没做过的人在面试时回答软链接失效问题的深度完全不一样。2.3 目录规范与空间清理实战热词里有一类搜索量很大linux 删除文件夹命令、linux 清空日志文件。这类问题看着简单但实际上有讲究。先说清空日志文件。新手喜欢rm -rf /var/log/messages这是错误做法。因为进程会一直持有该文件的文件句柄你删了文件磁盘空间不会立刻释放进程还是往那个无名inode里写数据。正确做法是# 推荐用cat清空不删除文件本身 cat /dev/null /var/log/messages # 或者用truncate truncate -s 0 /var/log/messages再说目录空间占用排查。du -sh *能统计当前目录下每个子目录的大小df -h看磁盘分区占用率。这两个命令构成日常磁盘排查的最小组合。如果发现某个分区快满了先用df -h确认是哪个挂载点再进去用du -sh *从大到小逐步收缩范围。最后Linux目录规范这块很多人只知道/etc是配置目录、/var是可变数据但当被问到日志为什么要放/var/log而不是/opt时就答不上来了。我的理解是/var针对的是运行时动态产生、大小不可控的数据比如日志、缓存、队列。把它独立出来是为了方便做日志轮转、容量规划甚至在系统盘空间不够时直接把/var挂到单独的大分区上。理解了这一层你再去看一个系统的目录布局就不会觉得是死记硬背了。3. 第二关权限、用户与安全意识自测3.1 权限位与特殊权限逐项拆解这一块是Linux基础里的分水岭。很多人背过chmod 755、chmod 644但碰到特殊权限就懵。基础权限r读、w写、x执行三组分别对应所有者/所属组/其他用户。数字表示法里r4、w2、x1加起来就是权限位。比如754表示所有者有全部权限7所属组有读和执行5其他人只有读4。特殊权限才是拉开差距的地方SUID4000作用于可执行文件。普通用户执行这个文件时进程的有效用户ID会变成文件所有者。经典例子是/usr/bin/passwd——普通用户修改自己的密码时需要写入/etc/shadow而这个文件只有root能写。就是因为passwd命令设置了SUID普通用户执行时临时获得了root身份。你的系统里哪个文件带SUID用find / -perm -4000查一下能查出一堆这也是安全基线检查的常见项目。SGID2000作用于目录时在该目录下新建的文件会自动继承目录的所属组而不是创建者的主组。这在做团队共享目录时非常有用避免每个人建的文件别人碰不了。Sticky Bit1000作用于目录时只有文件的所有者或root才能删除目录里的文件即使目录权限是777。最典型的是/tmp权限是drwxrwxrwt最后的t就是粘滞位。没有它任何人就能删掉别人在/tmp下放的文件了。看权限的另一个技巧ls -l输出的第一个字段有10个字符比如-rwxr-xr--。第一个字符表示类型后面9个字符才是权限。如果是l开头说明是软链接d是目录b是块设备c是字符设备。连接到SSH时看到crw-------不要慌那是/dev下的设备节点。3.2 用户管理实操与密码策略配置热词里有一个很实际的需求linux新建用户。别觉得简单实际操作里至少有四个细节useradd和adduser的区别。在Debian/Ubuntu上adduser是交互式命令会自动创建家目录、设置密码、填用户信息useradd是底层的非交互命令默认不创建家目录。在CentOS/RHEL上adduser只是useradd的符号链接行为完全一样。所以跨发行版操作时不要想当然。新建用户时至少要指定-m创建家目录、-s指定shell、-G附加组。# 创建用户并指定家目录、shell、附加组 useradd -m -d /home/zhangsan -s /bin/bash -G wheel zhangsan # 设置密码 echo Zhangsan123456 | passwd --stdin zhangsan # 查看用户信息 id zhangsan给用户sudo权限不是改/etc/sudoers而是用visudo命令编辑。为什么必须用visudo因为它会做语法检查改错了能防止你把自己锁在sudo外面。新手指南上常见的错误是chmod 777 /etc/sudoers这等于把整台机器的root权限开放给所有能登录的人等于裸奔。检查系统里是否有异常用户这是安全基线的一部分。查看/etc/passwd里所有UID为0的用户UID为0就是超级用户正常只有root。用awk -F: $30 {print $1} /etc/passwd如果多出来别的用户名那说明被入侵了或者有人搞小动作。另外热词里有个linux密码过期提醒通知这属于典型的生产需求。公司安全策略一般会要求90天改一次密码但默认配置里用户不会收到提醒。要设置提醒用的是chage# 查看zhangsan的密码过期信息 chage -l zhangsan # 设置密码90天后过期提前7天提醒 chage -M 90 -W 7 zhangsan更精准的提醒其实不止靠chage还要配合/etc/login.defs里的PASS_MAX_DAYS和PASS_WARN_AGE。这两个文件配合起来才是完整的密码策略。面试时能说到这一层基本就过关了。3.3 权限排查案例为什么我能看却删不了分享一个真实案例。一次同事在服务器上部署应用遇到诡异问题用ls能看到目录下的文件但用rm删除时报Permission denied。他第一反应是我是root啊怎么会没权限。答案涉及文件的写权限属于谁以及目录的写权限。删除文件看的是该文件所在目录的写权限不是文件本身的写权限。文件能不能读看的是文件本身的r位能不能删看的是目录的w位。如果目录权限是r-xr-xr-x没有写权限那么即使你是文件的所有者也无法删除别人的文件。反之只要目录有写权限即使文件本身是只读的也能把它删掉因为删除不修改文件内容只修改目录条目。这个知识点特别容易绕晕但实际排查权限问题时这往往是解开谜底的关键。建议你亲手做一个实验验证# 实验创建目录设置成只读尝试在里面创建文件 mkdir /tmp/readonly_test chmod 555 /tmp/readonly_test touch /tmp/readonly_test/hello.txt # 会报 Permission denied做完这个实验你对目录写权限的理解会比背10遍书都深。4. 第三关进程管理与服务排障自测4.1 查看进程的正确姿势与TOP命令深度解读ps和top是进程管理的基本工具但大部分人只会ps -ef | grep和打开top看一眼CPU。先说ps -ef输出里每一列的含义UID执行进程的用户、PID进程号、PPID父进程号、CCPU占用、STIME启动时间、TTY终端、TIME累计CPU时间、CMD命令。面试时让人解释PPID很多人答不上来但这恰恰是排查进程为什么退出了的关键孤儿进程会被PID 1收养如果发现某个进程的PPID变成了1说明它的父进程已经死了。top的深入用法也很实用按P按CPU排序按M按内存排序这是定位资源大户最快的操作。top -p PID只看指定进程多个进程用逗号分隔。top -b -n 1以批处理模式输出一次结果适合写脚本采集快照。输出里的load average有三个数值分别为1分钟、5分钟、15分钟的平均负载。如果1分钟 5分钟说明负载在上升如果15分钟仍然很高说明是持续性的压力不是突发流量。还有一个大多数人都没注意过的细节top里的%CPU是相对于单核计算的不是整机。四核机器上单进程CPU跑到150%说明它用满了一个半核不一定是机器要挂了。要看整体占用得看第三行Cpu(s)或按1展开每个核心的情况。4.2 systemd管理服务的常用套路现代Linux发行版全部转向systemd很多老派的service命令成了软链接。理解systemd相当于理解了现代Linux的开机、服务运行、日志处理全链路。常用命令就这几条但每一条背后都有讲究# 查看服务状态含最近日志 systemctl status nginx # 设置开机自启 systemctl enable nginx # 立即启动并设置开机自启enable --now 的组合用法 systemctl enable --now nginx # 查看所有失败的服务 systemctl list-units --failed # 查看某个服务依赖了哪些其他服务 systemctl list-dependencies nginxsystemctl status输出里有一行非常关键Active: active (running)或inactive (dead)或failed。排障第一步永远是这个而不是去翻日志。服务起不来status里还会提示你错误原因比如main process exited, codeexited, status203/EXEC这个203/EXEC表示可执行文件不存在或权限不对——优先检查ExecStart路径写没写对。热词里有linux 安装nginx这是最典型的systemd管理场景。源码编译安装的nginx默认没有systemd服务文件需要自己写一个放在/etc/systemd/system/nginx.service[Unit] Descriptionnginx web server Afternetwork.target [Service] Typeforking PIDFile/run/nginx.pid ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/local/nginx/sbin/nginx -s quit PrivateTmptrue [Install] WantedBymulti-user.target写完之后必须systemctl daemon-reload重新加载这是新手必踩的坑。忘了这步直接systemctl start nginx会报Unit nginx.service not found或者一直用旧配置。4.3 冷门但好用的考点修改进程名称热词里有个挺有意思的linux 修改进程名称。ps里显示的进程名默认是命令行第一个参数的可执行文件名。但在某些场景下比如Java应用启动后进程名是java你根本分不清是哪一台机器的哪个服务这时候就需要改进程名。内核级修改其实很简单Linux把进程名存放在/proc/pid/comm这个文件里直接写入新名字即可。但普通用户只对自己进程有权写root才能改别人的# 查看某个进程的当前名称 cat /proc/1234/comm # 修改进程名称需要root权限 echo my-service /proc/1234/comm用Python脚本方式更灵活setproctitle库专门干这个import setproctitle setproctitle.setproctitle(user_analysis_worker)这个知识点面试很少考但实际部署时非常实用。多实例部署时配合ps -eo pid,comm,args就能一眼区分不同业务进程排查哪个进程占满了CPU时能省不少时间。4.4 进程间通信方式速查热词里linux进程间通信高频出现这是从会命令走向懂原理的重要一步。不用深挖内核实现把常用的几种方式及应用场景理清楚就行通信方式特点典型场景管道 Pipe半双工数据单向流动适合父子进程命令行cmd1命名管道 FIFO允许无亲缘关系的进程通信两个独立服务间传数据消息队列数据有类型先进先出生产者消费者模型共享内存速度最快但要处理同步高频小批量数据交换信号 Signal异步通知不能携带大量数据kill -HUP重载配置套接字 Socket可用于不同主机间通信分布式系统RPC调用面试时如果被问到进程间通信有哪些方式能说全这六种再用一两句话指出各自的最适用场景基本就满分了。实操中大部分业务需求用Socket和消息队列就能解决共享内存虽然快但调试难度大一般用在性能敏感的场景。5. 第四关网络配置与存储挂载自测5.1 网络排查基础从ping通到服务通的完整链路网络这块我认为最重要的不是背命令而是建立排查的顺序感。从底层到应用层一层一层排除才不会像无头苍蝇一样乱试。第一步物理/链路层。ip link查看网卡是否upethtool eth0看协商速率。如果网卡down后面都是白搭。第二步网络层。ping网关、ping公网DNS比如114.114.114.114或223.5.5.5。这里注意ping通DNS不代表DNS解析没问题ping走的是ICMPDNS解析走的是UDP 53。所以还要单独测试解析dig 114.114.114.114 www.example.com或nslookup www.example.com。ping不同和ping得通但curl不通代表的问题完全不一样。第三步传输层/应用层。ss -lntp查看端口监听情况curl -I测试HTTP服务是否响应。很多新人不会用ss还在用老掉牙的netstat。ss是iproute2工具包的成员输出更快信息也更全-l显示监听、-n不做域名解析、-t只看TCP、-p显示进程。实用的排查命令组合我的习惯是# 1. 看网卡状态 ip addr show eth0 # 2. 看路由 ip route show # 3. 看端口监听 ss -lntp | grep -E 80|443 # 4. 测试TCP连通性 nc -vz 192.168.1.10 3306 # 5. 测试HTTP响应头 curl -I -m 5 http://localhost/这套组合拳下来80%的连不上问题都能定位到具体层级。剩下的20%往往是防火墙规则拦截iptables -L -n看规则或者SELinuxgetenforce查看状态在背后拦截。5.2 配置IP地址从ifconfig到nmtui的现代方式热词里有rocky linux 10 配置网络信息、linux 共享上网 办法对应的是两种典型的网络配置需求静态IP配置和NAT共享上网。先说静态IP。老教程还在教ifconfig eth0 192.168.1.100 netmask 255.255.255.0这在现代系统上已经不推荐了——因为它不持久重启就丢。正确做法是改配置文件或使用nmcli# 用nmcli配置静态IPNetworkManager环境适用 nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 nmcli con mod eth0 ipv4.gateway 192.168.1.1 nmcli con mod eth0 ipv4.dns 223.5.5.5 114.114.114.114 nmcli con up eth0 # 查看生效配置 ip addr show eth0如果系统装了NetworkManager无脑改/etc/sysconfig/network-scripts/ifcfg-eth0在部分版本上可能不生效或冲突。最稳妥的判断方式用nmcli dev status确认网卡由谁接管再决定用哪种方式配置。再说共享上网也就是Linux机器作为NAT网关让内网机器通过它上网。核心就两步开启IP转发和添加iptables NAT规则# 1. 开启IPv4转发 sysctl -w net.ipv4.ip_forward1 echo net.ipv4.ip_forward 1 /etc/sysctl.conf # 2. 添加NAT规则eth0是外网网卡eth1是内网网卡 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT # 3. 保存规则 service iptables save这个方案的原理一句话就能说透MASQUERADE会自动读取内网流量的源IP重写成外网网卡的IP收到回包后再按连接追踪记录逆转换回去。理解了MASQUERADE就理解了家用路由器上网的全部秘密。5.3 挂载NAS存储与开机自动挂载热词里有linux挂载nas存储csdn还有一堆关于linux镜像安装、虚拟机安装linux的搜索。这些放在一起看说明大量用户在做的其实是同一件事虚拟机/服务器上挂存储、装系统、配环境。NAS挂载用NFS或CIFS/SMB两种协议Linux服务器之间推荐NFS跨平台Windows/群晖等NAS设备用CIFS。基础命令# NFS挂载 mount -t nfs 192.168.1.100:/volume/backup /mnt/backup # CIFS挂载需要cifs-utils包 mount -t cifs //192.168.1.100/share /mnt/share -o usernameuser,passwordpass,vers3.0vers3.0这个参数很重要。很多老机器默认还在尝试SMB1协议而现代NAS基本都禁掉了SMB1结果报mount error(112): Connection refused或Host is down。加vers3.0或vers2.1能解决大部分兼容性问题。想让挂载开机自动生效要写到/etc/fstab。fstab写错会导致开机进入emergency模式所以改之前最好先备份。一条典型的NFS自动挂载配置192.168.1.100:/volume/backup /mnt/backup nfs defaults,_netdev 0 0_netdev这个选项作用是告诉系统等网络就绪后再挂载。不加它开机时网络还没起挂载就会失败可能拖慢整个开机的过程甚至导致启动失败。另外改完fstab别直接用mount -a盲试先umount再mount一遍确认无报错再重启。一个排障技巧挂载NFS不通先用showmount -e 192.168.1.100看NAS导出了哪些目录。如果showmount都超时先查防火墙和网络连通性而不是反复改挂载参数。5.4 系统备份与恢复的保命思路热词里还有linux 系统备份恢复。Linux不像Windows那样有个系统还原点但做好备份的思路是清晰的。最轻量的方式是打包关键目录# 备份/opt/www和/etc排除cache和logs tar czvf /backup/system_config_$(date %F).tar.gz \ --exclude/opt/www/cache --exclude/var/log /opt/www /etc不过tar备份不适合作为完整系统恢复手段因为GRUB引导、分区表、UUID这些都不在tar包里。恢复系统更可靠的工具是dd或Clonezilla、Relax-and-Recover (ReaR)。对于个人或小团队我的实用建议是系统文件/etc、/opt下的应用用tar备份够用且轻量。数据库数据用数据库自带的备份工具mysqldump、pg_dump配合定时任务做全量binlog增量。整机系统镜像用ReaR做一次放在外置盘或另一台机器上重大升级前跑一次出问题一键恢复。rsync增量备份也值得掌握rsync -avz --delete /data/ rootbackup-server:/backup/data/--delete的作用是让目标目录严格同步源目录源端删除的文件目标端也删除。注意这个参数有风险如果源目录路径写错或为空会把目标端清空。我一般在命令里同时加--dry-run先试跑一遍确认无误再真正执行。6. 第五关文本处理与日志分析自测6.1 grep、sed、awk的定位与组合用法这三个工具是Linux文本处理的铁三角但很多人对它们的边界不清楚。我的理解grep负责筛选行按关键字把行挑出来。sed负责改行对特定行做替换、删除、插入。awk负责取列/计算按分隔符把行拆成字段做统计、格式化。工作中80%的日志分析用这三者组合就够了。举一组实际场景场景一统计nginx日志里每个IP的访问次数awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20这一条命令拆开看awk {print $1}提取第一列IPsort排序uniq -c去重并统计次数sort -rn按次数倒序排列head -20取前20。实际排障时它一招就能看出是不是有异常IP在刷请求。场景二替换配置文件里的某个值sed -i s/^max_connections.*/max_connections 512/ /etc/my.cnf^锚定行首. *匹配任意字符中间是关键字后面是替换内容。-i直接修改文件但改之前务必先备份或者先不加-i跑一遍看输出是否符合预期。场景三提取access log中耗时超过3秒的请求awk $NF 3 {print $7, $NF} /var/log/nginx/access.log假设日志最后一列是请求耗时秒$NF代表最后一列。这条命令把超过3秒的请求路径和耗时打出来排性能问题时能快速锁定慢接口。6.2 日志排查的系统化思路日志排查是运维的核心技能。热词里有linux系统故障案例我就以最常见的服务启动失败为例梳理一套完整的日志排查思路。第一步看服务状态。systemctl status mysqld看失败原因提示。第二步看系统日志。journalctl -u mysqld -n 100 --no-pager-u指定服务单元-n显示最后100行。这条命令直接关联systemd的journal日志比去翻文件快得多。第三步看应用日志。MySQL的/var/log/mysqld.log或应用配置里指定的log路径。这里注意应用日志和系统日志是两个体系application的报错信息往往最接近真实原因。第四步用dmesg看内核日志。dmesg | tail -50如果应用是段错误崩溃比如Java的SIGSEGV内核日志里会有踪迹。这个命令平时用得少但排查进程莫名其妙退出时极其有用。实战中我总结了一个快速日志定位口诀先在状态里找线索再去日志里要答案最后在内核里找证据。这套思路能覆盖90%的故障场景。6.3 日志切割与磁盘被日志打满的急救日志没做好轮转磁盘早晚被打满。这是运维最经典的慢性病。Linux自带的logrotate每天运行一次按配置切割日志。一个典型的nginx日志轮转配置/var/log/nginx/*.log { daily rotate 30 compress delaycompress missingok notifempty create 640 nginx adm postrotate test -f /var/run/nginx.pid kill -USR1 $(cat /var/run/nginx.pid) endscript }daily每天切一次rotate 30保留30份compress压缩旧日志delaycompress延迟一天压缩保证刚切的日志还能被查看postrotate在切割后给nginx发信号让它重新打开日志文件。这里有个关键点如果应用不会自动重开日志文件必须通过postrotate发信号否则它会继续往旧文件里写切割就是白切。如果日志已经打满磁盘急救步骤是# 1. 确认哪个分区满了 df -h # 2. 找出大文件 du -sh /var/log/* | sort -rh | head -10 # 3. 清理或切割最大的日志 cat /dev/null /var/log/nginx/access.log这里再强调一遍删除日志文件本身是错误做法用cat /dev/null清空内容才是对的。删除文件只是把文件名从目录里消失持有文件句柄的进程继续写空间依然被占着。用lsof | grep deleted能找出这类空间已被释放但文件被进程占用的情况。7. 自测评分与后续学习路径建议7.1 一套简单的自我评分方法题目做完了怎么知道自己的水平我建议把上面的五关分别打分每关满分20分总分为100分目录与文件操作能独立解释ls -la每个字段的含义能用find组合条件查找得20分。只会cd、ls、rm得5分。权限与用户能准确判断一个文件在各种权限组合下能否被读写执行知道SUID/SGID/Sticky Bit的作用得20分。进程与服务能用systemctl查看服务状态、定位启动失败原因理解ps和top输出关键字段得20分。网络与存储能用ip命令配置IP会用ss定位端口问题会挂载NAS并配置开机自动挂载得20分。文本处理与日志能用grep/sed/awk组合分析日志会配置logrotate得20分。用这个标准自测一下如果你的总分在80以上说明基础扎实可以直接上手生产环境的日常运维。60-80分说明“能干活但容易踩坑”建议重点补权限和网络这两个最致命的短板。60分以下建议别急着上生产环境先用虚拟机练一两周再实操。7.2 不同分数段位的针对性练习分数段的实操建议比笼统的多学多练有用得多60分以下主攻目录和权限。用虚拟机装一个CentOS或Debian刻意练习创建用户、设置密码策略、用find找文件、用tar打包恢复。每一组命令都自己敲一遍不看笔记。60-80分主攻日志分析和系统排障。故意制造故障再解决比如把nginx配置改错然后恢复、手动把日志写满再看怎么清理、用iptables封掉一个端口再放通。制造故障是学运维最快的方式这句话我反复验证过。80分以上主攻脚本化和自动化。你已经能解决单点问题下一步是把重复操作变成脚本用bash写一键部署脚本、用systemd timer或cron做定时任务、用rsyncssh做异地备份。这个阶段的目标是省人力而不是一上来就学Kubernetes或Ansible那些重工具。7.3 推荐的学习资源和使用方法很多初学者上来就问哪本书最好。我的建议是不要只靠书用刷题项目查文档的组合命令查询man命令是第一老师但英文阅读成本高的话可以用tldr一个简洁版命令帮助工具快速回忆用法。Linux基础书如果只推荐一本我会推荐《鸟哥的Linux私房菜》基础篇虽然部分内容老但目录结构权限Shell这部分仍然是最扎实的讲解。实操环境本地虚拟机VirtualBox/VMware或云服务器1核2G的配置就够学基础了。热词里的虚拟机安装linux、linux镜像安装本质上就是第一步练习把系统装起来网络配通SSH连上。在线题库把热词里的linux面试题测试、linux常用命令大全当题库来刷但不要背答案每个命令都在自己机器上验证一遍。我特别建议准备一个自己的实验记录本每学一个新命令写一小段我用来解决什么问题的笔记配上当时敲过的命令和遇到的问题。半年下来这本笔记的价值远超任何一本教程。7.4 面试时的加分回答模板既然热词里频繁出现linux面试题测试我最后聊一下面试技巧。面试官的考察重点往往不是答案本身而是你的思考过程。同样一个问题不同的回答深度分数天差地别。比如被问到如何查找一个进程并杀掉它。低分回答ps -ef | grep xxx然后kill -9。高分回答先用ps -ef | grep xxx确认进程PID和启动时间。用ss -lntp | grep PID确认它监听了哪些端口。判断是正常停止还是强制结束——kill默认发TERM信号让进程自己清理优先kill -9强制杀不给清理机会兜底。如果要重载配置而不是停止进程用kill -HUP PID很多服务如nginx会优雅重载。杀完进程后用ps确认它是否真的退出有些进程有守护进程会自动拉起。能说出这五步面试官就会认定你是真正处理过问题的人而不是背命令的书呆子。先想后做优雅优先确认收尾这12个字是我对所有学员的要求。另外一个高频题Linux被入侵了第一步做什么答案不是杀进程或删文件而是先断网拔网线或封掉对外端口保留现场然后拷贝日志和进程快照做取证。能答出保留现场这四个字你就已经超越大多数只会kill病毒进程的候选人了。8. 我在出题和批改过程中的几点体会这套题我在团队里实际用过几轮说一下真实感受。出题时最难的不是设置知识点而是把知识点和真实场景挂钩。比如软链接失效这个问题如果只是问软链接和硬链接的区别大家都能背出来。但换成你启动服务时报No such file or directory但文件明明存在怎么排查很多人的第一反应就卡住了——这就是从知道到会用的距离。所以我的题目设计原则是能直接对应一个工作中踩过的坑而不是单纯考察记忆。批改时最常暴露的薄弱环节集中在两处一是权限模型尤其是删除文件看目录权限这一点错得最多二是systemd时代服务起不来的排障思路很多人只会重启不会看日志。这两个薄弱的背后其实是同一个原因——现在的教程和视频都强调怎么用命令缺少命令背后代表什么的讲解。另一个意外发现是会写脚本的人和不会写脚本的人基础题得分差距并不大但解决同样问题的速度差好几倍。比如清理N天前的日志一个用find /var/log -name *.log -mtime 30 -delete的脚本能将一条每天手动清日志的重复劳动彻底消灭掉。所以我后来在题目里加了文本处理和脚本相关的自测项即使岗位连写脚本都不要求这种用工具替代手动重复的思维方式也应该具备。最后说一点私人体会我曾经带过一个实习生刚来时连vim都不会退出气得我想退货。但他有一个好习惯每天把踩过的坑和应对方法记下来三个月后他排查问题的思路比很多两年经验的人还清晰。技术这东西只要肯动手、肯记录、肯总结成长速度往往是加速度的。希望这套自测题能成为你建立Linux知识体系的起点而不是终点。遇到卡住的地方先动手敲一遍再查资料理解原理你会发现Linux没那么神秘它只是一个所有东西都是文件、所有操作都在日志里留痕的大型工具集罢了。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑