跳转至

1、计算机基础与编程环境

1.1 在Linux系统终端中使用mkdir、cp、rm、mv等命令新建、复制、删除、移动文件或目录

在Linux系统终端中,可以使用一些常用的命令来新建、复制、删除、移动文件或目录。以下是这些命令的用法:

  • mkdir:创建一个新的目录

语法:mkdir [选项] 目录名

示例:mkdir testdir

  • cp:复制文件或目录

语法:cp [选项] 源文件/目录 目标文件/目录

示例:cp file1.txt file2.txt(复制文件) cp -r dir1 dir2(复制目录)

  • rm:删除文件或目录

语法:rm [选项] 文件/目录

示例:rm file.txt(删除文件) rm -r testdir(删除目录及其子目录和文件)

  • mv:移动或重命名文件或目录

语法:mv [选项] 源文件/目录 目标文件/目录

示例:mv file1.txt file2.txt(重命名文件) mv file.txt testdir/(移动文件到指定目录) mv dir1 dir2(重命名或移动目录)

以上是这些命令的基本用法,更多选项和用法可以通过在终端中输入相应的命令加上-h或--help选项来查看帮助文档。

1.2 在Linux系统终端中使用cd、pwd、ls等命令更改、显示目录路径和查看目录中的文件

在Linux系统终端中,可以使用一些常用的命令来更改、显示目录路径和查看目录中的文件。以下是这些命令的用法:

  • cd:更改当前目录

语法:cd 目录路径

示例:cd /home/user(进入用户目录) cd ..(返回上级目录) cd -(返回上一个目录)

  • pwd:显示当前目录路径

语法:pwd

示例:pwd(显示当前目录路径)

  • ls:列出目录中的文件

语法:ls [选项] [目录]

示例:ls(列出当前目录中的文件) ls /home/user(列出指定目录中的文件) ls -l(列出文件详细信息) ls -a(列出所有文件,包括隐藏文件)

1.3 在Linux系统下使用Gedit、Vim或Emacs等文本编辑工具编写代码

在Linux系统下,可以使用一些常用的文本编辑器工具来编写代码,例如 Gedit、Vim 和 Emacs。以下是这些工具的简单介绍:

  • Gedit:Gedit 是 Linux 系统中的一个简单易用的文本编辑器,可用于编写各种类型的文件,包括代码文件。它提供了基本的文本编辑功能,如语法高亮、自动缩进和代码折叠等。

在 Ubuntu 系统中,可以使用以下命令安装 Gedit:

sudo apt-get update sudo apt-get install gedit

  • Vim:Vim 是一个强大的文本编辑器,可以用于编写各种类型的文件,包括代码文件。它支持多种编辑模式,并提供了一些高级功能,如宏、自动完成和插件等。

在 Ubuntu 系统中,可以使用以下命令安装 Vim:

sudo apt-get update sudo apt-get install vim

  • Emacs:Emacs 是一个功能强大的文本编辑器,可用于编写各种类型的文件,包括代码文件。它提供了多种编辑模式和高级功能,如多窗口编辑、代码折叠和插件等。

在 Ubuntu 系统中,可以使用以下命令安装 Emacs:

sudo apt-get update sudo apt-get install emacs

以上是这些工具的简单介绍,它们都可以用于编写代码文件,选择合适的工具根据自己的喜好和需求即可。

1.4 熟悉g++、gcc等编译器以及优化、数学库等常见编译选项

1.g++:g++ 是 GNU C++ 编译器,可用于编译 C++ 程序。它基于 gcc,因此也支持大多数 gcc 的编译选项。

常见的编译选项包括:

  • -c:只编译不链接,生成目标文件;
  • -o:指定输出文件名;
  • -g:生成调试信息;
  • -Wall:开启所有警告信息;
  • -O:优化选项,包括 -O1、-O2 和 -O3 等级别,级别越高优化越强;
  • -I:指定头文件路径;
  • -L:指定库文件路径;
  • -l:链接库文件。

2.gcc:gcc 是 GNU C 编译器,可用于编译 C 程序。它也支持大多数 g++ 的编译选项,但不支持一些 C++ 特有的选项。

常见的编译选项与 g++ 类似,包括:

  • -c:只编译不链接,生成目标文件;
  • -o:指定输出文件名;
  • -g:生成调试信息;
  • -Wall:开启所有警告信息;
  • -O:优化选项,包括 -O1、-O2 和 -O3 等级别,级别越高优化越强;
  • -I:指定头文件路径;
  • -L:指定库文件路径;
  • -l:链接库文件。

除了编译选项,还有一些常用的数学库和优化选项可用于编译 C++ 或 C 程序:

  1. 数学库:常用的数学库包括 math.h 和 cmath。使用这些库可以方便地进行各种数学运算,如三角函数、指数函数、对数函数、幂函数等。
  2. 优化选项:编译选项中的 -O 选项可以用于优化程序的性能和大小。除此之外,还有一些优化选项可用于进一步优化程序,例如:

  3. -funroll-loops:展开循环,减少循环开销;

  4. -finline-functions:内联函数,减少函数调用开销;
  5. -fomit-frame-pointer:省略帧指针,减少栈空间开销。

​ 以上是一些常见的编译器选项,使用不同的选项可以达到不同的编译效果。具体使用时需要根据程序需求和系统环境进行选择。

1.5 在Linux系统终端中运行程序,并使用time命令查看程序用时

​ 在 Linux 系统中,可以使用终端来运行程序,并使用 time 命令来查看程序的用时。time 命令可以用于测量程序的运行时间、CPU 时间和系统资源使用情况。

以下是在 Linux 终端中运行程序并使用 time 命令查看程序用时的步骤:

  1. 打开终端并进入程序所在的目录。

  2. 编译程序。使用编译器(如 g++ 或 gcc)将源代码编译成可执行文件。例如,如果程序的源代码文件名为 main.cpp,可以使用以下命令编译程序:

  3. g++ -o program main.cpp

这将生成一个名为 program 的可执行文件。

  1. 运行程序。使用以下命令运行程序:
Text Only
1
./program
  1. 查看程序用时。在终端中输入以下命令:
Text Only
1
time ./program

这将运行程序,并在程序结束后输出程序的运行时间、CPU 时间和系统资源使用情况。

输出结果中的三个时间分别为:

  • 实际时间(real):程序从开始运行到结束的实际时间。
  • 用户 CPU 时间(user):程序在用户空间运行的 CPU 时间。
  • 系统 CPU 时间(sys):程序在内核空间运行的 CPU 时间。

输出结果中还包括程序的退出状态码和最大内存使用量等信息。

​ 注意,在使用 time 命令时,命令名和程序名之间需要加上空格。另外,time 命令并不是 Linux 系统默认安装的命令,如果系统中没有安装 time 命令,需要先安装它才能使用。在大多数 Linux 发行版中,time 命令通常包含在 GNU Coreutils 软件包中。可以使用以下命令来安装 GNU Coreutils:

C++
1
sudo apt-get install coreutils

或者,如果使用的是其他 Linux 发行版,可以根据具体情况使用相应的软件包管理器来安装 Coreutils。

1.6 了解调式工具gdb及其break、display、continue、step等命令

GDB是一款常用的调试工具,可以用于跟踪程序的运行过程,分析程序出现的问题。以下是关于GDB及其一些常用命令的介绍:

1.基本用法

使用GDB进行调试时,需要在编译程序时添加-g选项,以便生成调试信息。例如,在使用g++编译C++程序时,可以使用以下命令:

Text Only
1
g++ -g -o program program.cpp

这将生成一个名为program的可执行文件,并在其中嵌入调试信息。

要使用GDB调试程序,可以在终端中运行以下命令:

Text Only
1
gdb program

这将启动GDB,并在GDB提示符下等待用户输入命令。可以使用quit命令退出GDB。

2.设置断点

设置断点是GDB中最常用的命令之一。断点是指在程序中某个位置暂停程序的执行,以便进行调试。使用break命令可以在程序中设置断点。例如,要在程序的第10行设置断点,可以使用以下命令:

Text Only
1
break 10

这将在程序的第10行设置一个断点。在程序执行到该位置时,程序将停止执行,GDB将显示出当前的执行状态。

3.显示变量值

使用display命令可以在调试过程中显示变量的值。例如,要显示一个名为x的变量的值,可以使用以下命令:

Text Only
1
display x

这将在每次停止程序时显示变量x的值。

4.继续执行程序

使用continue命令可以让程序继续执行。例如,在程序停止执行时,可以使用以下命令继续执行程序:

Text Only
1
continue

这将让程序继续执行直到下一个断点或程序结束。

5.单步执行

使用step命令可以单步执行程序。例如,在程序停止执行时,可以使用以下命令单步执行程序:

Text Only
1
step

这将让程序执行一条语句并停止,GDB将显示出当前的执行状态。

6.其他命令

除了以上命令,GDB还提供了许多其他有用的命令,例如:

  • run:启动程序并开始调试。
  • next:执行当前行并停止在下一行,但是不会进入函数内部。
  • finish:执行当前函数直到返回,并停止在函数调用的下一行。
  • watch:设置一个监视点,当监视的变量的值发生改变时,程序会停止执行。

​ 总之,GDB是一个非常强大的调试工具,提供了许多有用的命令,可以帮助开发者快速定位程序中的问题。在实际开发中,熟练掌握GDB的使用方法是非常有必要的。