# BaiduPCS-Go_的部署和使用
BaiduPCS-Go 是一款基于 Go 语言开发的百度网盘客户端,其操作基于命令行来完成。兼容 Windows、Linux 和 Android 系统,可运行在 x86 或 ARM 平台上。
由于是命令行操作,因此可以通过远程 SSH 访问来使用。国内某知名下载工具没有 Linu 版本,所以将 BaiduPCS-Go 部署到家中 Linux 服务器后,再结合 Baidu 的离线下载功能就可以将 Linux 服务器改造成挂机下载利器。集合花生壳或蒲公英等工具就可以进行远程 SSH 链接,通过手机控制服务器下载。
## BaiduPCS-Go 的部署
到 Github 上搜索 BaiduPCS-Go,进入项目后点 Releases,可以找到最新发布版的下载链接,需要区分 x86 还是 ARM 平台,以及你所使用的操作系统。这里以 x86 Linux 为例进行说明。
下载 BaiduPCS-Go-v3.5.6-linux-amd64.zip 后进行解压,找到其中的 BaiduPCS-Go 文件,将其拷贝到 /usr/bin 目录下即可。如果是 Windows 系统,则可以将 BaiduPCS-Go 放到某路径下,然后将该路径添加到系统 PATH 中。
进入命令行,输入 BaiduPCS-Go 回车,如果部署正确,将看到“BaiduPCS-Go >”这样字样的命令行提示符。
## BaiduPCS-Go 的基本使用
BaiduPCS-Go 有两种工作模式:命令行模式和交互模式。如果未带任何参数运行程序,程序将会进入仿 Linux shell 系统用户界面的 cli 交互模式,命令行前端有“BaiduPCS-Go >”这样字样的命令行提示符,在该模式下不需要输入“BaiduPCS-Go”即可直接运行其子命令。后续的操作都将在交互模式下进行。
在命令行中输入 BaiduPCS-Go 进入交互模式,能够看到“BaiduPCS-Go >”提示符,后续的操作都在交互模式下进行。
### 登陆和退出
首先登陆百度账号,输入:
```bash
> login
```
之后按提示输入用户名和密码即可完成登陆。登陆后可进行文件访问,目录查看,下载等操作。完成操作后需要退出账号,命令如下:
```bash
> logout
```
## 目录/文件操作
使用如下命令可列出当前工作目录:
```bash
> pwd
```
显示当前目录下的文件列表命令如下:
```bash
> ls [-asc|-desc|-time|-name|-size]
```
如果希望显示目录树,可使用 tree 命令:
```bash
> tree [dir]
```
使用 cd 命令切换工作目录,如:
```bash
# 进入某目录
> cd
# 返回上一级目录
> cd ..
# 返回到根目录
> cd /
```
使用如下命令可创建目录:
```bash
> mkdir
```
使用如下命令可删除文件/目录:
```bash
> rm
```
使用 cp 命令可拷贝文件/目录:
```bash
cp
```
使用 mv 命令可移动文件/目录:
```bash
mv
```
## 下载文件/目录
使用 download 或简写的 d 命令来下载文件:
```bash
> download [options]
```
可选参数如下:
| Options | Description |
|----------|--------------|
| --test | 测试下载, 此操作不会保存文件到本地 |
| --ow | overwrite, 覆盖已存在的文件 |
| --status | 输出所有线程的工作状态 |
| --save | 将下载的文件直接保存到当前工作目录 |
| --saveto value | 将下载的文件直接保存到指定的目录 |
| -x | 为文件加上执行权限, (windows系统无效) |
| --share | 以分享文件的方式获取下载链接来下载 |
| --locate | 以获取直链的方式来下载 |
| -p value | 指定下载线程数 |
如果没有使用 --save 或 --saveto 指令指定下载目录,这下载内容保存在默认下载目录中,也就是程序所在目录的 download 目录下或系统的 Download 目录下。
还可以使用 locate 命令获取文件的下载直链:
```bash
> locate ...
```
设置下载最大并发量(建议50~500):
```bash
> config set -max_parallel=
```
设置下载缓存(载最大并发量设置为100, 下载缓存为100000,则程序需要100*100000/1024/1024 MB = 9.5367 MB):
```bash
> config set -cache_size=
```
## 上传文件/目录
使用 upload 或简写的 u 来上传文件:
```bash
> upload
```
上传同名文件将会自动覆盖。当上传的文件名和网盘的目录名称相同时,不会覆盖目录。
## 离线下载
离线下载支持http/https/ftp/电驴/磁力链协议。离线下载同时进行的任务数量有限,超出限制的部分将无法添加。使用如下命令可添加离线任务:
```bash
> offlinedl add -path= src1 src2 ...
```
使用如下命令可查询离线任务:
```bash
> offlinedl list
```
以上命令能够获得离线任务的 TaskID,可根据 TaskID 查询任务更详细的信息:
```bash
> offlinedl query taskID1 taskID2 ...
```
使用 offlinedl cancel 可取消离线任务:
```bash
> offlinedl cancel taskID1 taskID2 ...
```
使用 offlinedl delete 可删除离线任务:
```bash
> offlinedl delete taskID1 taskID2 ...
```
### 检查程序更新
使用如下指令可检查系统更新:
```bash
> update
```