排查有问题的部

上传文件的另一种方式:alt+p-》指定目录+拖拽文件

循环创建:mkdir -p /root/aaa/bbb

强制删除-f force(强制) 强制删除,忽略不存在的文件或目录

递归删除:-r recursive(递归)

cd - :可以在最近的两次目录之间切换

touch命令创建文件touch a.txt#在当前目录创建a.txt文件

mv:1将文件移动到另一个目录中:mv 文件 目录/;2:重命名:mv 旧文件名/旧目录名 新文件名/新目录名 3:将目录移动 到 另一个目录中:mv dir1 /

总结:mv 一是移动 二重命名;关键看是否第二个参数已经存在,已经存在就是移动;之前不存在就是重命名

more命令:分页显示文件内容还支持直接跳转行等功能

语法: more 文件路径

相关操作:

Enter: 向下n行, 需要定义, 默认为1行

空格键: 向下滚动一屏 或 Ctrl + F

B**键** : 返回上一屏 或 Ctrl+B

q: 退出more

more /root/initial-setup-ks.cfg

cp:cp a.txt dir1:将a.txt复制到dir1 目录;

cp a.txt b.txt #将a.txt复制到b.txt

find:查找符合条件的文件

find / -name 'ins' #查找/目录下以文件名ins开头的文件

find / -name mysqlfidn

find / -type f -size +100M #查找/目录下文件大小大于100M的文件

grep 命令可以对文件进行文本查询

grep long amaconda-ks.cfg #在文件中查找lang

tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录

tar -czvf test.tar.gz /root/test #打包并压缩

ps命令用来列出系统中当前运行的那些进程

ps -ef #查看所有进程

kill -9 12345 #杀死pid为12345的进程 (9:无条件终止)

ps -ef | grep java #查询名称中包含java的进程

删除用户

userdel -r yh1 #删除用户yh1

r: 对文件是指可读取内容 对目录是可以ls

w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)

x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录

chmod命令用来变更文件或目录的权限

chmod 666 a.txt

chmod u+x a.txt

chmod u=rwx,g=rw,o=x a.txt

systemctl命令

在Centos7.0之前,使用的是service命令,在Centos7.0之后,使用systemctl命令来进行服务控制

systemctl 操作 服务名

相关语法介绍

服务管理命令

systemctl start 服务名 开启服务

systemctl stop 服务名 关闭服务

systemctl status 服务名 显示服务状态

systemctl enable 服务名 设置开机自启动

systemctl disable 服务名 关闭开机自启动

  • 相关操作

网络操作

systemctl status network #查看网络服务状态

systemctl stop network #停止网络服务

systemctl start network #启动网络服务

systemctl restart network # 启动网络服务

防火墙操作

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.server #禁止firewall开机启动

systemctl status firewalld.service #查看防火墙状态

磁盘管理命令

df -h : disk free 显示磁盘剩余空间

du -h [目录名] :disk usage 显示目录下的目录大小

free -h :查看内存的使用率

时间和日期

date :查看系统时间(默认)

date +"%Y-%m-%d %H:%M:%S" 查看系统时间(指定格式)

date -s "时间字符串" 设置系统时间

ln 命令可以用来创建软连接,类似于创建快捷键方式

ln [参数]【源文件或目录】【目标文件或目录】

ln -s java java8

关机重启

reboot:重新启动

shutdown -h now :马上关机(断电关机)

halt:立刻关机(centos)(不断电关机)

vi a.txt # 直接打开文件

vim a.txt #vim是vi的增强版

vim a.txt +10#直接打开文件,并定位到底十行

vi 编辑器三种模式:

1.命令行模式:打开文件首先进入命令行模式:通过对文件进行常规的编辑操作,例如定位、翻页、复制、粘贴、删除;在其他图形编辑器下通过快捷键、鼠标实现的操作,都在命令行模式下实现的:是使用vi的入口

2.末行模式 --执行 保存 退出等操作:是退出vi返回到控制台,需要在末行模式下输入命令 末行模式是vi的出口

3,编辑模式--正常的编辑文字

末行模式

异常处理

如果vi异常退出,在磁盘上可能会保存有 交换文件

下次再使用vi编辑文件时,会看到,按下字母d删除交换文件即可

然后,回到文件编辑目录,删除生成的隐藏文件,如:

rm .Hello.java.swp -fr

重定向 >

将命令结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:

ls >test.txt (text.txt如果不存在,则创建,存在则覆盖其内容)

将/目录下文件的详情保存到test.txt文件中

ll / > test.txt

把内容重新写到文件上(覆盖)

重定向 >> 追加写入

echo "tunan" >>aaa.txt

重点:

cut:文件内容查看命令,cut命令可以从一个文本文件或者文本流中提取文本列

实例:

如果一个学生报表信息文件tu.txt,包含id、name、age、score.

id name age score

01 tom 18 78

02 jack 20 85

03 bill 16 90

04 mary 24 77

05 anna 21 85

1)使用-d 和 -f 显示文件中的指定的列

#显示id列

cut -d " " -f 1 stu.txt

id

01

02

03

04

05

#显示name 和age列

cut -d " " -f 2,3 stu.txt

name age

tom 18

jack 20

bill 16

mary 24

anna 21

解释:

-d " ":用来指定文件字段之间的分割符,如果文件的分割符是制表符则不需要指定该参数

-f 数字:用来指定哪一列

2) --complement 选项提取指定字段之外的列(打印除了第二列之外的列)

cut -d " " -f 2 --complement stu.txt

id age score

01 18 78

02 20 85

03 16 90

04 24 77

05 21 85

3)指定字段的字符或者字节范围

cut命令可以将一串字符作为列来显示,字符字段的记法:

N-:从第N个字节、字符、字段到结尾;

N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;

-M:从第一个直接、字符、字段到第M个(包括M在内)字节、字符、字段

#打印第一个到第四个字符:

cut -c 1-4 stu.txt

id n

01 t

02 j

03 b

04 m

05 a

#打印前2个字符:

cut -c -2 stu.txt

id

01

02

03

04

05

#打印从第5个字符开始到结尾

cut -c 5- stu.txt

ame age score

om 18 78

ack 20 85

ilk 16 90

ary 24 77

nna 21 85

问题:剪切成绩去重排序

利用管道

cut -d " " -f stu.txt | sort

cut -d " " -f stu.txt |sort -r

age 24 21 20 18 16

cut -d " " -f stu.txt | sort -r -n

4.3.sort 命令

4.3.1目标

sort 可针对文本文件的内容,以行为单位来排序。

4.3.2路径

第一步:对字符串排序

第二步:去重排序

第三步:对数值排序

第四步:对成绩排序

4.3.3实现

4.3.3.1第一步:对字符串排序

准备工作

vim sort_demo1.txt

文件内容

banana

apple

pear

orange

pear

4.3.2.2第二步:去重排序

参数 英文 含义
-u unique 去掉重复的

它的作用很简单,就是在输出行中去除重复行。

案例;

[root@node1 ~]# sort -u sort_demo1.txt

apple banana orange pear

4.3.2.3第三步:对数值排序

参数 英文 含义
-n numeric-sort 按照数值大小排序(小-》大)
-r reverse 使次序颠倒

准备数据

vim sort_demo2.txt

1

3

5

7

11

2

4

6

10

8

9

默认按照字符串排序

sort sort_demo2.txt

1

10

11

2

3

4

5

6

7

8

9

升序

sort -n sort_demo2.txt

1

2

3

4

5

6

7

8

9

10

11

倒序

sort -n -r sort_demo2.txt

11

10

9

8

7

6

5

4

3

2

1

4.3.2.4第四部:对成绩排序

参数 英文 含义
-t field-separator 指定字段分隔符
-k key 根据那一列排序

准备工作

vim sort_demo3.txt

zhangsan 68 99 26

lisi 98 66 96

wangwu 38 33 86

zhaoliu 78 44 36

maqi 88 22 66

zhouba 98 44 46

练习:根据第二段成绩 进行倒序显示 所有内容

[root@node1 ~]# cat sort_demo3.txt | sort -t ' ' -k 2 -n -r zhouba 98 44 46 lisi 98 66 96 maqi 88 22 66 zhaoliu 78 44 36 zhangsan 68 99 26 wangwu 38 33 86

4.4.3实现

4.4.3.1.第一步:实现去重效果

命令 英文 含义
uniq [参数] 文件 unique 唯一 去除重复行

准备

vim uniq_demo.txt

张三 98

李四 100

王五 90

赵六 95

麻七 70

李四 100

王五 90

赵六 95

麻七 70

实现1:简单去重,必须要加sort;实现去重效果(按照成绩排序,降序,去重)是按照第二个空格去重

[root@node1 ~]# cat uniq_demo.txt |sort -t " " -k 2 -n -r |uniq 李四 100 张三 98 赵六 95 王五 90 麻七 70

4.4.3.2第二部:不但去重,还要统计出现的次数

参数 英文 含义
-c count 统计每行内容出现的次数

注意:要去重必须要使用sort:如果要排序的话一定要在sort中加判断条件是怎样进行排序的

[root@node1 ~]# cat uniq_demo.txt| sort -t " " -k 2 -n -r |uniq -c 2 李四 100 1 张三 98 2 赵六 95 2 王五 90 2 麻七 70 1

4.5.wc命令

wc命令:统计行数 单词数 字节数

在默认的情况下,wc将计算指定文件的行数、字数以及字节数。

命令使用格式为:

wc 文件名(可以理解为wordcount吧)

wc**命令参数**

参数 解释
-l 统计行数
-c 统计字节数
-w 统计单词数
-m 统计字符数

实例:

有个文件test_wc.txt内容如下;

1 11

222 bbb

333 aaa bbb

444 aaa bbb ccc

555 aaa bbb ccc ddd

666 aaa bbb ccc ddd eee

1)统计指定文件行数 、字数、字节数

[root@node1 ~]# wc test_wc.txt 7 21 86 test_wc.txt

#行数为7, 单词数为21, 字节数为86

2)查看跟目录下有多少个文件

[root@node1 ~]# ls / | wc -w 20

4.6.awk命令

4.6.1简历

awk是一种处理文本文件的命令,是一个强大的文本分析工具,它支持分段,默认每行按空格或TAB分割。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。

awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

语法:

awk [-F field-separator] 'commands' input-file(s)

awk -F|-f|-v 'BEGIN{ } / / {comand1;comand2} END{ }' file

-F 定义列分隔符

-f指定调用脚本

-v定义变量

‘ ’引用代码块,awk执行语句必须包含在内

BEGIN{}初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分割符

{}命令代码块,包含一条或多条命令

//用来定义需要匹配的模式(字符串或者正则表达式),对满足匹配模式的进行上条代码块的操作

END{}结尾代码块,在对每一行进行处理之后再自行的代码块,主要是进行最终计算或输出结尾摘要信息

运行方式:

  • 命令行方式

    awk [-F field-separator] 'commands' input-file(s)

其中,commands是真正awk命令,[-F域分割符]是可选的。input -flie(s)是待处理的文件。在awk中,文件的每一行中,由域分割符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

  • 脚本方式

将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,通过键入脚本名称来调用。相当于shell脚本首行的:#!/bin/sh 可以换成:#!/bin/awk。

变量分配:

默认情况下,awk会将如下变量分配给它在文本行中发现的数据字段:

  • $0 代表整个文本行;

  • $1 代表文本行中的第 1 个数据字段;

  • $2 代表文本行中的第 2 个数据字段;

  • $n 代表文本行中的第 n 个数据字段。

print**和printf**

awk中同时提供了print和printf两种打印输出的函数。

其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。

printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

4.6.2入门案例

默认每行按空格或者TAB分割,使用$n来获取段号

有个文件test_awk.txt,内容如下:

 aaa 111 333bbb 444 555ccc 666 777 888ddd 999 222 999
  • 案例1:打印test_awk.txt第1段

awk '{print $1}' test_awk.txt

  • 案例2:打印出test_awk.txt 的第1,2,3

awk '{print $1,$2,$3}' test_awk.txt

  • 案例3:打印出1.txt的第1,2,3段,并且使用#号连接

awk '{print $1"#"$2"#"$3}' test_awk.txt

4.6.3段之间的连接符0FS

OFS用来指定输出记录分割符

案例1::打印1,2,3段,指定#为连接符

awk '{OFS="#"}{print $1,$2,$3 }' test_awk.txt

4.6.4指定分割符

-F来指定分割符

test_awk2.txt

 aaa:111:333bbb:444:555ccc:666:777:888ddd:999:222:999:cccc
  • 案例1:打印出test_awk.txt的第1段

awk -F ':' '{print $1}' test_awk2.txt

  • 案例2:打印出test_awk.txt的所有段

[root@node1 ~]# awk -F ':' '{print $0}' test_awk2.txt aaa bbb ccc ddd

  • 案例3:打印出test_awk2.txt的第1,3段

    awk -F ':' '{print $0}' test_awk2.txt

4.6.5内容匹配

这里的内容匹配需要使用正则表达式,常用的正则表达式规则如下:

1,^linux 以linux开始的行

2.$php 以php结尾的行

  1. .匹配任意单字符

  1. .+匹配任意多个字符

  1. .*匹配0个或多个字符

  2. [0-9a-z]匹配中括号内任意一个字符

  3. (linux)+出现多次Linux单词

  4. (web){2}web出现两次以上

  5. \屏蔽转义

案例:

  • 案例1:匹配test_awk2.txt中包含cc的内容(返回的行)

awk '/cc/' test_awk2.txt

  • 案例2:匹配test_awk2.txt中第一段包含cc的内容

awk -F ':' '$1 ~ /cc/' test_awk2.txt

  • 案例3:匹配test_awk2.txt中第1段包含至少连续两个c的内容

awk -F ':' '$1 ~/cc+/' test_awk2.txt

  • 案例4:在test_awk2.txt中如果匹配到aaa就打印第1,3段 ,如果匹配到ccc,就打印第1,3,4段

awk -F ':' '/aaa/ {print $1,$3} /ccc/ {print $1,$3,$4}' test_awk2.txt

  • 案例5:在test_awk2.txt 中如果匹配到aaa或者ddd,就打印全部内容

awk -F ':' '/aaa|bbb/ {print $0}' test_awk2.txt

4.6.6段内容判断

在awk命令中,支持很多运算符,使用这些运算符可以进行段内容判断

运算符 解释
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ 和 !~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ - 加,减
* / % 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员
  • 案例1:在test_awk2.txt中如果第3段等于222就打印所有内容(注意空格)

awk -F ':' '$3==222{print $0}' test_awk2.txt

  • 案例2:在test_awk2.txt中如果第5段不等于cccc就打印全部

[root@node1 ~]# awk -F ':' '$5!="cccc"{print $0}' test_awk2.txt aaa:111:333 bbb:444:555 ccc:666:777:888

  • 案例3:在test_awk2.txt中如果第一段等于ccc,并且第2段大于300就打印全部

[root@node1 ~]# awk -F ':' '$1=="ccc"&&$2>300 {print $0}' test_awk2.txt ccc:666:777:888

  • 案例4:在test_awk2.txt 中如果第1段等于 ccc,并且第2段匹配666就打印全部

awk -F ':' '$1"ccc" && $2666 {print $0}' test_awk2.txt

4.6.7段之间的比较

  • 案例1:在test_awk2.txt中如果第3段小于第4段就打印全部

awk -F ':' '$3<$4 {print $0}' test_awk2.txt

4.6.8NR行号和NF段数

NF 一条记录的字段的数目
NR 已经读出的记录数,就是行号,从1开始
  • 案例1:打印test_awk2.txt全部内容显示行号

[root@node1 ~]# awk -F ':' '{print NR ":" $0}' test_awk2.txt 1:aaa:111:333 2:bbb:444:555 3:ccc:666:777:888 4:ddd:999:222:999:cccc

  • 案例2:打印test_awk2.txt全部内容显示段数

awk -F ':' '{print NF " : " $0}' test_awk2.txt

  • 案例3:从test_awk2.txt 的前3行中匹配出第2段等于666,并显示行高

[root@node1 ~]# awk -F ':' 'NR<=3&&$2==666 {print $0}' test_awk2.txt ccc:666:777:888

4.6.9分段求和

awk 中还可以指定脚本命令的运行时机。默认情况下,awk会从输入中读取一行文本,然后针对该行的数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用BEGIN关键字。BEGIN会强制awk在读取数据前执行该关键字后指定的脚本命令。

  • 案例1:对test_awk2.txt中的第2段求和

awk -F ':' 'BEGIN{total=0}{total=total+$2}END{print total}' test_awk2.txt

BENGIN {total=0}:初始化变量

{total=total+$2}:循环遍历执行

END{print total}:最后一次执行

4.6.10综合案例

  • 案例1:统计当前目录下所有文本文件的大小

$5 为ll命令结果的第五列,该列刚好是显示文件的大小

[root@node1 ~]# ll | awk 'BEGIN{total=0}{total=total+$5}END{print(total)}' 25796

  • 案例2:求总成绩

awk的代码还可以在一个脚本中,脚本的后缀是.awk,执行脚本的语法:awk -f 脚本名 源文件

需求:

有个文件score.txt,记录每个学生的成绩,要计算学生总成绩和平均成绩,文件内容如下:

(名字, 学号,数学成绩,英语成绩、计算机成绩)

Marry 2143 78 84 77

Jack 2321 66 78 45

Tom 2122 48 77 71

Mike 2537 87 97 95

Bob 2415 40 57 62

代码:

cal.awk

#!/bin/awk -f #运行前 BEGIN { math = 0 english = 0 computer = 0 printf "NAME NO. MATH ENGLISH COMPUTER TOTAL\n" printf "---------------------------------------------\n" } #运行中 { math+=$3 english+=$4 computer+=$5 printf "%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5 } #运行后 END { printf "---------------------------------------------\n" printf " TOTAL:%8d %8d %8d \n", math, english, computer printf "AVERAGE:%8.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR }

[root@node1 ~]# awk -f cal.awk score.txt

NAME NO. MATH ENGLISH COMPUTER TOTAL

Marry 2143 78 84 77 239 Jack 2321 66 78 45 189 Tom 2122 48 77 71 196 Mike 2537 87 97 95 279

Bob 2415 40 57 62 159

TOTAL: 319 393 350

linux指令(个人总结简化版还会更新标准版)相关推荐

  1. linux指令快速复制粘贴[龟速更新中]

    由于有经常碰到要输入linux指令,但是却忘记了的情况.在家里我把常用的命令放到Xshell的快速命令集,但是在很多情况下不在家,可能用的他人电脑,以及在非Win环境下使用ssh时没有xshell使用 ...

  2. 【Linux基础】常用Linux指令与其对应全称(持续更新)

    Linux中的shell指令.文件名或工具,出于便捷,大量应用英文单词的缩写.每一个缩写都有其背后的含义,编程思想是想通的,我们只有知道缩写的真正含义,才使我们真正理解这条指令,更有利于我们站在设计者 ...

  3. linux指令速查手册 中文高清pdf版,linux指令速查手册

    linux指令速查手册2007年12月由人民邮电出版社出版发行.据小编知Linux是一款开源的操作系统,得到了广大开发者的青睐,开发者可以免费获得Linux操作系统的源代码:其次,它具有Unix的所有 ...

  4. Linux指令篇:起始管理--shutdown(转)

    Linux指令篇:起始管理--shutdown(转) 名称 : shutdown 使用权限 : 系统管理者 使用方式 : shutdown [-t seconds] [-rkhncfF] time [ ...

  5. Linux 指令大全(3)

    2019独角兽企业重金招聘Python工程师标准>>> Linux 指令大全(3) 名称:/etc/aliases 使用权限:系统管理者 使用方式: 请用 newaliases 更新 ...

  6. Record: Linux指令笔记

    Record: Linux指令笔记 简介 vi 操作终端指令 进程相关 感受 简介 这只是一个小黑使用Linux的一个记录,就是record一下最近使用过的一些指令,很多都是网上搜直接用,并没有仔细看 ...

  7. Linux系统 推送Windows桌面应用更新

    目录 背景: 实现过程: 一.程序自动更新 二.安装Apache 开启 Http 服务 三.推送更新 四.更新效果 五.结尾 背景: 最近参与一个项目,本人负责桌面应用开发,之前直接用Setup Fa ...

  8. 连夜整理了多年后端开发最常用linux指令(建议收藏,边用边学)

    0. 引言 前段时间有同学问我:linux指令那么多,怎么去学?实际上这个问题也曾经困扰着我,多年走来,我总结了一个经验:优先学习你马上要用到的,而不是上来就体系的全部学习一遍. 可能很多同学会不太适 ...

  9. linux 指令大全

    linux 指令大全  版权信息        作者 未知  文章出处 天津linux 热线  文档制作 拒绝正版  名称 cat   使用权限 所有使用者   使用方式 cat [-AbeEnstT ...

最新文章

  1. AntDB上使用uuid
  2. 遭遇错误:ORA-01031
  3. angularjs 的笔记
  4. LeetCode两数之和 56 python
  5. cache failed module status_Flutter混编之路——iOS踩坑记录
  6. 大一计算机绩点3算什么水平,绩点只有3?我可以解释一下
  7. win7 右键计算机 服务 设备管理器,win7系统计算机右键菜单添加设备管理器的操作方法...
  8. 将指定excel的一列数据提取到另一个excel的指定列
  9. 构造一条二次bezier曲线_那些处处连续,处处不可导的曲线
  10. 关于Silverlight IsolatedStorage 不能Serialze Parameter[]
  11. poco c++框架:日期时间
  12. 三思笔记之一步一步学ORACLE
  13. 【ANSYS SCDM】,软件介绍及基本操作
  14. 生成对抗网络理论模型和应用综述
  15. 大禹电子:元宵佳节逛花灯,猜灯谜好不热闹
  16. Pytorch基础学习(第一章-PyTorch基础概念)
  17. 9块9的U盘,你敢买吗?
  18. Tita OKR分享:如何进行OKR的复盘?
  19. 基于STM32F767的FreeRTOS的移植
  20. 电信行业相关指标(DOU、MOU、ARPU、ARPM)与词汇

热门文章

  1. 板刷CF记录 #2459878
  2. Cannot find module ‘../views/HomeView.vue‘ or its corresponding type declarations.ts
  3. Windows系统中取消某一程序的用户账户控制
  4. ResNet(残差网络模型)原理解读-包括residual block与BN原理介绍
  5. java中如何获取对象的内存地址
  6. Bluetooth SDP介绍
  7. windows离线安装node-gyp
  8. 关于对算法岗职位的认识
  9. Android 8.0适配指北
  10. Electron 仿制WeGame游戏盒子