Linux 基本概念
Linux 是一套免费使用和自由传播的类 Unix 操作系统,基于 Linux 内核,由 Linus Torvalds 于 1991 年首次发布,凭借其稳定性、安全性和开源特性,Linux 已广泛应用于服务器、嵌入式系统、超级计算机及桌面环境等领域,理解 Linux 的基本概念是掌握其操作与开发的关键,以下从核心组件、文件系统、用户与权限、常用命令及进程管理等方面进行阐述。
Linux 的核心组成
Linux 系统的架构可分为内核(Kernel)和用户空间(User Space)两大部分。
内核是系统的核心,负责管理硬件资源(如 CPU、内存、磁盘、I/O 设备)并提供基础服务,包括进程调度、内存管理、文件系统驱动、网络通信等,用户无法直接与内核交互,需通过系统调用(System Call)或 Shell 等工具间接操作。
用户空间是用户直接接触的层面,包含 Shell、命令行工具、图形界面(如 GNOME、KDE)及应用程序,Shell 作为命令解释器,是用户与内核之间的桥梁,常见的 Shell 有 Bash(默认)、Zsh、Fish 等,Linux 遵循“一切皆文件”的设计理念,硬件设备、进程、目录等均以文件形式呈现,便于统一管理。
文件系统结构与目录规范
Linux 文件系统采用树形层级结构,最顶层是根目录(/),所有文件和目录均从根目录开始展开,与 Windows 的盘符(如 C:、D:)不同,Linux 将所有存储设备挂载到指定目录下。
核心目录及其功能如下表所示:
目录名称 | 功能说明 |
---|---|
根目录,文件系统的起点 | |
/bin | 存放基本命令(如 ls、cp、mv),所有用户可用 |
/sbin | 存放系统管理命令(如 reboot、fdisk),通常需 root 权限 |
/etc | 系统配置文件(如 /etc/passwd 用户账户信息) |
/home | 普通用户的家目录,存放个人文件与配置 |
/var | 动态数据目录,如日志(/var/log)、缓存(/var/tmp) |
/tmp | 临时文件目录,系统重启后可能被清空 |
/usr | 用户程序及数据,如应用程序(/usr/bin)、文档(/usr/share) |
/boot | 启动文件,如内核镜像(vmlinuz)和引导加载程序(GRUB) |
/dev | 设备文件目录,如硬盘(/dev/sda)、终端(/dev/tty) |
/proc | 虚拟文件系统,存储内核进程信息(如 /proc/cpuinfo) |
/sys | 设备与内核信息的虚拟文件系统,用于硬件交互 |
用户与权限管理
Linux 是多用户、多任务操作系统,用户权限管理是核心安全机制。
用户类型分为三类:
- 超级用户(root):拥有系统最高权限,可执行任何操作,UID 为 0。
- 系统用户:用于运行系统服务(如 www、ftp),UID 通常小于 1000,无法登录系统。
- 普通用户:由管理员创建,权限受限,UID 默认从 1000 开始。
用户组(Group)将多个用户归类,简化权限管理,用户可属于多个主组(Primary Group)和附加组(Supplementary Group)。
权限模型基于“读(r)、写(w)、执行(x)”三要素,针对文件所有者(Owner)、所属组(Group)及其他用户(Others)分别设置,权限字符串 -rwxr-xr--
表示:
- 所有者:读、写、执行(rwx)
- 所属组:读、执行(r-x)
- 其他用户:读(r–)
权限可通过 chmod
命令修改(如 chmod 755 file
),通过 chown
修改所有者(如 chown user:group file
)。
常用命令与操作
Linux 命令行(CLI)是高效管理系统的工具,以下为常用命令分类说明:
文件与目录操作
ls
:列出目录内容(-l
显示详细信息,-a
显示隐藏文件)。cd
:切换目录(cd ..
返回上级目录,cd ~
进入家目录)。cp
:复制文件或目录(-r
递归复制目录)。mv
:移动文件或目录,或重命名(mv old new
)。rm
:删除文件或目录(-r
递归删除,-f
强制删除)。mkdir
:创建目录(-p
递归创建多级目录)。touch
:创建空文件或更新文件时间戳。
文本处理
cat
:查看文件内容(-n
显示行号)。grep
:文本搜索(-i
忽略大小写,-r
递归搜索目录)。sed
:流编辑器,用于文本替换(如sed 's/old/new/g' file
)。awk
:文本分析工具,按列处理数据(如awk '{print $1}' file
输出第一列)。
系统信息与管理
top
/htop
:实时查看进程资源占用(htop
为增强版,支持交互操作)。ps
:查看当前进程(-ef
显示所有进程,-aux
显示详细进程信息)。kill
/killall
:终止进程(kill -9
强制终止,killall
按进程名终止)。df
/du
:查看磁盘使用情况(df -h
以可读格式显示分区,du -sh *
统计目录大小)。ping
:测试网络连通性(ping www.baidu.com
)。
进程管理
进程是程序执行的实例,Linux 通过进程 ID(PID)唯一标识,进程具有生命周期,包括创建、运行、等待和终止状态。
进程状态:
- 运行态(R):正在 CPU 上执行或等待调度。
- 睡眠态(S):可中断睡眠(等待事件触发,如 I/O 完成)。
- 不可中断睡眠(D):等待硬件资源,无法被信号唤醒。
- 僵尸态(Z):进程已终止,但父进程未读取退出状态,资源未释放。
- 停止态(T):进程被暂停(如收到 SIGSTOP 信号)。
进程管理工具:
jobs
:查看后台任务(-l
显示 PID,-r
只显示运行中任务)。bg
/fg
:将前台任务切换到后台(bg %1
),或后台任务切到前台(fg %1
)。nohup
:让进程在用户退出后继续运行(nohup command &
)。
软件包管理
Linux 发行版采用不同的软件包管理机制,主要分为两类:
基于deb的发行版(如 Ubuntu、Debian)
- 使用
apt
(Advanced Packaging Tool)管理软件包:sudo apt update
:更新软件源列表。sudo apt install package
:安装软件包。sudo apt remove package
:卸载软件包(保留配置文件)。sudo apt purge package
:完全卸载软件包及配置文件。
基于rpm的发行版(如 CentOS、RHEL、Fedora)
- 使用
yum
(Yellowdog Updater Modified)或dnf
(Dandified Yum):sudo yum update
:更新所有软件包。sudo yum install package
:安装软件包。sudo yum remove package
:卸载软件包。
Linux 的基本概念涵盖了系统架构、文件组织、权限机制、命令操作及进程管理等多个维度,其设计哲学强调简洁、模块化和可扩展性,使其成为服务器和开发领域的首选系统,掌握这些基础概念,不仅能提升系统操作效率,为进一步学习 Linux 系统编程、运维管理及网络安全奠定坚实基础。