学Linux到底在学什么:文件、权限、进程与网络的核心清单

发布时间:2026/10/15 5:51:31
学Linux到底在学什么:文件、权限、进程与网络的核心清单 学Linux到底在学什么一位老运维眼里的基本内容清单经常有人问我想学Linux基本内容到底有哪些 说实话这问题问得越简单越不好答。因为它不是一个命令清单也不是一本五百页的教程目录。我接触Linux十几年从应用部署到系统调优都碰过回头看所谓的基本内容其实是几条相互交织的线索文件与权限、进程与系统状态、命令行工作流、网络与远程管理。这篇文章我想换个思路不按命令字典的方式讲而是按一个真实使用者或者说踩坑者的视角把这几个核心模块背后的逻辑和注意事项拆开来看。无论你是刚准备入行的新手还是用了一段时间但总觉得没系统化的朋友这篇内容应该都能对得上你的困惑。先提前说明我不会堆一大堆参数只挑实际工作中出现频率最高的那些点来讲并且每个知识点都会说明它在什么场景下有用。这样你看完能直接用而不是学了就忘。1. 文件系统与路径体系为什么第一课不是命令而是目录概念很多教程喜欢从ls、cd开始教但我个人觉得理解Linux文件系统的整体布局才是真正的第一课。因为它决定了你能不能快速定位问题、会不会把文件放错地方。1.1 根目录下的那些约定俗成Linux的目录结构遵循文件系统层级标准FHS虽然不同发行版略有差异但骨架基本一致/bin和/sbin存放系统命令比如ls在/bin/lsreboot在/sbin/reboot。现在很多发行版把/bin软链到/usr/bin了细节不一样但无伤大雅。/etc配置文件的家。几乎所有的应用配置都在这比如Nginx配置在/etc/nginx/系统的用户信息在/etc/passwd。/home普通用户的家目录你在服务器上给谁开了账号它的文件默认都在/home/用户名下。/var动态数据比如日志/var/log、缓存/var/cache、邮件/var/mail。排错的时候第一个看这里这是经验之谈。/tmp临时文件目录任何人都能写重启后内容可能被清空。/opt第三方软件安装目录很多手动装的软件包放在这。新手最常犯的错误是自己编译了软件随手扔在/home下某个文件夹里结果其他用户用不了或者开机启动找不到路径。规范的做法要么是安装到/opt要么是做成systemd服务并通过配置指定路径。1.2 绝对路径与相对路径快捷键和翻车现场路径分两种绝对路径从根/开始写完整路径比如/var/log/nginx/access.log在任何位置都能直接定位相对路径是相对当前所在目录的路径比如你在/var下那log/nginx/access.log就能访问同样文件。看起来很简单但实战中我见过不少人因为相对路径翻车。举个例子一个定时任务脚本里写了cd logs rm -rf *.log但cron执行时的当前目录跟你手动执行不一样很可能cd logs失败继续往下执行时跑到不知道哪个目录里乱删了。所以凡是脚本里涉及路径一律写绝对路径或者先cd到固定目录再操作。这个习惯能帮你避开很多莫名其妙的故障。1.3 通配符与文件定位ls *.log里的*是通配符代表任意字符?代表单个字符[abc]代表a或b或c。这东西在处理一批文件时极有用比如# 列出所有2023年开头的日志 ls 2023*.log # 删除当前目录下所有.txt文件 rm -f *.txt不过要小心rm -rf *这种组合在根目录/下执行等于毁灭性操作。我甚至有个习惯坚决不在/或重要目录下用带*的删除命令一律先ls看清楚再删虽然麻烦但安全第一。查找文件还有一个常用命令find它比ls更强的地方在于可以按条件递归查找# 在整个系统找名为nginx.conf的文件 find / -name nginx.conf 2/dev/null # 找修改时间是7天内的日志 find /var/log -name *.log -mtime -72/dev/null是把错误输出丢掉因为有些目录没权限访问会报错但不影响查找结果。这里顺带一提locate命令查文件很快但它的数据库不是实时更新的新创建的文件可能搜不到所以离线环境或排错时我更依赖find。2. 权限与用户体系决定Linux安全底线的根基如果说文件系统是房子的结构那权限就是每扇门的锁。Linux是多用户系统权限设计直接决定了谁能看、谁能改、谁能执行。这部分内容如果没搞透后面做任何部署都会碰壁。2.1 从rwx到数字表示法每个文件都有属主owner、属组group和其他人others三种角色的权限每种角色有读r、写w、执行x三个位。举个例子-rw-r--r-- 1 root root 1234 Aug 1 10:00 myfile.txt这段信息里的-rw-r--r--第一位-表示普通文件d是目录l是软链接后面九个字符三个一组属主可读写rw-、属组只读r--、其他人只读r--。数字表示法是这套东西的二进制缩写r4w2x1加总起来就是权限值。比如755的含义是属主7rwx属组5r-x其他人5r-x。常见的组合如下权限值含义典型场景644属主可读写其他人只读普通配置文件755属主可读写执行其他人可读执行脚本、目录600仅属主可读写SSH私钥、密码文件700仅属主可读写执行私有目录777所有人可读写执行不推荐少用修改权限用chmod# 数字方式 chmod 755 script.sh # 符号方式给属主加执行权限 chmod ux script.sh # 递归修改目录内所有文件 chmod -R 755 /opt/myapp/2.2 不只有rwx特殊权限的三个隐藏位基础权限之上还有三个特殊权限实战中经常被忽略但一旦遇到会一头雾水。SetuidSUID数字权限前多一位4表现为属主执行位从x变成s。它允许普通用户执行该程序时临时获得属主权限。典型例子是/usr/bin/passwd普通用户能通过它改密码就是因为有SUID。但生产环境要定期检查系统里哪些文件有SUID防止被人利用提权。SetgidSGID数字前加2目录设置了SGID后在该目录下新建文件的属组会自动继承目录的属组常用于团队协作目录。Sticky Bit粘滞位数字前加1最常见的就是/tmp目录权限显示为drwxrwxrwt。它保证用户只能删除自己创建的文件哪怕目录本身是777也无法删别人的临时文件。2.3 用户、组与sudo权限最小化的落地手段管理用户和组用到这些命令useradd创建用户、passwd设置密码、usermod修改用户属性、groupadd创建组。生产环境我有一条铁律没有特殊需求绝不用root跑应用。常规操作是创建一个专用账号只给它必需的权限。比如部署Java应用就建一个appuser让进程归它所有资源访问权限按需最小化。日常需要临时提权时用sudo而不是切到root操作。sudo的权限配置在/etc/sudoers里编辑请用visudo命令别手改文件格式错了会导致sudo全废。比如给某个用户分组授权# 让wheel组的用户都能sudo %wheel ALL(ALL) ALL # 让某用户免密执行systemctl重启nginx myuser ALL(ALL) NOPASSWD: /usr/bin/systemctl restart nginx这种精细授权的好处是出问题时审计日志能清楚看到谁在什么时间执行了什么命令。全拿root干活出了问题都算在root头上等于没审计。3. 进程、服务与系统状态让机器老实交代的常用手段服务器出了问题本质上是某个进程不听话、某个服务没起来、或者某个资源不够了。所以我一直觉得查状态比记命令更重要你得知道系统里正在发生什么。3.1ps与top进程看的两种 depthps aux是查看进程快照最常用的写法ps aux | grep nginx它能列出所有进程USER列是属主%CPU和%MEM是资源占用STAT是状态S睡眠、R运行、Z僵尸。这个命令的高频场景是定位某个进程是否在跑、PID是多少、占了多少资源。动态监控用top或者更现代的htop它会持续刷新。看top有个小诀窍先看load average一行三个数值分别代表1分钟、5分钟、15分钟的平均负载。如果三个数都接近甚至超过CPU核数说明系统一直在高负荷运转。接下来看进程列表里哪个进程CPU高基本就能锁定问题源。3.2 服务管理systemd是现在的事实标准现在主流发行版都用systemd管理服务核心命令是systemctl# 启动/停止/重启 systemctl start nginx systemctl stop nginx systemctl restart nginx # 设置开机自启 systemctl enable nginx systemctl disable nginx # 查看服务状态和最近日志 systemctl status nginxsystemctl status输出的内容很有价值它会告诉你服务当前是否active、主进程PID是多少、最近几条日志是什么。有时候服务起不来光看这一条命令就能知道原因比如配置文件语法错误。看服务为什么崩溃用journalctl查systemd的日志# 看某服务今天的日志 journalctl -u nginx --since today # 实时跟踪日志 journalctl -u nginx -f3.3 僵尸进程与孤儿进程面试题背后的真实场景僵尸进程Zombie是进程已结束但未被父进程回收还在进程表里占个位置的进程。偶尔一两个没事但如果出现大量僵尸态多半是父进程写的有问题没有正确处理子进程退出信号。排查步骤是先ps aux找到僵尸进程的PID和父PID再看父进程是什么多半是需要重启或修复的应用。孤儿进程是父进程挂了子进程被init/systemd收养这种通常无伤大雅。说白了这两者考察的是你对进程生命周期的理解排查思路比背概念重要。3.4 文件描述符与ulimit高并发场景的隐形瓶颈Linux一切皆文件进程每打开一个文件包括网络连接就占用一个文件描述符FD。每个进程默认打开的FD数量是有限制的高并发下经常会撞上这个限制。# 查看当前进程的FD限制 ulimit -n # 临时提升到65535 ulimit -n 65535生产环境往往需要在/etc/security/limits.conf里持久化配置* soft nofile 65535 * hard nofile 65535如果不配置你可能会遇到too many open files这类报错服务明明看起来没错就是起不来。这种坑特别隐蔽不是代码问题是系统资源限制问题。我排过很多次这种错凡是高并发服务先把ulimit -n调上去再讨论其他优化。4. 命令行工作流管道、重定向与文本处理的艺术命令行是Linux的灵魂但它的精髓不是一个个单独的ls或cat而是组合成管道流程。这部分练好了处理日志、批量修改、分析数据都事半功倍。4.1 管道与重定向数据流的搬运工管道符|把前一个命令的输出作为后一个命令的输入。它是Linux命令行最高频的思想# 查看nginx访问日志里哪些IP访问最多 cat access.log | awk {print $1} | sort | uniq -c | sort -rn | head -20这条命令的分解逻辑是awk提取每行第一个字段IPsort排序让相同IP相邻uniq -c统计次数sort -rn按次数倒序head -20取前20名。这串管道下来一条命令就完成了一个小报表这是Windows图形界面很难做到的高效。重定向就是覆盖写和追加写# 把命令输出保存到文件 echo hello /tmp/test.txt # 追加 echo world /tmp/test.txt # 错误输出重定向 nginx -t 2/tmp/error.txt4.2grep、sed、awk文本处理三剑客这三兄弟是命令行处理日志的绝对核心值得分别说清楚。grep是搜索过滤。最常见的用法是带-E用正则或者-v反向匹配-i忽略大小写。# 搜索ERROR级别的日志但排除timeout关键字 grep ERROR app.log | grep -v timeoutsed是流编辑器适合做替换、删除、插入。最经典的用法是把文件内容批量替换# 把配置里所有8080端口换成9090 sed -i s/8080/9090/g config.yaml但要注意-i是直接改文件线上操作前先备份或先不带-i试跑一遍。我见过同事一条sed -i把重要配置改错结果服务起不来所以这个命令务必谨慎。awk是字段处理神器它按列分割文本适合做结构化处理# 打印日志里每行的第1列和第4列 awk {print $1, $4} app.log # 按逗号分隔 awk -F, {print $2} data.csvawk还能做统计比如求和、计数甚至写简单判断功能强大到能当一门语言用。对于运维和研发来说掌握grep sed awk这三个命令的基本套路日常90%的文本处理需求都能覆盖。4.3 环境变量与PATH为啥你输命令总报command not foundPATH环境变量决定了系统去哪些目录找命令。echo $PATH可以查看。有的软件装在/usr/local/bin如果这个路径不在PATH里你输入命令就会提示找不到。解决办法是把路径加进PATHexport PATH/usr/local/bin:$PATH但这样只在当前会话生效。想要永久生效一般写在/etc/profile或者其他profile文件里。每次配完记得source /etc/profile或用新会话验证。还需要记住profile和bashrc的区别profile是登录shell时加载bashrc是每次打开交互式终端时加载。放错文件可能导致环境变量不生效或者重复加载这类问题排查起来不难理解了加载机制就能很快定位。4.4 Shell脚本基础从手敲命令到自动化当命令行操作需要重复执行就该写成shell脚本了。一个合格的脚本起码要包含这几点环境声明#!/bin/bash、变量、条件判断、循环。举个简单的备份脚本例子#!/bin/bash # 备份nginx配置到指定目录保留7天 BACKUP_DIR/data/backup/nginx_config DATE$(date %Y%m%d) mkdir -p $BACKUP_DIR/$DATE cp -r /etc/nginx/ $BACKUP_DIR/$DATE/ # 删除7天前的备份 find $BACKUP_DIR -type d -mtime 7 -exec rm -rf {} \;这里有两个容易踩的坑第一date %Y%m%d要用反引号或者$()包裹第二find -exec后面为什么有个{} \;{}是占位符表示找到的文件名\;是命令结束符。写脚本时语法细节看多了自然会记住但初学阶段一定多查手册别凭印象硬写。5. 网络与远程管理实际操作里绕不开的基本功现在的服务器没网络就等于没生命。部署服务、排查故障、远程登录全跟网络有关。这部分我把实际工作中最常用到的网络命令和场景串一遍。5.1 查IP与端口两个高频命令ip addr或老一点的ifconfig查看本机IP地址和网卡状态。我得提醒一句新系统很多没装ifconfig了统一用ip命令更通用。ss或netstat查看端口监听和连接状态# 查看所有监听中的端口 ss -tlnp # 查看某个端口是否被占用 ss -tlnp | grep 8080排查端口被占用服务没监听这类问题靠这个命令就能定位。注意-p参数显示进程PID需要root权限所以排查时经常前面加sudo。5.2 连通性测试从ping到curlping测试网络连通性检查目标主机是否可达。它只证明ICMP通不代表TCP端口通所以实际排障要结合端口测试。curl是万能的HTTP测试工具包括访问网页、下载文件、查看响应头# 看响应头 curl -I https://example.com # 指定超时时间 curl --connect-timeout 5 --max-time 10 https://example.com # 查看具体IP的某个端口是否通 telnet 192.168.1.10 8080手边没有telnet的时候用nc -zv ip port也能测端口。我再分享一个实际排障顺序先ping看主机通不通再测端口通不通再看本机防火墙。按照这个顺序排查能快速缩小问题范围。5.3 SSH与远程文件传输工作的常态SSH是远程管理的标准方式# 使用密钥登录 ssh -i ~/.ssh/id_rsa userserver_ip生产环境我强烈建议关闭密码登录只用密钥登录。配置在/etc/ssh/sshd_config里改两行PasswordAuthentication no PubkeyAuthentication yes改完记得systemctl restart sshd。改这个之前先确认密钥能正常登录否则重启后你可能会发现自己被锁在外面这是我见过翻车最多次的操作。传文件用scp或rsync# 本地文件上传到服务器 scp ./myapp.tar.gz userserver_ip:/opt/ # 目录同步 rsync -av --delete /local/dir/ userserver_ip:/remote/dir/rsync比scp强在增量同步和断点续传传大文件或定期同步非常实用。-a是归档模式保留权限时间戳-v是显示过程--delete是让远端多余文件也删掉。第一次用rsync做--delete的时候一定要先加上--dry-run预演一遍别问我是怎么知道的。5.4 防火墙服务连不上的隐形元凶很多服务配好了却连不上最后发现是防火墙挡着。不同发行版用的防火墙不一样CentOS系用firewalldUbuntu系多用ufw还有底层的iptables。以firewalld为例# 放行8080端口 firewall-cmd --permanent --add-port8080/tcp firewall-cmd --reload # 放行某服务如果服务有预定义 firewall-cmd --permanent --add-servicehttp firewall-cmd --reload # 查看当前放行规则 firewall-cmd --list-allfirewalld有运行时规则和永久规则之分不带--permanent的修改是临时的重启后失效。你辛辛苦苦放行的端口万一没写永久服务器一重启服务又连不上了这种低级的坑我自己都踩过。5.5 DNS排查域名解析到不了的真问题域名解析是另一个容易出问题的地方。nslookup或dig可以查看域名解析结果nslookup example.com # 指定DNS服务器查询 nslookup example.com 8.8.8.8如果域名解析出来的IP不是预期的可能是本地配置了/etc/hosts或者DNS服务器返回了错误记录。我排障碍见过各种奇怪情况比如域名指向了内网IP或者多个域名解析到了同一IP导致请求串线。先确认DNS再排查网络这个顺序能省掉很多无效工作。6. 常见问题的排查思路乱序分析才是真正的基本功最后这一部分我想换个维度来聊。很多人让我推荐Linux入门知识但我发现真正值钱的不是某个命令怎么用而是面对问题时的排查顺序和方法论。这一节我结合自己的实操经验拆解几个高频故障的标准排查路径顺带把前面提到的知识点串起来。6.1 Web服务无法访问的完整排查链假设你搭了个Nginx浏览器访问不到。不要慌按照下面这个顺序一步步来确认服务在跑systemctl status nginx如果active就继续否则看日志找为什么没起来。确认本机端口在监听ss -tlnp | grep 80确认Nginx确实监听80端口。确认防火墙放行firewall-cmd --list-all看80端口是否在允许列表。确认网络连通在另一台机器上ping服务器IP再试telnet 服务器IP 80。确认域名解析nslookup 你的域名看IP指向是否正确。确认安全组/云平台策略如果服务器在云上还要检查云控制台的安全组规则。这个顺序看似很简单但很实用。因为每一步都能定位一个分层的问题只要有一个环节Out了你就能知道问题大概在哪一层而不是胡乱猜测。6.2 服务器负载飙高的排查思路负载高这个现象背后原因复杂我的排查路径是看负载和CPUtop里看load average和%CPU判断是CPU密集还是IO等待。如果%waIO等待高说明磁盘是瓶颈。看内存和交换分区free -h看内存是否不足swap使用率高往往导致性能暴跌。定位具体进程top里按P按CPU排序或M按内存排序锁定是哪个进程在消耗资源。看慢日志如果是数据库应用检查数据库慢查询日志如果是Web服务检查访问日志里有没有刷屏的请求。看系统日志journalctl看看有没有异常错误比如磁盘报错、网卡丢包等。排查完之后再决定是优化代码、扩容机器还是限制某些进程的资源。别一上来就重启重启确实能临时解决问题但根本原因没找到下一次照样会炸。6.3 磁盘空间满了的经典处理流程df -h看到磁盘100%是运维最常遇到的报警之一。处理方法分三步走定位哪个分区满了df -h查看挂载点使用率。找大文件和目录du -sh /var/log/* | sort -rh | head一层层用du往下查。处理日志或迁移数据绝大多数情况是日志文件占满直接清空日志或用logrotate做日志轮转。没有意义的旧备份文件也常占大空间确认后可以清理。另外一个坑是被删除但仍被进程占用的文件。你明明rm了df -h一看磁盘还是满的这是因为有进程还在写入那个已被删除的文件。处理方法是用lsof | grep deleted找到对应PID重启进程才能释放空间。这个知识不深入掌握光靠删文件是永远删不出空间的。6.4 排查问题的心态先还原场景再动手操作最后多说一句心态上的经验。很多人遇到问题第一反应是找最牛的命令其实不对。我的习惯是先把到底想解决什么这个改动影响什么想清楚再动手操作。比如说要改配置先备份原文件要执行破坏性命令先ls看清楚操作对象改了系统级配置先确认有办法回滚或者能通过重启恢复正常。这种心态不是胆小而是成熟工程师和刚入行者的重要差异。Linux这系统很强大它给了你充分的权限也给了你同样充分的搞砸一切的机会。保持敬畏按步骤操作比记住一万条命令更实用。最后分享几个我自己常驻的小习惯文章结尾我就不做总结了说几个我多年用下来觉得收益很大的小习惯你可以挑着用。第一个习惯是给常用命令设置别名。比如在~/.bashrc里加上alias llls -lh alias grepgrep --colorauto alias rmrm -i这里尤其推荐rm的-i别名每次删除前让你确认一下别看多一个步骤关键时刻能救命。我在很多重要服务器上都默认开了这个几年下来很少误删。第二个习惯是写命令前先想一下这条命令会在哪跑。我会在终端标题栏显示当前目录和主机名这样切来切去的时候不容易搞混。在A机器上执行B机器的命令这类事故在运维圈不是少数。第三个习惯常看系统日志。每天抽几分钟翻翻journalctl和/var/log下面的日志哪怕没报警也看能提前感知很多隐患。系统就跟人一样小毛病都会先有预兆只是你没去看。第四个习惯是尽量在一个专门的环境里做各种实验比如本地虚拟机或者云上的一台低配机器。Linux的基本功只能在实操里练出来看教程一百遍不如自己敲一遍。我当年练管道和awk统计就是在虚拟机上导入了大量日志数据反复分析一天下来比看一星期书都有用。这就是我理解的Linux基本内容不一定全面但全是日常会碰到的核心。希望对你有帮助也欢迎在评论区聊聊你被哪个Linux问题坑过大家一起长经验。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询