探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析

目录

1.指令 vs 界面//选读

1.1交互的需求

满足需求的第一阶段-指令

满足需求的第二阶段-界面

1.2 指令 和 界面交互

区别

2.操作系统介绍

2.1 举例说明

驱动软件层

2.2 为什么要有操作系统?

0x03 为什么要进行指令操作?

3.Linux基本指令

ls 指令

 当前路径与上级路径( . 和 .. )

pwd 指令

cd 指令

touch 指令

mkdir 指令

rmdir 指令

rm 指令

​编辑

sum


1.指令 vs 界面//选读

指令,可能有的小伙伴是第一次听,但是它确实历史悠久,而且先于界面

1.1交互的需求

  • 计算机被创造出来,是为了为人提供服务的。但是为了让计算机更好的为人服务,前提是人必须的和计算机交互起 来。
  • 类比一下另一种机器,那就是汽车,汽车是为了给人提供交通服务的,但是造出来之后,需要人通过某种 方式去控制汽车,当然在汽车里,人和汽车的交互方式是通过方向盘,油门去交互的

满足需求的第一阶段-指令

打字机的产生是在19-20世纪,反正是远远早于计算机发明的。所以我们要和新发明的计算机进行交互,人们先想到 的是借鉴一下打字机的输入方式,来进行常规交互,慢慢演化下,就有了现在的键盘。既然早期交互硬件只有键盘, 那么初期的交互方式,也变很顺理成章的是指令方式喽(又没有鼠标可以点)。

  • 思考一下,为什么键盘现在的按键布局,是现在这个样子的呢?

1946年2月14,世界第一台计算机ENIAC问世,后因交互的需求,借鉴了打字机键盘,就有了初期的指令交互方式

满足需求的第二阶段-界面

虽然我们还没有正式操作过,但是直觉告诉我们,指令这种方式,可能不太方便。

一个问题想问问大家,PC时代,要点击界面,需要有鼠标点击,那么, 是先有鼠标,还是先有真正意义上的图形化界面呢?答案是,先有鼠标,先看看世界上第一个鼠标的样子吧。

美国人道格拉斯·恩格尔巴特发明。这个样子的鼠标在1968年面世。

有了硬件设备的支持,同时指令用起来给一般用户的体验特别不好,再这样的需求促进下,乔布斯在1979年参观完 施乐公司Xerox Alto(阿尔托)系统之后,迅速模仿并商业化出来了图形化界面交互式的方式,并诞生了世界上第一 台商业图形化交互方式的电脑:lisa(当然,后面因为成本问题,效果并不理想,后来乔布斯又继续改良,就有了划 时代产品Macintosh(麦金塔),也就是第一代mac笔记本,乔布斯就此封神)

与此同时,比尔盖茨在借鉴苹果lisa下,带着他的windows 1.0,后续在商业上迅速跟进。 乔布斯对苹果的定位是一家计算机科技公司,属于软硬件都做的那种,有自己的软件操作系统,也有自己的硬件设计 方案,而且乔布斯是一个神一样的产品经理,所以对软硬件的整合能力,对用户的理解,都造就了一款符合事宜,又 设计精良的电脑问世。mac 1问世之后,迅速走红。

可是,走向世界的是苹果,覆盖世界的却是微软。 比尔盖茨看到这样的苹果公司,走的早,产品还好。如何赢?差异化。

比尔盖茨对微软的定义是一家软件公司,也就是只负责软件,可是计算机毕竟是一个软硬件结合的产物,于是微软便 找了自己的硬件合作方intel(开始是IBM,大家理念有差异,散了)开始搞事。合作的最大好处是成本好控制,生产效 率高,毕竟是产业分工的产物,慢慢的windows便席卷全球,就有了摆在我们面前的windows操作系统~

  • 苹果的操作系统,一般都在苹果的计算机上跑
  • 软的windows操作系统,什么品牌的电脑都能跑,像联想,dell,华为,鸿基,东芝等。细心的同学应 该能发现,所有的这些品牌的计算机上面搭载的CPU都是Intel的X86...

我们把时间先罗列一下

  • 打字机产生1808年7月24日(衍生键盘)
  • 1946年2月14,世界第一台计算机ENIAC问世因为有交互的需求,计算机交互便借鉴打字机的键盘,慢慢演化,就有了键盘,所以当时人们对交互的想 象只能是命令行
  • 鼠标在1968年面世 1973年施乐公司Xerox Alto(阿尔托)系统,世界上第一个非商业图形化操作系统
  • 1979年乔布斯和施乐进行利益交换,带团队参观施乐计算机研究中心,借鉴并商业化带UI的操作系统, 后来衍生出来mac图形化界面(期间也有windwos的故事)
  • 随后,微软推出了自己的桌面级操作系统windows 1.0
  • 两家商业公司,两个老总,开始撕
  • 就有了现在的PC界面交互方式

最后,有一个问题,就是为什么电子计算机,操作系统,各种电子设备会在1950~2000年这50年大量爆发。

这个问题有点远,有兴趣的老铁,可以在了解一下,当时的时代背景,你可能会有不一样的收获

1.2 指令 和 界面交互

了解过历史之后,我们能理解,为何会有指令交互和界面交互这样的现象,但是还有两个问题的在讨论一下

  • 这两种方式,在操作系统层面有啥区别?
  • 既然界面方式是发展的产物,为什么还要在学命令行?

区别

区别这个问题,比较难理解,目前也不打算谈。但是在功能定位上,是一样的,都是让用户进行和系统进 行交互。也就是说,界面的点击操作,一般也有对应的命令与之对应? 是的

为什么要学命令行

  • windows/苹果图形界面,是商业化的产物,也就是使用必须简单小白,才能有人用,so what?
  • 严格意义上讲,我们必须要学一下Linux命令行。因为企业后端有大量的服务器,服务器上跑的全是 Linux,Linux上部署的全是服务(比如:qq的服务,王者荣耀,LOL的服务等),无论是成本角度,还是 资源效率角度,后台的服务器,都不会大量给你也安装一个界面让你来控制(界面也是要占系统资源的 哦)但是服务器上面的服务需要维护,需要管理,也就衍生大量的对基本操作的需求。也就是企业的用人 需求
  • Linux命令行是职业化的表现,想职业化/成大神,必须掌握Linux
  • Linux命令行,更接近系统原生,用的多了,面对很多系统现象,会更好理解

严格意义上讲,光光学习Linux操作是远远不够的。

后续先把平台熟悉起来,后面还有系统,网络,这个后面有机会再说

2.操作系统介绍

软件实际上是可以操作硬件的,那这个操作具体是怎么完成的呢?

  • 在计算机的整个结构中,最底层是硬件。所谓的硬件包括键盘、显示器、网卡、显卡等各种设备。所有这些底层设备都叫硬件。
  • 在硬件层上还存在一个软件层,称为“驱动软件层”。我们可以通过驱动软件层帮助上层实现对硬件的基本访问。每种硬件都有对应的驱动程序。

2.1 举例说明

在 Windows 中使用鼠标时,如果鼠标未插入计算机,滚动鼠标没有反应。但当鼠标插入 USB 接口的一瞬间,可能还是没有反应,过了几秒后,电脑发出驱动提示音,此时鼠标便和电脑相连接了。

当我们新增一个设备时,插入的短暂期间是没有反应的,过了一会儿才有反应。这个过程中,操作系统在根据硬件选择对应的驱动程序。操作系统的核心工作是提供访问硬件的接口

一般而言,硬件的驱动程序由操作系统获取与安装,对用户是透明的。

驱动软件层

驱动软件层帮助上层实现对硬件的基本访问。再往上,还有一层软件层,我们称之为操作系统内核。狭义上讲,这就是我们的操作系统。操作系统内部一般由以下四大构成:

  1. 进程管理
  2. 文件管理
  3. 内存管理
  4. 驱动管理

操作系统的核心工作是帮助我们进行上述内容的管理工作。再往上就是用户层,比如图形化界面、各种库以及用户的一些应用程序等。

2.2 为什么要有操作系统?

举例

比如在玩《CSGO》时,如果电脑频繁卡死重启,或者动不动蓝屏,这样的游戏体验将非常差。操作系统的管理功能确保我们有一个良好的使用体验。

管理的目的

  1. 对上:提供一个良好稳定的运行环境。
  2. 对下:管理好软硬件资源。

从而整体达到提高操作效率的目的,这就是操作系统。

总结:操作系统(OS)是一款用于管理软硬件资源的软件

不同种类的操作系统

就像现实中有不同的银行(中国银行、中国建设银行、中国农业银行),我们的操作系统也有不同的种类。尽管它们各自有独特之处,但最终都是围绕“对上和对下”展开的。

0x03 为什么要进行指令操作?

对于非专业人员,指令操作并不必要。对于专业人员,可以必要,也可以不必要。然而,对于我们学习操作系统原理、编程和指令操作,掌握这些是必须的。

  • 早期的操作系统是通过键盘给 OS 和计算机传递数据的。所有操作系统刚开始时都支持指令操作。我们的操作系统也支持指令操作,比如 cmd 命令提示符。
  • 虽然指令操作成本高,但操作系统公司为了取悦用户,开发了图形化界面。然而,学习指令操作更接近操作系统的特性,有助于我们更好地掌握操作系统。

sum: 

了解之后让我们来揭开linux的神秘面纱吧

3.Linux基本指令

下面让我们来学习一些基本的指令吧

ls 指令

语法ls [选项] [目录或文件]
功能:列出目录下的所有子目录与文件,或显示文件名及其他信息。

选项说明
-a列出所有文件,包括以 . 开头的隐含文件。
-d将目录像文件一样显示,而不是显示其下的文件。
-i输出文件的 i 节点的索引信息。
-k以 k 字节的形式表示文件的大小。
-l列出文件的详细信息。
-t以时间排序。
-R递归列出所有子目录下的文件。

举例

  • ls -l:列出文件的详细信息。
  • ls -a:列出所有文件,包括隐藏文件。

下面让我们来实操一下吧

为什么都没有呢,因为我们要先建立一个文件~

 

touch建立一个文件就可以显示啦,我们现在还没有目录,可以先用 mkdir 创建出一个目录出来

!输入指令,一定要记得带上空格

d1就是一个我们创建出来的目录啦,讲一个 ls 补充了这么多指令,就是为了做一个 ls 的演示,相当于是一个 "起手式" 。只是为了能快速操作起来,我们下面还要对我们刚才提前用到的指令详细介绍一下~

ls -l

我们可以发现指令是可以带选项的

我们存空文件的时候会占内存吗?会的,因为还有文件自身的属性

文件的属性是数据吗?也是数据,是数据就要存储

文件=文件内容+属性

ls -a

复合使用

 当前路径与上级路径( . 和 .. )

其实,任意目录下都会存在两个隐藏文件:

  1. . (当前路径)

  2. .. (上级路径)

它们都是以 . 开头的。如果我们想回到上级路径,该如何操作?

cd ..  :回到上级路径

 `/home/lvy1007` 是一个具体的文件路径,类似于Windows中的路径

C:\Users\xumen\Desktop\map

`/` 是Linux系统中的根目录,相当于Windows下的”C:\“。

要返回到 `/home/lvy ` 目录,可以使用 `cd /home/lvy` 命令

`.` 是当前路径的表示,比如 `./a.out` 表示当前目录中的 `a.out` 文件。

`ls` 命令有很多选项,其中最常用的是 `-a` 和 `-l`。

那当前路径 .  ,这一个点,有什么用?

📜 我们在上一章试着写 Hello Linux 时,当时就用到了 ./a.out 

./  --当前路径下,这是一个相对路径的使用,绝对路径一般是从/home开始的)

路径定位,唯一性的原因,绝对路径

每个儿子都只有一个爸爸,从根目录开始是绝对路径

  • Linux系统中的文件路径是一个多叉树的结构,根目录 `/` 是路径的起始点。路径定位是具有唯一性的
  • 绝对路径是指从根目录开始的完整路径例如:`/home/lvy/test.c` ,而相对路径是相对于当前位置的路径。
  • 相对路径容易失效,而绝对路径是永远有效的。
  • 使用 `cd` 命令时,可以使用绝对路径或相对路径

pwd 指令

语法pwd
功能:显示用户当前所在的目录。

cd 指令

语法cd 目录名
功能:改变工作目录。

举例

  • cd ..:返回上级目录。
  • cd /home/user/:进入绝对路径。
  • cd ../dir/:进入相对路径。
  • cd ~:进入用户家目录。
  • cd -:返回最近访问的目录。

touch 指令

语法touch [选项]... 文件...
功能:更改文件或目录的日期时间,或新建一个不存在的文件

选项说明
-a只更改存取时间。
-d使用指定的日期时间,而非现在的时间。
-f解决BSD版本touch指令的兼容性问题。
-m只更改变动时间。
-r把指定文档或目录的日期时间设成和参考文档或目录的日期时间相同。
-t使用指定的日期时间。

对于 touch 修改文件时间等用法我们放到讲开发工具 makefile 的时候再讲,让我们先来用touch创建一个

mkdir 指令

语法mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录

选项说明
-p, --parents如果路径中的某些目录尚不存在,自动建立这些目录。

举例

  • mkdir -p test/test1:递归建立多个目录。

rmdir 指令

语法rmdir [-p] [dirName]
功能删除空目录

选项说明
-p当子目录被删除后如果父目录也变成空目录的话,连带父目录一起删除。

 

rm 指令

语法rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录。

选项说明
-f强制删除,即使文件属性为只读。
-i删除前逐一询问确认。
-r删除目录及其下所有文件

sum

管理  贯穿

  • 操作系统  是一款做 软硬件管理 的软件
  • 计算机是层状结构,所有 软件操作都会定向向下 贯穿 转化为硬件行为

先有指令,再有图形

touch创建文件
mkdir创建目录
rm -r删除

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

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

相关文章

并查集C++

并查集的原理 并查集(Union-Find Set)。可以把每个连通分量看成一个集合,该集合包含了连通分量中的所有点。这些点两两连通(连通性),而具体的连通方式无关紧要,就好比集合中的元素没有先后顺序之…

C. Rooks Defenders(树状数组)

You have a square chessboard of size nnnn. Rows are numbered from top to bottom with numbers from 11 to nn, and columns — from left to right with numbers from 11 to nn. So, each cell is denoted with pair of integers (x,y)(x,y) (1≤x,y≤n1≤x,y≤n), where …

省去烦恼!轻松实现一台电脑登录多个微信号的秘诀揭秘!

你知道如何在同一台电脑上登录多个微信号,并实现聚合聊天吗? 今天,我将分享一个多微管理神器——个微管理系统,帮助你解决这一问题! 1、多号同时登录,聚合聊天 无论你有多少个微信号,都可以一…

Sobel边缘检测

声明:学习过程中的知识总结,欢迎批评指正。 基本原理 灰度处理:边缘检测是基于图像亮度变化实现的,而图像的亮度信息通过灰度图像体现,因此需要把彩色图像转换成灰度图像。平滑处理:可以使用高斯滤波等滤…

Vscode flake8插件 python代码语法格式检测/代码过长等误报设置

在vscode中python格式检测使用flake8插件很方便,但是经常会报出一些不必要错误,影响开发效率,忽略这些错误可以帮助减少对于特定项目可能不太关键的PEP 8警告或代码风格问题的干扰,特别是在项目有自己的格式化和编码标准时。使用f…

Golang——gRPC gateway网关

前言 etcd3 API全面升级为gRPC后,同时要提供REST API服务,维护两个版本的服务显然不大合理,所以gRPC-gateway诞生了。通过protobuf的自定义option实现了一个网关。服务端同时开启gRPC和HTTP服务,HTTP服务接收客户端请求后转换为gr…

(微服务项目实战)预付卡系统券模块系统设计

1 技术架构 框架描述版本JDKJava运行环境17SpringBoot基于SpringBoot完成后端代码开发3.2.6DubboApache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践3.xSpringCloud微服务…

WINUI——Trigger(触发器)使用小结

背景 WINUI不提供原生的Trigger支持,推荐使用VisualStateManager进行操作;然对于从WPF转WINUI的开发人员而言,经常会想用Trigger解决问题,鉴于此社区推出了CommunityToolkit.WinUI.Triggers以支持Trigger的使用。 使用方法 1.项…

Sky Master ULTIMATE Volumetric Skies Clouds Weather

该系统包含行业级优化的体积云、海洋系统、GI 代理,以及用于全局光照的优化 SEGI 和基于物理的天空渲染系统,且带有大气散射。 Sky Manager 可提供自动或按需的日/夜循环以及平滑的天气过渡。 Skybox 模式提供了与 Unity 及其功能(IBLGI、GI、Skybox)的完整集成。 先进的粒…

【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据

【问题分类】驱动使用 【关键字】ODBC、驱动使用、PHP、 【问题描述】PHP使用PDO_ODBC连接yashan数据库,获取数据类型大于或等于varchar(256 char)的数据时出现异常,数据无法正常获取,BLOB等字段也无法正常获取,并且该问题会导致…

【C语言】解决C语言报错:Undefined Reference

文章目录 简介什么是Undefined ReferenceUndefined Reference的常见原因如何检测和调试Undefined Reference解决Undefined Reference的最佳实践详细实例解析示例1:缺少函数定义示例2:函数声明和定义不匹配示例3:未链接必要的库示例4&#xff…

useEffect的概念以及使用(对接口)

// useEffect的概念以及使用 import {useEffect, useState} from reactconst Url"http://geek.itheima.net/v1_0/channels"function App() {// 创建状态变量const [lustGet,setLustGet]useState([]);// 渲染完了之后执行这个useEffect(() > {// 额外的操作&#x…

【C++】stack、queue和deque的使用

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 一、stack 1. stack介绍 2. stack使用 二、queue 1. queue介绍 2. queue使用 三、deque 1. deque介绍 2. deque的…

大数据实训项目(小麦种子)-04、大数据实训项目JavaWeb环境搭建

文章目录 前言运行前准备工作1、安装Hadoop3.1.0配置winutils原因描述配置方式注意点(hadoop.dll拷贝System32目录下) 2、hive运行报错(The dir: /tmp/hive on HDFS should be writable. ) 项目环境搭建参考资料 前言 博主介绍&a…

Python设计模式 - 简单工厂模式

定义 简单工厂模式是一种创建型设计模式,它通过一个工厂类来创建对象,而不是通过客户端直接实例化对象。 结构 工厂类(Factory):负责创建对象的实例。工厂类通常包含一个方法,根据输入参数的不同创建并返…

357. 统计各位数字都不同的数字个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int countNumbersWithUniqueDigits(int n) {vector<int> f(n1);if(n0)return 1;if(n1)return 10;f[0]1;f[1]10;for(int i2;i<n;i)f[i] f[i-1] (f[i-1]-f[i-2])*(10-(i-1));return f[n];} };

电子行业实施MES管理系统的时机是什么

随着信息技术的飞速发展&#xff0c;MES生产管理系统逐渐成为电子企业实现自动化生产和信息化管理的必备工具。那么&#xff0c;何时是电子企业实施MES管理系统的最佳时机呢&#xff1f; 1.生产过程中出现了问题&#xff0c;需要优化和改进。 2.企业需要提高产品交付和响应速…

港理工最新综述:基于LLM的text-to-SQL调查(方法实验数据全面梳理)1

【摘要】文本到SQL旨在将自然语言问题转换为可执行的SQL语句,这对用户提问理解、数据库模式理解和SQL生成都是一个长期存在的挑战。传统的文本到SQL系统包括人工工程和深度神经网络。随后,预训练语言模型(PLMs)被开发并用于文本到SQL任务,取得了可喜的成绩。随着现代数据库变得…

【AIGC】MetaGPT原理以及应用

目录 MetaGPT原理 MetaGPT应用 MetaGPT和传统编程语言相比有什么优势和劣势 视频中的PPT 参考资料 MetaGPT原理 MetaGPT是一种多智能体框架&#xff0c;它结合了元编程技术&#xff0c;通过标准化操作程序&#xff08;SOPs&#xff09;来协调基于大语言模型的多智能体系统…

Python学习打卡:day06

day6 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day648、函数综合案例49、数据容器入门50、列表的定义语法51、列表的下标索引1、列表的下标&#xff08;索引&#xff09;2、列表的下标&#xff08…