一、安装实验环境
在虚拟机上使用安装好的ubuntu实验环境
- 下载安装VMware虚拟机软件或VirtualBox虚拟机软件
二、使用实验工具
1、shell命令:ls、cd、rm、pwd、mkdir、find······
- 基于bash (Bourne-Again SHell )
- 完成对文件、目录的基本操作
2、系统维护工具:apt、git
apt:安装管理各种软件
高级打包工具(英语:Advanced Packaging Tools,缩写为APT)是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。
搜索
在终端里输入:
apt-cache search <package>
这样系统会列出与<package>
名称相匹配的包。
安装
在终端里输入:
apt-get install <package>
这样系统会自动下载<package>
以及所有的依存包,同时进行包的安装。
移除
在终端里输入:
apt-get remove [--purge] <package>
这样系统会自动移除<package>
以及任何依此存包的其它包。 --purge指明包应被完全清除。
升级
在终端里输入:
apt-get update
这样系统会自动由映射点更新包列表,如果想安装最新包,必须先运行一次。每次修改了 /etc/apt/sources.list后,也必须运行一次。
在终端里输入:
apt-get upgrade [-u]
这样系统会自动将所有已经安装在系统内的包升级为最新版本。如果一个包改变了依存关系,而需要安装一个新的包时,它将不会被升级,而是标识成hold。如果某个包被设置hold标号,就不会被升级。
在终端里输入:
apt-get dist-upgrade [-u]
和apt-get upgrade类似,dist-upgrade会安装和移除包来满足依存关系,因此具有一定的危险性。
彩蛋
在终端输入apt-get -h
会在末尾出现“This APT has super cow power(本APT具有超级牛力)。
在终端输入apt-get moo
会在屏幕上显示一头牛。
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
而apt
系列的另一个名为"apt-build"
的软件包也具有相似的功能:
$ apt-build moo
(__) ~
(oo) /
_____\/___/
/ /\ / /
~ / * /
/ ___/
*----/\
/ \
/ /
~ ~
..."Have you danced today? Discow!"...
(意为:今天你跳舞了吗?迪斯可!)
软件编写者特地将Disco(迪斯可)一词改为"Discow",以体现"Cow"(奶牛)之意。
git:开发版本维护软件
git(/ɡɪt/,关于这个音频文件 音频 帮助·信息,吉特)是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。
git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
3、源码编辑工具:Eclipse-CDT、understand、gedit、vim
-
Eclipse-CDT:基于Eclipse的C/C++集成开发环境跨平台、丰富的分析理解代码的功能可与qemu结合, 联机源码级Debug uCore OS。
-
Understand:跨平台、丰富的分析理解代码的功能Windows上有类似的sourceinsight软件
-
gedit:Linux中的常用文本编辑Windows上有类似的notepad++
-
vim: Linux/unix中的传统编辑器类似有emacs等可通过exuberant-ctags、cscope等实现代码定位
4、源码比较工具:diff、meld
比较不同目录或不同文件的区别
diff是命令行工具,使用简单。
diff是在UNIX系统上的一个工具程序,它可以比较两个文件之间的不同。通常它被用来比较同一个文件,在不同版本间的差异。类似文件比较实用程序的输出也称为“ diff”。就像使用“ grep ”一词来描述搜索操作一样,“ diff ”一词成为计算数据差及其结果的通用术语。
https://en.wikipedia.org/wiki/Diff
diff 命令是 Linux 下自带的一个强大的文本比对工具,而且使用起来非常方便。
使用方法:教你一招Linux下文本比对方法
最好的工作方式是团队的有效沟通,在任何一个时刻,让大家知道你在修改哪些文件。
meld是图形界面的工具,功能相对直观和方便
Meld是针对开发人员的可视化差异和合并工具。Meld可帮助您比较文件,目录和版本控制的项目。它提供文件和目录的双向比较和双向比较,并支持许多流行的版本控制系统。
官网:http://meldmerge.org/
Ubuntu 上安装打开终端,键入下面命令并回车即可完成安装。
$ sudo apt install meld
5、开发编译调试工具:gcc 、gdb 、make
- gcc:C语言编译器
- gdb:执行程序调试器
- make:软件工程管理工具,make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。
6、硬件模拟器:qemu
qemu可模拟多种CPU硬件环境,本实验中,用于模拟一台intel x86-32的计算机系统
“Qemu”是一个广泛使用的开源计算机模拟器和虚拟机。"
当作为模拟器时,可以在一种架构(如x86 PC)下运行另一种架构(如ARM)下的操作系统和程序。通过使用动态转换,它可以获得非常好的性能。
作为虚拟机时,QEMU可以使用其他虚拟机管理程序(如 Xen 或 KVM)来使用CPU扩展(HVM)进行虚拟化,通过在主机CPU上直接执行客户机代码来获得接近于宿主机的性能。
参考资料:
■ apt-get
apt软件包管理
■ gcc
Gcchowto
Compiling Cpp
C Cpp IDE
C语言简要语法指南
■ gdb
用GDB调试程序
■ make & makefile
跟我一起写Makefile
Shell编程基础
高级Bash脚本编程指南
■ understand
understand代码分析工具安装&分析代码
代码阅读分析工具Understand 2.0试用
■ meld
Meld:可视化的文件及目录比较工具
■ qemu
QEMU (简体中文)
■ Eclipse-CDT
如何在Ubuntu中使用Eclipse + CDT开发C/C++程序
参考:https://www.bilibili.com/video/av32411771