【Linux 之二】Ubuntu下开发环境的搭建(NFS \ SSH \ FTP \ Smba \ ...)

2023-09-22 15:25:50

  目前正在进行Linux相关项目的开发,而我的Linux开发是在Ubuntu(版本20.04)下进行的,为此需要搭建很多Linux相关的开发环境,方便工作的进行。这里主要是对各种开发环境的搭建做一个总结记录,方便后面查阅,也方便在Linux开发之路上遇到困难的各位同仁。好了,废话不多说,直接罗列各种开发环境的安装步骤等。

FTP

  在开发过程中可能会频繁的在 Windows 与 Ubuntu 下进行文件传输,比如在 Windows 下进行代码的编写,然后将编写好的代码传递到 Ubuntu 下进行编译,这时我们可以使用 FTP 服务实现 Windows 与 Ubuntu 之间的文件互传(当然也可以使用Samba)。

FTP服务端(Ubuntu)

  1. 打开 Ubuntu 的一个终端窗口,然后执行如下命令安装 FTP 服务:
sudo apt-get install vsftpd
  1. FTP 服务安装完成之后,打开 vsftpd.conf 文件,修改配置,如下:
sudo vi /etc/vsftpd.conf

打开后,修改如下两行:
在这里插入图片描述
5. 修改完成之后,保存退出,使用如下命令重启 FTP服务:

sudo /etc/init.d/vsftpd restart

至此,Ubuntu 上的 FTP 的 Server 已经开启。

FTP客户端(Windows)

  Windows 端的 FTP 客户端有很多,可以根据自己的爱好选一个即可。我使用的 FTP 客户端是 XFTP。关于FTP客户端的介绍,可以参考这篇文章:https://zhuanlan.zhihu.com/p/301653835
在这里插入图片描述
在这里插入图片描述

NFS

  在Linux开发时,一般都绕不过网络挂载(NFS),通过 NFS 可以大大提高我们开发调试的效率,为此必须首先在Ubuntu上安装并开启 NFS 服务,使用如下命令安装 NFS 服务。

  1. 安装 NFS 服务器
sudo apt-get install nfs-kernel-server rpcbind 

  安装nfs-kernel-server时,apt会自动安装nfs-common和portmap

  1. 创建 NFS 共享目录
    在自己想要设置的路径下创建共享文件夹,例如我的共享文件夹为:
jack-virtual-machine:~/linux_imx6ull/nfs$ pwd
/home/jack/linux_imx6ull/nfs
  1. 修改共享目录的权限
jack@jack-virtual-machine:~/linux_imx6ull/nfs$ chmod 777 . -R
  1. 修改配置文件 (/etc/exports)
    打开配置文件(sudo vi /etc/exports),在最后一行添加自己的共享目录,如下:
/home/jack/linux_imx6ull/nfs *(rw,async,no_root_squash)
  • /home/jack/linux_imx6ull/nfs:nfs服务端的共享目录,需要通过nfs挂载的文件都放在此目录下即可
  • * :表示所有网段都可以网段都可以访问(也可以指定具体的IP)
  • rw:指定挂载共享目录的客户端具有读写权限
  • sync:资料同步写入内存或者硬盘
  • no_root_squash:客户机用root访问共享文件夹时,不映射root用户
  1. 修改配置文件(/etc/default/nfs-kernel-server )
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

在这里插入图片描述
  Ubuntu18.04之后的版本应该是只支持 nfs3 和 nfs4,而uboot中默认使用的是 nfs2,所以为了使uboot的nfs命令正常使用,必须添加上述的一句话,使Ubuntu兼容 2、3、4版本。

  1. 重启 NFS 服务
sudo /etc/init.d/nfs-kernel-server restart
  1. 验证 NFS 是否配置成功
$ sudo mount -t nfs 192.168.100.113:/home/jack/linux_imx6ull/nfs /mnt
$ showmount -e
Export list for jack-virtual-machine:
/home/jack/linux_imx6ull/nfs *
$ sudo umount /mnt
  1. sudo mount -t nfs 192.168.100.113:/home/jack/linux_imx6ull/nfs /mnt

    • 192.168.100.113:共享 NFS 目录的主机地址(若为本机挂载,可以写为 localhost)
    • /home/jack/linux_imx6ull/nfs:共享 NFS 的路径
    • /mnt:挂载点(可以任意指定)
  2. showmount -e:显示配置的共享目录(该命令其实是读取了 /etc/exports 文件进行解析的)

  3. sudo umount /mnt:取消挂载

SSH

  开启 SSH 服务之后,我们可以在Windows下使用终端软件登录到 Ubuntu,比如使用Xshell 等,在 Ubuntu 下使用如下命令开启 SSH 服务。
4. 通过如下命令查询是否已安装 SSH
通过如下命令查询是否已安装 SSH,若出现openssh-client和openss-server,则说明系统已经安装 OpenSSH。

$ dpkg --list | grep ssh
ii  libssh-4:amd64                             0.9.3-2ubuntu2.3                    amd64        tiny C SSH library (OpenSSL flavor)
ii  openssh-client                             1:8.2p1-4ubuntu0.9                  amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                             1:8.2p1-4ubuntu0.9                  amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server                        1:8.2p1-4ubuntu0.9                  amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines
ii  ssh-import-id                              5.10-0ubuntu1                       all          securely retrieve an SSH public key and install it locally
  1. 安装 SSH
    在Ubuntu下可以使用如下命令安装SSH:
sudo apt-get install ssh
  1. 查看SSH服务端是否已启动
$ ps -auxf | grep ssh
root         891  0.0  0.1  12192  7148 ?        Ss   9月21   0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root       20934  0.0  0.2  14004  8848 ?        Ss   9月21   0:00  \_ sshd: jack [priv]
jack       21012  0.0  0.1  14004  6044 ?        S    9月21   0:00      \_ sshd: jack@notty
jack       21013  0.0  0.1   5892  4104 ?        Ss   9月21   0:00          \_ /usr/lib/openssh/sftp-server
jack        1609  0.0  0.0   6040   100 ?        Ss   9月21   0:00              \_ /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
jack       23312  0.0  0.0  17672   716 pts/1    S+   13:49   0:00  |       \_ grep --color=auto ssh

交叉编译工具链

  1. 在Ubuntu上创建一个目录,用于存放“交叉编译工具链”,我创建的目录为:/usr/local/arm
  2. 将交叉编译工具链复制到目录(/usr/local/arm)中,我的工具链为:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz;
  3. 解压
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

  解压完成后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf”的文件夹,该文件夹下就是我们的交叉编译工具链。

  1. 修改环境变量
//打开配置文件
sudo vi /etc/profile
// 在配置文件中添加如下一行内容
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

在这里插入图片描述

  1. 重启Ubuntu系统,交叉编译工具链就安装成功了。
  2. 安装其它相关库
sudo apt-get install lsb-core lib32stdc++6
  1. 查询版本,验证是否安装成功
arm-linux-gnueabihf-gcc -v

在这里插入图片描述

samba

下面是 samba 服务器环境的搭建过程:

  1. sudo apt-get update
sudo apt-get update
  1. 安装 samba 服务器
sudo apt-get install samba samba-common
  1. 创建共享目录,并设置共享目录的权限
sudo mkdir samba 	// 创建完成之后,我的目录为 /home/jack/linux_imx6ull/samba
sudo chmod 777 . -R	// 将samba目录的权限修改为 777
  1. 修改配置文件
    打开配置文件(vi /etc/samba/smb.conf),并进行如下修改:
[myshare]
comment=my share directory
path=/home/jack/linux_imx6ull/samba
browseable=yes
public=yes
writable=yes

在这里插入图片描述

  1. 设置密码
$ sudo smbpasswd -a jack	// 添加一个用户,jack
New SMB password: 			// 创建一个密码
Retype new SMB password:	// 再次确认密码
Added user jack.			// jack用户添加成功
  1. 重启samba服务器
sudo service smbd restart
  1. 在Windows上执行win+R,输入Ubuntu的IP地址,如我的IP是192.168.100.113
    在这里插入图片描述
    在这里插入图片描述
更多推荐

OZON测评自养号技巧,提升店铺权重和销量,避免恶意跟卖

在中国的跨境商家眼中,OZON可能是一个陌生的名字,但在俄罗斯人眼中,它是一个家喻户晓的电商平台。自2016年开始在俄罗斯运营以来,OZON已经成为俄罗斯市场上备受欢迎的电商平台,为俄罗斯人提供了丰富多样的产品选择和便利的购物体验。迄今为止,OZON在俄罗斯市场的占有率已经超过了最早深耕俄系市场的速卖通。有市场的地方就

浅谈SpringMVC的请求流程

目录标题浅谈SpringMVC的请求流程SpringMVC的介绍SpringMVC的逻辑概念运行图解知识总结浅谈SpringMVC的请求流程对于SpringMVC而言重点是了解它的底层运行逻辑,从而可以根据其逻辑来进行实际业务的操作或者是利用原理增强业务的功能性,最终达到项目预期效果。SpringMVC的介绍Sprin

【数据库索引优化】

文章目录数据库索引优化1.选择合适的字段创建索引2.限值每张表上的索引数量3.被频繁更新的字段应该慎重建立索引4.尽可能考虑简历联合索引而不是单列索引5.避免冗余索引6.字符串类型的字段使用前缀索引代替普通索引7.避免索引失效8.删除长期未使用的索引数据库索引优化1.选择合适的字段创建索引不为NULL的字段:索引字段的

Postman应用——Variable变量使用(Global、Environment和Collection)

文章目录变量的使用同名变量优先级Postman内置变量Global、Environment和Collection变量设置,点击查看。变量的使用语法:{{变量名}}使用{{}}包裹变量名,引用设置好的变量。注意:Environment变量引用前需要先选择已有的环境,默认不选择任何环境,否则Environment变量不生效

动态码收款与扫码支付:深入剖析

随着移动支付的普及,越来越多的支付方式在我们的生活中出现,其中,动态码收款和扫码支付是两种常见的支付方式。本文将深入剖析这两种方式的差异,并探讨它们各自的优点和缺点。动态码收款,顾名思义,是指收款方提供一个动态生成的二维码,支付方扫描这个二维码进行支付。这种方式的主要优点是安全性高,因为每次交易的二维码都是唯一的,不易

热文推荐