Debian折腾笔记

你陪了我多少年,穿林打叶,过程轰轰烈烈。花开花落,一路上起起跌跌。

重装系统

其实装Debian还是比较友好的,如果你曾在Vmware上安装过Kali那就不需要百度了,按照步骤一步一步来即可。
说点要注意的,首先准备一个8G的U盘,使用USBwriter(100+kb)刻录下载好的ParrotSec.iso镜像文件。
我用的联想笔记本,联想进入BIOS刷机有点不一样,大致步骤如下:

  1. 开机出现lenovo图标,按F2进入BIOS界面,在Boot中,两项选择设置legacy support与legacy first。移动光标,按F5将下面的USB启动移动到最上面,关于legacy与efi的区别百度一下,这里不作复述。记得插上U盘。
  2. 设置好后F10保存退出,系统自动重启,出现lenovo图标,按F12进入启动设置,选择USB启动即可。
  3. 后面的界面和在Wmware中安装Kali一样,若没有经验直接百度。

安装好后大概就是这样

基础知识

Debian是Linux的一个发行版,Linux对文件系统的权限管理的很严格,比如你在图形化下复制一个文件发现无法复制,使用命令sudo cp -r xx xx 就可以复制过去,这就是权限管理的问题。有的时候发现没办法运行记得加上sudo,总结一些必知必会的基础知识,方便在日常环境下使用。(这里插一句话,如果想使用Linux系统,但是决定ubuntu或者debian太麻烦了,建议使用国内相对来说比较好用的Linux发行版—deepin,安装过程比较简单,官方网站有很详细的介绍,小学生坐在马桶上都会安装。

文件/文件夹管理

1. ls        列出当前目录下所有文件
2. ls -a     列出当前目录所有文件(包括隐藏文件)
3. ls -l    列出每个文件的详细信息
4. cd ..    返回上级目录
5. cd -     返回上一次打开的目录
6. cd ~        返回主目录
7. cd //    返回根目录
8. mkdir test    创建名为test的文件夹
9. rm -rf test    删除test文件夹和其下所有文件(-r是递归,-f是强制)
10. mv test /var/test    把test文件夹移动到var目录下
11. mv    test test1        把test文件夹重命名为test1,该方法适用于文件重命名
12. echo '你好'>1.php    生成文件

查看信息/开关服务

1. sudo service apache start-stop-restart    开启-关闭-重启apache服务,记得加上sudo,不然权限不够无法启动,如果要开启别的服务比如mysql,直接把apache改成mysql即可(如果不记得mysql密码,cat /etc/mysql/debian.cnf 里面明文存储mysql密码)
2. sudo /etc/init.d/apahce start-stop-restart    同上,如果要开启别的服务比如mysql,直接把apache改成mysql即可
3. uname -a                 查看内核版本
4. cat /etc/issue            查看系统版本
5. hostname                    查看系统
6. cat /proc/cpuinfo        查看CPU信息
7. sudo ethtool eth0        查看网卡状态
8. sudo fdisk -l            查看磁盘信息
9. lshw                        查看硬件信息
10. df -h                    查看剩余空间
11. free -m                    查看内存使用情况
12. ps -A                    查看所有进程
13. kill pid&kill name        结束进程,pid是在ps -A查看对应的数字,name即是进程名
14. du -hs                    查看当前目录大小
15. find . -name 'xxx.py'    寻找文件,文件名可以使用通配符*
16. mysql \.                登陆mysql后,输入\\. var/sqlsetup.sql(sql文件路径)即可安装sql文件
17. top/w                    查看负载,w后面三个值表示近1分钟,10,15分钟的负载,一般来说0.6是标准健康值
18. grep                    匹配文件
19. wc -l                    统计文件个数
20. |                        把上一个命令的值传递个下一个命令,比如grep '11' xxx.txt|wc -l

硬件信息

1. lscpu                查看 CPU 和处理单元的信息
2. lspci                列出所有的 PCI 总线
3. lspci -v | grep "VGA" -A 12        获取显卡信息
4. lshw                    列出多种硬件单元的详细或者概要的信息
5. dmidecode -q            只显示硬件必要的信息
6. dmidecode|more&dmesg |more    查看机器所有硬件信息
7. cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l    查看物理CPU个数
8. cat /proc/cpuinfo| grep "cpu cores"| uniq    查看每个物理CPU中core的个数(即核数)
9. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c&cat  /proc/cpuinfo    查看CPU信息(型号)
10.

打包/解压缩

1. tar
    1. tar -c 创建包
    2. tar -x 释放包
    3. tar -v 显示过程信息
    4. tar -z 代表压缩包
2. tar --zcvf dabao.tar.gz /var/bin      把/var/bin目录打包压缩成dabao.tar.gz
3. tar --zxvf dabao.tar.gz                 把dabao.tar.gz解压出来

解压缩不同类型的文件

  有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:

  1)对于.tar结尾的文件
  tar -xf all.tar

  2)对于.gz结尾的文件
  gzip -d all.gz
  gunzip all.gz

  3)对于.tgz或.tar.gz结尾的文件
  tar -xzf all.tar.gz
  tar -xzf all.tgz

  4)对于.bz2结尾的文件
  bzip2 -d all.bz2
  bunzip2 all.bz2

  5)对于tar.bz2结尾的文件
  tar -xjf all.tar.bz2

  6)对于.Z结尾的文件
  uncompress all.Z

  7)对于.tar.Z结尾的文件
  tar -xZf all.tar.z

  另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它
们,当然要先安装zip和unzip

  1)对于.zip
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参
数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

  # zip all.zip *.jpg
  这条命令是将所有.jpg的文件压缩成一个zip包
     # unzip all.zip
  这条命令是将all.zip中的所有文件解压出来

  2)对于.rar
  要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的;可以http://www.rarsoft.com/download.htm下载RARfor Linux 3.2.0,然后安装:

  # tar -xzpvf rarlinux-3.2.0.tar.gz
  # cd rar
  # make

  这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

  # rar a all *.jpg
  这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。

  # unrar e all.rar
  这条命令是将all.rar中的所有文件解压出来

安装软件

Linux安装软件有两种方式,第一种是直接在线安装(使用apt-get),第二种是下载到本地然后手动安装(使用dpkg -i xxxx.deb)。

安装软件包

dpkg -i package.deb     //安装本地软件包,不解决依赖关系

apt-get install package  //在线安装软件包

软件安装后相关文件位置

1.下载的软件包存放位置

/var/cache/apt/archives

2.安装后软件默认位置

/usr/share

3.可执行文件位置

/usr/bin

4.配置文件位置

/etc

5.lib文件位置

/usr/lib

详细命令

1. apt-cache serach package                搜索包
2. apt-cache show package                显示这个包的详细信息,比如大小版本说明等
3. sudo apt-get install package            在线安装包
4. sudo apt-get install package --reinstall        重新在线安装这个包
5. sudo apt-get remove package            删除这个包
6. sudo apt-get remove package --purge    删除这个包和这个包的相关配置文件
7. sudo apt-get update                    更新源,在安装新的包之间要先编辑对应的源地址
8. sudo apt-get upgrade                    更新与源对应的所有文件包
9. apt-cache depends package            查看这个包需要依赖的包
10. apt-cache rdepends package            查看这个包被哪些包所依赖
11. sudo apt-get build-dep package        安装相关的编译环境
12. sudo apt-get clean && sudo apt-get autoclean    删除不用的包(清理/var/cacheapt/archive中的deb缓存文件)
13. sudo apt-get check                    检查室友有损坏的依赖包

dkpg安装删除包

1.  dpkg -i package-file-name        安装包
2.  sudo apt-get install -f根据经验,通常情况下会报依赖关系的错误,我们可以使用以下的命令修复安装。
2.  dpkg -r package-file-name        删除包
3.  sudo dpkg -l                    查看已经安装的软件
3.  dpkg -l | grep 'package-file-name'    检查这个包的状态
4.  dpkg -P package-file-name        表示彻底卸载软件包(包括配置文件)

apt-get安装删除包

1. 安装新的文件一般要编辑对应的源文件,比如:

        leafpad /etc/apt/sources.list  查看使用的源,更新编辑源
2. sudo apt-get update                   更新软件源
3. sudo apt-get upgrade                    更新对应源的所有文件
4. sudo apt-get install package            安装包
5. sudo apt-get --reinstall install package        重新安装这个包
5. sudo apt-get remove package            卸载删除包
6. sudo apt-get autoremove package        自动卸载软件但保留其配置文件
7. sudo apt-get autoremove --purge package    自动卸载软件其删除其配置文件

tips: 5    一般用于卸载本地安装的软件,6&7 一般用于在线安装的软件

最佳方法删除与安装包

通过上面的方法基本上都可以删除安装包,但是过程有些累赘,其中有一小步出错后后面就更加让人头疼,在Linux下有一个专门管理安装包的应用,aptitude。

aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

需要注意的是,与apt一样,安装新的软件之前要跟新源哦~

首先更新源文件

mv /etc/apt/sources.list /etc/apt/sources.list.bak   # 先备份一下

sudo nano /etc/apt/sources.list                         # 编辑文件

# 然后加上下面这些源地址
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
# 更新一下
apt-get update
apt-get upgrade
# 安装apttitude
sudo apt-get install apttitude
# 举个例子,检索并删除PHP
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# 这样,就完全删除了PHP
# 然后我在安装PHP,使用apt-get与apttitude一样,我使用apt-get....
sudo apt-get install php5 php-pear php5-mysql php5-gd

aptitude常用命令

aptitude update            更新可用的包列表
aptitude safe-upgrade      执行一次安全的升级
aptitude full-upgrade      将系统升级到新的发行版
aptitude install pkgname   安装包
aptitude remove pkgname    删除包
aptitude purge pkgname     删除包及其配置文件
aptitude search string     搜索包
aptitude show pkgname      显示包的详细信息
aptitude clean             删除下载的包文件
aptitude autoclean         仅删除过期的包文件

i: 安装软件包   
c: 软件包没有安装,但在系统中有软件包的残留配置   
p: 从系统彻底删除   
v: 虚拟软件包   
B: 已损坏的软件包   
u: 解压文件,但尚未配置软件包   
C: 半配置 - 配置失败需要修复   
H: 半安装 - 卸载失败需要修复  

tips:使用aptitude可以解决python使用pip安装包的时候包的依赖问题:,如安装scipy,matplotlib的时候出现依赖包,自己去安装比较麻烦的问题:
如:sudo aptitude install python-scipy ; sudo aptitude install python-matplotlib

文件权限问题

Linux对文件权限管理很严格,其所对应的概念如下:

w:可写
r:可读
x:可执行
a:可追加

使用ls -l可以查看每个文件的权限,如果需要修改权限可以这么做

chmod u+r xxx.py

这样xx.py就有了可读的权限,若要有读写权限使用u+wr即可,如果要删除相关的权限使用u-wr即可。另一种方式使用数字对应的u+r,比如最常见的chomd 777 xxx.py,r对应4,w对应2,有点麻烦不好记忆,使用u+r就可以了。

快捷键

Linux下使用鼠标机会不多,尽量多记住一些快捷键,在工作或者学习的时候能提高效率。

  1. 前一个后一个工作区的切换

    如果你经常使用工作区,那你就可以用Ctrl + Alt +上/下方向键很容易地进行切换。左箭头切换到上一个工作区,右箭头切换到下一个工作区。

  2. 把当前窗口移到另一个工作区

    快捷键Shift+ Ctrl + Alt +左/右方向键让你很容易把当前窗口移到指定的工作区。这个快捷键和上面的快捷键很好配合。如果你工作时常常打开很多窗口,但又不想看到桌面 和任务栏挤满程序,你可以用这个快捷键把程序移到另 一个工作区,这样你的桌面就整洁多了。

  3. 显示桌面

    Ctrl + Alt + D快捷键让你很快地最小化所有窗口,看到桌面。当所有窗口都最小化后,你再按这个快捷键就可以恢复窗口原来的状态。

  4. 鼠标右击的键盘快捷键

    在大多数程序里,你可以右击显示快捷菜单。其实键盘上 Shift + F10也能达到一样的效果。

  5. 重启会话以从崩溃中恢复

    按下Ctrl + Alt + Backspace来重启会话,恢复的可能达90%。

  6. 快速锁定屏幕

    如果你需要离开 电脑 一会儿,可以按下Ctrl + Alt + L很快地锁定屏幕,以防有人使用

  7. 反向切换窗口

    Alt + Tab是切换窗口的快捷键。如果你再按下SHIft,你就可以反向切换窗口。这个快捷键很有用,当你Alt + Tab按得太快,错过了你想要切换的窗口,按一下shift就可以返回之前的窗口了。

  8. 用方向键移动窗口

    Alt+F7会激活移动窗口 功能 ,用方向键(上,下,左,右)就可以移到窗口了。

  9. 编辑文本快捷键使用

    1. ctrl + k  #从光标开始到文本末剪切所有文本
    2. ctrl + y  #粘贴文本
    3. ctrl + e     #将光标移动到本行末尾
    4. ctrl + a  #将光标移动到本行开头
    5. ctrl + w  #剪切前一个单词
    6. alt  + f  #跳转到下一个空格处
    7. alt  + b  #跳转到上一个空格处
    8. alt  + back  #删除前一个单词
    9. shfit + insert #粘贴一个词(在终端)
    

VIM工具使用

vim新建或打开文本

vim /xxx/xxx.txt

写入内容

键盘:i

进入inster模式,每次从模式中退出需要按esc

保存并且退出

esc --> : --> wq
#w是写入,q是退出,加上!就是强制

转到行首行尾

G   #光标到行尾
gg  #光标到行首

删除本行

dd

回退上次操作

u

复制

yy  #复制本行粘贴
p   #粘贴本行

SSH工具使用

外部连接Linux系统的时候,一般用的是ssh协议连接,win下的远程桌面连接是rdp协议。

安装SSH服务端

apt-get install openssh-server

启动SSH

service sshd start

在Debian下记得加上sudo启动

设置开机启动

chkconfig sshd on

安装SSH客户端

win:Xshell,pytty
linux:apt-get install openssh-clients
登陆:ssh root@ip
指定端口 ssh -p 222 root@ip

SSH免密安全登陆

SSH是非对称加密,分两个文件公钥与私钥,公钥对外开放,私钥放在自己本机,这样登陆服务器的时候就不用输入自己的密码了。

生成私钥

ssh-keygen -t rsa
ssh-keygen -t dsa

有多种加密算法,然后提升输入私钥文件名字,随后ls一下,会发现多了两个文件,即私钥与公钥,后缀加了pub的是公钥。把公钥放在服务器即可。
在服务器的ssh服务端文件夹里使用touch新建一个文件authorized_keys,里面的内容就是之前创建的公钥的内容。
最后别忘了把私钥加在本地的环境当中,即

ssh-add ~/.ssh/xxx_rsa

加载后在直接连接即可。

修改端口

防止爆破,这个对各大黑客不陌生吧。

/etc/ssh/sshd_config

下面有个端口号,直接修改即可。最后别忘了重启ssh服务。

系统用户操作命令

添加用户

useradd
adduser
example : adduser langzi
          passwd  123456
          添加用户密码

删除用户

userdel
example: userdel -r langzi

设置密码

passwd

useradd与adduser都是创建新的用户

在CentOs下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。

而在Ubuntu/Debian下useradd与adduser有所不同

1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。

2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

userdel只能删除用户,并不会删除相关的目录文件。userdel -r 可以删除用户及相关目录。

防火墙设置

安装防火墙

apt-get install firewalld

启动/停止/检查状态

sudo service firewalld start-stop-restart-state #打开-关闭-重启-检查状态

删除/添加某项服务

sudo firewalld-cmd --remove-service=ssh
sudo firewalld-cmd --add-service=ssh
#如上关闭或者开启ssh服务
sudo firewalld-cmd --remove-port=22/tcp
sudo firewalld-cmd --add-port=22/tcp
#效果如上一致

提权/下载/上传操作

提权

首先cd到home目录下,查看有用户名字为langzi.然后用该用户登陆,安装某些软件的时候加上duso提示没有权限,这个时候使用root用户登陆,修改配置文件。

visudo
#最后一行中,使用G调转过去,在all people in .... 中编辑添加
%langzi ALL=(ALL)   ALL
esc --> : --> wq
#保存退出

然后回到浪子账户,可以安装软件。

下载文件

wget/curl 两个都可以
example:下载www.langzi.fun的首页
        wget http:www.langzi.fun
        # 这样就下载好了我的网站的首页文件

文件上传到服务器

本地文件上传到服务器上。

scp 命令
example: scp xxx.txt langzi@ip:/tmp
         # 把xxx.txt,以langzi用户上传到服务器的tmp目录下

服务器下载文件到本地

scp 命令
example: scp langzi@ip:/tmp/xxx.txt ./
        # 把服务器tmp目录下的xxx.txt下载保存到当前目录下

使用Xshell传递文件

安装相关软件

yum install lrzsz -y

运行命令rz,即是接收文件,xshell就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到linux里的当前目录。

运行命令sz file 就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了。

更简便的方法是直接拖动文件到Xshell里面,就可以完成上传。

服务器部署shadowsocks

首先有一台境外的服务器或者VPS,一般是Linux系统的,ssh链接上去后,使用wget下载ssr然后安装

wget –no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh

然后根据提示输入端口,密码,加密方式

在根目录下会生成两个文件sh和txt,直接运行会提示权限不足,使用chmod赋予权限

chmod +x shadowsocks-all.sh

然后执行即可

./shadowsocks-all.sh

执行后ps -A 查看ss-server服务是否开启,然后下载ssr连接即可。

或者使用这个脚本

wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh

启动:

/etc/init.d/shadowsocks start

停止:

/etc/init.d/shadowsocks stop

重启:

/etc/init.d/shadowsocks restart

更简单一步操作

wget https://raw.githubusercontent.com/liuyaanng/SSR/master/ssr.sh && chmod +x ssr.sh && ./ssr.sh

本地连接使用ssr

首先下载客户端,地址

选择后缀是.deb的下载后安装,会出现一个小飞机,配置好即可。

因为ssr的流量走到都是socket,所以安装下载之后是没办法直接使用的。安装插件即可,如果实在终端下使用需要安装proxychains,浏览器推荐使用CHROME浏览器,安装SwitchyOmega插件后选择代理模式即可。

apt-get install proxychains

然后修改/etc/proxychains.conf,最后一行的socket改成socket5:1080,每次使用的时候加上proxychains即可,比如

proxychains apt-get install python

浏览器要安装插件,但是安装插件要FQ,可以下载谷歌小助手然后安装插件。

书写Markdown

以前我都是使用自带的remarkable,后来发现升级4.2后不自带了,还要安装。并且感觉remarkable使用起来不方便,还不如使用自带的Atom。

汉化ATOM方法如下:

git clone https://github.com/chinakids/atom-simplified-chinese-menu chinese
cp -r chinese ~/.atom/packages

反正把所有文件复制过去即可。

然后终端下输入

apm install markdown-scroll-sync

即可同步阅览。更多功能移步这里

实施预览需要使用快捷键

ctrl+Shift+m

安装软件应用

折腾中文输入法

在搜狗输入法官网下载Linux版本的安装包.deb,下载到本地后右键Gdebi安装即可,会自动下载所依赖的包,下载后找到控制中心,找到输入法配置的选项就可以看到搜狗输入法成功安装好了,不难.

安装Win下的应用软件

推荐使用Cossover,类似于安卓模拟器,在其官网下载就好.需要注意的是,下载的版本好像只有32位的,所以需要一堆依赖的包,具体操作如下:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get -f install
sudo apt-get install gdebi
sudo gdebi /xxxxxxxx.deb

安装好后,在右边的程序栏会出现Cossover图标,直接点击启动即可,里面的应用直接下载安装即可.

试用期14天,针对16版本号有个补丁。补丁地址,复制到/opt/cxoffice/lib目录替换。

sudo cp winewrapper.exe.so /opt/cxoffice/lib

据说这个网址提供破解版,没有测试过,地址

安装网易云音乐

和安装搜狗输入法一样,去官网下载安装包,网易云的Linux安装包有两个,一个是DEEPIN深度系统定制的,下载第二个即可,我之前安装的时候用dpkg,需要一大堆依赖还要更新源,后来报错了.其实不需要这么麻烦,右键使用Gdebi默认安装即可.

将python2.6升级成2.7

  1. 下载Python2.7.5源码

    # wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz
    
  2. 解压源代码包

    # tar xvf Python-2.7.5.tgz
    
  3. 进入解压目录并安装

    # cd Python-2.7.5
    # ./configure
    # make all
    # make install
    # make clean
    # make distclean
    
  4. 将系统默认的python设置为python2.7.5

    # rm /usr/bin/python
    # ln -s /usr/local/bin/python2.7 /usr/bin/python
    
  5. 解决yum不能运行的问题

因为yum是依赖python2.6.6运行的,所以需要对yum做一些修改

# vim /usr/bin/yum
将第一行的#!/usr/bin/python修改为#!/usr/bin/python2.6
  1. 升级 python 后,安装 pip 工具

    wget https://bootstrap.pypa.io/get-pip.py
    python get-pip.py
    ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip
    

Python2.6安装pip

有的linxu机器python2.6没有pip,实现安装功能如下:
首先安装epel扩展源
然后下载安装

sudo yum -y install epel-release
sudo yum -y install python-pip

快速截屏

一般来说下载使用Shutter来截屏,但是需要因为是Prel语言写的,Debian上默认安装的p语言好像版本不一样,安装的时候依赖包没有下载成功.
当然使用自带的截图也是可以的,在键盘上F12旁边有个截屏按键,如果想截自定义部分图,按住Shift+PrtSc,即可选定位置截图.

Python问题汇总

更新pip

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade pip

下载别的库可以用这条

pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/


pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
坚持原创技术分享,您的支持将鼓励我继续创作!

-------------本文结束感谢您的阅读-------------

腾讯云主机优惠打折:最新活动地址


版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%