一. 为什么要用linux?
我的建议是:勇敢地迈出第一步,安装ubuntu,并且按着一本书看完linux的基础操作,你就会明白你对它的需求,或者说是它对你的吸引力了。 
————————————————————————————————————————————————————

如果说 Ubuntu 是现今最受桌面用户欢迎的 Linux 操作系统,那么 CentOS 就是最受公司、企业、IDC 喜爱的 Linux 服务器版 发行版了。 
CentOS 是基于 Red Hat Enterprise Linux (收费昂贵但口碑极佳RHTL) 的源代码再编译出来的免费版, 
因此不仅继承 RHEL 优越的稳定性,还提供免费更新,因此在服务器提供商、中小型公司中装机量几乎是最大的 Linux 发行版,现在也已正式加入红帽公司。

回到这个问题上来。(注:有些文字来源于知乎和博客,较为琐碎,未作引用说明,在此感谢原作!)

ubuntu和windows到底有什么不同呢?
从大的方面讲,它们的设计理念不同。借用一位知乎前辈说的“windows为不知道自己正在做什么的人设计,linux为知道自己要做什么,正在做什么的人设计”。从小的方面讲,用户体验不同。windows将机器置于一个和人对等的位置,它会对你提出要求,让你跟着它去做。linux将机器置于服务于人的位置,它是一台服务于你的机器,听你指挥,接受你的配置,适当时候会提示你,但绝不会命令你。

从windows到ubuntu,一开始不习惯是正常的。因为ms office变成了libre office,没有了qq(微信有linux的),双击exe安装程序也不复存在,甚至连接个网络也得敲命令。但是当你熟悉了这些操作,你会发现这是更高效的方法,这是另一种体验,你发号命令的体验,让机器为你而运转。很多在windows中莫名其妙的内容都是简洁而透明的,比如进程管理。

总结下linux系统的几点好处(以ubuntu为例)
(1)ubuntu为你提供了学习编程的基础。在这里,先是命令,再是shell脚本,再是python,R这些脚本语言,再是搭建服务器,学习数据库,搭网站。用空闲的时间学习这些一方面是满足求知欲,另一方面是增加技能。 
(2)ubuntu给你了干净的环境。让你能够专注于手头的事情,更少被莫名其妙的弹窗,提示所骚扰。所以也可以说它更适合干活。 
(3)ubuntu系统很少崩溃,一般大型服务器运行的都是unix/linux系统。此时Windows就只能凭借桌面系统的低门槛用于人们的日常生活中。

至于学习linux的推荐书籍:
<1> 不用说首先是大名鼎鼎的《鸟叔的linux私房菜》。 
如果觉得烂大街了(烂大街的东西不一定不好噢),也可以试试《linux从入门到精通》(清华大学出版社)第二版,是基于ubuntu讲的,适合新手入门。

<2>然后就是学习Linux shell编程了。 
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。基本的Linux 命令行是每次执行一个命令,那通过shell脚本编程,将很多条命令放到一起批量执行,并且还可以加入判断、循环等稍复杂的控制逻辑。这里推荐《Linux命令行与shell脚本编程大全》第3版,这本书比较清晰地讲解了怎么进行Shell编程。

<3>以上两个方面搞熟悉后,相信正常的linux管理肯定是没问题的了。 
如果还想要继续深入去学习的话,推荐去了解下《Linux内核介绍》《TCP/IP网络协议》一些原理讲解的书籍,能够帮助你从依葫芦画瓢,提升到知其所以然的水平。

二.GCC的介绍和使用
gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更多其他不同语言的编译器,所以表示一堆编译器的合集。 g++则是GCC的c++编译器。

现在你在编译代码时调用的gcc,已经不是当初那个c语言编译器了。更确切的说他是一个驱动程序,根据代码的后缀名来判断调用c编译器还是c++编译器 (g++)。比如你的代码后缀是.c,他会调用c编译器还有linker去链接c的library。如果你的代码后缀是.cpp, 他会调用g++编译器,当然library call也是c++版本的。

当然我说了这么多你可能感到有些混乱,没关系,你就把gcc当成c语言编译器,g++当成c++语言编译器用就是了。

GCC的安装和使用:
安装有两种方法:

1、使用二进制包安装,这个要看你使用的Linux发行版是哪种?

1).Ubuntu/Debian系列:

sudo apt-get install g++

2).RedHat/CentOS系列:

yum install gcc-c++

2、ubuntu下g++的安装

安装g++编译器的命令:build-essential是一整套工具,执行完后,就完成了gcc,g++,make的安装。

sudo apt-get install build-essential

注:下面这个命令是修补安装build-essential。

sudo apt-get install build-essential --fix-missing

即已安装了部分build-essential,但没有安装完全,此时可以使用该命令继续安装build-essential。

如何判断GCC安装成功:
在shell中输入下列命令中的任何一个即可:

g++ --version   
g++ -v

输出版本信息就是安装了,提示命令未找到,就是没装。
--------------------- 
作者:nuaadot 
来源:CSDN 
原文:https://blog.csdn.net/nuaadot/article/details/78301855 
版权声明:本文为博主原创文章,转载请附上博文链接!

Linux基础——linux和gcc的介绍相关推荐

  1. 视频教程-赵强老师:大数据从入门到精通(1)Linux基础-Linux

    赵强老师:大数据从入门到精通(1)Linux基础 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblogic)和大数据Had ...

  2. 20155301 滕树晨linux基础——linux进程间通信(IPC)机制总结

    20155301 滕树晨linux基础--linux进程间通信(IPC)机制总结 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在 ...

  3. linux基础——linux进程间通信(IPC)机制总结

    原 linux基础--linux进程间通信(IPC)机制总结 2016年07月23日 21:33:12 yexz 阅读数:18224更多 <div class="tags-box sp ...

  4. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...

    Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...

  5. Android之linux基础教学之八 内核同步介绍

    1.第一个问题:为什么要同步? 如果这两件事情操作了共同的数据,就需要干完一件,接着干另一件. 2.第二个问题:读和写? 数据是一整块不可分割的东西.在同步的概念里面,写数据和读数据是不同的.两个进程 ...

  6. Linux基础知识——常用shell命令介绍(三)

    一.改变文件权限 chmod:change mode 语法:# chmod [选项-option] 权限 FILE 选项:-R 递归修改权限 --reference= 参照文件或目录给予权限 权限定义 ...

  7. Linux基础知识——常用shell命令介绍(一)

    一直都找借口,赶脚很忙的样子.最后还是花时间把作业完成了,实践证明,时间挤一挤还是有很多的,其实很多时间都被自己浪费掉了.好吧,有了同学们的看视频进度刺激,我也不得不给自己施加点压力.完成作业的同时也 ...

  8. Linux基础——Linux 基本指令 ls 和 cd

    文章目录 1.前言 2.cd 指令 1.返回上一级目录 2.去往子文件夹 3.返回你刚刚所在的目录 4.向上返回两次 5.去往 Home 6.去往电脑任何地方, 你需要的是一个绝对路径 3.ls 指令 ...

  9. shell编程(三) : [Linux基础] Linux 环境变量

    接上一篇文章Linux shell编程(二): Linux shell基础 2.3 Linux环境变量 bash shell用一个叫作环境变量(environment variable)的特性来存储有 ...

最新文章

  1. quake3使用指南(转载)
  2. Linux下的shell简介(三)
  3. 一句话进行浏览器版本识别
  4. [转:有种感觉叫佩服]一个程序员的奋斗历程
  5. 1.RTMP流媒体服务器搭建
  6. 西门子stl语言指令_STEP7项目的JL跳转指令你会用吗?
  7. Android.mk用法详解
  8. 设计素材|美丽的几何和多边形背景纹理
  9. 7Python全栈之路系列之Django表单
  10. java冒泡排序算法代码降序_Java排序算法总结之冒泡排序
  11. 使用华为modelarts进行车辆识别
  12. 字节跳动《Vim 中文手册》火了,完整版 PDF 开放下载!
  13. C语言实验——交换两个整数的值(顺序结构)
  14. 计算机专业的梦想作文,我的梦想作文300字(通用15篇)
  15. Zabbix proxy
  16. 官方|TensorFlow微信公众号发布
  17. (二)SDRAM——SDRAM操作时序
  18. HTML之转动正方体图片和音乐播放器
  19. python实现凤凰新闻监控
  20. AURIX Development Studio常用快捷键

热门文章

  1. Spring Boot Shiro 权限管理
  2. 树莓派:VNC远程控制
  3. BAPI_PO_CHANGE修改NETPRICE
  4. 重定向dup2的本质
  5. java中向JTextArea中添加滚动条(垂直的和水平的)
  6. shell 实例收集
  7. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
  8. linux工具之检测内存泄漏-valgrind
  9. OpenCV黑白图像增强——灰度级切片
  10. linux efi不要boot目录,LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项-Go语言中文社区...