Shawn's Blog

Python 之序列:列表、元组

0X00 列表和元组 Python里有个东西叫做序列 ,可以想象成一堆数据。可以简单的通过序列实现数组、链表、栈和队列等数据结构。 序列有几种,常见的是列表和元组。 0X01 序列分片 我们可以从序列中截取一部分,这种操作被称为分片 分片的时候我们可以选择起始点和结束点,还能选择步长,甚至乃能倒序 分片使用:分隔开参数,一般情况下有两个参数,截取第一个参数到第二个参数,左开右闭 如果参数是负数的话,则表示倒数第几个 但是可以接受第三个参数,第三个参数表示步长。如果第二个参数是2那么就是接一跳一。 如果参数为空则表示极限。 具体可以看下面的代码 0X02 序列拼接 序列拼接就和Java里的字符串拼接差不多,可以单纯的用一个加号连在一起。当然Python比Java方便的一点就是,不只是字符串,什么东西只要是在序列里就能用序列拼接到一起。 Python中用加号的方式把序列拼接在一起是返回一个新的序列 而不是直接修改其中的一个序列。 序列不只能做加法,还能做乘法。序列乘n之后返回一个重复了n次的序列 0X03 空序列…

Python 之字符串

0X00 如何定义一个字符串 Python不需要定义 其实就是这样的。。在Python中的字符串通常这么写 str1 的声明方式是最普通的声明方式 str2 的声明方式可以在字符串中存在单引号‘ str3 的声明方式可以在字符串中存在双引号 “ 还能在字符串中换行 0X01 拼接字符串 注意: 连接的时候加号左右都要是字符串,如果是字符串加数字就不行了。除非把数字转成字符串格式 0X02 输入字符串 标准输入就是直接把你输入的东西写到代码里,甚至可以用变量名 原始输入就是直接输入字符串,纯字符串 具体情况可以从下面的Demo中看到效果 0X03 字符串格式化 学过C的能迅速的理解Python里的字符串格式化,没学过C的可以快速的理解Python里的字符串格式化 +_+ 0X04 字符串处理函数 find 字符串查找 从一个字符串中查找另一个字符串,返回最左端索引,找不到就返回 -1 如果find函数返回了0,并不是没找到,而是在0的位置找到了。毕竟程序员的世界从来都是从0开始数数的 join 连接 连接序列中的元素 注意这里是 str.join(list) 而不是…

Shadowsocks 如何科学上网 搭梯子 简明教程

0X00 准备工作 1.一台海外或者香港的服务器/虚拟主机(后面统称VPS),要有独立IP 2.VPS的带宽和流量不能太小 3.一个连接VPS的软件,LInux/Mac可以用终端,Windows用户可以用XShell或者putty 4.VPS要使用Linux系统,Debian/Ubuntu/CentOS都行 开工之前最好有Linux适用基础 没有VPS的推荐一个购买地址,便宜好用banwagong 这个网站不是官网,但是起到了类似中文官网的作用,可以按照里面的推荐和教程去购买适合自己的VPS VPS买回来不止可以干这个、配置高一点的话还可以搭建一个独立博客和一些其他的服务 0X01 简述工作原理 不通过伟大防火墙时 我们访问某网站,流量从我们的机器一路跑到网站服务器,然后服务器响应数据再一路跑回来。 现在 有了伟大的防火墙 不让我们和某些网站交流了,我们可以搭一个 梯子 ,让流量通过梯子。其实用 镜子 比喻会更好一点。 有了镜子 之后,我们的流量一路跑到镜子那里,镜子替我们将流量一路跑到网站服务器,然后网站服务器将数据一路发送到镜子,镜子再转发给我们。 所以造成下面几个问题:…

Java 使用 MD5 和 BASE64

0X00 简介 最近经常要在代码中使用到BASE64编码和MD5,所以把笔记贴在这里方便自己查找。 在配置postfix邮件服务器的时候发现,收到的邮件正文都是使用BASE64编码过的,所以才了解了一下这种编码。 MD5不算加密算法,但是可以用作摘要计算。 0X01 BASE64编码 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。 维基百科 代码需要 import sun.misc.BASE64Encoder; 0X02 BASE64解码 代码需要import sun.misc.BASE64Decoder; 0X03 MD5…

NFS 网络文件系统 安装 配置 挂载 卸载

0X00 NFS简介 NFS的全称是Net-File-System也就是网络文件系统。这和Samba与FTP不同,FTP的主要用途是用来上传和下载文件,Samba的主要功能是共享文件,而NFS的主要功能是用作文件系统。也就是说和NTFS、FAT32、EXT4等是类似的性质。我们可以将这个NFS当做一个磁盘分区挂载到自己的操作系统上,像操作自己的分区一样,甚至可以从NFS启动操作系统。 实验环境:两台虚拟机CentOS7.x 同处在一个内网环境下 0X01 安装NFS软件和服务 0X02 创建测试目录并修改权限 0X03 修改配置文件 配置文件是/etc/exports 使用文本编辑器打开配置文件并进行修改 /home/share/表示NFS的路径 192.168.123.132(rw, sync)表示192.168.123.132访问此NFS时使用后面的配置、具有rw权限(读写)、sync同步模式,表示内存中的数据实时写入磁盘 *(ro)表示所有IP访问时使用后面的配置、ro表示read only只读 每个路径下面可以接好多个访问项,就是192.168.123.132(rw,…

Linux 交换分区 swap 虚拟内存 理解虚拟内存

SWAP分区是Linux的交换分区。交换分区实际存在于磁盘中,不过Linux系统可以将它当作内存使用,当物理真实内存不足的时候交换分区就可以和真实内存进行数据交换。简单地说就是从磁盘里拿出一块空间当作内存的储备区。虽说磁盘被拿来当作内存使用,但是速度还是磁盘的速度。可以想象下面一种日常生活的场景: 当你工作的时候一定是把桌洞里的东西拿出来放到桌面上,并且手里拿着一部分东西在操作,然后桌面和桌洞里的东西在不断的交换你手里的东西和桌面上的东西也一直在交换。 可以这么想:你从桌洞里拿出来了一本《5年高考3年模拟——理综》放到桌面上,然后拿起笔开始刷题。后来你又从桌洞里拿出来了一本《5年高考3年模拟——数学》放到桌面上,准备两本一起写(就是这么屌),写一题理综写一题数学。再后来你又想同时写语文,但是你发现你的桌面上已经没有了那么大的空间,就只能把语文放到桌洞里,每次拿出来语文就要把数学或是理综放到桌洞中。…

Linux 的 LVM 逻辑卷管理 分区 划分 重划

我的另一篇 LVM 博客,可供参考 我的另一篇 LVM 博客,可供参考 我的另一篇 LVM 博客,可供参考 0X00 LVM是什么,有什么用 LVM的全称是Logical Volume Manager(逻辑卷管理)。是Linux下的一种磁盘分区管理机制,方便给分区(逻辑分区)扩容和压缩。最简单的可以理解成原始的磁盘分区管理是单纯的给每个独立的磁盘进行分区,然后对每个分区进行管理,这样的话每次扩容和压缩空间都会很麻烦。LVM就相当于把所有磁盘的分区都揉到一起,揉成一个大磁盘或者说是大分区,然后从大的中分出小的,这样的话扩容和压缩都会变得方便。 版权声明:图片来自Linux.cn 0X01 基础术语解释 PV 是 _Physical Volume_ 物理卷 \也就是真实的磁盘分区 VG 是 _Volume Group_ 卷组 \也就是好多PV组成的一个组 LV 是 _Logical Volume_ 逻辑卷 \就是从VG中分出来的分区 PE 是 _Physical Extent_ 物理区域 \是PV中最小的存储单元 LE 是 _Logical Extent_ 逻辑区域…

Linux 配置 DHCP 服务器 简明教程

DHCP介绍 功能简介 DHCP是一个基于UDP的工作在应用层的协议,用来自动分配IP地址。 应用实例:一个办公室有十个人,每个人每天上下班都要带着自己的笔记本,所以每次都要手动配置IP地址,这样简直就不是计算机该干的事情是吧。。所以DHCP应运而生,它能够根据服务端的配置给连接到网络的客户机自动分配IP地址。 提供的服务 1.提供IP地址和子网掩码 2.提供IP地址对应的网络地址和广播地址 3.默认网关地址 4.DNS服务器地址 通俗的解释 你们寝室里有六个人(对应到客户机),每个人都需要用床(对应到IP地址)睡觉,所以每个人回到寝室都会需要一张床。这样的话每个人每次回到寝室的时候都需要宿管(对应到网络管理员)都需要给他分配一个床位,这样就很麻烦。 现在有一个“动态床位分配系统”(对应到DHCP服务器),你们每个人回到寝室的时候都会收到一张纸条,纸条上写了你可以使用哪个床位,这就简单多了。…

Linux 软链接(符号链接)/硬链接 理解Linux链接

0X00 什么是链接文件 Linux中的链接文件就相当于是Windows中的快捷方式,通过链接文件可以访问到链接指向的源文件。但是Linux下的链接文件和Windows中的快捷方式还是有一定的区别。Linux中有两种链接文件硬链接 和软连接 也称为符号链接 在介绍链接文件之前先要介绍一下Linux文件系统中的inode inode是Linux文件系统中文件的唯一定位器,每一个文件都有一个inode,也是唯一的,每一个inode唯一对应一个文件。 还要熟悉一下指针的问题,如果学习过C/C++的话理解起来会很轻松 计算机中所有的数据都是保存在磁盘里的,使用的时候会读取到内存中,而磁盘和内存都是一块一块的地方,我们用地址来找到数据的具体存放位置。保存了文件或者数据存放地址的物体(通常是变量)就称为指针。 我们在Linux的操作界面看到的文件,都是一个指针,他们指向磁盘的某个具体位置。这样我们每次点开文件的时候,系统就可以在磁盘对应的位置打开我们需要的文件。 0X01 硬链接…

Apache配置虚拟主机 VirtualHost 多站点

如果我们只有一台服务器,应该怎么实现让这台服务器同时处理PHP和JSP的请求? 这里的解决方案是通过Apache的虚拟主机(vhost)来进行端口转发。 Apache会通过访问服务器的域名将请求转发至不同的端口或者不同的服务器。 0X00 前提&目的 前提: 拥有一个域名,并有两个A解析,同时解析到这台服务器的IP 分别拥有一个JSP和PHP的页面(网站) 目的: 使用php.test.com访问的时候解析到PHP的网站上 使用jsp.test.com访问的时候解析到JSP的网站上 操作系统: Centos 7.x 如果是之前的版本或是其他系统可能出现不同的情况 0X01 安装httpd (Apache) 安装并启动服务 0X02 安装PHP 0X03 安装JDK用来配合JSP 0X04 安装tomcat用于解析JSP页面 0X05 配置httpd用于同时支持PHP和JSP 打开配置文件 在配置文件的最前端添加如下内容 0X06 最后 现在就可以使用php.test.com 和 jsp.test.com分别访问到PHP和JSP的页面了