目录
[一、Linux 简史:从爱好到互联网基石](#一、Linux 简史:从爱好到互联网基石)
[二、Linux 核心目录结构(新手必懂)](#二、Linux 核心目录结构(新手必懂))
[1. 用户类型区别](#1. 用户类型区别)
[2. 常用用户切换命令](#2. 常用用户切换命令)
[1. 目录与文件浏览](#1. 目录与文件浏览)
[2. 文件与目录操作](#2. 文件与目录操作)
[3. 文件内容查看](#3. 文件内容查看)
[4. 文本处理与搜索](#4. 文本处理与搜索)
[5. 系统与进阶运维指令](#5. 系统与进阶运维指令)
[6. 隐藏文件核心规则](#6. 隐藏文件核心规则)
[1. 权限表示法](#1. 权限表示法)
[2. 普通文件权限含义](#2. 普通文件权限含义)
[3. 目录权限含义](#3. 目录权限含义)
[4. 修改权限:chmod 命令](#4. 修改权限:chmod 命令)
[5. 修改属主与属组](#5. 修改属主与属组)
[6. 特殊权限简述](#6. 特殊权限简述)
[7. 权限经典误区(新手高频踩坑)](#7. 权限经典误区(新手高频踩坑))
[六、文件属性详解:ls -l 输出全解析](#六、文件属性详解:ls -l 输出全解析)
[1. 第1列:文件类型+权限](#1. 第1列:文件类型+权限)
[2. 第2列:硬链接数](#2. 第2列:硬链接数)
[3. 第3、4列:属主、属组](#3. 第3、4列:属主、属组)
[4. 第5列:文件大小](#4. 第5列:文件大小)
[5. 第6-8列:最后修改时间](#5. 第6-8列:最后修改时间)
[6. 第9列:文件名](#6. 第9列:文件名)
[7. 属性示例解析](#7. 属性示例解析)
前言
Linux 是服务器端和开发环境中不可或缺的操作系统。无论你是运维新手还是想要深入后端开发,理解 Linux 的基本历史、常用命令、权限机制以及文件属性都是扎实的第一步。本文将按照新手循序渐进的学习逻辑,从系统认知、目录结构、用户体系、实操指令、权限规则到文件属性,带你快速建立完整的 Linux 实用知识框架。
一、Linux 简史:从爱好到互联网基石
Linux 的诞生与一位芬兰大学生密不可分。1991 年,Linus Torvalds 因不满当时 MINIX 系统的限制,决定自己编写一个类 Unix 的内核。他将这个内核命名为 Linux,并采用 GPL 协议发布,邀请全世界的开发者共同改进。
在 Linux 内核的基础上,结合 GNU 项目的大量自由软件(如编译器、Shell、核心工具),形成了完整的GNU/Linux 操作系统。由于开源、稳定、高性能的特点,Linux 迅速在服务器、嵌入式设备、超级计算机以及后来的 Android 移动平台上占据主导地位。如今,我们熟悉的 Ubuntu、CentOS、Debian、Fedora 等都是基于 Linux 内核的发行版。
二、Linux 核心目录结构(新手必懂)
Linux 一切皆文件,系统目录拥有固定分工,是后续所有命令操作、权限配置的基础。新手无需死记硬背,掌握核心目录功能即可应对 90% 日常场景:
-
/:根目录,所有目录的顶级入口,系统最顶层目录 -
/home:普通用户家目录,每个用户对应一个独立文件夹,存放个人文件、自定义配置 -
/root:root 管理员专属家目录,权限最高,普通用户无访问权限 -
/etc:系统核心配置目录,所有软件、系统配置文件、环境变量配置均存放在此 -
/bin//sbin:系统核心命令目录,ls、cd、cp 等系统基础指令均存放于此 -
/usr:用户软件安装目录,大部分第三方软件、程序默认安装路径 -
/tmp:系统临时文件目录,存放临时缓存文件,服务器重启后自动清空 -
/var:动态数据目录,专门存放日志、数据库数据、缓存等持续变化的文件
三、用户体系:超级用户与普通用户
Linux 是多用户操作系统,不同用户权限严格区分,理解用户体系是掌握权限机制的前提。系统主要分为两类用户:
1. 用户类型区别
-
root 超级用户 :系统最高权限管理员,拥有系统所有操作权限,可修改、删除任意文件,修改系统全局配置,管理所有普通用户,无任何权限限制。生产环境禁止直接登录使用,避免误操作导致服务器崩溃。
-
普通用户 :默认仅拥有自身家目录(
/home/用户名)的读写执行权限,无法随意修改系统文件和其他用户文件,安全性更高,日常开发、运维均使用普通用户操作。
2. 常用用户切换命令
-
su root:切换为 root 超级用户(需输入 root 密码) -
su 用户名:切换为指定普通用户 -
exit:退出当前用户,返回上一级登录用户 -
sudo 命令:普通用户临时获取 root 权限,执行单次管理员操作(需提前配置 sudo 权限)
四、常用指令速查(基础+进阶全覆盖)
以下整合 Linux 日常开发、运维高频使用的基础+进阶指令,覆盖文件操作、日志查看、系统排查等场景,建议结合终端反复练习。
1. 目录与文件浏览
-
pwd:显示当前工作目录的绝对路径。 -
ls:列出目录内容。-
ls -l:长格式显示(权限、大小、时间、用户等完整信息)。 -
ls -a:显示所有文件,包括以.开头的隐藏文件。 -
ls -lh:以人类可读格式(K/M/G)显示文件大小。
-
-
cd <目录>:切换目录。-
cd ..:返回上一级目录 -
cd ~/cd:直接返回家目录 -
cd -:返回上一次所在的工作目录
-
2. 文件与目录操作
-
mkdir <目录名>:创建目录。-
mkdir -p a/b/c:递归创建多级嵌套目录。 -
mkdir -m 权限 目录:创建目录并直接指定权限,无需二次修改。
-
-
touch <文件名>:创建空文件,或更新已有文件的时间戳。 -
cp <源> <目标>:复制文件或目录。cp -r 源目录 目标目录:递归复制整个目录及内部所有文件。
-
mv <源> <目标>:移动文件/目录,或对文件/目录重命名。 -
rm <文件>:删除文件/目录。-
rm -r 目录:递归删除目录及所有内容。 -
rm -f:强制删除,不弹出确认提示。生产环境慎用!
-
3. 文件内容查看
-
cat <文件>:一次性展示整个文件内容,适合小文件。 -
less <文件>:分页浏览文件,支持前后翻页,按q退出,适合大文件。 -
head -n 10 <文件>:查看文件前10行内容。 -
tail -n 10 <文件>:查看文件末尾10行内容。 -
tail -f <文件>:实时追踪文件新增内容,是查看项目日志的核心命令。
4. 文本处理与搜索
-
grep <模式> <文件>:在文件中搜索匹配关键词的内容。-
grep -r "关键词" 目录:递归搜索目录下所有文件的匹配内容。 -
grep -i:忽略大小写进行匹配搜索。
-
-
echo "文本":输出指定文本到终端,常用于测试和写入简单内容。 -
管道 |:将前一个命令的输出结果,作为后一个命令的输入,示例:ls -l | grep test。
5. 系统与进阶运维指令
-
man <命令>:查看命令官方详细手册。 -
--help:多数命令支持该参数,输出简要使用帮助。 -
clear/ Ctrl+L:清空终端屏幕。 -
du -sh:查看文件/目录占用磁盘总大小,du -sh *可查看当前目录所有文件大小。 -
df -h:查看系统整体磁盘使用情况,快速排查磁盘爆满问题。 -
ps -ef:查看系统全部进程,常用于排查程序运行状态。 -
kill -9 进程ID:强制终止指定进程,禁止随意终止系统核心进程。 -
history:查看终端所有历史执行命令。
6. 隐藏文件核心规则
Linux 中所有以 . 开头的文件/目录均为隐藏文件 (如 .bashrc),默认 ls 无法查看,仅可通过 ls -a 显示。隐藏文件多为系统配置、环境变量文件,新手请勿随意修改、删除,极易导致系统命令失效、登录异常。
五、权限设置:文件和目录的访问控制
Linux 多用户体系的核心安全机制就是权限控制,文件和目录的 rwx 权限含义不同,是新手最容易混淆的重点、难点。
1. 权限表示法
使用 ls -l 查看文件时,权限字段示例如下:
bash
-rwxr-xr-- 1 user group 4096 May 10 12:00 example
权限部分 -rwxr-xr-- 分为四段:
-
第 1 位:文件类型(详见下文文件属性详解)
-
第 2-4 位:属主权限(user):文件所有者的权限
-
第 5-7 位:属组权限(group):所属用户组的权限
-
第 8-10 位:其他人权限(others):其他所有用户的权限
其中 r 代表读、w 代表写、x 代表执行,无对应权限则显示 -。
2. 普通文件权限含义
|----|-----|--------------------------|
| 权限 | 字母 | 含义 |
| 读 | r | 可查看、读取文件内容(cat、less 等操作) |
| 写 | w | 可修改、编辑文件内容 |
| 执行 | x | 可将文件作为脚本、二进制程序执行运行 |
3. 目录权限含义
目录本质是记录文件名称与 inode 映射关系的索引文件,因此权限逻辑和普通文件完全不同。
|----|-----|---------------------------|
| 权限 | 字母 | 含义 |
| 读 | r | 可通过 ls 列出目录内的文件名称 |
| 写 | w | 可在目录内创建、删除、重命名文件/子目录 |
| 执行 | x | 可通过 cd 进入目录,访问目录内文件的属性和内容 |
重要核心规则 :想要读取目录内某个文件的内容,必须对该文件的所有上级目录拥有
x执行权限,同时对文件本身拥有r读权限。仅拥有目录r权限时,只能看到文件名,无法访问任何文件内容和属性。
4. 修改权限:chmod 命令
符号模式
通过 u(属主)、g(属组)、o(其他人)、a(所有人) 搭配增减权限符号操作:
-
chmod u+x script.sh:给文件属主增加执行权限 -
chmod go-w file:移除属组和其他人的写权限 -
chmod a=r file:给所有人仅保留读权限
数字模式(最常用)
权限对应数值:r=4, w=2, x=1,通过数值相加组合权限:
-
chmod 755 文件/目录:属主 rwx、属组/其他人 r-x,适用于脚本、普通目录 -
chmod 644 文件:属主 rw-、属组/其他人 r--,普通文件标准权限,安全通用 -
chmod 700 目录:仅属主拥有全部权限,适用于私密文件、个人专属目录
5. 修改属主与属组
-
chown user:group file:同时修改文件属主和属组(需 root 权限) -
chown user file:仅修改文件属主 -
chgrp group file:仅修改文件属组
6. 特殊权限简述
-
SUID (4) :作用于文件,文件执行时以文件属主 权限运行(典型示例:passwd 改密码命令),设置方式:
chmod u+s或数字4xxx -
SGID (2):作用于文件则以属组权限运行;作用于目录,目录内新建文件自动继承目录属组
-
粘滞位 Sticky (1) :仅对目录生效,目录内文件仅文件属主和 root 可删除,常用于
/tmp临时目录,设置方式:chmod +t 目录或数字1xxx
7. 权限经典误区(新手高频踩坑)
-
误区1 :目录有 r 权限就能访问内部文件 纠正:目录必须配置 x 执行权限 才能进入、读取内部文件,仅有 r 权限仅能查看文件名。
-
误区2:所有文件都需要配置执行权限 纠正:仅脚本、二进制程序需要 x 执行权限,普通文本文件无需执行权限,默认 644 最安全。
-
误区3:目录配置 777 权限最方便 纠正:777 代表所有人拥有全部权限,生产环境存在极大安全风险,极易被篡改、删除文件,禁止滥用。
六、文件属性详解:ls -l 输出全解析
执行 ls -l 命令后,终端展示的每一行内容都包含完整的文件属性信息,完整解读如下,示例格式:
bash
drwxr-xr-x 2 alice developers 4096 Jun 5 14:30 project/
1. 第1列:文件类型+权限
第一个字符为文件类型,后续9位为标准 rwx 权限:
|-----|-----------|
| 字符 | 文件类型 |
| - | 普通文件 |
| d | 目录文件 |
| l | 符号链接(软链接) |
| c | 字符设备文件 |
| b | 块设备文件 |
| p | 命名管道 |
| s | 套接字文件 |
2. 第2列:硬链接数
普通文件:代表指向该 inode 的硬链接数量;目录文件:代表目录包含的子目录数量(默认至少为2,对应 . 和 .. 两个隐藏目录)。
3. 第3、4列:属主、属组
分别对应文件的所有者用户 和所属用户组,决定了不同主体的操作权限。
4. 第5列:文件大小
默认单位为字节,使用 ls -lh 可转换为 K/M/G 友好单位展示。
5. 第6-8列:最后修改时间
记录文件内容最后一次编辑修改的时间,格式为「月 日 时间/年份」。
6. 第9列:文件名
普通文件/目录直接展示名称;符号链接文件会以 链接名 -> 源文件路径 格式展示。
7. 属性示例解析
bash
-rw-r--r-- 1 root root 256 May 10 09:00 config.txt
普通文件,属主拥有读写权限,属主和其他人仅读权限;硬链接数1,归属root用户和root组,大小256字节,5月10日修改。
bash
drwxr-xr-x 2 alice developers 4096 Jun 5 14:30 project
目录文件,属主 alice 拥有完整操作权限,developers 组和其他用户仅可进入、查看,无修改删除权限。
七、学习总结
本文按照新手学习逻辑,完整梳理了 Linux 入门核心知识体系:从系统发展历史、核心目录结构、用户权限体系,到高频实操指令、文件/目录权限机制、完整文件属性解析,同时补充了新手高频踩坑误区与运维实用技巧。
零基础学习无需死记硬背所有知识点,重点掌握核心内容:系统目录分工、root与普通用户区别、755/644/700标准权限、rwx差异化权限逻辑、高频实操命令。坚持上机实操练习,熟悉基础操作后,可进一步深入进程管理、网络配置、高级权限、服务部署等进阶内容,快速实现从入门到熟练实操的跨越。
如果有任何疑问或想了解更高级的话题(如 ACL、SELinux 等),欢迎在评论区交流。Happy learning!