银河麒麟SP3日常使用分享

一、认识操作系统

1. 操作界面

在安装系统时,如果有选择安装桌面,那么在系统安装完成后,在有显示器的情况下,并且有足够授权,是可以进入桌面的。

1.1. 启动页面

1.2. 登录页面

1.3.桌面

1.4.win键

1.5.文件界面

2.系统信息

系统信息主要是了解当前硬件、操作系统是否满足国产化部署。

2.1. 操作系统类型

主要是查看系统是否V10 SP3(服务器版本)作为服务器,或者是否V10 SP1(桌面版本)作为岗亭。

1
cat /proc/osinfo

如下就是sp3服务器版本:

2.2. 查看系统信息

1
cat /proc/version

主要查看ky10的版本是aarch64还是x86_64,另一个就是查看gcc是否7.3.0
如下,ky10.aarch64也就是通常说的arm64

如下,ky10.x86_64,也就是通常说的x86intel、amd都是此类):

2.3.查看cpu信息

1
lscpu

主要查看cpu是否Hisilicon(海思)的kunpeng920,如下:

2.4.查看内存信息

1
cat /proc/meminfo

主要查看内存的总量和剩余可用量,数值单位是KB(千字节),可以除以1024*1024换算为GB(千兆字节)单位,如下:

2.5.查看libc信息

1
ldd --version

主要查看libc的版本信息,当前jielink国产化兼容的版本不应高于2.28,同理要下载的其他软件的libc信息不应低于2.28,如下:

2.6. 查看库依赖信息

1
ldd libjsmfaceDetect.so

主要是在程序无法正常运行是,用于查看动态运行库是否缺少依赖库,若是有not found提示,则表示缺少依赖库,如下:

2.7.Windows远程SP3服务器

对于银河麒麟sp3可以用ssh工具远程服务器,工具不限于putty、finalshell、windows cmd、Xshell、MobaXterm、SecureCRT、Termius、ZOC等。

win11自带ssh工具,可以不需要下载其他工具,直接用windows cmd或者windows powershell

检查ssh服务是否安装并运行:

1
systemctl status sshd
image-20250329163944381

二、磁盘

1. 查看磁盘信息(lsblk)

typedisk的代表物理盘,如果下面有part表示当前物理盘有做分区、格式化,是可以正常使用的,反之则无法使用。

1
lsblk
image-20250329164437378

2. 查看磁盘存储信息(df)

根目录“/”如果已用为100%时,表示当前物理盘已经没有可用空间,需要立即清理一部分空间出来。乐观的情况下,系统可以正常启动,同时ssh也可以正常连接,只是部分应用已经无法正常使用,比如redis、数据库等。严重的情况下ssh可能都无法正常连接,系统也无法正常启动。

df

1K-块、已用、可用的单位均为KB(千字节),如果需要换算为MB(兆字节)需要做1024进制转换。

1
df
image-20250329164705694

df-h

在df命令后跟上参数-h,可以更简单、清晰的观察存储情况,因此更推荐使用df -h命令。

1
df -h
image-20250329170311758

df-h /path/

1
df -h /usr/

在df 命令后跟上参数-h,并且指定目录路径(如:df -h /usr/),就可以查看指定目录的存储统计信息。

image-20250329171523955

3. 查看目录存储信息(du)

在du命令后跟上 -h -d 1可以查看当前目录的存储信息,如果再跟上目录路径(如:/usr/),就可以查看指定目录下的存储信息。

image-20250329171042089

三、内存

1. top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器,退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

1
top

内容解释:

第一行(top):

17:22:33 系统当前时刻

up 2:00 系统启动后到现在的运作时间(2小时)

3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 – 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目。

load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程。

第二行(Tasks):

282 total 当前系统进程总数

2 running 当前运行中的进程数

280 sleeping 当前处于等待状态中的进程数

0 stoped 被停止的系统进程数

0 zombie 僵尸进程数

第三行(Cpus):

24.6% us 用户空间占用CPU百分比
  0.2% sy 内核空间占用CPU百分比
  0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
  74.6% id 空闲CPU百分比
  0.0% wa 等待输入输出的CPU时间百分比
  0.5% hi
  0.1% si
  0.0% st

第四行(Mem):

1951.6 total 物理内存总量(MB)
   65.7 free 空闲内存总量(MB)
  939.8 used 使用的物理内存总量(MB)
  946.2 buffers 用作内核缓存的内存量

第五行(Swap):

表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

2080.0 total 交换区总量
  2066.4 free 空闲交换区总量
  13.6 used 使用的交换区总量
  810.1 avail Mem 是指在不进行交换的情况下,系统当前可用的内存量,主要用于新开启的程序。

最下部分的进程列表栏:

以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式:

PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

s- 改变画面更新频率

l - 关闭或开启第一部分第一行 top 信息的表示

t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

h - 显示帮助

n - 设置在进程列表所显示进程的数量

q - 退出 top

s -改变画面更新周期

image-20250329172306719

2. free命令

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

1
free

total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是434884KB,已用内存是3489800KB,
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

image-20250329182237951

四、目录、文件

1. cd命令切换目录

1
cd /usr/

2. cd回退上一级目录

1
cd ..

3. dir查看文件/目录名称

1
2
3
dir
ls
ll

4. ls用颜色区分文件/目录

1
ls

5. ll查看文件/目录详细信息

1
ll

6. mkdir创建目录

如果有参数-p将创建每一级缺失的目录,如:mkdir -p /opt/jieshun/jielink/files,将创建:/opt、/opt/jieshun、/opt/jieshun/jielink、/opt/jieshun/jielink/files目录结构

1
mkdir -p /opt/jieshun/jielink/files

7. touch创建文件

文件存在时不会覆盖,如touch readme.txt

1
touch readme.txt

8. vi创建文件

当文件不存在时创建,如vi readme1.txt

1
vi readme1.txt

9. vi修改文件

vi命令,如vi /home/readme.txt

1
vi /home/readme.txt

10. cat查看文件内容

cat 命令,如:cat /home/readme.txt

1
cat /home/readme.txt

11. tail查看最新文件内容

tail、less、more,各有不同场景需要

1
tail -f /var/log/dnf.log

12. less可以分页查看文件内容

1
less /var/log/dnf.log

13. more可以分屏查看文件内容

1
more /var/log/dnf.log

五、网络

1. 查看防火墙状态

1
systemctl status firewalld

2. 关闭/开启防火墙状态

1
systemctl stop/start firewalld

3. 禁用/启用防火墙状态

1
systemctl disable/enable firewalld

4. 开通防火墙端口

1
2
sudo firewall-cmd --zone=public --permanent --add-port=1883/tcp
sudo firewall-cmd --reload

5. 查看防火墙通行端口

1
firewall-cmd --list-ports

6. 查看网卡信息

1
ifconfig

7. 查看端口信息

1
lsof -i:1883

六、进程

1. 停止进程

1
kill pid

2. 强制停止进程

1
kill -9 pid 

3. 查看进程

1
ps -ef |grep dotnet

麒麟系统安装常见问题指南

一、安装系统找不到安装源处理方法

遇到的问题–“设置基础软件仓库时出错”报错导致无法继续安装 没办法下一步

先说结论:系统bug 该问题在CentOS、Rocky Linux最新版中均存在

img

(一)、如果是外网直接配置安装源

在系统安装界面选择“安装源”,进入安装源配置页面,输入正确的外网源地址,例如银河麒麟高级服务器操作系统V10SP2-20210524(x86_64)的外网源地址为: https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/

img

(二)、内网的修改安装引导启动参数

1.在安装引导界面,将光标移动到“Install Kylin Linux Advanced Server V10”选项,然后按下键或者e键进入启动参数修改页面,下图是修改前的初始参数;

img

2.在启动参数末尾加上 inst.repo=hd:/dev/sdb1,其中"xxxx"应与原有参数inst.stage2=hd:/dev/sdb1, img

为什么是/dev/sdb1 请参考下面的,找对应的u盘的盘符华为RH2288 V3安装 linux 龙蜥anolis系统安装_rh2288v3从u盘启动-CSDN博客

img

3.确认修改正确后,按回车键进入系统安装界面,

我们发现安装源还是报错“设置基础软件仓库时出错”,这是由于默认将/run/install/repo挂载为rw,需要切换到命令行模式重新挂载为ro,步骤如下:

(1)在图形化安装界面下同时按Ctrl+ALT+F2切换到命令行模式;

img

(2)执行命令 mount | grep repo 查看U盘挂载情况;

img

(3)执行命令 mount -o ro,remount /run/install/repo 重新挂载为ro;

img

(4)再按Ctrl+ALT+F6切回图形化安装界面,点击“安装源”进入软件源配置界面,然后点击左上角“完成”,这时我们发现已经能正常识别软件安装源了;

img

4.最后,我们设置好root密码点击“开始安装”即可进行操作系统安装

1、安装.net sdk

https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1

创建解压目录
mkdir /usr/dotnet
解压缩SDK
tar zvxf /root/dotnet-sdk-3.1.201-linux-x64.tar.gz -C /usr/dotnet
创建软连接
ln -s /usr/dotnet/dotnet /usr/local/bin/dotnet
查看安装信息
dotnet --info

2、执行sh脚本

chmod u+X *.sh
chmod u+X ./start.sh
sh ./start.sh
source ./start.sh

3、SP3在线安装python3.7.3

1)安装依赖环境

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel

2)创建python373目录

sudo mkdir /usr/local/python373

cd /usr/local/python373

3)下载安装包

wget https://mirrors.huaweicloud.com/python/3.7.3/Python-3.7.3.tgz

4)解压安装包

tar -zxvf Python-3.7.3.tgz

cd /usr/local/python373/Pyhton-3.7.3

5)配置编译环境

./configure --enable-optimizations --prefix=/usr/local/python373

6)编译python3.7.3

make -j8 && make altinstall

7)删除系统自带的python3.7.9

unlink /usr/bin/python3

8)配置环境变量

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3

4、SP3离线安装python3.7.3

1)外网下载python3.7.3安装包

https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

2)外网下载编译依赖包
SP3下载地址:https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/
SP1下载地址:https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/base/aarch64/Packages/

https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/xz-devel-5.2.5-2.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/zlib-devel-1.2.11-18.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/bzip2-devel-1.0.8-3.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/openssl-devel-1.1.1f-15.p05.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/ncurses-devel-6.2-3.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/sqlite-devel-3.32.3-6.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/readline-devel-8.0-3.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/tk-devel-8.6.10-2.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/gdbm-devel-1.18.1-3.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/libdb4-devel-4.8.30-31.ky10.p01.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/libpcap-devel-1.9.1-6.ky10.aarch64.rpm
https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/aarch64/Packages/libffi-devel-3.3-8.ky10.aarch64.rpm

3)将下载的安装包/依赖包上传服务器

mkdir /usr/local/devel

上传依赖包到目录:/usr/local/devel

mkdir /usr/local/python373

上传python3.7.3安装包到目录:/usr/local/python373

4)解压安装包

cd /usr/local/python373

tar -zxvf Python-3.7.3.tgz

cd /usr/local/python373/Pyhton-3.7.3

5)配置编译环境

./configure --enable-optimizations --prefix=/usr/local/python373

6)编译python3.7.3

make -j8 && make altinstall

7)删除系统自带的python3.7.9

unlink /usr/bin/python3

8)配置环境变量

ln -s /usr/local/python373/bin/python3.7 /usr/bin/python3

ln -s /usr/local/python373/bin/pip3.7 /usr/bin/pip3

5、安装pip

​ 方法一:

1
yum -y install python3-pip

​ 方法二:

1
2
curl https://bootstrap.pypa.io/pip/3.7/get-pip.py -o get-pip.py
python3 get-pip.py

方法三:

1
2
3
离线安装pip:python -m pip install --no-index --find-links . pip-24.0-py3-none-any.whl
--no-index:禁止pip查询在线索引
--find-links .:告诉pip在当前目录下查找whl文件进行安装。

方法四:

1
python3 -m ensurepip --default-pip

方式五:

1
2
curl -c https://pypi.org/project/pip/20.2.2/#pip-20.2.2.tar.gz
python3 setup.py install

pip指向pip3软连接:

ln -s /usr/bin/pip3 /usr/bin/pip

6、安装redis

来源:Linux系统Redis安装、配置及卸载 (csdn.net)

1)检查环境

安装Redis之前需要具备c++库环境

1
2
gcc -v
yum -y install gcc-c++

2)下载安装源码

1
wget https://download.redis.io/releases/redis-7.0.0.tar.gz

3)一般将redis-7.0.0.tar.gz文件放入/opt目录

1
mv redis-7.0.0.tar.gz /opt

4)在/opt目录下解压redis

1
2
cd /opt
tar -zxvf redis-7.0.0.tar.gz

5)在redis-7.0.0目录下执行make命令

1
2
cd redis-7.0.0
make && make install

默认安装到usr/local/bin

7、cockpit服务器管理工具

Cockpit 是红帽开发的网页版图像化服务管理工具,优点是无需中间层,且可以管理多种服务。

1)修改端口为10086

1
2
使用vim命令修改默认配置的9090端口为10086
vim /usr/lib/systemd/system/cockpit.socket

2)启动cockpit服务

1
systemctl enable --now cockpit.socket

3)查看cockpit状态

1
systemctl status cockpit.socket

4)添加防火墙访问

1
2
firewall-cmd --add-service=cockpit --permanent 
firewall-cmd --reload

5)登录cockpit

1
2
使用系统的用户名和密码进行web管理页面登录
https://ip:10086

8、安装wget

确定wget没有安装的情况下,需要安装wget。

1
2
wget版本查询:wget --version
wget安装:yum -install -y wget

9、linux查看内存占用情况(top、free、ps)

9.1 top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 – 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

img

内容解释:

第一行(top):

15:24:36 系统当前时刻

14 days 系统启动后到现在的运作时间

3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 – 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目

load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程

第二行(Tasks):

288 total 当前系统进程总数

1 running 当前运行中的进程数

287 sleeping 当前处于等待状态中的进程数

0 stoped 被停止的系统进程数

0 zombie 僵尸进程数

第三行(Cpus):

7.3% us 用户空间占用CPU百分比
  2.0% sy 内核空间占用CPU百分比
  0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
  90.4% id 空闲CPU百分比
  0.3% wa 等待输入输出的CPU时间百分比
  0.0% hi
  0.0% si

0.0% st

第四行(Mem):

2042616 total 物理内存总量
  1770116 used 使用的物理内存总量
  272500 free 空闲内存总量
  163912 buffers 用作内核缓存的内存量

第五行(Swap):

表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

2094076 total 交换区总量
  45052 used 使用的交换区总量
  2049024 free 空闲交换区总量
  346624 cached 缓冲的交换区总量

最下部分的进程列表栏:

以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式:

PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

s- 改变画面更新频率

l - 关闭或开启第一部分第一行 top 信息的表示

t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

h - 显示帮助

n - 设置在进程列表所显示进程的数量

q - 退出 top

s -改变画面更新周期

9.2 ps命令

ps命令用于报告当前系统的进程状态。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

img

F 代表这个程序的旗标 (flag), 4 代表使用者为 super user;

S 代表这个程序的状态 (STAT);

PID 程序的 ID ;

C CPU 使用的资源百分比

PRI 这个是 Priority (优先执行序) 的缩写;

NI 这个是 Nice 值。

ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running # 的程序,一般就是『 - 』

SZ 使用掉的内存大小;

WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;

TTY 登入者的终端机位置;

TIME 使用掉的 CPU 时间。

CMD 所下达的指令

9.3 pmap命令

pmap命令用于报告进程的内存映射关系

$ pmap -d 16613

img

9.4 free命令

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

img

total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是434884KB,已用内存是3489800KB,
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

如上例:
893176=434884+36436+421856

~ # cat /proc/meminfo
MemTotal: 155616 kB
MemFree: 5112 kB
MemAvailable: 71920 kB
Buffers: 184 kB
Cached: 66956 kB
SwapCached: 0 kB
Active: 92816 kB
Inactive: 15100 kB
Active(anon): 41992 kB
Inactive(anon): 128 kB
Active(file): 50824 kB
Inactive(file): 14972 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 40804 kB
Mapped: 10888 kB
Shmem: 1352 kB
Slab: 20964 kB
SReclaimable: 6904 kB
SUnreclaim: 14060 kB
KernelStack: 2840 kB
PageTables: 1804 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 77808 kB
Committed_AS: 1632944 kB
VmallocTotal: 761856 kB
VmallocUsed: 32136 kB
VmallocChunk: 722940 kB
~ #
~ # free
total used free shared buffers
Mem: 155616 150448 5168 1344 184
-/+ buffers: 150264 5352
Swap: 0 0 0
~ #

10、麒麟SP1开启root账户

10.1 设置root密码

1
sudo passwd root

10.2 修改登录系统配置文件

1
sudo vi /usr/share/lightdm/lightdm.conf.d/95-ukui-greeter.conf
1
2
3
在“user-session=ukui”下一行添加最后两行:
greeter-show-manual-login=true
all-guest=false

10.3 修改.profile文件

1
sudo vi /root/.profile

将行tty -s && mesg n修改为tty -s && mesg n || true

设置完成之后,重启电脑,登录时可以选择root进行登录。

11、统信UOS专业版开启root账户登录

11.1 启用开发者模式

在“通用”设置中,启用开发者模式。

11.2 设置root密码

1
sudo passwd root

11.3 修改登录系统配置文件

1
2
3
4
5
6
7
#打开配置文件
sudo deepin-editor /etc/lightdm/lightdm.conf
#修改配置:
原始值:greeter-session=lightdm-deepin-greeter
修改后:greeter-session=lightdm-gtk-greeter
原始值:#greeter-show-manual-login=false
修改后:greeter-show-manual-login=true

11.4 重启桌面或者重启电脑root登录

设置完成之后,重启桌面或者重启电脑,登录时可以选择root进行登录。

1
2
3
4
#重启桌面
sudo service lightdm restart
#重启电脑
reboot

12、其他

1)linux系统之间文件拷贝

​ scp -v -t /home/yanfa/下载/ISOCT2016V3.8.2-20240104192703-Jielink+智能终端操作平台.zip root@172.16.250.25:/home/jht/下载

2)windows上传文件到Linux系统 rz,sz

​ todo。。。

3)创建账户并添加管理组命令

创建账户:adduser jielink

编辑密码:passwd jielink

编辑/etc/sudoers配置文件:vi /etc/sudoers

在root ALL=(ALL) ALL下添加sysadm ALL=(ALL) ALL(注意:格式一定对):

例如:

1
2
3
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
sysadm ALL=(ALL) ALL

13、常用命令

查询JieShun开头的所有服务/进程:ps -ef | grep JieShun

查询服务状态:systemctl status JieShun.SystemCenter.Web.service

停止服务:systemctl stop JieShun.SystemCenter.Web.service

禁用防火墙:systemctl disable firewalld.service

启用防火墙:systemctl enable firewalld.service

停止进程:kill pid

强制停止进程:kill -9 pid

查看磁盘空间:df -h

查看usr磁盘空间:df -h /usr

查看占用磁盘空间大小:du -h

查看当前目录占用磁盘空间大小:du -h -d 1

查看当前目录文件占用磁盘空间大小:du -h -Sa

查看动态库依赖:ldd libLightFaceRegister.so

授权:chmod 777 ./test.out

删除软链接:rm -rf /user/local/bin/dotnet

查看目录文件大小占用: du -h --max-depth 1

查看端口链接情况:netstat -tun | grep 1883

查看端口监听情况:netstat -tunlp | grep 1883

查看端口占用情况:lsof -i:1883

查看实时日志:tail -f nms.log

查看已经安装的python版本:whereis python

查看python安装目录:which python

查看python软连接:ls -l /usr/bin/python3

删除软连接:unlink /usr/bin/python3

拷贝jsoct2016/pms目录下文件到product/pms:
\cp -rfv /home/jht/jsoct2016/pms/* /opt/jsst/target/product/pms

查看文件内容:cat /opt/jsst/target/nm/nms/config/system_param.json

重置python环境变量:
unset PYTHONHOME
unset PYTHONPATH

查看防火墙服启动配置:cat /usr/lib/systemd/system/firewalld.service

查看防火墙配置:cat /usr/sbin/firewalld

查看yum配置:cat /bin/yum

开通防火墙端口:
sudo firewall-cmd --zone=public --permanent --add-port=1883/tcp
sudo firewall-cmd --reload

查看防火墙端口:sudo firewall-cmd --list-ports

查看yum安装的包:yum list installed

查询yum安装的包,如xz-devel:yum search xz-devel

查询yum安装的包信息,如xz-devel:yum info xz-devel

查看系统信息:cat /proc/version

查看cpu信息:cat /proc/cpuinfo

查看内存信息:cat /proc/meminfo

查看所有服务文件:ls /etc/systemd/system/

linux系统之间scp复制文件: scp -v -t /home/yanfa/下载/IS0CT2016V3.8.2-20240104192703-Jielink+智能终端操作平台.zip root@172.16.250.25:/home/jht/下载

mkdir一次建立多个目录:mkdir -p /home/test/test1/test2

离线安装pip:python -m pip install --no-index --find-links . pip-24.0-py3-none-any.whl

--no-index:禁止pip查询在线索引
--find-links .:告诉pip在当前目录下查找whl文件进行安装。

网络通讯检测:ping www.baidu.com 、traceroute www.baidu.com、telnet 10.10.2.1 443

安装文件上传工具(rz上传,sz下载):yum -y install lrzsz

统计文件数量:find . -type f | wc -l

查看文件详细信息:ls -lhrS (按文件大小倒序) ls -lhrt (按文件时间倒序)

修改profile文件:sudo echo “export NEW_VARIABLE=value” >> /etc/profile

手工添加网卡: nmcli conn add type ethernet con-name ens33 ifname ens33

手动安装DDE(深度)桌面:yum install dde

jielink3.x 系统镜像制作指南

引用来源:http://blog.ltbird.cn/2022/01/24/jielnk-mirrorImage/

本教程,系统基于Windows Server2019 Datacenter版本,硬件基于DELL EMC

工具集:

名称 下载地址 版本
优启通 https://www.itsk.com/thread-421538-1-1.html EasyU_3.7.2021.1119
Easy Sysprep https://www.itsk.com/thread-402133-1-1.html EasySysprep_5.19.802.282
rufus http://rufus.ie/zh/ rufus-3.9

一、PE制作

下载“优启通”制作PE,打开软件选择“U盘模式”点击全新制作。


二、系统封装

1、安装JieLink环境

jielink环境包括前端网管JSRJ1690、JSOCT2016 V3.4.1 Jielink+智能终端操作平台、媒体网关JSMG、媒体插件SVLANMediaCtrl等。

jielink的所有软件,统一安装在D盘的JSST目录下。然后将安装好的所有软件,用7Z打包压缩成D.7z文件,拷贝D.7z到到C盘根目录。

3、Easy Sysprep封装系统

可参考:https://www.itsk.com/thread-397145-1-1.html

第一步:打开“Easy Sysprep”软件

点击“设置”按钮

第二步:设置封装参数

第三步:设置“完成后重启”

第四步:开始第一阶段封装

第五步:设置U盘启动

ps:主板不一样进入U盘方式不一样,dell电脑F11、F12、ESC。目前制作镜像的电脑winserver2019的快捷键是F11,win10的电脑是F12。

第六步:进入PE

第七步:设置部署脚本

a. 在路径" D:\Sysprep\ES5 "创建脚本文件“ install_jielink_v3.bat ”,
编辑脚本,写入:

1
C:\7zip\7z.exe x C:\D.7z -od:\ -aoa

b. 在路径" D:\Sysprep\ES5 "创建脚本文件“ update_jielink_install_dir.bat ”,
编辑脚本,jielink版本不一样,参数略有调整,写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
echo off
echo 开始创建链接

::初始化版本
set jielinkVersion=3.4.1
set pcsVersion=1.0.2

::创建jielink快捷键
mklink /d D:\jsst\jsst\product\ApiGateway D:\jsst\jsst\target\product\ApiGateway-%jielinkVersion%
mklink /d D:\jsst\jsst\product\Emqx D:\jsst\jsst\target\product\Emqx-%jielinkVersion%
mklink /d D:\jsst\jsst\product\FileServer D:\jsst\jsst\target\product\FileServer-%jielinkVersion%
mklink /d D:\jsst\jsst\product\JieShunSystemCenter D:\jsst\jsst\target\product\JieShunSystemCenter-%jielinkVersion%
mklink /d D:\jsst\jsst\product\JieShunSystemCloud D:\jsst\jsst\target\product\JieShunSystemCloud-%jielinkVersion%
mklink /d D:\jsst\jsst\product\JieShunVirtualServicePlatform D:\jsst\jsst\target\product\JieShunVirtualServicePlatform-%jielinkVersion%
mklink /d D:\jsst\jsst\product\JieShunVisitorManagement D:\jsst\jsst\target\product\JieShunVisitorManagement-%jielinkVersion%
mklink /d D:\jsst\jsst\product\ParkManagement D:\jsst\jsst\target\product\ParkManagement-%jielinkVersion%
mklink /d D:\jsst\jsst\product\SentryBoxService D:\jsst\jsst\target\product\SentryBoxService-%jielinkVersion%
mklink /d D:\jsst\jsst\product\RedisServer D:\jsst\jsst\target\product\RedisServer-%jielinkVersion%

::创建PCS快捷键
mklink /d D:\jsst\jsst\product\JsAccessLayer D:\jsst\jsst\target\product\JsAccessLayer-%pcsVersion%
mklink /d D:\jsst\jsst\product\JsParkingController D:\jsst\jsst\target\product\JsParkingController-%pcsVersion%

echo 创建链接结束
exit

第八步:PE中打开“Easy Sysprep”软件

点击“设置”按钮

第九步:设置“OEM”参数

第十步:设置“优化”参数

默认即可

第十一步:设置“部署”参数

第十二步:设置“系统”参数

第十三步:设置“用户”参数

第十四步:设置“网络”参数

第十五步:设置“任务”参数

第十六步:设置“其他”参数

第十七步:点击封装,设置“封装完成退出”

第十八步:打开“EIX系统安装”软件备份系统,生成win2019_jielink3.4.1.wim文件

需要生成.gho文件的,选择保存类型为.gho即可。

第十九步:制作ISO镜像

重命名已经下载好的windows server2019的ISO文件名称为win2019_jielink3.4.1.iso,用软碟通(UltraISO)打开win2019_jielink3.4.1.iso,删除sources目录下的install.wim文件。然后将上一步备份的win2019_jielink3.4.1.wim添加到sources目录下,重命名为install.wim。

三、gost系统刻盘

打开“rufus”软件,选择我们制作好的win2019_jielink3.4.1.iso镜像文件,分区类型选择GPT,其他项默认即可。

四、实体机系统还原

1、分区

进入PE系统,打开“DG硬盘分区”软件(DiskGenius),分区表类型选择“GUID",其他参数跟进需要设置。

*盘符一定要有一个D盘,用于还原安装的jielink软件应用。

2、系统还原

插上刻录镜像系统的U盘,启动电脑设置为U盘启动,系统即可自动进行还原。

五、虚拟机还原

1、IOS格式PE制作

打开“优启通(EasyU)”,选择“生成ISO",选择好保存ISO文件的路径,默认名称为”EasyU_v3.7.iso“。

2、虚拟机设置

第一个光驱加载制作好的“ EasyU_v3.7.iso ”,第二个光驱加载制作好的“ winserver2019_jielink3.4.1.iso ” 。

3、加载PE

第一个光驱加载制作好的“ EasyU_v3.7.iso ”,第二个光驱加载制作好的“ winserver2019_jielink3.4.1.iso ” 。

选择上面的光驱启动。


键盘按下任意键进入PE选择。

选择任意PE类型,进入PE系统。

4、分区

进入PE系统,打开“DG硬盘分区”软件(DiskGenius),分区表类型选择“GUID",其他参数跟进需要设置。分区完成后关机,重新加载PE。

*盘符一定要有一个D盘,用于还原安装的jielink软件应用。

5、系统还原

加载PE。

选择下面的光驱启动。

进入系统安装还原。

VirtualBox+Centos7+Emqx现场部署

一、下载virtualbox和centos7

virtualbox下载地址:https://www.virtualbox.org/wiki/Downloads

centos7下载地址163镜像:http://mirrors.163.com/centos/7.9.2009/isos/x86_64/
centos7阿里云镜像:http://mirrors.aliyun.com/centos/7/isos/x86_64/

二、centos7 安装

参考引用:https://www.cnblogs.com/xyinjie/p/9437049.html

2.1 创建虚拟机

2.1.1 选择linux版本



注意:如果选择版本的时候发现没有64 bit选项,说明你的电脑没有开启CPU虚拟化*
*双击运行“securable”程序(百度搜索securable 下载),在打开的程序主界面中就可以查看CPU是否支持虚拟化功能,如图所示,出现“YES”绿色标记,就表明CPU具有虚拟化功能。


开启虚拟化共功能方法:开机–》BIOS–》Configuration–》Intel Virtualization Technology --enable 回车
下一步。

2.1.2 分配内存

使用建议的内存大小即可,根据宿主机的配置可以自己进行调整,这里的值可以理解为虚拟机最大可占用宿主机的多少内存

2.1.3 点击下一步设置虚拟硬盘

这里有三个选项,可以选择使用已有的虚拟硬盘文件,或者先不添加虚拟硬盘,等创建好虚拟机后再添加,这里我们选择第二个现在创建虚拟硬盘

2.1.4 点击创建,进入虚拟硬盘文件类型选项

一般选第一个 那两个没有用过,不过也可以尝试下。

2.1.5 点击下一步,进行设置如何分配虚拟硬盘

默认即可

2.1.6 点击下一步,指定虚拟硬盘文件的存放位置和虚拟硬盘的大小

位置最好选择空间大的磁盘,不要放C盘哦,大小就是推荐的8G

2.1.7 点击创建,代表创建完成

2.2 安装虚拟环境

选中虚拟机,右键点击-》设置

2.2.1 选中网卡

网卡1,设置为“桥接网卡”
网卡2,设置为"网络地址转换NAT“

2.2.2 设置镜像文件

点击OK。

2.2.3 启动虚拟机

第一个选项是安装CentOS7,第二个选项是检查操作系统文件是否损坏并安装CentOS7

2.2.4 选中第一个安装CentOS7,进入语言选中

一直拉到最下面,当然选择中文–简体中文

2.2.5 点击继续

提示先完成带有黄色叹号的内容,否则无法进行下一步,我们看到安装位置处于此状态,并显示已选择自动分区

2.2.6 黄色叹号只是警告我们默认使用了自动分区,目的是让我们确认一下,是否需要手动分区,我们点进去

如果不需要手动分区,还使用默认的自动分区进行安装的话,我们直接点击左上角的完成退出

2.2.7 退出后回到刚刚那个摘要的界面,发现黄色感叹号不见了

右下角可以开始安装了,不过安装之前我们需要把以太网打开,否则系统安装后无法联网,并且在命令行操作系统内开启网络需要修改配置相对麻烦。

2.2.8 摘要的界面上可以看到网络和主机名的显示为未链接,我们点进去

点击打开以太网,点击完成退出

2.2.9 此时的网络和主机名显示有线已连接

2.2.10 如果需要图形界面,可以点击软件选择,选择基本环境(如果需要图形界面请下载完整版的操作系统iso镜像文件)

这里选择最小安装即可,linux作为服务器时一般不需要图形界面(图形界面会消耗掉一定的硬件性能),有一个终端仿真器,然后能够通过shell命令去操作系统就足够了。

2.2.11 设置root密码

点击root密码,设置默认密码:123456

2.2.12 点击完成两次,所有黄色感叹号消失

点击完成配置。开启默默等待

2.2.13 完成后点击重启

2.2.14 输入用户名密码登录

至此CentOS7安装完成

三、emqx安装配置

3.1 修改桥接网卡:

3.1.1 使用vim打开配置文件

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

3.1.2 进入编辑模式

键盘输入 i 键,进入编辑模式。然后上下左右方向键移动到需要修改的位置。

3.1.3 修改onboot

修改 ONBOOT=no 为 ONBOOT=yes
ONBOOT=yes

3.1.4 保存退出

键盘敲击 Esc 键进入准备退出模式,然后输入英文冒号x(如: :x)保存退出。
:x

3.2 修改NAT网卡:

3.1.1 使用vim打开配置文件

vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

3.1.2 进入编辑模式

键盘输入 i 键,进入编辑模式。然后上下左右方向键移动到需要修改的位置。

3.1.3 修改onboot

修改 ONBOOT=no 为 ONBOOT=yes
ONBOOT=yes

3.1.4 保存退出

键盘敲击 Esc 键进入准备退出模式,然后输入英文冒号x(如: :x)保存退出。
:x

3.3 配置防火墙

重启网络:
systemctl restart network
关闭防火墙:
systemctl stop firewalld
禁用开机启用防火墙:
systemctl disable firewalld.service
测试网络:
ping www.baidu.com
安装网络工具:
yum install net-tools
记录桥接网卡IP(一般是10.0开头):
ifconfig

3.4 一键安装EMQX

安装emqx最新版本
curl https://repos.emqx.io/install_emqx.sh | bash

3.5关机 centos7

shutdown -h now

四、设置端口映射

五、修改emqx密码

centos7开机完成后,宿主机浏览器进入18083端口,修改admin密码为js*169

六、配置开机启动

在以下路径新建 VirtualBox.bat 文件
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
编辑文件写入
{virtualbox虚拟机安装目录}\VBoxManage.exe startvm centos7 --type headless

vs2022编译mosquitto.win32版本开启websockets

mosquitto官网windows安装版是支持MQTT协议的,经过测试默认是不支持websocket协议,因此需要下载源码进行编译。

一、需要的工具和库

名称 下载地址 版本
Visual Studio https://visualstudio.microsoft.com/zh-hans/ Community 2022
c-ares https://c-ares.org/ 1.18.1
pthreads ftp://sourceware.org/pub/pthreads-win32 w32-2-9-1-release
openssl http://slproweb.com/products/Win32OpenSSL.html 1.1.1
cmake https://cmake.org/download/ 3.22.1
libwebsockets https://libwebsockets.org/ 4.3
mosquitto https://mosquitto.org/download/ 2.0.14
cJSON https://gitee.com/miao123456miao/cJSON?_from=gitee_search 1.7.15

由于国外网站下载实在太慢,部分源码下载还是选择国内镜像更丝滑。

名称 下载地址 版本
c-ares https://gitee.com/zhang1021/c-ares?_from=gitee_search 1.18.1
libwebsockets https://gitee.com/embedded-lib/libwebsockets?_from=gitee_search 4.3
mosquitto https://gitee.com/pokeryao/mosquitto?_from=gitee_search 2.0.14

二、准备环境

1、将下载好的 pthreads-w32-2-9-1-release.zip 解压到 C盘根目录,重命名为pthreads

2、安装下载好的 Win32OpenSSL-1_1_1L.exe,安装过程一路默认选择下一步。

3、在C盘根目录新建文件夹 application ,在C:\application下新建两个文件夹,分别是source用来放置下载的源码和build用来放置编译后的vs工程。把下载好的libwebsockets、mosquitto、c-ares、cJSON源码统一放在文件夹C:\application\source。

4、安装VS2022,选择”使用C++的桌面开发“

微信截图_20211217212533

三、编译源码

1、编译 libwebsockets

打开cmake-gui,

第一步:Browse Source 选择C:\application\source\libwebsockets

第二步:Browse Build 选择C:\application\build\libwebsockets

第三步:Configure 配置编译环境

第四步:选择编译器版本Visual Studio 17 2022

第五步:选择源码编译版本Win32

第六步:Finish结束配置

第七步:Generate 编译源码

第八步:Open Project 打开VS2022

第九步:在VS2022中选择整个解决方案,右键点击“生成解决方案”或者“重新生成解决方案”编译解决方案。

image-20211217214212912 微信图片_20211217221215

2、编译cJSON,编译步骤和配置与编译libwebsockets相同

image-20211217221939978

微信图片_20211217222008

3、编译mosquitto,编译步骤和配置与编译libwebsockets一样

第一步:勾选WITH_WEBSOCKETS,用于支持websocket

第二步:点击Configure,自动配置之前编译好的websocket

image-20211217224314808image-20211217224519284

第三步:配置cJSON链接库和动态库

第四步:点击Configure进行关联

image-20211217225001983

第五步:点击Generate

第六步:点击Open Project

第七步:

复制C:\pthreads\Pre-built.2\include路径下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\include路径下。

复制C:\pthreads\Pre-built.2\lib\x64下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\lib\x64路径下。

复制C:\pthreads\Pre-built.2\lib\x86下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\lib\x86路径下。

复制C:\pthreads\Pre-built.2\dll\x64下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx64\x64路径下。

复制C:\pthreads\Pre-built.2\dll\x64下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx86\x64路径下。

复制C:\pthreads\Pre-built.2\dll\x86下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx64\x86路径下。

复制C:\pthreads\Pre-built.2\dll\x86下的所有文件,拷贝到C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx86\x86路径下。

第八步:选择VS2022解决方案,右键选择“重新生成解决方案”,遇见第一个错误:C2011 “timespec”:“struct”类型重定义 libmosquitto

解决方法:#if !defined( PTHREAD_H )

​ #define PTHREAD_H

后增加:#define HAVE_STRUCT_TIMESPEC

微信截图_20211231101842

第九步:选择VS2022解决方案,右键选择“重新生成解决方案”,遇见第二个编译错误:fatal error C1021: 无效的预处理器命令“warning”。

解决方法:注释掉报错的警告。

image-20211217230641562

第十步:再次选择VS2022解决方案,右键选择“重新生成解决方案”,遇见第三个错误:fatal error C1083: 无法打开包括文件: “cjson/cJSON.h”: No such file or directory。

解决方法:

a、在mosquitto源码的include目录下新建cjson文件夹,完整路径C:\application\source\mosquitto\include\cjson

b、将cJSON源码路径下编译生成的.h文件和.c文件拷贝到刚才新建的cjson文件夹C:\application\source\mosquitto\include\cjson

image-20211217233354621

第十一步:又次选择VS2022解决方案,右键选择“重新生成解决方案”,遇见第四个错误:error C2001: 常量中有换行符

解决方案:替换掉无限符号“∞”为“ ∞ ”

image-20211217235811505

解决完所有错误,重新编译,成功。

windows 安装Docker/Emqx教程

一、Docker安装

1、概述

windows安装docker总体分为三种方式:

  1. Windows Docker Desktop
  2. DockerToolbox
  3. Powershell Install-Package

不论哪种方式对于windows的版本都有比较严格的限制,包括但不限于如下一些限制(未探索完全):

  1. 普通云服务器暂时不支持(暂无解决方案)docker,云服务器不支持二次虚拟化。Azure和AWS已经提供了Docker 的 VM 映像。
  2. Windows Docker Desktop 安装方式,必须满足 WSL 2 (windows版本支持:windows 10(版本1903 或 1909,内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049))。
  3. Windows Docker Desktop 安装方式,必须满足Windows 10 64 位:Home 或 Pro 2004(build 19041)或更高版本,或者 Enterprise 或 Education 1909(build 18363)或更高版本。
  4. DockerToolbox 安装方式,windows必须支持虚拟化。
  5. Powershell Install-Package 安装方式,Windows server 2016、Windows server 2019 需要升级到最新版。

Windows 各版本推荐安装方式:

1. Windows 10 64位Home、Pro、 Enterprise、Education 需要升级到最新版,采用Windows Docker Desktop方式安装。
2. Windows server 2016 需要升级到最新版,采用DockerToolbox方式安装。
3. Windows server 2019 需要升级升级到最新版,采用Windows Docker Desktop 方式安装。
4. 其他版本采用DockerToolbox方式安装

PS:DockerToolbox方式官方已经放弃维护,条件允许情况windows server 升级到2019版,windows10升级到20h及以上

下载地址列表:

1
https://www.docker.com/products/docker-desktop
1
https://github.com/docker/toolbox/releases
1
https://github.com/boot2docker/boot2docker/releases
1
https://www.microsoft.com/en-us/download/details.aspx?id=54616
1
https://aka.ms/wsl2kernel

2. Windows Docker Desktop 方式安装

2.1 WSL 2安装

2.1.1 启用适用于 Linux 的 Windows 子系统
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.1.2 启用虚拟机功能
1
2
3
PowerShell

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2.1.3 下载安装WSL2 Linux内核更新包

WSL2 Linux内核更新包 下载地址
如图,点击点击适用于 x64 计算机的 WSL2 Linux 内核更新包下载。

2.1.4 设置 WSL2 为默认版本
1
2
3
PowerShell

wsl --set-default-version 2
2.1.5 安装Docker Desktop
2.1.5.1 开始安装

双击下载的***Docker Desktop Installer.exe***安装包,进入安装界面,默认勾选>

  • [x] Install required Windows components for WSL 2
  • [x] Add shortcut to desktop

点击OK进入下一步

2.1.5.2 安装完成点击Close and restart启动docker,如启动失败,请查看常见错误(X.2 缺少WSL支持)

2.1.5.3 安装完成,等待docker启动完成

2.1.5.4 docker启动完成

3. DockerToolbox 方式安装

3.1 下载并安装 DockerToolbox

DockerToolbox 下载地址

3.2 下载并安装 boot2docker

复制下载的最新boot2docker.iso 到 C:\Users{UserName}.docker\machine\cache(缓存位置)下,如果cache文件夹不存在就新建一个名称cache的文件夹。
boot2docker下载地址

3.3 创建默认虚拟机

双击"Docker Quickstart Terminal"应用,创建默认虚拟机。

4. Powershell Install-Package 方式安装

4.1 安装Windows PowerShell5.1

4.1.1 查验PowerShell版本

当前系统为Windows 7 Service Pack 1, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2时,而PowerShell版本又低于5.1需要执行1.1、1.2,反之跳过1.1、1.2。查看PowerShell版本,如果版本低于5.1则需要安装PowerShell5.1。

1
Get-Host | Select-Object Version

4.1.2 下载并安装PowerShell5.1

PowerShell5.1下载地址

根据当前windows系统类型,选择下载对应的更新包(此处我系统是windows server2012 r2 X64位,所以下载X64包),安装更新过程中需要重启多次。

4.2 安装nuget

4.1.1 TSL1.0切换到TLS 1.2(仅限当前回话生效)
1
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
4.1.2 安装nuget
1
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force #指定Nuget安装包最小版本


nuget安装成功

4.3 安装docker模块

1
Install-Module -Name DockerMsftProvider -Force  #安装docker模块

4.5 安装docker包

1
Install-Package -Name docker -ProviderName DockerMsftProvider -Force #安装docker包

4.6 重启电脑

1
Restart-Computer -Force #重新启动

4.6 查看docker安装信息

1
docker info 

二. 安装Emqx

1. 下载emqx镜像

1
2
3
PowerShell

docker pull emqx/emqx

2. 查看安装的Emqx镜像

方式一:在Docker desktop 的菜单Images 查看 emqx镜像

方式二:使用Powersehll

1
2
3
PowerShell

docker images

3. 启动Emqx

后台启动Emqx

1
2
3
PowerShell

docker run -d --name emqx -p 18083:18083 -p 1884:1883 --restart=always emqx/emqx:latest
--rm:移除容器
-d:指定以后台模式运行容器
--name:指定容器名称
-p 18083:18083:将主机的 1883 端口映射到容器的 1883 端口。
1883:MQTT 协议端口
8883:MQTT/SSL 端口
8083:MQTT/WebSocket 端口
8080:HTTP API 端口
18083:Dashboard 管理控制台端口

4. 登录Emqx管理后台

1
2
http://ip:18083  
默认账号:admin 密码:public

5. 管理后台查看Emqx信息

6. Emqx管理后台修改admin账户密码为 js*169 信息



二、 附录

1. 常见错误

1.1 系统不支持

Manifest extraction failed: 找不到 Windows 运行时类型“Windows.Data.Json.JsonObject”。
installation filed

解决方案:建议更换windows10及以上版本系统。

1.2 缺少WSL支持

WSL 2 Installation
解决方案:下载linux kerner内核更新包

1.3 windows10 版本太低(Windows Subsystem for Linux Update Setup)

检查运行 WSL 2 的要求,若要更新到 WSL 2,需要运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2.

    解决方案:建议升级windows10 的版本,升级到1903或者1909的最新版。

2. docker-emqx常用命令

进入docker emqx:docker exec -it emqx /bin/sh
重启docker emqx:docker restart emqx
停止docker emqx:docker stop emqx

md-rules

欢迎使用 Cmd Markdown 编辑阅读器


我们理解您需要更便捷更高效的工具记录思想,整理笔记、知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 —— 我们为记录思想和分享知识提供更专业的工具。 您可以使用 Cmd Markdown:

  • 整理知识,学习笔记
  • 发布日记,杂文,所见所想
  • 撰写发布技术文稿(代码支持)
  • 撰写发布学术论文(LaTeX 公式支持)

cmd-markdown-logo

除了您现在看到的这个 Cmd Markdown 在线版本,您还可以前往以下网址下载:

Windows/Mac/Linux 全平台客户端

请保留此份 Cmd Markdown 的欢迎稿兼使用说明,如需撰写新稿件,点击顶部工具栏右侧的 新文稿 或者使用快捷键 Ctrl+Alt+N


什么是 Markdown

Markdown 是一种方便记忆、书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档:譬如您正在阅读的这份文档。它使用简单的符号标记不同的标题,分割不同的段落,粗体 或者 斜体 某些文字,更棒的是,它还可以

1. 制作一份待办事宜 Todo 列表

  • [ ] 支持以 PDF 格式导出文稿
  • [ ] 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
  • [x] 新增 Todo 列表功能
  • [x] 修复 LaTex 公式渲染问题
  • [x] 新增 LaTex 公式编号功能

2. 书写一个质能守恒公式[1]

E=mc2E=mc^2

3. 高亮一段代码[2]

1
2
3
4
5
6
7
@requires_authorization
class SomeClass:
pass

if __name__ == '__main__':
# A comment
print 'hello world'

4. 高效绘制 流程图

1
2
3
4
5
6
7
8
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end

st->op->cond
cond(yes)->e
cond(no)->op

5. 高效绘制 序列图

1
2
3
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!

6. 高效绘制 甘特图

1
2
3
4
5
6
7
8
9
10
11
12
13
title 项目开发流程
section 项目确定
需求分析 :a1, 2016-06-22, 3d
可行性报告 :after a1, 5d
概念验证 : 5d
section 项目实施
概要设计 :2016-07-05 , 5d
详细设计 :2016-07-08, 10d
编码 :2016-07-15, 10d
测试 :2016-07-22, 5d
section 发布验收
发布: 2d
验收: 3d

7. 绘制表格

项目 价格 数量
计算机 $1600 5
手机 $12 12
管线 $1 234

8. 更详细语法说明

想要查看更详细的语法说明,可以参考我们准备的 Cmd Markdown 简明语法手册,进阶用户可以参考 Cmd Markdown 高阶语法手册 了解更多高级功能。

总而言之,不同于其它 所见即所得 的编辑器:你只需使用键盘专注于书写文本内容,就可以生成印刷级的排版格式,省却在键盘和工具栏之间来回切换,调整内容和格式的麻烦。Markdown 在流畅的书写和印刷级的阅读体验之间找到了平衡。 目前它已经成为世界上最大的技术分享网站 GitHub 和 技术问答网站 StackOverFlow 的御用书写格式。


什么是 Cmd Markdown

您可以使用很多工具书写 Markdown,但是 Cmd Markdown 是这个星球上我们已知的、最好的 Markdown 工具——没有之一 :)因为深信文字的力量,所以我们和你一样,对流畅书写,分享思想和知识,以及阅读体验有极致的追求,我们把对于这些诉求的回应整合在 Cmd Markdown,并且一次,两次,三次,乃至无数次地提升这个工具的体验,最终将它演化成一个 编辑/发布/阅读 Markdown 的在线平台——您可以在任何地方,任何系统/设备上管理这里的文字。

1. 实时同步预览

我们将 Cmd Markdown 的主界面一分为二,左边为编辑区,右边为预览区,在编辑区的操作会实时地渲染到预览区方便查看最终的版面效果,并且如果你在其中一个区拖动滚动条,我们有一个巧妙的算法把另一个区的滚动条同步到等价的位置,超酷!

2. 编辑工具栏

也许您还是一个 Markdown 语法的新手,在您完全熟悉它之前,我们在 编辑区 的顶部放置了一个如下图所示的工具栏,您可以使用鼠标在工具栏上调整格式,不过我们仍旧鼓励你使用键盘标记格式,提高书写的流畅度。

tool-editor

3. 编辑模式

完全心无旁骛的方式编辑文字:点击 编辑工具栏 最右侧的拉伸按钮或者按下 Ctrl + M,将 Cmd Markdown 切换到独立的编辑模式,这是一个极度简洁的写作环境,所有可能会引起分心的元素都已经被挪除,超清爽!

4. 实时的云端文稿

为了保障数据安全,Cmd Markdown 会将您每一次击键的内容保存至云端,同时在 编辑工具栏 的最右侧提示 已保存 的字样。无需担心浏览器崩溃,机器掉电或者地震,海啸——在编辑的过程中随时关闭浏览器或者机器,下一次回到 Cmd Markdown 的时候继续写作。

5. 离线模式

在网络环境不稳定的情况下记录文字一样很安全!在您写作的时候,如果电脑突然失去网络连接,Cmd Markdown 会智能切换至离线模式,将您后续键入的文字保存在本地,直到网络恢复再将他们传送至云端,即使在网络恢复前关闭浏览器或者电脑,一样没有问题,等到下次开启 Cmd Markdown 的时候,她会提醒您将离线保存的文字传送至云端。简而言之,我们尽最大的努力保障您文字的安全。

6. 管理工具栏

为了便于管理您的文稿,在 预览区 的顶部放置了如下所示的 管理工具栏

tool-manager

通过管理工具栏可以:

发布:将当前的文稿生成固定链接,在网络上发布,分享
新建:开始撰写一篇新的文稿
删除:删除当前的文稿
导出:将当前的文稿转化为 Markdown 文本或者 Html 格式,并导出到本地
列表:所有新增和过往的文稿都可以在这里查看、操作
模式:切换 普通/Vim/Emacs 编辑模式

7. 阅读工具栏

tool-manager

通过 预览区 右上角的 阅读工具栏,可以查看当前文稿的目录并增强阅读体验。

工具栏上的五个图标依次为:

目录:快速导航当前文稿的目录结构以跳转到感兴趣的段落
视图:互换左边编辑区和右边预览区的位置
主题:内置了黑白两种模式的主题,试试 黑色主题,超炫!
阅读:心无旁骛的阅读模式提供超一流的阅读体验
全屏:简洁,简洁,再简洁,一个完全沉浸式的写作和阅读环境

8. 阅读模式

阅读工具栏 点击 或者按下 Ctrl+Alt+M 随即进入独立的阅读模式界面,我们在版面渲染上的每一个细节:字体,字号,行间距,前背景色都倾注了大量的时间,努力提升阅读的体验和品质。

9. 标签、分类和搜索

在编辑区任意行首位置输入以下格式的文字可以标签当前文档:

标签: 未分类

标签以后的文稿在【文件列表】(Ctrl+Alt+F)里会按照标签分类,用户可以同时使用键盘或者鼠标浏览查看,或者在【文件列表】的搜索文本框内搜索标题关键字过滤文稿,如下图所示:

file-list

10. 文稿发布和分享

在您使用 Cmd Markdown 记录,创作,整理,阅读文稿的同时,我们不仅希望它是一个有力的工具,更希望您的思想和知识通过这个平台,连同优质的阅读体验,将他们分享给有相同志趣的人,进而鼓励更多的人来到这里记录分享他们的思想和知识,尝试点击 (Ctrl+Alt+P) 发布这份文档给好友吧!


再一次感谢您花费时间阅读这份欢迎稿,点击 (Ctrl+Alt+N) 开始撰写新的文稿吧!祝您在这里记录、阅读、分享愉快!

作者 [@ghosert][3]
2016 年 07月 07日


  1. 支持 LaTeX 编辑显示支持,例如:i=1nai=0\sum_{i=1}^n a_i=0, 访问 [MathJax][4] 参考更多使用方法。 ↩︎

  2. 代码高亮功能支持包括 Java, Python, JavaScript 在内的,四十一种主流编程语言。 ↩︎