跨平台开发的解决方案:
- windows和linux只保留一份源码,这份源码放在linux上
- 通过共享文件,windows访问到linux上的代码,这样VS可以直接编辑到linux上的代码
安装并配置samba
samba是实现共享的工具,samba也可以共享打印器apt-get install samba
vim /etc/samba/smb.conf
移动到最下面,按i进入编辑状态
[code] #linux下的文件夹在windows上显示的名称
path=/code #该文件夹具体的路径
writeable=yes #是否可写。这里设置之后,还要在linux的文件系统设置权限
browseable=yes #是否可浏览(是否能看到目录、文件结构)
guest ok = yes #来访的,没有登录的用户是否可访问
保存:按ESC,输入:wq保存退出
pkill smbd #关闭samba的客户端
smbd #再次开启smbd
ps #查看linux的进程,不加参数的话,只是当前客户端的进程
ps -ef|grep smbd #查看smbd的进程
# |表示管道,是把前面的输出传给后面(把前面的输出变成后面的输入),后面再进行处理
# grep过滤,只有包含smbd的才输出
创建目录
```shell mkdir /code
查看/code目录的权限
ls -l #显示详细信息 ls -l|grep code #显示/code的详细信息 drwxr-xr-x 2 root root 4096 Jan 7 23:00 code # 上一句的打印的信息
#drwxr-xr-x显示权限情况
#d表示目录,如果没有的话是文件
#之后是三个字母表示一个权限:
#第一个rwx表示拥有者用户(创建者)的权限
#r是否有读权限
#w是否有写权限
#x是执行权限(在linux中所有文件都可以执行,只要有x权限)
#第二个r-x是组用户的权限(有读、执行权限,没有写权限)
#第三个是r-x其他人的权限(有读、执行权限,没有写权限)
root(第一个root)所属用户
root(第二个root)所属组
4096 Jan 7 23:00 创建时间
code 目录名称
使用samba共享是以默认用户进来的,属于其他用户,所以要看第三个权限r-x,这里是只读,要修改权限
【方案一】赋予权限的第一种方案
chmod 777 /code #给文件夹赋予权限,这里赋予所有人所有权限
#777是8进制数字,所以一个7即表示111。111的每一位数字对应rwx(r表示读权限,r表示写权限,x表示执行权限)
#第一个7代表的是创建者的权限
#第二个7代表的是组用户的权限
#第三个7代表的是其他人的权限
【方案二】赋予权限的第二种方案
id nobody #查看默认用户的信息 chown nobody:nogroup /code #给目录指定用户可以访问,指定nobody这个用户,nogroup这个组可以访问code
<a name="s4R1O"></a>
### 在windows上访问该文件夹
1. windows键+R打开运行
1. 输出虚拟机的IP地址:`\\192.168.3.69`
1. 如果配置好文件权限,即可以读、写里面的权限。然后就可以开始编写程序了
【为子目录也设置权限】目前`/code`路径已设置全部权限,但是它的子目录不行
```shell
chmod 777 * -R
#chmod 777表示设置全部权限
#*当前目录下的所有文件
#-R子目录下的所有文件
综上,创建一个目录想要共享给windows时,在该目录下运行chmod 777 * -R
即可