C语言学习环境搭建-2019-02-12

1.安装VirtualBox虚拟机

  1. 下载地址:https://www.virtualbox.org/wiki/Downloads
  2. 默认安装,一路点"Next"

2.获取CentOS及版本选择

  1. 为什么选择CentOS? 免费!免费!免费!

  2. CentOS官网:https://www.centos.org/

  3. 选择使用 32 位的 CentOS 6.7(你看到这个视频的时候可能升级到 6.8 或 6.9,不怕,下载最新那个即可),因为我们要在虚拟机中学习,越省内存越好!

  4. 页面上显示的是各个版本的下载地址,这里介绍下不同版本之间的区别:

    CentOS-6.9-i386-LiveDVD.iso —— DVD 光盘版(包含大量软件,可用于光盘启动和安装)

    CentOS-6.9-i386-bin-DVD1.iso —— 完整版1(系统安装盘及大量软件)

    CentOS-6.9-i386-bin-DVD2.iso —— 完整版2(对上边 DVD1 的软件进行补充)

    CentOS-6.9-i386-minimal.iso —— 最小安装版(我们选这个_

    CentOS-6.9-i386-netinstall.iso —— 网络安装版

    直接点 最小安装版 链接下载即可


3.在虚拟机上安装CentOS

1.打开虚拟机,"新建"
2.名称:输入名字;
类型:Linux;
版本:Ret Hat(32-bit)
3.内存建议1GB,太大浪费,太小容易崩溃....


image

4.现在创建虚拟硬盘:


image

5.选择VDI(Virtual Box磁盘映像):
image

6.选择动态分配:
image
  1. 虚拟硬盘的大小选择 5GB 够用了:
    注:点击右上角文件夹图标(黄色那个)可以选择将虚拟机文件存放到其他盘中,默认是系统盘。


  2. 大功告成!接下来我们要将下载好的 CentOS 系统安装到虚拟机上,点击启动:


  3. 第一次打开有引导你选择启动盘的界面:


  4. 如果没有的话也没关系,点击“设备”->“分配光驱”->“选择虚拟盘”一样可以载入启动盘:


  5. 载入我们之前下载好的“CentOS-6.7-i386-minimal.iso”即可:


    image
  6. 点击“控制”->“重启”:


  7. 选择第一项“Install or upgrade an existing system”,直接回车(Enter)即可:


  8. 等待系统安装初始化,直到进入亮蓝色背景的安装界面。
    这里要求进行光盘完整性检查,为了节省时间,我们选择跳过(Skip):
    (按下键盘右方向键,然后按下回车)


  9. 注意,当你的鼠标在虚拟机中点击后,鼠标位置将被虚拟机捕获并控制。
    这时候你不要慌张,如果想让鼠标回到主机,只需按下键盘右边的 Ctrl 键:


  10. 无论你懂不懂英语,请在语言那里选择 English,因为我们只安装命令行模式(用不了中文):
    (不懂英语?别怕~)


  11. 接下来一路“Next”即可:



  12. 呃……时区这里居然没有北京(其实是因为 1949 年以前,中国一共分了 5 个时区,以哈尔滨、上海、重庆、乌鲁木齐和喀什),选择上海吧:


  13. 设置 root 的密码,设个容易记的……


  14. 全新安装,就选择第一个吧:


  15. 让你再次确认是否擦除所有的数据:
    (放心,因为你用的是虚拟机,它擦除的只是虚拟机创建出来的空间)


  16. 然后理论应该就会自动安装了,如果中途出现任何对话框,你只需义无反顾的选择“我愿意”即可!
    成功安装后要求重启(Reboot):


  17. 登录名:root,然后是刚刚初始化的密码。
    注意,Linux 的密码默认是不显示任何东西的(怕被人看到密码的长度):



    好了,精简版的 CentOS 到此安装完毕。但别高兴得太早,因为是精简版,所以它什么都没有……


4.配置CentOS并安装GCC

由于我们安装的 CentOS 是最小安装版(minimal),所以我们啥都要自己动手,才能丰衣足食。
除了基本的命令和编辑工具,我们现在啥都没有(包括网络)。CentOS 可以用 yum 来安装和升级软件(熟悉使用 yum 来维护软件之后,你会发现比 XX 软件助手方便、牛掰多了),所以我们当务之急就是需要让我们的虚拟机联网。

1. 登录 root 后,在命令端(扔掉你的鼠标吧)输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0

2. 编辑网络配置文件:

3. 在键盘上按一下 i 键,进入 vim 编辑器的“插入模式”:


4. 通过键盘上的方向键移动光标的位置,修改配置文件为如下内容:
[图片上传失败...(image-c14b1d-1549983667781)]

5. 在键盘上按一下 Esc 键,退出 vim 的“插入模式”,返回“命令模式”,此时,左下角的“-- INSERT --”不见了。

6. 接下来用一个手指按住键盘左侧的 Shift 键不松开,另一个手指快速的按两下 z 键,表示保存并关闭修改的文件。

这时,我们又回到了 Linux 的命令行窗口:


7. 配置修改完后,我们就启动了 Linux 的网络功能,不过得重启才能使用。

输入 reboot 命令重启系统:


8. 重启完成后,我们测试 ping bbs.fishc.com 命令(ping 命令是常用的网络命令,通常用来测试与目标主机的连通性),检测网络是否好用:

如果你没有主动终止它,程序会一直 ping 下去,使用 Ctrl-c 快捷键可以中止该命令的执行。

OK,那我们接着开始安装 GCC 编译器吧!

9. 执行 yum -y install gcc gcc-c++ kernel-devel 命令,安装 gcc、c++ 编译器以及内核文件:


10. yum 的好处就是(-y 选项表示在 yes/no 的选择中都自动选择 yes)……接下来没你什么事了,你只管去喝茶看妹子就可以了……一切安装过程将自动进行:

11. 看到没,成功了:


12. 最后我们来验证一下(以下内容看不懂没关系,我们很快就开始学了_)。

在命令行输入 vi test.c,创建一个叫做 test.c 的文本文件。然后在键盘上按一下 i 键,进入 vim 编辑器的“插入模式”,输入以下内容:

 #include <stdio.h>

 int main()

  {

  printf("I love C!\n");

  return 0;

  }

输入完成后(注意空格和大小写要一致),在键盘上按一下 Esc 键,退出 vim 的“插入模式”,返回“命令模式”。接下来用一个手指按住键盘左侧的 Shift 键不松开,另一个手指快速的按两下 z 键,表示保存并关闭修改的文件(还记得吗,跟我们刚才配置网络文件的步骤是一样的)。

退出后输入命令:gcc test.c -o test && ./test

接下来让我们学习如何安装 Linux 的图形界面吧。


5.安装图形界面

虽然我们安装了 GCC,并且可以成功的编程了……但在 Linux 的纯命令行环境下,我们没法使用中文输入法,也就意味着我们可以开发一个大型程序,却无法为其写上中文的注释(注释对于一个处于开发阶段的程序来说,是非常重要的)。
为了安装中文输入法,我们需要给 CentOS 配置一个高大上的图形界面!

CentOS 当前最流行的图形界面是 GNOME 和 KDE,就个人使用感受而言,前者比较高效、后者比较炫酷(相对更耗资源)。

反正我们也是冲着中文输入法而来的,这里选择用 GNOME。

1. 安装 X Window System

X 窗口系统是运行在 Linux 上的一个图形界面程序,而 GNOME 和 KDE 都是以 X 窗口系统为基础建构成的。

执行 yum -y groupinstall "X Window System" 命令

内容比较多,请耐心等待:

2. 接下来是安装 GNOME,执行 yum -y groupinstall "Desktop" 命令:

(希望体验 KDE 的则执行 yum -y groupinstall "KDE Desktop" 命令)

3. 设置 GNOME 为默认启动。

执行 vi /etc/inittab 命令:

通过键盘上的方向键,将光标移动到最下方“id:3:initdefault:”的位置(3 表示命令行启动):


在键盘上按一下 r 键,然后再按下数字 5,即可将当前光标位置的数字 3 替换成了数字 5:

image

最后记得 shift + zz 关闭并保存文件。

4. 为了安全起见,GNOME 不允许 root 用户直接登录(root 是上帝权限,在 Linux 系统中可以为所欲为),因此我们需要创建一个权限相对较小的账号。

创建账号我们使用 useradd 命令:useradd -d 用户主目录 -m(创建主目录) 用户名

然后用 passwd 命令初始化该用户的密码:passwd 用户名

注意:用户主目录应该是放在 /home 目录下,所以这里的命令其实是:

useradd -d /home/fishc -m fishc

5. 执行 su fishc 命令,切换到新建的用户:

6. 执行 reboot 命令重启操作系统,进入新的向导界面,点击“Forward”:

7. 许可证信息,点击“Forward”:

8. 接着是创建用户界面,不过刚刚我们已经在命令行创建了一个,这里直接点击“Forward”即可:

9. 最后是设置日期和时间,我们现在的虚拟机是能够连接网络的了,所以点击“Synchronize date and time over the network”,让系统自动联网校对时间即可:

10. 点击“Finish”完成向导后会进入登录界面,系统已经自动识别出刚刚我们创建的新账号(FishC),输入密码并点击“Log In”即可登录:

接下来让我们学习如何安装中文输入法及设置合适编程的字体吧


6.安装中文输入法及设置合适编程的字体

小清新的 GNOME 界面肯定会对早已习惯了 Windows 系统的鱼油带来不少好感,甚至会有“生死相依,不离不弃”的念头……

不过我们不要忘了,我们安装 GNOME 的最主要目的是安装中文输入法!

1. 在 GNOME 中,我们依然有办法进入命令行模式。

依次点击左上角的“Applications”->“System Tools”->“Terminal”:

字体有点难看,大家忍忍,待会儿我们就把它换掉:

2. 执行 su root 命令并输入 root 账号密码,切换到 root:

3. 执行 yum -y groupinstall "Input Methods" 命令安装输入法:

4. 执行 yum -y groupinstall "Chinese support" 命令让 Linux 支持中文:

5. 依次点击左上角的“System”->“Preferences”->“Input Method”:

6. 勾选“Enable input method feature”,选中“User IBus(recommended)”点击“Input Method Preferences...”按钮:

7. 依次点击“Input Method”->“Chinese”->“拼Pinyin”:

8. 点击“Add”将拼音输入法添加进输入法列表:

点击“Close”关闭。

9. 回到“Terminal”命令行,Ctrl + 空格键切换到拼音输入法:

我相信大部分人也是受够了 Linux 自带的这个字体:

所以我们迫切需要更换一个新的字体!

对编程而言,比较合适的字体需要满足几个条件:

  • 易于识辨,如数字 1、0 和字母 l、O 可以很好的区分,两个单引号('')和双引号(")可以区分;
  • 符号(如 # % $ * \)与字母混杂在一起不太丑;
  • 必须是等宽字体

这里使用 dejavu sans mono 字体。

10. 依次点击左上角的“System”->“Administration”->“Add/Remove Software”:

11. 在左侧搜索框输入“dejavu”,点击“Find”按钮,在结果中找到“Monospace sans-serif font faces”,最后点击“Apply”按钮,便会自动安装:

安装的过程中需要有 root 的授权,直接输入 root 的密码即可:

12. 回到“Terminal”命令行,请依次点击“Edit”->“Profile Preferences”,按下图所示设置,即可看到帅帅的字体:


13. 你还可以设置“Terminal”命令行的颜色风格,非常简单,但可以令你的逼格瞬间暴涨_

接下来让我们学习安装 VirtualBox 的增强工具以及共享文件夹设置吧!


7.安装VirtualBox增强工具及共享文件夹设置

相信大家已经受够了每次要从 VirtualBox 释放鼠标都要点击键盘右下角 Alt 键了吧?

有没有好办法可以解决这个麻烦事呢?答案是有的,那就是安装 VirtualBox 的“增强功能”!

有发现虚拟机“设备”选项栏处有“共享文件夹”、“共享粘贴板”和“拖放”这些听上去挺炫酷的功能,但设置打勾之后却一个都不能实现,很是苦闷……

其实,开启这些新技能√,需要做的……那就是安装 VirtualBox 的“增强功能”!

通常(其他操作系统),只需要点“安装增强功能...”便会自动安装成功了……

不幸的是,CentOS 如果没有进行配置,直接安装会出错:

大家按照以下步骤配置下就可以了:

1. 打开“Terminal”,切换到 root 权限:

2. 执行 yum install kernel-devel gcc 命令安装编译内核的相关文件(前边按照方式搭建这一步则不需要)

3. 执行 ln -s /usr/src/kernels/2.6.32-696.6.3.el6.i686/ /usr/src/linux 命令(注意:ln 的 l 是字母 L 的小写)

注意:由于你的 CentOS 内核版本号可能不完全和我的一致,所以在输入 ln -s /usr/src/kenrels/2 后按下 Tab 键让系统自动补全内核版本号才是正确的做法(如果按下 Tab 键无反应,请先执行 yum -y install kernel-devel 命令)。

4. 配置部分完成。点击“设备”->“安装增强功能...”,弹出对话框按照默认点击“OK”、“Run”即可:

5. 一般会自动安装了,期间会需要 root 的授权,输入 root 的密码即可:

注意:如果不会自动安装,请点击桌面那个光盘图标,然后点击里边的 autorun.sh 文件即可自动安装

6. 安装好后你发现鼠标已经可以自由地在虚拟机与主机之间穿梭了,没错,它自由了!忘掉那讨厌的 Alt 键吧!

接下来你不妨可以测试下打开共享粘贴板或者拖放的新技能√,你会发现都能用了。

不过经常有朋友反馈说 VirtualBox 的拖拽功能不大好用(可能是版本问题,我自己尝试也并非每次拖拽都能成功),所以下面给大家介绍一种更稳定的方案 —— 共享文件夹。

1. 点击“设备”->“共享文件夹”,如下依次点击:

2. 在主机创建一个待共享的文件夹,名字尽量用英文(我是创建在桌面,文件夹名字叫 share):

(注:有指出第一次不能点击自动挂载,不然极有可能在执行挂载命令时会报错,我这边倒是没发现这个问题……应该是官方一个未修复的 bug)

3. 切换到 root 权限,执行 mkdir /mnt/shareV 和 mount -t vboxsf share /mnt/shareV 命令,如下图:

注意:如果提示 /sbin/mount.vboxsf: mounting failed with the error: No such device,可能是没有载入内核模块 vboxfs ,执行 modprobe vboxsf 命令。

4. 测试下,成功看到主机共享过来的文件:

5. 虽然可以了,但是你下次重启虚拟机还是得切换到 root 权限,然后执行 mount -t vboxsf share /mnt/shareV 命令挂载才能使用共享文件夹,甚是不便!为了解决这个问题,我们执行 vi /etc/rc.d/rc.local 命令,在 re.local 文件最后一行添加挂载命令 mount -t vboxsf share /mnt/shareV:

这样每次重启共享文件夹就会自动进行挂载了!

当我们完成这一切之后,桌面那个光盘还是会在每次重启后自动挂载进来,我们要把它除掉,太碍眼了……

接下来让我们学习如何设置 VIM 编辑器吧。


8.设置VIM编辑器

这里我们需要简单配置一下我们的 Linux 下的编辑利器 VIM。这一节我们的目标是开启 VIM 的语法高亮、显示光标所在的位置以及自动缩进选项。对,就这三项,其它的我们统统不需要!

网上有很多 VIM 配置方案和插件可以使用,但这里不建议大家一开始学编程就用它们。因为 VIM 本来就很强大,原生态的东西先学习好了,以后更高级的配置方案和插件大家可以根据自己的需要进行设置和安装。

完整的 VIM 编辑器需要安装四个包:

  • vim-filesystem
  • vim-common
  • vim-enhanced
  • vim-minimal

可惜我们在安装完 CentOS 之后,系统默认自带是 vim-minimal 也就是最小安装版。而最小安装版是不支持语法高亮和自动缩进等选项的。

你可以通过以下命令查看本机已经存在的包,确认一下你的 VIM 是否已经安装:

rpm -qa|grep vim

如果 VIM 已经正确安装,则会显示上面四个包的名称。

可以看到我这里只显示 vim-minimal:

所以我需要补充安装 vim-filesystem、vim-common 和 vim-enhanced,执行以下命令,系统就会自动安装其它的组件:

yum -y install vim-enhanced

看,已经齐全了:

设置 vim 编辑环境有两种形式:

一种直接修改 /etc/vimrc 文件,这种设置方法会作用于所有登录到 Linux 环境下的用户。另一种是在用户登录的~目录下创建一个 .vimrc 文件,在其中进行自己习惯的编程环境的设置,这样当别的用户使用时并不相互影响。

一般情况下我们不提倡第一种方式,因为 Linux 是多用户的,每个人都有自己的编程习惯与环境,你不能强迫别人按你的风格和习惯来做事(除非你是 BOSS),因此在工作环境中我们提倡第二种设置方式。

不过虚拟机就我们自己学习使用而已,所以这里还是任性的采用第一种方案 —— 修改 /etc/vimrc 文件。

其实默认的语法高亮以及光标所位置显示已经默认为我们打开了,我们只需要再加多一个自动缩进就 OK 啦!

做法:

vim /etc/vimrc

增加:

set cindent

设置了 cindent 选项,VIM 便会根据 C 语言的语法自动地调整缩进的长度啦。

最后,su fishc 切换到普通账号,输入 alias 命令确认下是否为 vim 取了“别名”vi:

如果没有的话输入命令 alias vi = vim 即可,这样以后我们就可以少打一个字母了……

VIM 可以说是世界上最伟大的编辑器,你肯定很渴望学习如何操作它吧!


9.Vim的使用

https://fishc.com.cn/forum-331-1.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,713评论 0 10
  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 4,477评论 0 16
  • 前言 近期在准备搭建一个vue.js+node.js全栈开发的社区,之前由于没有云服务器搭建经验,这篇文章做一下相...
    技术宅小青年阅读 4,427评论 1 30
  • 1.描述计算机的组成及其功能 (一)计算机的组成 1.CPU 2.CPU风扇 3.BIOS 4.内存 5.硬盘 6...
    whamai阅读 1,431评论 0 1
  • 以前就知道蜂拥而上,而且基本意思大概了解,但是真的没用上过。至于蜂蛹,没听过,没看到过,无法想象蜂蛹而上是怎样的场...
    遇见英语阅读 1,304评论 0 2