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

news2024/11/26 22:19:00

🌈个人主页: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.coloradmin.cn/o/1357424.html

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

相关文章

目标跟踪算法中的卡尔曼滤波学习

在使用多目标跟踪算法时&#xff0c;接触到卡尔曼滤波&#xff0c;一直没时间总结下&#xff0c;现在来填坑。 1. 背景知识 在理解卡尔曼滤波前&#xff0c;有几个概念值得考虑下&#xff1a;时序序列模型&#xff0c;滤波&#xff0c;线性动态系统 1. 时间序列模型 时间序…

Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)

本实践教程将教你如何使用 Elasticsearch 构建完整的搜索解决方案。 在本教程中你将学习&#xff1a; 如何对数据集执行全文关键字搜索&#xff08;可选使用过滤器&#xff09;如何使用机器学习模型生成、存储和搜索密集向量嵌入如何使用 ELSER 模型生成和搜索稀疏向量如何使用…

【KingbaseES】实现MySql函数Field

CREATE OR REPLACE FUNCTION field(value TEXT, VARIADIC arr TEXT[]) RETURNS INT AS $$ DECLAREi INT; BEGINFOR i IN 1 .. array_length(arr, 1) LOOPIF arr[i] value THENRETURN i;END IF;END LOOP;RETURN 0; END; $$ LANGUAGE plpgsql IMMUTABLE;

【Mac】Mac新机配置前端环境教程

1、先安装谷歌浏览器&#xff0c;稳定版 作为一名前端程序员&#xff0c;和浏览器打交道肯定是必不可少的。Chrome&#xff0c;Edge 都有着丰富的扩展资源。你可以下载插件帮助你更好的在工作中调试代码。 React Developer Tools Vue.js devtools GraphQL developer tools 如…

信号量原理及其应用

一、信号量定义 信号量是一种用于保护临界资源的同步机制。它可以用来控制对共享资源的访问&#xff0c;以避免并发访问导致的数据不一致或竞争条件。信号量的PV操作是原子操作&#xff0c;即不可被中断的操作。 在信号量的操作中&#xff0c;P操作&#xff08;也称为wait操作…

imgaug库指南(四):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

AIGC实战——自回归模型(Autoregressive Model)

AIGC实战——自回归模型 0. 前言1. 长短期记忆网络基本原理2. Recipes 数据集3. 处理文本数据3.1 文本与图像数据处理的差异3.2 文本数据处理步骤 4. 构建 LSTM 模型4.1 模型架构4.2 LSTM 计算流程4.3 训练 LSTM 5. LSTM 模型分析小结系列链接 0. 前言 自回归模型 (Autoregres…

基于gamma矫正的照片亮度调整(python和opencv实现)

import cv2 import numpy as npdef adjust_gamma(image, gamma1.0):invGamma 1.0 / gammatable np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8")return cv2.LUT(image, table)# 读取图像 original cv2.imread("tes…

使用 SpringSecurity 发送POST请求出现 403

问题场景 在使用 SpringSecurity 时对一些访问权限进行了设置, 在用户请求资源时出现了403错误 , 通过检查代码发现请求权限是开放的, 并且切换成 GET 请求也是可以通过, 换成POST 请求就无法通过。 解决方法 在 SpringSecurity 中关闭 CSRF 因为 前端向后台发送 post 请求…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑分布式资源交易的气电综合能源配网系统出清模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的免费专栏栏目《论文与完整程序》 这个标题涉及到气电综合能源配网系统的出清模型&#xff0c;特别强调了对分布式资源交易的考虑。以下是对标题中关键术语的解读&#xff1a; 气电综合能…

java SSM体育器材租借管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM体育器材租借管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

Ubuntu不能挂载移动硬盘

我有一个2T 的移动硬盘&#xff0c;分了两个区 不知道为啥突然之间一个分区老无法挂载&#xff0c;万能的重启也无法解决。 经查资料&#xff0c;这种情况一般是在使用时&#xff08;如看电影或者拷贝文件过程中&#xff09;将移动硬盘异常拔出再插入时&#xff0c;就提示不能…

MySQL:约束主键唯一键

表的约束&#xff1a;表中一定有约束&#xff0c;通过约束让插入表中的数据是符号预期的 约束的本质是通过技术手段&#xff0c;倒逼程序员插入正确的数据 Null约束 这里的Null表示在插入的时候&#xff0c;该属性能否为空&#xff0c;如果是NO&#xff0c;则插入时候必须有数…

广义双曲分布、KS检验与抄底沪指

上一篇笔记我们抛出一个问题&#xff0c;沪指大跌 4%时&#xff0c;能不能抄底&#xff1f;今天的笔记&#xff0c;我们就通过 KS 检验&#xff0c;找出沪指的概率分布&#xff0c;进而回答这个问题。在后面的笔记中&#xff0c;我们还将换一个方法继续回答这个问题。 K-S 检验…

Xshell 上传文件到服务器

Liunx 上传文件 rz //回车&#xff0c;从本地选择文件上传 ll //查看文件 pwd //查看当前目录 mkdir filename //创建文件如果遇到错误信息“bash: rz: command not found” 安装 lrzsz sudo yum install lrzsz操作 mv //移动文件或目录 tar //解压文件vim //文本编辑器&am…

【技巧】一招让雷电模拟器快如闪电!

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 本教程默认你已经开启了Hyper-V功能了。如果没开启&#xff0c;那卡顿很正常。 1、打开雷电多开器 2、点击左下角设置 3、勾选这几项后保存 该配置只需设置一次&#xff0c;下次自动生效。 4、重新启动模拟器 5、…

Python-CSV文件的存储

CSV文件存储 CSV其文件以纯文本形式存储表格数据。CSV文件是一个字符序列&#xff0c;可以由任意数目的记录组成&#xff0c;各种记录由某种换行符分隔开。它比Excel文件更加简洁&#xff0c;XLS文本是电子表格&#xff0c;包含文本、数值、公式和格式等内容&#xff0c;CSV中则…

Qt中图片旋转缩放操作

在我们开发过程中&#xff0c;难免会遇到加载图片的问题&#xff0c;在上一个开发项目里我就遇到了图片缩放的问题&#xff0c;所以&#xff0c;我决定将这一部分好好研究&#xff0c;记录下来&#xff0c;希望对大家有帮助哟~ 在讲解之前&#xff0c;我们先看一看具体的展示效…

docker 部署来自Hugging Face下机器翻译模型

机器翻译模型(Hugging Face官网) 模型翻译api服务代码 # 离线翻译服务代码 # -*-coding:utf-8-*-import os import json import logging from logging.handlers import RotatingFileHandler from datetime import datetime from flask import Flask, request,jsonify from geve…

【LMM 009】MiniGPT-4:使用 Vicuna 增强视觉语言理解能力的多模态大模型

论文描述&#xff1a;MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models 论文作者&#xff1a;Deyao Zhu∗ Jun Chen∗ Xiaoqian Shen Xiang Li Mohamed Elhoseiny 作者单位&#xff1a;King Abdullah University of Science and Techn…