【Linux第一弹】Linux基础指令(上)
目录
1.ls指令
1.1 ls使用实例
2.pwd指令
3.cd指令
3.1 cd使用实例
4.touch指令
4.1touch使用实例
5.mkdir指令
5.1mkdir使用实例
6.rmdir指令和rm指令
6.1 rmdir指令使用实例->:
6.2 rm指令使用实例
7.man指令
8.cp指令
8.1 cp 使用实例
9.mv指令
9.1mv使用实例
10.cat指令
10.1cat使用实例
11.完结
每一个存在都有问鼎的机会
1.ls指令
语法:ls [选项] [目录或文件]
功能:1.对于目录,列出该目录下所有子目录与文件
2.对于文件,将列出文件名以及其他信息
注:所有的指令的选项都是在其基础上增加新的功能(并不会覆盖旧功能)
这里我想说的是不要看常用选项中没有写目录就以为不会列出目录
常用选项->:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件
-d 将目录像文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的 详细信息 。
-n 用数字的 UID,GID 代替名称。 (介绍 UID , GID )
-F 在每个文件名后附上一个字符以说明该文件的类型, “*” 表示可执行的普通文件; “/” 表示根目录.
“@” 表 示符号链接;“|” 表示 FIFOs ; “=” 表示套接字 (sockets) 。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在 l 文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。 ( 递归 )
-1 一行只输出一个文件。
1.1 ls使用实例
单独使用 ls 讲解->:
这里的pwd是展示当前所处目录,我们使用ls意味着展开/root中的文件或目录,图片上展开的是root中的112目录(这里的112是自己创建的目录,如何创建后面会讲)
ls -a 讲解->:
我们会发现,使用ls -a会多了许多东西,这些其实都是隐藏文件,因为它们都带有隐藏文件的标识符,也就是一个小点,以小点开头的就代表了隐藏文件
所以,-a 的作用是,展示当前目录下的文件/目录(包含隐藏文件)
ls -l 讲解->:
这里多出来的部分其实是文件/目录的详细信息,也就是说 -l 会列出文件的详细信息
我们可以观察到详细信息是以d开头的,这意味着它是一个目录
如果是文件,它的详细信息就不是d开头的
ls -n 讲解->:
我们会发现两处有些不同,这是因为 -n 的作用是列出详细的信息时用数字的UID,GID代替名称(这里先不用管UID,GID)
注意:在Linux中,选项的顺序并不会影响实际效果,这就意味着我们可以一起使用,如下->:
我们会发现,它既打印出来隐藏文件,又打印出了详细信息,并且二者的结果一样,说明顺序不影响。
当然我们也可以使用 ls -aln,并不会有选项的数量限制
2.pwd指令
pwd指令很简单,它的作用就是展示当前所处目录(不展示文件)
如图,我们当前处于root目录下
3.cd指令
语法: cd 目录名
功能: 改变工作目录,将当前目录改变到指定目录下
由于cd的语法很少,我们直接举例展示
我们先讲一个知识点
在Linux下,所有的目录/文件都是从根目录开始的,因此我们可以顺着一条线找到目录或文件
而根目录的标识就是一个斜杠 /
3.1 cd使用实例
用法一: cd 绝对路径
接下来我们会细致的分析cd绝对路径,在使用cd绝对路径时,需要一层一层的写绝对路径,我们用图片展示->:
这里我们知道,root是根目录下的目录,因此我们可以直接跳到root目录
当然我们也可以这样写->:
这里最开始写上的 / 代表从根目录开始走,跳到根目录下的root目录,而上一种写法的意义为在当前目录下查找root目录,如果查找到了则进行跳转,否则报错
(
/
只有在路径的开头时代表根目录,其余都表示分隔符)
接下来我们想跳到root下的112目录,我们可以这样写->:
我们发现我们使用/112会报错,这是因为 / 代表从根目录下开始查找,而我们不加 / 后,就会从当前目录下开始查找能否跳转,也就会成功
我们可以从root直接找到112吗?
这就要看我们怎么写了,如下图->:
可见,直接在根目录下找112是找不到的,会报错,而先进入root再进入112,就可以跳到112了
cd 可以跳到文件里吗?不可以,因为我们在功能上说了,它是跳到目录下
有道友问了?我们那么多文件,我怎么知道文件都叫什么啊?
这时就要用到 ls指令 了啊,用ls列表出当前目录下的所有文件,就知道都叫什么了
用法2: cd 相对路径
相对路径有两种,一种为 .. —— 一种为 . 没错,你没看错,就是点,两个点代表上级目录或文件,一个点代表 当前目录/文件,我们展示一下->:
我们可以看到,cd .代表跳到当前目录,也就是没跳别的地方,pwd也就没改变,
cd .. 代表跳到上级目录,也就从112中跳出去了,跳到了root
用法3: cd 相对路径+绝对路径
相对路径和绝对路径可以一起使用,如下->:
这里我们细致的讲一下如何实现的
我们首先看红色的,我们使用相对路径跳到上级目录,然后又执行了 /lesson2 , 此时,这里的/就不代表从根目录下查找,因为你一种是相对路径一种是绝对路径,/ 就相当于变为了一种分隔符类似的,变成了代表从当前目录下查找
所以实际上执行的是,先跳到上级目录(跳到目录112中),然后在目录112中查找lesson2目录
cd ../..,这是因为两个上级目录不可以连续使用,如cd ....,所以 / 也变成了一个分隔符,它是先跳到了上级目录112中,然后从112中跳到了root
用法4: cd /
我们上面提到过,/ 是根目录,而cd / 可以直接跳到根目录下,如下图->:
用法5: cd ~
cd ~ 可以让我们直接跳到家目录下,什么是家目录?就是我们当前用户的目录
如下图->:
用法6: cd -
cd - 可以退回到上一次的所在目录,如下图->:
4.touch指令
语法: touch [选项] [文件]
功能 : 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
常用选项->:
-a : 只改变access time
-c : 只改变modification time
4.1touch使用实例
用法1 ->: touch 文件名
我们先观察到,lesson2中并没有任何文件或目录,我们在当前目录下touch创建一个test2的文件,再用ls展开当前目录,发现,确实创建了,并通过ls -l 详细的看到确实是文件
nano +普通文件名字
指令:通过nano指令可以进入文件写代码;
输入nano test2后,我们会进入下面的画面
如果写完了可以使用 ctrl + x 进行保存,之后在最下面会弹出一个选项,摁Y确认,再摁回车保存即可
之后我们可以使用cat指令输出文件内容(后面讲cat指令)
5.mkdir指令
语法: touch [选项] dirname
功能 : 在当前目录下创建一个名为 "dirname" 的目录
常用选项->:
-p :可以一次建立多个目录
5.1mkdir使用实例
用法1->: mkidr 目录名
我们可以观察到,最开始的lesson2目录中只有一个test2文件,而我们mkdir后,新增了两个目录,这就是mkdir的使用
mkdir可以直接创建多个目录,如下->:
用法2->: mkdir -p 目录名/目录名/目录名/.......
但是,mkdir不可以直接递归创建多个文件,如下->:
解释一下,我们想在112中创建一个color目录,在color目录中创建一个red目录,在red目录中创建一个blue目录,但是直接用mkdir不可以创建,报错了,这是因为我们没有使用-p选项
我们使用mkdir -p 后,可以发现,递归创建成功了。这就是mkdir -p 的使用
6.rmdir指令和rm指令
rmdir 是一个与 mkdir 相对应的命令。 mkdir 是建立目录,而 rmdir 是删除命令。
语法: rmdir [-p] [dirName]
使用对象: 具有当前目录操作权限的所有使用者
功能: 删除空目录
常用选项:
-p 当子目录被删除后如果父目录变为空目录的话,就连带父目录一起删除(即递归删除)
rm 命令可以同时删除文件或目录
语法 : rm [-f-i-r-v][dirName/dir]
适用对象 :所有使用者
功能 :删除文件或目录
6.1 rmdir指令使用实例->:
用法1: rmdir 目录名
使用rmdir可以删除指定目录,但是有一些注意事项,我们下面讲:
看下图->:我们使用rmdir时有三种情况不可以删
第一种情况 ->: 删掉当前所在目录
第二种情况->: 删除所有上级目录
第三种情况->: 想要删除的目录中存在目录/文件
我们接下来举例,看下图->:
下图中,我们
这张图说明的是前两种情况,接下来的图是第三种情况:
我们想要删除112里面的color目录,但是因为color目录中存在东西,所以不可以删除此目录
用法2: rmdir -p 目录名/目录名/......
我们上述中无法直接删除color目录,难到我们要一步一步进去删再一步一步出来吗?
没这个必要,使用rmdir -p 递归删除,直接实现,如下图->:
可以观察到,color目录被全部删除了
6.2 rm指令使用实例
用法1: rm -r 文件名/目录名
首先,rm的删除与rmdir类似,都是不可以删除当前目录或者一切的上级目录
但是如果rm删除的目录中存在其他东西,是可以删除的
效果如下->:
我们讲解一下上图,(别看话长但很简单)首先我们观察到,big目录中存在一个文件test999,我们返回上级目录112,接着删除big目录,它问我们,确定要删除big目录吗?我们回答y(yes),接着,它检测到big目录中存在test999文件,它就会又问我们,要删除test999文件吗?(因为如果不删除此文件,无法删除目录),我们回答yes。那么文件删掉了,它会递归回来,问我们确定要删除big目录吗?我们再回答y,此时成功删掉了。
声明: 不删除回答n
用法2: rm -rf 文件名/目录名
使用rm -rf可以无视文件权限,直接删除目录/文件,也就是不会再询问你,如下图->:
用法3: rm 文件名
使用rm 文件名可以删除文件,但是不可以删除目录,如下->:
可以观察到,rm直接加文件是不可以删除的,因为rm删除文件需要使用rm -r,但是rm 文件名可以删除文件
7.man指令
语法: man [选项] 命令
功能: 查找命令如何使用
常用选项:
-k 根据关键字搜索联机帮助
num 只在第num章节查找
-a 将所有章节显示出来,比如man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当摁下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
解释一下 ,man 手册分为8章
1 是普通的命令
2 是系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数 , 如 printf,fread4 是特殊文件 , 也就是 /dev 下的各种设备文件
5 是指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的 , 由各个游戏自己定义
7 是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明
8 是系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfig
8.cp指令
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 在当前目录下查找,并复制文件或目录
说明:
cp 指令用于复制文件或目录
如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
8.1 cp 使用实例
用法1: cp -r 源目录/文件 目标目录/文件
首先我们看一下下图,观察到112目录下有许多目录,我们想要实现目录的复制或者文件的复制就需要使用cp -r
比如,我们现在就想把lesson1目录复制进lesson2目录中,我们可以这样写:
可见,lesson1被复制到lesson2中了
额外补充:如果cp的目标文件/目录不存在,则会自己创建一个目标文件/目录,如下图->:
用法2: cp -i 文件名
上述讲解中,如果有同志自己尝试会发现cp其实没有 -r 是不可以复制目录的(源文件是目录不可以,目标目录无所谓),但是cp -r 既可以操作目录又可以操作文件,所以这里没有讲解,只需要记住无时无刻加 -r 即可
cp -i 的作用为在覆盖文件之前先询问用户,注意,我说的是 "覆盖" ,不是复制
覆盖是文件名重复的意义,如下->:
这里lesson1中的apple复制到lesson2中的apple就属于覆盖,加-i会在拷贝前询问你(其实不加也会询问)
9.mv指令
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
常用选项 :
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
9.1mv使用实例
用法1: mv 文件/目录名 文件/目录名(重命名功能)
mv 文件名 文件名可以实现文件名的重定义,也就是改名(即覆盖),这里演示一下
如图,我们将apple文件的名字更改为了peach
如果我们改的名字与别的文件名字重复了,那就会实现覆盖,演示一下->:
将peach更改为apple会进行覆盖,还询问了我们一下
用法2: mv 文件/目录 路径(转移功能)
可见,将lesson1中的apple文件转移到了上级目录中
再看一个->:
用法3: mv 文件名 路径+新名字
这个指令会将两个操作同时进行,结果就是转移到了新路径下并且更换了名字
将lesson2目录转移到了root目录下
10.cat指令
语法: cat [ 选项 ][ 文件 ]
功能: 查看目标文件的内容
常用选项 :
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
10.1cat使用实例
用法1: cat 文件名
11.完结
相关文章:

【Linux第一弹】Linux基础指令(上)
目录 1.ls指令 1.1 ls使用实例 2.pwd指令 3.cd指令 3.1 cd使用实例 4.touch指令 4.1touch使用实例 5.mkdir指令 5.1mkdir使用实例 6.rmdir指令和rm指令 6.1 rmdir指令使用实例->: 6.2 rm指令使用实例 7.man指令 8.cp指令 8.1 cp 使用实例 9.mv指令 9.1mv使用…...

GitCode 助力 JeeSite:开启企业级快速开发新篇章
项目仓库(点击阅读原文链接可直达前端仓库) https://gitcode.com/thinkgem/jeesite 企业级快速开发的得力助手:JeeSite 快速开发平台 JeeSite 不仅仅是一个普通的后台开发框架,而是一套全面的企业级快速开发解决方案。后端基于 …...
OpenCV计算摄影学(3)CUDA 图像去噪函数fastNlMeansDenoising()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用非局部均值去噪算法(Non-local Means Denoising algorithm)执行图像去噪,该算法来源于 http://www.ipol.…...
【react】快速上手基础教程
目录 一、React 简介 1.什么是 React 2.React 核心特性 二、环境搭建 1. 创建 React 项目 2.关键配置 三、核心概念 1. JSX 语法 表达式嵌入 样式处理 2. 组件 (Component) 3. 状态 (State) 与属性 (Props) 4. 事件处理 合成事件(SyntheticEvent) 5. …...
leaflet扩展插件esri-leaflet.js
esri-leaflet.js是一个开源的JavaScript库,它允许开发者在Leaflet地图上轻松地使用Esri的服务,如ArcGIS Online和ArcGIS Server的图层。以下是对esri-leaflet.js插件的详细介绍: 一、主要功能 esri-leaflet.js的主要功能是将Esri的地图服务…...

electron-builder打包时github包下载失败【解决办法】
各位朋友们,在使用electron开发时,选择了electron-builder作为编译打包工具时,是否经常遇到无法从github上下载依赖包问题,如下报错: Get "https://github.com/electron/electron/releases/download/v6.1.12/ele…...
分片加载网络图片
用户提到他们有一个很大的图片需要优化加载速度。用户尝试了把图片分成多份,每份高度100或者自定义,加载时有动画效果,但感觉还是有点慢。个人还是建议图片压缩或者使用CDN加速。 首先,我需要理解用户的问题。他们可能是在一个网…...
考研复试问题总结-数据结构(1)
1. 说一下你对数据结构的理解 我觉得数据结构不仅仅是存数据的“容器”,更是一种思维方式。其实,在我们写程序时,经常会遇到各种各样的数据操作需求,而不同的数据结构能解决问题的效率和方式都不一样,所以选择合适的数…...

DeepSeek 助力 Vue3 开发:打造丝滑的网格布局(Grid Layout)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

架构案例:从初创互联网公司到分布式存储与反应式编程框架的架构设计
文章目录 引言一、初创互联网公司架构演化案例1. 万级日订单级别架构2. 十万级日订单级别架构3. 百万级日订单级别架构 二、分布式存储系统 Doris 架构案例三、反应式编程框架架构案例总结 引言 分布式架构 今天我们将探讨三种不同类型的架构案例,分别探讨 一个初…...

51页精品PPT | 农产品区块链溯源信息化平台整体解决方案
PPT展示了一个基于区块链技术的农产品溯源信息化平台的整体解决方案。它从建设背景和需求分析出发,强调了农产品质量安全溯源的重要性以及国际国内的相关政策要求,指出了食品安全问题在流通环节中的根源。方案提出了全面感知、责任到人、定期考核和追溯反…...

【Pytest】setup和teardown的四个级别
文章目录 1.setup和teardown简介2.模块级别的 setup 和 teardown3.函数级别的 setup 和 teardown4.方法级别的 setup 和 teardown5.类级别的 setup 和 teardown 1.setup和teardown简介 在 pytest 中,setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操…...

JavaScript系列03-异步编程全解析
本文介绍了异步相关的内容,包括: 回调函数与回调地狱Promise详解async/await语法Generator函数事件循环机制异步编程最佳实践 1、回调函数与回调地狱 JavaScript最初是为处理网页交互而设计的语言,异步编程是其核心特性之一。最早的异步编…...
Linux学习——退出vi编辑模式
初学Linux的时候,在使用vi 操作时候,有时候可能进入的是一个文件夹,这样子在退出的时候很不好操作! 下面总结一些vi 退出命令,学习! 进入编辑模式,按 o 进行编辑 编辑结束,按ESC 键 跳到命令…...

第2章_保护您的第一个应用程序
第2章_保护您的第一个应用程序 在本章中,您将学习如何使用 Keycloak 保护您的第一个应用程序。为了让事情更有趣,您将运行的示例应用程序由两部分组成,前端 Web 应用程序和后端 REST API。这将向您展示用户如何向前端进行身份验证࿰…...
【AGI】DeepSeek开源周:The whale is making waves!
DeepSeek开源周:The whale is making waves! 思维火花引言一、DeepSeek模型体系的技术演进1. 通用语言模型:DeepSeek-V3系列2. 推理优化模型:DeepSeek-R1系列3. 多模态模型:Janus系列 二、开源周三大工具库的技术解析1…...

Unity中动态切换光照贴图的方法
关键代码:LightmapSettings.lightmaps lightmapDatas; LightmapData中操作三张图:lightmapColor,lightmapDir,以及一张ShadowMap 这里只操作前两张: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public cl…...

第三十四:6.4.【v-model】
6.4.【v-model】:双向绑定 概述:实现 父↔子 之间相互通信。 前序知识 —— v-model的本质 <!-- 使用v-model指令 --> <input type"text" v-model"userName"> <!-- v-model的本质是下面这行代码 --> <inpu…...
React底层常见的设计模式
在React中,常见的设计模式为开发者提供了结构化和可重用的解决方案,有助于提高代码的可维护性和可扩展性。以下是对React中几种常见设计模式的详细解析,并附上示例代码和注释: 1. 容器组件与展示组件模式(Container/P…...

从零基础到通过考试
1. 学习资源与实践平台 使用Proving Grounds进行靶机练习 OSCP的备考过程中,实战练习占据了非常重要的地位。Proving Grounds(PG)是一个由Offensive Security提供的练习平台,拥有152个靶机,涵盖了从基础到进阶的多种…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...

Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...