使用SFTP管理文件系统
一、Linux 目录结构

| 目录 | 主要作用 |
|---|---|
/ | 根目录,一切路径的起点 |
/bin | 基础命令(ls、cp、mv),多数系统已软链到 /usr/bin |
/sbin | 系统管理命令(fdisk、reboot) |
/etc | 所有配置文件,如 /etc/nginx/、/etc/ssh/sshd_config |
/home | 普通用户家目录,如 /home/deploy |
/root | root 用户的家目录 |
/var | 经常变化的数据:日志 /var/log、网站 /var/www、缓存 /var/cache |
/usr | 程序与库,/usr/bin 命令、/usr/local 手动安装的软件 |
/opt | 第三方独立软件(如 /opt/google) |
/tmp | 临时文件,重启后可能被清空 |
/dev | 设备文件(/dev/sda、/dev/null) |
/proc | 内核与进程的虚拟文件(/proc/cpuinfo) |
/sys | 硬件与内核参数 |
/mnt、/media | 挂载点 |
/boot | 内核与启动文件 |
/lib | 共享库文件 |
工作里最常打交道的几个位置:
/etc/nginx/nginx.conf ## 配置
/var/log/nginx/access.log ## 日志
/var/www/html ## 网站根目录
/usr/local/bin ## 自己装的命令
/tmp ## 临时放东西
二、路径
绝对路径:以 / 开头,从根目录算起,任何位置执行结果都一样。
/etc/nginx/nginx.conf
/var/log
相对路径:不以 / 开头,相对当前目录。
./deploy.sh ## 当前目录下的 deploy.sh
../conf/app.conf ## 上一级目录下的 conf/app.conf
logs/app.log ## 当前目录下 logs 里的 app.log
特殊写法:
| 写法 | 含义 |
|---|---|
. | 当前目录 |
.. | 上一级目录 |
~ | 当前用户家目录(root 是 /root,普通用户是 /home/xxx) |
~deploy | 指定用户的家目录 |
- | 上一次所在的目录(cd -) |
切换目录:
pwd ## 显示当前完整路径
cd /var/www/html ## 进入指定目录
cd .. ## 上一级
cd ../.. ## 上两级
cd ~ ## 回家目录
cd - ## 回到上一个目录
cd ## 不带参数也是回家目录
cd时按Tab可以补全目录名,路径很长时非常有用;连按两次Tab会列出候选。
三、用 SFTP 管理文件
SFTP 基于 SSH,登录后就能在本地和服务器之间传文件,不用另外装服务。
连接
sftp user@host ## 默认 22 端口
sftp -P 2222 user@host ## 指定端口,注意是大写 -P(ssh 是小写 -p)
连接后进入 sftp> 提示符,命令分两类:远程命令操作服务器,本地命令前面加 l 操作自己的电脑。
常用命令
| 远程(服务器) | 本地(自己的电脑) | 作用 |
|---|---|---|
pwd | lpwd | 显示当前目录 |
ls、ls -l | lls | 列出文件 |
cd /var/www/html | lcd D:/upload | 切换目录 |
mkdir demo | lmkdir demo | 创建目录 |
rmdir demo | — | 删除空目录 |
rm a.txt | — | 删除文件 |
rename a.txt b.txt | — | 重命名 |
get app.log | — | 下载单个文件 |
put index.html | — | 上传单个文件 |
get -r logs | — | 递归下载目录(较新版本支持) |
mget *.log | — | 批量下载 |
mput *.html | — | 批量上传 |
!ls | — | 临时执行本地命令(Windows 本地用 !dir) |
bye / exit | — | 退出 |
示例:上传一个页面
sftp -P 2222 deploy@192.168.1.10
sftp> lcd D:/site
sftp> cd /var/www/html
sftp> put index.html
sftp> ls -l
sftp> bye
示例:下载日志
sftp deploy@192.168.1.10
sftp> lcd D:/logs
sftp> cd /var/log/nginx
sftp> mget *.log
sftp> bye
图形化工具同理:Xftp、WinSCP、FileZilla 连上后左右两栏就是本地和远程,直接拖拽即可。上传完成后如需让服务能读写,记得检查属主和权限(见第 4 篇)。