计算机速成课Crash Course - 22. 命令行界面

这篇具有很好参考价值的文章主要介绍了计算机速成课Crash Course - 22. 命令行界面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!文章来源地址https://www.toymoban.com/news/detail-816633.html

计算机速成课Crash Course - 22. 命令行界面 (qq.com)

今天继续计算机速成课Crash Course的系列讲解。

22. 命令行界面

我们之前讨论过 输入输出,但都是计算机组件互相输入输出,比如 RAM 输出数据,或输指令进 CPU。

我们还没讲 来自人类的输入,也没讲怎么从电脑中拿出信息,除了用打孔纸卡。

当然,有很多种 "输入输出设备"。让我们和计算机交互,它们在人类和机器间提供了界面,如今有整个学科专门研究这个,叫 "人机交互"。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

界面对用户体验非常重要,所以是我们接下来几集的重点。

在系列开头的几集,我们提过,早期机械计算设备用齿轮,旋钮和开关等机械结构来输入输出,这些就是交互界面。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

甚至早期电子计算机 比如 Colossus 和 ENIAC,也是用一大堆机械面板和线来操作,输入一个程序可能要几星期,还没提运行时间。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

运行完毕后想拿出数据,一般是打印到纸上,打印机超有用。

甚至 查尔斯·巴贝奇 都给差分机专门设计了一个,那可是 1820 年代!

然而,到 1950 年代,机械输入完全消失,因为出现了打孔纸卡和磁带,但输出仍然是打印到纸上,还有大量指示灯,在运行中提供实时反馈,那个时代的特点是尽可能迁就机器,对人类好不好用是其次,打孔纸带就是个好例子,就是为了方便计算机读取。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

纸带是连续的,方便机器处理,纸孔可以方便地用机械或光学手段识别,纸孔可以编码程序和数据,当然, 人类不是以纸孔方式思考的。

所以负担放到了程序员身上,他们要花额外时间和精力,转成计算机能理解的格式,一般需要额外人员和设备帮忙。

要注意的是,基本上 1950 年前的早期计算机"输入"的概念很原始,是的,的确是人类负责输入程序和数据,但计算机不会交互式回应,程序开始运行后会一直运行,直到结束。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

因为机器太贵了,不能等人类慢慢敲命令和给数据,要同时放入程序和数据,这在 1950 年代晚期开始发生变化。

一方面,小型计算机变得足够便宜,让人类来回和计算机交互,变得可以接受,交互式就是人和计算机之间来回沟通

而另一方面,大型计算机变得更快,能同时支持多个程序和多个用户,这叫"多任务"和"分时系统",但交互式操作时,计算机需要某种方法来获得用户输入。

所以借用了当时已经存在的数据录入机制:键盘。当时,打字机已经存在几个世纪了。

但现代打字机是 克里斯托弗·莱瑟姆·肖尔斯 在 1868 年发明的,虽然到 1874 年才完成设计和制造,但之后取得了商业成功,肖尔斯的打字机用了不寻常的布局 - QWERTY,名字来自键盘左上角按键。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

为什么这么设计有很多猜测,最流行的理论是这样设计是为了把常见字母放得远一些,避免按键卡住,这个解释虽然省事,但可能是错的,或至少不够全面。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

事实上,QWERTY 把很多常见字母放在了一起,比如 TH 和 ER,我们知道肖尔斯和他的团队设计了很多版,才进化到这个布局。

总之,肖尔斯的打字机取得了成功,所以其它公司很快开始抄他的设计,过去一个世纪有不少新的键盘布局被发明,宣称各种好处,但人们已经熟悉了 QWERTY 布局,根本不想学新布局,这是经济学家所说的 转换成本。

所以现在都快1个半世纪了,我们还在用 QWERTY 键盘布局,我应该提一下,QWERTY 不是通用的,有很多变体,比如法国 AZERTY 布局,以及中欧常见的 QWERTZ 布局。

有趣的是,肖尔斯 根本没想到打字会比手写快,手写速度大约是每分钟 20 个,打字机主要为了易读性和标准化,而不是速度。然而随着打字机成为办公室标配,对快速打字的渴望越来越大。

有两个重大进步,解放了打字的潜力,1880年左右,辛辛那提速记学院,一名叫 伊丽莎白·朗利 的老师,开始推广十指打字,比一个手指打字要移动的距离短得多,所以速度更快。

几年后,弗兰克·爱德华·麦克格林,盐湖城的一位联邦法庭书记,学会了盲打,打字时不用看键盘,1888年,麦格高林 赢了备受关注的打字速度比赛,之后"十指盲打"开始流行。

专业打字员每分钟 100 字以上,比手写快多了!而且清晰又整洁!

虽然人类擅长用打字机,但我们没法把打字机塞到计算机面前,让它打字,计算机又没有手指。

所以早期计算机用了一种特殊打字机,是专门用来发电报的,叫电传打字机。

这些打字机是强化过的,可以用电报线发送和接收文本,按一个字母,信号会通过电报线,发到另一端,另一端的电传打字机会打出来,使得两人可以长距离沟通,基本是个蒸汽朋克版聊天室。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

因为电传打字机有电子接口,稍作修改就能用于计算机,电传交互界面在 1960~1970 很常见,用起来很简单,输入一个命令,按回车,然后计算机会输回来,用户和计算机来回"对话",这叫"命令行界面"。

它是最主要的人机交互方式,一直到 1980 年代,用电传打字机的命令行交互,类似这样:

用户可以输入各种命令,我们来看几个命令,先看当前目录有什么文件,输入命令 ls,名字来自 list 的缩写。

然后计算机会列出,当前目录里的所有文件,如果想看 secretStarTrekDiscoveryCast.txt 有什么,要用另一个命令显示文件内容。计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

unix 用 cat 命令显示文件内容,cat 是连接(concatenate)的缩写,然后指定文件名,指定的方法是写在 cat 命令后面,传给命令的值叫 参数。

如果同一个网络里有其他人,你可以用 finger 命令找朋友,就像是个很原始的"找朋友" App,电传打字机直到1970年代左右都是主流交互方式。计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

尽管屏幕最早出现在 1950 年代,但对日常使用太贵,而且分辨率低,然而因为针对普通消费者的电视机开始量产,同时处理器与内存也在发展,到1970年代,屏幕代替电传打字机变得可行。

但与其为屏幕专门做全新的标准,工程师直接用现有的电传打字机协议,屏幕就像无限长度的纸,除了输入和输出字,没有其它东西,协议是一样的,所以计算机分不出是纸还是屏幕,这些"虚拟电传打字机"或"玻璃电传打字机",叫 终端。

到1971年,美国大约有 7 万台电传打字机以及 7 万个终端,屏幕又好又快又灵活,如果删一个错别字会立刻消失,所以到 1970 年代末,屏幕成了标配。

你也许会想,命令行界面太原始了,做不了什么有意思的事,即便只有文字,程序员也找到了一些方法,让它变得有趣一些。

早期的著名交互式文字游戏 Zork,出现于 1977 年,早期游戏玩家需要丰富的想象力,想像自己身在虚构世界,比如"四周漆黑一片,附近可能有怪物会吃掉你",我们用命令行玩玩看。

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

就像之前,我们可以用 ls 命令,看当前目录有什么,然后用 cd 命令,进入游戏文件夹 cd 的意思是 "改变文件夹",再用 ls 看有哪些游戏,超棒!我们有"冒险旅程"!(adventure)

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

想运行这个程序,只需要输入它的名字,在程序自行停止或我们主动退出前,它会接管命令行,你现在看到的,是"巨大洞穴冒险"这款游戏的真实输出,由 Will Crowther 在 1976 年开发。

游戏中,玩家可以输入1个词或2个词的命令,来移动人物,和其他东西交互,捡物品等,然后游戏会像旁白一样,输出你的当前位置,告诉你能做什么动作,以及你的动作造成的结果,有些动作会导致死亡!

计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

原始版本只有 66 个地方可供探索,但它被广泛认为是最早的互动式小说,游戏后来从纯文字进化成多人游戏,简称 MUD,或多人地牢游戏,是如今 MMORPG 的前辈(大型多人在线角色扮演游戏)。

命令行界面虽然简单,但十分强大,编程大部分依然是打字活,所以用命令行比较自然。因此,即使是现在大多数程序员工作中依然用命令行界面,而且用命令行访问远程计算机是最常见的方式,比如服务器在另一个国家。计算机速成课Crash Course - 22. 命令行界面,计算机速成课Crash Course,服务器,前端,程序人生,学习方法

如果你用 Windows, macOS, Linux,你的计算机有命令行界面,但你可能从来没用过,你可以在 Windows 搜索栏中输入 cmd,或在 Mac 上搜 Terminal,然后你可以装 Zork 玩!

现在你知道了,早期计算机的发展是如何影响到现在的,想想要是手机没有 QWERTY 键盘,在 Instagram 给图片配标题可就麻烦了。

但我们还有一个重要话题没讲,美妙的图形界面!这是下节课的主题。


以上内容就是 22. 命令行界面 的内容,感兴趣的同学记得点赞、关注、转发、收藏哦!

我会不定期发布课程的讲解!

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

到了这里,关于计算机速成课Crash Course - 22. 命令行界面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓开发学习之设计三种计算机界面

    1.简单的计算器 2.科学计算器 3.程序计算器 不用实现具体功能,只需设计界面即可! 为了更好的在三个界面之间跳转,添加一个主界面。 activity_main.xml 线性布局中添加4个按钮 界面效果: 简单计算器: chengxujishuanqi.xml 界面效果: 科学计算器: kexuejishuanqi.xml 界面效果: 程序

    2023年04月08日
    浏览(52)
  • 计算机算法分析与设计(22)---回溯法(最小重量机器设计问题)

     设某一机器由 n n n 个部件组成,每种部件都可以从 m m m 个不同的供应商处购得。设 w i j w_{ij} w ij ​ 是从供应商 j j j 处购得的部件i的重置, c i j c_{ij} c ij ​ 是相应的价格。设计一个算法,给出总价格不超过 d d d 的最小重量机器设计。 数据输入: 第 1 1 1 行有 3 3 3 个正整

    2024年02月06日
    浏览(46)
  • mstsc命令无法连接到远程计算机

    mstsc命令远程到一个新机子提示无法连接到远程计算机,问了公司同事解决办法,记录一下吧。 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 能ping通直接进行第二步骤,不通要查看访问的客户端防火墙是否关闭。 打开控制面板=》Windows De

    2024年02月06日
    浏览(47)
  • cmd命令查看当前计算机端口占用情况

        1.打开cmd命令提示符,输入netstat -ano,可以看到当前本机的所有端口情况 2.输入netstat -aon|findstr,加端口号,记住进程pid 3.tasklist|findstr,加刚才记住的pid,可以查到该端口是哪个应用占用的 (1)地址一栏相关说明: 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口 1

    2024年02月06日
    浏览(43)
  • SNMP 计算机网络管理 实验2(二) SNMP服务与常用网管命令之任务三:对同学的计算机进行网络管理 任务四:查询计算机网卡的相关信息

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月12日
    浏览(66)
  • 计算机组成原理 | 第九章:控制单元的功能 | 微操作命令 | 时钟周期

    假设完成一条指令分为4个工作周期:取指周期、间址周期、执行周期、中断周期 ①现行指令地址送至存储器地址寄存器,记作 PC → MAR ②向主存发送 读命令 ,启动主存做读操作,记作 1 → R ③将MAR(通过地址总线)所指的主存单元中的内容( 指令 )经数据总线读至MDR内,

    2024年02月13日
    浏览(54)
  • 【Linux命令详解 | ssh命令】 ssh命令用于远程登录到其他计算机,实现安全的远程管理

    在编程和系统管理领域,远程管理是一项至关重要的任务。SSH(Secure Shell)命令是一种加密的网络协议,它提供了一种安全的方式,使您能够在不同的计算机之间进行远程连接和管理。通过使用SSH命令,您可以在远程计算机上执行命令、传输文件以及进行安全的远程登录。

    2024年02月12日
    浏览(46)
  • 【计算机基础知识10】解析黑窗口CMD:认识CMD及常见命令

    目录 一、前言 二、CMD的基本知识 三、CMD常见命令分类 1. 文件和目录管理命令 1.1 列出文件和目录:dir 1.2 创建目录:mkdir 1.3 删除目录:rmdir 1.4 复制文件或目录:copy 1.5 移动文件或目录:move 2. 系统信息与配置命令 2.1 显示系统信息:systeminfo 2.2 IP配置相关命令:ipconfig 2.3 进

    2024年02月09日
    浏览(47)
  • ssh命令用于远程登录到其他计算机,实现安全的远程管理_linux ssh远程登录命令

    文章标题 简介 一,参数列表 二,使用介绍 1. 连接远程服务器 2. 使用SSH密钥登录 2.1 生成密钥对 2.2 将公钥复制到远程服务器 3. 端口转发 3.1 本地端口转发 3.2 远程端口转发 4. X11转发 5. 文件传输与远程命令执行 5.1 文件传输 5.1.1 从本地向远程传输文件 5.1.2 从远程服务器下载

    2024年04月11日
    浏览(49)
  • SNMP 计算机网络管理 实验2(三) SNMP服务与常用网管命令之任务五:查看端口流量及实验小结

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包