在Linux环境下简单编程学习心得
linux编程过程
在上周的《信息安全设计基础》的课程学习中学习到了在虚拟的linux环境下简单的编程。学习过程中接触到了vim、gcc和gcd在实验楼中,也利用了实验楼的环境完成了实验。
在实验楼里模拟出来的环境的确方便了学习,但是因为会有时间限制,有些知识就学的不够精通,于是又在自己的电脑上的虚拟机再次练习尝试,结果就发现遇到了很多问题。
-
编译原理
首先需要了解vim、gcc和gcd的分别的作用是什么。
vim:用来编写程序使用,写入代码的.c源文件
-
gcc:用来编译源文件,共有4个步骤
- 预处理阶段:使用预处理器(cpp)将源程序加工为.i格式的被修改源程序
- 编译阶段:使用编译器(ccl)将上一步的.i格式的文件加工为.s格式的汇编程序
- 汇编阶段:使用汇编器(as)将上衣步的.s文件加工为.o格式的可重定位的目标程序(二进制)
- 链接阶段:使用链接器(ld)将上一步的.o格式的文件加工为可执行目标程序(二进制)
gcd:调试程序,当程序不在是简单的Hello Linux时候 就需要设断点来确认各个函数的可行性。
而在实验楼练习的
vimtutor
是一种简化程序员使用的编程的操作练习,提高键的功能组合,提高编程的能力使用的。
在实验中遇到的问题和解决过程
- 如何进入root账户
-
在普通用户进入root用户:
- 首次启用: XXX:~$ sudo passwd root [sudo] password for XXX:输入密码 确认:输入密码 再确认:再次输入密码 提示成功更新密码 此时已经root用户已经启用 - 二次启用: XXX:~$su root 密码:输入密码 此时已经进入到了root用户 - 退出toot用户: 键入exit就可以退出到普通用户进行后续操作
-
安装gcc
首先我的linux里面并没有安装gcc,在网上百度的教程,首先需要进入root账户,之后键入yum install gcc。
然而显示了需要提示到root用户。起初我对于系统还不太明白,通过查询知识发现有普通用户和root用户,root用户可以对电脑的的更高级操作进行授权。
进入了root用户,再次使用
yum install gcc
,提示依然有错误,显示E:无法获得锁/var/lib/dpkg/lock-open
后来也通过查询出现这种原因的主要是因为软件更新或者安装时出现错误。删除掉两个临时文件就好
通过键入代码`sudo rm/var/lib/dpkg/lock sudo /var/cache/apt/archive/lock`成功的解决了问题。
后来在博客园看到一篇关于linux学习心得,看到了一个
** ubuntu默认的软件包管理器不是yum,而是dpkg,**安装软件时用apt-get,命令代码为 `sudo apt-get install XX`
并给出建议:在ubuntu下最好不要安装yum,不然会出现奇怪的问题
之后是使用命令行sudo apt-get install gcc 成功的下载安装了gcc
-
源的调整
首先软件源:软件源是Linux系统免费的应用程序安装仓库,很多的应用软件都会这收录到这个仓库里面。深度操作系统继承了debian和ubuntu使用命令apt-get在软件仓库中搜索、安装、升级、卸载软件,基于Ren Hat的多数Linux则使用yum命令。也有少数Linux使用自己的包管理系统,如YlmfOS的Ypk,SUSE的YaST,Gentoo的Portage等。主要时apt-get的使用。
在安装gcd时候遇到了问题,无法安装。后来检查是因为源需要更新,后来通过看博文使用了
sudo apt-get update
解决了问题。不仅可以用代码解决这个问题,也可以使用系统设置来跟新源
心得体会
发完上周的博客总结,但总是觉得知识并没有掌握透彻,上周的学习重点并没有把握住,之后在又再次重新操作了一下,的确不出所料,还是存在很多问题的,还有一些很细节的问题,如何进入到下一级文件夹,退出上一及,如何再编译,如何删除文件,这些命令看似简单但却常用,不加以练习很容易弄混肴。
-
编译结果
经过vim的编写和gcc的运行得到了结果
编译了操作一遍后,对这个掌握的也更加透彻,对于博客中涉及到的gcc的命令为什么gcc 20145335.c -o 2014335和gcc 20145335.c -s 20145335 不同,这种简单的问题就会自然而解,产生的知识中间文件,不同阶段就有不同的文件产生,知道我学习的能力和理解能力一般,但还是需要付出努力去学习。The best way to predict the future is to invent it.