Linux 命令:systemctl 详解在现代 Linux 系统中,服务管理主要有两种方式:传统的 service 命令和基于 systemd 的 systemctl 命令。
systemd 是目前主流 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+、Debian 8+ 等)采用的初始化系统(init system),用于替代传统的 SysV init 和 Upstart。它的核心设计目标包括:
提升系统启动速度:通过并行启动机制,尽可能让多个服务同时启动;
按需启动服务:仅在需要时激活服务(例如通过 socket 或 D-Bus 触发);
依赖管理更清晰:使用声明式单元(Unit)文件定义服务及其依赖关系;
统一管理系统资源:不仅管理服务,还支持挂载点、定时任务、套接字等。
systemd 对应的服务管理命令是 systemctl。值得注意的是,systemctl 在一定程度上兼容传统的 SysV init 脚本:当你运行 systemctl start xxx 而系统中没有对应的 .service 单元文件时,systemd 会尝试在 /e ...
三分钟搞懂 Linux 的 /etc/fstab 文件中 UUID 和 PARTUUID 的区别与使用方法你是否曾在配置Linux的/etc/fstab文件时,面对UUID和PARTUUID感到困惑?它们看起来都很相似,但又有什么不同?
这是一个非常重要的话题,因为它关系到系统能否正确和稳定地挂载所需的磁盘分区。
一、核心概念与区别简单来说,UUID 标识的是文件系统本身,而 PARTUUID 标识的是磁盘上的分区。
特性
UUID
PARTUUID
标识对象
文件系统 (File System)
分区 (Partition)
生成方式
在创建文件系统时生成 (如 mkfs.ext4)
在创建分区时生成 (如 fdisk, gdisk)
更改条件
重新格式化分区会改变其 UUID
重新分区会改变其 PARTUUID
适用范围
几乎所有现代文件系统 (ext4, xfs, btrfs, ntfs, fat等)
主要适用于 GPT 分区表,MBR 分区表支持有限
唯一性
全局唯一,用于区分不同的文件系统
全局唯一,用于 ...
Linux 搭建OpenVPN服务器和客户端项目需要能够远程控制树莓派。说到远程控制,肯定想到ssh。但是呢,树莓派是用3G流量上网的,分配到的是内网IP地址。那么如何让另一个设备能够连接到处于内网的设备呢?我想到了VPN。在VPN中,所有设备都好像在一个局域网中,如果服务器适当配置一下,那么VPN客户端之间就能互相访问。
VPN有很多种,包括PPTP、IPSec、OpenVPN等等。PPTP的数据包特征太明显,在国内的网络环境中很可能直接被拦截掉了。另外,由于树莓派使用的是3G流量,其链路可能功能有限,IPSec使用的是Cisco自己设计的协议,可能会被丢弃(未考证)。综合考虑,还是OpenVPN功能最强大,因为它是基于TCP或者UDP的,而且数据包特征不太明显,另外可配置项也很多。
OpenVPN的配置还是比较复杂的,尤其是对于新手而言,如果一开始上来就是什么创建证书、公钥、密钥,会很打击信心。所以我决定先来一个最最简单的版本,然后循序渐进。
=========== ...
在 Windows 下经常会遇到“分区”这个概念,在 Linux 中一般不叫“分区”而叫“挂载点”。“挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”
文件/etc/fstab 详细的记录了 Ubuntu 中硬盘分区的情况
有一行“/ was on /dev/sda5 during installation”,意思是根目录“/”是在/dev/sda5
上的,其中“/”是挂载点,“/dev/sda5”就是我们装 Ubuntu 系统的硬盘。
其中 sd 表示是 SATA 硬盘或者其它外部设备,最后****面的数字表示该硬盘上的第 n 个分区,比如/dev/sda1 就表示磁盘 sda 上的第一个分区。
如果是以/dev/sda 开头的,说明当前只有一个硬盘。
如果再插上 U 盘、SD 卡啥的就可能会出现/dev/sdb,/dev/sdc 等等。
如果你的 U 盘有两个分 ...
Linux 目录结构详解简介Linux 遵循文件系统层次结构标准 (FHS),该标准以结构化方式组织文件和目录。了解此结构有助于系统管理、故障排除和开发。
Linux 根目录 /Linux 中的所有文件和目录都源自根目录 (/),它是层次结构中的顶级目录。
1234567891011121314151617181920/├── bin/├── boot/├── dev/├── etc/├── home/├── lib/├—— /lost+found├── media/├── mnt/├── opt/├── proc/├── root/├── run/├── sbin/├── srv/├── sys/├── tmp/├── usr/└── var/
/bin 目录:基本系统二进制文件包含 ls、cp、mv、cat 等基本命令
/boot 目录:引导加载程序文件存储 Linux 内核( vmlinuz )、grub 引导加载程序文件
/dev 目录:设备文件代表硬件的虚拟文件(例如,磁盘的 /dev/sda、/dev/null)
/etc ...
Linux 运维必看:后台启动命令,入门只需 5 分钟在 Linux 运维工作中,nohup、&和重定向是实现程序后台稳定运行的核心工具。搞清楚它的原理,使用合适的组合与技巧,工作中就可以掌控后台进程。
一、核心工具作用:nohup、&、重定向nohup:全称 “no hang up”,让程序忽略终端关闭时的 SIGHUP 终止信号,确保终端断开后进程继续运行。单独使用会占用终端,需配合&。
&:将程序转入后台运行,不阻塞终端,可继续输入命令。但单独使用时,终端关闭后进程会终止,必须与nohup搭配。
重定向:管理程序输出,避免日志混乱。常用符号:
>:覆盖写入文件;>>:追加写入
2>:重定向错误输出(stderr)
2>&1:合并错误与标准输出(stdout)
/dev/null:丢弃输出,不保存日志
二、实际运维工作中的组合方案1. 基础方案:默认输出1nohup 命令 &#输出默认写入nohup.out
适用于临时测试,如写一个检测内网某个应用的页面是否正常访问的pe ...
Linux 统计文件夹下的文件数目使用 ls 命令结合 wc 命令统计当前目录下的文件数(不包括子目录中的文件):
1ls -l | grep ^- | wc -l
ls -l 列出详细信息
grep ^- 过滤出以 “-“开头的行(即普通文件)
wc -l 计算行数
使用 find 命令统计指定目录及其子目录中的所有文件数:
1find /path/to/directory -type f | wc -l
只统计指定目录(不包括子目录)中的文件数:
1find /path/to/directory -maxdepth 1 -type f | wc -l
按文件类型统计统计指定目录中特定类型的文件数(例如.txt 文件):
1find /path/to/directory -name "*.txt" | wc -l
在 Linux 系统中,journal 是指由 systemd 提供的 日志系统,用于集中管理系统和应用的日志信息。journal 是 systemd 的一部分,旨在取代传统的日志系统,如 syslog,并提供更丰富的日志功能。
主要功能:
集中日志管理:journal 收集系统内核、服务和应用程序的日志,并将它们统一存储在二进制日志文件中。
结构化日志:与传统的文本日志不同,journal 的日志是结构化的,可以包含元数据,例如时间戳、优先级、服务名、PID 等。
高效存储:journal 将日志存储在二进制格式的文件中,比传统的文本日志更节省存储空间,同时支持更高效的索引和搜索。
日志压缩和清理:journal 会自动进行日志压缩和清理,不会无限增长,占用过多的磁盘空间。
主要命令
查看日志:
1journalctl
这个命令会显示整个系统的日志输出。你可以通过添加不同的选项来过滤和查看日志。
查看最新的日志:
1journalctl -n 100
显示最近的 100 行日志。
跟随日志输出:
1journalctl -f
类似于 tail -f,会实时显示日志更新。
...
Linux 通配符完全指南:从基础语法到实战应用什么是通配符?
通配符是一组规则符号,用于创建定义文件或目录集合的模式。正如你所知,在命令行中引用文件或目录时,实际是在引用路径。而在路径中使用通配符,可以将其转换为一组文件或目录。
基本通配符集合:
• *:匹配零个或多个字符
• ?:匹配单个字符
• []:匹配范围内的单个字符
基础示例以*为例,以下命令将列出所有以字母b开头的条目:
12345678pwd/home/ryan/linuxtutorialworklsbarry.txt blah.txt bob example.png firstfile foo1 foo2foo3 frog.png secondfile thirdfile video.mpegls b*barry.txt blah.txt bob
底层原理这里的机制很有趣:你可能以为ls命令会直接处理b*参数,但实际上是bash(提供命令行界面的程序)完成了模式匹配。当输入包含通配符的命令时,系统会先将模式替换为所有匹配的文件或目录路径,再执行命令。例如:
123456# 输入命令ls b*# 系统转换为ls ...
Linux 系统启动过程Linux 系统启动过程概览Linux 系统启动过程如下:
第一步:开机自检,加载 BIOS;
第二步:读取 MBR;
第三步:Boot Loader(如 GRUB)引导菜单;
第四步:加载 Kernel 内核;
第五步:init 进程读取 inittab,设定运行级别;
第六步:init 进程执行 rc.sysinit;
第七步:加载内核模块;
第八步:执行对应运行级别的脚本;
第九步:执行 /etc/rc.d/rc.local;
第十步:启动 /bin/login,进入登录界面。
Linux 系统启动过程详解一、启动第一步:开机自检,加载 BIOS开机后,主板固件(BIOS/UEFI)完成 POST(加电自检),搜集 CPU、内存、硬盘、启动顺序等信息,为后续引导做好硬件准备。
二、启动第二步:读取 MBR硬盘第 0 磁道第 1 扇区(512 B)为主引导记录 MBR(Master Boot Record),内含启动代码与分区表。系统把该扇区复制到 0x7C00 地址并执行,其中的启动代码即 Boot Loader 的第一 ...
