Linux常见指令

Linux常见指令

  • 1、ls指令
  • 2、pwd命令
  • 3、cd指令
  • 4、touch指令
  • 5、mkdir指令
  • 6、rmdir指令和rm指令
  • 7、man指令
  • 8、cp指令
  • 9、mv指令
  • 10、cat指令
  • 11、重定向
  • 12、more指令
  • 13、less指令
  • 14、head指令
  • 15、tail指令
  • 16、管道
  • 17、时间相关指令
  • 18、cal指令
  • 19、find指令
  • 20、grep指令
  • 21、zip/unzip指令
  • 22、tar指令
  • 23、bc指令
  • 24、uname指令
  • 25、几个重要的热键
  • 26、其他指令
  • 28、命令拓展
  • 29、shell命令以及运行原理

1、ls指令

语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。


1.1、ls:列出该目录下的所有文件名,不包含隐藏文件。

在这里插入图片描述


1.2、ls -a:列出该目录下的所有文件名,包含隐藏文件。
在这里插入图片描述
linux中以.开头的文件为隐藏文件。


1.3、ls -l:列出该目录文件详细信息
在这里插入图片描述列出文件所有信息:包括文件的类型,权限,文件大小,时间,文件名等。
用红色圈起来这一列代表文件的类型,d就是目录文件,-就是普通文件。

多个选项可以搭配一起使用,例如ls -a -l或者ls -al:
在这里插入图片描述

这样就可以列出文件的详细信息,同时包含隐藏文件。
linux任何目录下都有两个隐藏文件:.和..
.文件表示当前路径:帮用户定位当前目录下的一个文件。
..文件表示当前路径的上级路径。

例如我们写了一个C程序,编译运行后我们要运行:
在这里插入图片描述

我们需要通过./a.out来运行它,不能直接用文件名来运行。
那么我们输入的指令呢?指令本质上也是一个可执行程序,我们输入就可以执行然后返回结果给我们。但是为什么指令不需要加./呢?这是因为指令配置了环境变量,这个我们后面再讲。

另外ll的功能相当于ls -l:
在这里插入图片描述


1.4、ls -d 指定目录:将目录像文件一样显示,而不是显示目录下的文件。
在这里插入图片描述


1.5、ls -F:在每个文件名后面附上一个字符说明该文件的类型。*表示可执行的普通文件,/表示目录,@表示符号链接。
在这里插入图片描述


2、pwd命令

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

在这里插入图片描述
当前用户路径为/home/zzy,也就是用户家目录。任何用户都有家目录,就是在/home/xxx。


3、cd指令

语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。


3.1、cd …:修改用户路径为当前路径的上级路径
在这里插入图片描述

3.2、cd配合绝对路径和相对路径进行路径切换
linux的目录结构整体是一颗多叉树,它的叶子节点一定是空目录或非空目录文件,路上的节点是一个非空目录。那么我们对linux的目录增删查改本质上就是对这颗多叉树进行增删查改。
linux路径是从/根路径开始的,我们把从根路径/开始定位到指定位置,具有唯一性的路径称为绝对路径。把以当前自己所处的路径为起始参照位置,来进行特定文件的定位称为相对路径。
在这里插入图片描述


3.3、cd - :回到用户上一次访问的路径
在这里插入图片描述


3.4、cd ~:返回用户家目录
每个用户都有家目录,就是在/home/xxx。
在这里插入图片描述


4、touch指令

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

touch 文件名:用来创建普通文件。
在这里插入图片描述
如果需要修改文件内容,我们可以使用nano:
在这里插入图片描述
在这里插入图片描述
下面有对应选项的功能。


5、mkdir指令

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

5.1、mkdir xxx:创建文件名为xxx的目录
在这里插入图片描述

5.2、 mkdir -p x1/x2/x3 :创建一条路径
在这里插入图片描述
tree指令可以用来查看linux下的目录结构。


6、rmdir指令和rm指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
rmdir只能用来删除空目录。
在这里插入图片描述
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]

6.1、rm 文件名:删除文件,可以删除普通文件和空目录
在这里插入图片描述

6.2、rm -i:删除文件前进行询问
在这里插入图片描述

6.3、rm -f:强制删除文件
在这里插入图片描述

6.4、rm -r:递归删除,用于删除含有文件的目录
在这里插入图片描述

6.5、rm -rf xxx:递归强制删除普通文件或目录(慎用!!!!!!!!!!!)
在这里插入图片描述


7、man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man。语法: man [选项] 命令

7.1、man 1 :查看linux指令
在这里插入图片描述
在这里插入图片描述

7.2、man 2:查看系统调用接口
在这里插入图片描述
在这里插入图片描述

7.3、man 3 :查看C语言接口
在这里插入图片描述
在这里插入图片描述

7.4、 man man:查看man指令如何使用
在这里插入图片描述
在这里插入图片描述
在man指令中退出按q即可。

8、cp指令

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录

8.1、cp指令拷贝普通文件
在这里插入图片描述
8.2、cp -i:覆盖文件之前询问用户
在这里插入图片描述

8.3、cp -f:强制覆盖不询问用户
在这里插入图片描述
8.4、cp -r 拷贝目录
在这里插入图片描述

9、mv指令

语法: mv [选项] 源文件或目录 目标文件或目录
功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

9.1、mv对文件进行重命名
在这里插入图片描述
9.2、mv对文件进行剪切
在这里插入图片描述
9.3、mv对文件进行剪切并重命名
在这里插入图片描述
所以可以这样理解:9.1是对文件移动到当前路径下然后重命名为test.txt。9.2是对文件移动到d1,并没有重命名。


10、cat指令

语法:cat [选项][文件]
功能: 查看目标文件的内容

10.1、cat查看文件内容
在这里插入图片描述

10.2、cat -n:带行号输出文件信息
在这里插入图片描述

10.3、cat -s:不输出多行空行
在这里插入图片描述

10.4、cat -b对非空输出行编号
在这里插入图片描述


11、重定向

你是如何理解指令的?指令本质上是一个可执行程序,它是在linux中特定路径下存在的:/usr/bin。因为指令配置了环境变量,所以可以直接输入指令然后运行。而我们自己写的程序没有配置环境变量,所以需要./来运行,如果将我们写好的编译好的C程序拷贝到/usr/bin目录下,就可以像指令一样直接运行:
在这里插入图片描述

直接使用cat指令,可以从键盘获取数据然后输出:
在这里插入图片描述

echo 指令可以将字符串输出到显示器上:
在这里插入图片描述

那么你如何理解键盘和显示器呢?数据怎么显示到显示器上的,又是怎么从键盘获取的呢?
本质上键盘、显示器也是文件,向显示器上打印数据就是将数据写入到显示器文件,从键盘获取数据就是从键盘文件中获取数据。linux下一切皆文件。

11.1、输出重定向:
在这里插入图片描述
输出重定向:本来应该显示到显示器上的内容,现在写入到文件中。并且每次都是清空文件然后再写入。

11.2、追加重定向:
在这里插入图片描述
追加重定向:不清空文件,在文件末尾追加内容。

11.3、输入重定向:
在这里插入图片描述
输入重定向:本来应该从键盘文件中读取,现在从指定的文件中读取。


12、more指令

cat指令是不适合看大文本的,适合看小文本。
如果我们要看一个大文本,如项目、日志等。就需要下面的命令。
more:功能类似cat,查看文本信息。
下面我们通过一行命令构建一个大文本:

cnt=1; while [ $cnt -le 10000 ]; do echo "hello linux $cnt"; let cnt++; done > f.txt

more查看文本:
在这里插入图片描述
可以通过enter键向后翻,通过q退出more。


13、less指令

less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前
不会加载整个文件。

在这里插入图片描述
可以通过上下键翻阅,也可以通过jk键进行上下翻阅。q退出。

/:可以向下寻找字符串
在这里插入图片描述

?:可以向上查找字符串
在这里插入图片描述


14、head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]… [文件]…
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

14.1、head查看文本
在这里插入图片描述
默认显示前10行

14.2、head -n:显示前n行
在这里插入图片描述


15、tail指令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -
f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

15.1、tail指令查看文本:默认查看最后10行
在这里插入图片描述
15.2、tail -n:查看最后n行
在这里插入图片描述


16、管道

现在假设我想查看f.txt文件中的6-10行,该如何实现呢?
方式一:先用head将前10行输出重定向到文件中,然后用tail显示最后5行。
在这里插入图片描述
但是这种方式还是比较麻烦,我们可以利用管道:
在这里插入图片描述
|就是管道,将head取得的前10行通过管道流向tail。管道是一个内存级的文件。

还可以统计文本行数:
在这里插入图片描述


17、时间相关指令

date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]

在这里插入图片描述
在这里插入图片描述
date +%s:显示时间戳
在这里插入图片描述
时间戳:从1970年1月1日午夜开始到现在所经过的秒数。

date -d@时间戳:通过时间戳显示时间信息
在这里插入图片描述


18、cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

18.1、cal默认显示当前月份日历
在这里插入图片描述
18.2、cal -3:显示当前月份、前一月、后一月日历信息
在这里插入图片描述
18.3、cal 年份:显示当年日历,也可以加-y,也可以不加,可以认为默认就是加-y的。
在这里插入图片描述


19、find指令

语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:find -name 查找文件名。其他选项可以自行查阅man文档使用。

例如我想查看当前路径下的test.c文件:
在这里插入图片描述

例如我想查阅家目录下所有的.c文件:
在这里插入图片描述
*是通配符,查找出所有以.c结尾的文件。

使用which可以查看系统指令的位置:在/usr/bin下面找
在这里插入图片描述


20、grep指令

grep是行过滤工具
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来

20.1、grep过滤出指定字符串
在这里插入图片描述

20.2、grep -n带行号输出
在这里插入图片描述

20.3、grep -v:反向匹配,输出不存在给定字符串的数据
在这里插入图片描述

20.4、grep -i:忽略大小写
在这里插入图片描述


21、zip/unzip指令

zip/unzip是linux用来打包和解包的命令。

使用zip/unzip对普通文件进行打包并解包:
在这里插入图片描述
zip打包目录需要带-r:
在这里插入图片描述

unzip -d指定解压路径:

在这里插入图片描述


22、tar指令

tar指令也是用来打包和解包的。
tar [-cxtzjvf] 文件与目录 …参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

22.1、tar czf:打包
在这里插入图片描述

22.2、tar xzf:解包
在这里插入图片描述
22.3、-C指定解压路径
在这里插入图片描述
-v可以查看压缩或解压的过程。


23、bc指令

bc相当于计算器,使用如下:quit可以退出
在这里插入图片描述
搭配echo和管道使用:
在这里插入图片描述


24、uname指令

语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

24.1、uname -a:查看主机所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

在这里插入图片描述

24.2、uname -r:查看操作系统内核版本
在这里插入图片描述


25、几个重要的热键

25.1、ctrl c:可以快速终止程序,例如在运行可执行程序的时候卡死了,可以直接ctrl c结束进程。例如我们输入了一串很长的命令,如果全部删掉要很长时间,可以直接ctrl c。
在这里插入图片描述

25.2、ctrl d:退出当前账户
在这里插入图片描述
25.3、tab:命令补全
在这里插入图片描述
上面输入wh按两下tab可以显示出以wh开头的所有指令。若只有一个指令按tab可以直接补全。

25.4、ctrl r:检索历史命令
下面演示使用ctrl,并输入grep检索之前使用过的命令:
在这里插入图片描述


26、其他指令

当我们处于root账户下,可以进行账户的增删改:
26.1、adduser xxx:添加用户,设置密码,并创建家目录。
在这里插入图片描述
26.2、passwd xxx:修改用户密码
在这里插入图片描述

26.3、deluser:删除用户
在这里插入图片描述

26.4、whoami:查看当前用户
在这里插入图片描述

26.5、which:查看指令所处位置
在这里插入图片描述

26.6、alias:给指令取别名
ll相当于是ls -l的别名,下面我们也可以使用alias取别名:
在这里插入图片描述

26.7、exit:用户退出相当于ctrl d的功能
在这里插入图片描述

26.8、history:查看历史命令,保存最近一千条
在这里插入图片描述


28、命令拓展

安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。


29、shell命令以及运行原理

我们先来看命令行:
在这里插入图片描述
分别为:用户名、@、主机名、:、当前目录、命令行提示符。
我们输入命令的本质就是输入字符串。而指令的本质就是已经写好编译好的程序,在系统的特定路径下(/usr/bin)存放。

广义上:linux操作系统为shell外壳+linux内核。
狭义上:linux操作系统就指的是linux内核。

我们所有的指令,都要在linux系统内部运行,但是OS使用难度比较高,这是一方面,另一方面为了保护操作系统,我们用户不能直接和OS打交道。所以就有了shell,shell是对命令行解释器的统称,shell将我们输入的命令解析,然后传给OS执行,然后再将结果返回给用户。

命令行解释器存在的意义:
1、对命令进行解释。
2、保护OS,对于用户的非法请求,直接拦截。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:入门详解(关于C与C++基本差别)

目录 一.C的第一个程序 二.命名空间(namespace) 1.命名空间的定义与使用: (1)命名空间里可以定义变量,函数,结构体等多种类型 (2)命名空间调用(&#xf…

智能机器人学习机WT3000A AI芯片方案-自然语音交互 打造沉浸式学习体验

一、概述 当AI浪潮席卷全球,教育领域也未能幸免。AI学习机,这个打着“个性化学习”、“精准提分”旗号的新兴产品,正以惊人的速度占领市场。从一线城市到偏远乡镇,从学龄前儿童到高考备考生,AI学习机的广告铺天盖地&am…

字符串相乘——力扣

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", num2 "3" …

C/C++蓝桥杯算法真题打卡(Day3)

一、P8598 [蓝桥杯 2013 省 AB] 错误票据 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> using namespace std;int main() {int N;cin >> N; // 读取数据行数unordered_map<int, int> idCount; // 用于统计每个ID出现的次数vector<int> ids; …

关于OceanBase与CDH适配的经验分享

CDH是Cloudera早期推出的一个开源平台版本&#xff0c;它实质上成为了Apache Hadoop生态系统内公认的安装与管理平台&#xff0c;专为企业级需求量身打造。CDH为用户提供了即装即用的企业级解决方案。通过整合Hadoop与另外十多项关键开源项目&#xff0c;Cloudera构建了一个功能…

【CSS3】筑基篇

目录 复合选择器后代选择器子选择器并集选择器交集选择器伪类选择器 CSS 三大特性继承性层叠性优先级 背景属性背景色背景图背景图平铺方式背景图位置背景图缩放背景图固定背景复合属性 显示模式显示模式块级元素行内元素行内块元素 转换显示模式 结构伪类选择器结构伪类选择器…

假设检验与置信区间在机器学习中的应用

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 &#x1f4da; 引言 在机器学…

鸿蒙Next-应用检测、安装以及企业内部商店的实现

一、企业内部应用检测和更新升级 A应用检测是否安装B应用 canOpenApp():boolean{ try { let link schB://com.example.test/open; // 替换成你目标应用的link串儿 let canOpen bundleManager.canOpenLink(link); console.log("canOpen:"canOpen…

Locker 是 Godot 的一个开源插件,它提供了一种快速且可扩展的方式来使用不同的策略保存和加载数据,并且具有开箱即用的 JSON 和加密功能。

一、软件介绍 文末提供下载 Locker 插件是在 Godot 4.3 中创建的框架&#xff0c;旨在简化在 Godot 项目中保存、加载和管理数据的过程。该插件的主要目标之一是对用户自定义开放&#xff0c;允许使用不同的用户定义策略来访问数据。并且具有开箱即用的 JSON 和加密功能。 二、…

(更新完)LPZero: Language Model Zero-cost Proxy Search from Zero

LPZero代码 摘要 神经架构搜索 (NAS) 有助于自动执行有效的神经网络搜索&#xff0c;同时需要大量的计算资源&#xff0c;尤其是对于语言模型。零样本 NAS 利用零成本 (ZC) 代理来估计模型性能&#xff0c;从而显着降低计算需求。然而&#xff0c;现有的 ZC 代理严重依赖于深…

Varlens(手机上的单反)Ver.1.9.3 高级版.apk

Varlens 是一款专业级手机摄影软件&#xff0c;旨在通过丰富的功能和高自由度参数调节&#xff0c;让手机拍摄效果媲美微单相机。以下是核心功能总结&#xff1a; 一、核心功能 专业拍摄模式 支持手动/自动/程序模式&#xff0c;可调节ISO、快门速度、EV、白平衡等参数27 提供…

Unity2017打包出来后的场景一片红

bug展示&#xff1a; 解决办法&#xff1a; Edit——Project Settings——Graphics——添加下面这俩Shader(用于UI展示)即可。

VS Code C++ 开发环境配置

VS Code 是当前非常流行的开发工具. 本文讲述如何配置 VS Code 作为 C开发环境. 本文将按照如下步骤来介绍如何配置 VS Code 作为 C开发环境. 安装编译器安装插件配置工作区 第一个步骤的具体操作会因为系统不同或者方案不同而有不同的选择. 环境要求 首先需要立即 VS Code…

html-表格标签

一、表格标签 1. 表格的主要作用 表格主要用于显示&#xff64;展示数据,因为它可以让数据显示的非常的规整,可读性非常好&#xff61;特别是后台展示数据 的时候,能够熟练运用表格就显得很重要&#xff61;一个清爽简约的表格能够把繁杂的数据表现得很有条理&#xff61; 总…

ROS2-话题学习

强烈推荐教程&#xff1a; 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

Java在小米SU7 Ultra汽车中的技术赋能

目录 一、智能驾驶“大脑”与实时数据 场景一&#xff1a;海量数据的分布式计算 场景二&#xff1a;实时决策的毫秒级响应 场景三&#xff1a;弹性扩展与容错机制 技术隐喻&#xff1a; 二、车载信息系统&#xff08;IVI&#xff09;的交互 场景一&#xff1a;Android Automo…

Oracle RAC配置原理详解:构建高可用与高性能的数据库集群

在现代企业级应用中&#xff0c;数据库的高可用性和高性能是至关重要的。Oracle Real Application Clusters&#xff08;RAC&#xff09;是Oracle数据库提供的一种集群解决方案&#xff0c;能够将多个数据库实例部署在不同的服务器上&#xff0c;实现负载均衡和故障切换&#x…

ESP8266TCP客户端(单连接TCP Client)

单连接TCP Client 电脑作为服务器&#xff0c;8266作为客户端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相应&#xff1a;ok 2.连接路由器 ATCWJAP“SSID”&#xff0c;“password” //SSID就是wifi的名字&#xff0c; password WIFI密码 响应&#xff…

【Linux】软硬连接与动静态库

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.软硬连接02.动静态库静态库&#xff08;Static Library&#xff09;动态库&#xff08;Dynamic Library&#xff09; 03.动态库加载 01.软硬连接 我们先看一下它的用法 这个是…

关于Springboot 应配置外移和Maven个性化打包一些做法

期望达到的效果是每次更新服务器端应用只需要更新主程序jar 依赖jar单独分离。配置文件独立存放于文件夹内&#xff0c;更新程序并不会覆盖已有的配置信息。 一、配置外移 1、开发环境外移 做法&#xff1a;在项目同级或者上级创建config文件夹放置配置文件&#xff0c;具体m…