Skip to content

Linux 系统

什么是 Linux?

Linux 是一个免费开源的操作系统,就像 Windows 或 macOS 一样。它被广泛应用在服务器、超级计算机、移动设备等各个领域。学习 Linux 对于程序员和技术工作者来说非常重要。

Linux 操作系统的组成

Linux 操作系统主要由两个核心部分组成:

  • Linux 内核(Kernel):这是系统的核心,负责管理硬件资源、进程调度、内存管理、文件系统等底层功能。内核直接与硬件交互,为上层软件提供统一的接口。

  • 软件包(Software Packages):包括各种应用程序、系统工具、库文件、桌面环境等,这些软件包构成了完整的操作系统环境,为用户提供丰富的功能和友好的交互界面。

正是这种模块化的设计,使得 Linux 既保持了内核的稳定性和高效性,又具备了极强的可扩展性和定制性。

Linux 发行版

Linux 的开源特性使得它可以被自由修改和分发,因此有很多不同的 Linux 发行版,例如 Ubuntu、Debian、Arch 等。每个发行版都有其特点:

  • Ubuntu:最受欢迎的桌面 Linux 发行版,用户友好,软件丰富
  • Debian:稳定可靠,Ubuntu 的基础
  • CentOS/RHEL:企业级服务器首选
  • Arch Linux:滚动更新,高度可定制
  • Alpine Linux:轻量级,常用于容器

本课程环境:我们为学生提供的服务器都是 Ubuntu 系统,这也是最适合初学者的 Linux 发行版。Ubuntu 有良好的硬件支持、丰富的软件包和活跃的社区支持。

Linux 的精神理念

Linux 不仅仅是一个操作系统,更代表着一种独特的技术哲学和价值观念:

用简单构建复杂

Linux 遵循"做一件事并把它做好"的 Unix 哲学。系统由众多简单、专一的工具组成,通过管道、重定向等机制将这些简单工具组合起来,就能实现复杂强大的功能。这种设计思想让系统既保持了各个组件的简洁性,又具备了处理复杂任务的能力。

用开放促进创新

Linux 的开源特性意味着任何人都可以查看、修改和分发源代码。这种开放性打破了技术壁垒,促进了知识的自由流动和技术的快速迭代。全世界的开发者可以在同一个平台上贡献智慧,推动技术不断向前发展。

用协作实现共赢

Linux 的发展模式体现了协作共赢的理念。从 Linus Torvalds 发布第一个版本开始,Linux 就依靠全球开发者的协作不断完善。这种分布式的开发模式不仅提高了软件质量,也让每个参与者都能从中受益,形成了良性的技术生态圈。

为什么要学习 Linux?

  • 稳定性强:Linux 系统运行稳定,很少出现蓝屏或崩溃
  • 安全性高:相比 Windows,Linux 更不容易受到病毒攻击
  • 资源占用少:系统运行效率高,占用内存和存储空间较少
  • 免费开源:完全免费使用,源代码公开
  • 服务器首选:大多数服务器都使用 Linux 系统

Linux 基本概念

文件系统结构

Linux 的文件系统是树状结构,从根目录 / 开始:

/
├── bin/        # 基本命令程序
├── etc/        # 系统配置文件
├── home/       # 用户主目录
├── usr/        # 用户程序和数据
├── var/        # 变量数据文件
└── tmp/        # 临时文件

用户和权限

  • root 用户:系统管理员,拥有最高权限
  • 普通用户:权限受限,只能操作自己的文件
  • sudo:临时获得管理员权限的命令

基本命令

文件和目录操作

1. 查看当前位置

bash
pwd

显示当前所在的目录路径。

2. 列出文件和目录

bash
ls              # 列出当前目录的内容
ls -l           # 详细列表格式
ls -a           # 显示隐藏文件
ls -la          # 详细格式并显示隐藏文件

3. 切换目录

bash
cd /home/user   # 切换到指定目录
cd ..           # 返回上级目录
cd ~            # 回到用户主目录
cd -            # 回到上一次所在目录

4. 创建目录

bash
mkdir 新目录名      # 创建单个目录
mkdir -p a/b/c    # 创建多层目录

5. 删除文件和目录

bash
rm 文件名          # 删除文件
rm -r 目录名       # 删除目录及其内容
rm -f 文件名       # 强制删除文件

⚠️ 注意:删除操作无法撤销,请谨慎使用!

6. 复制和移动

bash
cp 源文件 目标位置    # 复制文件
cp -r 源目录 目标位置 # 复制目录
mv 源文件 目标位置    # 移动文件或重命名

文件内容操作

1. 查看文件内容

bash
cat 文件名         # 显示整个文件内容
head 文件名        # 显示文件前10行
tail 文件名        # 显示文件后10行
less 文件名        # 分页查看文件(按q退出)

2. 编辑文件

bash
nano 文件名        # 使用nano编辑器(推荐初学者)
vim 文件名         # 使用vim编辑器(功能更强大)

3. 创建空文件

bash
touch 文件名       # 创建空文件或更新文件时间

系统信息

1. 查看系统信息

bash
uname -a          # 显示系统信息
whoami            # 显示当前用户名
date              # 显示日期和时间
uptime            # 显示系统运行时间

2. 查看磁盘使用情况

bash
df -h             # 显示磁盘空间使用情况
du -h 目录名       # 显示目录大小

3. 查看进程

bash
ps aux            # 显示所有运行的进程
top               # 实时显示进程信息(按q退出)

网络相关

bash
ping google.com   # 测试网络连接
wget URL          # 下载文件
curl URL          # 获取网页内容

包管理器

不同的 Linux 发行版使用不同的包管理器:

Ubuntu/Debian 系统 (apt)

bash
sudo apt update           # 更新软件包列表
sudo apt upgrade          # 升级已安装的软件包
sudo apt install 软件名    # 安装软件
sudo apt remove 软件名     # 卸载软件

CentOS/RHEL 系统 (yum)

bash
sudo yum update           # 更新软件包
sudo yum install 软件名    # 安装软件
sudo yum remove 软件名     # 卸载软件

文件权限

Linux 中每个文件都有权限设置:

-rwxr-xr-x
  • 第一个字符:文件类型(- 表示文件,d 表示目录)
  • 接下来9个字符分为3组,分别表示:
    • 前3个:所有者权限
    • 中3个:用户组权限
    • 后3个:其他用户权限

每组3个字符含义:

  • r:读权限
  • w:写权限
  • x:执行权限

修改权限

bash
chmod 755 文件名    # 设置权限为 rwxr-xr-x
chmod +x 文件名     # 添加执行权限

环境变量

环境变量是系统中的重要配置:

bash
echo $PATH        # 显示PATH环境变量
export VAR=value  # 设置环境变量
env               # 显示所有环境变量

实用技巧

1. 命令历史

bash
history           # 查看命令历史
!!                # 执行上一个命令
!n                # 执行历史中第n个命令

2. 快捷键

  • Ctrl + C:终止当前命令
  • Ctrl + Z:暂停当前命令
  • Ctrl + L:清屏
  • Tab:自动补全命令或文件名
  • ↑/↓:浏览命令历史

3. 管道和重定向

bash
命令1 | 命令2      # 将命令1的输出作为命令2的输入
命令 > 文件        # 将输出重定向到文件
命令 >> 文件       # 将输出追加到文件

4. 查找文件

bash
find /path -name "文件名"    # 按名称查找文件
grep "内容" 文件名           # 在文件中搜索内容

常见问题解决

1. 权限不够

如果遇到 "Permission denied" 错误,尝试在命令前加 sudo

bash
sudo 命令

2. 找不到命令

如果提示命令不存在,可能需要安装:

bash
sudo apt install 软件包名  # Ubuntu/Debian
sudo yum install 软件包名  # CentOS/RHEL

3. 磁盘空间不足

清理系统缓存:

bash
sudo apt clean              # 清理下载的包文件
sudo apt autoremove         # 删除不需要的依赖包

Released under the MIT License.