【Linux操作系统】探秘Linux奥秘:Linux 操作系统的解密与实战

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

目录

🪐1 初识Linux OS

🪐2. Linux 操作系统的解密与实战

🌍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. Linux 操作系统的解密与实战

🌍1. 实验目的

  • 掌握 shell 的基本功能和概念。

  • 熟悉 Linux 系统的基本操作。

  • 实现 Linux 系统的基本管理。


🌍2. 实验准备

  •  获取 L inux 镜像文件:下载适用于虚拟机的 Linux 镜像文件,比如 Ubuntu 21.04,从 Ubuntu 官方网站 获取。

  • 安装虚拟化软件:安装 VMware Workstation 或 Virtualbox,两者提供简便的虚拟机管理和配置。

  • 创建 Linux 虚拟机:打开虚拟化软件,按照指引创建新虚拟机。设置内存为 2GB 或更多,其余选项选择默认值。加载下载好的 Linux 系统 ISO 镜像文件,启动虚拟机完成 Linux 系统安装。  


🌍3. 实验内容

(1)在UNIX/Linux系统中,用户登录到系统后,可以看到一个shell提示符(#或$)。用户可以在提示符后面输入任何命令及参数如

$date        #以默认方式显示日期和时间

$date -u        #传统UNIX风格选项

$date --utc     #GNU风格选项

$ls -l /etc/passwd #默认式或-u。传统UNIX风格

$ls -l -n /etc/passwd #传统UNIX风格选项

$ls -l --numeric-uid-gid /etc/passwd #混合使用

$ls -ln --time-style=iso /etc/passwd #同上

(2)Bash,为每个用户在~/.bash_history文件内预设了1000条记录的历史,并为每条记录一个编号,使用history [num]命令查询历史记录。

history 20

而使用history则可以输出所有的指令记录。

history

(3)单击“继续”按钮,选择“正常安装”和“安装 Ubuntu 时下载更新”。若要重新执行某条历史记录的命令则可以使用格式: $ !记录编号

(4)指把命令的标准输出保存到文件中。有两种方式:覆盖方式(>)和追加方式(>>)。例如:

$ ls > mylist.txt      #覆盖方式

$ ls /usr >> mylist.txt    #追加方式

  

(5)标准输入重定向指让命令的标准输入从指定的文件中读取,也就是说,输入不来自键盘,而来自一个指定的文件。

$ wc /etc/passwd    #统计/etc/passwd的信息。

$ wc < /etc/passwd #标准输入定向到/etc/passwd

$ wc < /etc/passwd >> usercount   #标准输入重定向/etc/passwd,标准输出重定向到文件usercount

$ wc     #交互方式,从键盘数据,按^D结束

(6)实现管道机制的符号是“|”,其方法为:

     cmd1 | cmd2 | … | cmdn

例如:

$ ls -l /dev | wc -l  

$ cat /etc/passwd | grep "root:"|wc -l

  

(7)tee命令读取标准输入,并将其内容同时写到标准输出和指定文件,其用法为:tee [-ai] [files].#将当月日历表显示到屏幕的同时也保存到文件calendar中

$ cal | tee calendar   #将根目录短式列表显示到屏幕上的同时也保存到文件f1和f2中

$ ls / | tee f1 f2

(8)单击“继续”按钮,进入正式的安装界面,安装过程中需要在线下载

软件包。在UNIX/Linux系统中,用户可以定义自己的变量。定义后的变量就像在其他程序设计语言里一样被引用。引用变量时需要使用“$”作为变量名的前导字符。

变量的定义方法如下:

var_name=var_value

变量的定义和使用示例如下:

$ x=18         #定义变量x,其值为18

$ y='I am a student'     #定义变量y,值为'I am a student'

$ echo $x $y $HOME    #显示变量x,y和环境变量HOME的值

$ z="$y, I am $x ."      #由变量x和y定义变量z

$ echo $x $y $z

(9)环境变量可用命令env、export或set来查询,比如:

$ export     #显示所有的环境变量

$ env            #同上。

问题:这里由于前面已有$,再次输入$env或$export所以没反应

解决:只需输入env或export即可显示输出.

  

(10)返回值可在命令刚刚执行完毕后,通过$?来访问。比如:

$ ls /dev/sd*     #显示系统中的SCSI硬盘设备

$ echo $?    #显示返回状态(值)

1.列目录内容(ls)      dir

2.建立目录(mkdir)     md / mkdir

3.删除目录(rmdir)     rd / rmdir

4.改变工作目录(cd)    cd / chdir

5.显示当前目录(pwd)   cd

  

(11)将命令行参数中的字符串或变量的值写到标准输出。默认情况下,每个echo命令执行完毕后会产生一个换行符,如果不带参数执行此命令,将输出一个空行。用法为:

echo [options] string ...

参数说明-e:用于处理转义字符;-n:用于抑制默认的换行符;-E:用于抑制对转义字符的处理

$ echo Hell I am echo . #显示字符串常量

#不处理转义字符

$ echo -E "My cell phone number is:\n13903750000"

#处理转义字符

$ echo -e "My cell phone number is:\n\t13903750000"

$ echo -n "I am student, "      #不处理换行

$ echo "My name is Bill Joy"    #以上命令的输出在同一行上

(12)read从标准输入上读入一行,并将它读到的内容按分隔符分隔的字符串传递给相应变量。若值的个数大于变量个数,则多余的部分赋给最后一个变量;若值的个数小于变量个数,则后面多余的变量被置空。如果没有指定变量名,则默认使用REPLY作为变量名。用法为:

read [-d delim] [ -n num] [-p prompt] [-r] [-s] [-t time] var1 var2 …

(13)进程树及进程状态查询(pstree)

# pstree          #显示系统进程树

# pstree   -p| more   #分屏显示系统进程树

# pstree -p | grep vsftpd #查询进程vsftpd

# pstree user #显示指定用户(比如root)的进程


🌍4. 实验心得

  1. 基础掌握与操作熟练 通过本次实验,我成功掌握了shell的基本功能与基本概念,初步熟悉了Linux系统的基本操作,并成功实现了对Linux系统的基本管理。在操作中,我发现了同一个显示日期可以有多个不同的指令,同时使用history [num]时,不论指令是否可运行,都能够正确显示出来。

  2. 命令结合与输入输出处理方法 实验过程中,我深刻理解了将一个程序或命令的输出作为另一个程序或命令的输入的两种方法。通过临时文件将多个命令或程序结合在一起,以及通过通道机制,我能够更灵活地组织和执行多个命令,提高了操作效率。在此过程中,我注意到环境变量输入时,使用命令$env和$export未能正确显示结果,后来发现只需输入env和export即可,因为已经包含了$符号。

  3. 细致观察与细节注意 在实验中,我发现了一些细微但重要的差异,例如在使用echo [options] string ...时,-e与-E的区别。我学到了-e可以识别转义字符,而-E则无法识别,将其视为普通字符串处理。这种对细节的敏感观察帮助我更加准确地使用命令,防止由于遗漏细节而产生错误。


📝总结

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

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

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

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

相关文章

CentOs搭建Kafka集群

Centos7搭建Kafka集群 一、集群规划二、环境准备三、安装kafka集群1、下载kafka安装包2、解压3、配置环境变量4、编辑配置文件①修改broker.id②配置kafka运行日志路径③配置Zookeeper集群地址 5、启动集群6、测试kafka①、创建topic②、查看当前服务器中的所有topic③、生产者…

如何使用CapSolver解决Web爬虫中遇到的CAPTCHA问题

Web爬取是一种强大的技术&#xff0c;用于从网站中提取数据&#xff0c;但经常会遇到一个常见障碍&#xff0c;即CAPTCHA。CAPTCHA是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写&#xff0c;旨在防止自动机器人访问网站。然而&…

月薪15000在春晚分会场西安,够花吗?

千寻的结论&#xff1a; 如果有房无贷&#xff0c;另一半也有工作收入&#xff0c;父母身体健康且均有不错的退休金&#xff0c; 满足这些条件的话&#xff0c;在西安月入1.5W是相当不错。

人机交互主板定制_基于MT8735安卓核心板的自助查询机方案

人机交互主板是一种商显智能终端主板&#xff0c;广泛应用于广告机、工控一体机、教学一体机、智能自助终端、考勤机、智能零售终端、O2O智能设备、取号机、计算机视觉、医疗健康设备、机器人设备等领域。 人机交互主板采用联发科MTK8735芯片平台&#xff0c;四核Cortex-A53架构…

年度总结丨酷雷曼2023年度记忆

2023年 我们关心粮食和蔬菜 也关心“视界”和未来 我们执着于向新兴科技深处钻研 也探寻着让VR全景广泛落地 我们目睹着智慧生活的日新月异 也记录着平凡奋斗者们创造的非凡事业 2024年 属于VR的盛行之年 你又会将目光投向哪里&#xff1f; 这里有一份来自 酷雷曼的…

Video组件的使用

概述 在手机、平板或是智慧屏这些终端设备上&#xff0c;媒体功能可以算作是我们最常用的场景之一。无论是实现音频的播放、录制、采集&#xff0c;还是视频的播放、切换、循环&#xff0c;亦或是相机的预览、拍照等功能&#xff0c;媒体组件都是必不可少的。以视频功能为例&a…

服务网格 Service Mesh

什么是服务网格&#xff1f; 服务网格是一个软件层&#xff0c;用于处理应用程序中服务之间的所有通信。该层由容器化微服务组成。随着应用程序的扩展和微服务数量的增加&#xff0c;监控服务的性能变得越来越困难。为了管理服务之间的连接&#xff0c;服务网格提供了监控、记…

promethues grafana 安装和使用

文章目录 1、promethues安装2、node-exporter安装3、grafana安装4、配置promethues监控node节点5、grafana操作外传 Docker 镜像下载地址&#xff1a; https://hub.docker.com 比较好的hub.docker.com///-- https://hub.docker.com/u/bitnami grafana监控面板&#xff1a;https…

excel中解决多行文本自动调整行高后打印预览还是显示不全情况

注意&#xff1a;此方法对于多行合并后单元格行高调整不适用&#xff0c;需要手动调整&#xff0c;如大家有简便方法&#xff0c;欢迎评论。 一、调整表格为自动调整行高 1&#xff09;点击此处全选表格 2&#xff09;在第一行序号单元格的下端&#xff0c;鼠标成黑十字时&am…

leetcode2397. 被列覆盖的最多行数

目录 题目 思路 解题方法 题目 https://leetcode.cn/problems/maximum-rows-covered-by-columns/description/ 给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix &#xff1b;另给你一个整数 numSelect&#xff0c;表示你必须从 matrix 中选择的 不同 列的数量。 …

Ubuntu18.04 升级Ubuntu20.04

文章目录 背景升级方法遇到的问题 背景 因项目环境需要&#xff0c;欲将Ubuntu18.04升级至Ubuntu20.04&#xff0c;参考网上其他小伙伴的方法&#xff0c;也遇到了一个问题&#xff0c;特此记录一下&#xff0c;希望能帮助其他有同样问题的小伙伴。 升级方法 参考&#xff1a…

Android studio VideoView 应用设计

一、运行效果: 二、新建empty activity项目: 三、打开activity_main.xml布局文件,添加VideoView: <VideoViewandroid:id="@+id/videoView"android:layout_width="368dp"android:layout_height="573dp"app:layout_constraintBottom_toBot…

系列三十三、如何将一个springboot jar做成批处理文件

一、将一个springboot jar做成批处理文件 1.1、需求 最近在写【Spring Cloud Alibaba】的系列文章&#xff0c;其中有一个部分是安装Sentinel控制台&#xff0c;使用命令执行完全没有问题&#xff0c;但是命令太长了&#xff0c;每次启动时都要找笔记&#xff0c;然后粘贴到命…

【51单片机】点亮第一个LED灯(含创建文件等基础操作)

51单片机现在不仅是电子信息专业学生的必修课&#xff0c;也是进入嵌入式领域的踏脚石。 本系列将会按照江科大的视频进行&#xff0c;也算是相当于一个笔记&#xff0c;进行巩固 实现第一个LED灯的点亮其实并不复杂&#xff0c;重要的是有一些准备工作比较繁琐&#xff0c;就…

15 Linux 按键

一、Linux 按键驱动原理 其实案件驱动和 LED 驱动很相似&#xff0c;只不过区别在于&#xff0c;一个是读取GPIO高低电平&#xff0c;一个是从GPIO输出高低电平。 在驱动程序中使用一个整形变量来表示按键值&#xff0c;应用程序通过 read 函数来读取按键值&#xff0c;判断按键…

从0开始python学习-40.通过正则表达式/json进行接口关联

目录 1. 正则表达式&#xff1a;使用re库&#xff08;需安装-pip install re&#xff09;&#xff0c;只能提取字符串的数据。 1.1 re.seach&#xff1a;提取一个值&#xff0c;得到的是一个对象&#xff0c;通过下标group(1)取值&#xff0c;如果没有匹配到值则返回None 1.…

01、Kafka ------ 下载、安装 ZooKeeper 和 Kafka

目录 Kafka是什么&#xff1f;安装 ZooKeeper下载安装启动 zookeeper 服务器端启动 zookeeper 的命令行客户端工具 安装 Kafka下载安装启动 Kafka 服务器 Kafka是什么&#xff1f; RabbitMQ的性能比ActiveMQ的性能有显著提升。 Kafka的性能比RabbitMQ的性能又有显著提升。 K…

Vue知识总结-上

VUE初识 Vue是一套用于构建用户界面的渐进式(由只需要轻量小巧的核心库构建的简单应用逐渐扩展为可以引入各式各样的Vue组件构建的复杂应用)JavaScript框架 Vue需掌握的内容&#xff1a;Vue基础、Vue-cli、vue-router、vuex、element-ui、vue3 Vue特点 采用组件化模式、提高代…

JavaScript 基础三part1.数组

JavaScript 基础三part1.数组 2.1 数组是什么2.2 数组的基本使用&#xff08;1&#xff09;声明&#xff08;2&#xff09;取值&#xff08;3&#xff09;一些术语&#xff08;4&#xff09;遍历数组 2.3 操作数组&#xff08;1&#xff09;修改&#xff08;2&#xff09;新增&…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -小程序端TabBar搭建

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…