you-get的安装与使用教程

1 安装python

1.1 下载python

Python Release Python 3.8.2 | Python.org​www.python.org/downloads/release/python-382/

选择Windows x86-64 executable installer下载

embeddable zip file(压缩包安装,直接解压就可以)
executable installer(应用程序安装,推荐!!)
web-based installer(网络安装,安装的时候需要网络)

1.2 打开下载的安装软件

1.3 选择install now并勾选Add Python 3.8 to PATH(重要!!!)

1.4 安装成功点击close

1.5 在cmd窗口中输入python -V检查是否安装成功

1.6 更新pip

python -m pip install --upgrade pip

2 安装you-get

2.1 用pip安装you-get

pip install you-get

2.2 查看you-get是否安装成功

you-get -V

3 you-get使用方法

3.1 直接下载视频

you-get+url(url为视频链接)

3.2 显示视频可供选择的清晰度、大小与格式等信息

you-get -i+url(url为视频链接)

3.3 批量下载视频列表

you-get  --playlist++url(url为视频链接)

Windows10 下搭建汇编语言开发环境(转)

1. 工具准备

1)下载 DOSBOX

工具介绍:DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。不少DOS下的游戏都可以直接在该平台上运行。

工具官网:http://www.dosbox.com/
项目主页:http://sourceforge.net/projects/dosbox/
下载链接:http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download(32位)
说明:由于项目已经停更,目前官网上指出,DOSBOX可以运行于32位和64位的Windows Vista和Windows 7之上,根据本人亲测,亦可在 32位 和 64位 的 Windows 10 上运行 DOSBOX,因此有需要的童鞋可以试试。

2)下载 MASM32

工具介绍:MASM32是国外的MASM爱好者Steve Hutchesson自行整理和编写的一个软件包,目前最高版本为11r版。MASM32并非指Microsoft的MASM宏汇编器,而是包含了不同版本工具组建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft Visual Studio中的Rc.exe,32位链接器是Microsoft Visual Studio中的Link.exe,同时包含有其他的一些如 Lib.exe 和 DumpPe.exe 等工具。
工具官网:http://www.masm32.com/
下载链接:http://www.masm32.com/download.htm

汇编文件2019年7月 https://pan.baidu.com/s/1w27JQtrklbaM4ZpzGVZr7A

masm文件夹内至少要包含这4个文件:masm.exe, link.exe, debug.exe, exe2bin.exe。其中:
masm.exe:汇编程序,用于汇编源程序(.asm),得到目标程序(.obj);
link.exe:连接程序,用于连接目标程序,得到可执行程序(.exe);
debug.exe:调试程序,用于调试可执行程序。
还可以下载其他的程序。

注意:masm工具压缩包,里面包含必要的汇编、链接、调试工具

2.安装工具

1)安装 DOSBOX

  安装下载到的DOSBox0.74-win32-installer.exe,直接一路Next完成安装。

2)配置 DOSBOX

创建两个目录,

一个用来保存汇编工具,如:D:\huibian\masm 。将汇编工具 放到新建的工作目录下。( 实际会用到的有以下程序:debug.exe edit.com link.exe masm.exe )
一个用来保存汇编源文件( 如:D:\huibian\debug )。

打开 DOSBOX 的安装根目录(默认安装路径:C:\Program Files\DOSBox-0.74;若是64位的系统,则默认安装路径:C:\Program Files (x86)\DOSBox-0.74),双击文件 DOSBox 0.74 Options.bat,运行该批处理文件后系统会用文本文档Notepad打开配置文件dosbox-0.74.conf。( 如果双击没反应,直接命令行执行 )

将光标定位到 dosbox-0.74.conf 文件的 [autoexec] 节点(一般在该文件末尾),在文件中添加以下内容:

MOUNT C D:\huibian               # 将 目录 D:\huibian 挂载为 DOSBOX 下的 C:
set PATH=$PATH$;C:\masm # 将 映射后 C:\masm 写入环境变量 PATH 中
环境变量添加 c:\masm,这样就可以调用 d:\huibian\masm\下的编译工具;
注意:不能设置成 set path=%path%;d:\masm\,因为此时 d盘 已挂载到 c盘 上
C: # 进入 dosbox 系统 的 C 盘

mount 的作用是将 pc 目录映射到 dos 系统的目录。这里是将我电脑中 D:\huibian 映射到了 dos 系统 c 盘,这样你对 dos 的c盘的操作就相当于是对 D:\huibian 的操作。

其实可以不修改 conf 文件,只要在每次运行时输入这两个命令就行了。

保存文件后关闭。

为什么要修改 dosbox 的 conf 文件 ? dosbox 的 conf 文件的 [autoexec]标签 下面的代码会在 dosbox 启动时运行,这样就不用在 dosbox 中每次输入代码了。


3)安装 MASM32

将压缩包里面的 MASM 文件夹里面的东西放到一个文件夹,路径 尽量为 英文,其他路径也可以,但是路径不要有中文和空格。 
我的电脑中路径:( D:\huibian\masm )

现在,打开 dosbox,输入 dir 。看看有没有 DEBUG,MASM 等文件。如果有的话就说明成功了,可以开始写汇编了。

安装结束后,可直接利用 masm32v11r 中的 gedit.exe 程序编写、编译 和 链接 asm 汇编程序。

3. 编辑和调试程序

3.1. 编辑 源程序。

有 两种方法 编辑 汇编源程序:

新建 文本文件,修改 文件名 和 文件扩展名 为 test.asm,将 test.asm 放到 D:\huibian\debug 文件夹。
也可以运行 DOSBOX,在命令符 C:\DEBUG> 下输入命令:edit test.asm,启动 EDIT.EXE 进入代码编辑状态,并输入如下样例程序:
也可以使用 edit 命令直接编辑。使用 edit 命令进去后光标会消失,此时调用任务管理器 alt+ctrl+del 即可释放光标。

如果你觉得窗口太小,字体太小,你可以按 alt+enter 切换到全屏模式
同时在配置文件的第26行有一行字符 “fullresolution=original”,这是用来调节DOS窗口全屏下的分辨率的,默认original的值是640×480(中间是小写x),我个人的电脑将 original 改为 800×600 就比较舒服

;完整段的 Hello World 程序
DATAS SEGMENT
STRING DB 'Hello World!',13,10,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH INT 21H
CODES ENDS
END START

3.2. 汇编

打开 dosbox,输入命令:masm,然后输入汇编源文件名,其他都默认即可。

命令执行完后,会生成目标文件文件名 .OBJ(生成过程中可以修改目标文件名,直接回车可保持默认目标文件名)。

 注意:此时可能生成三个文件:*.obj、*.lst和*.crf文件( Windows10 x64系统只会生成*.obj文件 )。其中,列表文件*.lst和交叉引用文件非必选,前者是汇编语言汇编的机器语言与汇编语言对照表,可用于调试;后者给出了用户定义的所有符号和对每个符号定义、引用的行号。

3.3. 连接

先输入link,再输入文件名,之后一直回车。

LINK 文件名.OBJ,链接生成可执行文件文件名.EXE。

注意:由于在上述代码中未定义堆栈段,故在链接时会提示:LINK : warning L4021: no stack segment,因不会影响执行文件的生成,故暂时忽略。

 另外,此时可能生成两个文件:*.exe和*.map文件(Windows10 x64系统可能只会生成*.exe文件)。其中,地址映射文件*.map给出内存地址分配的有关信息。

3.4. 运行

直接运行生成的 exe 程序

3.5. 调试

汇编语言之 Debug 教程篇:https://blog.csdn.net/qq_36215315/article/details/79893476

输入命令:debug 文件名.EXE,在 DEBUG 的命令提示符 ‘-‘ 出现后开始调试,

注意:是针对 可执行程序。debug 文件名.exe。进入调试模式,在短横线后输入命令。

网上可查到命令集。以下是部分调试命令及截图:

R:查看程序运行前的寄存器组初始值;
U:查看程序反汇编代码。从反汇编代码中可看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示。
T:单步调试;
D:观察内存变化(D后不带地址或范围,默认显示上一个D命令之后的80字节内容);
G 地址:程序从当前位置直接运行到指定地址处停下。
E 地址:修改内存中的内容,如:E DS:0100,输入空格可逐个字节修改,回车停止修改。

例如,g:运行程序。q:退出调试模式。

4. 其他工具

  1. emu8086。直接编译、运行、调试,不需要dosbox。
  2. masm for windows,友好的文本编辑器,但是运行和调试仍会调出dosbox。

链接:https://pan.baidu.com/s/16DxS5Yjizc-mve_5oUShBg 密码:3z3e

原文地址

SecureCRT通过密钥登录[转]

说明:
一般的密码方式登录容易被密码暴力破解。所以一般我们会将 SSH 的端口设置为默认22以外的端口,或者禁用root账户登录。其实可以通过密钥登录这种方式来更好地保证安全。

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。

实现:
1. 制作密钥对
首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:

[root@host ~]$ ssh-keygen  <== 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。

现在,在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。

2. 在服务器上安装公钥
键入以下命令,在服务器上安装公钥:

[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh

3. 设置 SSH,打开密钥登录功能
编辑 /etc/ssh/sshd_config 文件,进行如下设置:

RSAAuthentication yes
PubkeyAuthentication yes

另外,请留意 root 用户能否通过 SSH 登录,默认为yes:
PermitRootLogin yes

当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。这里我们先不禁用,先允许密码登陆
PasswordAuthentication yes

最后,重启 SSH 服务:
[root@host .ssh]$ service sshd restart

4. 将私钥下载到客户端,如这里的SecureCRT
输入Hostname,Username,选择认证方式为PublicKey公钥认证,选择刚刚下载下来的id_rsa私钥文件即可!

配置SSH隧道访问Ubuntu服务器上的MongoDB[转]

为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身)。但是这样就会在开发的过程查看数据时带来麻烦,必须去服务器端或调用部署在服务器的API接口才能很好地可视化地查询数据。为了能在客户端也能使用可视化工具,可以建立一条SSH隧道,直接在客户端访问远程服务器的数据库。

本文例子基于以下开发环境:

服务器端:Ubuntu 16.04 x86_64,MongoDB 3.4.6

客户端:Windows10 x86_64,Robomongo 1.0.0-RC1,PuTTY或XShell

=========================================================================

有两种思路可以建立SSH隧道以实现客户端Robomongo访问服务器MongoDB,一是使用PuTTY或XShell连接服务器时建立隧道,将服务器的MongoDB监听端口映射到客户端的指定端口,这样在客户端使用Robomongo连接本地的指定端口即可访问到服务器的MongoDB端口,缺点是连接数据库前需要保持PuTTY或者XShell处于与数据库的连接状态;二是使用Robomongo自带的建立SSH隧道方式,只需要在Robomongo新建连接,输入建立SSH会话所需的用户名密码或者密钥,相当于使用Robomongo登录到服务器,然后在服务器访问本地的MongoDB端口即可,优势在于不需要单独建立SSH连接(没错这种方法才是推荐使用的,但是第一种就可以不局限于Robomongo的连接)。

=========================================================================

注意:因为SSH隧道是基于TCP Forward建立的,因此,在sshd配置文件里一定要允许TCPForwarding,我开始配置sshd的时候将这个禁用了,所以爬了好久才爬出这个坑。

$ sudo vim /etc/ssh/sshd_config

修改如下字段:

AllowTCPForwarding yes

 

重启sshd

$ sudo systemctl restart sshd

 

 

另外,要把MongoDB的配置文件进行修改,使其仅能通过本地访问:

$ sudo vim /etc/mongod.conf

修改如下字段:

net:

port: 27017

bindIP: 127.0.0.1

 

=========================================================================

一、使用PuTTY或XShell建立客户端与服务器的SSH隧道

PuTTY: 设置好登录信息(包括服务器IP端口用户密码密钥等)后,在左侧栏找到Connection/SSH/Tunnels,Add new forwarded port下,Source Port 填写需要映射到客户端的端口号,Destination填写服务器的主机和端口号(服务器的主机当然是localhost了)下面选Local和Auto即可,然后点击Add,保存以便下次登录方便,点击Open即可建立SSH隧道连接。

然后,打开Robomongo,新建连接到localhost:27018即可连接到服务器的MongoDB了。

或者说,可以通过监听本地的27018端口即可监听到服务器的27017端口。

类似地,使用XShell时,填写好登录主机端口用户名密码密钥等信息后,在左侧栏找到SSH/隧道,添加TCP/IP转移规则类型为Local, 源主机即使客户端的主机及侦听端口,目标则是服务器的主机及端口,确定后连接,即可建立SSH隧道。

=========================================================================

二、使用Robomongo自带的SSH隧道

打开Robomongo,在连接设置里的SSH选项卡中启用SSH tunnel并设置登录SSH服务器的信息,回到Connection选项卡,填入主机(localhost)与服务器上MongoDB对应的端口。保存连接即可。

原文地址:https://www.cnblogs.com/gyjerry/p/7291098.html

C#中virtual与abstract的区别

C#的virtual & abstract经常让人混淆,这两个限定词都是为了让子类进行重新定义,覆盖父类的定义。但是用法上差别很大。

a)     virtual修饰的方法必须有方法实现(哪怕只有一对大括号),abstract修饰的方法不能有实现。

b)    virtual可以被子类重写,abstract必须被子类重写

c)     如果类中的某一函数被abstact修饰,则类名也必须用abstact修饰

d)    Abstract修饰的类不能被创建实例。

e)     C#中如果准备在子类重写父类的方法,则该方法在父类中必须用virtual修饰,在子类中必须用overide修饰,避免了程序员在子类中不小心重写了父类父类方法。