目录
一、推荐使用linux编写C的理由
学生编写的C言语相对是很简单的,根本不需要什么vc6.0、vs (visual studio) vs code (visual studio code editor),其实一个linux就够了!理由如下:
1.好友的提示:直接在linux上安装gcc,然后用vim编写C代码,编写完后gcc c代码 -o 名字,搞定!是不是很简单!如果中途出现还会提示在第几行,什么错误,和VC6.0一样的功能。下
面就是我故意写错一个代码的,直接指出哪里有问题,绿色的还有建议,不输于VC6和vs吧
2.就业前景和工资:在linux编写C/C++会比win上编写C/C++,无论就业和工资都会比win上好,不信你可以搜索一下招聘网站,现在win根本上都是推荐使用C#,linux上安装软件大部分还是C/C++
3.linux是必学的:学生学习C的基本上都是计算机专业吧,基本上是从事网络、开发、DBA、运维、运营等,这些都要求会Linux的,不少企业为了节约成本,基本上会选择linux,虽然win能破,但是大一点会被告的啊!一告就必输!而且一般不会招运维专职去维护,需要开发自己去维护。从事网络,会点linux比不会的选择会更些好,DBA和运维更不用说了,是必学的!
二、linux安装
我这里推荐的是使用Centos,原因是redhat的免费版本,稳定啊!而且教程也多,国人使用linux的,centos和ubuntu占了大部分。
linux安装也简单直接看我的教程《hualinux1.2 搭建篇:centos8最小化安装(图片版)》即可
三、在linux使用vim编写C
3.1 GCC和vim安装
上面教程说了centos8的安装,只需要安装上gcc和vim就可以编写C/C++啦 ,执行下面语句即可以安装
yum install -y vim gcc gcc-c++
在这里做一下说明:
vim:是一个文本编辑器,就相当于win的记事本
GCC:一般是运行C程序,当然也可以运行c++,推荐c++推荐使用gcc-c++
GCC-C++:运行C++
3.2 vim使用说明
vim使用比较简单,语法
vim 文件名
如果文件名不存在可以自动创建,比如我编写一个hello.c,可以使用如下:
vim hello.c
需要编辑的话直接按i键盘就行了,最下面会有提示“插入”
这时候就可以写代码了,比如我用C编写一个hello,如下
如果退出
1.按Esc键,这时最下面的“插入”字样会消失
2.按“:wq”回车,然后是写入并退出
使用gcc把它变成可执行程序,-o为out输出的意思
gcc hello.c -o hello
运行一下hello可执行程序
./hello
完成!!
3.3 gcc好友的提示功能
故意把代码写错,试下
vim hello.c,按i进入插入状态 ,就可以修改了,我这里把printf最后的f去掉
最后按esc,再按“:wq”退出
执行gcc hello.c -o hello,试下,变成如下图:
上面的提示友好吧!!
附录一、vim常用命令
- 各种插入模式
a
→ 在光标后插入o
→ 在当前行后插入一个新行O
→ 在当前行前插入一个新行cw
→ 替换从光标所在位置后到一个单词结尾的字符
- 简单的移动光标
0
→ 数字零,到行头^
→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$
→ 到本行行尾g_
→ 到本行最后一个不是blank字符的位置。/pattern
→ 搜索pattern
的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
- 拷贝/粘贴 (陈皓注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)
P
→ 粘贴yy
→ 拷贝当前行当行于ddP
- Undo/Redo
u
→ undo<C-r>
→ redo
- 打开/保存/退出/改变文件(Buffer)
:e <path/to/file>
→ 打开一个文件:w
→ 存盘:saveas <path/to/file>
→ 另存为<path/to/file>
:x
,ZZ
或:wq
→ 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车):q!
→ 退出不保存:qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:bn
和:bp
→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
花点时间熟悉一下上面的命令,一旦你掌握他们了,你就几乎可以干其它编辑器都能干的事了。
附录二、linux常用命令
2.1 cd命令
命令格式:cd <路径>
意义:cd是change directory 的缩写;cd命令后面跟一个路径,用于切换当前用户所在的路径,其中路径可以是绝对路径也可以是相对路径。
示例:
cd /system/bin 表示切换到/system/bin路径下。
cd logs 表示切换到logs路径下。
cd / 表示切换到根目录。
cd ../ 表示切换到上一层路径。
2.2 ls命令
命令格式:ls <参数> <路径>
意义:ls是list的缩写;ls命令后面可以跟一个路径或参数,也可以不跟,表示列出路径或当前目录下的所有文件信息。最常用的的参数是“-l",也就是“ls -l”命令。
示例:
ls / 显示根目录下的所有文件及文件夹。
ls -l /data 显示/data路径下的所有文件及文件夹的详细信息。
ls -l 显示当前路径下的所有文件及文件夹的详细信息
ls *l wc显示当前目录下面的文件数量。
2.3 cat命令
命令格式: cat <文件>
意义:cat是concatenate 的缩写。表示读取文件内容及拼接文件。
示例:
cat /sys/devices/system/cpu/online 读取 /sys/devices/system/cpu/路径下online文件内容。
cat test.txt 读取当前路径下test.txt文件内容。
2.4 rm命令
命令格式: rm <文件> 或 rm -r <文件夹>
意义:rm是remove 的缩写。用于删除文件或文件夹,常用参数-r -f,-r表示删除目录,也可以用于删除文件,-f表示强制删除,不需要确认。同样的,删除文件前需保证当前用户对当前路径有修改的权限。
示例:
rm -rf path 删除path。
rm test.txt 删除test.txt。
2.5 mkdir命令
命令格式: mkdir 文件夹
意义:mkdir是make directory 的缩写。用于创建文件夹。创建文件夹前需保证当前用户对当前路径有修改的权限。
示例:
mkdir /data/path 在/data路径下创建path文件夹。
mkdir -p a/b/c 参数 -p用于创建多级文件夹,这句命令表示在当前路径下创建文件夹a, 而a文件夹包含子文件夹b,b文件夹下又包含子文件夹c。
2.6 cp命令
命令格式: cp <文件><目标文件>或者cp -r<文件夹><目标文件夹>
意义:cp是copy 的缩写。用于复制文件或文件夹。
示例:
cp /data/logs /data/local/tmp/logs 复制/data路径下的logs到/data/local/tmp路径下。
cp 1.sh /sdcard/ 复制当前路径下的1.sh到/sdcard下。