#课程大纲
第一天
一、计算机基础和linux安装
1、计算机基础(100分钟) 免费试学
2、服务器硬件组成(72分钟)
3、操作系统相关技术和Unix历史(63分钟)
4、Linux各种版本的安装(116分钟)
第二天
二、计算机基础和帮助
1、Linux远程连接和基本操作(57分钟) 免费试学
2、Linux的终端和运行命令(64分钟)
3、linux命令格式(41分钟)
4、Linux常用命令(55分钟)
5、ASCII和Unicode编码及各种符号用法(53分钟)
6、linux查看帮助用法(65分钟)
7、Linux的目录结构和文件类型(46分钟)

1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

slackware:SUSE Linux Enterprise Server (SLES) , OpenSuse桌面
debian: ubuntu,deepin(深度),mint
redhat: RHEL: RedHat Enterprise Linux, 每18个月发行一个新版本
CentOS: Community Enterprise Operating System 兼容RHEL的格式
中标麒麟:中标软件
Fedora:每6个月发行一个新版本
Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,只有5M左右大小
ArchLinux:轻量简洁,遵循K.I.S.S.原则( keep it simple and stupid ),Manjaro
Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件
LFS:Linux From scratch 自制Linux,只是一个说明书
Android:kernel+busybox(工具集)+java虚拟机
Linux 分支参考网站:http://futurist.se/gldt/
Linux发行版排名: https://distrowatch.com/dwres.php?resource=popularity
Linux 发行版体验: https://distrotest.net/

2、安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录。

Centos7.9

[root@centos7 home]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@centos7 home]# useradd linxiaodong
[root@centos7 home]# passwd linxiaodong
Changing password for user linxiaodong.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@centos7 home]# su - linxiaodong

ubuntu18.04.5

root@ubuntu1804:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
root@ubuntu1804:~# adduser linxiaodong
Adding user `linxiaodong' ...
Adding new group `linxiaodong' (1001) ...
Adding new user `linxiaodong' (1001) with group `linxiaodong' ...
The home directory `/home/linxiaodong' already exists.  Not copying from `/etc/skel'.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for linxiaodong
Enter the new value, or press ENTER for the defaultFull Name []: linxiaodongRoom Number []: 63Work Phone []: 18824116910Home Phone []: 18824116910Other []: linxiaodong
Is the information correct? [Y/n] y
root@ubuntu1804:~# su - linxiaodong
linxiaodong@ubuntu1804:~$

3、配置环境变量,实现执行history的时候可以看到执行命令的时间。

[root@centos8 profile.d]#cat /etc/profile.d/env.sh
PS1='\[\e[1;36m\][\u@\h \W]\$\[\e[0m\]'
export EDITOR=vim
export HISTTIMEFORMAT="%F %T "
[root@centos8 profile.d]#history |head1  2021-12-20 13:02:08 reboot2  2021-12-20 13:02:08 cat /etc/shadow3  2021-12-20 13:02:08 lsblk 4  2021-12-20 13:02:08 tty5  2021-12-20 13:02:08 who am i6  2021-12-20 13:02:08 who a b7  2021-12-20 13:02:08 who a a8  2021-12-20 13:02:08 who9  2021-12-20 13:02:08 w10  2021-12-20 13:02:08 ps -a |grep bash

4、总结Linux哲学思想。

一切都是一个文件(包括硬件)
小型,单一用途的程序
链接程序,共同完成复杂的任务
避免令人困惑的用户界面
配置数据存储在文本中

5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令

5.1 lscpu命令可以查看cpu信息,cat /proc/cpuinfo也可看查看到

[root@centos8 ~]#lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           2
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               60
Model name:          Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
Stepping:            3
CPU MHz:             3292.377
BogoMIPS:            6584.75
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            6144K
NUMA node0 CPU(s):   0,1
[root@centos8 ~]#cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 60
model name  : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz

5.2 查看内存大小

[root@centos8 ~]#freetotal        used        free      shared  buff/cache   available
Mem:        1996212     1277336      229340       18424      489536      529020
Swap:       2097148     1116672      980476
[root@centos8 ~]#cat /proc/meminfo
MemTotal:        1996212 kB
MemFree:          228016 kB
MemAvailable:     527700 kB
Buffers:             384 kB
Cached:           410000 kB

5.3查看硬盘和分区情况

[root@centos8 ~]#lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk
├─sda1        8:1    0  100G  0 part /
├─sda2        8:2    0   50G  0 part /data
├─sda3        8:3    0    2G  0 part [SWAP]
├─sda4        8:4    0    1K  0 part
└─sda5        8:5    0    1G  0 part /boot
sr0          11:0    1  8.6G  0 rom  /run/media/wang/CentOS-8-3-2011-x86_64-dvd

5.4查看内核版本

[root@centos8 ~]#uname -r
4.18.0-240.el8.x86_64

5.5查看操作系统发行版本

CentOS8 查看发行版本

[root@centos8 ~]#cat /etc/redhat-release
CentOS Linux release 8.3.2011
[root@centos8 ~]#^C
[root@centos8 ~]#cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"

ubuntu查看发行版本

linxiaodong@ubuntu1804:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

5.6日期和时间

5.6.1 date 显示和设置系统时间

[root@centos8 ~]#date +%s
1639985936
[root@centos8 ~]#date -d @`date +%s`
Mon Dec 20 15:39:00 CST 2021
[root@centos8 ~]#date -d @1639985803 +%F_%T
2021-12-20_15:36:43
[root@centos8 ~]#date -d @1639985803
Mon Dec 20 15:36:43 CST 2021
[root@centos8 ~]#date -d "2021-12-20" +%s
1639929600

5.6.2 clock,hwclock: 显示硬件时钟

-s, --hctosys #以硬件时钟为准,校正系统时钟
-w, --systohc #以系统时钟为准,校正硬件时钟

范例:

[root@centos8 ~]#ll /usr/sbin/clock
lrwxrwxrwx. 1 root root 7 Jul 22  2020 /usr/sbin/clock -> hwclock

5.6.3 时区

/etc/localtime

范例:

[root@centos8 ~]#timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
[root@centos8 ~]#timedatectl set-timezone Asia/Shanghai
[root@centos8 ~]#timedatectl statusLocal time: Mon 2021-12-20 16:49:31 CSTUniversal time: Mon 2021-12-20 08:49:31 UTCRTC time: Mon 2021-12-20 08:49:27Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: noNTP service: inactiveRTC in local TZ: no
[root@centos8 ~]#ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Dec 14 21:33 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

5.6.4 显示日历

[root@centos8 ~]#cal -y2021                               January               February                 March
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa1  2       1  2  3  4  5  6       1  2  3  4  5  63  4  5  6  7  8  9    7  8  9 10 11 12 13    7  8  9 10 11 12 13
10 11 12 13 14 15 16   14 15 16 17 18 19 20   14 15 16 17 18 19 20
17 18 19 20 21 22 23   21 22 23 24 25 26 27   21 22 23 24 25 26 27
24 25 26 27 28 29 30   28                     28 29 30 31
31
[root@centos8 ~]#cal -mDecember 2021
Mo Tu We Th Fr Sa Su1  2  3  4  56  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

5.7 关机和重启

关机:
halt
poweroff
重启:
reboot
-f: 强制,不调用shutdown
-p: 切断电源
关机或重启:shutdown

shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot
-h: halt
-c:cancel
TIME:无指定,默认相当于+1(CentOS7)
now: 立刻,相当于+0
+#: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间

范例:

[root@centos8 ~]#shutdown -r +60
Shutdown scheduled for Mon 2021-12-20 18:08:02 CST, use 'shutdown -c' to cancel.
[root@centos8 ~]#shutdown -c
[root@centos8 ~]#shutdown 18:00
Shutdown scheduled for Mon 2021-12-20 18:00:00 CST, use 'shutdown -c' to cancel.
[root@centos8 ~]#shutdown -c

5.8 用户登录信息查看命令

whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作

[root@centos8 ~]#whoami
root
[root@centos8 ~]#who
root     pts/0        2021-12-20 17:06 (10.0.0.1)
[root@centos8 ~]#w17:10:30 up 5 min,  1 user,  load average: 0.00, 0.06, 0.03
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         17:06    6.00s  0.05s  0.01s w

5.9 文本编辑

nano 工具可以实现文本的编辑,上手容易,适合初学者
gedit 工具是图形工具
范例: 创建登录提示文件 /etc/motd
参考网站: https://www.bootschool.net/ascii-art

[root@centos8 ~]#cat /etc/motd
[root@centos8 ~]#exitConnecting to 10.0.0.151:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机     永无BUG                    //Web console: https://centos8.magedu.org:9090/ or https://10.0.0.151:9090/Last login: Mon Dec 20 17:06:42 2021 from 10.0.0.1

5.10 会话管理

5.10.1 screen

利用screen 可以实现会话管理,如:新建会话,共享会话等
注意:CentOS7 来自于base源,CentOS8 来自于epel源
范例:安装 screen

#CentOS7 安装screen
[root@centos7 ~]#yum -y install screen
#CentOS8 安装screen
[root@centos8 ~]#dnf -y install epel-release
[root@centos8 ~]#dnf -y install screen

screen命令常见用法:
创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]

5.10.2 tmux

Tmux 是一个终端复用器(terminal multiplexer),类似 screen,但是更易用,也更强大
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下
它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
它可以让新窗口"接入"已经存在的会话。
它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
它还支持窗口任意的垂直和水平拆分
安装:

yum install tmux -y

窗格快捷键

Ctrl+b %:划分左右两个窗格
Ctrl+b ":划分上下两个窗格
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换
到下方窗格,就按方向键↓
Ctrl+b ;:光标切换到上一个窗格
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格左移
Ctrl+b }:当前窗格右移
Ctrl+b Ctrl+o:当前窗格上移
Ctrl+b Alt+o:当前窗格下移
Ctrl+b x:关闭当前窗格
Ctrl+b !:将当前窗格拆分为一个独立窗口
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小
Ctrl+b q:显示窗格编号

上下分窗格

tmux split-window
ctrl+b,"

左右分窗格

tmux split-window -h
ctrl+b,%

5.11 echo 基本用法

echo 命令可以将后面跟的字符进行输出
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加
上换行号
语法:

echo [-neE][字符串]

选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
显示变量

echo "$VAR_NAME”  #用变量值替换,弱引用
echo '$VAR_NAME’  #变量不会替换,强引用

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
范例:

[root@centos8 ~]#echo -e 'a\x0Ab'
a
b
[root@centos8 ~]#echo -e '\033[43;31;1;5mmagedu\e[0m'
magedu
[root@centos8 ~]#echo -e '\x57\x41\x4E\x47'
WANG
[root@centos8 ~]#echo $\PATH
$PATH
[root@centos8 ~]#echo \
> echo
echo
[root@centos8 ~]#echo \\
\
[root@centos8 ~]#echo \\\
> echo
\echo
[root@centos8 ~]#echo \\\\
\\
[root@centos8 ~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos8 ~]#echo '$PATH'
$PATH

6、描述Linux发行版的系统目录名称命名规则以及用途。

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置 bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

N63044-第一周相关推荐

  1. 第一周Access课总结

    第一周Access课总结 1:这节课学到了什么? 这节课重点学了数据库是用来干什么 做什么的  老师怕我们理解不了 用了很长时间向我们举了很多的例子 让我们终于知道了数据库是用来干嘛的了 顾名思义 数 ...

  2. 20162313苑洪铭 第一周作业

    20162313苑洪铭 20016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周观看教材绪论 主要在教我建立一个简单的java程序 内容是林肯的名言 虽然看起 ...

  3. 大三下学期第一周总结

    本周以是开学第一周了,在生活方面,生活琐事确实变多了起来.每天上课,看着老师熟悉的面庞,如履春风.感觉学习没有那么多的陌生恐惧.学习是一方面,身体锻炼不能落下.一周至少保证三小时及其以上的运动.身体是 ...

  4. java开放源码_开放源码的第一周:我是如何参与的,以及我学到的东西

    java开放源码 by Chak Shun Yu 泽顺宇 开放源码的第一周:我是如何参与的,以及我学到的东西 (My first week of open source: how I got invo ...

  5. 学习进度条(第一周)

    学习进度条:   第一周 所花时间(包括上课) 5h 代码量(行) 150 博客量(篇) 2 了解到的知识点 这种主要是对上学期web知识的一个回顾,进行了第一次开学测验,了解了实发项目的开环情况. ...

  6. python第一周小测验_Python小测试

    第一周 1. 下列关于函数的描述中,正确的说法有哪些 ·函数可以是自己定义的,也可以是 Python 内置的 ·一个函数可以被重复调用多次 ·函数可以不带参数,也可以带多个参数 ·函数可以有返回值,也 ...

  7. 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)

    北师大·五年级上册·第一周周测·小数除法(1) 一.计算题 3.6÷1.2= 0.72÷0.9= 2.6÷13= 4.8÷0.4= 4.4÷4= 0.78÷6= 7.2÷0.4= 1÷0.25= 5. ...

  8. python 南京大学_南京大学python课程系列笔记之python基础之第一周:走进python

    1.1 python简介: 历史,特点,应用 1.2 第一个python程序: 1.输出: print(字符串) print(变量) 2.输入: varibale = input("mess ...

  9. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  10. Linux基础第一周

    Linux基础第一周 命令的格式 command(命令)option(选项)arguments(参数)三部分组成,之间需要空格间隔 options 选项 启用命令的某项功能,从而更改命令的功能 arg ...

最新文章

  1. “不设边界”的云知声:从多场景AI芯片到视觉AI,誓要2019营收近3倍
  2. perl脚本发送邮件
  3. “网络实名制”的背后
  4. C++踩坑之连接mysql数据库
  5. 编程 跳台阶_Java版剑指offer编程题第8题--跳台阶
  6. python开发环境功能介绍_第一模块 第3章 Python介绍与环境配置
  7. 前端之 BOM 和 DOM
  8. TypeError: rose() takes 0 positional arguments but 1 was given--python报错
  9. mfc 学习的第一天
  10. 超级终端连接华为交换机_小编解决win8系统使用超级终端连接华为交换机的设置步骤...
  11. 【咸鱼教程】虚拟摇杆
  12. opencv摄像头异常处理
  13. MFC的CImage图形处理
  14. YOLOV3 config理解
  15. 通过路由器来设置局域网下无线打印机打印
  16. android exo解码问题,android – exoplayer-自动更改质量不起作用(hls)
  17. pygame 游戏开场动画渲染学习,绘制 10*7=70 个小方块
  18. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...
  19. 【代老婆发】你是中介,你姐是黑中介,你们全家都是我爱我家的中介
  20. 语法制导翻译和中间代码生成

热门文章

  1. 「我只是认真」——聊聊工匠情怀
  2. [uwp]ImageSource和byte[]相互转换
  3. Java 中什么时候用接口,什么时候用抽象类
  4. 创建简单的银行账户类,包括开户人、账号、和存款余额3个属性,以及查询余额、存款、取款等方法。创建两个账户验证类的设计。
  5. 上海EMBA项目|上国会-美国亚利桑那州立大学合办金融财务EMBA
  6. 第10章第25节:使用Paper Cut Art Generator创建剪纸艺术图像 [PowerPoint精美幻灯片实战教程]
  7. 华为开发者大会主题演讲:全链路网络加速,全场景极速体验
  8. WPS JS宏 打开带密码并对多工作薄多工作表进行合并实例
  9. 来自30+女生的脱单分享,总结了5种脱单渠道让你快速脱单
  10. Rest环境搭建:服务提供者和消费者