「技巧」Chrome、Edge 默认下载器也能多线程下载?隐藏黑科技了解一下!

原文:https://zhuanlan.zhihu.com/p/93176490

注意:任何基于 Chromium 内核的浏览器(国内套壳、Edge等)都支持该功能!

大家在使用 Chrome、Edge 浏览器的时候,下载一些小文件往往都会直接用默认下载器,但是下载大文件的时候,一般都会搭配其他 专业多线程下载工具 使用,但是嫌麻烦…

最近我发现 Chrome、Edge 浏览器有个多线程下载选项,默认是关闭的,我试了下发现挺好用。

Chrome、Edge 浏览器这个多线程下载虽然不如专业下载工具,但也够用了!

速度对比

多线程下载 开启前
多线程下载 开启后

一键开启

  • Chrome 浏览器,地址栏输入并回车:chrome://flags/#enable-parallel-downloading
  • Edge 新版浏览器,地址栏输入并回车:edge://flags/#enable-parallel-downloading

就会看到如下图所示,将默认的 Default 改为 Enabled 即可!

然后重启 Chrome 浏览器再去下载个文件试试速度吧!

Enabled = 开启

为什么下载速度没有翻倍?

两种可能性:

  • 该文件不允许多线程下载!

例如,网站服务器限制了同一时间一个 IP 只能建立 1 个下载连接。

  • 该文件没有显示文件总大小!

部分网站下载文件时,不会显示文件总大小,这样的话就没办法多线程下载了(其他任何多线程下载工具都不行),没有文件总大小,就没办法等份分割文件进行并行下载。


多线程下载是什么?

一些人的可能并不清楚 多线程下载 是什么,我简单解释下。

目前的 专业下载工具(HTTP下载) 之所以下载速度更快,就是因为使用了 多线程下载 技术。

目前的 BT 软件也都支持 HTTP 多线程下载(因为 BT 下载上传也是需要文件分片)。

这个多线程下载技术很容易理解,那就是将下载的文件分割成多份。

假设下载一个 1GB 的文件,会被分割为 8 个 128MB 的文件块(8线程为例),然后与服务器建立 8 个连接,同时下载这 8 个分割后的文件块,如果单线程时最多 1MB/s 下载速度,那么现在理论上你的下载速度就从 1MB/s 提高到了 8MB/s。

这 8 个文件块都下载完成后,就会开始合并文件,这也是为什么下载完成后总会停顿一会儿才会提示下载完成。

.bashrc不起作用与bash初始化文件执行顺序

原文:https://finisky.github.io/2020/03/29/bashstartupfiles/

.bashrc不起作用

按习惯在HOME中添加了.bashrc文件,定义一些alias和PS1,结果发现putty登录之后并未生效,还须手动source .bashrc,在~/目录增加.bash_profile或.profile解决:

 ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

但问题的根源在于.bash_profile .bashrc .bash_login .profile几个文件的执行顺序。

.bash_profile .bashrc .bash_login .profile执行顺序

bash startup文件执行顺序

man是个好东西,man bash:

When bash is invoked as an interactive login shell, or as a non-interactive shell with the –login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The –noprofile option may be used when the shell is started to inhibit this behavior.

可见这些文件的执行顺序如下:

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

但同时需要注意前提条件是bash是interactive login shell,那什么是interactive shell,什么是login shell?

interactive shell和login shell

A login shell is one whose first character of argument zero is a -, or one started with the –login option.

An interactive shell is one started without non-option arguments (unless -s is specified) and without the -c option whose standard input and error are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.

上面的定义虽然字字都能看懂,但按字面理解起来比较困难。通俗地来说,interactive shell就是需要人机交互的,比如执行一个脚本就不需要人机交互。login shell就是是否需要登录,比如本地再开一个terminal就不需要再次登录。

参考如下实例对二者排列组合: # Differentiate Interactive login and non-interactive non-login shell

  • interactive login shell: 远程登录,如ssh
  • interactive non-login shell: 本地起一个bash
  • non-interactive non-login shell: 运行脚本
  • non-interactive login shell: 少见

可以用如下命令测试当前环境是什么样的bash:

~$: echo $-; shopt login_shell
himBHs
login_shell     on

第一行中如果含有字母i则是iteractive shell;第二行显而易见。上述执行结果是ssh,可见ssh是iteractive login shell。

 

.bashrc又在什么时候被调用?

When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist.

好了,因为putty通过ssh登录,因此它是iteractive login shell,所以不会调用.bashrc,因此开头增加.bash_profile或.profile文件的目的就是调用.bashrc。

Tips: Linux中有许多不同版本的shell,如sh、csh、tcsh、zsh等。它们之间有一定的继承和渊源,有兴趣可以了解一下。只不过bash在当前的发行版中最为常见。

virtualbox 6.1安装windows xp

系统安装

1.安装系统;

2.重启->F8进入安全模式;

3.安装virtualbox guest additions驱动

4.正常启动至系统。

4k设置

在虚拟机参数设置中

displayer TAB

Scal Fact设置为200%

 

解决杂音问题

将音频输出改为alsa