资讯动态

Linux学习与实战:从常用命令到系统安装、运维与面试避坑指南

发布时间:2026/9/9 2:52:35 来源:尧图企业网站定制
这个关键词在我的搜索记录里躺了快十年。打开任何一个搜索引擎都能看到linux常用命令大全linux系统安装linux面试题这些词常年霸榜收藏夹里存了一堆教程最后真正坚持下来的人却没几个。这篇内容不是教科书是从一个天天跟服务器打交道的Linux使用者的角度把学Linux、装Linux、用Linux、面Linux这几个环节里的核心方法和踩坑记录全部摊开讲一遍。文章里会有可以直接照抄的命令、分区方案、安装步骤和故障排查思路适合刚接触Linux的新手也适合准备面试的运维和开发人员以及那些只是想给自己电脑装个双系统、配个开发环境的普通程序员。1. 学Linux方向比数量重要1.1 先理解Linux的几个核心抽象linux操作系统基础知识这个热搜词说明很多人第一步就卡在了老生常谈的基础理论上。我不建议一上来就啃《深入理解Linux内核》而是先理解几个核心抽象。一切皆文件就是第一个核心。Linux把设备、进程、网络都抽象成文件所以你能用open、read、write这一套接口操作几乎所有东西。理解了这一点很多命令的逻辑就通了。比如/dev/null就是一个黑洞文件把输出丢进去就是丢弃/proc目录下面全是虚拟文件cat /proc/meminfo能看内存信息cat /proc/cpuinfo能看CPU信息。内核与Shell的关系是第二个。内核管理硬件资源Shell是用户和内核之间的翻译官bash就是最常见的Shell。你敲的每条命令本质上都是让Shell帮你调内核的接口。Windows用户刚转过来时最不适应的就是没有图形界面也能干活其实Shell就是最高效的图形界面只是它不是鼠标点的是文字敲的。权限模型是第三个也是新手最容易出事的点。Linux的权限分为读、写、执行三档分别对应该文件或目录的所有者、所属组、其他用户。目录的执行权限代表能不能进入这个目录这个很多人会搞混。权限控制是Linux安全的基础后面装服务、建用户的时候大部分问题都是权限不对导致的。1.2 按照用途选学习路线这里的关键是要认清Linux的学习路线取决于你的使用场景不同场景需要掌握的东西差别很大。如果你是运维重点在服务管理、网络配置、系统调优、自动化脚本。以linux常用命令大全运维这个热搜词为例你其实需要的是systemctl、journalctl、ss、awk、sed、crontab这类命令而不是花哨的桌面美化。如果你是后端开发重点在搭建开发环境、理解进程和网络、会用Docker、能看懂日志。热搜词里的linux系统安装pythonlinux安装jdk就属于这个方向你需要掌握的是环境变量、软件包安装、遇到缺库怎么排查。如果你是嵌入式方向重点在交叉编译、内核裁剪、设备树、文件系统烧录。嵌入式linux这个词的热度一直很高但说实话这条路门槛最高因为它要求你同时懂硬件和软件不是光靠背命令就能搞定的。最怕的是什么最怕的是方向没想清楚就买了一堆大部头书或者收藏了linux常用100个命令结果学两周就放弃了。我建议一开始先定一个目标比如我要在虚拟机里搭一个WordPress站或者我要学会用Linux做日常开发以项目带学习这才是最快的路径。1.3 别忽视桌面环境的意义提到linux国产很多人第一反应是服务器端。实际上近几年国产Linux桌面发行版在办公和教育领域已经挺常见的就像热搜里出现希沃白板linux版搜狗输入法linux企业微信linux豆包linux客户端一样说明日常软件生态正在慢慢补齐。我的观点是桌面环境最大的意义不是拿Linux替代Windows而是让你在一个低风险的环境里熟悉Linux的操作习惯。你可以在虚拟机的Ubuntu桌面版里练习文件管理、输入法配置、软件安装把这些基础操作练顺手了再跳到纯命令行的服务器环境就不会那么慌。这也是为什么我一直推荐新手从虚拟机安装Ubuntu桌面版开始而不是一上来就装个无桌面的最小化系统。2. 命令实战高频命令背后的真实场景每次看到linux常用100个命令这类内容我都觉得好笑因为正常人根本用不了100个。大概20个命令就能覆盖日常工作的80%。但问题在于很多人是背命令而不是用命令背完就忘。这里我把最值得掌握的几组命令放在真实场景里讲。2.1 文件与目录操作别让rm毁了你的一天ls、cd、cp、mv、rm、mkdir、touch、ln这些是文件操作的基础。我用得最多的其实是ls -lh和find。linux find这个热搜词能上榜说明大家都被找文件折磨过。find的核心用法是find /var/log -name *.log -mtime -7 find /home -type f -size 100M find / -name nginx.conf 2/dev/null第一句是在/var/log下找修改时间在7天内的日志文件第二句是找/home下面大于100MB的文件排查磁盘占用时特别好用第三句是全盘找某个配置文件把权限报错丢到/dev/null里防止刷屏。find的-exec参数还支持对查到的结果直接执行命令比如批量清理临时文件find /tmp -name *.tmp -type f -exec rm {} \;先find确认再批量执行比手动删安全得多。至于rm网上那句rm -rf /的玩笑已经够多了。我说点真实的删除文件夹用rm -rf 目录名没问题但请务必先确认路径没写错。我见过有人把变量写成空格导致rm -rf后面跟了根目录的也见过把/opt/app写错成/opt/app/logs多删一层的。规范化做法是删除前用ls确认或者干脆用mv移到/tmp目录确认没问题再删也就是软删除思路。2.2 文本处理grep、sed、awk是运维的三大件日志在服务器上是永远排查不完的如果不会文本处理你的运维生涯会非常痛苦。grep负责过滤sed负责编辑awk负责按列处理三者合起来能解决95%的日志分析需求。grep -E ERROR|FATAL app.log | wc -l sed -n 100,200p app.log awk {print $1, $4} app.log | sort | uniq -c第一句统计错误日志条数第二句只看第100到200行日志文件巨大时不卡死第三句把每行的第一个字段和第四个字段取出来统计去重计数排在前面的往往就是刷屏的来源。热搜词里还有linux sed我多说一句sed最常用的替换功能是sed -i s/old/new/g config.conf这个命令会直接改写文件慎用尤其配置文件建议先不加-i跑一遍确认无误再加上。我在生产环境改配置前永远先备份一份。2.3 进程与系统状态定位性能问题的基础服务器变卡了怎么办top是最直观的入口按P按CPU排序按M按内存排序按k可以杀掉进程。free -h看内存df -h看磁盘。如果发现内存还剩很多但Swap被占满了通常是缓存策略问题如果发现CPU全是waIO等待那大概率是磁盘IO瓶颈这个要靠sar和iostat进一步排查。systemctl和journalctl是管理服务的核心命令。查一个服务挂了顺序通常是systemctl status nginx journalctl -u nginx --since 10 minutes ago systemctl restart nginx systemctl enable nginx先看状态再看日志再重启最后设置开机自启。日志会告诉你服务为什么挂光重启不解决根本问题。这个实操习惯大家一定要养成。2.4 网络与传输不装图形界面也能传文件网络排查是Linux运维的另一个大头。ping测连通、ss -tlnp看端口监听、curl测试HTTP接口这套组合基本够了。比如新配了一台机器发现外部访问不到80端口ss -tlnp | grep 80 curl -I http://127.0.0.1第一条确认服务有没有监听第二条确认本地能不能访问。如果监听正常但外网不通那大概率是防火墙规则或者云安全组的问题systemctl status firewalld查一下状态临时关掉再试不要一上来就全盘放行。文件传输也是高频需求。搜linux rz和sz说明大家都在找直观的方案。rz和sz是XShell这类终端里最方便的上传下载命令rz接收文件、sz发送文件人性化得像鼠标操作。如果没有装使用yum install lrzsz或apt install lrzsz即可。生产环境跨服务器传输还有一个杀手级命令是rsync支持断点续传和增量同步迁移数据时特别稳。3. 系统安装从镜像下载到装完系统linux系统安装linux镜像linux安装这些热搜词说明很多人第一步就卡在了安装这个看似简单实则很多坑的环节。我以虚拟机安装Rocky Linux 9为例把完整流程和容易出问题的地方都讲一遍。3.1 发行版怎么选从镜像开始主要的Linux发行版分几条线Debian系有Ubuntu、DebianRed Hat系有Rocky Linux、AlmaLinux还有面向服务器的SUSE和面向极客的Arch。选型标准其实很简单如果是为了学基础、做开发Ubuntu LTS用户多、资料多、出错能找到答案如果是为了服务器生产环境Red Hat系更常见因为很多商业软件和文档都优先适配它。CentOS停止维护后Rocky Linux和AlmaLinux是最热门的替代品这也是rocky linux热度高的原因。下载镜像时一个关键点尽量用国内镜像站速度能差几十倍。搜索某发行版 镜像站一般就能找到阿里云、华为云、清华TUNA这些镜像源。文件名里带live或desktop的是图形版带server的是服务器版选择时看清楚。如果不想下载整个镜像做虚拟机WSL 2也是一个好选择。Windows上装WSL 2配合发行版镜像能在Windows里跑原生Linux环境开发调试非常方便这也是很多Windows开发者的选择。3.2 虚拟机创建与分区虚拟机软件用VMware Workstation Player或VirtualBox都行。创建虚拟机时CPU给2核、内存给4GB、磁盘给40GB以上这是跑系统的底线。网络选NAT模式它能让虚拟机通过宿主机上网后续想改桥接也方便。安装界面里最重要的环节是磁盘分区。新手如果搞不清楚就一直选默认的自动分区反正都有LVM后面扩展也方便。如果你想手动分我建议简单方案/boot1GB启动引导用swap与内存大小相当或8GB上限内存够大也可以不建/剩余全部空间这里有个常见的坑如果之后想扩展根分区LVM会方便很多但如果你分了独立的/home分区且空间给少了后面迁移用户数据会很痛苦。我的经验是刚开始练习阶段一个根分区就够了逻辑简单出问题也好处理。3.3 关于蓝屏和虚拟机疑难杂症的排查热搜词虚拟机安装linux蓝屏绝对是很多人的噩梦。这个问题绝大多数不是Linux镜像本身的锅而是虚拟化层面的冲突。常见原因有几个第一在Windows上使用VMware时开了Hyper-V或者内核隔离导致嵌套虚拟化冲突VMware启动时直接蓝屏。解决办法是把Windows的Hyper-V相关功能关掉或者改用Hyper-V本身来创建虚拟机。跑WSL 2也需要Hyper-V组件所以如果又用WSL又用VMware冲突概率更高。第二BIOS里的虚拟化技术VT-x/AMD-V未开启。开机进BIOS找Intel VT-x或AMD SVM把它设为Enabled。这一步忘了启动虚拟机时会提示此主机支持VT-x但不支持之类的报错。第三内存不足或磁盘空间不足导致虚拟机启动瞬间崩溃。给虚拟机分配的内存不要超过宿主机物理内存的一半同时确保磁盘剩余空间够大虚拟磁盘文件通常是动态增长的别看它初始只有几个GB后面会膨胀到几十GB。处理这类问题时我的习惯是先把所有虚拟化相关的内核组件状态查清楚再考虑是否关闭Hyper-V最后才是重装系统。跳过排查直接重装往往同一步错第二遍。4. 日常运维添加用户、装软件、配DNS、调磁盘4.1 软件包管理update和upgrade到底有什么区别linux中update和upgrade有什么区别这个问题几乎每个新人都会问面试也常问。简单说apt update是更新软件源索引也就是把远程仓库里的软件包列表同步到本地它不改变系统里任何已安装软件apt upgrade才是真正升级系统里已有的软件包。对应的yum/dnf里是yum check-update和yum update逻辑类似。所以装软件前必须先update否则可能提示找不到包或者装的版本很旧。但又不能天天无脑upgrade尤其在生产环境一次大版本升级可能带来兼容问题。我的做法是测试环境的Linux可以每周upgrade一次生产环境只在需要打安全补丁或功能升级时挑非业务高峰逐个升级。软件安装的例子包括热搜里的linux安装jdklinux系统安装python和linux离线安装pnpm。装JDK推荐用包管理器或下载官方压缩包两种方式。包管理器装openjdk一行命令就搞定但版本控制不够灵活下载Oracle JDK的tar.gz自己解压到/opt/jdk然后配置环境变量更可控export JAVA_HOME/opt/jdk-17 export PATH$JAVA_HOME/bin:$PATH写进/etc/profile才能全局生效改完记得source /etc/profile。离线安装是个高频场景。很多生产服务器不能上外网装pnpm这种就需要先在联网机器上下载好安装包或二进制再拷贝进去。pnpm提供了独立的二进制包下载对应版本的二进制文件传到服务器解压后软链到/usr/local/bin/pnpm再npm install -g一下就行。离线环境的通用思路就是先找依赖、再传包、再手动配置尽量用官方提供的离线安装包形式少自己编译源码否则依赖地狱会让人疯掉。4.2 新建用户与权限管理linux新建用户也是经典问题。useradd和adduser是两个不同的命令Debian系的adduser是个脚本会自动创建家目录和用户组useradd则是底层命令不加参数时不会自动创建家目录。建议新手用adduser。实际流程adduser zhangsan passwd zhangsan usermod -aG sudo zhangsan第一条创建用户第二条设置密码第三条把用户加入sudo组。sudo的权限在/etc/sudoers里控制改这个文件一定要用visudo命令因为它会检查语法避免你把系统唯一的sudo入口改坏。权限管理里最常见的需求是给某个服务建一个专用账号只允许访问特定目录这就要用到chown、chmod的深入理解。所谓最小权限原则就是在生产和共享环境里务必定期审计home目录权限别让每个新用户都拥有全局的写权限。4.3 DNS配置的经典坑linux中配置dns出现的问题这个热搜词说明DNS是坑中之坑。传统的改法是在/etc/resolv.conf里写nameserver但这个文件现在经常被systemd-resolved或NetworkManager覆盖你改了重启又变回去。所以要先搞清楚系统用哪个网络管理服务。如果用的是systemd-resolved正确做法是通过resolvectl查询状态用nmcli修改DNSnmcli con mod Wired connection 1 ipv4.dns 223.5.5.5 8.8.8.8 nmcli con up Wired connection 1 systemctl restart systemd-resolved如果你非得直接改/etc/resolv.conf需要先把这个文件的符号链接关系弄清楚。很多发行版里它是指向/run/systemd/resolve/resolv.conf的符号链接直接在系统里改不生效。排查DNS问题的思路是先ping一个IP通不通再nslookup一个域名看看解析用的是哪个服务器最后看/etc/nsswitch.conf里hosts那行有没有包含dns。按这个顺序来大多数DNS有问题都能定位到具体层。4.4 磁盘调优设置寻道算法的实际意义linux设置磁盘寻道算法这个词有点硬核。磁盘寻道算法是I/O调度器决策谁来先访问磁盘的策略。原来的Linux有noop、deadline、cfq等调度器现代内核里很多都被合并或者由mq-deadline、none替代了。查当前调度器cat /sys/block/sda/queue/scheduler临时切换echo mq-deadline /sys/block/sda/queue/scheduler永久生效要写udev规则或内核引导参数比如在/etc/udev/rules.d/里加一条规则。我的实际建议是如果你用的是SSD/NVMe现代Linux默认的none基本就最优了不需要专门改如果是HDD跑数据库这类随机IO比较高可以试mq-deadline对延迟有改善。这块属于锦上添花的调优先分清场景再动手别盲目抄别人的参数。5. 面试与求职Linux相关岗位到底考什么linux面试题linux面试题测试linux常用命令大全运维这些热搜词的背后是大量准备跳槽的开发、运维人员在焦虑。我面过不少候选人也经常帮别人做面试辅导说说真实感受。5.1 面试题的核心模块根据我看到的面试题样本Linux面试基本围绕六个模块展开模块高频考点系统启动从BIOS到内核到init/systemd的启动流程文件与权限权限位的计算、suid/sgid/sticky bit、软硬链接区别命令与文本处理grep/sed/awk用法、查找大文件进程与服务僵尸进程是什么、如何杀进程、systemd unit怎么写网络端口排查、DNS解析流程、TCP握手状态故障排查磁盘满了怎么办、CPU飙高怎么定位、服务起不来怎么办启动流程这块很多教程写得特别玄乎其实记住主线就行BIOS/UEFI加载引导程序→引导程序加载内核→内核挂载根文件系统→运行init进程现在多是systemd→systemd读取默认target并启动相应服务。面试时能把这条线说清楚再结合systemd的unit概念展开基本就能过关。5.2 实操型面试的准备把背题变成演练我见过很多人简历上写着熟练使用Linux实际上连top怎么按内存排序都不知道这种在一道实操题面前就会露馅。所以准备面试时不要只看题要真的在虚拟机里把命令敲一遍。建议准备一台测试机自己给自己出题比如故意把某个服务的配置文件写错让服务起不来再通过journalctl把问题找出来模拟磁盘写满的场景找出占用空间最大的目录并清理写一个cron任务定时备份数据库。这些场景练习一次比背五十道题有用得多。另外Linux安全这块要特别注意。热搜词里有linux提权我以安全加固的视角提醒大家作为运维或开发你需要了解的是提权的常见路径目的是在服务器上做对应的防范比如最小化sudo授权、定期更新内核补丁、SSH禁用root密码登录、不用弱口令。了解原理是为了防守而不是为了攻击。面试时被问到安全问题从我如何防止被提权的角度回答比讲攻击细节要专业得多。6. 常见问题速查与避坑实录最后放一个我在日常实操里反复遇到、也常被问到的问题速查表。现象原因解决办法unzip解压zip文件中文乱码zip包是Windows创建的编码为GBK用unzip -O CP936 file.zip或安装7zip后使用7z x file.zipapt update能同步但upgrade总是失败软件源配置不一致或网络问题检查/etc/apt/sources.list换稳定的镜像源端口被占用服务起不来上一个进程没退干净ss -tlnp找到PID确认无残留再启动df显示磁盘快满了但du找不到大文件有文件被删除但仍被进程占用用lsof配合grep deleted找到占用进程后重启该进程服务器时间不对日志对不上时区或NTP同步问题timedatectl设置时区systemctl enable chronyd开启同步rm删错文件想恢复没有备份基本无解这就是为什么强调先mv到临时目录systemd服务启动失败unit文件语法或权限错误systemctl status 服务名加上journalctl -u 服务名 -n 50定位虚拟机装Linux过程中蓝屏虚拟化层冲突检查Hyper-V、VT-x、内存分配和磁盘空间中文输入法装了但无法切换缺少输入法框架安装fcitx5并设置环境变量GTK_IM_MODULEfcitx多解释几个。解压乱码。Windows打包的zip默认GBK编码Linux默认UTF-8直接unzip就乱码。最直接的解法是安装p7zip-full后使用7z x file.zip它对编码兼容性好一些或者用unzip -O CP936指定编码。这也是为什么我给别人传压缩包前都会顺手说一句在Linux下解压注意编码。df和du对不上。这是运维新手最容易慌的场景。明明df显示磁盘100%但du统计某个大目录才用了60%中间差的40%去哪了大概率是有文件被删除但还被进程占用常见的例子是正在写日志的进程把日志文件删了。用lsof配合grep deleted查一下找到进程ID重启进程或者把文件清空磁盘空间就会释放。这个坑我至少遇到过三次。DNS配置。前面也讲了关键是先搞清楚是谁在管理resolv.conf不然改完等于白改。顺便说一句公司内网如果出现能上QQ不能开网页这类问题80%是DNS解析失败直接拿nslookup测一下就知道。最后再分享一个小技巧每次解决一个自己卡了很久的问题把排查过程和原因记录到自己的笔记里。这个习惯坚持一两年你的问题排查经验库会比任何培训都值钱面试的时候也会特别有底气。Linux这个东西说到底是练出来的不是背出来的你每踩过一个坑解决问题的能力就实实在在往上走一截。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价