Linux 命令行完全指南:从入门到精通1 Linux 命令行概述1.1 Linux命令行的作用与意义众所周知,Linux是一个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,包括但不限于编辑文件、启动停止服务等。这与初学者曾经熟悉的Windows系统使用鼠标点击这类可视化管理大不相同。
使用鼠标进行可视化管理的优势是简单、容易上手,缺点是不能方便快速、批量、自动化地管理系统,而且感觉系统也很臃肿,这个时候Linux系统的命令行管理优势就凸显出来了。使用Linux命令行进行管理,不但可以批量、自动化管理,还可以实现智能化、可视化管理,当然,后者需要开发人员配合开发管理界面来完成,但无论如何,Linux系统的优势基因还是快速、批量、自动化、智能化管理系统及处理业务。
1.2 Linux命令行介绍安装Linux系统时,无论是使用文本模式(命令行)安装,还是使用图形模式安装,最终管理系统的任务都会落到命令行上。
大多数互联网企业在安装系统时甚至不会安装图形管理软件包,而是直接使用文本模式安装,因此登录后直接面对的就是命令行的界面。
1.3 Linux命令行的开启及 ...
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 常用系统信息命令速查整理了Linux 系统信息相关命令。它们不负责改系统,主要负责帮你快速看清服务器当前状态:版本、负载、内存、磁盘、CPU、时间和历史操作。
本文目录
系统版本与内核信息
主机名与 IP 地址
运行时间与系统负载
内存使用情况
磁盘空间与目录体积
实时监控与进程概览
CPU 硬件与核心信息
块设备与挂载信息
日期、时间与时区
历史命令快速复用
1. 系统版本与内核信息先确认机器跑的是什么系统、什么内核、什么架构。排查兼容性、安装软件包、定位驱动问题时,这是第一步。
1234uname -a # 显示所有系统信息uname -r # 查看内核版本uname -m # 查看系统架构uname -s # 查看内核名称
记住 uname -a 是全量体检,-r 看内核版本;装驱动或排查容器兼容问题时,别只看发行版名称。
2. 主机名与 IP 地址主机名像服务器的工牌,IP 地址像工位号。多台机器排障时,先确认自己到底登录到了哪一台。
1234hostnamehostname -I # 显示本机 IP 地址hostnamectl set-hostname new ...
Linux 中的通配符与正则表达式很多新手在操作 Linux 时会遇到一个非常令人困惑的现象。想要批量删除所有的 txt 后缀文件,输入 rm *.txt,系统执行得非常顺利。但是,当想要用 grep 去搜索包含特定内容的文件时,输入同样的 *.txt,命令窗口什么都搜不到。这两个地方用的明明都是星号,看起来一模一样,为什么待遇差别这么大?
1. Linux 中的通配符与正则表达式要解决上面那个问题,必须先明白 Linux 系统里其实有两套完全不同的规则。第一套叫做通配符,第二套叫做正则表达式。
简单来说,通配符是交给 Shell(也就是那个黑色的命令行窗口)去处理的,它的工作主要就是用来找文件,匹配文件名的。
而正则表达式是交给具体的软件工具(比如 grep、awk 或者编辑器)去处理的,它的工作是用来找文字,处理文件里面具体内容的。
分工不同,规则自然就不一样。
2. 通配符与正则表达式的使用场景1. 使用通配符的场景通配符的主战场就是 Shell 的文件名匹配。
这就好比在点名。当在命令行里输入一个带有通配符的命令时,Shell 这个“管家”非常勤快。它会在命令真正执行之前,先把 ...
Linux 常用命令速查表1. 文件系统导航
命令
描述
ls
列出目录中的所有文件
ls -l
列出所有文件及其详细信息(所有者、修改时间、大小等)
ls -a
列出目录中的所有文件(包括隐藏文件)
pwd
显示当前工作目录
cd
切换到其他目录
file
查看任何文件的类型
2. 查看、创建、编辑和删除文件与目录
命令
描述
mkdir
创建新目录
touch
创建新的空文件,或更新现有文件的修改时间
cat > 文件
创建新文件并输入文本内容
cat 文件
查看文件内容
grep
查看文件中匹配模式的内容
nano 文件
在nano文本编辑器中打开文件(或创建新文件)
vim 文件
在vim文本编辑器中打开文件(或创建新文件)
rm 或 rmdir
删除文件或空目录
rm -r
删除非空目录
mv
移动或重命名文件或目录
cp
复制文件或目录
rsync
同步一个目录到另一个目录的更改
3. 搜索文件和目录
命令
描述
locate
快速查找已缓存的文件或目录
find ...
LVM 逻辑卷管理在 Linux 系统中,磁盘与分区是存储管理的基础,但传统分区方式(如 MBR、GPT)存在诸多缺陷:难以在线扩容、难以灵活调整大小、磁盘拆换也比较麻烦。为了解决这些问题,Linux 提供了一套更强大、更灵活的机制——LVM(Logical Volume Manager)逻辑卷管理系统。
LVM 可以理解为一层构建在物理磁盘之上的“可伸缩存储抽象层”,让磁盘管理不再受传统分区限制。
一、LVM 是什么?
LVM(Logical Volume Manager)是 Linux 上的一种逻辑卷管理机制,它通过在物理磁盘之上构建“可伸缩的逻辑卷”,从而实现更灵活的磁盘管理。
简单说,它有三大优势:
可动态调整大小(在线扩容)
无需重启、不影响业务即可扩容分区或文件系统。
跨磁盘组合
多个物理磁盘可以组合成一个逻辑卷,使存储空间利用最大化。
快照(Snapshot)能力
可对卷进行快照用于备份或临时恢复。
这些能力让 LVM 成为服务器环境、虚拟机、数据库以及需要频繁扩容的场景中的核心技术。
二、LVM 的结构组成理解 LVM 的架构,是掌握它的第一步。
LVM 主 ...
Linux 搭建OpenVPN服务器和客户端项目需要能够远程控制树莓派。说到远程控制,肯定想到ssh。但是呢,树莓派是用3G流量上网的,分配到的是内网IP地址。那么如何让另一个设备能够连接到处于内网的设备呢?我想到了VPN。在VPN中,所有设备都好像在一个局域网中,如果服务器适当配置一下,那么VPN客户端之间就能互相访问。
VPN有很多种,包括PPTP、IPSec、OpenVPN等等。PPTP的数据包特征太明显,在国内的网络环境中很可能直接被拦截掉了。另外,由于树莓派使用的是3G流量,其链路可能功能有限,IPSec使用的是Cisco自己设计的协议,可能会被丢弃(未考证)。综合考虑,还是OpenVPN功能最强大,因为它是基于TCP或者UDP的,而且数据包特征不太明显,另外可配置项也很多。
OpenVPN的配置还是比较复杂的,尤其是对于新手而言,如果一开始上来就是什么创建证书、公钥、密钥,会很打击信心。所以我决定先来一个最最简单的版本,然后循序渐进。
=========== ...
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 的 /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 分区表支持有限
唯一性
全局唯一,用于区分不同的文件系统
全局唯一,用于 ...
在 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 盘有两个分 ...
