Linux 常见服务配置

 笔记所以内容很多,建议选择性看看

SSH

对应服务  sshd

注意:配置文件 配制文件修改需要重启或重载sshd服务才能生效

systemctl sshd reload     # 重载 sshd 配置文件
systemctl sshd restart    # 重启 sshd 服务

客户端配置文件

man ssh_config 可以查看对应说明文档,一般无需更改/etc/ssh/ssh_config      OpenSSH SSH client configuration files~/.ssh/known_hosts       记录了登录过的IP和指纹~/.ssh/config            针对用户的SSH配置~/.ssh/authorized_keys   记录公钥,用于允许记录公钥的服务器通过指定用户免密登录

服务端配置文件

man sshd_config 可以查看对应说明文档/etc/ssh/sshd_config    OpenSSH SSH daemon configuration file主要配置:Port 22                    可以自定义sshd服务端口ListenAddress 0.0.0.0      定义sshd监听PermitRootLogin no         是否允许root登录,默认允许Banner /etc/motd           登录后的提示信息UseDNS no                  禁用DNS解析,ssh连接会快很多UsePAM yes                 加载PAM模块用于用户认证

登录方式

ssh remote_user@ip -p port    # 登录远程的用户,仅IP是用当前用户,不带端口默认22ssh -t  -o "StrictHostKeyChecking=no"  # 加这俩参数,可以跳过指纹确认,可用于免密登录-o  可以带选项"StrictHostKeyChecking=no" 跳过指纹确认,自动加入-t 强制使用tty会话scp 也可以用上述参数man ssh 查看更多

 注意:

  1. UseDNS 配置成yes,ssh会在连接时使用反向地址解析,无法解析时会导致连接很慢,10s?
  2. 如果有编辑/etc/hosts.deny 或者 /etc/hosts.allow ssh连接也会变慢

FTP

FTP工作模式 

主动模式

FTP服务器主动向客户端发起连接请求,因为服务器可以主动连接到客户端,从而减少了延迟

流程:

  1. FTP 客户端先建立与服务端21的连接
  2. 客户端发送PORT 命令告诉服务器客户端的 IP 地址和端口号
  3. 服务器收到 PORT 命令后,服务端就会打开一个数据连接到客户端的 IP 地址和端口号
  4. 客户端随后发送 STOR 命令告知服务端需要的文件
  5. 服务器收到 STOR 命令后,它就会开始向客户端发送数据
  6. 客户端收到数据后,它就会将其写入本地文件
  7. 一旦客户端完成接收数据,它就会关闭与服务器的连接

命令端口:21 用于发送命令和控制文件传输

数据端口:20 数据连接端口

被动模式

FTP 服务器等待客户端发起连接请求( FTP 的默认工作模式)

流程:

  1. FTP 客户端先请求服务端21口,建立连接
  2. 客户端发送 PASV 命令告诉服务器让它打开一个数据连接
  3. 服务器收到 PASV 命令后会向客户端发送数据连接信息,通常包括服务器的 IP 地址和端口号
  4. 客户端打开一个数据连接到服务器的 IP 地址和端口号
  5. 客户端随后发送 STOR 命令告诉服务器它要上传一个文件
  6. 服务器收到 STOR 命令后,它就会开始向客户端发送数据
  7. 客户端收到数据后,它就会将其写入本地文件
  8. 一旦客户端完成接收数据,它就会关闭与服务器的连接

命令端口:21 用于发送命令和控制文件传输

数据端口:由服务器动态分配,通常在 49152-65535 范围内

服务

vsftpd( very secure ftp daemon,非常安全的 FTP 守护进程)

软件

vsftpd

       认证模式

                匿名开放模式 不认证 不安全

                本地用户模式 通过本地账户认证 不太安全

                虚拟用户模式 FTP服务器创建用户数据库,提供用户认证

ftp  Linux 系统中以命令行界面的方式来管理 FTP 传输服务的客户端工具

lftp 功能更多的客户端

配置文件
/etc/vsftpd/vsftpd.conf   主配置文件
/etc/vsftpd/user_list     FTP特定的本地用户列表,能否登录取决于userlist_deny=NO/YES
/etc/vsftpd/ftpusers      不允许登录FTP的用户列表
/etc/vsftpd/xxx.db        应该是虚拟用户的账号文件
/etc/vsftpd/xxx_dir       这里可能有虚拟用户权限设置,以用户名命名的文件,里面是权限 

服务器端配置

1、清理防火墙
iptables -F
service iptables save
2、编辑配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
3、常用参数
listen=[YES|NO]             是否以独立运行的方式监听服务
listen_address=IP 地址         设置要监听的 IP 地址
listen_port=21 设置 FTP         服务的监听端口
download_enable= [YES|NO]     是否允许下载文件
userlist_enable=[YES|NO]    设置用户列表为“允许”还是“禁止”操作
userlist_deny=[YES|NO]max_clients=0                     最大客户端连接数, 0 为不限制
max_per_ip=0                     同一 IP 地址的最大连接数, 0 为不限制
anonymous_enable=[YES|NO]         是否允许匿名用户访问
anon_upload_enable=[YES|NO]         是否允许匿名用户上传文件
anon_umask=022                     匿名用户上传文件的 umask 值
anon_root=/var/ftp                 匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO]   是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]   是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0                     匿名用户的最大传输速率(字节/秒), 0 为不限制
local_enable=[YES|NO]                 是否允许本地用户登录 FTP
local_umask=022                     本地用户上传文件的 umask 值
local_root=/var/ftp                 本地用户的 FTP 根目录
chroot_local_user=[YES|NO]          是否将用户权限禁锢在 FTP 目录,以确保安全
local_max_rate=0                    本地用户最大传输速率(字节/秒), 0 为不限制
 4、配置模式

匿名模式 2.3.5后,增加安全检查,会有报错,暂未解决

vim /etc/vsftpd/vsftpd.conf 添加如下配置
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES 
重启vsftpd 服务将FTP设置的根目录拥有者设置成ftp用户或者vsftpd用户名:anonymous 密码:空

本地用户模式 实测成功

vim /etc/vsftpd/vsftpd.conf 进行如下配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES重启vsftpd 服务本地用户登录进入自己的家目录
注意:
本地用户的逻辑是,需要改用户可以登录,要先进行登录认证才进行是否有权限访问的认证
winscp 默认超时时长15s,如有需要可以增加时长

虚拟用户模式 测试成功

1、创建用于进行 FTP 认证的用户数据库文件(奇数行为账户名,偶数行为密码)vi /etc/vsftpd/vuser.listzhangsanredhatlisiredhat2、加密明文用户数据库cd /etc/vsftpddb_load -T -t hash -f vuser.list vuser.dbfile vuser.db   查看文件类型书里:vuser.db: Berkeley DB (Hash, version 9, native byte-order)实测:vuser.db: , created: Thu Jan  1 00:34:08 1970chmod 600 vuser.dbrm -f vuser.list3、创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户useradd -d /var/ftproot -s /sbin/nologin virtualls -ld /var/ftproot/chmod -Rf 755 /var/ftproot/4、建立用于支持虚拟用户的 PAM 文件4.1 新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vuvim /etc/pam.d/vsftpd.vuauth required pam_userdb.so db=/etc/vsftpd/vuseraccount required pam_userdb.so db=/etc/vsftpd/vuser其中 PAM 文件内的“db=”参数为使用 db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀5、设置pam_service_name 参数,定义PAM认证文件vim /etc/vsftpd/vsftpd.conf 编辑如下内容anonymous_enable=NOlocal_enable=YESguest_enable=YESguest_username=virtualallow_writeable_chroot=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpd.vuuserlist_enable=YES解释:默认就带有参数 pam_service_name=vsftpd,会使用/etc/pam.d/vsftpd进行认证,现在需要修改成上面新建的认证文件guest_username=virtual 指定了虚拟用户登录进来时使用的用户6、为虚拟用户设置不同的权限6.1  创建文件,写入权限mkdir /etc/vsftpd/vusers_dir/cd /etc/vsftpd/vusers_dir/touch lisivim zhangsananon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES不建同名文件,就是默认的权限,就是没权限6.2 修改配置文件vim /etc/vsftpd/vsftpd.conf 编辑如下内容user_config_dir=/etc/vsftpd/vusers_dir6.3 重启vsftpd7、测试可用性ftp ftpip输入用户名密码
8、使用ftp>user username 切换用户,好像虚拟用户切换不支持,不过好像成功了一次ftp>exit 退出
9、报错可能服务器重启服务了421 Service not available, remote server has closed connection ls没看到文件很大可能是当前目录没有文件,尝试建一个试试

NFS 

软件

nfs-utils (一般会默认安装,如果没安装,无法挂载NFS)

有多个版本,每个版本的同步方式,数据一致性以及性能都有所区别

服务

nfs-server

服务端搭建步骤

1、清除防火墙策略 (一般没有)
iptables -F
service iptables save
2、建立共享目录
mkdir /nfsfile
chmod -Rf 777 /nfsfile
echo "welcome to nfs" > /nfsfile/readme
3、编辑配置文件
vi /etc/exports 
ro              只读
rw              读写
root_squash     当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户
no_root_squash  当 NFS 客户端以 root 管理员访问时, 映射为 NFS 服务器的 root 管理员
all_squash      无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户
sync            同时将数据写入到内存与硬盘中,保证不丢失数据
async           优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据文件内容 请注意, NFS 客户端地址与权限之间没有空格
/nfsfile 192.168.x.x(rw,sync,root_squash)共享目录 允许访问的主机IP(配置项1,配置项2...)exportfs -v 查看当前的配置
exportfs -r 重新导入配置
4、启动并启用NFS服务程序
systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server

注意:

  • 在使用 NFS 服务进行文件共享之前,需要RPC( Remote Procedure Call,远程过程调用)服务将 NFS 服务器的 IP 地址和端口号等信息发送给客户端
  • NFS在创建文件时,网络包会附带UID到NFS服务器上面,所以建议所有客户端的UID尽量保持一致,避免出现创建文件后,不同客户端属主不同的情况

客户端配置步骤

1、showmount 查看NFS远程共享信息

showmount -e 192.168.x.x参数:-e 显示 NFS 服务器的共享列表-a 显示本机挂载的文件资源的情况

2、挂载NFS

yum install -y mount.nfs nfs-utils
mkdir /nfsfile
mount -t nfs 192.168.x.x:/nfsfile /nfsfile

3、如果需要长期挂载

方式一 编辑/etc/fstab 192.168.x.x:/nfsfile /nfsfile nfs defaults 0 0
方式二 编辑/etc/rc.localmount -t nfs 192.168.x.x:/nfsfile /nfsfile

客户端解除挂载

umount.nfs 挂载点
或
umount 挂载点

遇到问题

1)umount.nfs: /nfsfile: device is busy 是由于该目录在使用或者工作目录在这个目录下

处理办法:可以使用lsof 或 fuser 排查正在使用的文件的相关进程,退出挂载目录,并清理仍在访问NFS的进程后,再进行卸载即可

2)如果服务端的NFS异常,客户端会出现df 命令卡住的情况,可以mount命令查看挂载情况

处理办法:先解决服务端问题,然后卸载后重新挂载即可


mail

本地mail相关文件

        /etc/aliases 邮件用户别名文件,修改后执行newaliases更新,可以代收别名邮件

        /etc/mail.rc 本地邮件配置文件

        /var/spool/mail/username  邮件存储文件

mail命令

        echo "mail content" |mail -s "mail title" mail_address/user

HTTP

不常用

Apache服务:httpd

Apache软件:httpd

配置文件
    服务目录 /etc/httpd
    主配置文件 /etc/httpd/conf/httpd.conf
    网站数据目录 /var/www/html
    访问日志 /var/log/httpd/access_log
    错误日志 /var/log/httpd/error_log

配置文件参数:

cat /etc/httpd/conf/httpd.confServerRoot 服务目录ServerAdmin 管理员邮箱User 运行服务的用户Group 运行服务的用户组ServerName 网站服务器的域名DocumentRoot 网站数据目录Directory 网站数据目录的权限Listen 监听的 IP 地址与端口号DirectoryIndex 默认的索引页页面ErrorLog 错误日志文件CustomLog 访问日志文件Timeout 网页超时时间,默认为 300 秒

DHCP

软件

dhcp 

服务

dhcpd

服务器端配置文件

/etc/dhcp/dhcpd.conf

服务端配置案例

1、配置文件
vim /etc/dhcp/dhcpd.conf
ddns-update-style none;             设置 DNS 服务不自动进行动态更新
ignore client-updates;              忽略客户端更新 DNS 记录
subnet 192.168.10.0 netmask 255.255.255.0 {     作用域为 192.168.10.0/24 网段
range 192.168.10.50 192.168.10.150;  IP 地址池为 192.168.10.50-150(约 100 个 IP 地址)
option subnet-mask 255.255.255.0;   定义客户端默认的子网掩码
option routers 192.168.10.1;        定义客户端的网关地址
option domain-name "aaa.com";    定义默认的搜索域
option domain-name-servers 192.168.10.1;  定义客户端的 DNS 地址
default-lease-time 21600;           定义默认租约时间(单位:秒)
max-lease-time 43200;               定义最大预约时间(单位:秒)
host aaa {                   需要绑定MAC地址的主机名,此段可以忽略
hardware ethernet 00:0c:29:27:c6:12;    网卡MAC地址
fixed-address 192.168.10.88;            绑定的IP
}
}
2、启动服务
systemclt enable dhcpd
systemctl start dhcpd
3、测试

网卡配置dhcp模式,就会自己在局域网中寻找可用DHCP服务器,无需客户端额外配置

4、日志文件

使用系统日志文件:/var/log/messages,会包含分配的地址和获取IP的MAC地址等信息


DNS

客户端配置文件

修改立即生效

/etc/resolv.conf

/etc/hosts 

软件

bind-chroot

服务

named

服务端配置

配置文件

主配置文件( /etc/named.conf )定义 bind 服务程序的运行

区域配置文件( /etc/named.rfc1912.zones )保存域名和 IP 地址对应关系的所在位置

数据配置文件目录( /var/named )保存域名和 IP 地址真实对应关系的数据配置文件

正向解析配置步骤

1、编辑主配置文件

将11行和17行地址改为any,为所有IP提供服务,允许所有IP请求本DNS

listen-on port 53 { any; };
allow-query { any; };

2、编辑区域配置文件

vim /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update {none;};
};

named-checkconf 检查配置文件语法和参数

3、编辑数据配置文件

cd /var/named/
ls -al named.localhost
cp -a named.localhost aaa.com.zone
vim aaa.com.zone$TTL 1D #生存周期为 1 天@       IN SOA  aaa.com.  root.aaa.com. (DNS区域地址         管理员邮箱0       ; serial  #更新序列号1D      ; refresh #更新时间1H      ; retry   #更新时间1W      ; expire  #失效时间3H )    ; minimum #无效解析记录的缓存时间NS      ns.aaa.com.    #域名服务器记录A       192.168.10.10         #地址记录( ns.aaa.com.)AAAA    ::1named-checkzone 检查数据配置文件语法和参数
systemctl restart named

 4、验证结果

修改/etc/resolv.conf 添加新建DNS地址

nslookup aaa.com 测试正向解析

反向解析配置步骤

1、配置区域配置文件

vim /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update {none;};
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
};
named-checkconf 检查配置文件语法和参数

2、配置数据配置文件

cp -a named.loopback 192.168.10.arpa
vim 192.168.10.arpa
$TTL 1D
@ IN SOA aaa.com. root.aaa.com. (0;serial1D;refresh1H;retry1W;expire3H );minimum
NS ns.aaa.com.
ns A 192.168.10.10
10 PTR ns.aaa.com. #PTR 为指针记录,仅用于反向解析
10 PTR mail.aaa.com.
10 PTR www.aaa.com.
20 PTR bbs.aaa.com.
named-checkzone 检查数据配置文件语法和参数
systemctl restart named

3、检查测试

nslookup IP 测试反向解析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库高可用mha

MHA搭建的步骤 一.配置主从复制 1.初始化环境 #在四台服务器上初始化环境 systemctl stop firewalld systemctl disable firewalld setenforce 0 2.修改 Master、Slave1、Slave2 节点的主机名 #在Master上 hostnamectl set-hostname mysql1 su#在Slave1 hostnamectl set-h…

泛型-限定存储数据类型

泛型 泛型的本质&#xff1a;参数类型化 概述&#xff1a;将类型由原来的具体的类型参数化&#xff0c;然后在 使用/调用 时传入具体的类型 格式&#xff1a; <类型> 指定一种类型的格式&#xff0c;这里的类型可以看成是 方法中的形参&#xff08;如果不理解可去看下形…

Flink窗口与WaterMark

本文目录 窗口的生命周期Window Assigners窗口函数&#xff08;Window Functions&#xff09;TriggersEvictorsAllowed Lateness 窗口 窗口&#xff08;Window&#xff09;是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中&#xff0c;再对每个“桶”加以处理。…

域名流量被劫持怎么办?如何避免域名流量劫持?

随着互联网不断发展&#xff0c;流量成为线上世界的巨大财富。然而一种叫做域名流量劫持的网络攻击&#xff0c;将会在不经授权的情况下控制或重定向一个域名的DNS记录&#xff0c;导致用户在访问一个网站时&#xff0c;被引导到另一个不相关的网站&#xff0c;从而劫持走原网站…

企微私域流量引流:从策略到实践的全面解析

随着互联网的发展&#xff0c;流量变得越来越贵&#xff0c;如何将流量转化为企业的价值成为了重要的议题。在这个背景下&#xff0c;企微私域流量成为了企业关注的焦点。本文将从策略和实践两个角度&#xff0c;全面解析企微私域流量的引流方法。 一、策略篇 1. 明确目标&…

maven pom.xml 加载本地.jar库文件方法

一般我们使用的jar包,都是从maven仓库中加载的, 那如果是从本地该如何加载呢? 本文介绍maven加载本地jar的方法 在 pom.xml 的 dependencies 节点内增加以下配置即可 <dependency> <groupId>cn.tekin</groupId> <artifactId>mylib</artifactI…

leetcode:908. 最小差值 I

一、题目 二、函数原型 int smallestRangeI(int* nums, int numsSize, int k) 三、思路 本题题目有些绕口&#xff0c;但是无伤大雅。本质就是可以对数组中的每个元素进行加/减 k 的操作&#xff0c;然后求数组中的最大、最小元素的最小差值。 分为几种情况&#xff1a; …

怎么查询网络出口IP

怎么查询自己的网络的出口IP 背景 一般跟第三方服务进行接口数据交互的时候&#xff0c;对方都会让我们提供调用接口的网络的出口IP&#xff0c;对方会把该IP地址加到对方的白名单中。这样我们才能有权限进行接口的访问。 解决办法 下面介绍三种常用的查询网络出口IP的办法…

C语言编译器(C语言编程软件)完全攻略(第二十九部分:Linux GCC简明教程(使用GCC编写C语言程序))

介绍常用C语言编译器的安装、配置和使用。 二十九、Linux GCC简明教程&#xff08;使用GCC编写C语言程序&#xff09; 市面上常见的 Linux 都是发行版本&#xff0c;典型的 Linux 发行版包含了 Linux 内核、桌面环境&#xff08;例如 GNOME、KDE、Unity 等&#xff09;和各种…

[Verilog语言入门教程] 乘法器详解 与 设计/仿真

依公知及经验整理,原创保护,禁止转载。 专栏 《Verilog》 <<<< 返回总目录 <<<< 乘法器可以分为以下5种类型: 顺序乘法器(Sequential Multiplier):顺序乘法器是最简单的乘法器类型,采用逐位相乘的方法实现。这种乘法器适用于小规模的乘法运算…

go构建项目与打包

环境搭建 使用的组件及版本 operator-sdk v1.22.0go 1.20.0 linux/amd64git 1.8.3.1k8s 1.18.5docker 20.10.5 前期配置 安装Git yum install git安装docker yum install docker-ce安装go 官网下载 tar -C /usr/local/ -xvf go1.20.linux-amd64.tar.gz 环境配置 // 将go配置…

【赠书第16期】码上行动:用ChatGPT学会Python编程

文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展&#xff0c;聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中&#xff0c;ChatGP…

HarmonyOS@Extend装饰器:定义扩展组件样式

Extend装饰器&#xff1a;定义扩展组件样式 在前文的示例中&#xff0c;可以使用Styles用于样式的扩展&#xff0c;在Styles的基础上&#xff0c;我们提供了Extend&#xff0c;用于扩展原生组件样式。 说明 从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。…

静态网页设计——红旗汽车官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1gK411x7Bg/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

git克隆失败提示RPC failed的解决方法

现象 $ git clone https://github.com/guillemj/dpkg.git Cloning into dpkg... remote: Enumerating objects: 113312, done. remote: Counting objects: 100% (18045/18045), done. remote: Compressing objects: 100% (3915/3915), done. error: RPC failed; curl 18 trans…

在Uniapp中使用Echarts创建可视化图表

在uniapp中可以引入echarts创建数据可视化图表。 1. 安装Echarts 使用npm安装echarts插件&#xff0c;命令如下&#xff1a; npm install echarts --save2. 引入Eharts 在需要使用Echarts的页面引入&#xff1a; import *as echarts from echarts3. 创建实例 创建画布元素…

跟我用路由器学Linux编程 - 专栏目录

专栏文章目录 序言 本专栏文章以梅林、openwrt等linux路由为基础硬件&#xff0c;和笔者一起学习使用shell语言。带你从编写简单的插件开始&#xff0c;学习怎么折腾路由器&#xff0c;顺便学会编程。专门找一台Linux主机用来学习很不容易&#xff0c;但软路由用的都是Linux基…

三极管组成的光控开关电路原理图

什么是光控开关 光控开关/光控时控器采用先进的嵌入式微型计算机控制技术&#xff0c;融光控功能和普通时控器两大功能为一体的多功能高级时控器&#xff08;时控开关&#xff09;&#xff0c;根据节能需要可以将光控探头&#xff08;功能&#xff09;与时控功能同时启用&…

【51单片机】LED灯的进阶操作(闪烁、流水)

上篇文章我们讲到了Keil5与STC的使用方式点亮第一个LED灯 这篇将继续进行一些LED灯的进阶操作 目录 LED灯闪烁&#xff1a;LED流水灯普通LED流水灯LED流水灯PLUS LED灯闪烁&#xff1a; 上文我们说只要通过P2这个寄存器就可以控制LED亮灭&#xff0c;现在我们要将其变为闪烁状…

React基础应用及常用代码

目录 基础知识 babel.config.js js,html,css,Vue,react,angular,nodejs,webpack,less,ES6,commonjs等的关系 ECMAScript 6&#xff08;ES6&#xff09; let、const、var 的区别 Webpack、npm、node关系 props和state区别 通用框架类 ES 6 export React React.Fragm…