linux学习

part1指令一天一个:

1. (2026.2.28.)rm:

用法:

Linux rm(英文全拼:remove)命令用于删除一个文件或者目录。

rm [options] name…

参数:

  1. ‘-i’ 删除前逐一询问确认。
  2. ‘-f’即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  3. ‘-r ‘将目录及以下之档案亦逐一删除。

实例:

删除文件可以直接使用rm命令,若删除目录则必须配合选项”-r”,例如:

# rm test.txt
rm:是否删除 一般文件 “test.txt”? y
# rm homework
rm: 无法删除目录”homework”: 是一个目录
# rm -r homework
rm:是否删除 目录 “homework”? y

删除当前目录下的所有文件及目录,命令行为:

rm -r *

2.(2026.3.1)lsblk:

order ‘lsblk’ = list block devices ,which is used to show information such as ,hard drives, partitions(分区), USB drives, and mount points(挂载点) in the system.

usage:

lsblk [options]

option:

  1. -f 显示文件系统信息(FSTYPE、UUID、挂载点等)。
  2. -a 显示所有设备(包括空设备)。
  3. -d 只显示磁盘,不显示分区。
  4. -o 指定输出字段。
  5. -J 以 JSON 格式输出(常用于脚本)。
  6. -t 显示拓扑结构信息。

example:

3.(2026.3.2补档于2026.3.3)systemctl:

systemctl 是 systemd 的管理命令,用来 查看/启动/停止/重启服务,以及设置 开机自启 等。


用法:

systemctl [COMMAND] [UNIT]
  • UNIT 常见是:xxx.service(通常可以省略 .service)
  • 例如:nginx ≈ nginx.service

参数(option / command):

1)状态查看类
  • status:查看服务状态(最常用)
  • is-active:只判断是否运行中(适合脚本)
  • is-enabled:判断是否开机自启
systemctl status nginx
systemctl is-active nginx
systemctl is-enabled nginx
2)服务控制类
  • start:启动
  • stop:停止
  • restart:重启(粗暴但稳)
  • reload:重载配置(更平滑,前提是服务支持)
  • try-restart:运行中才重启
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx
systemctl try-restart nginx
3)开机启动类
  • enable:开机自启
  • disable:取消开机自启
  • mask:彻底禁用(比 disable 更狠,直接“屏蔽”)
  • unmask:解除屏蔽
systemctl enable nginx
systemctl disable nginx
systemctl mask nginx
systemctl unmask nginx
4)列表查询类
  • list-units –type=service:列出正在被 systemd 管理的服务(主要看运行中/加载中)
  • list-unit-files –type=service:列出所有已安装服务及其 enable 状态
systemctl list-units --type=service
systemctl list-unit-files --type=service
5)修改 unit 后必做
  • daemon-reload:修改了 .service 文件后,让 systemd 重新加载配置
systemctl daemon-reload

实例(example):

例1:看服务是否挂了(你排障最常用)

systemctl status x-ui

例2:让服务“开机自启 + 立刻启动”

systemctl enable --now nginx

例3:服务起不来,快速定位

systemctl status nginx
journalctl -u nginx -n 50 --no-pager

例4:我只想看失败的服务有哪些

systemctl --failed

4.(2026.3.3补档于2026.3.5)Linux文档结构:


Linux 的文件系统结构(Filesystem Hierarchy)是操作系统中所有文件和目录的组织方式。Linux 使用树状结构(hierarchical structure)**来管理文件,所有文件都从根目录 / 开始向下展开


以下是对这些目录的解释:

目录作用详解常见文件 / 示例
/根文件系统,所有挂载点与路径的起点。包含系统必须的子目录与入口结构。无具体数据文件,只有子目录结构。
/bin(binaries)系统启动和单用户模式下必须的基础命令,所有用户可执行。lscpmvrmbash
/sbin(system binaries)系统管理与维护命令,面向 root。fsckrebootshutdown
/usr用户级程序与库的主集合,包含大部分系统软件、文档与工具。/usr/bin/usr/lib/usr/share
/usr/bin常规用户程序的主要放置目录。python3vimgit
/usr/sbin管理工具的扩展集合。useraddapache2ctl
/usr/lib/usr 内程序所依赖的动态库与模块。各类 .so 动态库
/usr/local本机安装或编译软件的独立区域。/usr/local/bin/usr/local/lib
/lib 或 /lib64系统启动核心库、动态链接器所在位置。libc.so.6ld-linux.so
/etc(etcetera)系统级配置中心,统一存放所有服务和系统配置。passwdgroupfstabssh/sshd_config
/home普通用户的个人主目录集合。/home/user/.bashrc/home/user/Documents
/rootroot 用户的主目录。/root/.ssh/
/var(variable data)频繁变化的数据:日志、缓存、数据库运行文件等。/var/log/var/lib/var/cache
/var/log所有系统与服务日志的集中位置。syslogauth.logkern.log
/var/cache应用和包管理器缓存。/var/cache/apt/
/var/lib服务的持久化状态数据。mysql/docker/
/tmp程序运行时的临时文件区,随时可清理。临时文件、socket 路径
/boot(boot loader files)启动所需文件:内核、initramfs、引导配置。vmlinuz-*initrd.imggrub/grub.cfg
/dev设备节点集合,文件即设备。/dev/sda/dev/null/dev/tty0
/proc(process information)由内核提供的虚拟文件系统,展示系统与进程的实时信息。/proc/cpuinfo/proc/<pid>/
/sys设备、驱动、内核子系统的状态接口。/sys/class/net//sys/block/
/mnt手动挂载的临时挂载点。/mnt/usb
/media(removable media)自动挂载外接设备的默认位置。/media/user/USB_DRIVE
/run运行时数据存放点,重启后清空。*.pid, 运行状态 socket 文件

在 Linux 中,下列目录属于系统关键区,误删或乱改都会直接破坏系统运行:

/etc — 系统配置核心

所有关键配置集中于此。任何错误修改都可能导致服务挂掉,甚至系统无法启动。

/bin、/sbin、/usr/bin、/usr/sbin — 系统指令区

系统预置命令的所在位置。

  • /bin、/usr/bin:供普通用户使用的基础指令(如 ls 位于 /bin/ls)。
  • /sbin、/usr/sbin:系统管理指令,主要由 root 使用。

/var — 动态数据区

系统运行时不断写入的数据都落在这里。
重点是 /var/log,各种服务日志全部存放此处;邮件、缓存、队列等内容也在此目录下维护。

可以用 一个真实应用程序在 Linux 中的分布来理解 Linux 的文件系统结构。下面以常见应用 Nginx 为例说明:一个应用在 Linux 中通常不是只在一个目录,而是分散在多个系统目录中


示例:Nginx 在 Linux 文件系统中的分布

1 程序可执行文件
/usr/sbin/nginx

作用:

  • 存放 程序本体
  • 用户执行 nginx 时调用

解释:

  • /usr → 系统应用资源
  • /usr/sbin → 系统服务程序

运行命令:

nginx -v

2 配置文件
/etc/nginx/nginx.conf

作用:

  • 服务器配置
  • 端口、域名、日志等

目录:

/etc/nginx/
├── nginx.conf
├── sites-enabled
└── sites-available

修改配置:

sudo nano /etc/nginx/nginx.conf

3 日志文件

/var/log/nginx/

例如:

/var/log/nginx/access.log
/var/log/nginx/error.log

作用:

  • 记录访问日志
  • 记录错误信息

查看日志:

tail -f /var/log/nginx/access.log

4 网站数据

网站文件通常在:

/var/www/html

例如:

/var/www/html/index.html

当浏览器访问服务器时:

http://server-ip/

实际读取的是:

/var/www/html/index.html

5 服务启动文件

如果系统使用 systemd

/lib/systemd/system/nginx.service

作用:

  • 控制服务启动
  • 开机自启

例如:

systemctl start nginx
systemctl enable nginx

Linux 应用结构总结

一个 Linux 应用通常会分布在多个目录:

目录内容
/usr/bin /usr/sbin程序执行文件
/etc配置文件
/var/log日志
/var/www数据文件
/lib依赖库
/tmp临时文件

再举一个更简单的应用例子

比如 Python

文件位置
Python 程序/usr/bin/python3
标准库/usr/lib/python3.x
配置/etc/python3
pip 包/usr/local/lib/python3.x

为什么 Linux 要这样设计

原因是 模块化管理

  • 程序 → /usr/bin
  • 配置 → /etc
  • 日志 → /var/log
  • 数据 → /var

这样做的好处:

1️⃣ 管理方便

2️⃣ 升级不会覆盖配置

3️⃣ 系统结构清晰

4️⃣ 多用户环境安全

下面给你整理成 技术博客风格(段落 + 表格 + 示例),适合直接放在博客或笔记中。


Linux 文件系统结构:哪些目录是真正的“文件夹”?

在学习 Linux 时,很多人会把 Linux 的目录结构与 Windows 的文件夹进行类比。但实际上,Linux 中并不是所有目录都是真正存储在磁盘上的普通文件夹。有些目录是设备接口,还有一些是虚拟文件系统

如果从 Windows 用户的角度理解,可以把 Linux 的目录分为三类:

  1. 真实存储文件的目录(类似 Windows 文件夹)
  2. 设备文件目录
  3. 虚拟文件系统目录

下面分别进行介绍。


一、真实存在的目录(类似 Windows 文件夹)

这一类目录是真正存在于磁盘上的目录,用于存储程序、用户数据、配置文件等内容。

从 Windows 的角度看,它们最接近我们熟悉的普通文件夹。

例如:

/home
/usr
/etc
/var
/opt
/root
/tmp
/boot

这些目录的作用如下表所示:

Linux 目录作用类似 Windows
/home用户主目录C:\Users
/usr系统程序和应用C:\Program Files
/etc系统配置文件Windows 注册表 / 配置
/var日志和变化数据C:\ProgramData
/opt第三方软件软件安装目录
/rootroot 用户目录Administrator 目录
/tmp临时文件Temp
/boot系统启动文件Bootloader 文件

例如,用户文件通常存放在:

/home/username

而系统日志通常在:

/var/log

二、设备文件目录(Linux 的特殊设计)

Linux 中有一个非常重要的设计理念:

Everything is a file(万物皆文件)

因此,硬盘、终端、随机数设备等都会以“文件”的形式存在于 /dev 目录中。

例如:

/dev/sda
/dev/sda1
/dev/null
/dev/random
/dev/tty

这些文件并不是真正的普通文件,而是系统设备接口。

设备文件作用
/dev/sda硬盘
/dev/sda1硬盘分区
/dev/null空设备
/dev/random随机数设备
/dev/tty终端设备

如果类比 Windows,可以理解为:

C:
D:
COM1

但 Linux 把所有设备统一抽象为文件。


三、虚拟文件系统目录

Linux 还有一些目录并不存储在磁盘上,而是由 内核动态生成,用于显示系统运行状态。

最典型的就是:

/proc
/sys
/run

这些目录属于 虚拟文件系统(pseudo filesystem)

目录作用
/proc系统运行信息
/sys设备和内核信息
/run运行时数据

例如:

查看 CPU 信息:

cat /proc/cpuinfo

查看内存信息:

cat /proc/meminfo

这些文件并不存在于磁盘中,而是系统实时生成的。


四、Linux 应用程序文件分布示例

Linux 应用程序通常不会全部放在一个目录,而是按照功能分散在不同目录中。

以 Web 服务器 Nginx 为例:

文件类型位置
程序/usr/sbin/nginx
配置/etc/nginx
日志/var/log/nginx
网站文件/var/www/html

可以看到,一个应用程序的不同部分分别存储在:

  • /usr(程序)
  • /etc(配置)
  • /var(日志和数据)

这种设计使系统更加模块化,也方便管理。


五、Linux 与 Windows 文件结构的核心区别

Windows 使用的是多盘符结构

C:\Users
C:\Program Files
D:\Data

而 Linux 使用的是单一目录树结构

/
├── home
├── usr
├── etc
├── var

所有设备和文件系统都会被挂载(mount)到根目录 / 下


六、最核心的 Linux 实际目录

如果从 Windows 用户的角度理解,Linux 中最重要、最接近普通文件夹的目录主要是:

/home
/usr
/etc
/var
/opt
/root
/tmp

而以下目录属于特殊用途:

/dev    设备接口
/proc   系统信息
/sys    内核信息
/run    运行时数据

总结

Linux 的文件系统结构遵循 FHS(Filesystem Hierarchy Standard),通过不同目录划分不同类型的数据。

简单来说:

  • /home:用户数据
  • /usr:程序
  • /etc:配置
  • /var:日志和变化数据
  • /dev:设备
  • /proc:系统状态

理解这些目录后,就可以更容易理解 Linux 的系统结构和软件安装方式。

文末附加内容
暂无评论

发送评论 编辑评论


				
上一篇
下一篇