实验一.linux命令与编程基础实验

(没有上传图片)

实验一   Linux命令与编程基础实验

实验目的了解远程登录,学习putty这个软件,会运用它进行远程登录。学习和掌握Linux命令,了解GCC编译器及VI文字编辑器的运用,会简单的编程语言。

实验内容:

一.Linux命令实验:

使用puttyssh方式登录172.23.204.90服务器。登录后,

1. 更改自己的用户口令(复杂些,字母数字的组合);

       直接输入账号,然后提示输入密码,输入密码(密码不显示),直接回车即可。如果要修改密码的话,用passwd口令进行修改。将自己的密码改成字母数字的组合。

2. 查看自己的主目录(登录时自动进入的目录)是什么目录;

       输入pwd口令,会显示你所在的主目录名字。我的目录是:/home/sj0703

以长格式查看主目录下有哪些目录和文件(所有的);

输入ls –l口令,会显示主目录下所有的文件,包括文件的属性,大小,创建时间等。

3. 新建一个空文件,查看其属性信息;

       输入touch wxh口令,再输入ls -l口令。显示文件,查看刚刚所建文件的属性,属性值为-rw-rw-r--

chmod 777 更改该文件属性,更改后再查看属性信息;

输入chmod 777 wxh口令, 再输入ls -l口令。显示文件,查看刚刚所建文件的属性,属性值为-rwxrwxrwx

最后删除该文件。

输入rm wxh口令,删除wxh文件。用ls -l口令查看,确认删除成功。

4. 在主目录下新建一子目录vivi

       输入mkdir vivi口令,创建vivi目录。用ls -l口令查看,确认创建成功。

/tmp目录下的vivi-br-release.tar.gz拷贝至自己主目录下的vivi子目录;

在主目录下输入cp –a  /tmp/vivi-br-release.tar.gz  vivi口令,拷贝该文件。输入cd vivi口令,进入vivi目录,用ls -l口令查看,确认拷贝成功。

将该vivi打包文件解开。

vivi目录下输入tar –zxvf  vivi-br-release.tar.gz口令,进行解压。用ls -l口令查看,确认解压成功。

5. 查看passwd命令的权限:ll /usr/bin/passwd ,完整解释其权限特征。

    输入ll /usr/bin/passwd 口令,看到/usr/bin/passwd的权限为-r-s—x—x,说明passwd命令的权限被设置为SUID特殊权限,如果所有者是 root 的话,那么执行人就有超级用户的特权了。

查看临时文件目录/tmp权限:ll -d /tmp ,完整解释其权限特征。

输入ll –d /tmp口令,看到/tmp的权限为drwxrwxrwt,说明tmp目录的权限被设置为sticky-bit特殊权限,存放在该目录的文件仅准许其属主执行删除、 移动等操作。

二.Linux编程基础实验:

1. vi编辑器建立以下文件:

在主目录下输入vi,进入vi文本编辑器。首先进入的是编辑模式,输入i,进入插入模式才能编写代码,将下面的程序1直接复制。然后点ESC键,再输入ZZ,退出vi编辑器。

程序1hello.c

#include <stdio.h>

int main(void)

{

printf ("Hello world, Linux programming!/n");

return 0;

}

 

然后执行命令编译这段程序:

# gcc hello.c -o hello

查看可执行文件hello是否生成。

执行:

# ./hello

查看记录执行结果。

结果为:Hello world,Linux programming!

2. 分步编译hello.c

执行:

# gcc -E hello.c -o hello.i

观察hello.i的内容。

执行

# gcc -c hello.i -o hello.o

观察hello.o是否生成

生成hello.o文件

# gcc hello.o -o hello

观察hello是否生成

生成hello文件

 

 

3. vi编辑器建立以下文件:(步骤参考1

程序2illcode.c

#include <stdio.h>

void main(void)

{

long long int var = 1;

printf("It is not standard C code!/n");

}

执行:

# gcc -Wall illcode.c -o illcode

观察记录输出结果。

4. vi编辑器建立以下文件:(步骤参考1

程序3optimize.c

#include <stdio.h>

int main(void)

{

double counter;

double result;

double temp;

for (counter = 0;

counter < 2000.0 * 2000.0 * 2000.0 / 20.0 + 2020;

counter += (5 - 1) / 4) {

temp = counter / 1979;

result = counter;

}

printf("Result is %lf/n", result);

return 0;

}

首先不加任何优化选项进行编译:

# gcc -Wall optimize.c -o optimize

 

再使用time命令,大致统计出该程序在运行时所需要的时间:

# time ./optimize

接着使用优化选项来对代码进行优化处理:

# gcc -Wall -O optimize.c -o optimize

 

在同样的条件下再次测试一下运行时间:

# time ./optimize

对比分析两次执行的性能的差异。

 

5.自己编写一个使用了Makefile内部变量和隐含规则的的Makefile文件,并要求使用伪目标allclean

使用Make工具编译前面的hello.c文件,并查看编译结果和执行结果。

Make clean清掉上次的编译结果,更改编译器为arm-linux-gcc,重新make.

程序1

H=hello.o

CC=gcc

all:hello

hello:${H}

        ${CC} $^ -o $@

hello.o:hello.c

clean:

        rm -f *.o hello

程序2

H=hello.o

CC=arm-linux-gcc

all:hello

hello:${H}

        ${CC} $^ -o $@

hello.o:hello.c

clean:

        rm -f *.o hello

实验总结:

  通过该实验熟悉了linux命令,开始学习一个新知识的时候不要着急,慢慢来,而且linux命令不是一种死记硬背的东西,要通过动手操作才能真正的理解。每当将一个一个linux命令输入到电脑中时,它会真真实实的将结果给你显示在屏幕上,这样能更好的加深你所学的知识,这就是实验课的目的。有了linux命令学习的奠基,学习GCC编译器更容易上手,马上就都理解了。按照老师说的一步一步地完成了。可当做到最后一个实验时,有点困难了。这个需要自己编一个Makefile程序,上课的时候并没有好好听这,脑子里一片空白。不过自己坚持把课件从新看了一遍,再加上自己的动手操作。开始慢慢理解了,可遇到一个问题当我自定义的一个变量C等于gcc时,结果显示 cc –c –o hello.o  hello.c  而不是gcc –c –o hello.o hello.c。在这想了半天,老师上课的变量是CC 难道和这个名字有关系?自己在想,可又一想变量名肯定没问题。又看了看课件,发现这么一句话“如果用户在Makefile中定义了同名的变量,用户自定义变量将覆盖同名的环境变量”突然恍然大悟的感觉,难道CC是环境变量?自己把变量名改成了CC,果真结果对了。肯定了自己的猜想。成功的解决了这个问题。也终于完成了该实验。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值