🪐1 初识Linux OS
Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。
以下是Linux操作系统的一些主要特点和组成部分:
- 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。
- Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。
- 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。
- 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。
- 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。
- 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。
- 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。
- 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。
- 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。
- 发行版(Distribution): 由于Linux内核是开源的,不同的组织和社区创建了各种Linux发行版,例如Ubuntu、Debian、Fedora、CentOS、Arch Linux等。每个发行版都有自己的特点和包管理系统。
总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。
🪐2 进程与任务管理的解密与实战
🌍1. 实验目的
- 掌握常用进程管理指令。
- 熟悉定时任务的设置。
- 熟悉任务调度的操作。
🌍2. 实验准备
- 获取 Linux 镜像 文件:下载适用于虚拟机的 Linux 镜像文件,比如 Ubuntu 21.04,从 Ubuntu 官方网站 获取。
- 安装虚拟化软件:安装 VMware Workstation 或 Virtualbox,两者提供简便的虚拟机管理和配置。
- 创建 Linux 虚拟机:打开虚拟化软件,按照指引创建新虚拟机。设置内存为 2GB 或更多,其余选项选择默 认值。加载下载好的 Linux 系统 ISO 镜像文件,启动虚拟机完成 Linux 系统安装。
🌍3. 实验内容
1. 进程管理
(1)练习进程状态查询命令ps.
ps的功能是显示进程的状态和信息,给出系统当前正在运行进程信息的快照。ps支持多种UNIX系统格式的个性化显示方式,其用法为:ps [options].
#长格式显示所有进程的信息
$ ps -el
#带命令行参数显示系统中的所有进程信息,并分屏显示
$ ps -Af | more
#查询与终端tty1相关的进程信息
$ ps -t /dev/tty1 #查询与用户(gjshao)相关的信息
以及$ ps -f -u gjshao #查询整个系统内的进程信息情况
$ ps -axj
(2)练习进程管理命令systemctl、killall、pgrep/pkill、fuser、nice.
a. systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能并发启动更多进程。systemd对应的进程管理命令是systemctl.
systemctl list-unit-files #列出所用可用单元
systemctl list-units #列出所有运行中的单元
systemctl is-enabled crond.service #检查某个单元是否启用
systemctl list-unit-files ?Ctype=service # 列出所有服务
b. 按名称向进程发信号或终止进程的执行(killall).
c.根据进程名等属性查找进程和发送信号(pgrep/pkill).
d.确定使用指定文件或文件系统的进程(fuser).
e.设置进程的优先级(nice).
(3)练习可执行文件的特殊属性操作
1)新建文件
2)查看文件权限
3)设置、修改、查看文件特殊权限suid、sgid及sticky
新建文件、查看文件以及设置、修改、查看文件特殊权限suid
设置、修改、查看文件特殊权限sgid
设置、修改、查看文件特殊权限sticky
2. 任务管理
(1)利用at命令完成定时任务设置、查看并删除任务
使用at -V查看at版本,发现本地未部署因此我们使用apt install at进行安装。
(2)利用 crontab完成任务调度设置:每隔1分钟,将当前日期和日历追加到/home/mycal文件中。
步骤:
1)vim /home/my.sh,写入命令
2) 给my.sh增加执行权限
3)crontab -e ,增加任务
4)列出当前定时任务
5)删除定时任务
🌍4. 实验心得
- 身份切换与权限管理 通过实验,我学会了在特定情境下以不同身份(如root、其他用户)运行命令的方法。深入理解了SUID(Set User ID)、SGID(Set Group ID)以及Sticky权限的概念。SUID和SGID的应用使得文件在执行时能够获取文件自身的属主和属组权限,而不是执行者的权限。另外,Sticky权限的应用于公共目录,实现了对文件的保护,限制了用户对其他人文件的删除操作。
- 定时任务与任务调度 在实验中,我熟悉了常见的进程管理指令,并深入了解了定时任务的设置。通过使用crontab -e命令,我了解到root用户未设置定时任务时系统会显示“no crontab for root - using an empty one”提示。解决方法是选择合适的编辑器(如vim),并保存退出以创建或编辑定时任务。这使我更好地掌握了任务调度的实际操作。
- 技巧性操作与问题解决 在实验中,我学到了一些技巧性的操作,如使用ctrl+c无法退出时,选择vim编辑器后的正确退出方式(q退出,wq保存退出)。这种细致入微的操作技巧在实际应用中能够提高效率,确保任务顺利完成。同时,遇到问题时的解决思路也更加清晰,为系统管理和维护提供了有力的支持。
📝总结
Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。