Linux-基础知识总结
Linux 是一个开源的、类 Unix 操作系统,它的内核最初是由 Linus Torvalds 在 1991 年开发。Linux 广泛应用于服务器、嵌入式系统、超级计算机等领域。
以下是 Linux 的详细介绍,涵盖了其结构、特点、常用命令等方面。
1. Linux 内核(Kernel)
Linux 内核是整个操作系统的核心部分,负责硬件管理、进程调度、文件系统管理、网络通讯等。它是一个系统软件,用来提供与硬件交互的接口,并提供基础的操作系统功能。
内核分为以下几个主要部分:
(1)进程管理
调度系统中的任务,控制进程的执行顺序、时间等。
(2)内存管理
分配和管理系统内存,保证程序的正常运行。
(3)文件系统管理
提供文件的创建、删除、访问、权限控制等。
(4)硬件管理
负责和硬件设备进行通信和管理,如硬盘、显卡、网络接口等。
(5)网络管理
处理网络协议栈,管理网络接口,确保设备能够互相通信。
2. Linux 的发行版(Distributions)
由于 Linux 是开源的,很多组织和个人将其内核与其他软件(如图形界面、系统工具等)结合,制作成了不同的 Linux 发行版。
常见的 Linux 发行版有:
(1)Ubuntu
用户友好型的 Linux 发行版,广泛应用于桌面和服务器。
(2)Debian
稳定、安全的 Linux 发行版,是许多其他发行版的基础。
(3)CentOS
Red Hat 的社区版本,主要用于服务器。
(4)Fedora
由 Red Hat 支持,提供最新的软件包和技术。
(5)Arch Linux
一个滚动更新的发行版,适合高级用户。
(6)openSUSE
开源的、适合开发人员和系统管理员的发行版。
(7)Linux Mint
基于 Ubuntu 的发行版,适合新手。
3. 文件系统结构
Linux 使用的是分层的文件系统结构,所有文件都以根目录 / 为起点。
常见的目录结构:
(1)/bin
系统核心命令存放目录,系统启动时需要的命令都在这里。
(2)/etc
系统配置文件目录。
(3)/home
用户主目录,每个用户的个人文件都存放在这个目录下。
(4)/lib
系统库文件目录,存放动态链接库等。
(5)/usr
用户应用程序和数据,常见的应用程序和库都放在这个目录下。
(6)/var
可变数据,存放日志文件、数据库文件等。
(7)/tmp
临时文件存放目录,通常在系统重启时清空。
(8)/root
超级用户(root)的主目录。
(9)/dev
设备文件目录,所有设备都以文件的形式呈现(如磁盘、终端、打印机等)。
(10)/proc
虚拟文件系统,提供内核和进程信息。
(11)/sys
另一个虚拟文件系统,用于与内核交互。
4. Linux 用户和权限
Linux 是多用户操作系统,用户在系统中有不同的权限。每个文件和进程都有与之关联的权限,这些权限定义了谁可以访问或修改它们。
Linux 用户和权限的基本概念:
(1)用户
Linux 中的每个用户都有一个唯一的 ID(UID),以及一个或多个与之关联的组(GID)。
(2)权限
每个文件和目录都有三种基本权限:
读(r):允许读取文件内容。
写(w):允许修改文件内容。
执行(x):允许执行文件。
文件权限表示:通过 3 位数字或符号(rwx)来表示。
符号表示:例如,rwxr-xr--,表示文件所有者具有读、写、执行权限,同组用户具有读、执行权限,其他用户只有读权限。
数字表示:每个权限都有一个对应的数字:读(4)、写(2)、执行(1),rwxr-xr-- 可以表示为 754。
5. Linux 常用命令
Linux 提供了大量的命令行工具来进行各种操作。
常见的命令:
(1)文件操作
ls:列出目录中的文件和目录。
cp:复制文件或目录。
mv:移动或重命名文件。
rm:删除文件或目录。
cat/tail/less:查看文件内容。
touch:创建空文件或修改文件时间戳。
find:查找文件。
grep:搜索文件中的内容。
(2)文件权限管理
chmod:修改文件或目录的权限。
chown:改变文件或目录的所有者。
chgrp:改变文件或目录的组。
(3)进程管理
ps:查看当前运行的进程。
top:实时显示系统资源占用。
kill:终止进程。
pkill:终止进程。
htop:交互式的进程查看工具。
(4)用户管理
useradd:创建新用户。
passwd:修改用户密码。
usermod:修改用户的属性。
groupadd:创建新组。
(5)网络管理
ifconfig:显示或配置网络接口。
ping:检测与另一台主机的网络连接。
netstat:查看网络连接和端口占用情况。
ss:查看网络套接字连接。
(6)压缩和解压
tar:打包或解包文件。
gzip:压缩文件。
zip/unzip:压缩和解压 zip 文件。
6. 软件包管理
不同的 Linux 发行版使用不同的软件包管理工具:
(1)Debian 系列
使用 apt 或 dpkg。
apt-get install <package>:安装软件包。
apt-get update:更新软件包列表。
apt-get upgrade:升级所有已安装的软件包。
(2)Red Hat 系列
使用 yum 或 dnf。
yum install <package>:安装软件包。
yum update:更新所有已安装的软件包。
(3)Arch Linux
使用 pacman。
pacman -S <package>:安装软件包。
7. Shell 和脚本
Linux 提供了多种 Shell(命令行解释器),最常用的是 Bash(Bourne Again Shell)。
Shell 提供了一个命令行界面,用户可以通过它输入命令、运行程序、执行脚本等。
Shell 脚本是由一系列命令构成的文本文件,可以实现自动化任务和批量处理。
8. Linux 安全
Linux 提供了一系列的安全功能:
(1)SELinux
提供强制访问控制(MAC)策略。
(2)AppArmor
另一种访问控制机制,类似于 SELinux。
(3)Iptables
用于管理 Linux 防火墙规则。
(4)SSH
用于远程安全连接。
9.总结
Linux 是一个强大且灵活的操作系统,广泛应用于服务器、桌面和嵌入式设备。它提供了稳定、高效、开源和可定制的环境。Linux 用户通过命令行和脚本工具,能够高效地管理系统和执行复杂任务。在学习和使用 Linux 时,掌握其基础命令、文件系统结构和安全管理非常重要。