前言

在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
本文主要是搭建PXE的完整命令,具体的说明我都加到了命令后面进行了注释,这里我使用的KVM进行的操作,如果有什么不清楚的地方,可以私信我,或者给我发邮件。
欢迎大家批评指教,在这里谢谢各位了。

具体实现

特别注意

本次操作的虚拟机环境是将防火墙(iptables)和SeLinux关闭的情况下进行的操作,之前并没有意识到这一点,实在是抱歉。

实现目标

这次会计划实现的功能有:

  1. 分配ip地址和对应主机名
  2. 装机可选择菜单,可选择安装RHEL6或者CentOS6,缺省为RHEL6
  3. 安装后执行脚本,添加普通用户,搭建yum,并且安装vsftpd 服务,并做到随机自启

搭建部署

//安装配置DNS服务,来实现动态分配主机名
[root@pxe-server-04 ~]# yum -y install bind bind-chroot  //安装DNS服务包
[root@pxe-server-04 ~]# service named restart          //开启DNS服务
停止 named:                                               [确定]
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]
[root@pxe-server-04 ~]# chkconfig named on //开机自启
[root@pxe-server-04 ~]# chkconfig named --list     //验证结果
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@pxe-server-04 ~]# vim /etc/named.conf
[root@pxe-server-04 ~]# cat /etc/named.conf //配置文件修改如下
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//options {listen-on port 53 { any; }; //监听端口directory   "/var/named";   //地址库文件所在目录allow-query     { any; };   //允许任何客户机查询
};zone "4.168.192.in-addr.arpa" IN {  //反向解析配置type master;file "192.168.4.arpa";
};
[root@pxe-server-04 ~]# cd /var/named/  //进入地址库文件目录
[root@pxe-server-04 named]# ll
total 32
drwxr-x---. 6 root  named 4096 Dec 17 09:18 chroot
drwxrwx---. 2 named named 4096 Dec 17 09:20 data
drwxrwx---. 2 named named 4096 Dec 17 09:20 dynamic
-rw-r-----. 1 root  named 2075 Apr 23  2014 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named 4096 May 11  2015 slaves
[root@pxe-server-04 named]# cp -p named.localhost 192.168.4.arpa  //由于named服务需要给该配置文件添加named所属组属性,所以这里就使用cp -p命令,保留原文将的属性,拷贝一个模板来进行修改
[root@pxe-server-04 named]# hostname
pxe-server-04.wolf.com
[root@pxe-server-04 named]# vim 192.168.4.arpa
[root@pxe-server-04 named]# cat 192.168.4.arpa  //配置文件修改如下
$TTL 1D
@   IN SOA  @ rname.invalid. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS  pxe-server-04.wolf.com.   //该位置写主机名即前面hostname的结果,但是需要以“.”结尾,请务必注意,负责重启服务会出现报错
$GENERATE 100-200 $ PTR  pc-$.war.cn.   //使用函数,生成从100到200连续的数字
[root@pxe-server-04 named]# service named restart
停止 named:                                               [确定]
启动 named:                                               [确定]
//验证DNS结果
[root@pxe-server-04 named]# nslookup 192.168.4.102 192.168.4.99 //前一个IP是验证的IP地址,后一个IP是当前主机的ip地址,即DNS服务器的地址
Server:     192.168.4.99
Address:    192.168.4.99#53102.4.168.192.in-addr.arpa  name = pc-102.war.cn.//安装,配置DHCP服务
[root@pxe-server-04 ~]# yum -y install dhcp
[root@pxe-server-04 ~]# chkconfig dhcpd on
[root@pxe-server-04 ~]# chkconfig dhcpd --list
dhcpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@pxe-server-04 ~]# vim /etc/dhcp/dhcpd.conf
[root@pxe-server-04 ~]# cat /etc/dhcp/dhcpd.conf //初始dhcpd服务主配置文件,没有缺省配置,需要我们自己添加
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  //模板文件,可使用r写入
#   see 'man 5 dhcpd.conf'  //使用man帮助查看该文件
#
//经过修改后文件如下
[root@pxe-server-04 ~]# cat /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
## option definitions common to all supported networks...subnet 192.168.4.0 netmask 255.255.255.0 {range 192.168.4.100 192.168.4.200;option domain-name-servers 192.168.4.99;option routers 192.168.4.1;default-lease-time 600;max-lease-time 7200;next-server 192.168.4.99;   //制定下一个服务器,由于下一个服务,依然在本机搭建,所以ip仍然filename "pxelinux.0";   // 网卡引导文件(二进制文件),用来下载内核,驱动文件
}
[root@pxe-server-04 ~]# service dhcpd restart
关闭 dhcpd:                                               [确定]
正在启动 dhcpd:                                           [确定]//安装,配置tftp服务
//这里使用tftp的原因在于,在装机到此时,客户端计算机并没有系统,所以就连用户都没有,所以需要使用这个简单文件传输系统
[root@pxe-server-04 ~]# yum -y install tftp-server
[root@pxe-server-04 ~]# service xinetd restart
停止 xinetd:                                              [失败]
正在启动 xinetd:                                          [确定]
[root@pxe-server-04 ~]# chkconfig xinetd on  //临时服务管理器
[root@pxe-server-04 ~]# chkconfig xinetd --list
xinetd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@pxe-server-04 ~]# chkconfig tftp on    //开启临时服务
[root@pxe-server-04 ~]# chkconfig tftp --list
tftp            on
[root@pxe-server-04 ~]# cd /var/lib/tftpboot/  //进入tftp共享目录
[root@pxe-server-04 tftpboot]# ls
[root@pxe-server-04 tftpboot]# yum provides */pxelinux.0  //查询该文件是由哪个rpm生成的
Failed to set locale, defaulting to C
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
syslinux-nonlinux-4.04-3.el6.noarch : SYSLINUX modules which aren't run from linux.    //pxelinux.0 即是由该rpm包产生的,接下来只需要安装该包即可
Repo        : 192.168.4.254_rhel6
Matched from:
Filename    : /usr/share/syslinux/pxelinux.0[root@pxe-server-04 tftpboot]# yum -y install syslinux-nonlinux
[root@pxe-server-04 tftpboot]# rpm -ql syslinux-nonlinux | grep pxelinux.0  //查找该文件所在路径
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@pxe-server-04 tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/     //拷贝到tftp目录中
[root@pxe-server-04 tftpboot]# ls
pxelinux.0//接下来需要准备装机时的软件包,内核,驱动等相关文件
//这些文件都在系统的ISO镜像文件中,当然以可以使用光驱挂载系统光盘,但是由于服务器一般不会带光驱,所以使用文件的情况会更多一些,这里我们使用ISO镜像文件
[root@pxe-server-04 ~]# ls rhel-server-6.7-x86_64-dvd.iso
rhel-server-6.7-x86_64-dvd.iso
[root@pxe-server-04 ~]# ls CentOS-6.7-x86_64-bin-DVD1.iso
CentOS-6.7-x86_64-bin-DVD1.iso
// 一般上述ISO镜像文件会挂载在ftp服务器上或web服务器上,所以这里我们先搭建web,即httpd服务
[root@pxe-server-04 ~]# yum -y install httpd
[root@pxe-server-04 ~]# service httpd restart
停止 httpd:                                               [失败]
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for pxe-server-04.wolf.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName[确定]
[root@pxe-server-04 ~]# chkconfig httpd on
[root@pxe-server-04 ~]# chkconfig httpd --list
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@pxe-server-04 ~]# vim /etc/httpd/conf/httpd.conf  //httpd服务主配置文件,这里使用缺省配置即可,所以不需要修改,就是单纯的亮出来
[root@pxe-server-04 ~]# cd /var/www/html/   //httpd服务缺省文件路径,我们需要将ISO镜像文件挂载到这里
//这里我们使用自动挂载,当然也可以使用手动挂载或者触发挂载
[root@pxe-server-04 html]# mkdir redhat-6.7
[root@pxe-server-04 html]# mkdir centos-6.7  //创建挂载点
[root@pxe-server-04 html]# vim /etc/fstab
[root@pxe-server-04 html]# cat /etc/fstab #
# /etc/fstab
# Created by anaconda on Tue Mar 29 20:53:13 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=146c8194-872b-43cf-9046-58a8d2ee2117 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/root/rhel-server-6.7-x86_64-dvd.iso    /var/www/html/redhat-6.7  iso9660  defaults,loop 0 0  //添加配置信息
/root/CentOS-6.7-x86_64-bin-DVD1.iso    /var/www/html/centos-6.7  iso9660  defaults,loop 0 0  //添加配置信息
[root@pxe-server-04 html]# mount -a
[root@pxe-server-04 html]# ls redhat-6.7/     //验证结果
EFI      EULA_en  EULA_it  EULA_pt  HighAvailability  README                      ResilientStorage    TRANS.TBL  media.repo
EULA     EULA_es  EULA_ja  EULA_zh  LoadBalancer      RPM-GPG-KEY-redhat-beta     ScalableFileSystem  images     release-notes
EULA_de  EULA_fr  EULA_ko  GPL      Packages          RPM-GPG-KEY-redhat-release  Server              isolinux   repodata
[root@pxe-server-04 html]# ls centos-6.7/     //验证结果
CentOS_BuildTag  EULA  Packages                  RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL  isolinux
EFI              GPL   RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6   images     repodata//现在ISO文件已经挂载好了,那么接下来需要回到tftp目录下,准备相关的文件
[root@pxe-server-04 html]# cd /var/lib/tftpboot/
[root@pxe-server-04 tftpboot]# ls
pxelinux.0
[root@pxe-server-04 tftpboot]# mkdir redhat-6.7
[root@pxe-server-04 tftpboot]# mkdir centos-6.7  //由于这次我们是想将redhat和centos都集成进来,便于日后的扩占和方便,所以需要对redhat和centos进行区分,防止两个系统的内核文件和驱动文件混淆导致错误
//当然也可以只安装一个,如果只安装一个,那么这里就不需要整个文件夹的创建,直接操作即可,不过建议还是建立一个,便于日后的扩展//查看文件,
[root@pxe-server-04 tftpboot]# ls /var/www/html/redhat-6.7/isolinux/
TRANS.TBL  boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.jpg  vesamenu.c32  vmlinuz
[root@pxe-server-04 tftpboot]# ls /var/www/html/centos-6.7/isolinux/
TRANS.TBL  boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.jpg  vesamenu.c32  vmlinuz[root@pxe-server-04 tftpboot]# cp /var/www/html/redhat-6.7/isolinux/initrd.img  redhat-6.7/   //拷贝redhat的驱动文件
[root@pxe-server-04 tftpboot]# cp /var/www/html/redhat-6.7/isolinux/vmlinuz  redhat-6.7/   //拷贝redhat的内核文件
[root@pxe-server-04 tftpboot]# cp /var/www/html/centos-6.7/isolinux/initrd.img centos-6.7/
[root@pxe-server-04 tftpboot]# cp /var/www/html/centos-6.7/isolinux/vmlinuz centos-6.7///由于菜单文件和图形化文件只需要一份,所以无需区分
//创建菜单文件目录,并将菜单文件拷贝,拷贝的同时改名为default
[root@pxe-server-04 tftpboot]# mkdir pxelinux.cfg  //缺省配置,不能改变
[root@pxe-server-04 tftpboot]# cp /var/www/html/centos-6.7/isolinux/isolinux.cfg pxelinux.cfg/default
//拷贝图形化支持文件
[root@pxe-server-04 tftpboot]# cp /var/www/html/centos-6.7/isolinux/vesamenu.c32 /var/lib/tftpboot/
//验证结果
[root@pxe-server-04 tftpboot]# pwd
/var/lib/tftpboot
[root@pxe-server-04 tftpboot]# ls
centos-6.7  pxelinux.0  pxelinux.cfg  redhat-6.7  vesamenu.c32
[root@pxe-server-04 tftpboot]# ls centos-6.7/
initrd.img  vmlinuz
[root@pxe-server-04 tftpboot]# ls redhat-6.7/
initrd.img  vmlinuz
[root@pxe-server-04 tftpboot]# ls pxelinux.cfg/
default//准备装机背景图片,由于这次安装时的菜单页面我们是要采用图形化页面,所以需要一张图片作为背景
//Linux装机时的背景图片是需要特殊制作的
[root@pxe-server-04 tftpboot]# rpm -ql syslinux | grep .jpg
/usr/share/doc/syslinux-4.04/sample/m16-640x640-syslinux.jpg
/usr/share/doc/syslinux-4.04/sample/syslinux_splash.jpg
[root@pxe-server-04 tftpboot]# cp /usr/share/doc/syslinux-4.04/sample/syslinux_splash.jpg pxelinux.cfg/
[root@pxe-server-04 tftpboot]# ls pxelinux.cfg/
default  syslinux_splash.jpg//修改菜单文件
[root@pxe-server-04 tftpboot]# chmod +w pxelinux.cfg/default  //添加可写权限,当然在root用户下,可以强制修改,但是建议还是添加一下
[root@pxe-server-04 tftpboot]# ls -l pxelinux.cfg/default
-rw-r--r--. 1 root root 923 Dec 17 11:09 pxelinux.cfg/default
[root@pxe-server-04 tftpboot]# vim pxelinux.cfg/default
[root@pxe-server-04 tftpboot]# cat pxelinux.cfg/default
default vesamenu.c32  //图形化支撑文件
#prompt 1
timeout 600   //读秒时间,表示十分之一秒display boot.msgmenu background pxelinux.cfg/syslinux_splash.jpg  //背景图片路径
menu title INTALL LINUX   //菜单文件标题,可随意
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000label redhat-6.7  //选项标签menu label Install ^RedHat6.7 //标签显示内容,"^"表示可以通过按键后面的第一个字母进行快速选择menu default   //默认,当读秒结束后,没有进行其他操作的话,会选择该配置所在的标签kernel redhat-6.7/vmlinuz   //redhat的内核文件,注意区分,也可以对vmlinuz进行改名操作,以名词区分,这里使用目录进行区分append initrd=redhat-6.7/initrd.img
label centos-6.7menu label Install ^CentOS6.7kernel centos-6.7/vmlinuzappend initrd=centos-6.7/initrd.img
label rescuemenu label ^Rescue installed system  //救援模式,任意选择使用哪一个版本的驱动和内核,该标签在装机时,并无作用kernel centos-6.7/vmlinuzappend initrd=centos-6.7/initrd.img rescue
label local  //从本地硬盘启动menu label Boot from ^local drivelocalboot 0xffff//准备应答文件,接下来要将在装机时的选项和配置做成一个配置文件,以实现自动化装机操作
//可以直接手动编写,但是那样难度较大,这里我们选择使用一款图像化的软件
//截图放在了后面,各位可以参考图片进行操作
[root@pxe-server-04 ~]# yum -y install system-config-kickstart
[root@pxe-server-04 ~]# system-config-kickstart  //启动软件
[root@pxe-server-04 ~]# cd /var/www/html/
[root@pxe-server-04 html]# ls
centos-6.7  centos6.7-ks.cfg  config.sh  redhat-6.7
[root@pxe-server-04 html]# cat centos6.7-ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.4.99/centos-6.7"
# Root password
rootpw --iscrypted $1$15OTgffs$30Fh3lNZVXIdIu1qfgBwt1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=1024
part / --fstype="ext4" --grow --size=1%post --interpreter=/bin/bash
wget http://192.168.4.254/config.sh
chmod +x config.sh
./config.sh
%end%packages
@base%end














//在这里我多加了一个安装后执行脚本
//该功能是在系统装完之后,自动去执行的脚本
[root@pxe-server-04 html]# ls config.sh
config.sh
[root@pxe-server-04 html]# ls redhat-config.sh
redhat-config.sh
[root@pxe-server-04 html]# cat config.sh
rm -rf /etc/yum.repos.d/*
cd /etc/yum.repos.d/
echo '
[centos-yum]
ame=added from: http://192.168.4.254/CentOS-6
baseurl=http://192.168.4.254/CentOS6
enabled=1
gpgcheck=0'  > centos-yum.repo
yum clean all
yum repolist
yum -y install vsftpd
service vsftpd start
chkconfig vsftpd on
useradd test-user-01
echo 123456 | passwd --stdin test-user-01
[root@pxe-server-04 html]# [root@pxe-server-04 html]# cp centos6.7-ks.cfg redhat6.7-ks.cfg
[root@pxe-server-04 html]# ls redhat6.7-ks.cfg
redhat6.7-ks.cfg
[root@pxe-server-04 html]# vim redhat6.7-ks.cfg //其他保持不变,将路径修改为redhat的包路径即可
//还有两个系统的脚本文件,由于yum的原因,也进行了区分//url --url="http://192.168.4.99/redhat-6.7"//%post --interpreter=/bin/bashwget http://192.168.4.99/redhat-config.shchmod +x config.sh./config.sh%end//将应答文件添加进配置文件
[root@pxe-server-04 tftpboot]# vim pxelinux.cfg/default label redhat-6.7menu label Install ^RedHat6.7menu defaultkernel redhat-6.7/vmlinuzappend initrd=/redhat-6.7/initrd.img ks=http://192.168.4.99/redhat6.7-ks.cfg
label centos-6.7menu label Install ^CentOS6.7kernel centos-6.7/vmlinuzappend initrd=centos-6.7/initrd.img ks=http://192.168.4.99/centos6.7-ks.cfg

结果验证

系统安装流程












脚本执行结果验证

[root@pc-113 ~]# ifconfig eth0 | head -2
eth0      Link encap:Ethernet  HWaddr 52:54:00:0D:66:DF  inet addr:192.168.4.113  Bcast:192.168.4.255  Mask:255.255.255.0
[root@pc-113 ~]# hostname
pc-113.war.cn
[root@pc-113 ~]# service vsftpd status
vsftpd (pid 1469) 正在运行...
[root@pc-113 ~]# grep test-user-01 /etc/passwd
test-user-01:x:500:500::/home/test-user-01:/bin/bash

Linux系统下PXE装机服务的搭建与部署(附完整命令与截图)相关推荐

  1. 重启部署在Linux系统下的tomcat服务

    2019独角兽企业重金招聘Python工程师标准>>> 重启部署在Linux系统下的tomcat服务具体的操作步骤: 1.在Winscp上建立连接,输入用户和密码,这个密码一般是看不 ...

  2. linux系统下重启网络服务的两种方法

    linux系统下重启网络服务的两种方法 发布时间:2020-04-02 11:25:25 来源:亿速云 阅读:207 作者:小新 今天小编给大家分享的是linux系统下重启网络服务的两种方法,很多人都 ...

  3. Linux系统下安装FTP服务

    Linux系统下安装FTP服务 1. 简介 2. 工作原理 3. FTP的安装与配置 1. 下载vsftp安装包 2. 检查是否已经安装了vsftp,后面会介绍怎样卸载 3. 安装vsftpd 4. ...

  4. linux系统下的bash shell指令有哪些?对bash命令的汇总和小结

    一.参考来源 Windows系统的cmd命令哪些?具体怎么用?cmd命令汇总,dos命令小结?和linux命令的对比? 下面这个网站,强烈推荐,一旦遇到自己不懂的linux命令,直接去这个开源站检索即 ...

  5. 了解域名、域名系统及域名的解析过程以及Linux操作系统下DNS域名解析服务的搭建过程

    1.什么是域名?什么是域名系统? **域名系统DNS(Domain Name System)**是因特网使用的命名系统,互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更 ...

  6. linux系统下RocketMQ的集群搭建

    前提已配置java环境 # java -version java version "1.8.0_271" Java(TM) SE Runtime Environment (buil ...

  7. linux机群下NFS+NIS服务的搭建以及MPICH的简单安装

    MPICH是目前应用最广泛的免费MPI系统,也是运行在大部分机群系统的MPI并行环境 MPICH的网址是:http://www.mcs.anl.gov/mpi/mpich,从此处可以下载源程序mpic ...

  8. Linux系统下 Apache+PHP 环境安装搭建

    一.安装Apache2.2.22 1.到官网下载  http://httpd.apache.org/download.cgi ,选择相应的版本 可以先下载到windows系统中,上传到linux, 也 ...

  9. extremedb java_实时内存数据库eXtremeDB 在linux系统下的java开发环境搭建

    Linux下配置eXtremeDB JAVA开发环境 样例系统环境: 操作系统:CentOs 6.5 x64 一.        安装必备软件 安装jdk sudoyum install java-1 ...

最新文章

  1. 卫星的性能和服务器比较,卫星通信的常用频段的详细对比
  2. 你竟然还不懂变分自编码机?这个16岁的OpenAI天才实习生讲得可透彻了
  3. 常用汉字的unicode编码
  4. python numpy加速 cupy
  5. [云炬创业学笔记]第一章创业是什么测试5
  6. centos7中安装RocketMQ4.7版本
  7. 精通Android3笔记--第四章
  8. C++ class、struct区别
  9. python松天笔记200304
  10. [导入]热烈祝贺实时数据库行业协会成立!
  11. Servlet体系及方法
  12. 更换Homebrew为中科大源
  13. Manage,管道的简单应用,进程池,队列的简单应用
  14. MacOS系统离线安装包11.x-12.x
  15. 《我拼图贼6》游戏反馈栏
  16. DOM初探(17)——查看元素的尺寸与位置
  17. pyinstaller 打包内置文件,ico文件内置
  18. AT24C16页写和多页写
  19. 亲历校招面试问答【回顾记录】
  20. 简练软考知识点整理-项目配置审核

热门文章

  1. Python自动化-IP地址处理模块(IPy)
  2. CSS下镜像翻转(水平/垂直翻转)
  3. Unity答题系统2.0版本(修改答题面板形式(滚动视图显示),增加提交后得分结果显示)
  4. cadence初学问题(1)
  5. java盒子_JAVA 盒子
  6. 联想谋求主动转型,陈旭东的压力与乐观
  7. Umeng第三方登录
  8. 关于水货手机与行货手机
  9. 阿斯顿马丁Rapide S 最美的四门跑车
  10. .net 网站中英文切换