关注「WeiyiGeek」公众号

设为「特别关注」每天带你玩转网络安全运维、应用开发、物联网IOT学习!

希望各位看友【关注、点赞、评论、收藏、投币】,助力每一个梦想。


本章目录


首发地址: https://mp.weixin.qq.com/s/dO1bV0tfXKn4ZmqlMcUrrQ

原文地址: https://blog.weiyigeek.top/2022/8-13-683.html


0x00 前言简述

描述: Ubuntu 22.04 LTS 是Canonical于2022年4月21日发布的操作系统,代号为Jammy Jellyfish(果酱水母), 其采用GNOME电源配置文件和流线型工作空间过渡,提高优化图形驱动程序上的桌面帧速率,使用新的加密算法迁移到OpenSSL v3以提高安全性,并且为内存安全的系统级编程添加了Rus。

而又由于CentOS发行版在最近几年时内将不在进行维护更新了,所以为了考虑到系统的安全性、可维护性、以及后期运维成本,我们企业内部在2020年时就已经将ubuntu作为主要的服务器系统,所以在我公司新上的业务系统基本采用debian系的发行版服务器来承载基础应用业务,而使用最多当然是Ubuntu此发行版。

现在 Ubuntu 推出了22.04 , 想到原来每次都需要手动一台一台的进行主机安全加固以符合等保要求,所以了节约工作时间提高工作效率,有更多时间进行学习进步,则需要将将我们公司所使用的系统基线镜像进行更新迭代,编写适用于ubuntu 22.04系统的安全加固脚本,并且总结此篇文章并在文章末尾附上自动化安全加固脚本,谢谢大家支持。

此处我依据在我从前编写的 Ubuntu 20.04 系统安全加固脚本中对其根据最新的22.04版本进行更新了等保相关规定策略,以及更新适用最新版本的 Ubuntu,针对脚本进行结构调整,更加方便大家一起参参与维护,若脚本有Bug请大家发送到我的邮箱 master@weiyigeek.top

想要获取该加固脚本的朋友可以在WX公众号【WeiyiGeek】中回复【ubuntu系统加固】即可获得,或者访问【https://weiyigeek.top/wechat.html?key=ubuntu系统加固



首发地址: https://mp.weixin.qq.com/s/dO1bV0tfXKn4ZmqlMcUrrQ

实践视频https://www.bilibili.com/video/BV1fe4y1o7ov


0x01 加固实践

描述: Ubuntu 22.04 主机系统安全加固的 Ubuntu22.04-InitializeReinforce.sh 脚本相关上的使用说明以及实践。

​ 帮助文档

描述: 本工具集主要针对于 Ubuntu 22.04 、20.04 LTS 操作系统进行安全加固以及系统初始化操作。

脚本说明:

  1. root@Ubuntu-Security:/home/ubuntu/Ubuntu# ./Ubuntu22.04-InitializeReinforce.sh
  2. __ __ _ _ _____ _
  3. \ \ / / (_) (_)/ ____| | |
  4. \ \ /\ / /__ _ _ _ _| | __ ___ ___| | __
  5. \ \/ \/ / _ \ | | | | | | |_ |/ _ \/ _ \ |/ /
  6. \ /\ / __/ | |_| | | |__| | __/ __/ <
  7. \/ \/ \___|_|\__, |_|\_____|\___|\___|_|\_\
  8. __/ |
  9. |___/
  10. ======================================================================
  11. @ Desc: Ubuntu 22.04 Security Reinforce and System initialization
  12. @ Mail bug reports: master@weiyigeek.top or pull request (pr)
  13. @ Author : WeiyiGeek
  14. @ Follow me on Blog : https://blog.weiyigeek.top/
  15. @ Follow me on Wechat : https://weiyigeek.top/wechat.html?key=欢迎关注
  16. @ Communication group : https://weiyigeek.top/visit.html
  17. ======================================================================
  18. Usage: ./Ubuntu22.04-InitializeReinforce.sh [--start ] [--network] [--function] [--clear] [--version] [--help]
  19. Option:
  20. --start Start System initialization and security reinforcement.
  21. --network Configure the system network and DNS resolution server.
  22. --function PCall the specified shell function.
  23. --clear Clear all system logs, cache and backup files.
  24. --version Print version and exit.
  25. --help Print help and exit.
  26. Mail bug reports or suggestions to <master@weiyigeek.top> or pull request (pr).
  27. current version : 1.0
  28. WARNING: 温馨提示:使用前先请配置机器上网环境,若没有配置请在 Ubuntu22.04.conf 文件中进行网络配置.

⚛️脚本函数:

描述: 如下脚本将根据参数在 Ubuntu22.04-InitializeReinforce.sh 分别进行调用执行, 也可采用--function 参数进行指定调用。

  1. grep -r -n "函数名称" -A 1 *
  2. scripts/os-base.sh:26:# 函数名称: base_hostname
  3. scripts/os-base.sh-27-# 函数用途: 主机名称设置
  4. --
  5. scripts/os-base.sh:55:# 函数名称: ubuntu_mirror
  6. scripts/os-base.sh-56-# 函数用途: ubuntu 系统主机软件仓库镜像源
  7. --
  8. scripts/os-base.sh:126:# 函数名称: ubuntu_software
  9. scripts/os-base.sh-127-# 函数用途: ubuntu 系统主机内核版本升级以常规软件安装
  10. --
  11. scripts/os-base.sh:153:# 函数名称: base_timezone
  12. scripts/os-base.sh-154-# 函数用途: 主机时间同步校准与时区设置
  13. --
  14. scripts/os-base.sh:192:# 函数名称: base_banner
  15. scripts/os-base.sh-193-# 函数用途: 远程本地登陆主机信息展示
  16. --
  17. scripts/os-base.sh:345:# 函数名称: base_reboot
  18. scripts/os-base.sh-346-# 函数用途: 是否进行重启或者关闭服务器
  19. --
  20. scripts/os-clean.sh:27:# 函数名称: system_clean
  21. scripts/os-clean.sh-28-# 函数用途: 删除安全加固过程临时文件清理为基线镜像做准备
  22. --
  23. scripts/os-exceptions.sh:26:# 函数名称: problem_usercrond
  24. scripts/os-exceptions.sh-27-# 函数用途: 解决普通用户定时任务无法定时执行问题
  25. --
  26. scripts/os-exceptions.sh:45:# 函数名称: problem_multipath
  27. scripts/os-exceptions.sh-46-# 函数用途: 解决 ubuntu multipath add missing path 错误
  28. --
  29. scripts/os-network.sh:27:# 函数名称: net_config
  30. scripts/os-network.sh-28-# 函数用途: 主机IP地址与网关设置
  31. --
  32. scripts/os-network.sh:70:# 函数名称: net_dns
  33. scripts/os-network.sh-71-# 函数用途: 设置主机DNS解析服务器
  34. --
  35. scripts/os-optimize.sh:27:# 函数名称: optimize_kernel
  36. scripts/os-optimize.sh-28-# 函数用途: 系统内核参数的优化配置
  37. --
  38. scripts/os-optimize.sh:84:# 函数名称: resources_limits
  39. scripts/os-optimize.sh-85-# 函数用途: 系统资源文件打开句柄数优化配置
  40. --
  41. scripts/os-optimize.sh:115:# 函数名称: swap_partition
  42. scripts/os-optimize.sh-116-# 函数用途: 创建系统swap分区
  43. --
  44. scripts/os-security.sh:27:# 函数名称: sec_usercheck
  45. scripts/os-security.sh-28-# 函数用途: 用于锁定或者删除多余的系统账户
  46. --
  47. scripts/os-security.sh:65:# 函数名称: sec_userconfig
  48. scripts/os-security.sh-66-# 函数用途: 针对拥有ssh远程登陆权限的用户进行密码口令设置。
  49. --
  50. scripts/os-security.sh:131:# 函数名称: sec_passpolicy
  51. scripts/os-security.sh-132-# 函数用途: 用户密码复杂性策略设置 (密码过期周期0~90、到期前15天提示、密码长度至少12、复杂度设置至少有一个大小写、数字、特殊字符、密码三次不能一样、尝试次数为三次)
  52. --
  53. scripts/os-security.sh:166:# 函数名称: sec_sshdpolicy
  54. scripts/os-security.sh-167-# 函数用途: 系统sshd服务安全策略设置
  55. --
  56. scripts/os-security.sh:194:# 函数名称: sec_loginpolicy
  57. scripts/os-security.sh-195-# 函数用途: 用户登陆安全策略设置
  58. --
  59. scripts/os-security.sh:230:# 函数名称: sec_historypolicy
  60. scripts/os-security.sh-231-# 函数用途: 用户终端执行的历史命令记录安全策略设置
  61. --
  62. scripts/os-security.sh:261:# 函数名称: sec_grubpolicy
  63. scripts/os-security.sh-262-# 函数用途: 系统 GRUB 安全设置防止物理接触从grub菜单中修改密码
  64. --
  65. scripts/os-security.sh:304:# 函数名称: sec_firewallpolicy
  66. scripts/os-security.sh-305-# 函数用途: 系统防火墙策略设置, 建议操作完成后重启计算机.
  67. --
  68. scripts/os-security.sh:335:# 函数名称: sec_ctrlaltdel
  69. scripts/os-security.sh-336-# 函数用途: 禁用 ctrl+alt+del 组合键对系统重启 (必须要配置我曾入过坑)
  70. --
  71. scripts/os-security.sh:355:# 函数名称: sec_recyclebin
  72. scripts/os-security.sh-356-# 函数用途: 设置文件删除回收站别名(防止误删文件)(必须要配置,我曾入过坑)
  73. --
  74. scripts/os-security.sh:405:# 函数名称: sec_supolicy
  75. scripts/os-security.sh-406-# 函数用途: 切换用户日志记录和切换命令更改名称为SU(可选)
  76. --
  77. scripts/os-security.sh:425:# 函数名称: sec_privilegepolicy
  78. scripts/os-security.sh-426-# 函数用途: 系统用户sudo权限与文件目录创建权限策略设置
  79. --
  80. scripts/os-service.sh:26:# 函数名称: svc_apport
  81. scripts/os-service.sh-27-# 函数用途: 禁用烦人的apport错误报告
  82. --
  83. scripts/os-service.sh:52:# 函数名称: svc_snapd
  84. scripts/os-service.sh-53-# 函数用途: 不使用snapd容器的环境下禁用或者卸载多余的snap软件及其服务
  85. --
  86. scripts/os-service.sh:75:# 函数名称: svc_cloud-init
  87. scripts/os-service.sh-76-# 函数用途: 非云的环境下禁用或者卸载多余的cloud-init软件及其服务
  88. --
  89. scripts/os-service.sh:101:# 函数名称: svc_debugshell
  90. scripts/os-service.sh-102-# 函数用途: 在系统启动时禁用debug-shell服务
  91. --
  92. scripts/os-software.sh:26:# 函数名称: install_chrony
  93. scripts/os-software.sh-27-# 函数用途: 安装配置 chrony 时间同步服务器
  94. --
  95. scripts/os-software.sh:79:# 函数名称: install_java
  96. scripts/os-software.sh-80-# 函数用途: 安装配置java环境
  97. --
  98. scripts/os-software.sh:110:## 函数名称: install_docker
  99. scripts/os-software.sh-111-## 函数用途: Ubuntu 主机上安装最新版本的Docker
  100. --
  101. scripts/os-software.sh:201:## 函数名称: install_cockercompose
  102. scripts/os-software.sh-202-## 函数用途: Ubuntu 主机上安装最新版本的Dockercompose

​​ 配置文件:

描述: 在 Ubuntu22.04.conf 配置文件中定义脚本所需的安全策略以及日志、历史记录存放路径, 以模板的初始密码与防火墙配置等,其中最主要的是一定要配置好IP地址,以成功拉取软件仓库中的工具。

  1. $ vim Ubuntu22.04.conf
  2. # Show Script Execute result (Y/N)
  3. VAR_VERIFY_RESULT=Y
  4. # Modify Script vertify timeout (unit s)
  5. VAR_VERIFY_TIMEOUT=5
  6. # Modify Script run time
  7. VAR_RUNDATE=$(date +%Y%m%d-%s)
  8. # Modify Path to logfile.
  9. LOGFILE=/var/log/weiyigeek-${VAR_RUNDATE}.log
  10. # Modify Path to Backup directory.
  11. BACKUPDIR=/var/log/.backup/${VAR_RUNDATE}
  12. # Modify Path to history record directory.
  13. HISTORYDIR=/var/log/.history
  14. # Modify su command execute log file path.
  15. SU_LOG_FILE=${HISTORYDIR}/su.log
  16. # Modify the hostname
  17. VAR_HOSTNAME="Ubuntu-Security"
  18. # Modify the IP/MASK and Gateway
  19. VAR_IP=10.20.172.152/24
  20. VAR_GATEWAY=10.20.172.1
  21. # Modify the DNS server
  22. # DNSPod: 119.29.29.29 Alidns: 223.5.5.5 223.6.6.6
  23. # Google: 8.8.8.8 8.8.4.4 Cloudflare: 1.1.1.1 1.0.0.1
  24. # Internal : Your intranet domain name resolution server
  25. VAR_DNS_SERVER=("223.5.5.5" "223.6.6.6")
  26. # Modify the SSHD server
  27. VAR_SSHD_PORT=20221
  28. # Modify the super user and normal user
  29. # 建议将密码设置最小长度10(最好设置为12以上,等保要求),数字、大写字母、小写字母、特殊符号,密码包含三种及以上, 且无规律。
  30. # 温馨提示: 下面设置的密码为初始密码,在系统登陆后会要求更改。
  31. VAR_SUPER_USER=root
  32. VAR_SUPER_PASS=R2022.weiyigeek.top
  33. # normal user
  34. VAR_USER_NAME=ubuntu
  35. VAR_USER_PASS=U2022.weiyigeek.top
  36. # low privilege application users
  37. VAR_APP_USER=app
  38. VAR_APP_PASS=A2022.weiyigeek.top
  39. # Modify the NTP server
  40. VAR_NTP_SERVER=( "ntp.aliyun.com" "ntp.tencent.com" "192.168.10.254")
  41. # Modify the timezone
  42. VAR_TIMEZONE=Asia/Shanghai
  43. # Modify Password policy
  44. # 默认密码最大使用为90天、过期前15天提示, 密码最小长度为12
  45. PASS_MIN_DAYS=1
  46. PASS_MAX_DAYS=90
  47. PASS_WARN_AGE=15
  48. PASS_MIN_LEN=12
  49. # 默认加密方式为SHA512, 重试次数为3, 新密码与旧密码至少有6个字符不同, 至少包含3种密码类型,不限制密码中包含大写字母、小写字母、数字、特殊符号的最大数量,记住三次旧密码。
  50. VAR_PASS_ENCRYPT=SHA512
  51. VAR_PASS_RETRY=3
  52. VAR_PASS_DIFOK=6
  53. VAR_PASS_MINCLASS=3
  54. VAR_PASS_UCREDIT=-1
  55. VAR_PASS_LCREDIT=-1
  56. VAR_PASS_DCREDIT=-1
  57. VAR_PASS_OCREDIT=-1
  58. VAR_PASS_REMEMBER=3
  59. # 禁止没有主目录的用户登录
  60. VAR_DEFAULT_HOME=no
  61. # 删除用户时禁止同步删除用户组
  62. VAR_USERGROUPS_ENAB=no
  63. # 启用成功登录的日志记录
  64. VAR_LOG_OK_LOGINS=yes
  65. # Modify file or Dirctory privilege policy
  66. VAR_UMASK=022
  67. # Modify user login failed count policy
  68. # 默认在5分钟之内登陆失败次数超过6次将锁定10分钟,终端超时10分钟
  69. VAR_LOGIN_FAIL_COUNT=6
  70. VAR_LOGIN_FAIL_INTERVAL=300
  71. VAR_LOGIN_LOCK_TIME=600
  72. VAR_LOGIN_TIMEOUT=300
  73. # Modify history record count policy
  74. VAR_HISTSIZE=128
  75. # Modify firewall policy tcp or udp port .
  76. VAR_ALLOW_PORT=("22,80,443,${VAR_SSHD_PORT}/tcp" "53/udp")

​​ 脚本使用

  • Step 1.上传到需要加固的主机服务器中,此处我上传到ubuntu用户的家目录。
  1. OperatingSystem\Security> scp -r .\Ubuntu\ ubuntu@10.20.172.152:~
  2. ubuntu@10.20.172.152\'s password:
  3. Ubuntu22.04.conf 100% 2979 976.9KB/s 00:00
  4. os-base.sh 100% 14KB 5.4MB/s 00:00
  5. os-clean.sh 100% 2446 2.1MB/s 00:00
  6. os-exceptions.sh 100% 2634 2.5MB/s 00:00
  7. os-info.sh 100% 1169 1.3MB/s 00:00
  8. os-manual.sh 100% 1860 2.0MB/s 00:00
  9. os-network.sh 100% 3774 1.8MB/s 00:00
  10. os-optimize.sh 100% 7752 3.7MB/s 00:00
  11. os-security.sh 100% 23KB 5.7MB/s 00:00
  12. os-service.sh 100% 3969 2.0MB/s 00:00
  13. os-software.sh 100% 8007 3.3MB/s 00:00
  14. Ubuntu22.04-InitializeReinforce.sh 100% 7989 5.0MB/s 00:00
  • Step 2.登陆服务器并切换到root用户, 查看 /home/ubuntu 目录下上传的加固版本。
  1. $ ssh -p 22 ubuntu@10.20.172.152
  2. ubuntu@Ubuntu-Security:~$ tree Ubuntu/
  3. Ubuntu/
  4. ├── Readme.assets
  5.    ├── image-20220823143235577.png
  6.    └── image-20220823143354742.png
  7. ├── Readme.md
  8. ├── Ubuntu22.04-InitializeReinforce.sh
  9. ├── config
  10.    └── Ubuntu22.04.conf
  11. ├── example
  12.    └── 22.04
  13.    ├── 00-custom-header
  14.    ├── common-auth
  15.    ├── common-password
  16.    ├── issue
  17.    ├── issue.net
  18.    ├── login.defs
  19.    ├── profile
  20.    ├── resolved.conf
  21.    ├── sshd_config
  22.    └── su
  23. └── scripts
  24. ├── os-base.sh
  25. ├── os-clean.sh
  26. ├── os-exceptions.sh
  27. ├── os-info.sh
  28. ├── os-manual.sh
  29. ├── os-network.sh
  30. ├── os-optimize.sh
  31. ├── os-security.sh
  32. ├── os-service.sh
  33. └── os-software.sh
  34. ubuntu@Ubuntu-Security:~$ sudo -i
  • Step 3.切换root用户后进入 /home/ubuntu/Ubuntu,安全加固脚本存放目录,首先将所有的sh文件赋予可执行去那些,其次需要在 Ubuntu22.04.conf 中进行相应配置,最后运行Ubuntu22.04-InitializeReinforce.sh --start即可,最后等待系统重启即可。
  1. cd /home/ubuntu/Ubuntu
  2. chmod +x -R *
  3. Ubuntu22.04-InitializeReinforce.sh --start

  • Step 4.中途请根据需求输入Y/N,然后等待重启即可,在重启后请注意sshd服务端口更改为20221所以此时你需要指定ssh连接端口。
  1. ssh -p 20221 ubuntu@10.20.172.152 # Ubuntu22.04.conf 定义的 ubuntu 初始化密码,登陆后会提示你进行更改。
  2. su - root # 只能有ubuntu用户切换到root用户,其它低权限以及app用户无法通过su进行用户切换

温馨提示: 如果执行到密码更新策略时,选择输入了(N) 否将不会更新其在Ubuntu22.04.conf脚本中定义的密码。

温馨提示:脚本中默认root密码为R2022.weiyigeek.top。

温馨提示: 防火墙策略只开放了80,443,22,20221等端口。

脚本视频演示:

温馨提示: 点击上方图像进行观看视频。

原文地址: https://blog.weiyigeek.top/2022/8-13-683.html

本文至此完毕,更多技术文章,尽情期待下一章节!


WeiyiGeek Blog 个人博客 - 为了能到远方,脚下的每一步都不能少 】

欢迎各位志同道合的朋友一起学习交流【点击加入交流群】,如文章有误请在下方留下您宝贵的经验知识!

作者主页: 【 https://weiyigeek.top

博客地址: 【 https://blog.weiyigeek.top 】

专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注,转个发,留个言】(人间六大情),这将对我的肯定,谢谢!。

  • echo "【点个赞】,动动你那粗壮的拇指或者芊芊玉手,亲!"

  • printf("%s", "【投个币】,万水千山总是情,投个硬币行不行,亲!")

  • fmt.Printf("【收个藏】,阅后即焚不吃灰,亲!")

  • console.info("【转个发】,让更多的志同道合的朋友一起学习交流,亲!")

  • System.out.println("【关个注】,后续浏览查看不迷路哟,亲!")

  • cout << "【留个言】,文章写得好不好、有没有错误,一定要留言哟,亲! " << endl;

更多网络安全、系统运维、应用开发、物联网实践、网络工程、全栈文章,尽在 https://blog.weiyigeek.top 之中,谢谢各位看又支持!

网安等保-Linux服务器之最新Ubuntu-22.04-LTS系统内核优化与安全加固配置脚本使用分享的更多相关文章

  1. linux服务器之LVS、Nginx和HAProxy负载均衡器对比

    linux服务器之LVS.Nginx和HAProxy负载均衡器对比. LVS特点:  1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生:  2.稳定性.可靠性好,自身 ...

  2. (转)Ubuntu 12.04 LTS安装VMware Tools实现linux和window 互相复制:无法找到kernel header path的问题

    Ubuntu 12.04 LTS安装VMware Tools无法找到kernel header path的问题   ubuntuvmware Ubuntu 12.04 安装 VMware Tools, ...

  3. Linux Ubuntu 14.04 LTS下VirtualBox连接USB

    1.环境 主机:Ubuntu 14.04 LTS 虚拟机:Windows 7 专业版本 VirtualBox: 图形用户界面版本 5.1.8 r111374 (Qt5.6.1) 2.在主机上给Virt ...

  4. Compile Linux Kernel on Ubuntu 12.04 LTS (Detailed)

    This tutorial will outline the process to compile your own kernel for Ubuntu. It will demonstrate bo ...

  5. Linux服务管理(Ubuntu服务管理工具sysv-rc-conf)(转)

    Linux运行级别 Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和要达到的目的都不同,系统可以在这些运行级之间进行切换,以完成不同的工作. 运行 ...

  6. Linux服务器之SSH

    SSH 1.ssh是安全的加密协议,用于远程连接linux服务器. 2.ssh默认端口是22,安全协议版本ssh2. 3.ssh服务端主要包含两个服务功能ssh远程连接,sftp服务. 4.linux ...

  7. XPS1330 作为Linux服务器之安装配置计划

      # Task 状态 完成时间 备注 博文链接  1.  打通SSH  未开始  --  安装系统后已经具备  --  2.  打通FTP  未开始  --  安装系统后已经具备  --  3.   ...

  8. linux服务器之redis

    linux环境下安装redis服务器: redis下载地址:http://redis.io/download $ wget http://download.redis.io/releases/redi ...

  9. linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结

    LVS特点: 1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生: 2.稳定性.可靠性好,自身有完美的热备方案:(如:LVS+Keepalived) 3.应用范围比较广 ...

随机推荐

  1. 眼球3D可视化解决方案——案例详解

    医疗器械行业伴随着人类健康需求的增长而不断发展,是名副其实的朝阳行业,也是全球发达国家竞相争夺的领域. 一方面,行业门槛高,集中度低,外资企业挤占市场空间成了我国所有医疗器械行业入局者面临的共同挑战. ...

  2. 原生实现.NET5.0+ 自定义日志

    一.定义一个静态类 声明一个 ReaderWriterLockSlim 对象 用于并发控制 1 /// <summary> 2 /// IO锁 3 /// </summary> ...

  3. 排名前三——python 开源 IDE

    写在前面的一些P话: Python无处不在 ,似乎它支持从主要网站到桌面实用程序到企业软件的所有功能. Python已经被用来编写流行的软件项目,如dnf / yum,OpenStack,OpenSh ...

  4. Docker Buildx使用教程:使用Buildx构建多平台镜像

    写在前边 记录一下前阵子在X86_64平台使用Docker Buildx构建多平台镜像的办法,包含但不限于构建ARM镜像. 构建环境 软件名 版本 Ubuntu 18.04.2 LTS Docker ...

  5. labview入门到出家10(进阶)——CAN通讯

    ​          讲完串口,这边再讲一个labveiw工控程序中比较常用的CAN通讯吧.很久没有写过CAN通讯的程序了,网上一搜就是什么现场总线,控制器局域网总线,然后一堆复杂的协议.在这里还是一 ...

  6. 用Bootstrap4写了一个WordPress主题Writing

    这是一个简洁的WordPress博客主题,为专注写作而设计. 本主题使用Bootstrap4框架开发. 主要功能 自适应: 标签云页面模板: 两栏设计: 全宽页面模板: 支持设置背景色和背景图片: 8 ...

  7. C++基本数据类型范围和区别(详细)

    一.基本类型的大小及范围的总结(以下所讲都是默认在32位操作系统下):字节:byte:位:bit.1.短整型short:所占内存大小:2byte=16bit:所能表示范围:-32768~32767:( ...

  8. day11 Java反射机制

    java反射机制 反射是java中的动态机制,它允许我们在程序运行期间再确定类的实例化,方法的调用,属性的调用等,而不是传统意义上的在编码期间确定. 因此,反射可以大大的提高代码的灵活度,但是随之而来 ...

  9. Code Runner for VS Code,下载量突破 4000 万!支持超过50种语言

    大家好! 我是韩老师.还记得 6 年前的夏天,我在巨硬写着世界上最好的语言,有时也需要带着游标卡尺写着另一门语言.然而,我对这两门语言都不熟悉,如果能在 VS Code 中方便快捷地运行各种语言,那岂 ...

  10. Techempower web框架性能测试第21轮结果发布--asp.net core继续前进

    废话不说,直接上结果: Round 21 results - TechEmpower Framework Benchmarks Techempower benchmark是包含范围最广泛的web框架性 ...