【Linux操作系统】探秘Linux奥秘:进程与任务管理的解密与实战
🌈个人主页:Sarapines Programmer
🔥?系列专栏:《操作系统实验室》
🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。
目录
🪐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操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。
渴望挑战Linux操作系统的学习路径和掌握系统管理技术?不妨点击下方链接,一同探讨更多Linux操作系统的奇迹吧。我们推出了引领趋势的💻 Linux专栏:《探秘Linux | 操作系统解密》,旨在深度探索Linux的实际应用和创新。🌐🔍
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!