Linux下C/C++编程入门----Linux安装教程

系统载体:

既然是Linux下编程,首先我们当然是需要有一个Linux系统啦,可以选择干掉你电脑上的Win系统来安装,也可以选择Win + Linux双系统。

不过,本教程采用的是虚拟机安装Linux系统。

虚拟机软件选择,我选择了Virtual Box,这个软件十分简单,只需几步操作就能创建一个虚拟机出来,很不错。
下载地址: http://rj.baidu.com/soft/detail/15321.html?ald
软件的安装就不介绍了(装软件都不会你还学开发? ),安装完成后大致是下面的界面(可以看到左侧已经有了三个我的创建的虚拟机):

系统镜像下载:

然后呢,既然想要安装Linux系统,没有系统的镜像怎么安装?所以,先去下载镜像。
在众多Linux衍生版中,我们选择Ubuntu这个非常适合新手使用的系统,然后对于desktop(桌面版)和server(服务器版),desktop版就是像windows一样,有着漂亮的界面,server就如同dos一样,纯命令行操作,这里我们选择server版(强烈推荐!!!)
随意的到搜索引擎搜一下,就出现一堆下载地址了,这里,我们选择官方地址。


打开页面后发现,只有12.04和13.04版,我们要去下载13.10版本,至于最新的14.04,太新了不敢使用。点击链接。


在下面的目录中找到13.10,进入目录。


如图,红线就是我们所需的镜像,amd64就是64位系统,i386是32位系统,鉴于现在大多数人的机器配置都很不错,这里采用amd64版本。
下载镜像到本地,留待后面使用。

新建虚拟机:

打开Virtual Box这个软件,选择新建,如图:


选择Linux系统,版本为Ubuntu 64bit,并填上名称。
(注意,这里你可能完全没有64bit的选择,解决方法参考:http://blog.csdn.net/shen_gang/article/details/19192061。或者回帖提问。
顺便提一句,我第一次安装的时候就遇到了这个问题,大家要学会如何利用搜索,比如我就在google搜索:virual box 安装64系统,然后第一条就是上面的链接,所以遇到问题不要就想着求大神,大神很忙~~~)
点击下一步,为虚拟机分配内存,Ubuntu Server很节省内存的,这里直接采用默认值512MB。


下一步,装系统当然需要硬盘,虚拟机是采用的虚拟硬盘,既创建一个硬盘文件供虚拟机使用。




选择保存的位置和大小,系统并不大,默认的8G空间就够用了。


选择创建,稍候片刻。

虚拟机安装系统:

如图,这样就得到了我们的虚拟机,有了机器,就可以开始装系统了,点击设置。


如下图,我们需要把刚刚下载的系统镜像添加进来。


添加完成,点击确定。


点击启动,开启我们的机器

语言,选择英语,别惦记着简体中文了,你会后悔的。 (满目的乱码)


这里当然是选择第一项啦,安装~~


继续english


US


键盘测试,选择No


键盘类型,US


还是默认


然后会等待一会。。稍作休息
输入计算机名:


输入用户名


输入用户密码

后面为再次输入密码,重输入一次即可。
是否加密你的用户目录,默认No即可


时区,yes

磁盘分区设置,默认


选择磁盘


将改动写入磁盘


下一步仍是默认。
写入磁盘,yes


等待安装~~~
下面会让你填写代理服务器,直接回车即可,
继续等待~~~
设置系统更新方式,选择默认的第一项(一不小心按过了,没截图
后面是选择默认的功能(软件),需要哪个就选择哪个,推荐全不选~~~~或者把第一个选上~~
安装启动引导程序,yes


完成安装,回车收尾重启。

系统启动:

好了,这就是我们的系统了,纯命令行界面,是不是感觉怕怕的?


输入用户名、密码登录,注意输入密码的时候不会显示*啊,而是什么都不显示


 登录完成,系统等待输入命令,系统安装阶段完成。

如何编写、编译、运行程序:

既然是纯命令行操作,自然要去学一下基本的命令,推荐书籍:http://ishare.iask.sina.com.cn/f/22938680.html?from=like
下面,新建一个目录c
mkdir c
进入新建的目录
cd c
新建a.c源文件并使用vim编辑器进行编辑
vim a.c


这就是大名鼎鼎的神器:VIM!!


按i进入INSERT(输入模式)
写下一个简单的代码。


保存代码并退出vim,操作为按ESC,再按:wq,回车


编译程序,这时要请要请出著名的C语言编译器,GCC。
输入gcc后,提示找不到。。因为。。还没安装。。囧。。


按照提示,
sudo apt-get install gcc
输入密码,并选择Y,等待安装。
安装完成,继续编译我们的程序
gcc a.c -o hello
 好桑心,居然报错了,第5行缺分号。。(最近写GO语言写多了,它语句没分号~~Oh my god!!)


修正后再次编译,没问题了,然后运行。
./hello

程序运行,得到输出。


 到此为止,我们能够在Linux环境进行C语言开发了(C++需要安装G++编译器)

后话:

Linux是学计算机的学生强烈推荐学习的东西,趁着这个机会好好学一下吧,推荐《鸟哥Linux私房菜》这本书。
刚刚使用到了vim这个神器,你可能会想,vim这么难用??当然不是,这只是默认配置而已,没有行号,没有自动缩进,TAB还是8个空格。。等等。。需要自己修改配置到满意的程度,推荐教程:vim使用教程:http://blog.csdn.net/niushuai666/article/details/7275406
vim配置教程:http://blog.sciencenet.cn/blog-683919-667321.html
当然这个配置只是人家的设定,自己要根据自己的需要来调整。
直接在虚拟机输命令感觉很搓。。因为它不支持直接从主机复制文本啊。。推荐开启ssh服务,用xshell这个软件远程登录虚拟机,具体方法自己去学习吧,不再多说。
教程到此结束,赶快去享受Linux吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 ICMP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户 /服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信
教程非常不错,价值280元,绝对是干货 Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 ICMP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信号量 信号量集结构 信号量集函数 信号量示例 31System V信号量(二) 用信号量实现进程互斥示例 32System V信号量(三) 用信号集解决哲学家就餐问题 33System V共享内存与信号量综合 用信号量解决生产者消费者问题 实现shmfifo 34POSIX消息队列 POSIX消息队列相关函数 POSIX消息队列示例 35POSIX共享内存 POSIX共享内存相关函数 POSIX共享内存示例 Linux网络编程之线程篇 36线程介绍 什么是线程 进程与线程 线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与互斥锁 POSIX信号量相关函数 POSIX互斥锁相关函数 生产者消费者问题 自旋锁与读写锁介绍 40POSIX条件变量 条件变量 条件变量函数 条件变量使用规范 使用条件变量解决生产者消费者问题 41一个简单的线程池实现 线程池性能分析 线程池实现 网络编程, Linux, 密码
教程非常不错,价值280元,绝对是干货 Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 IC MP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信号量 信号量

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值