一、学习目标
- 掌握 Linux 软件包管理(安装、更新、卸载软件,以 Ubuntu 的
apt
为例)。 - 学会查看和分析系统日志文件(排查问题的核心技能)。
- 理解计划任务
crontab
的基本用法,能创建简单的定时任务。
二、学习内容
(一)软件包管理(apt
命令,2 小时)
Linux 系统中安装软件主要通过 “包管理工具”,Ubuntu/Debian 系统常用apt
(Advanced Package Tool),类似手机的 “应用商店”,但通过命令操作。
1. apt
基础命令(必须掌握)
-
更新软件源列表(获取最新的软件版本信息,每次安装软件前建议先执行):
sudo apt update
- 解释:
sudo
获取管理员权限,apt update
从官方服务器同步软件列表(不实际更新软件)。
- 解释:
-
升级已安装的软件(更新所有已安装的软件到最新版本):
sudo apt upgrade
- 操作:执行后会显示需要升级的软件列表,输入
y
并回车开始升级(耗时可能较长,取决于网络和软件数量)。
- 操作:执行后会显示需要升级的软件列表,输入
-
安装软件:
sudo apt install 软件名
示例:安装文本编辑器gedit
(图形化编辑器,比vim
简单):sudo apt install gedit
- 验证:安装后输入
gedit
,会打开图形化编辑器窗口。
- 验证:安装后输入
-
卸载软件(保留配置文件):
sudo apt remove 软件名
示例:卸载gedit
:sudo apt remove gedit
-
彻底卸载软件(删除配置文件):
sudo apt purge 软件名
示例:彻底卸载gedit
:sudo apt purge gedit
-
搜索软件:
apt search 关键词
示例:搜索包含 “editor” 的编辑器软件:apt search editor
2. 实用补充命令
-
查看已安装的软件:
dpkg -l | grep 软件名
(dpkg
是apt
的底层工具)
示例:查看是否安装了nginx
(一款网页服务器):dpkg -l | grep nginx
-
清理无用的安装包(删除下载的安装缓存,释放磁盘空间):
sudo apt autoremove # 删除不再需要的依赖包 sudo apt clean # 清理下载的安装包缓存
(二)系统日志查看(2 小时)
系统日志是 Linux “日记”,记录了系统运行、软件启动、错误等所有重要信息,排查问题(如软件崩溃、登录失败)必须看日志。
1. 日志文件存放位置
所有日志默认存放在 /var/log/
目录下,核心日志文件:
syslog
:系统通用日志(大部分系统事件,如服务启动 / 停止、硬件错误)。auth.log
:安全日志(用户登录、sudo
操作、SSH 连接等,重点关注)。dmesg
:内核日志(开机时硬件初始化信息,如硬盘、网卡识别情况)。
2. 查看日志的常用命令
-
实时查看日志(最常用,适合监控正在发生的事件):
tail -f /var/log/syslog
- 解释:
tail -f
实时跟踪文件新增内容,按Ctrl+C
退出。 - 示例:执行后,在另一个终端操作(如安装软件),会看到
syslog
实时记录事件。
- 解释:
-
查看日志最后 N 行(快速定位最新记录):
tail -n 20 /var/log/auth.log # 查看auth.log最后20行
-
搜索日志中的关键词(比如找 “错误” 或 “登录失败”):
grep "Failed password" /var/log/auth.log # 搜索登录失败记录(安全相关)
-
按时间筛选日志(配合
grep
,假设日志中有 “Jul 08” 这样的日期):grep "Jul 08" /var/log/syslog # 查看7月8日的系统日志
(三)计划任务(crontab
,2 小时)
crontab
用于定时执行命令(比如每天凌晨备份文件、每小时清理日志),类似手机的 “闹钟提醒”,但触发的是命令操作。
1. crontab
基本格式
定时任务的格式为:
* * * * * 要执行的命令
五个*
分别代表:分 时 日 月 周(范围:分 0-59,时 0-23,日 1-31,月 1-12,周 0-6(0 = 周日))。
- 常用符号:
*
:任意值(如 “分” 位为*
表示每分钟);*/n
:每隔 n 单位(如 “分” 位*/10
表示每 10 分钟);a-b
:范围(如 “时” 位9-18
表示 9 点到 18 点)。
2. crontab
操作命令
-
编辑当前用户的计划任务:
crontab -e
- 首次执行会提示选择编辑器,推荐选
nano
(输入数字 2,按回车,小白友好)。
- 首次执行会提示选择编辑器,推荐选
-
查看当前用户的计划任务:
crontab -l
-
删除当前用户的所有计划任务(慎用):
crontab -r
三、实践操作(超详细步骤)
(一)软件包管理实践(apt
命令)
步骤 1:更新软件源并升级软件
-
打开终端,输入:
sudo apt update
输入密码(不显示),回车,等待同步完成(显示 “所有软件包均为最新” 即可)。
-
升级已安装软件(可选,耗时可能较长):
sudo apt upgrade
提示 “是否继续?[Y/n]” 时,输入
y
回车,等待升级完成(若提示磁盘空间不足,可跳过,不影响后续操作)。
步骤 2:安装并卸载一款软件(以nginx
为例,网页服务器)
-
安装
nginx
:sudo apt install nginx
输入
y
确认,等待安装完成(看到 “设置 nginx (1.18.0-6ubuntu14.4) ...” 表示成功)。 -
验证安装:
nginx -v # 查看版本
显示 “nginx version: nginx/1.18.0” 表示安装成功。
-
卸载
nginx
(保留配置文件):sudo apt remove nginx
(二)系统日志查看实践
步骤 1:实时监控auth.log
(记录登录行为)
-
终端输入:
tail -f /var/log/auth.log
-
打开新的终端窗口,执行
sudo ls
(模拟管理员操作),输入密码后回车。 -
回到第一个终端,会看到
auth.log
实时记录:sudo: 你的用户名 : TTY=pts/1 ; PWD=/home/你的用户名 ; USER=root ; COMMAND=/usr/bin/ls
(表示sudo
操作被记录)。 -
按
Ctrl+C
退出实时监控。
步骤 2:搜索登录失败记录
- 终端输入:
grep "Failed" /var/log/auth.log
- 若有输出,可能是有人尝试登录你的系统(虚拟机环境一般没有,忽略即可);若无输出,说明近期无失败登录。
(三)计划任务crontab
实践(创建定时任务)
步骤 1:创建 “每分钟向文件写一句话” 的任务
-
终端输入
crontab -e
,首次使用会提示选择编辑器,按2
选择nano
(回车确认)。 -
在打开的文件末尾添加一行(注意格式,五个
*
代表每分钟):* * * * * echo "当前时间: $(date)" >> ~/linux_study/cron_test.txt
- 解释:
echo "..."
输出内容,>>
追加到cron_test.txt
,$(date)
显示当前时间。
- 解释:
-
保存退出:按
Ctrl+O
(保存),回车确认文件名,再按Ctrl+X
退出nano
。
步骤 2:验证定时任务是否执行
- 等待 1-2 分钟(任务每分钟执行一次),终端输入:
cat ~/linux_study/cron_test.txt
- 预期结果:显示类似 “当前时间: 2025 年 07 月 08 日 星期二 15:30:01 CST” 的内容,且每分钟新增一行。
步骤 3:删除定时任务(避免一直写入文件)
- 终端输入
crontab -e
,删除刚才添加的那一行,保存退出(Ctrl+O
→回车→Ctrl+X
)。 - 验证:
crontab -l
显示 “no crontab for 你的用户名” 表示任务已删除。
(四)记录学习笔记
创建day5_note.txt
,记录今天的操作心得(如 “apt install
安装软件很方便”“auth.log
能看到登录记录”):
nano ~/linux_study/day5_note.txt # 编辑后按Ctrl+O保存,Ctrl+X退出