【Linux操作系统】探秘Linux奥秘:进程与任务管理的解密与实战

🌈个人主页:Sarapines Programmer
🔥 系列专栏:《操作系统实验室》
🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。

目录

🪐1 初识Linux OS

🪐2 进程与任务管理的解密与实战

🌍1. 实验目的

🌍2. 实验准备

🌍3. 实验内容

🌍4. 实验心得

📝总结


🪐1 初识Linux OS

Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。

以下是Linux操作系统的一些主要特点和组成部分:

  1. 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。

  2. Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。

  3. 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。

  4. 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。

  5. 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。

  6. 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。

  7. 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。

  8. 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。

  9. 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。

  10. 发行版(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. 实验心得

  1. 身份切换与权限管理 通过实验,我学会了在特定情境下以不同身份(如root、其他用户)运行命令的方法。深入理解了SUID(Set User ID)、SGID(Set Group ID)以及Sticky权限的概念。SUID和SGID的应用使得文件在执行时能够获取文件自身的属主和属组权限,而不是执行者的权限。另外,Sticky权限的应用于公共目录,实现了对文件的保护,限制了用户对其他人文件的删除操作。

  2. 定时任务与任务调度 在实验中,我熟悉了常见的进程管理指令,并深入了解了定时任务的设置。通过使用crontab -e命令,我了解到root用户未设置定时任务时系统会显示“no crontab for root - using an empty one”提示。解决方法是选择合适的编辑器(如vim),并保存退出以创建或编辑定时任务。这使我更好地掌握了任务调度的实际操作。

  3. 技巧性操作与问题解决 在实验中,我学到了一些技巧性的操作,如使用ctrl+c无法退出时,选择vim编辑器后的正确退出方式(q退出,wq保存退出)。这种细致入微的操作技巧在实际应用中能够提高效率,确保任务顺利完成。同时,遇到问题时的解决思路也更加清晰,为系统管理和维护提供了有力的支持。


📝总结

Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。

渴望挑战Linux操作系统的学习路径和掌握系统管理技术?不妨点击下方链接,一同探讨更多Linux操作系统的奇迹吧。我们推出了引领趋势的💻 Linux专栏:《探秘Linux | 操作系统解密》,旨在深度探索Linux的实际应用和创新。🌐🔍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4462 4.曙曙献爱心

#include<bits/stdc.h> using namespace std; int n,m,k; int a[1001]; int s[1001]; int f[1001][1001];//f[i][j]&#xff0c;i个警察&#xff0c;j个点&#xff0c;能管理的最大人数 int main(){cin>>n>>m>>k;for(int i1;i<n;i){cin>>a[i…

大数据StarRocks(一) StarRocks概述

1 StarRocks介绍 StarRocks是新一代极速全场景MPP(Massively Parallel Processing)数据库&#xff0c;它充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果&#xff0c;在业界实践的基础上&#xff0c;进一步改进优化、升级架构&#xff0c;并增添了众多全…

Java学习,一文掌握Java之SpringBoot框架学习文集(2)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

Docker 安装Mysql

目录 Docker Mysql安装 ✨安装和配置mysql ✨远程连接mysql远程连接 MySQL 是世界上最流行的开源数据库。根据 DB-Engines的调查数据&#xff0c;MySQL 是第二受欢迎的数据库&#xff0c;仅次于 Oracle 数据库。MySQL在过去由于性能高、成本低、可靠性好&#xff0c;已经成…

Redis缓存保卫战:拒绝缓存击穿的进攻【redis问题 三】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Redis缓存保卫战&#xff1a;拒绝缓存击穿的进攻 前言缓存击穿的定义和原理为何会发生缓存击穿缓存击穿的危害防范缓存击穿结语: 前言 你是否曾经遇到过系统在高并发情况下出现严重性能问题&#xff…

云卷云舒:基于业务逻辑关联度实现数据预加载

云卷云舒&#xff1a;算力网络云原生&#xff08;下&#xff09;&#xff1a;云数据库发展的新篇章-CSDN博客 一、现有技术的技术方案 在实现一个具有复杂业务逻辑的应用系统时&#xff0c;大多数情况下&#xff0c;编码过程中必定会包含着较多的数据访问方法&#xff08;java…

MES是什么?有了MES还要上ERP或MES吗?

MES是什么 MES是Manufacturing Execution System&#xff08;制造执行系统&#xff09;的简称&#xff0c;是一套面向制造企业车间执行层的生产信息化管理系统&#xff0c;负责承接ERP系统下达的生产计划&#xff0c;与ERP关系密切。MES能通过信息传递&#xff0c;做到生产追溯…

亚马逊、速卖通等跨境平台如何利用自养号测评提升销量

一、自然排名&#xff1a;链接成功的关键 自然排名的重要性不言而喻。一个链接的成功与否&#xff0c;关键在于其自然排名是否能够打上来。无论是搜索流量还是关联流量的自然排名&#xff0c;亦或是BSR排行榜&#xff0c;都应时刻关注这些自然排名的变化。 二、自然排名的位置…

Unity 2022 版本 寻路 NavMesh

官方教程地址 https://docs.unity3d.com/Packages/com.unity.ai.navigation1.1/manual/index.html 首先装包 先给地图 和 阻挡 设置为静态 然后给地上行走的地方 添加组件 可以直接bake 然后会显示蓝色的可行走路径 player 添加插件 然后给角色添加脚本 using System.Co…

Keil调试STM32卡死在文件startup_stm32f10x_hd.s的B处

———————Keil调试卡死——————— &#x1f384;问题说明 在移植代码完成后调试时候程序卡死在startup_stm32f10x_hd.s文件的B处 &#x1f384;复现场景 &#x1f384;解决办法 经过查资料&#xff0c;发现是移植的时候&#xff0c;漏掉了终端函数&#xff0c;加上…

MySQL的安装网络配置

目录 一. MySQL5.7的安装 二. MySQL8.0的安装 三. 配置网络访问 思维导图 一. MySQL5.7的安装 1. 解压 2. 将my.ini文件放入到解压文件中 3. 编辑my.ini文件&#xff0c;将路径改为当前路径 4. 进到bin目录下&#xff0c;以管理员身份打开cmd命令窗口 5. 安装MySQL服务 my…

kbdnecat.DLL文件缺失,软件或游戏无法启动运营,快速修复方法

“kbdnecat.DLL文件是什么&#xff1f;为什么一起动游戏或软件&#xff0c;Windows就报错“kbdnecat.DLL文件缺失&#xff0c;软件无法启动””&#xff0c;应该怎么修复呢&#xff1f; 首先&#xff0c;先来了解“kbdnecat.DLL文件”是什么&#xff1f; kbdnecat.DLL是一个动…

Vue中全局事件总线的配置和原理

实现任意组件之间的通信 任意组件通信的原理&#xff1a; 1、实现任意组件之间的通信,需要一个傀儡。这个傀儡既能被vm访问到,也能被VueComponent访问。 2、VueComponent.prototype.proto Vue.prototype为图上1.0黄色的线路。是Vue让组件实例对象VueComponent可以访问到Vue原…

HCIA-Datacom题库(自己整理分类的)——其他网络协议【完】

&#xff08;一&#xff09;单选 下列属于链路状态协议的是? Direct static FTP OSPF 解析&#xff1a; FTP&#xff1a;文件传输协议 OSPF&#xff1a;链路状态路由协议 如下图所示的网络主机A通过Telnet登录到路由器A然后在远程的界面通过FTP获取路由器的配置文件&…

学习调整echarts中toolbox位置toolBox工具栏属性

学习调整echarts中toolbox位置toolBox工具栏属性 toolbox工具栏属性介绍示例代码代码参数说明 toolbox工具栏属性介绍 参考网址&#xff1a;https://echarts.apache.org/zh/option.html#tooltip 属性类型说明toolbox.showbooleanboolean 默认值为true&#xff0c;是否显示工具…

studio3T mongodb 根据查询条件去更新集合

mongodb 等于、不等于$ne、不包含 $nin 以及批量更新数据的使用。 业务场景&#xff1a; 在集合中&#xff0c;根据查询条件&#xff0c;更新数据状态。 实现代码&#xff1a; 1. 部门名称为XXX、状态不等于“完好”的、并且不包含这些编码的数据先查询出来2. 再把状态更新成…

This is probably not a problem with npm.

项目场景&#xff1a; 新创建的vue3项目&#xff0c;根据elementplus官网安装步骤进行按需导入安装&#xff0c;运行项目报错 This is probably not a problem with npm.There is likely additional logging output above. 原因分析&#xff1a; 是elementplus安装版本和自动…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑(1)

接前一篇文章&#xff1a;玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载&#xff08;2&#xff09; 本文主要参考&#xff1a; BQ3588C_代码下载 上一回完成了代码下载&#xff0c;本回开始进行编译构建。 1. 编译构建 &#xff08;1&#xff09;执行prebuilts 在源…

JavaScript可选链接

注&#xff1a;本节仍然使用之前的饭店的对象&#xff0c;可以看上几篇文章查看代码 ● 如果我们想要看看饭店周一的开门时间&#xff0c;我们会这么写 console.log(restaurant.openingHours.mon.open);原因是我们在开放时间中并没有定义周一的开放时间&#xff0c;所有会报错…

2024年工作计划与目标怎么写?如何用手机制作工作待办清单

2024年的钟声已经到来&#xff0c;对于上班族来说&#xff0c;制定一份切实可行的工作计划与目标是非常有必要的。但是&#xff0c;很多人不知道2024年工作计划与目标怎么写&#xff1f;其实&#xff0c;关键在于明确目标、细化计划、合理安排时间&#xff0c;以确保每一步都稳…