I、准备工作:
1) 一个类UNIX系统,这里选择CentOS 6.9
2) 安装gcc编译器,方法很多,一种简单的安装方式:yum install gcc-c++ 注:yum install g++ 会失败,因为没有g++这个包
这种操作必须保证虚拟机网络连接;
Linux 命令符窗口的基础操作介绍
= 前提基础 =
Linux系统的路径写法有两种,一种是相对路径一种是绝对路径。
绝对路径都是以“/”开头的,比如/usr/bin/vi或者/home/zorro/,代表从根目录"/"开始计算的绝对路径。
相对路径都是不以“/”开头的,不如git/linux/或者work/testplan,代表从当前所在目录开始计算的相对路径。
如果想知道你现在所在的目录是什么可以借助 pwd命令查看。
linux最最常用的两个命令:cd和ls。
ls的意义是list directory contents。用法是:
ls [option].... [file]...
在linux的文档中中括号代表可选项,没有也可以执行。所以ls命令可以这样用:
1、直接执行"ls",代表查看当前所在目录的内容。
2、查看某个目录下的内容则在ls后面跟上路径名,路径名可以是绝对路径以可以是相对路径。
3、3、想看更详细一点的信息则可以用"-l"(注意是小写的L前面有个减号),linux系统下命令的选项一般都有减号跟着,如下图,可以看到除了内容名字外还有访问权限,属主属组,修改日期等信息。以"d"开头的代表是目录,以"-"开头的代表是普通文件。
ls命令还有很多用法,比如-d选项,还有很多别的。具体请运行“man ls”查看,退出查看可按Q键。
cd是一个内建命令,它不是一个单独的可执行文件,它是命令行解释器自带的。cd的用法很简单,就是cd后面接路径名,可以是绝对路径也可以是相对路径,代表进入这个路径。进入某个路径其实就是把这个路径作为当前所在路径,也就是相对路径的起点变了。
关于路径还有两个要说的地方,那就是"."和".."。“.”代表当前路径,".."代表当前路径的上一级目录的路径。比如执行“cd ..”就是退进到上一级目录,如果是"cd ../.."就是当前路径退两级。"ls ../zorr"就是查看上一级目录的zorr的内容。
还有几个常用的,touch可用于创建一个普通文件,mkdir可用于创建目录,less可以以只读方式打开一个文件。具体的可参考相应的man文档。
编辑器
linux下两大编辑器阵营,一个是emacs,一个是vi。
== vi ==
vi是Unix的传统编辑器,现在传承到了Linux下。常听到的vim可以理解为vi的升级版,在Fedora下如果你装了vim,那么你执行vi的时候实际上就是执行了vim。
第一步:安装
打开终端,在终端上执行
sudo yum install vim
回车,如果网络良好,yum会帮你计算安装包依赖然后给你一个需要安装的包列表,你只需要输入“y”回车就行了。如果一切顺利vim就已经安装到系统中了。
第二步:编辑
在终端执行
vi hello-vi-world.c
就会进入vi的界面
1
现在还内容还没有被写到文件里,如果想要保存则按照如下步骤进行:
1、按Esc键退出编辑模式。
2、输入一个":"冒号键,在左下角出现一个冒号。
3、输入一个"w"键,然后回车。你会看到下方提示已经written,说明保存成功了,这个文件也被自动创建。
如果要退出vi编辑器则把第三步的w换成q回车就退出了。
如果第三步想要保存退出,冒号后面写"wq"回车就行了,代表保存然后退出。或者直接写"x"回车也代表保存退出。
== emacs ==
安装emacs编辑器可以执行:
sudo yum install emacs
输入口令,然后y确认。
emacs编辑器是由开源软件的精神领袖Richard Stallman编写的,功能也非常强大。
在终端输入
emacs hello-em-world.c &
就会看到emacs启动后的界面
看到上下两部分,上部分是编辑的地方,下面是一个欢迎界面可以通过配置默认去掉它。手动去掉可以把光标放到上半部分,然后敲击Ctrl+x然后松手后再敲击“1”,这样就只能看到当前光标所在的编辑缓冲区了。注意Ctrl+x是一个常用的前缀组合键。
现在开始编辑,编辑一个简单的C程序,如下:
现在内容还是在缓冲区中,如果要保存可以使用组合键Ctrl+x然后再输入Ctrl+s,保存当前文件。
如果要退出则按:Ctrl+x然后再按Ctrl+c。这样就退出emacs了。
除上述俩种方法,最简单的就是 cat 文件,子啊命令窗口查看;
编译
要将hello-vi-world.c编译成可执行二进制文件,则执行:
gcc -o hello-vi-world hello-vi-world.c -Wall
如果没有语法错误就编译好了,我们用ls看一下。
看到一个带"x"权限(可执行权限)的绿色文件(不一定会显示颜色)。下面尝试执行一下试试,执行谁只要在终端上输入要执行的文件的路径名即可,比如输入./hello-vi-world(注意前面一个点),代表执行当前路径下的hello-vi-world文件。可以看到执行后输出的结果,可以自己尝试编译并执行hello-em-world.c。
gcc其实有很多很多功能,比如要想预编译hello-em-world.c文件可以执行
gcc -o hello-em-world.i hello-em-world.c
执行成功后就会出现一个hello-em-world.i的文件,可以用less,vi或emacs查看一下它的内容,就是经过预编译后的内容。
如果要进行编译,这里说的编译是纯粹的编译,就是把c代码编译成汇编代码,则可以执行:
gcc -S -o hello-em-world.s hello-em-world.i
把.i文件写为hello-em-world.c也行,就是跳过手动预编译直接完成预编译和编译两个过程。这时会得到一个hello-em-world.s文件,打开看一下,里面是编译好的使用于当前体系结构的汇编代码。
把汇编代码进行汇编可以执行:
gcc -c -o hello-em-world.o hello-em-world.s
把.s文件换成.c也行,就是自动完成预编译、编译和汇编三个过程。现在得到一个hello-em-world.o文件,这一个二进制文件,但不是最后的可执行二进制文件,因为它还缺少最后一步连接处理。
最后对.o文件进行连接,我们这里就一个.o文件所以简单,经常是需要有多个.o文件需要连接。连接执行:
gcc -o hello-em-world hello-em-world.o
如果把最后的.o文件写成.c,那就和最开始我们用hello-vi-world.c编译时示范的那样了。实际上那样是完成了预编译、编译、汇编和连接一连串的过程。