Red Alert 2 on Win10

0. 背景

昨天女友跟我说很久没玩红警了很想玩一玩,这或许是她玩过的为数不多的电脑游戏之一吧,不过想玩归想玩,没有带上自己的笔记本,也不能用老爸的电脑,网吧环境不好也不能去网吧所以其实是没法玩的。虽然觉得遗憾,但又回想起以前最开始我们住一起的时候也是千方百计才玩到红警,这款有将近二十年历史的古董游戏在现在的电脑上跑起来并不是那么容易,为了防止以后换电脑搞忘记,我在这里把以前尝试的方法记录下来。

1. 在 win10 中运行红警2

我们的游戏是从朋友那里拷贝过来的,据说原来是从红警之家里下载,版本号1.001。回想一下这里安装也踩过坑,由于拷贝到的是一个自解压文件,我习惯性地用解压程序来解压,会造成自解压文件释放完毕后的安装脚本不执行,如果是这样需要手动运行里面的 SetupReg.exe 完成注册表修改,现在想来毕竟是盗版游戏这种安装 key 的方式也常见应该放行才对,所以直接执行自解压可以免去这步手动操作。

这个时候已经可以打开游戏,但是进入后会发现分辨率很糟糕,不能满足我们的需求,于是查找资料以后发现有人整理过一个用来恢复正常分辨率的补丁,按照 README.md 的提示即可:

补丁使用方法:

1.本补丁在windows 8和windows 8.1中也可以用,不仅仅局限于windows 10.
2.系统的缩放必须是:100%。设置方法:①点击开始按钮②进入设置功能③选择系统选项④选择显示选项⑤,在缩放与布局中找到更改文本、应用等项目的大小,将其选择为100%,然后注销重启你的电脑。
3.现在打开你的游戏目录,如果你之前改动了文件或者其他,最好可以重新下载。
4.复制补丁中的所有文件到你的游戏目录,他可能会提示被覆盖,请选择
5.如果你使用的是origin客户端,在你下载之后它会为你自动设置Ra2.exeRA2MD.exeYURI.exe兼容性选项,请在文件属性兼容性中取消它们的任何兼容性选项。
6.如果你的分辨率不是1920*1080,请在ra2.inira2md.ini中更改。

7.现在打开你的游戏,去享受它吧。

……

https://github.com/873578156/Command-and-Conquer-Red-Alert-II-win10-patch/blob/master/README.md

需要格外留意的是2、5、6,在高分辨率的小屏幕上 系统缩放 可能会被经销商改成120%,而就算没有使用 origin 客户端玩正版红警,在红警之家下载的自解压安装程序也会自作聪明地修改 Ra2.exe, RA2MD.exe 以及 YURI.exe 的兼容性设置,需要取消兼容性选项(而女友的电脑后来被我装成 win7 的系统,这里取消选择反而不能用)。补丁装上之后再打开游戏便可大部分以正常分辨率显示,除了某些界面,像开房间之后的地图缩略图会有变形。

2. 联机玩红警2

经过上一步之后其实已经可以在局域网里联机游戏了,但是我们玩了一阵之后也想跟在广州的朋友一起玩,于是便查找能互联网联机的方法。现在回想找到并尝试过的有3种方法。

2.1 浩方平台联机

最开始想到这种方式,跟朋友们整了一晚上就打成了一局,果断纷纷卸载,浩方的缺点显露无疑:玩家太多无法自主控制房间成员,服务器连接质量不好,老是断线无法重连等等。关键是广告还多,注册还贼麻烦,要先经过重重障碍进入平台房间再进游戏房间,太复杂了。

2.2 pvpgn-server

这种方式其实是我最想推广的,这是一个可以利用红警2自带的 Westwood Online 协议进行广域网联机对战的服务端,需要部署在有公网 ip 的服务器上,正好我手里有一个广州地区的阿里云 ecs 便兴冲冲部署了上去。

阿里云 ecs 运行的是 linux ,于是找到安装指引:

Installation on Linux (Debian 8/9)
1) Install required dependencies
sudo apt-get -y install build-essential clang libc++-dev git cmake zlib1g-dev liblua5.1-0-dev libmysql++-dev
2) Download the latest source code and unpack archive
wget https://github.com/pvpgn/pvpgn-server/archive/master.tar.gz
tar xf master.tar.gz
3) Switch to the directory with source and create a new directory “build”
cd pvpgn-server-master
mkdir build
cd build
4) Configure and compile
cmake -D WITH_MYSQL=true -D WITH_LUA=true ../
make && make install
5) Run
/usr/local/sbin/bnetd

https://pvpgn.pro/pvpgn_installation.html

其实按照这个向导所说,本来不用配置就能直接开始运行,不过这里还是有坑:阿里云 ecs 网卡上绑定的不是一个公网 ip,而是一个内网地址,是由分配到的公网地址转发的。找了很久才发现对于这种情况需要额外配置 address_translation.conf.

Hosting on LAN or VPS with private IP address
Some VPS providers do not assign your server a direct public IP. If that is the case or you host at home behind NAT you need to setup the route translation in address_translation.conf. The public address is pushed as the route server address to game clients when seeking games. Failure to push the correct address to game clients results in players not being able to match and join games (long game search and error).

If your network interface is directly bound to public IP, PvPGN can figure it out on it’s own and this step is not necessary.

https://github.com/pvpgn/pvpgn-server/blob/master/README.md#hosting-on-lan-or-vps-with-private-ip-address

在 address_translation.conf 这个文件最末尾添加如下一行即可(根据实际地址调整,其中 192.168.1.4 是网卡绑定的地址,123.123.123.123 是公网地址):

192.168.1.4:4005 123.123.123.123:4005 192.168.1.0/24 ANY

如此一来服务端便可以开始运行,为了保证稳定性我多做了一步用 supervisorctl 来管理 bnet 进程,这需要 bnet 以非 daemonize 方式运行,用 -f 参数即可。

接下来是配置本地,将 Westwood Online 的域名解析到阿里云,最简单的方式是直接修改 hosts 文件,相对快捷定位到 hosts 文件的方式是:Windows键+r > drivers > etc > hosts,可以用记事本打开在文件末添加如下几行(123.123.123.123 替换为阿里云公网地址):

123.123.123.123 irc.westwood.com
123.123.123.123 gameres.westwood.com
123.123.123.123 servserv.westwood.com
123.123.123.123 apireg.westwood.com
123.123.123.123 battleclans.westwood.com
123.123.123.123 westwood.ea.com
123.123.123.123 games2.westwood.com

(在这里由于有两台电脑要改我觉得比较麻烦,便直接在路由器里改 dns 效果也一样)

至此之后可以打开尤里的复仇,在游戏里直接选择 網際網絡 便可以登陆 Westwood Online 开始游戏了。

然而发现有个致命的缺点,就是进入游戏后会发现前面费了好大劲搞的分辨率设置一下就不管用了…跟朋友第二次尝试便这样失败,现在想到可能是 ddraw 的问题,下一次重装的时候试试把补丁里的 ddraw 换成 ts-ddraw 或者 cnc-ddraw

2.3 VPN 联机

最后向现实屈服,选择了这种方式。简单暴力,既然支持局域网游戏那我只要通过 VPN 就可以连到一个虚拟的局域网,想必浩方平台也是类似这种方式,不过自建 VPN 的好处还是很明显,至少稳定性会有保障。关于 VPN 选择,考察了一大圈最终选了 SoftEther VPN,在 Windows 上的图形化操作很强大,与其他 VPN 相比配置很简单,甚至可以生成自定义安装包装完即用,真正的零配置适合分享给朋友用。(注: 后来跟老弟用这种方式玩红警3时候发现比较吃力,不知是不是阿里云只有1兆带宽的问题,然后用的 Hamachi VPN 可以用 p2p 的方式建立 VPN,然而也只是打完就删,卸载的时候也有坑,Hamachi 会修改网卡配置需要自己还原。综上,仅仅是红警2更建议 SoftEther VPN)

再写 SoftEther VPN 搭建过程会有很大篇幅,这里略过,大概就是在阿里云上安装服务端之后新建一个 Hub,创建4个用户(其实一个也就够了)。

在本地电脑上,只需要安装上客户端连上 SoftEther VPN 就可以打开游戏开始局域网联机模式了。由于连上 VPN 之后四台电脑的所有互联网流量都路由到 1mbps 的阿里云上会有点吃不消,好在我们当时四人联机用手机微信开语音,不会碰到拥塞问题。现在想来其实还可以再优化一步, 如果本机主路由不变,指定红警2联机的网卡到虚拟网卡便可以只让游戏流量通过VPN。

要指定红警2联机网卡的话,由于红警2局域网联机采用 ipx 协议,在 win10 上早已没有这个组件,所以需要用到 ipxwrapper(用 udp 协议封装模拟 ipx 协议),这个是临时查到,要是我会再帮好友装红警2的话应该会用到。

总结一下,能玩到红警2确实还是花费了一番功夫的结果,希望能跟女友能早点再来到自由玩红警的日子…还有温故知新也不假,回顾一下能想出更好的解决方案。

使用 pycharm 编辑 pyspider 脚本

0. 前言

最近看文章觉得有必要换一下行文风格,现在趁除草试一下。

经常使用 pyspider 抓一些小网站,看久了自带的网页编辑器实在不友好,还是用本地编辑器会来得更顺手一点。于是开始寻找用 pycharm 当编辑器的方法。

1. pyspider 项目挂载到本地

本地用的是 Windows 系统,虽然资源管理器原生支持添加 WebDAV 文件夹,但是体验很糟糕,这里使用一个更好用的第三方客户端 RaiDrive 来挂载 WebDAV. 在 RaiDrive 中挂载 WebDAV 非常方便,点击「添加」按钮,服务类型选择 NAS 标签页里的 WebDAV,然后输入 pyspider webui 的地址、路径、用户名、密码就可以完成添加,路径对 pyspider 而言是固定的/dav

RaiDrive 挂载 WebDAV

2. pycharm 打开项目

目前为止, pycharm 作为最好用的 python IDE 并不原生支持 WebDAV,所以才有了上面那一步。现在用 pycharm 直接打开上面挂载好的文件夹,立马会感受到熟悉的味道,不过还没完,直接这样操作脚本会带来两个问题。一是脚本无法保存,二是项目文件本身无法保存,都是由于无法直接在挂载到本地的这个文件夹里创建文件造成的。修改文件夹里已有的文件是可以的。

那么有没有可以不新建文件而可以保存脚本和项目文件的方法呢,沿着这个思路去谷歌最终找到了答案。

  • 对保存脚本来说,需要在 pycharm 设置里关闭默认开启的 safe write 选项,关于 safe write 这里摘引一段 pycharm 文档的描述:

Use “safe write” (save changes to a temporary file first)

If this checkbox is selected, a changed file is first saved in a temporary file. If the save operation succeeds, the file being saved is replaced with the saved file. (Technically, the original file is deleted and the temporary file is renamed.)

Also, the ownership of such file changes.

If this checkbox is not selected, the ownership of a file does not change, but all the advantages of safe write will be lost.

https://www.jetbrains.com/help/pycharm/system-settings.html#Synchronization

看来 safe write 还是有用处的,作为默认勾选可以最大限度防止意外丢数据,合情合理。但是在这里用 WebDAV 就不得不关闭了,挂载到本地的文件夹不能创建这个临时文件,其实 safe write 的优势在 WebDAV 这里也发挥不出来,毕竟更新文件操作对 pyspider 来说是更新数据库会比文件操作更可靠,只是要注意 safe write 是 pycharm 里的全局设置,这里改了对其他非 pyspider 项目一样生效。

权衡结束之后还是要关闭,禁用 safe write 步骤如下:Settings > Appearance and Behavior > System Settings > Synchronization

禁用 safe write
  • 对保存项目文件来说,项目的 meta 信息默认保存在项目所在目录下,通俗讲就是打开的项目文件夹下会生成一个 .idea 文件夹用来存放这个项目在 pycharm 里的配置等等。由于挂载后的目录不可创建文件,因此需要把 .idea 放在其他位置。

不过 pycharm 并没有提供迁移项目配置信息的选项,因此查到一个 workaround 的方法:在 pycharm 中新建一个空项目(Pure Python),设定好项目路径确定即可,然后依次找到 Settings > Project > Project Structure,移除已有的 content root,点击 Add Content Root,定位到上一步挂载的 WebDAV 目录(RaiDrive 映射的盘符)完成添加。

移除已有的 content root

至此,便可以开始使用 pycharm 编辑 pyspider 脚本了。

Python 时间日期

感觉最近很常用到 Python 的时间与日期相关模块,之前也有碰到就去查,不过最近既然比较频繁还是作个备忘偷个懒。
表示时间的两种方式:

  • 时间戳(timestamp),即相对于 1970.1.1 00:00:00 以秒计算的偏移量,是唯一的
  • 时间元组(struct_time),共计 9 个元素,同一时间戳的时间元组会因时区不同而不同

datetime 模块常用方法

主要用到这两个类:

  • datetime.datetime: 年月日构成的日期加上时分秒微秒构成了日期与时间
  • datetime.timedelta: 表示时间间隔对象,可以由两个时间点对象相减得到
    (比如 datetime 对象),访问该对象相应属性可以得到间隔的天数、分钟
    数等等

datetime.datetime 类

datetime.datetime.strptime(),从一个日期时间字符串生成 datetime.datetime 对象,比如

In [1]: import datetime
In [2]: d_str = "2016-01-01 12:34:56"
In [3]: datetime.datetime.strptime(d_str, '%Y-%m-%d %H:%M:%S')
Out[3]: datetime.datetime(2016, 1, 1, 12, 34, 56)

datetime.datetime.strftime(), 跟上一个类方法功能相反,是从 datetime.datetime 对象生成日期时间字符串
datetime.datetime.fromtimestamp(),从一个时间戳生成 datetime.datetime 对象,


# time.time() 用于得到当前时间的时间戳

In [4]: import time
In [5]: datetime.datetime.fromtimestamp(time.time())
Out[5]: datetime.datetime(2016, 2, 21, 10, 50, 37, 481266)
# 此时跟 datetime.datetime.now()等效
In [6]: datetime.datetime.now()
Out[6]: datetime.datetime(2016, 2, 21, 10, 53, 2, 687602)

datetime.timedelta 类

主要用于得到间隔时间的相关值

from datetime import datetime
publish_time = "2016-01-01 12:34:56"
delta = datetime.now() - datetime.strptime(publish_time, '%Y-%m-%d %H:%M:%S')
delta_day = delta.days

我的谷歌翻译不可能这么弱

平时上外文网站最依赖的就是 Google Translate,碰到不懂的单词或句子都是 Ctrl+T 新开个 标签页紧接着敲入 tra 按下回车就好,Chrome 根据历史记录自动就补全了 URL.

然而今天却有异常,起因是默认的翻译语言总是由 Detect language 到 English,前几次忍了也就算了没注意,但是慢慢的却发现…Google 今天居然笨到连个语言翻译习惯都记不住,而且还有的翻译成中文就一行字连个多义词都没有!

很快又觉察出其他不对,网页最上方居然多出了蓝色带下划线的超链接文字,没错是带下划线的蓝色,是比百度还难看的蓝色的置顶超链接…再看地址栏居然没有绿色小锁标志,看到 url 立刻真相大白:http://translate.google.cn,居然还不是 ssl…Orz

好吧既然如此大不了回到正轨,我手动在地址栏输入 translate.google.com,然而…神奇的事情出现了,居然眼睁睁的看着 .com 被重定向到 .cn. url 劫持就这么轻易出现了。

罢了,反正我是看到没有绿色小锁就不爽,我的 Chrome 不能就这样记住这个 cn 域名,一字一键的敲入完整的 https 连接后打开新标签页输入 tra 还是会优先跳出 http://translate.google.cn,那接着清除了这条历史 URL 就好了,以前没这种需求于是求助 google 得之.

具体这样操作,为免遗忘就记录一下:

  • 键入 tra 不用敲完就会出现补全
  • 按方向键把移动到要删除的那条 URL 使之高亮
  • 最后按下组合键 Shift+Del 便可从中删之

接下来自动补全出来的终于又能看到舒服的绿色小锁了.

无用功

最近工作压力有点大,不开心,记一点笔记。

有个朋友经常问如何在 Windows 下安装 Nginx ,查了一下,还是不难。

首先去 Nginx 官网下载最新版 Nginx(当前版本是1.9.6) 然后解压,为方便起见最好放在磁盘根目录下比如 C:\.

接着打开 CMD 或者是 Powershell,执行如下命令:

cd c:\nginx-1.9.6
start nginx

然后可以用浏览器打开localhost,显示 “Welcome to Nginx!” 时就说明运行成功了.
若运行失败,可以进 logs 目录找到 Errors.log 查看问题所在.
网站配置文件那些也跟 Linux 下差不多,放在 conf 目录下,注意一下写的目录路径就可以.

上个月因为受不了放在卧室书桌的笔电 WiFi 渣信号,去淘宝买了块 USB 无线网卡。为了得到信号保证,选了大功率的 RTL8187 芯片,结果在 ubuntu 下驱动起来不如人意,基本上是10分钟一断。后来东搞西搞得到修复(算是修复吧).

想了一下,可能是这两个操作使然:

  • 给网卡手动指定一个静态IP(看起来并没有什么关系)
  • 限制 Interface 的 Speed

具体记录下.
设置静态IP:

sudo vim /etc/network/interfaces
# 编辑这个文件,修改对应的wlanX介面部分,比如我的wlan1
iface wlan1 inet static
address 192.168.1.125
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
dns-nameservers 192.168.1.1

限制网卡传输速率:

sudo iwconfig wlan1 rate 36M auto
36M是慢慢试出来的临界值,54M又会频繁断线
这个命令即时生效,重启失效.想开机生效可以添加到开机启动脚本

sudo vim /etc/rc.local
# 编辑这个文件,在 exit 0 这行之前添加一行,如下
/sbin/iwconfig wlan1 rate 36M auto

最近要用远程调用重写程序,需要多看看 Ice。

Grub rescue with dual boot win10

最初安装 win7&xubuntu 双系统将 grub 装在 mbr 上,不爽 7 便换到了 10,安装过程中发现 10 的开机动画跟 8 一样,忍不住想到以前 grub 无论如何也不能引导 8 启动。不知道这次是否又会折腾, unhappy。

不过还是想着先把 grub 恢复到 mbr 试试看,万一 10 跟 8 启动机制不一样呢。

# insert ubuntu livecd,then click 'trial'
sudo su
mount /dev/sda3 /mnt    //临时挂载老系统/boot分区到/mnt(这里我没有分/boot,因此就是/所在分区)
grub-install --root-directory=/mnt /dev/sda //此时弱没有报告错误便是成功
reboot  //重启后会看到熟悉的grub
sudo upgrade-grub   //进入老系统后将grub更新以便识别10
sudo reboot //可以看到10

看到 windows loader recovery mode 其实还是跟 win8 的一模一样,然而回车之后居然神奇般进入 win10 了,惊喜满满。

Win系统一些简单文本处理命令

最近 Win 系统开的较多,想临时用个 linux 又不想切系统,就搜了下 win 下原生支持的文本处理指令.

more spider.py | find /v '' /c
# 这个指令类似於linux下的wc,可用于统计文本行数
# 可运行于cmd.exe
# 其中, /v 匹配与指定字符串不同的行
# /c 仅显示匹配的行数
# /i 忽略大小写

Get-Content spider.py | -TotalCount n
# 类似於linux下的head -n n
# 运行于powershell,若是要直接在cmd中运行,则应为powershell -command "& {Get-Content spider.py -TotalCount n}"

Get-Content spider.py | -Select-Object -Last n
# 类似於linux下的tail -n n,
# 运行环境同上

#暂时用到这些, 届时补充

折騰OpenWrt之記錄

从 JD 上趁着 618 活动搞了台 Netgear WNDR4300 路由器,以为便宜了几十块钱,然而后来搜了搜它以前的价格再对照一看真是想呵呵了,商人真是精。
我常常有这样的想法,买的不是物有所值的东西就想尽可能提高它的价值,当然也跟我最近越来越不嫌折腾的状态有关。于是到手第二天就开始想要刷 OpenWrt (原计划是用一段时间不爽再说,其实原厂固件里已经有了 BT 下载和 USB 共享以及访客网络等功能,够用),接着参考着网上的资料完成了刷机和一些功能配置,毕竟首次接触,耗时大半天。这里温故一下这个过程,顺便也给可能被我安利购买的旁友们做个记录。

我暂时的刷机需求是

  • 所有电影、无损音乐放进换下来的机械硬盘上,通过路由器支持流媒体播放,一方面可以废物利用,节约本子的 SSD 空间,一方面可以让家里的其他设备(Ipad/Android 手机/WP 手机)流畅播放路由里的电影
  • 远程下载,想要晚上看电影的时候,想下什么东西的时候,白天在公司电脑上或者手机上添加一条任务,路由器便开始远程下载,晚上就可以回去看电影啦
  • 智能翻墙,手里拿着 Android 机我其实是无所谓的,本子上墙也挡不了我,不过住一起的朋友是有个 Ipad 并且还没有越狱,于是也来折腾一下(尽管他根本没有翻墙的需求)。在路由器里装个 shadowsocks ,智能分流国内国外线路,连接路由器的设备就可以直接翻墙了
  • 目前就想到这些需求,听说 OpenWrt 的扩展性很强,有了新需求再说

关于 OpenWrt 的介绍,官网有很详尽的百科

刷入固件

WNDR4300 的 Openwrt 固件是官方支持的,因此可以从官网直接下载,

较详尽的步骤:

  • 目前的最新发行版是 Barrier Breaker 14.07,
    系统下载链接为

http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/nand/openwrt-ar71xx-nand-wndr4300-ubi-factory.img

升级包链接为

http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/nand/openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar

  • 进到路由器的管理界面,找到『固件升级』然后上传下载的 .img 文件,再确定,路由器便会自动开始刷机之后会自动重启连接到路由器就已经刷机成功了
  • 接着进入路由器管理界面找到 System/Backup/Flash Firmware/Backup/Restore,在 Restore backup 处选择下载得到的 .tar 文件,并 Upload archive 完成升级

基本设置

  • 刚刚刷入的 OpenWrt 默认是关闭 wifi 的,因此要用网线连接路由器设置。输入用户名 root ,密码为空,进入路由器管理页面,这时会提示创建密码,按照提示即可,并勾上远程 ssh 连接
  • 然后进到 Network/Interface ,设置 wan 口,点击 wan 对应的 Edit ,拨号上网的话 Protocol 处选择 PPPoE ,再输入宽带帐号跟密码再应用即可。等待拨号完成便可上网了
  • 接着需要开启 wifi ,进到 Network/Wifi, 对两个无线进行设置,加密选择 AES , HT mode 选择 40MHz ,并且勾上 Forece 40MHz mode , Country Code 可以选择 TW (貌似大家都这么选的…),最后再两个频段 enable 即可,若 5G 频段无效则重启路由器就好

进阶设置

现在是时候给路由器添加功能了

流媒体共享

我选择的方案是 Samba + Minidlna
首先为 OpenWrt 添加 USB 支持

  • 先准备一个空硬盘,格式化为 ext4 文件系统
mkfs -t ext4 /dev/(空硬盘分区号)
  • 再为 OpenWrt 添加 USB 支持,资料可参考官方Wiki,简单来说就是 ssh 连接到路由器后执行
opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4

这时 USB 插上硬盘应该就能在/dev目录下看到sda1了,便可创建挂载点挂载硬盘

mkdir -p /mnt/share
mount -t ext4 /dev/sda1 /mnt/share

现在执行df -h应该可以看到新挂载的硬盘了

(不知不觉发现已经很久没继续写下去了)

当初是直接照着 wiki 敲的,直接贴地址了

安装 Samba

设置 Samba

也有图形界面设置 Samba

还有图形设置相关 youtube 视频,顺带也含有 minidlna

关于 minidlna 我是按照最后的那个 youtube 视频设置的,暂不赘述

远程下载

可供选择的方案有迅雷远程下载,和 aria2c(Linux 下不错的高速下载工具,支持 BT/磁力下载)

这里我选择的是迅雷远程下载,有个迅雷会员帐号这个选择还不错

当初我参照的设置

简单说就是用下载迅雷出的客户端,目前使用的是mips_be_mips32_linux2_6_36_uClibc0_9_33_eabio32_140507.rar,若是将来上面的链接失效应该是可以搜到迅雷官网的教程的。

不过这个貌似不能自动更新了,因此去论坛下载了一个

这个远程下载是用在 linux 系统上的,因此完全可以当作一个 linux 上的迅雷下载客户端。

实践了一下(Linux Mint),确实是可以,不过中间需要挂载个目录到/media,以便用作离线下载目录.

如果是用 aria2c ,参考这篇设置,这是一个可以在 linux 上替代迅雷的软件,不过在路由器上使用的话,需要在内网远程下载(因此可以搞个 VPS 上 VPN 再采用此方案)

智能翻墙

好吧最近我已经取消这个功能了,只能说广电网伤不起。

当初参考的有这个

命令备忘之搜索

Linux 下有多种文件查找方式,这里仅记录一下两个工具: locate & find.

locate:

这应该是最简单的查找方式。

locate index.html
# 用法如上,输出是一个命名为index.html文件的位置列表,可以使用通配符
# 有一些可选参数如下
# -q: 忽略错误信息
# -n m: 显示前m个结果
# -i: 忽略大小写
# -l 0: 快速搜索

find:

这是查找文件最好的方式之一。

find / -name 'crawlportal.py' 2>/dev/null
find / -name 'crawlportal.py' 2>errors.txt
# 其中,/ 搜寻的起始目录
# -name 搜寻的文件属性为文件名
# 2 指定错误输出流
# /dev/null 往这个设备里发送的信息都会被丢弃,这里的目的就是为了不显示错误信息

find / -mount -name 'win*' -size -100k
# 其中,-mount 忽略已挂载的文件系统
# -size -100k 搜寻文件的大小在100k一下

find / -name '*blahblah*' -amin -10
find / -name '*[0-9]*' -mmin -10
# 分别是查找最近10分钟访问和最近10分钟修改过的文件

find /home/yw ! -name '*[0-9]*'
# 查找文件名中不包含数字的文件

#突然发现find参数好复杂,暂于此,用到再补充.

#Continued:
-type 表示指定一个文件类型,d代表目录,f代表普通文件