到底什么是CLI?

2023-10-31

前端写了这么久,经常用Vue-cli、webpack-cli、react-cli这些工具。但不怕大家笑话,这些名词我一直不知道啥意思。

我也查了资料,网上都说它们叫脚手架或者命令行工具,但对我来说我只是又多知道了几个名称。直到最近接触linux多了,才了解本质。故事要从shell说起

一:shell

平时windows系统用的较多,都是图形化操作,对命令行使用的不多。如果经常使用服务器版本的linux就会发现,服务器都是通过一行行命令行进行操作的。

Shell 这个单词的原意是“外壳”,跟 kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。

首先,shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为 CLI)。

所以重点是,cli其实就是Shell。

二:Bash

Shell本身是一种命令行解释器,是用户与操作系统进行交的接口,它解释用户输入的命令并将其传递给操作系统执行。Shell的主要作用是解释和执行命令,以及管理操作系统的各种资源。

Bash(Bourne Again SHell)是一种基于Unix shell的命令行解释器,它是常用的Shell之一。Bash是对Bourne Shell的扩展,提供了许多新功能和改进。与传统的shell相比,Bash具有更强大的功能和更多的特性,包括命令行编辑、命令历史、脚本编程、变量和环境管理等。因此,Bash不仅是一种Shell,也被视为一种脚本编程语言,它可以用来编写Shell脚本。

所以我理解的shell就是一个概念,Bash就是shell的一种具体实现。

就像操作系统是一个概念,windows、macOS、linux是操作系统这个概念的多种具体实现。我们在linux和macOS上使用的shell是Bash,在windows上使用的shell是PowerShell(一种基于.NET框架的命令行脚本语言)。

比如下图常见场景,咱就知道啥意思了。

 

三:总结

我理解的vue-cli等各种所谓的cli,其实就是一套用shell已经写好的程序。

只是这套程序不像网页,它没有界面。不通过鼠标点击交互,执行下一步,而是通过命令行输入交互往下执行。最终给我们的电脑上完成文件、文件夹创建,组件下载安装等动作。比如执行vuecli,最终我们就得到了一套现成的代码框架

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

到底什么是CLI? 的相关文章

随机推荐

  • 12、视图解析器与模板引擎

    文章目录 1 视图解析 1 1 spring boot支持的第三方模板引擎技术 1 2 视图解析原理流程 2 模板引擎 Thymeleaf 2 1 thymeleaf简介 2 2 基本语法 1 表达式 2 字面量 3 文本操作 4 数学运算
  • Python 自然语言处理 文本分类 地铁方面留言文本

    将关于地铁的留言文本进行自动分类 不要着急 一步步来 导入需要的库 import numpy as np import pandas as pd import jieba 分词 import re 正则 from fnmatch impor
  • 广西公需科目 当代科学技术前沿知识 考试答案

    用百度的识字api 可以识别广西公需科目 当代科学技术前沿知识 的文档 当代科学技术前沿知识读本 电子书 全文 pdf 这个可以在平台下载完了就识别出来就好搜答案了 自动考试视频 guagnxi视频 mp4 考试代码 for i in co
  • MySQL误删数据找回神器之binlog2sql

    一 使用前提 1 binlog format为ROW 且binlog row image为full或noblog 默认为full 2 必须开启MySQL Server 理由有如下两点 它是基于BINLOG DUMP协议来获取binlog内容
  • 笔试题目收集(2)

    笔试题目搜集系列推荐 1 笔试题目搜集1 2 笔试题目收集2 3 笔试题目搜集3 4 笔试题目搜集4 5 笔试题目搜集5 1 下列程序运行的结果 面试宝典P108 include
  • Unity核心10——导航寻路系统

    Unity 中的导航寻路系统是能够让我们在游戏世界当中 让角色能够从一个起点准确的到达另一个终点 并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往 Unity 中的导航寻路系统的本质 就是在 A 星寻路算法的基础上进行了拓展和
  • 读书:《人生的底气》

    人生的底气 是樊登刚出的一本书 里面讲解了孟子的7个关键词 每个关键词挑了有代表性的3句话 第一个关键词 初心 生 亦我所欲也 义 亦我所欲也 二者不可得兼 舍生而取义者也 人生的每一天可能都在面临着人生意义和工作价值的拷问 我们所做的事合
  • 关于小程序web-view缓存的清理

  • bilibili(b站)小火箭页面上划动画效果的实现

    Javascript代码实现 获取当前视口的大小 var viewHeight document documentElement clientHeight 4 小火箭添加单击事件 document querySelector back to
  • java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionVie

    在使用SmartRefreshLayout下拉刷新后 RecycleView在刷新未完成的时候会报如下的错 并闪退掉 报错信息如下 java lang IndexOutOfBoundsException Inconsistency dete
  • 微信支付:支付流程分析、微信扫码支付(HttpClient)、微信支付二维码生成、检测支付状态、订单状态操作准备工作、支付信息回调、MQ处理支付回调状态、定时处理订单状态

    微信支付 微信支付开发的整体思路 生成支付二维码 查询支付状态 微信的服务器 实现订单状态的修改 删除订单 支付状态回查 gt 微信服务器将支付状态返回给支付微服务 MQ处理支付回调状态 RabbitMQ延时队列实现超时订单取消回滚 1 支
  • 06libevent下通信中bufferevent缓冲区的特性介绍

    06libevent下通信中bufferevent缓冲区的特性介绍 以下是关于libevent学习的相关文章 01libevent库的下载与安装并且测试是否安装成功 02libevent库的整体框架思想 03libevent下通信的主要函数
  • pinia 入门教程

    文章目录 pinia介绍 一 pinia安装 二 创建 pinia 实例 三 创建store文件 1 options store 2 setup store 四 state 1 定义state 2 使用state 3 修改state值 4
  • Vue2:官方路由 Vue-Router 3.x

    前端路由 前端路由 根据不同的url地址 页面上展示不同的内容 根据url地址的不同分发到不同的组件 SPA 介绍 spa 是 single page application 简写 意思是单页面应用程序 Vue 适合开发 spa 类型的项目
  • Tom DeMarco:软件工程这个概念已过时?

    原文作者 Tom Demarco 写于2009年7月 作者简介 Tom DeMarco是大西洋系统协会 www atlsysguild com 的负责人 他的职业生涯开始于贝尔实验室 是结构化分析和设计的创始人之一 研究领域主要集中在对软件
  • 浏览器控制台报错:Cross origin requests are only supported for protocol schemes

    浏览器控制台报错 Cross origin requests are only supported for protocol schemes 一 问题 二 原因分析 三 解决方法 一 问题 今天写了一个H5 的小demo 然后在浏览器中运行
  • 管理系列:项目管理之项目汇报总结

    项目汇报是项目实施过程中到达某一节点时 项目经理将项目的开发成果给用户展示介绍 防止项目开发方向与客户期望方向不符 以及推动项目上线运行的关键环节 所以项目汇报的效果对项目的进展方向 推进速度有很重要的影响 所以 在项目汇报之前一定要准备充
  • 编译原理 课程设计 LR(1)分析法

    作业目的 构造LR 1 分析程序 利用它进行语法分析 判断给出的符号串是否为该文法识别的句子 了解LR K 分析方法是严格的从左向右扫描 和自底向上的语法分析方法 作业题目 1 对下列文法 用LR 1 分析法对任意输入的符号串进行分析 0
  • SpringCloud Ribbon

    负载均衡分为服务端负载均衡和客户端负载均衡 SpringCloud Ribbon是基于客户端的负载均衡工具 客户端负载均衡和服务端负载均衡的区别在于客户端要维护一份服务列表 Ribbon从Eureka server中获取服务列表 根据负载均
  • 到底什么是CLI?

    前端写了这么久 经常用Vue cli webpack cli react cli这些工具 但不怕大家笑话 这些名词我一直不知道啥意思 我也查了资料 网上都说它们叫脚手架或者命令行工具 但对我来说我只是又多知道了几个名称 直到最近接触linu