这篇 Linux 总结的很棒啊!
点击上方“芋道源码”,选择“设为星标”
管她前浪,还是后浪?
能浪的浪,才是好浪!
每天 10:33 更新文章,每天掉亿点点头发...
源码精品专栏
原创 | Java 2021 超神之路,很肝~
中文详细注释的开源项目
RPC 框架 Dubbo 源码解析
网络应用框架 Netty 源码解析
消息中间件 RocketMQ 源码解析
数据库中间件 Sharding-JDBC 和 MyCAT 源码解析
作业调度中间件 Elastic-Job 源码解析
分布式事务中间件 TCC-Transaction 源码解析
Eureka 和 Hystrix 源码解析
Java 并发源码
来源:juejin.cn/post/
6844903801283952653
1. Linux安装
因为图太多了,转载一篇从虚拟机 vmware 配置到 centos7 详细安装教程
2.linux常用命令
2.1 常见目录
2.2 命令基本格式
2.3 文件处理命令
2.4 文件搜索命令
2.5 帮助命令
2.6 压缩与解压缩命令
2.7 关机和重启命令
2.9 查看登录用户信息
3. shell
3.1 查看支持的shell
3.2 echo
3.3 编写执行shell
3.4 别名
3.5 命令的生效顺序
3.6 命令快捷键
3.7 历史命令
3.8 调用
3.9 管道符号
4. vi 编辑器
4.1 操作模式
5. 用户和用户组
5.1 用户组
6. 用户操作
7. 用户命令
8. 附录
8.1 系统启动
1. Linux安装
因为图太多了,转载一篇从虚拟机 vmware 配置到 centos7 详细安装教程
https://www.cnblogs.com/wcwen1990/p/7630545.html
“
推荐下自己做的 Spring Boot 的实战项目:
https://github.com/YunaiV/ruoyi-vue-pro
2.linux常用命令
2.1 常见目录
/bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 |
---|---|
/etc | 存放系统管理和配置文件 |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 |
/usr | 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/x11r6 存放x window的目录/usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 |
/proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 |
/root | 超级用户(系统管理员)的主目录(特权阶级^o^) |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/dev | 用于存放设备文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/boot | 存放用于系统引导时使用的各种文件 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/tmp | 用于存放各种临时文件,是公用的临时文件存储点。 |
/var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。 |
/lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里 |
2.2 命令基本格式
2.2.1 命令提示符
[root@xiaoming ~]#
root 当前登录用户
localhost 主机名
~ 当前工作目录,默认是当前用户的家目录,root就是/root,普通用户是 /home/用户名
提示符 超级用户是 #,普通用户是$
2.2.2 命令格式
命令 [选项] [参数]
当有多个选项时,可以写在一起
一般参数有简化和完整写法两种
-a
与--all
等效
2.2.3 ls
查询目录中的内容
ls [选项] [文件或者目录]
选项
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录本身的属性而非子文件 ls /etc/
-h 人性化的方式显示文件大小
-i 显示inode,也就是i节点,每个节点都有ID号
默认当前目录下的文件列表
显示详细信息
drwxr-xr-x . 1 root root 800 Sep 16 00:19 logs
drwxr-xr-x | . | 1 | root | root | 800 | Sep 16 00:19 | logs |
---|---|---|---|---|---|---|---|
文件类型和权限 | ACL权限 | 硬链接引用计数 | 所有者 | 所属组 | 文件大小 | 最后修改时间 | 文件名 |
文件类型和权限
-rw-r--r--
文件类型 - 文件、d 目录、l 软链接文件
u(所有者)、g(所属组)、o(其他人)
r(read) 读取、w(write) 写入、x(execute) 执行
2.3 文件处理命令
2.3.1 mkdir
建立目录 make directory
mkdir -p [目录名]
-p 递归创建
2.3.2 cd
切换所在目录 change directory
cd [目录]
上次目录
~ 家目录
家目录
. 当前目录
.. 上级目录
相对路径是参照当前所在目录
绝对路径是从根目录开始
按TAB键可以补全命令和目录
2.3.3 pwd
显示当前目录 pwd
2.3.4 rmdir
删除目录 remove empty directory
rmdir [目录名]
2.3.5 rm
删除文件或者目录 remove
rm [文件或者目录]
-r 删除目录
-f 强制删除
rm -rf [文件或者目录] 递归强制删除所有目录
2.3.6 cp
copy 复制命令
copy [源文件或者目录] [目标文件]
-r 复制目录,默认是复制文件
-p 连带文件属性复制
-d 若源文件是链接文件,则复制连接属性
-a 相当于 -rpd
2.3.7 mv
移动文件或者改名 move
mv [源文件或者目录] [目标文件]
2.3.8 ln
链接命令,生成链接文件
link
2.3.8.1 硬链接特征
拥有相同的i节点和存储block块,可以看作是同一个文件
可以通过i节点访问
不能跨分区
不能针对目录使用
一般不使用
2.3.8.2 软链接特征
ln -s [源文件] [目标文件]
-s 创建软链接
类似Windows快捷方式
软链接拥有自己的i节点和Block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据
lrwxrwxrwx l 软链接 软链接的文件权限都是 777
修改任意一个文件,另一个都会改变
删除源文件,软链接不能使用
软链接源文件必须写绝对路径
2.4 文件搜索命令
2.4.1 locate
在后台数据库中按文件名搜索,速度比较快
数据保存在
/var/lib/mlocate
后台数据库,每天更新一次可以
updatedb
命令立刻更新数据库只能搜索文件名
/etc/updatedb.conf
建立索引的配置文件PRUNE_BIND_MOUNTS = "yes" 全部生效,开启搜索限制
PRUNEFS 不搜索的文件系统
PRUNENAMES 忽略的文件类型
PRUNEPATHS 忽略的路径 /tmp
2.4.2 whereis
搜索命令所在路径以及帮助文档所在位置
whereis 命令名
whereis ls
-b 只查找可执行文件
-m 只查找帮助文件
2.4.3 which
可以看到别名
which ls
能看到的都是外部安装的命令
无法查看Shell自带的命令,如
which cd
2.4.4 环境变量
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
定义的是系统搜索命令的路径
echo $PATH
2.4.5 find
文件搜索命令
find [搜索范围] [搜索条件]
2.4.5.1 按名称搜索
避免大范围的搜索,会非常消耗系统资源
find / -name aaa.log
2.4.5.2 通配符
find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
通配符
*
匹配任意内容?
匹配任意一个字符[]
匹配任意一个中括号内的字符
find . -name "ab[cdef]"
2.4.5.3 -i
不区分大小写
find / -iname A.log
2.4.5.4 -user
按所有者进行搜索
find /root -user root
find /root -nouser
2.4.5.5 按时间搜索
find /nginx/access.log -mtime +5
参数 | 含义 |
---|---|
atime | 文件访问时间 |
ctime | 改变文件属性 |
mtime | 修改文件内容 |
参数 | 含义 |
---|---|
-5 | 5天内修改的文件 |
5 | 5天前当前修改的文件 |
+5 | 5天前修改的文件 |
2.4.5.6 按大小搜索
k小写,M大写
find . -size 100k
参数 | 含义 |
---|---|
-8k | 小于8K |
8k | 等于8K |
+8k | 大于8K |
+8M | 小于8M |
2.4.5.7 按i节点搜索
find . -inum 123456
2.4.5.8 综合应用
find /tmp -size +10k -a -size -20k
查找/etc目录下,大于10KB并且小于20KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个就可以
find /tmp -size +10k -a -size -20k -exec ls -lh {} ;
exec 对上个命令的结果进行操作
2.4.5.9 grep
在文件当中匹配符合条件的字符串
grep "10" access.log
-i
忽略大小写-v
排除指定字符串
find命令,在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
grep命令 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配
2.5 帮助命令
2.5.1 基本用法
man 命令 获取指定命令的帮助
man ls
查看ls的帮助
man -f ls
whatis ls
man 1 ls
man 1p ls
2.5.2 关键字搜索
- man -k passwd
2.5.3 shell 内部帮助
whereis
找到就是外部,找不到就是内部
help cd
2.6 压缩与解压缩命令
.zip
.gz
.bz2
.tar.gz
.tar.bz2
2.6.1 zip格式
压缩文件 zip 压缩文件名 源文件
压缩目录 zip -r 压缩文件名 源目录
解压 unzip 压缩文件名
mkdir book
touch book/1.txt
touch book/2.txt
zip -r book.zip book
unzip book.zip
2.6.2 gzip
命令 | 示例 | 含义 |
---|---|---|
gzip 源文件 | gzip a.txt | 压缩为.gz格式的压缩文件,源文件会消失 |
gzip -c 源文件 > 压缩文件 | gzip -c yum.txt > yum.txt.gz | 压缩为.gz格式的压缩文件,源文件不会消失 |
gzip -r 目录 | gzip -r xx | 压缩目录下的所有子文件,但是不压缩目录 |
gzip -d 压缩文件名 | gzip -d yum.txt.gz | 解压缩文件,不保留压缩包 |
gunzip 压缩文件 | gunzip yum.txt.gz | 解压缩文件,不保留压缩包 |
压缩是压缩目录下的文件
2.6.3 .bz2格式压缩
命令 | 示例 | 含义 |
---|---|---|
bzip2 源文件 | bzip2 1.txt | 压缩为.bz2格式的文件,不保留源文件 |
bzip2 -k 源文件 | zip2 -k 1.txt | 压缩为.bz2格式的文件,保留源文件 |
bzip2 -d 压缩文件名 | bzip2 -d 1.txt.bz2 | 解压压缩包 |
bunzip2 压缩文件名 | bunzip2 1.txt.bz2 | 解压压缩包 |
bzip2 不能压缩目录
2.6.4 tar
打包命令
tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -cvf book.tar book
gzip book.tar
bzip2 book.tar
x 解打包
tar -xvf book.tar
2.6.4 压缩格式
压缩
“
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
“
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar unzip file.zip //解压zip
2.7 关机和重启命令
2.7.1 shutdown
shutdown 关机命令
-c 取消前一个关机命令
-h 关机
-r 重启
shutdown -r 06:00
shutdown -c
2.7.2 init
关机
init 0
重启
init 6
系统的运行级别
0 关机
1 但用户
2 不 完全多用户,不包含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
2.7.3 logout
退出登录
logout
2.9 查看登录用户信息
2.9.1 w
查看登录用户信息
USER 登录的用户名
TTY 登录的终端 tty1 本地终端 pts/0远程终端
FROM 登录的IP
LOGIN 登录时间
IDLE 用户闲置时间
JCPU 该终端所有进程占用的时间
PCPU 当前进程所占用的时间
WHAT 正在执行的命令
2.9.2 who
查看登录用户信息
USER 登录的用户名
TTY 登录的终端 tty1 本地终端 pts/0远程终端
LOGIN 登录时间(登录的IP)
2.9.3 last
查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp
文件
用户名
登录终端
登录IP
登录时间
退出时间(在线时间)
2.9.4 lastlog
查看所有用户的最后一次登录时间
用户名
登录终端
登录IP
最后一次登录时间
“
推荐下自己做的 Spring Cloud 的实战项目:
https://github.com/YunaiV/onemall
3. shell
shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序
用户可以用Shell来启动、挂起、停止或者编写一些程序
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。
Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
3.1 查看支持的shell
/etc/shells
3.2 echo
输出命令
--e 支持反斜线控制的字符转换
控制字符 | 作用 |
---|---|
\a | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\onnn | 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数 |
3.3 编写执行shell
#!/bin/bash
echo -e "\e[1;34m hello world \e[0m"
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
3.4 别名
命令别名 == 小名
临时生效
alias
alias rm="rm -i"
写入环境变量配置文件 vi ~/.bashrc
source ~/.bashrc
unalias 别名 删除别名
3.5 命令的生效顺序
绝对路径或者相对路径
别名
bash内部命令
按照$PATH环境变量定义的目录查找顺序找到的第一个命令
3.6 命令快捷键
命令 | 含义 |
---|---|
ctrl+c | 强制终止当前命令 |
ctrl+l | 清屏 |
ctrl+a | 光标移动到命令行首 |
ctrl+e | 光标移动到命令行尾 |
ctrl+u | 从光标所在的位置删除到行首 |
ctrl+z | 把命令放入后台 |
ctrl+r | 在历史命令中搜索 |
3.7 历史命令
history [选项] [历史命令保存文件]
选项
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
默认保存1000条 /etc/profile HISSIZE=10000
3.8 调用
使用上下箭头调用以前的历史命令
使用 !n 重复执行第n条历史命令
使用 !! 重复执行上一条命令
使用 !字符 重复执行最后一条以该字符串开头的命令
3.9 管道符号
3.9.1 多命令顺序执行
(1) ; 分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。
(2) || 逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。
(3) && 逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。
(4) | 管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。
- date;ls;date;ls
- ls && echo yes || echo no
3.9.2 管道符号
命令1的正确输出会作为命令2的操作对象
命令1|命令2
ls /etc/ | more
netstat -an | grep ESTABLISHED | wc -l
3.9.3 通配符
匹配文件名和目录名 |通配符|作用| |:----|:----| |?|匹配一个任意字符| |*|匹配0个或任意字符,也就是可以匹配任意内容| |[]|匹配中括号中任意一个字符| |[-]|匹配中括号中任意一个字符,-代表范围| |[^]|匹配不是中括号中的一个字符|
3.9.4 其它符号
符号 | 作用 |
---|---|
'' | 单引号。在单引号中所有的特殊符号,如$和`都没有特殊含义 |
"" | 双引号,在双引号里特殊符号都没有特殊含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义 |
`` | 反引号,扩起来的是系统命令 |
$() | 和反引号一样 |
# | 在shell脚本中,#开头的行代表注释 |
$ | 用于调用变量的值 |
\ | 转义符号 |
- a=`ls`
- b=$(ls)
4. vi 编辑器
VI visual interface
可视化接口
类似与windows中的记事本
vim支持多级撤销
跨平台
语法高亮
支持图形界面
4.1 操作模式
:w 保存
:q 退出
:! 强制保存
:ls 列出所有的文件
:n 下一个
:N 上一个
:15 跳转到指定行
/xxx 从光标位置开始向后搜索 xxx 字符串
?xxx 从光标位置开始向前搜索
5. 用户和用户组
使用操作系统的人都是用户
用户组是具有相同系统权限的一组用户
5.1 用户组
5.1.1 /etc/group
/etc/group 存储当前系统中所有用户组信息
group❌123:abc,def
组名称:组密码占位符:组编号:组中用户名列表
root 组编号为0
1-499系统预留的编号 预留给安装的软件和服务的
用户手动创建的用户组从500开始
组密码占位符都是x
5.1.2 /etc/gshadow
存放当前系统中用户组的密码信息
和group中的记录一一对应
Group: * : :abc
组名称 组密码 组管理者 组中用户名
5.1.3 /etc/passwd
存储当前系统中所有用户的信息
user❌123:456:xxxxx:/home/user:/bin/bash
用户名:密码占位符:用户编号: 用户注释信息:用户主目录:shell类型
5.1.4 /etc/shadow
存放当前系统中所有用户的密码信息
user:xxx:::::::
用户名:密码:
6. 用户操作
添加组
groupadd student
修改组名称
groupmod -n stu student
修改组编号
groupmod -g 111 stu
添加分组并指定编号
groupadd -g 222 teacher
删除分组
groupdel 222
添加分组
groupadd teacher
为用户指定所属组
useradd -g teacher zhangsan
为用户指定所属组
useradd -g teacher lisi
为用户指定工作目录
useradd -d /home/zhangsan zhangsan
指定注释
usermod -c iamateacher zhangsan
修改用户名
usermod -l zhangsan zhangsan2
指定文件夹
usermod -d /home/zhangsan2 zhangsan2
修改用户所属组
usermod -g stu zhangsan2
删除用户
userdel zhangsan2
删除所属文件夹
userdel -r lisi
7. 用户命令
显示登录的用户名
whoami
显示指定用户信息,包括用户编号,用户名 主要组的编号及名称,附属组列表
id zhangsan
显示 zhangsan 用户所在的所有组
groups zhangsan
显示用户详细资料
finger zhangsan
8. 附录
8.1 系统启动
8.1.1 BIOS
计算机通电后,第一件事就是读取刷入ROM芯片的开机程序,这个程序叫做(Basic Input/Output System)
8.1.2 硬件自检
BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test)
如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。
8.1.3 启动顺序
硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。
这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备
BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序"(Boot Sequence)
BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。
这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。
这最前面的512个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)
8.1.4 主引导记录的结构
"主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。
(1) 第1-446字节:是用来记录系统的启动信息的,调用操作系统的机器码
(2) 第447-510字节(64个字节):分区表(Partition table),分区表的作用,是将硬盘分成若干个区
(3) 第511-512字节:主引导记录签名(0x55和0xAA)
8.1.5 分区表
磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分
磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区内
"主引导记录"因此必须知道将控制权转交给哪个区
分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做"主分区"
(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
(3) 第5个字节:主分区类型,比如FAT32、NTFS等。
(4) 第6-8个字节:主分区最后一个扇区的物理位置。
(5) 第9-12字节:该主分区第一个扇区的逻辑地址。
(6) 第13-16字节:主分区的扇区总数。
8.1.6 硬盘启动
计算机的控制权就要转交给硬盘的某个分区了
四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume boot record,缩写为VBR)
8.1.7 操作系统
控制权转交给操作系统后,操作系统的内核首先被载入内存。
以Linux系统为例,先载入
/boot
目录下面的kernel
。内核加载成功后,第一个运行的程序是/sbin/init
。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代然后,
init
线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login
程序,跳出登录界面,等待用户输入用户名和密码。
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:
已在知识星球更新源码解析如下:
最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。
提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
这篇 Linux 总结的很棒啊!相关推荐
- 这篇 Linux 总结得很棒啊!
1. Linux安装 因为图太多了,转载一篇从虚拟机 vmware 配置到 centos7 详细安装教程 https://www.cnblogs.com/wcwen1990/p/7630545.htm ...
- Github上8个很棒的Vue项目
大家好,我是若川.持续组织了近一年的源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列 ...
- Github上8个很棒的React项目
大家好,我是若川.持续组织了近一年的源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列 ...
- c++每调用一次函数+1_每个开发人员都应该知道的一些很棒的现代C ++功能
c++每调用一次函数+1 As a language, C++ has evolved a lot. 作为一种语言,C ++已经发展了很多. Of course this did not happen ...
- 推荐10个很棒的 CSS3 开发工具
CSS3 是对 CSS 规范的一个很大的改善和增强,它使得 Web 开发人员可以很容易的在网站中加入时尚的效果.尽管如此,有几个工具可以在你使用 CSS3 制作网站的时候起到很好的帮助作用.在这篇文章 ...
- python交互式编程入门先学什么_为什么 Python 对于编程入门学习来说,是一门很棒的语言...
在这篇文章里,我会来阐述下为什么我觉得 Python 对于计算机编程入门教学来说是一门很棒的编程语言(对基础编程课程更多观点可以查看这篇文章).这也是从我针对初学者Python 编程教学过程中获得并总 ...
- python 使用c模块_您可能没有使用(但应该使用)的很棒的Python模块
python 使用c模块 by Adam Goldschmidt 亚当·戈德施密特(Adam Goldschmidt) 您可能没有使用(但应该使用)的很棒的Python模块 (Awesome Pyth ...
- git团队如何提交_如何使您的提交消息很棒并保持团队快乐
git团队如何提交 by Bruno 由Bruno 如何使您的提交消息很棒并保持团队快乐 (How to make your commit messages awesome and keep your ...
- 美团脱颖而出的经验_2016年脱颖而出的7个很棒的小开源项目
美团脱颖而出的经验 在开放源代码运动的早期,很多注意力都集中在操作系统上,后来又集中在大型内容管理系统上. 如今,即使在主流新闻媒体中也经常提到容器. 大型技术故事很棒,但是他们错过了开放源代码领域的 ...
最新文章
- Redis 命令整理
- 张正友相机标定代码(c++python)
- java异常处理好习惯
- 解压mysql server_2018-05-09 MySql-server解压缩版安装及配置
- http协议工作原理(精简)
- 理想汽车CEO李想深夜回应“水银事件”:百分百支持你去报案
- 工业环境软件套件 CODESYS web 服务器被曝严重的RCE漏洞
- 省城两日游,凉透了。。。
- sentinel——SLC数据下载、DEM数据下载拼接、精密轨道数据下载方法
- C语言 自定义数据类型(结构体 typedef 共用体 位段 枚举)
- 微型计算机是嵌入式吗,什么是嵌入式计算机
- 读书笔记 | 4.3 基于征信系统的征信基础产品
- JS的迭代器和可迭代对象详解
- DNS污染,配置DNS
- 如何在百度和各大网站搜索到自己的文章
- Apollo Routing拓扑地图生成源码学习
- 解救小哈——DFS算法举例
- 全国大学生智能汽车竞赛图像采集处理上位机开源!
- IP地址和子网掩码的作用是什么
- 如何解决刷新一瞬间 出现样式未加载完 或者 出现VUE代码问题
热门文章
- Input elements should have autocomplete attributes (suggested: new-password)
- dbca silent方式建库
- Springboot—mysql+mybatis+generator插件
- 使用MMX/SSE汇编指令集优化视频开发
- 二、final和static关键字,接口和抽象类
- 品铂平板电脑刷linux,教你如何把品铂PIPO W8平板电脑升级到win10系统
- jupyter怎么配置python_python-如何在Jupyter noteb中设置环境变量
- add_months用法解析
- 疯狂python讲义学习笔记——中十章完结
- esxi时间服务器在哪配置文件,如何使用vSphere Web Client配置 ESXi时间同步?