
Linux(一):使用基础
Linux 入门导览:理解多用户与文件级权限模型,看懂 FHS 目录结构与发行版谱系,掌握登录后第一时间要敲的那批最常用的命令。
很多人觉得 Linux 难,但其实难点不在命令本身,而在于是否对整个系统有一个清晰的“全局观”——为什么它能在服务器领域占据主导地位?多用户设计和文件权限管理带来了哪些实际好处?从 Debian 系切换到 Red Hat 系时,底层逻辑有哪些变化?通过 SSH 登录到服务器后,最初的十分钟该做什么?这篇文章是整个 Linux 系列的入门指南,旨在帮助你快速建立核心心智模型,涵盖设计理念、主要发行版的区别以及 FHS 目录结构的基础知识。接着,我们会带你熟悉那些几乎每小时都要用上十几次的常用命令:cd ls pwd、cp mv rm mkdir、cat less head tail、find grep,以及管道、重定向、 SSH 操作,还有权限管理和进程查看的基本方法。每个部分都力求简洁明了,深入内容则会留给后续的专题文章,如文件权限、磁盘管理、用户管理、服务管理、进程管理、包管理和高级文件操作等。

为什么是 Linux,它为什么长成这样#
Linux 的许多特性初看可能让人觉得“怪异”,但其实它们都可以追溯到三个核心设计理念:天生为多用户环境设计、将文件作为通用接口、更倾向于自动化而非手动操作。
- 高度开放,灵活定制: 无论是内核还是 init 系统,几乎所有组件都可以替换、重新编译或裁剪。一个仅有 5MB 的 Alpine 容器和一个占用 12GB 的 Oracle Linux 安装包,都自称是 Linux。
- 稳定到让人忘记它的存在: 生产环境的服务器常常几年都不重启一次。如果你在一台运行多年的机器上执行
uptime,看到up 412 days这样的输出,完全不用惊讶,这再正常不过了。 - 包管理器是安装软件的主要途径。 你几乎不会去下载
.exe文件。apt、dnf、pacman和zypper这些工具不仅能自动解决依赖问题,还能校验签名,并通过一条命令升级整个系统。 - 一切皆文件: 磁盘设备存放在
/dev,进程信息在/proc中,内核参数则可以通过写入/sys来调整。无论是查看 CPU 信息还是调节键盘灯亮度,用的都是同样的cat和>操作。 - 命令行优先,图形界面可选: 虽然桌面环境(如 GNOME、KDE)确实存在,但在服务器上,管理员通常通过 SSH 使用纯文本操作——这种设计让脚本编写和远程管理变得异常简单。
主流发行版家族一览#
尽管 Linux 发行版种类繁多,但绝大多数都可以追溯到少数几个“祖先”。最快区分它们的方法就是看它们使用什么包管理器。

- Debian / Ubuntu 系列 ——
apt。学习曲线平缓,文档丰富,云镜像默认选择。如果没有特殊需求,直接选 Ubuntu LTS 就对了。 - Red Hat / RHEL / CentOS / Rocky / Alma / Fedora 系列 ——
yum(CentOS 7 及更早版本)或dnf(8 及更高版本)。企业级首选。自从 CentOS Linux 在 2021 年被砍掉后,Rocky Linux 和 AlmaLinux 成为了与 RHEL 二进制兼容的替代品。 - SUSE / openSUSE 系列 ——
zypper。在欧洲企业和 SAP 场景中较为常见。 - Arch / Manjaro 系列 ——
pacman。采用滚动更新模式,软件最新,但需要你主动查阅 wiki。 - 独立派 —— Gentoo (所有软件都需要自己编译)、 Alpine (基于 musl,仅 5MB,容器场景的宠儿)、 NixOS (声明式配置)、 Void (不依赖 systemd)。
在云端,还需要考虑厂商推荐的发行版: AWS 推荐 Amazon Linux,阿里云推荐 Alibaba Cloud Linux,两者都是针对各自平台优化过的 RHEL 衍生版本。
三大核心理念解释一切#
多用户、多任务#
Linux 设计之初就考虑到了多用户同时登录的场景,无论是通过 SSH 还是本地 TTY,每个用户都可以并行运行多个进程。内核必须隔离每个用户的 CPU 时间、内存、文件和网络套接字。这也是权限模型如此严格的原因——如果不限制,任何用户都能读取别人的敏感数据,甚至终止别人的进程。
以文件为核心的权限体系#
在 Linux 中,每个文件(包括目录,它是一种特殊文件)都有三组权限:owner、group 和 others,每组分别对应三个权限位:读 (r)、写 (w) 和 执行 (x)。以下是一个典型的权限字符串解析:
| |
有一个权限组合你需要牢记:rw-------(八进制表示为 600),这是 SSH 私钥唯一允许的权限。如果权限设置不符合这一要求, SSH 客户端会拒绝使用该私钥。
更深入的内容,比如
chmod/chown的用法、八进制与符号表示法的区别、 SUID/SGID/sticky bit、 ACL 和umask,可以参考 《Linux 文件权限》 专题。这里的介绍足以帮助你理解ls -l的输出。
一切皆文件#
普通文件、目录、设备、进程、内核状态、管道、 socket——这些看似不同的东西,在 Linux 中都统一暴露了 read() 和 write() 接口。这种设计让同一套工具可以在各种场景下通用:
| |
只要某个东西能用 cat 查看,或者能用 > 写入,那么它基本就可以被脚本化。
文件系统地图(FHS)#
和 Windows 不同, Linux 没有盘符的概念。无论是硬盘、 U 盘还是网络共享文件夹,都会被 挂载 到根目录 / 下的某个位置。这种目录布局是由 文件系统层级标准(Filesystem Hierarchy Standard, FHS) 规定的。

日常工作中最常接触的两个目录是 /etc(存放配置文件)和 /var/log(存放日志)。记住以下经验法则,能帮你快速定位问题:
- 服务启动失败? —— 先看
/var/log/<服务>/或者用journalctl -u <服务>查看日志。 - 配置有问题? —— 去
/etc/<服务>/检查相关配置文件。 - 磁盘空间不足? —— 执行
du -sh /* 2>/dev/null | sort -h,找出占用空间最大的顶级目录。 - 找不到某个命令? —— 使用
which <cmd>,通常它会位于/usr/bin或/usr/local/bin。
还有一些初学者需要了解的小细节:
/root是超级用户 root 的家目录,而不是/home/root。普通用户的家目录才在/home下。/proc和/sys是虚拟文件系统——它们只存在于内存中,用于暴露内核状态信息。因此,运行du -sh /proc是没有意义的。/tmp是临时目录,大多数发行版会在系统重启时清空它(通常还会以tmpfs的形式挂载在内存中),所以千万别把重要文件放在这里。
一条命令的解剖#
在 Linux 中, Shell 会将每一行命令按照空格分隔,解析为三种不同的部分。

| |
掌握以下三个习惯,能让你事半功倍:
-lah和-l -a -h是等价的。短选项支持合并书写。- 如果路径或字符串中包含空格或 Shell 特殊字符,记得用引号括起来,例如:
ls "/var/log my dir"。 - 不确定某个命令的用法时,直接向它“求助”:
<cmd> --help查看简要说明,或者man <cmd>阅读完整手册(使用/搜索内容,按q退出)。
登上一台新机器后的头十分钟#
刚通过 SSH 连接到服务器,别急着动手,先搞清楚五个关键问题。
我是谁?权限如何?#
Shell 提示符已经告诉你答案了。看最后那个字符就行:
| |
日常操作千万别直接用root账号登录。 用普通用户登录,必要时再调用sudo。系统会把每次sudo操作记录在审计日志里(路径通常是/var/log/auth.log或/var/log/secure),并标记是谁执行的——如果大家都用root,这条线索就没了。
我在哪?周围有什么?#
| |
pwd(显示当前目录)加上ls -lah(长格式、含隐藏文件、人类可读大小)基本就能让你对环境一目了然。
这是什么系统?#
| |
系统负载高不高?#
| |
负载平均值(load average)表示过去 1 分钟、 5 分钟、 15 分钟内可运行任务+不可中断任务的平均数。如果是 4 核机器,持续高于 4.0 就说明 CPU 已经接近饱和了。
网络是否正常?#
| |
ip命令早已取代了过时的ifconfig、route和arp三件套。虽然有些教程还在用ifconfig,但大多数发行版通过兼容包支持它。不过,建议你直接学习ip命令,这才是现代工具。
文件与目录操作:日常词汇表#
以下这些命令是每个工程师都应该熟练掌握的“肌肉记忆”。下面的速查表按照使用场景对它们进行了分类,方便快速找到所需命令。

目录导航#
| |
一个小技巧:pushd / popd / dirs 提供了一个目录栈功能,可以让你快速进入深层目录,再一键返回。 Tab 键补全在所有路径中都能用,效率翻倍。
文件列表查看#
| |
ll 是 Ubuntu/Debian 系统自带的别名,默认等于 ls -alF。很多人会自定义为 alias ll='ls -lah',写入 ~/.bashrc 中更顺手。
创建与删除#
| |
rm 没有回收站功能: 文件一旦被删除,恢复起来非常困难,通常需要借助专业工具,而且成功率不高。建议养成两个好习惯:
- 在执行
rm <pattern>之前,先用ls <pattern>确认一下会删哪些文件。 - 如果比较谨慎,可以在 shell 配置文件中添加
alias rm='rm -i',每次删除都会提示确认。 - 千万不要运行
rm -rf "$VAR/",除非你确定$VAR已经正确设置;如果$VAR是空的,命令会变成rm -rf /。虽然现代 GNUrm默认会拒绝删除根目录(--preserve-root),但还是别依赖这个保护机制。
复制与移动#
| |
在同一文件系统内,mv 只是修改了目录条目,几乎不耗时,也不会真正复制数据。跨文件系统时,mv 实际上是 cp 加上 rm 的组合操作。
查看文件内容#
| |
tail -F 是实时监控日志的标准方法,尤其适合等待请求到来时使用。搭配 grep --line-buffered ERROR 还能实时过滤特定内容。
快速编辑文件内容#
| |
<<'EOF' 是一种带引号的 heredoc,它会禁用变量替换——$VAR 会被原样写入,而不是替换成它的值。如果不加引号,变量会被展开。
文件与内容查找#
两条命令解决绝大多数需求:
| |
-rIn 是三个常用的选项组合:r 递归查找、跳过 bInary 文件(大写 I)、显示 n 行号。对于超大代码库,推荐使用更快的替代工具 ripgrep(rg)。
文件信息查询#
| |
stat 命令区分了三个容易混淆的时间戳:atime(最后一次访问时间)、mtime(最后一次内容修改时间)、ctime(最后一次元数据变更时间,如权限修改)。ls -l 默认显示的是 mtime。
管道:把命令拼起来#
管道符号 | 的作用是将一个进程的 标准输出(stdout) 连接到下一个进程的 标准输入(stdin)。整个过程无需创建中间文件,数据会通过内核缓冲区以块的形式流动。这是 Unix 工具链中最核心、最强大的设计理念之一。

举个实际场景的例子:假设你想从 Nginx 的访问日志中找出触发错误响应(5xx 状态码)最多的前 10 个 IP 地址,可以这样操作:
| |
在日常使用中,以下三个重定向操作符几乎是必备工具:
| |
关于 2>&1 的解释:它的作用是“将文件描述符 2 (stderr)指向文件描述符 1 (stdout)当前所指的位置”。这里需要注意顺序问题:cmd 2>&1 > file 不会 把标准错误写入文件,而 cmd > file 2>&1 才能正确实现这一功能。
如果想深入了解管道、进程替换
<(...)、命名管道(FIFO)以及如何用xargs实现并行执行,可以参考 《Linux 文件操作深入解析》 专题。
SSH:登录远程机器#
SSH (Secure Shell)是操作远程 Linux 系统的标准工具。它会对所有数据进行加密,默认使用 TCP 22 端口,同时支持密码认证和公钥认证两种方式。
基本用法#
| |
如果网络突然断开,终端可能会卡住。此时可以在新的一行输入 ~.(波浪号加点),强制从本地断开连接。
配置免密登录#
通过公钥实现免密登录是更安全、也更推荐的做法。每台设备生成一对密钥,把 公钥 分发到需要访问的所有服务器上。
| |
配置好公钥后,建议进一步加固 SSH 服务:编辑 /etc/ssh/sshd_config 文件,将 PasswordAuthentication 设置为 no,然后重启 sshd 服务。如今有大量的自动化扫描程序在全网范围内寻找允许密码登录的 SSH 服务,直接关闭这个入口能有效减少攻击面。
安全加固建议#
- 如果客户端和服务器都较新,优先使用 Ed25519 密钥(性能更好、体积更小、算法更现代),避免继续使用 4096 位 RSA。
- 禁用密码认证和 root 用户登录(设置
PermitRootLogin no)。 - 部署
fail2ban工具,自动封禁多次尝试失败的 IP 地址。 - 如果条件允许,在防火墙层面限制 SSH 访问,仅允许来自特定源 IP 段(CIDR)的连接。
- 修改默认端口(如从 22 改为其他值)虽然能减少随机扫描的噪音,但并不能真正提升安全性。
关于服务管理(如重新加载
sshd或设置开机自启),可以参考 《Linux 系统服务管理》 文章。
权限和用户:两页讲完#
理解并修改权限#
你已经熟悉了 rwx 三元组的格式。接下来,我们看看如何用 chmod 修改权限,它有两种写法:
| |
以下是一些常见权限模式,建议记住它们的用途:
| 模式 | 含义 | 典型场景 |
|---|---|---|
755 | rwxr-xr-x | 可执行文件、公开脚本 |
644 | rw-r–r– | 配置文件、源代码文件 |
700 | rwx—— | 私有目录 |
600 | rw——- | SSH 私钥、敏感文件 |
400 | r——– | 只读敏感文件 |
关于 SUID、 SGID、 sticky bit、 ACL 和
umask的详细内容,请参考 《Linux 文件权限》。
切换用户:su 和 sudo#
| |
现代系统默认推荐使用 sudo,因为它会记录 谁 在 何时 执行了 哪些操作,并且无需共享 root 密码。在全新安装的 Ubuntu 系统中,第一个用户会自动加入 sudo 组;而在 RHEL 系发行版中,对应的组是 wheel。
用户创建、组成员管理、密码策略、
useradd/usermod/userdel命令以及/etc/passwd和/etc/shadow的内部机制,请参阅 《Linux 用户管理》。
进程,最小集合#
| |
优先使用普通的 kill 命令,只有在进程完全无响应时才考虑 kill -9。因为 -9 是强制终止信号,进程无法捕获或处理,可能导致缓冲区未刷新、网络连接未关闭或锁未释放等问题,进而引发状态不一致。
关于 CPU/内存/IO 监控工具(如
vmstat、iostat、pidstat)、进程优先级调整(nice/renice)、控制组(cgroup)以及 OOM killer 的详细内容,请参考 《Linux 进程与资源管理》 文章。
包管理 30 秒入门#
在 Linux 系统中,安装软件通常依赖包管理器,而不是通过下载安装程序来完成。
| |
这种方式的优势在于:它能够自动解决依赖关系,所有软件包都经过发行版的签名验证,确保安全性,同时只需一条命令即可完成整个系统的更新。
如果你想了解更多,比如从源码编译、手动安装
.deb或.rpm包、使用其他生态工具(如snap、flatpak、pip、npm),或者管理第三方软件源,可以参考 《Linux 软件包管理》 专题。
几个能救你命的习惯#
动
/etc之前,先给自己留条后路。1sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F)新配置搞砸了 SSH?别慌,旧配置就在一个
cp的距离。改 SSH 配置时,千万别只靠一个连接活着。 在编辑
sshd_config之前,记得再开一个 SSH 会话。如果新配置导致无法登录,老会话还能帮你回滚改动。这条经验已经拯救过无数个周末和假期。以下命令,请当作核弹按钮对待:
rm -rf /—— 删天删地删空气(虽然现代rm会拒绝这种操作,但还是别去试)。dd if=/dev/zero of=/dev/sda—— 把整块硬盘清零,数据恢复?不存在的。chmod -R 777 /—— 全局可写,系统安全模型瞬间崩塌。> /etc/passwd—— 截断用户数据库,系统还能撑到下次重启。
动手之前,务必用
ls、lsblk或cat确认目标无误。日志通常比你更懂问题出在哪,先看看它们怎么说。
1 2 3 4sudo tail -f /var/log/syslog # 通用日志(Debian/Ubuntu) sudo tail -f /var/log/messages # 通用日志(RHEL 系) sudo grep 'Failed password' /var/log/auth.log # 查看 SSH 暴力破解尝试 sudo journalctl -u nginx -n 50 --no-pager # 查看某个服务的最近 50 条日志
下一步#
这篇文章的目的是为你提供一份学习路线图。每个主题都有专门的深度文章,当你需要深入了解时可以参考:
- 《Linux 文件权限详解》 —— SUID/SGID/sticky 位、 ACL 访问控制列表、
umask设置、权限继承机制。 - 《Linux 用户与组管理》 —— 使用
useradd创建用户、用户组管理、 sudoers 文件语法、 PAM 模块配置、密码策略设置。 - 《Linux 磁盘与存储管理》 —— 分区表操作、文件系统类型、挂载点管理、 LVM 逻辑卷、 RAID 配置。
- 《Linux 系统服务管理》 —— systemd 服务单元、日志工具
journalctl、定时任务配置。 - 《Linux 软件包管理全攻略》 —— 软件源配置、 GPG 签名验证、从源码编译安装、 alternatives 工具使用。
- 《Linux 进程与资源调度》 —— 系统监控工具、 cgroups 资源限制、进程调度策略、 OOM (内存不足)处理机制。
- 《Linux 高级文件操作技巧》 —— 管道符
|、输入输出重定向、xargs命令、tee工具、命名管道 FIFO。
Linux 的学习不是一蹴而就的。建议你启动一台免费的云虚拟机(或者在本地使用 VirtualBox、 Multipass 或 WSL2),打开终端,刻意去“折腾”甚至“搞坏”系统——通过实践积累经验,是培养肌肉记忆的最佳途径。
参考文献#
- The Linux Documentation Project —— 经典但稍显年代感的 Linux 文档库。
- Arch Linux Wiki —— 互联网上信噪比最高的 Linux 文档,远不止对 Arch 用户有用。
- The Linux Command Line, William Shotts —— 一本免费的、书长度的 shell 入门。
- Linux Performance, Brendan Gregg —— Linux 性能测量领域权威的资源页。
- Filesystem Hierarchy Standard 3.0 —— 目录布局的官方规范。