跨平台开发的解决方案:

  1. windows和linux只保留一份源码,这份源码放在linux上
  2. 通过共享文件,windows访问到linux上的代码,这样VS可以直接编辑到linux上的代码

    安装并配置samba

    samba是实现共享的工具,samba也可以共享打印器
    1. apt-get install samba
    2. vim /etc/samba/smb.conf
    3. 移动到最下面,按i进入编辑状态
    4. [code] #linux下的文件夹在windows上显示的名称
    5. path=/code #该文件夹具体的路径
    6. writeable=yes #是否可写。这里设置之后,还要在linux的文件系统设置权限
    7. browseable=yes #是否可浏览(是否能看到目录、文件结构)
    8. guest ok = yes #来访的,没有登录的用户是否可访问
    9. 保存:按ESC,输入:wq保存退出
    10. pkill smbd #关闭samba的客户端
    11. smbd #再次开启smbd
    12. ps #查看linux的进程,不加参数的话,只是当前客户端的进程
    13. ps -ef|grep smbd #查看smbd的进程
    14. # |表示管道,是把前面的输出传给后面(把前面的输出变成后面的输入),后面再进行处理
    15. # 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 # 上一句的打印的信息

  1. #drwxr-xr-x显示权限情况
  2. #d表示目录,如果没有的话是文件
  3. #之后是三个字母表示一个权限:
  4. #第一个rwx表示拥有者用户(创建者)的权限
  5. #r是否有读权限
  6. #w是否有写权限
  7. #x是执行权限(在linux中所有文件都可以执行,只要有x权限)
  8. #第二个r-x是组用户的权限(有读、执行权限,没有写权限)
  9. #第三个是r-x其他人的权限(有读、执行权限,没有写权限)

root(第一个root)所属用户

root(第二个root)所属组

4096 Jan 7 23:00 创建时间

code 目录名称

使用samba共享是以默认用户进来的,属于其他用户,所以要看第三个权限r-x,这里是只读,要修改权限

【方案一】赋予权限的第一种方案

chmod 777 /code #给文件夹赋予权限,这里赋予所有人所有权限

  1. #777是8进制数字,所以一个7即表示111。111的每一位数字对应rwx(r表示读权限,r表示写权限,x表示执行权限)
  2. #第一个7代表的是创建者的权限
  3. #第二个7代表的是组用户的权限
  4. #第三个7代表的是其他人的权限

【方案二】赋予权限的第二种方案

id nobody #查看默认用户的信息 chown nobody:nogroup /code #给目录指定用户可以访问,指定nobody这个用户,nogroup这个组可以访问code

  1. <a name="s4R1O"></a>
  2. ### 在windows上访问该文件夹
  3. 1. windows键+R打开运行
  4. 1. 输出虚拟机的IP地址:`\\192.168.3.69`
  5. 1. 如果配置好文件权限,即可以读、写里面的权限。然后就可以开始编写程序了
  6. 【为子目录也设置权限】目前`/code`路径已设置全部权限,但是它的子目录不行
  7. ```shell
  8. chmod 777 * -R
  9. #chmod 777表示设置全部权限
  10. #*当前目录下的所有文件
  11. #-R子目录下的所有文件

综上,创建一个目录想要共享给windows时,在该目录下运行chmod 777 * -R即可