Ubuntu下使clash for windows更加易用
2021-09-25 11:16:11

基本运行操作

clash for windows: Github Release

下载完成后,解压,并在当前目录下运行 ./cfw

但是这样每次启动电脑都需要重新进行这一步骤,稍微有点麻烦,而且在启动后会一直显示一个终端窗口。

Screen后台操作

语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

参数说明:

-A  将所有的视窗都调整为目前终端机的大小。

-d<作业名称>  将指定的screen作业离线。

-h<行数>  指定视窗的缓冲区行数。

-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。

-r<作业名称>  恢复离线的screen作业。

-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

-s  指定建立新视窗时,所要执行的shell。

-S<作业名称>  指定screen作业的名称。

-v  显示版本信息。

-x  恢复之前离线的screen作业。

-ls或–list  显示目前所有的screen作业。

-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

简单示范:

1
screen -S screenname

就会创建一个名为screenname的screen,此时可以关闭终端,或使用 Ctrl+d 挂载到后台。若输入exit, 就会直接终止screen。

`screen -ls`

列出当前活跃的screen

注:若已创建的screen中没有正在运行的程序,就会在挂起后自动释放。


“6160, 5945”可视为与“test, clash”同等效果。

Attached 表示已经在另一个终端窗口中打开,

Detached表示未被打开

实际操作

现在开始写调起screen生成新的screen并在后台运行的脚本。

1
2
3
4
5
6
screen_name="clash"
screen -dmS $screen_name

cmd="sh /home/seele/Documents/clash.sh"
screen -X -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\r'

“\r”是为了输入回车,否则screen只会输入上面一句并不会执行,若合并到一句只会把上一句加上换行,但并不运行。

clash.sh是启动clash的脚本,如下:

1
cd /home/seele/Documents/'Clash for Windows-0.18.1-x64-linux'/ && ./cfw  

最后,通过设置alias或者开机运行 screen.sh脚本就可以更便携的启动clash。

注意:

此方法在需要多次重启clash的情景下并不能算是简易操作,因为screen中的clash screen并不能自动关闭。最终Appimage还是这种软件的最佳处置方式,期待官方支持把。