杰瑞科技汇

Linux教程习题,如何高效掌握?

Linux 学习教程

本教程分为五个部分,从最基础的入门到进阶的系统管理和脚本编程。

Linux教程习题,如何高效掌握?-图1
(图片来源网络,侵删)

第一部分:Linux 基础入门

  1. 什么是 Linux?

    • 核心概念:Linux 是一个开源的、免费的类 Unix 操作系统内核,我们通常所说的 "Linux" 指的是 "Linux 发行版",如 Ubuntu, CentOS, Debian 等,它们是在 Linux 内核基础上集成了各种 GNU 软件和工具形成的完整操作系统。
    • 为什么学习 Linux:它是服务器、云计算、嵌入式设备、超级计算机等领域的主流操作系统,也是开发者的必备技能。
  2. 安装 Linux

    • 推荐发行版:对于初学者,强烈推荐 Ubuntu Desktop,它拥有友好的图形界面和庞大的社区支持。
    • 安装方式
      • 虚拟机:在 Windows 或 macOS 上使用 VMware 或 VirtualBox 安装,最安全、最无风险的方式,方便练习和实验。
      • 双系统:与 Windows 并存安装,可以直接体验完整的 Linux 性能,但有一定风险。
      • WSL (Windows Subsystem for Linux):在 Windows 10/11 上直接运行一个真实的 Linux 环境,非常适合开发。
  3. Linux 文件系统结构

    • 一切皆文件:Linux 中几乎所有的东西(硬件、目录、进程)都被表示为文件。
    • 顶级目录(必须熟记)
      • (根目录):所有文件的起点。
      • /bin:基本命令 (如 ls, cp)。
      • /sbin:系统管理命令 (如 reboot, fdisk)。
      • /etc:系统配置文件 (如 passwd, network)。
      • /home:普通用户的家目录。
      • /usr:用户安装的软件和程序。
      • /var:经常变化的文件,如日志 (/var/log)、邮件。
      • /tmp:临时文件。
      • /boot:启动文件。
      • /dev:设备文件 (如硬盘、键盘)。
      • /proc:内核与进程信息。
  4. Shell 基础

    Linux教程习题,如何高效掌握?-图2
    (图片来源网络,侵删)
    • 什么是 Shell:是用户与 Linux 内核交互的命令行解释器,最常用的是 Bash (Bourne-Again Shell)
    • 打开终端:在 Ubuntu 中,可以使用 Ctrl + Alt + T 快捷键打开终端。
    • 基本命令格式命令 [选项] [参数]

第二部分:核心命令详解

  1. 文件和目录操作

    • ls:列出目录内容。
      • ls -l:长格式显示(权限、所有者、大小、日期)。
      • ls -a:显示所有文件,包括隐藏文件(以 开头)。
      • ls -h:以人类可读的方式显示文件大小 (K, M, G)。
    • pwd:显示当前工作目录。
    • cd:切换目录。
      • cd /home:切换到 /home 目录。
      • cd ..:切换到上一级目录。
      • cd ~cd:切换到当前用户的家目录。
    • mkdir:创建新目录。
      • mkdir my_dir:创建一个目录。
      • mkdir -p parent/child:递归创建多级目录。
    • touch:创建一个空文件或更新文件时间戳。
    • cp:复制文件或目录。
      • cp source.txt dest.txt:复制文件。
      • cp -r source_dir/ dest_dir/:递归复制目录。
    • mv:移动/重命名文件或目录。
      • mv old_name.txt new_name.txt:重命名。
      • mv file.txt /home/user/:移动文件。
    • rm:删除文件或目录。
      • rm file.txt:删除文件。
      • rm -r dir/:递归删除目录。
      • rm -f file.txt:强制删除,不提示。
      • 警告rm -rf / 是一个极其危险的命令,会删除根目录下所有文件!
    • cat:查看文件内容(一次性全部显示)。
    • less / more:分页查看文件内容(less 更强大,支持上下翻页和搜索)。
    • head / tail:查看文件的开头或结尾部分。
      • head -n 10 file.txt:查看前 10 行。
      • tail -n 10 file.txt:查看最后 10 行。
      • tail -f file.log:实时追踪日志文件的更新。
  2. 文本处理

    • grep:在文本中搜索匹配的行。
      • grep "error" /var/log/syslog:在系统日志中搜索包含 "error" 的行。
      • grep -i "warning" log.txt:忽略大小写搜索。
      • grep -v "info" log.txt:反向匹配,即不包含 "info" 的行。
    • find:在目录树中搜索文件。
      • find /home -name "*.txt":在 /home 目录下查找所有 .txt 文件。
      • find . -type f -size +10M:在当前目录下查找大于 10MB 的文件。
    • echo:输出文本或变量。
      • echo "Hello, World!"
    • > / >>:重定向。
      • command > file.txt:将命令的输出覆盖写入 file.txt
      • command >> file.txt:将命令的输出追加写入 file.txt
    • (管道):将一个命令的输出作为另一个命令的输入。
      • cat /var/log/syslog | grep "error":先显示系统日志,然后通过管道过滤出 "error" 行。

第三部分:用户与权限管理

  1. 用户和用户组

    • whoami:显示当前用户。
    • id:显示当前用户的 ID 和所属组。
    • useradd / adduser:创建新用户。
    • passwd:修改用户密码。
    • userdel:删除用户。
      • userdel -r username:删除用户及其家目录。
    • groupadd:创建新组。
  2. 文件权限

    Linux教程习题,如何高效掌握?-图3
    (图片来源网络,侵删)
    • 权限类型
      • r (Read):读权限 (4)
      • w (Write):写权限 (2)
      • x (Execute):执行权限 (1)
    • 权限对象
      • u (User):文件所有者
      • g (Group):文件所属组
      • o (Others):其他用户
      • a (All):所有用户
    • 查看权限ls -l 输出的第一列,如 -rwxr-xr--
      • 第1位:文件类型 ( 文件, d 目录, l 链接)。
      • 第2-4位:所有者权限。
      • 第5-7位:组权限。
      • 第8-10位:其他用户权限。
    • 修改权限
      • chmod:修改权限。
        • 数字法chmod 755 script.sh (所有者 rwx=7, 组 r-x=5, 其他 r-x=5)。
        • 符号法chmod u+x script.sh (给所有者增加执行权限)。
    • 修改所有者和组
      • chown:修改文件所有者。chown user:group file.txt
      • chgrp:修改文件所属组。chgrp group file.txt

第四部分:软件包管理与进程

  1. 软件包管理

    • 基于 Debian/Ubuntu (使用 apt)
      • sudo apt update:更新软件包列表。
      • sudo apt upgrade:升级所有已安装的软件包。
      • sudo apt install package_name:安装软件包。
      • sudo apt remove package_name:卸载软件包。
    • 基于 CentOS/RHEL (使用 yumdnf)
      • sudo yum check-update:检查更新。
      • sudo yum update:升级所有软件包。
      • sudo yum install package_name:安装软件包。
      • sudo yum remove package_name:卸载软件包。
  2. 进程管理

    • ps:查看当前运行的进程。
      • ps aux:显示所有进程的详细信息。
    • top / htop:动态显示正在运行的进程,并按 CPU/内存使用率排序 (htop 更直观)。
    • kill:终止进程。
      • kill PID:正常终止进程。
      • kill -9 PID:强制杀死进程(无法被忽略)。
    • jobs / fg / bg:管理后台任务。
      • command &:让命令在后台运行。
      • jobs:查看后台任务。
      • fg %1:将任务 1 调到前台。
      • bg %1:将任务 1 放到后台继续运行。

第五部分:进阶主题

  1. Shell 脚本编程

    • 创建一个 .sh 文件,如 myscript.sh
    • 第一行必须为 #!/bin/bash (Shebang)。
    • 赋予执行权限:chmod +x myscript.sh
    • 变量:name="Alice",使用时 $name
    • 条件判断:if...fi
    • 循环:for...done, while...done
    • 函数:function_name() { ... }
  2. 网络配置

    • ip addr:查看 IP 地址。
    • ping google.com:测试网络连通性。
    • ss -tuln / netstat -tuln:查看监听的端口。
  3. Vim/Neovim 编辑器

    • 三种模式
      • 普通模式:默认模式,用于导航和命令。
      • 插入模式:用于输入文本,按 i 进入。
      • 命令行模式:用于保存、退出等,按 进入。
    • 常用命令
      • i:进入插入模式。
      • Esc:返回普通模式。
      • w:保存。
      • q:退出。
      • wq:保存并退出。
      • q!:不保存强制退出。
      • dd:删除一行。
      • yy:复制一行。
      • p:粘贴。

Linux 习题库

以下习题按照教程的顺序编排,旨在巩固所学知识。

第一部分:基础入门

  1. 选择题

    • Linux 系统的顶级根目录是? a) windows b) home c) d) root
    • 在 Linux 中,哪个命令用于显示当前所在目录? a) dir b) ls c) pwd d) cd
    • 哪个目录通常用来存放用户安装的应用程序? a) /bin b) /etc c) /usr d) /var
  2. 简答题

    • 请解释 "Linux 内核" 和 "Linux 发行版" 的区别。
    • 请列出至少 5 个 Linux 顶级目录,并简述其用途。

第二部分:核心命令

  1. 操作题

    • 在你的家目录下创建一个名为 test_project 的文件夹。
    • 进入 test_project 文件夹。
    • 在该文件夹下创建两个文件:file1.txtfile2.log
    • file1.txt 的内容复制一份,并命名为 file1_backup.txt
    • file2.log 移动到你的桌面。
    • 删除 file1_backup.txt 文件。
    • 使用 cat 命令在 file1.txt 中写入一行文字 "Hello Linux World!"。
    • 使用 echo 命令在 file1.txt 末尾追加一行 "This is a test."。
  2. 命令组合题

    • 使用一条命令,在当前目录下查找所有以 .log 结尾的文件。
    • 使用一条命令,查看 /var/log 目录下所有以 syslog 开头的文件的前 5 行内容。
    • 使用管道 ,列出 /home 目录下所有文件夹(不包括文件)。

第三部分:用户与权限

  1. 操作题

    • 创建一个名为 testuser 的新用户,并为其设置一个密码。
    • 切换到 testuser 用户身份(使用 su - testuser)。
    • testuser 的家目录下创建一个 secret.txt 文件,并写入一些内容。
    • 切换回原来的管理员用户(使用 exit)。
    • 尝试直接读取 testusersecret.txt 文件,你会遇到什么情况?
    • 使用 chown 命令将 secret.txt 的所有者改为当前管理员用户。
    • 尝试读取 secret.txt 文件,是否成功?为什么?
    • 使用 chmod 命令,将 secret.txt 的权限修改为:所有者可读写,其他用户没有任何权限。
  2. 简答题

    • 解释 -rwxr--r-- 这个权限字符串的含义。
    • 为什么在执行 rm -rf / 之前需要非常小心?

第四部分:软件包与进程

  1. 操作题

    • 更新你的系统软件包列表。
    • 安装一个有趣的小工具,neofetch(可以显示系统信息)。
    • 运行 neofetch 命令,看看效果。
    • 使用 ps aux 查找 neofetch 进程的 PID。
    • 使用 kill 命令优雅地终止 neofetch 进程。
    • 卸载 neofetch
  2. 分析题

    • 运行 top 命令,观察哪些进程占用了最多的 CPU 或内存资源?尝试解释它们可能是什么。
    • 如果你有一个正在运行的脚本,你如何在不关闭终端的情况下让它暂停,并在稍后继续运行?

第五部分:进阶主题

  1. Shell 脚本题

    • 编写一个名为 check_disk.sh 的脚本,它可以:
      1. 接收一个目录路径作为参数(./check_disk.sh /home)。
      2. 使用 du 命令计算该目录的总大小。
      3. 如果大小超过 1GB,则输出 "Warning: Disk usage is high!",否则输出 "Disk usage is normal."。
    • 编写一个名为 backup_logs.sh 的脚本,它可以:
      1. /tmp 目录下创建一个以当前日期为名字的文件夹(/tmp/2025-10-27)。
      2. /var/log/syslog 文件复制到这个新创建的文件夹中。
      3. 输出一条消息 "Backup completed!"。
  2. Vim 编辑器题

    • 打开一个名为 notes.txt 的空文件。
    • 进入 Vim 编辑器。
    • 使用命令行模式,设置行号(set number)。
    • 进入插入模式,输入三行笔记。
    • 退出插入模式,使用 dd 命令删除第二行。
    • 保存文件并退出 Vim。

学习建议

  1. 动手实践:Linux 是一门实践性极强的技术,不要只看不练,把每一个命令都亲自在终端里敲一遍。
  2. 多查资料:遇到问题,善用 man 命令(man ls)查看命令手册,以及利用搜索引擎(Google, Bing)和官方文档。
  3. 不怕犯错:在虚拟机里练习,即使搞坏了系统也可以随时恢复,错误是最好的老师。
  4. 从命令行开始:虽然图形界面很友好,但真正掌握 Linux 的捷径是熟练使用命令行。
  5. 坚持学习:循序渐进,不要期望一天之内掌握所有内容,每天坚持学习一点,积少成多。

祝您学习愉快,早日成为 Linux 高手!

分享:
扫描分享到社交APP
上一篇
下一篇