- 博客(54)
- 收藏
- 关注
原创 PostgreSQL安装和mcp PostgreSQL
因为系统自动创建了一个postgres用户,当我们sudo -i -u时就时登录到该用户,所以此时psql不需要指定-U参数就默认以postgres用户登录了,如果我们在root用户下使用psql登录则会报错,因为此时数据库没有root用户,需要我们一会创建。因为psql中必须要存在和用户同名的数据库才能使用psql -U root -W 进行登录,否则就需要指定数据库psql -U postgres -W -d postgres进行登录。最好把psql的默认用户postgres也加入sudo。
2025-03-09 22:41:55
546
原创 web服务器架构,websocket
被tomcat服务器打包,统一指定根目录入口。通过发送到后端,,这样就。这里,原生表单通常只能通过http包装一个简单key,value进行传输。但api表单可以发送任何形式的数据,因为发送数据通过json格式进行包装理论上可以包装任意数量,任意形式(如value可以为列表也可以为字典)的键值对。
2025-01-08 01:08:02
584
原创 密码学和CA证书
中间证书例子:比如burpsuite,它作为中间人同时扮演服务器和客户端。我们把他的根证书放到浏览器中,在浏览器向burp发送请求时,burp作为服务器给浏览器颁发一个由根证书签名的服务器证书,该证书就是一个中间CA证书,便于浏览器验证burp的合法性。然后burp作为客户端,又对真正服务器的CA证书进行验证。实现了中间人劫持。(3)如果客户端验证成功,
2024-12-02 17:14:23
1075
1
原创 操作系统(系统调用,期末复习题)
DPL和CPL用于区分内核态和用户态。内核态的DPL为0,用户态的DPL为3。CPL从当前段CS寄存器的低三位读出,DPL根据将要访问段的地址从GDT或LDT表中读出。DPL或CPL越小优先级越高。所以DPL>=CPL时可以进行段间访问。
2024-11-23 19:59:04
624
原创 刷写树莓派系统
可以自动将TF卡(micro sd卡)格式化为适合树莓派系统运行的文件格式Fat32。就无需自己手动格式化进行刷写。5. 在linux中使用如下命令,生成123456的加密值,并按照相应字段覆盖原密码即可。先把TF卡插入树莓派开一下机。然后过一段时间取出就可以,然后再次刷写即可。vnc是远程桌面控制工具,可以使用其他代替。
2024-11-22 17:48:46
568
原创 wsl,docker安装,桥接nat虚拟机VMware网络模式
wsl需要把linux命令翻译为windows命令,性能差一些。wsl2直接使用linux内核,不需要翻译,性能好,但开销相对大一点,因为需要多运行一个hyper-v虚拟机让linux内核执行。
2024-11-22 17:46:00
1300
原创 网络工程9(软路由,旁路由)
设置软路由,可以将软路由设置为主路由,主路由设置为交换机和无线AP。从而实现网络中的所有设备的消息都能经过软路由的处理后进行上网(比如进行科学上网)。
2024-09-01 22:31:21
1536
原创 正则表达式
sed ‘s///g’ /g表示全局替代,如果不加只能替换每行第一个匹配的元素。使用diff比较两个文件的不同,如下有第四行和第8行的文件不同。
2024-08-07 22:29:25
185
原创 shell技巧
i-- )) 注意:和’之间有一个空格。尽量像这样将IFS放到while内部,让IFS只在while循环中生效,避免干扰其他地方。
2024-08-07 15:30:40
218
原创 网络端口转发
然后设置路由器的端口转发到内网某个ip的某个端口,比如内网服务器为192.168.31.207那我们就转发到192.168.31.207:22这样就可以ssh远程访问内网服务器了。光猫改桥接之前光猫自身也会有一层局域网,光猫ip为局域网额的192.168.1.1。当改桥接之后,只有一层路由器的局域网,路由器为局域网的192.168.31.1。此时从公网对内网进行访问时,
2024-08-07 15:25:09
714
原创 vscode多线程调试
多线程调试时,最重要的就是在线程间来回切换,当切换到一个线程时此时就是在该线程进行的单步调试,当调试该线程时,其他线程同样在运行,我们可以切换到其他线程观察到底运行到哪一条语句。
2024-07-24 18:08:57
566
原创 extern的理解
extern 变量的声明通常用于告诉编译器该变量在其他地方定义,这样一来就可以实现在一个文件中定义,但可以在多个中使用extern变量。
2024-07-23 10:57:27
144
原创 std::move移动语义
此时将b转化为了b的右值引用(我们知道引用和原值是共用内存的,引用只是一共别名,所以把b转化为b的右值引用同理。如果直接int &&a = b,把左值赋给右值引用是错误的。)然后赋值给a,此时a和b同样共用一块内存,a为b的一个别名。
2024-07-22 13:01:51
188
原创 关于shell的变量替换
当我们打开一个终端,其实就是打开了一个交互式的shell程序,我们看到的包括PATH,HOME环境变量都是shell中定义的变量。
2024-07-19 15:40:26
380
原创 多人猜数游戏
解决方法:当我们在切换进程之前先使用kill -STOP 挂起当前进程,然后切换到另一进程调试。问题1:在从1进程切换到2进程时,如果我们在1进程后的某一个位置打断点,试图想当我们调试2进程时让1进程停到断点这是不可行的,当切换进程后进程1会自动执行而不会在断点停下。同时,当我们切回进程的时候程序会报错signal STOP这是因为我们发出的暂停信号,当启动时又会报错signal continue,这是因为我们发出的开始信号,当我们打开一个进程的时候时候,肯定会从main函数开始执行。
2024-07-17 16:30:45
1076
原创 memcpy的使用
正如下面程序所示,我们将environ指向的指针数组的内容复制给了env指向的内存,1.当存在内存重叠时不能使用,会造成原数组内存覆盖。,而不是复制指针指向的地址。2.memcpy是对。
2024-07-13 11:29:05
161
原创 进程的阻塞
1.如果读取端尝试从管道读取数据时,如果没有进程向管道的写入端写入数据,读取操作也会阻塞,直到有数据可读为止。此时read函数会自动返回0,不会产生阻塞。** 可以用这个特性来检测是否接收端发生crush。此时write函数会产生SIGPIPE错误信号,我们可以通过使用截取错误信号来检测处理该问题。因为管道文件是一种流式通道,随机访问的话会造成进程间通讯数据的丢失。如果仅仅open管道文件不算打开管道,2.当缓冲区为空时会阻塞。
2024-07-12 20:29:12
514
原创 fork的理解
下面程序一共应该为8个进程,但code的终端看到只有7个进程号的原因。因为fork返回的都是子进程号,差的那一个是第一个主进程,他不是fork产生的子进程,是终端的子进程。
2024-07-11 12:40:48
260
原创 Modem和光猫的区别
光纤宽带(Fiber-optic Broadband):利用光纤电缆传输数据,速度非常快,能够支持大带宽和低延迟的应用。电缆宽带(Cable Broadband):通过同轴电缆传输数据,通常由有线电视公司提供。无线宽带(Wireless Broadband):利用无线信号(如3G、4G、5G、WiMAX)提供互联网连接,适用于移动设备和固定位置的无线连接。卫星宽带(Satellite Broadband):通过卫星进行数据传输,适用于偏远地区,但通常延迟较高,速度可能受到天气影响。
2024-07-09 18:39:54
667
原创 ubuntu安装nginx
在Ubuntu中应该下载:sudo apt-get install libpcre3-dev:支持正则表达式的模块sudo apt-get install zlib1g.dev:支持zlib压缩的模块sudo apt-get install openssl :加密工具。
2024-06-19 15:52:50
6176
原创 winscp使用ssh服务远程连接虚拟机
ps -e | grep ssh 查看是否有ssh服务sudo apt-get install openssh-server 下载ssh服务service ssh status 查看ssh服务状态sudo ufw enable|disable 开启或关闭防火墙,这里需要disablesudo vim /etc/ssh/sshd_config 将里面的PermitRootLogin no 改为yesservice sshd restart
2024-05-15 04:09:22
364
原创 如何让路由器分配固定网段(网络号)ip
wan广域网,负责连接互联网lan局域网,负责保证一个区域内的设备可以互相通讯,比如wife就是让所有连接设备处于同一网段下。
2024-05-08 19:11:12
2685
1
原创 screen命令
1.ctrl+a+shift+| 左右分屏。ctrl+a等效于vim中的:,然后输入d即可。screen -d可以选择想折叠的页面,ctrl+a+d只能折叠当前打开的页面。2.screen -d 2.ctrl+a+S 上下分屏。screen -r
2024-05-04 10:10:47
1095
原创 linux 安装cmake
find /表示从根目录开始指定参数-name进行查找,然后把查找的结果传给rm。因为cmake是c语言编写的,所以使用源文件安装的时候需要先对cmake进行编译形成可执行文件,具体过程看github下载页面后有介绍,按其步骤操作。3.-exec后面可以加多个命令,不限制只有rm一个,即可以把find到的每个结果作为参数同时传给多个命令,然后\表示-exec的作用域结束。先使用find找出所有cmake的文件,注意看find的cmake文件情况,1.下载后先进入/opt目录,如果要把find结果。
2024-04-22 17:52:44
4122
原创 Linux 父子shell,source, ~/.bashrc,~/.bash_profile,/etc/bashrc,/etc/profile
参考
2024-04-21 17:30:06
168
1
原创 C指针的理解(和memset)
其实所有定义的变量都是地址,每个地址对应的内存中存放不同类型的数据,int a中存放的是一个实际的二进制数据。只是int* p中存放的是指向其他内存的地址而已。
2024-04-08 11:20:41
429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人