Linux基础知识总结
Linux基础知识总结
1. Linux 简介
Linux 是一个开源的类 Unix 操作系统。它由 Linus Torvalds 在 1991 年发布,最初是一个基于 MINIX 内核的小型操作系统。随着时间的推移,Linux 已经发展成为一款功能强大、跨平台的操作系统,广泛应用于个人电脑、服务器、移动设备等各种硬件上。与传统的操作系统(如 Windows)不同,Linux 采用开放源代码的开发模式,任何人都可以查看、修改和分发其源代码。
2. Linux 诞生
Linux 的诞生可以追溯到 1991 年,当时 Linus Torvalds 是赫尔辛基大学的一名学生。由于无法负担 Unix 系统的费用,Linus 决定编写一个自己的操作系统内核,并将其命名为 Linux。最初,Linux 只是一个用于 386 微处理器的实验性内核,Linus 使用了 MINIX 系统的设计思路,并且借助了 GNU 项目的工具(如 Bash、GCC)来开发和编译 Linux 内核。
1991 年,Linus Torvalds 通过 Usenet 新sgroup 向全球开发者发布了 Linux 内核,并鼓励其他开发者参与项目。自那时以来,Linux 就成为了全球开发者共同合作的开源项目。
3. 常见的 Linux 发行版本
Linux 操作系统的核心(内核)是开源的,许多组织和公司将其与其他软件打包在一起,创建了不同的 Linux 发行版本(Distro)。每个发行版本通常包括内核、GNU 工具、图形界面以及各种程序包和应用程序。
- Ubuntu:基于 Debian,适用于桌面和服务器,界面友好,易于使用。Ubuntu 是最受欢迎的 Linux 发行版之一。
- CentOS:基于 Red Hat Enterprise Linux(RHEL),专注于稳定性和长期支持,常用于企业环境和服务器。
- Debian:以其稳定性和安全性著称,是很多其他 Linux 发行版的基础,如 Ubuntu。
- Fedora:由 Red Hat 支持,面向开发者和技术爱好者,快速更新,包含最新的技术。
- Arch Linux:一个极简主义的发行版,给用户最大程度的自由度,需要用户自定义配置,适合高级用户。
- openSUSE:由 SUSE 支持,适用于开发人员和企业,提供灵活性和稳定性,使用 YaST 配置工具。
4. Linux 文件系统
Linux 的文件系统用于管理存储设备上的文件和目录。Linux 提供了多种文件系统格式,最常用的是 ext4 文件系统。文件系统的主要功能是管理文件存储和文件的访问权限。
inode 介绍:Linux 使用 inode(索引节点)来存储文件的元数据(如文件大小、文件类型、访问权限、创建时间、文件的数据块位置等)。每个文件都与一个 inode 相关联,inode 并不存储文件名,而是存储文件的所有其他信息。
硬链接与软链接:
- 硬链接:硬链接是多个文件名指向同一个 inode。这意味着文件名与文件数据是分离的,多个硬链接可以访问同一个文件数据。删除其中任何一个硬链接并不会影响文件的内容,直到所有硬链接都被删除。
- 软链接:软链接(也叫符号链接)是一个指向另一个文件路径的文件,类似于 Windows 中的快捷方式。如果原文件被删除,软链接将失效。
5. Linux 目录树
Linux 使用树形结构来组织文件。每个文件都属于某个目录,而每个目录又可以包含其他文件或目录。常见的 Linux 目录包括:
- /:根目录,所有文件的起始点。
- /bin:系统必需的二进制文件,如
ls、cp等。 - /boot:存放启动文件,如内核文件。
- /dev:存放设备文件,如硬盘、终端设备。
- /etc:存放系统配置文件,如用户信息、网络配置等。
- /home:存放用户数据的目录,每个用户有一个子目录。
- /lib:存放系统共享库文件。
- /media:可移动设备的挂载点,如 USB 设备。
- /opt:用于存放附加的应用软件。
- /tmp:临时文件夹,程序运行时存放临时文件。
- /usr:存放用户程序和数据。
- /var:存放日志文件、邮件、缓存等变化频繁的文件。
6. 常用命令
Linux 提供了大量的命令行工具用于操作文件系统、管理用户、调试程序等。以下是一些常用命令:
目录切换:
cd <目录>:切换到指定目录。pwd:显示当前工作目录。
目录操作:
ls:列出当前目录的文件和目录。mkdir <目录名>:创建新目录。rmdir <目录名>:删除空目录。
文件操作:
cp <源文件> <目标文件>:复制文件。mv <源文件> <目标文件>:移动文件或重命名文件。rm <文件名>:删除文件。
文件压缩:
tar -czvf <压缩包> <文件/目录>:压缩文件或目录。gzip <文件>:使用 Gzip 压缩文件。
文件传输:
scp <源文件> <用户名>@<远程主机>:<目标路径>:通过 SSH 协议进行文件复制。rsync -avz <源路径> <目标路径>:高效地同步文件或目录。
文件权限:
chmod <权限> <文件名>:修改文件权限。chown <用户>:<组> <文件名>:修改文件的拥有者和所属组。
用户管理:
useradd <用户名>:添加新用户。passwd <用户名>:设置或修改用户密码。
7. Linux 环境变量
环境变量是操作系统和程序使用的变量,它们存储着系统配置信息,如路径信息、用户信息等。环境变量可以影响程序的行为。
环境变量分类:
- 系统级环境变量:影响系统上所有用户的环境变量,如
PATH。 - 用户级环境变量:仅对特定用户有效的变量,如
USER。
- 系统级环境变量:影响系统上所有用户的环境变量,如
读取环境变量:可以使用
echo $VARIABLE_NAME来读取环境变量的值。修改环境变量:使用
export VARIABLE_NAME=value来设置环境变量的值。要永久生效,可以将其添加到~/.bashrc文件中。
8. 总结
Linux 是一个强大的开源操作系统,具有灵活的文件管理、高效的用户权限控制和广泛的应用场景。通过学习 Linux 的常用命令、文件管理和系统配置,用户可以在 Linux 系统中高效地工作、开发和管理应用。
