实验一:基本命令与开发工具
一、实验目的
- 熟练掌握Linux系统中的常用命令。
- 熟练使用Linux系统中的常用开发工具。
二、实验环境
Ubantu或Centos
三、实验内容
- Linux系统中的常用命令
- 文件操作命令
- 权限管理命令
- 网络管理命令
- 网络通信命令
- Vi编辑器
- Vi命令
- 模式切换
- GCC编译器
- GCC编译流程
- 单文件编译
- 多文件编译
四、实验步骤
1. Linux系统中的常用命令
文件操作命令
ls
:使用ls命令查看文件和目录
pwd
:使用pwd命令查看当前路径
mkdir
:使用mkdir命令创建目录
cd
:使用cd命令切换目录
touch
:使用touch更新文件wuwenjie的时间标签
cp
:使用cp命令复制文件
mv
:使用mv命令移动文件
rm
:删除目录或文件
rmdir
:使用rmdir命令删除目录
cat
:使用cat命令查看文件内容
more
:使用more命令查看文件内容
head/tail
:使用head/tail命令查看文件内容
权限管理命令
chmod
:使用chmod命令更改文件权限
chown
:使用chown命令更改文件所有者
chgrp
:使用chgrp命令更改文件的所属组
网络管理命令
ifconfig
:使用ifconfig命令查看网络配置
netstat
:使用netstat命令查看网络状态
ping
:测试网络状态
2. Vi编辑器
3. GCC编译器
GCC编译流程
gcc –E hello.c –o hello.i //预处理
预处理阶段主要处理源代码中以“#”开头的预编译指令和一些注释信息,处理规则如下:
- 删除代码中的
#define
,展开所有宏定义; - 处理条件编译指令,如
#if
、#ifdef
、#undef
等; - 将由
#include
包含的文件插入到预编译指令对应的位置,若文件中包含其它文件,同样进行替换 - 删除代码中的注释;
- 添加行号和文件标识;
- 保留
#pragma
编译器指令。
gcc –S hello.i –o hello.s //编译
在编译阶段,GCC会对经过预处理的文件进行语法、词法和语义分析,确定代码实际要做的工作,若检查无误,则生成相应的汇编代码文件。
gcc –c hello.s –o hello.o //汇编
该过程将编译后生成的汇编代码转换为机器可以执行的命令,即二进制指令,每一个汇编语句几乎都会对应一条机器指令。
gcc hello.o –o hello //链接
链接的过程是组装各个目标文件的过程,在这个过程中会解决符号依赖和库依赖关系,最终生成可执行文件。
./hello //执行
根据以上步骤编译程序,过程中可使用vi命令打开过程文件,查看文件内容。
单文件编译
gcc hello.c //直接编译生成可执行文件
默认可执行文件名为a.out,在命令行输入./a.out,观察执行结果。
多文件编译
使用vi编辑器创建文件_add.h、_add.c、_main.c,其中的代码分别如下:
_add.h
//头文件,加法函数声明
int _add(int a,int b);
_add.c
//加法函数定义
#include "_add.h"
int _add(int a,int b)
{
int c = a + b;
return c;
}
_main.c
//主函数文件
#include <stdio.h>
#include "_add.h"
int main()
{
int a = 10;
int b = 5;
int c = _add(a,b);
printf("c = %d\n",c);
return 0;
}
使用gcc编译多个文件
gcc _main.c _add.c –o _main //多文件编译生成可执行文件_main
./_main //执行可执行文件_main
执行结果为:c = 15
五、实验总结
对于Linux的学习,我们应该know how,再know why,适当的囫囵吞枣还是比较好的学习方式。