【Linux】Share Files

在这里插入图片描述


1 Samba

本小节介绍借助 samba 实现 linux 服务器的文件夹和 window 本地电脑的文件夹共享,参考 linux映射磁盘或者文件夹到windows

1)安装 samba

首先在 Ubuntu 安装好 samba 一套件,具体步骤为

安装 samba:

apt-get install samba

安装 smbclient:

apt-get install smbclient

2)修改配置文件

vim /etc/samba/smb.conf 编辑 smb.conf 文件

在配置文件末尾添加

[share]
	comment = Shared Folder require password
	path = /home/bryant/share/
	browseable = yes
	available = yes
	public = yes
	
	writable = yes
	force user = root
	valid users = bryant, root
	write list = bryant, root
	create mask = 0777
	directory mask = 0777
	force directory mode = 0777
	force create mode = 0777
	guest ok = no

上面配置文件中, path 是要共享的文件夹目录

valid userswrite list 中的 bryant 是自己的服务器用户名

保存后重新启动 samba/etc/init.d/samba restart

3)设置用户和密码

smbpasswd -a bryant 提示输入密码。

这步骤好像可以省略

4)本地设置登录

最后 windows 电脑上,右键“网上邻居”或者“我的电脑”,选择 “映射网络驱动器”

在这里插入图片描述

在文件夹中按如下格式输入

\\服务器ip地址]\smb.conf 配置文件中的新添加的第一行 [] 中的内容

eg,如果服务器的 ip 为 123.456.78.910,则在文件夹中填写如下内容即可

\\123.456.78.910\share

这样就建立起了一个“网络驱动器”,与服务器的 /home/bryant/share/ 文件夹共享,映射成功的“网络驱动器”使用方法和本地磁盘(CDEF盘)一样

2 Linux 通过 SSH 远程 Linux

1)给 Linux 安装 OpenSSH

为了实现 SSH 功能, 你得确定你的 Linux 上有安装了 SSH 服务, 通常可能是没有安装的. 所以我们将要安装一个开源的 SSH 工具, 叫做 OpenSSH, 将你的 Linux 变成一个服务器 (就是像你访问网站一样访问你的 Linux). 在 Linux 上打开你的 Terminal, 然后输入下面这句话安装 openssh-server. sudo 是使用管理员权限的意思, 所以回车后它可能要求你输入你用户密码.
sudo apt-get install openssh-server

2)Linux SSH 去 Linux
ssh [要控制的用户名]@[它的IP地址]
eg ssh ym@xxx.xxx.xx.xx

如果连接服务器映射了端口号,则是 ssh -p [端口号] [要控制的用户名]@[它的IP地址]
eg ssh -p 44020 ym@xxx.xxx.xx.xx

确保你操控和被操控的两台电脑连接上了同一个路由器. 然后在你被操控电脑的 terminal 上输入这个获取被操控电脑的 ip 号码. ifconfig
如果它提示你没有安装 ifconfig, 你就按它的要求安装就好. 输入下面指令就能安装. sudo apt install net-tools

安装好了后,在终端输入ifconfig,找到以 inet 开头的字样, 这就是你在这个路由下的 ip 地址了.

3 Window 通过 SSH 远程 Linux

1)Xshell

连 Ubuntu Server 用 xshell 软件比较方便的,因为图形页面。
链接:https://pan.baidu.com/s/1ue4YGCgQnYao2VCrmN2hQQ
提取码:syqd

下载完成后,新建会话属性,在类别中选中连接
在这里插入图片描述

  • 名称:随便填
  • 主机:就是需要连接的服务器的 ip
  • 端口号:端口映射号

在这里插入图片描述
然后选择类别中的 用户身份验证

  • 用户名:linux 系统中的用户名
  • 密码:用户名密码

填好之后连接成功会出现如下界面,就可以在 windows 上远程控制 Linux 系统了。
在这里插入图片描述
文件传输,用如下箭头所示的地方!
在这里插入图片描述

2)TeamViewer

这个适合连接 Ubuntu 系统(有图形页面的),去官网下载一下就行,在 windows 和 Ubuntu 系统中下相应的版本,然后通过伙伴的 ID密码 连接!同样手机也可以通过这个方法连接到自己的电脑(也有许多 SSH软件可以通过手机连接到自己的电脑,在 app store 搜索 SSH 即可)!
在这里插入图片描述

3 云端运行

在自己的笔记本上(Linux 或者 window系统)下写好的程序运行起来太占内存,影响做其它的事情,想丢去空闲的 Linux(下面简称 Linux2) 系统上运行,怎么破?

1)Linux 写好的代码在 Linux2 上运行(局域网)

eg 如下 python 代码,命名为 1.py

import platform
a = 0
for i in range(9999):
    a += i
print("Finish job, result=%i" % a)
print("This is", platform.system())

现在本地的 Linux 系统上运行,
在终端输入 python 1.py 结果如下

Finish job, result=49985001
This is Linux

再用空闲的 Linux 系统上运行,采用如下形式

ssh 用户名@Linux2的ip python < 要执行的代码在Linux中的路径

或者

ssh -p 端口号 用户名@Linux2的ip python < 要执行的代码在Linux中的路径

具体一点

ssh -p 43000 ym@202.197.66.62 python < /root/userfolder/1.py

output

Finish job, result=49985001
This is Linux

这样写就不会连接上 Linux2 了,只会让 Linux 程序在 Linux2 上运行!打工告成

2)Window 写好的代码在 Linux 上运行(局域网)

打开 cmd,cd 到程序目录,输入 python 1.py,结果如下

Finish job, result=49985001
This is Windows

在这里插入图片描述
我用的是 windows 10 系统,有自带的 ssh 功能(设置->管理可选功能),安装 OpenSSH 客户端OpenSSH 服务器
在这里插入图片描述
此时在 cmd 中输入 ssh,就可以拉
在这里插入图片描述
在 cmd 中,我可以成功的连接到我的 Linux
在这里插入图片描述
但无法把在 Linux 上运行的程序结果返回在 cmd 窗口中,很遗憾!我后来借用了 git 工具(成功把windows的程序在 linux 下运行了),git 可以自己去下载安装!!!

在这里插入图片描述

4 文件传输

如果是有很多的 Python 文件怎么办呢? 有时候 Python 文件是一环扣一环, 这个文件里调用了那个文件的东西. 这时我们就能先全部复制所有必须文件去 Linux 的缓存区 或者 桌面, 然后再使用 ssh 在 Linux 云端的运行传送过去的文件.

1)window to Linux

a.py 需要调用 b.py

# This is a.py
from b import inner_func
inner_func()

b.py

# This is b.py
def inner_func():
    print("This is a function in b")

把 windows 中的 a.pyb.py 同时传入服务器的 /root/userfolder/ 目录下,我在 windows 的 git 下输入如下指令

 scp -r -P 44020 {a,b}.py root@202.197.66.62:/root/userfolder/

scp -r -P 端口号 源文件 Linux用户名@Linux的ip地址:目标文件夹

在这里插入图片描述
如果设计到 permission 的问题,请参考 linux下scp报Permission denied错误的解决

执行的话, 和上面的步骤有点不一样, 在本地用 ssh 去云端, 但是 ssh 的时候同时发送一条指令去执行 a.py. 这条指令我们用 "" 给框起来, 说明是要发送去云端再执行的指令.

ssh -p 44020 root@202.197.66.62 "python /root/userfolder/a.py"

在这里插入图片描述

2)Linux to Linux

基本同 window to Linux,改下路径即可,这里不再赘述
例如,把 Linux 系统上的 file1 文件夹移动到 Linux2 file2 目录下,假设 Linux2 的端口号为 40000,Linux2 中的用户名为 bryant,ip 为 200.100.50.10

scp -r -P 40000 ./file1/ bryant@200.100.50.10:/file2/

5 自己的云计算, 多电脑共享你云端文件

比如要自己的 window 和 Linux 文件共享,最好两个都有图形页面!!!

参考 https://morvanzhou.github.io/tutorials/others/linux-basic/5-02-share-folder/

6 挂载

参考 linux里挂载(mount)和取消挂载(umount)命令的使用

挂载 mount

mount -t cifs /source/file/path /target/file/path -o ro, username="bryant"

例如把 /home/bryant/1 挂载到 /home/bryant/2,可以写成如下形式

mount -t cifs /home/bryant/1 /home/bryant/2 -o ro, username="bryant"

取消挂载 umount

umount /home/bryant/1 或者

umount /home/bryant/2 或者

umount /home/bryant/1 /home/bryant/2

Ps:umount 时如果显示 device busy,则表示要取消挂载的磁盘正在被使用

附录——vnc viewer

vnc viewer 里面如何复制到本地

输入

vncconfig

弹框

在这里插入图片描述
即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值