linux开发环境搭建

linux简介:
linux和windows同样是操作系统,他们都是多任务多用户多线程的,Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

Linux版本:
ubuntu:嵌入式开发,Fedora:早期嵌入式开发,centOS:web服务器,Loki、Mint…,这些发行版本都是基于linx内核做的二次开发,就相当于华为、小米手机都是安卓系统,但是他们的UI界面不一样。IOS底层是基于linu做的开发,android底层也是基于linux做的开发,android底层是开源的,ios底层是封闭的。
搭建linux开发环境:

1、下载虚拟机VMware
若有错误,可能是电脑没有开启虚拟化技术,可以百度搜索bios开启VT查看开启方法。
安装过程遇到的问题:

①、写入文件…vmware-vmx.exe时出错,请确认您有访问该目录的权限。
②、VMware Workstation 未能启动 VMware Authorization Service。您可以尝试手动启动 VMware Authorization Service。
③、和第二个错误一样,就是解决方式不一样
④、VMware Workstation-- “与 vmx86 驱动程序的版本不匹配: 预期为 360.0,实际为 331.0。 驱动程序“vmx86.sys…”
⑤、若以上错误解决后发现虚拟机无法使用桥接模式,建议参考这个教程重装,真的是大佬的博客
2、下载linux系统发行版ubuntu,详细安装步骤建议关注公众号“软件管家”,真的是良心公众号。
3、若安装完成后出现界面没有完全填充虚拟机,可以安装VM-tools工具,VM-tools工具可以自己适应当前界面的大小,还可以直接将文件从windows环境下拖拽到linux环境下,VM-tools安装教程。也可以通过命令终端修改分辨率。下面演示通过命令终端修改分辨率的方式。

  • 首先ctrl+alt+t调出命令终端,然后输入xrandr会出现以下界面,是各种分辨率。
    在这里插入图片描述
  • 选择好分辨率后,输入xrandr -s 后面加你想要的分辨率,点击回车即可。下面图片输入的应该是xrandr,不要输错哦。
    在这里插入图片描述

这里可以记住以下几个快捷键,这里有linux常用指令

  • Ctrl+alt+t调出命令终端
  • Ctrl+L清空终端输入,也可以在终端输入clear后回车
  • Ctrl+减号缩小终端中的字体,Ctrl+加号放大终端中的字体。

如何在linux下编写C代码:

  1. 首先确保ubuntu安装了vim这个软件,附安装教程
  2. 了解vim有两种模式:命令行模式、输入模式,输入模式按i进入,进入后下方会出现INSERT,这表示就可以编辑代码。编辑完成后按Esc回到命令行模式,INSERT消失。
  3. 进入命令终端输入vi +空格+ 你想要创建的文件,例如:vi text1.c即可进入命令行模式,然后按i即可进行编辑。
  4. 如何退出保存代码呢?回到命令行模式后,按":",然后输入wqw代表保存,q代表退出。如果输入**q!**表示不保存强制退出。保存退出后就可以见到桌面上有你命名好的.c文件。
  5. 在终端输入gcc+空格+你要编译的.c文件+ -o+你想要生成的文件名字,即可编译若不-o命名它会自动生成一个绿色的可执行文件a.out./a.out即可运行这个可执行文件。
  6. rm * -rf可删除当前路径下的全部文件,慎用。

linux和windows间的文件传输方式(以下是虚拟机的方式,真机的话就得用ftp或者samba(现在用的比较少)):

  • 若有VM-tools可以直接相互拖拽。
  • 还可以借助第三方软件——filezill
  • 还有就是共享文件夹的方式。下面演示如何设置共享文件夹功能。

1、打开虚拟机设置里面的选项,点击共享文件夹,点击总是启用。
在这里插入图片描述

2、点击添加文件并选择要共享的文件夹路径,名称是共享文件夹在linux下的文件路径。自己任意设置,设置完成后点击确定然后退出。

在这里插入图片描述

3、可以在linux环境下查看windows共享文件夹里的文件。在终端输入:cd /mnt/hgfs/刚才自己定义的名称,然后回车即可进入文件夹,然后ls即可查看文件。
在这里插入图片描述
4、一般不在共享文件夹下,进行文件的拷贝,容易有权限的问题,一般回到工作目录下(cd什么也不加然后回车)进行拷贝。如下图:( . 代表当前文件)
在这里插入图片描述
5、也可以从linux将文件拷贝到windows,操作如下:将text考到windows共享文件夹下。
在这里插入图片描述

  • 之前共享目录用的好好的,突然不能用,进入查看后发现mnt这个文件夹下面没有hgfs这个文件然后新建一个名为hgfs的文件,然后运行这段指令:sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000 问题解决链接

下面是用ftp软件——filezilla进行文件的传输(ftp软件很多还有totalcommand、cuteftp…):

  • 首先保证windows的网络和我们linux虚拟机的网络是能通的。可通过ifconfig来检查我们虚拟机的ip地址,ipconfig查看本机的地址。
    在这里插入图片描述
    在这里插入图片描述

  • 然后再本机终端ping 虚拟机的地址,能ping通才可用filezill,好像是桥接才能相互ping通,我之前用的NAT模式电脑可以ping通虚拟机,虚拟机ping不通电脑,查资料说是因为重装过系统或者之前卸载的虚拟机没卸载干净,于是就重装了。

  • 下面是ping通后的图片:
    在这里插入图片描述
    在这里插入图片描述

  • 若不能连接ubuntu可能是没有开启ssh服务,可以在linux终端输入安装:openssh-server,命令:sudo apt install openssh-server

  • 下面是连接后的图片,记得在输入虚拟机地址的时候前要加sftp://(具体为什么加我也不清楚)
    在这里插入图片描述

VMware虚拟网络连接的三种方式:
Vmware提供了三种网络工作模式,分别是:(1)Bridged(桥接模式);(2)NAT(网络地址转换模式);(3)Host-Only(仅主机模式)。
一、Bridged(桥接模式)

桥接模式是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中。桥接模式通过虚拟网桥将主机上的网卡与虚拟交换机Vmnet0连接在一起,虚拟机上的虚拟网卡都连接在虚拟交换机Vmnet0上,所以桥接模式的虚拟机IP必须与主机在同一网段且子网掩码、网关与DNS也要与主机网卡一致。

在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问局域网内的任何一台主机,局域网内的任何一台主机也可以访问它。应用场景:当前虚拟机为整个局域网的用户提供访问服务,其他局域网用户都能访问到当前主机。
我的理解:虚拟机通过电脑的物理网卡访问外部网络,windows真机也是通过物理网卡连接路由器访问外部网络,把物理网卡当做一个交换机。每台虚拟机都能上网,都可以相互通信,但是每台虚拟机要独立配置DNS(用来解析域名也就是网址,就是将网址变为IP地址,)有可能有的虚拟机可以上网有的不可以。这种方式比较费IP地址,下面是DNS解析的域名
在这里插入图片描述

二、NAT(地址转换模式)
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。

在连接Vmnet8虚拟交换机时,虚拟机会将虚拟NAT设备以及虚拟DHCP服务器连接到Vmnet8虚拟交换机上,同时也会将主机上的虚拟网卡VMWare Network Adapter Vmnet8连接到Vmnet8虚拟交换机上。网卡VMWare Network Adapter Vmnet8只是作为主机与虚拟机通信的借口,虚拟机并不是依靠网卡VMWare Network Adapter Vmnet8来联网的。

虚拟机借助NAT功能,通过宿主机器所在的网络来访问公网,使用NAT模式可以实现虚拟机访问互联网。NAT模式下虚拟机的TCP/IP配置信息是由VMnet8虚拟网络的DHCP服务器提供的,局域网中的其他真实主机将无法访问本虚拟机,但该主机上其他同一个网段的虚拟机可以访问。可以理解成我们自己家里的宽带,你可以访问百度,但是其他人无法访问到你。应用场景:只是通过虚拟机上网,其他用户不能访问你的虚拟机。
这种模式是相当于在物理网卡上虚拟出一个交换机比如说:VMnet0(虚拟的网卡)然后在这虚拟的网卡上接虚拟机1、虚拟机2、…等,配置好后每一台都可以上网(可以通过虚拟的交换机访问到windows,但是windows无法访问虚拟机),DNS也是统一的,但是他们的IP地址是假的,

三、Host-Only(仅主机模式)

Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只能与主机相互通讯。

Host-Only模式通过主机的虚拟网卡VMWare Network Adapter VMnet1来连接虚拟交换机VMnet1,从而达到与虚拟机通信的目的。如果想要在Host-Only模式下联网,可以将能联网的主机网卡共享给VMWare Network Adapter VMnet1,以实现虚拟机联网。

Host-Only模式的配置过程和NAT模式基本相同。在NAT所有功能以外,不能访问外网

如何修改虚拟机的IP地址:

  • 首先输入ifconfig查看网卡名称(windows的网卡不一定叫这个名称),我的是ens33,然后可以ping一下同一网段(192.168.43.这一段数字相同表示在同一个网段)的你喜欢的IP地址,如果出现Destination Host Unreachable表示这个IP地址是空闲的,可以将虚拟机IP修改为这个IP。
    在这里插入图片描述

  • 然后输入命令sudo ifconfig ens33 +你想设置的IP地址后回车,然后输入密码即可,我们ifconfig后可以看到IP地址被修改了。
    在这里插入图片描述

gcc编译器下调试C代码:

出现段错误:

Segmentation fault (core dumped)

输入指令:

gcc 要编译的文件名 -g   如:gcc linnk.c -g
//启动gdb调试

gdb 可执行文件名  如:gdb a.out

然后出现:(gdb)

然后输入:r  //run一下程序
下面会出现段错误的一些相关信息,如:第几行

linux环境下开发可以查看man手册:

  man 2 函数名
//man是man手册,2是man手册的第二页,函数名是自己想查找的函数信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值