本内容按照CSP-S大纲要求攥写
(如果你不考提高组,其实可以不看的awa)
(1)在Linux系统终端中使用mkdir,cp、rm、mv等命令新建、复制、删除、移动文件或目录
mkdir命令:
mkdir命令的功能为创建一个目录
命令格式
mkdir [选项] DirName
命令功能
通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限(了解Linux文件-文件夹权限请点击这里)。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。
命令参数
-m 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。
–p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。
cp命令:
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
命令格式
cp [选项]... [-T] 源 目的
或者
cp [选项]... 源... 目录
或者
cp [选项]... -t 目录 源...
命令功能
将源文件复制至目标文件,或将多个源文件复制至目标目录。
命令参数
rm命令:
rm命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
命令格式
rm [选项] 文件…
命令功能
删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状。
命令参数
mv命令:
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
命令格式
mv [选项] 源文件或目录 目标文件或目录
命令功能
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令参数
(2)在Linux系统终端中使用cd,pwd,ls等命令更改、显示目录路径和查看目录中的文件
cd命令:
cd命令用于更改当前工作目录。
命令格式
cd [目录路径]
命令功能
通过 cd 命令可以切换到指定目录,改变当前工作目录。路径可以是绝对路径(从根目录开始)或相对路径(相对于当前目录)。
命令参数
无特定选项,通常直接输入目标目录的路径即可。
pwd命令:
pwd命令显示当前工作目录的完整路径。
命令格式
pwd
命令功能
输出当前所在目录的绝对路径,帮助用户了解自己在文件系统中的位置。
命令参数
无特定选项,直接使用即可。
ls命令:
ls命令用于列出目录中的文件和子目录。
命令格式
ls [选项] [目录]
命令功能
显示指定目录中的文件和目录列表。如果没有指定目录,则显示当前目录的内容。
命令参数
(3)在Linux系统下使用Gedit,Vim或 Emacs等文本编辑工具编写代码
下面是这些工具的基本使用方法:
GEDIT
Gedit 是 GNOME 桌面环境下的默认文本编辑器,提供图形化界面,非常适合初学者使用。
启动 Gedit
例如,gedit example.txt 会打开一个名为 example.txt 的文件。如果文件不存在,将会创建一个新文件。
基本功能
* 保存: 使用图形界面的菜单或按 Ctrl+S。
* 关闭: 使用图形界面的菜单或按 Ctrl+Q。
* 查找与替换: 通过菜单 查找 > 查找 或按 Ctrl+F。
VIM
Vim 是一个功能强大的文本编辑器,常用于编写代码和编辑配置文件。它是 vi 的改进版本,具有更多功能和更高的灵活性。
启动 Vim
例如,vim example.txt 会打开一个名为 example.txt 的文件。
基本操作
1. 进入插入模式: 按 i 键。
2. 返回命令模式: 按 Esc 键。
3. 保存文件: 在命令模式下输入 :w 然后按 Enter。
4. 保存并退出: 在命令模式下输入 :wq 或 :x,然后按 Enter。
5. 退出不保存: 在命令模式下输入 :q!,然后按 Enter。
6. 查找文本: 在命令模式下输入 /要查找的文本 然后按 Enter。
EMACS
Emacs 是一个高度可扩展的文本编辑器,广泛用于编程和文档编辑,具有丰富的插件和扩展功能。
启动 Emacs
例如,emacs example.txt 会打开一个名为 example.txt 的文件。如果未指定文件名,则会打开一个空的编辑窗口。
基本操作
1. 保存文件: 按 Ctrl+X 然后按 Ctrl+S。
2. 退出 Emacs: 按 Ctrl+X 然后按 Ctrl+C。
3. 查找文本: 按 Ctrl+S,然后输入要查找的文本。
4. 替换文本: 按 Alt+Shift+5 ,然后输入要替换的文本。
每个编辑器都有自己独特的操作方式和快捷键,选择适合自己工作流的工具可以提高效率。
(4)熟悉g++、gcc等编译器以及优化、数学库等常见编译选项
编译器基础
g++ / gcc 是 GNU 编译器集合的一部分,用于编译 C/C++ 程序。
编译 C++ 程序
优化选项
* -O0: 禁用优化,适用于调试。
* -O1: 基本优化,减少编译时间和运行时性能的平衡。
* -O2: 常用的优化选项,进行更多优化,适用于大多数情况。
* -O3: 更高级的优化,适合对性能有更高要求的程序。
* -Ofast: 包含 -O3 的所有优化,同时开启不完全符合标准的优化选项。
* -Os: 优化代码大小,适合内存受限的环境。
数学库
* -lm: 链接数学库,通常用于 C/C++ 程序中调用数学函数,如 sin(), cos(), sqrt() 等。
调试选项
* -g: 生成调试信息,用于调试程序。
警告选项
* -Wall: 启用大多数警告信息。
* -Wextra: 启用额外的警告信息。
其他常用选项
* -std=c++17: 指定 C++ 标准,替换 c++17 为其他标准如 c++14, c++20。
* -I<dir>: 添加头文件搜索路径。
* -L<dir>: 添加库文件搜索路径。
* -l<lib>: 链接指定的库文件。
(5)在Linux系统终端中运行程序,并使用time令查看程序用时(区分real time,sys time和user time)
在 Linux 系统中,您可以使用 time 命令来测量程序的执行时间。运行程序并查看时间信息的基本方法如下:
运行程序并查看时间
输出解释
time 命令会输出三种主要时间信息:
1. real: 实际经过的墙钟时间(从开始到结束的总时间),包括程序运行期间的所有等待时间。
2. user: 用户 CPU 时间,表示程序在用户态执行的总时间。
3. sys: 系统 CPU 时间,表示程序在内核态(系统调用)执行的总时间。
示例
假设您有一个名为 example 的程序:
输出可能如下:
* real 表示从程序开始到结束的总时间是 2.345 秒。
* user 表示程序在用户模式下消耗了 1.234 秒的 CPU 时间。
* sys 表示程序在系统模式下消耗了 0.456 秒的 CPU 时间。
(6)了解调试工具 gdb及其break, display, continue,step等命令
gdb(GNU 调试器)是一个强大的调试工具,用于调试程序中的错误。以下是一些基本的 gdb 命令及其用法:
启动 GDB
要启动 gdb,在终端中输入以下命令:
这将启动 gdb 并加载名为 your_program 的可执行文件。
基本命令
1. BREAK
设置断点,程序执行到断点时会暂停。使用 break 可以在指定的行、函数或地址处设置断点。
* 在特定行设置断点:
在源文件的第 42 行设置断点。
* 在特定函数设置断点:
在 main 函数的开始处设置断点。
2. DISPLAY
在每次程序暂停时自动显示一个表达式的值。设置后,display 会在每次暂停时显示指定的变量或表达式的值。
* 显示变量 x 的值:
每次程序暂停时都会显示 x 的当前值。
3. CONTINUE
继续执行程序,直到遇到下一个断点或程序结束。
* 继续程序执行:
程序将从当前暂停的地方继续执行,直到遇到下一个断点或程序结束。
4. STEP
逐行执行程序,进入函数调用中。
* 单步执行:
执行当前行,并进入该行调用的任何函数。
5. NEXT
类似于 step,但在执行函数调用时不会进入函数内部。
* 单步执行,但不进入函数:
执行当前行,但不会进入函数内部。
太多东西了,如果对你有帮助,还请点个赞❤️~~