# 特别篇：Linux 图形与命令行客户端

## 同步客户端

### 安装
参考[官方文档](https://help.seafile.com/syncing_client/install_linux_client/)安装Linux同步客户端，我们的镜像站提供了客户端的[本地镜像](https://mirrors.nju.edu.cn/seafile/)。

- 同步客户端命令行界面：seaf-cli（[Linux命令行客户端手册](https://help.seafile.com/syncing_client/linux-cli/)）
- 同步客户端图形化界面：seafile-applet

### 命令行使用

1. 创建客户端本地数据目录（目录名可更改）
   ```sh
   mkdir ~/Seafile
   ```
2. 初始化客户端并指定本地数据目录（上一步创建的目录）
   ```sh
   seaf-cli init -d ~/Seafile
   ```
3. 启动客户端
   ```sh
   seaf-cli start
   ```
4. 列出云盘资料库ID（`<username>`替换为账号）
   ```sh
   seaf-cli list-remote -s https://box.nju.edu.cn -u <username>
   ```
5. 将本地目录与云盘资料库同步（`<library-id>`替换为上一步列出的某个资料库ID，`<folder>`替换为本地目录）
   ```sh
   seaf-cli sync -s https://box.nju.edu.cn -u <username> -l <library-id> -d <folder>
   ```
	将云盘资料库下载到本地目录
   ```sh
   seaf-cli download -s https://box.nju.edu.cn -u <username> -l <library-id> -d <folder>
   ```
6. 查看当前同步状态
   ```sh
   seaf-cli status
   ```
7. 解除本地目录同步
   ```sh
   seaf-cli desync -d <folder>
   ```
8. 停止客户端
   ```sh
   seaf-cli stop
   ```
   
## 挂载盘客户端

### 安装

参考[官方文档](https://help.seafile.com/drive_client/drive_client_for_linux/)安装Linux挂载盘客户端，我们的镜像站提供了客户端的[本地镜像](https://mirrors.nju.edu.cn/seafile/)。

- 挂载盘客户端命令行界面：seadrive（[Linux命令行挂载盘手册](https://help.seafile.com/drive_client/drive_client_for_linux/#running-seadrive-without-gui)）
- 挂载盘客户端图形化界面：seadrive-gui

### 命令行使用

1. 获取Token（`<username>`替换为账号，`<password>`替换为密码）
   ```sh
   curl -d 'username=<username>' -d 'password=<password>' https://box.nju.edu.cn/api2/auth-token/
   ```

2. 创建配置文件`~/seadrive.conf`，`<username>`替换为账号，`<token>`替换为上一步的返回值
   ```
   [account]
   server = https://box.nju.edu.cn
   username = <username>
   token = <token>
   is_pro = true
   [general]
   client_name = mypc
   [cache]
   size_limit = 10GB
   clean_cache_interval = 10
   ```
3. 启动挂载盘，命令在前台运行，新开一个窗口进行其它操作
   ```sh
   seadrive -c ~/seadrive.conf -f -d ~/.seadrive/data -l ~/.seadrive/data/logs/seadrive.log ~/SeaDrive
   ```
4. 如果报错 `Transport endpoint is not connected` ，执行：`fusermount -u ~/SeaDrive`
5. `~/SeaDrive` 目录就是云盘挂载在本地的目录，可以直接读写访问