零基础Linux快速上手03
好的,各位同学,欢迎来到《零基础Linux快速上手》第三章节!
在前两章中,我们已经掌握了Linux的基础操作和核心工具。现在,我们要向"系统管理员"的方向迈进。本章将学习如何安装和管理软件、管理系统磁盘和存储、理解用户和权限的深层原理,以及实现自动化任务。
这些技能将让你从一个普通用户成长为能够真正"驾驭"系统的Linux使用者。
实验十:软件包管理——使用APT管理软件
实验目标: 掌握Ubuntu下最强大的软件管理工具APT,学会查找、安装、更新和卸载软件包。
场景: 你需要安装一个开发工具(如Python3)、一个系统监控工具,并保持系统更新。
关键命令:
sudo apt update:更新软件包列表(从服务器获取最新信息)sudo apt upgrade:升级所有可升级的软件包sudo apt install <package>:安装软件包sudo apt remove <package>:卸载软件包(保留配置文件)sudo apt purge <package>:完全卸载软件包(包括配置文件)apt search <keyword>:搜索软件包apt show <package>:显示软件包详细信息sudo apt autoremove:自动删除不再需要的依赖包
实验步骤与答案:
更新软件源列表
sudo apt update
解析: 这不会更新任何软件,只是让系统知道现在有哪些软件的最新版本可用。
升级已安装的软件包
sudo apt upgrade
解析: 这会实际下载并安装所有可用的更新。系统会列出将要升级的软件包,输入
y确认。搜索软件包 搜索与Python3相关的软件包。
apt search python3
安装Python3
sudo apt install python3
验证: 安装完成后,输入
python3 --version查看版本信息。安装一个图形化系统监控工具
sudo apt install htop
验证: 安装完成后,输入
htop运行,你会看到一个比top更友好的系统监控界面。查看软件包信息
apt show htop
卸载软件包(保留配置)
sudo apt remove htop
完全清除软件包
sudo apt purge htop
清理系统
sudo apt autoremove
解析: 这会删除那些因为其他软件依赖而自动安装,但现在不再被任何软件需要的"孤儿"包。
实验十一:磁盘存储管理——查看和使用磁盘空间
实验目标: 学会查看磁盘使用情况、挂载外部存储设备,以及查找大文件。
场景: 系统提示磁盘空间不足,你需要找出是哪些文件占用了大量空间,并学会挂载U盘。
关键命令:
df -h:查看磁盘空间使用情况(人类可读格式)du -sh <directory>:查看目录总大小du -h --max-depth=1:查看当前目录下一级子目录的大小find <path> -size +100M:查找大于100M的文件mount/umount:挂载和卸载文件系统lsblk:列出所有块设备(磁盘和分区)
实验步骤与答案:
查看磁盘整体使用情况
df -h
解析: 注意观察
/根分区的使用率,这是系统最重要的分区。找出家目录下哪个文件夹最大
cd ~
du -h --max-depth=1 | sort -hr解析:
du -h --max-depth=1显示一级子目录的大小sort -hr按人类可读的数字逆序排序(最大的在最上面)
在整个系统中查找大文件(需要sudo权限)
sudo find / -type f -size +100M 2>/dev/null
解析:
/表示从根目录开始搜索-type f只搜索文件-size +100M大小超过100MB2>/dev/null将错误信息(如权限不足)重定向到空设备,使输出更清晰
挂载U盘或外部存储
插入U盘
查看设备标识:
lsblk
解析: 你会看到类似
sdb1的设备,这就是你的U盘。创建挂载点:
sudo mkdir /mnt/myusb
挂载设备:
sudo mount /dev/sdb1 /mnt/myusb
查看U盘内容:
ls /mnt/myusb
卸载U盘
sudo umount /mnt/myusb
重要: 在拔出U盘前必须卸载!
实验十二:用户、组和权限深度解析
实验目标: 深入理解用户、组和权限的关系,学会管理用户和组,并理解特殊权限。
场景: 你需要为新的团队成员创建账户,并设置适当的文件共享权限。
关键命令:
sudo adduser <username>:创建新用户sudo deluser <username>:删除用户sudo usermod -aG <group> <username>:将用户添加到组groups <username>:查看用户所属的组id <username>:显示用户ID和组信息chown:改变文件所有者chgrp:改变文件所属组
实验步骤与答案:
创建新用户
sudo adduser alice
解析: 按照提示设置密码和用户信息。
创建共享组
sudo addgroup project_team
将用户添加到组
sudo usermod -aG project_team alice
解析:
-aG选项表示"追加到组",如果不加-a会覆盖用户原有的组设置。验证用户组信息
groups alice
id alice创建共享目录并设置权限
sudo mkdir /shared
sudo chown root:project_team /shared
sudo chmod 2775 /shared解析:
chown root:project_team:所有者设为root,所属组设为project_teamchmod 2775:2:设置setgid位,在此目录下创建的文件会自动继承目录的组7:所有者有rwx权限7:所属组有rwx权限5:其他用户有r-x权限
测试共享目录
切换到alice用户:
sudo su - alice
在共享目录创建文件:
touch /shared/test_from_alice.txt
查看文件权限:
ls -l /shared/test_from_alice.txt
观察: 文件的所属组自动变成了
project_team,这就是setgid位的作用。
退出alice用户
exit
实验十三:计划任务与系统服务——自动化管理
实验目标: 学会使用cron设置定时任务,并管理系统的后台服务。
场景: 你需要设置每天自动备份重要文件,并学会管理Web服务器等系统服务。
关键命令:
crontab -e:编辑当前用户的计划任务crontab -l:列出当前用户的计划任务systemctl status <service>:查看服务状态systemctl start/stop/restart <service>:启动/停止/重启服务systemctl enable/disable <service>:设置服务开机自启/禁用
实验步骤与答案:
编辑计划任务
crontab -e
解析: 首次使用会让你选择编辑器,推荐选择
nano(比较简单)。添加一个简单的定时任务 在打开的文件末尾添加:
# 每天凌晨2点清理临时文件
0 2 * * * rm -rf /tmp/*
# 每分钟向日志文件写入当前时间(用于测试)
* * * * * echo "Cron is working at $(date)" >> ~/cron_test.logcron时间格式:
* * * * * 要执行的命令
│ │ │ │ │
│ │ │ │ └── 星期几 (0 - 6) (0表示周日)
│ │ │ └──── 月份 (1 - 12)
│ │ └────── 日 (1 - 31)
│ └──────── 小时 (0 - 23)
└────────── 分钟 (0 - 59)查看计划任务
crontab -l
等待一分钟,验证测试任务
tail -f ~/cron_test.log
解析: 你应该会看到每分钟新增一行时间记录。按
Ctrl+C退出跟踪。管理系统服务 查看Apache Web服务器状态(如果未安装,可以先
sudo apt install apache2):systemctl status apache2
停止和启动服务
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl restart apache2 # 重启服务设置服务开机自启
sudo systemctl enable apache2
sudo systemctl disable apache2 # 禁用开机自启
实验十四:日志分析——读懂系统的故事
实验目标: 学会查看和分析系统日志,用于故障排查和安全审计。
场景: 系统出现异常,你需要查看相关日志来诊断问题。
关键命令:
journalctl:查看systemd日志tail -f /var/log/syslog:实时跟踪系统日志grep:在日志中搜索关键信息less:分页查看日志文件
实验步骤与答案:
查看最近的系统日志
journalctl -e
解析:
-e选项直接跳转到日志末尾。查看指定服务的日志
journalctl -u apache2
实时监控系统日志
sudo tail -f /var/log/syslog
解析: 打开另一个终端执行一些操作(如插入U盘),观察日志的变化。
在系统日志中搜索SSH相关记录
grep ssh /var/log/syslog | tail -20
解析: 查看最近20条SSH相关的日志记录。
查看认证日志
sudo tail -f /var/log/auth.log
解析: 这个日志记录了所有用户认证(登录、sudo等)相关信息。
本章总结
在第三章节中,你已经掌握了Linux系统管理的核心技能:
软件包管理:使用APT生态系统安装、更新和管理软件。
磁盘存储管理:监控磁盘使用、查找大文件、挂载外部设备。
用户与权限管理:深入理解用户、组和权限模型,实现安全的文件共享。
自动化任务:使用cron设置计划任务,使用systemctl管理系统服务。
日志分析:查看和分析系统日志,用于故障诊断。
这些技能让你能够真正地"管理"一个Linux系统,而不仅仅是"使用"它。
作业:
安装并配置nginx Web服务器,设置其开机自启。
创建一个新用户bob,并为其设置一个每天凌晨3点执行的备份任务。
找出系统中占用空间最大的前10个文件,并分析是否可以安全删除。
创建一个共享目录,使得project_team组的所有成员都能在其中读写文件,但这些文件对其他用户不可见。
下一章我们将探索网络配置、防火墙和更高级的系统调试技巧。继续保持学习的热情!
零基础Linux快速上手03的更多相关文章
- 【零基础】快速入门爬虫框架HtmlUnit
迅速的HtmlUnit htmlunit是一款开源的web页面分析工具,理论上来说htmlunit应用于网页的自动化测试,但是相对来说更多人使用它来进行小型爬虫的快速开发.使用htmlunit进行爬虫 ...
- “零基础”如何快速掌握web前端核心技术?
前端开发要学的知识内容涉及的会很宽泛,虽然说主要是HTML.CSS和JavaScript这些基础知识点,今天想强调一下,学前端开发除了要学这些基础知识外,学员还要在这之上进行延伸和深入的去学,而且互联 ...
- Java秘诀!零基础怎样快速学习Java?
对于零基础想学Java的朋友,其实一开始最应该做的就是定好学习目标和端正学习态度,切记不要三天打鱼两天晒网! 首先你是零基础,现在急需把Java学好,在保证学习质量的同时,用最短的时间学好Java应该 ...
- 零基础Linux入门学习方法--如何做好笔记及长效知识复习记忆
“工欲善其事必先利其器”. 此次学习的0基础教材为刘遄(Liu Chuán)老师的<Linux就该这么学>.学习目的是通过RHCE认证.有关RHCE认证介绍会在认识Linux及红帽认证中记 ...
- Linux快速上手
1.Linux系统架构 内核(kernel) 内存管理(mm) Linux内存特性无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Lin ...
- php编程零基础如何快速入门。门头沟编程
昨天遇到一个人,说知道thinktphp,不过几年前的事了. 我先跟他讲了下,xyhcms后台功能,各个版块,以及数据库都介绍了一下. 跟他说了一个功能现场实现,说了实现方法. 然后上机操作,发现他表 ...
- 零基础Linux入门之《Linux就该这么学》
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...
- 零基础如何快速学习好Python网络爬虫?
Python网络爬虫上手很快,能够尽早入门,可是想精通确实是需求些时间,需求达到爬虫工程师的级别更是需求煞费苦心了,接下来共享的学习道路是针对小白或许学习Python网络爬虫不久的同伴们. 学习网络爬 ...
- C#零基础小白快速入门
前言 本文写给想学C#的朋友,目的是以尽快的速度入门 C#好学吗? 对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学. 反而学Java还要容易一些,学Jav ...
- 【Net跨平台第一步】逆天带你零基础Linux入门【更新完毕】
部分讲义:(视频已删,后期以文档形式发布)
随机推荐
- flink 1.11.2 学习笔记(2)-Source/Transform/Sink
一.flink处理的主要过程 从上一节wordcount的示例可以看到,flink的处理过程分为下面3个步骤: 1.1 .添加数据源addSource,这里的数据源可以是文件,网络数据流,MQ,Mys ...
- c#农历开源库
https://6tail.cn/calendar/api.html 非常牛逼 Unity将当前时间转为天干地支 using System; using Lunar; using UnityEngin ...
- Atcoder Beginner Contest 271
前言 一场掉分的 ABC /kk 在花了 \(10\) 分钟看完前 \(4\) 题后,选择了赛场上大部分人使用的:先开 D,再按顺序做 A.B.C.(打题的时候才发现应该先开 C 的 QwQ) 但却因 ...
- git-下载
1.从https://gitforwindows.org/下载最新的或者这里https://git-scm.com/
- 洛谷 P6478 [NOI Online #2 提高组] 游戏 题解
前言: 这道题涉及到了很多有意思的部分,所以我会较为详细的写一篇题解. 题意: 给定一棵点数为 \(n=2m\) 的有根树,每个点有 \(0,1\) 两种边权. 现在要依次为每一个权为 \(0\) 的 ...
- 最新版uni-app+vue3+uv-ui跨三端仿微信app聊天应用【h5+小程序+app端】
最新研发Uniapp+Vue3+Pinia2+uvui实战跨端仿微信App界面聊天程序. uni-vue3-wechat:基于uniapp+vue3从0-1实战搭建仿微信app界面聊天模板.包含聊天. ...
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 03
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 03 项目地址: Github:https://github.com/China-Rainbow-s ...
- RPC的三大问题:跨语言、跨平台通信的终极解决方案是如何炼成的?
服务间通信的效率与可靠性是系统性能和稳定性的关键.远程过程调用(RPC)作为跨进程.跨机器交互的核心机制,其传输协议的设计至关重要.一个优秀的RPC传输协议需要应对三大挑战:1)跨语言.跨平台的数据表 ...
- Qt中创建控制台程序(cmd窗口)
#include <QCoreApplication> #include <iostream> int main(int argc, char *argv[]) { QCore ...
- transformers库的使用【一】——pipeline的简单使用
transformers库的使用使用pipeline API来快速使用一些预训练模型 使用预训练模型最简单的方法就是使用pipeline(),transformers提供了一些任务: 1.情感分析(S ...