OS实验——Lab0串讲
本文最后更新于:2024年4月22日 晚上
操作系统Lab0串讲
Linux基本操作命令
ls
ls命令用于列出(list)指定路径下的文件。
1 |
|
touch
touch 命令用于创建一个新的文件。
1 |
|
mkdir
mkdir 命令用于创建目录(make directory)。
1 |
|
cd
mkdir 命令用于创建目录(make directory)。
1 |
|
rmdir
rmdir命令用于 删除空的目录(remove directory)。
1 |
|
rm
rm 命令用于删除(remove)文件,也可以将某个目录及其下属所有文件及其子目录全部删除。
1 |
|
cp与mv
复制(copy)与移动(move)。
1 |
|
1 |
|
cat
cat 命令用于拼接(concatenate)文件并输出到标准输出。也可用于查看单个文件内容。
1 |
|
head
head 命令用于输出文件首部内容。
1 |
|
tail
touch 命令用于创建一个新的文件。
1 |
|
ps
ps 命令用于显示当前进程状态(process status)。
1 |
|
kill
kill 命令用于向进程发送信号(并非仅有杀死进程的功能)。
1 |
|
sudo
sudo 命令用于以超级用户(superuser,或称 root)权限执行命令。
1 |
|
Vim常用功能
编辑器的模式
光标移动
命令模式下:
操作 | 含义 |
---|---|
<n>G或:<n> | n 为数字。移动到这个文件的第 n 行 |
gg | 移动到文件的第一行 |
Ctrl+F | 向前(forward)翻页 |
Ctrl+B | 向后(backward)翻整页 |
搜索替换
命令模式下:
操作 | 含义 |
---|---|
/<word> | 文件下寻找名为 <word>的字符串。 |
:%s/<word1>/<word2>/g | 在全文中寻找 <word1>字符串,并将该字符串取代为 <word2> |
剪切、复制、粘贴
命令模式下:
操作 | 含义 |
---|---|
[n]dd | 删除(delete)游标所在的一行或 n 行,用 p/P 可以粘贴(实际更类似于剪切) |
[n]yy | 复制(yank)游标所在的一行或 n 行,用 p/P 可以粘贴 |
p/P | p 将已复制的数据粘贴(paste)在光标下一行,P 则为粘贴在光标上一行 |
u | 复原(undo)前一个动作 |
可视模式下(命令模式输入 操作 v/V ),可以通过鼠标或光标批量选择文本段:
操作 | 含义 |
---|---|
d | 剪切选择文本 |
y | 复制选择文本 |
p | 粘贴选择文本 |
u | 复原(undo)前一个动作 |
GCC编译器的使用
1 |
|
- gcc test.c 默认生成名为 a.out 的可执行文件
- gcc test.c -o test 使用 -o 选项编译链接生成 test 的可执行文件
- gcc -c test.c -o test.o 使用 -o -c 选项仅编译生成名为 test.o 的目标文件
Makefile编写
target、dependencies、command 是 Makefile 的基础。
1 |
|
- target 是构建 (build) 的目标,可以是目标文件、可执行文件,也可以是一个标签。
- dependencies 是构建该目标所需的其他文件或其他目标。
- command 是构建该目标所需执行的指令。每一个指令 (command) 之前必须按一次制表符键来控制间隔,而不能是空格,否则 make 会报错。
如果想要构建 target,那么首先要准备好 dependencies,接着执行 command 中的命令,最终完成构建 target。
Git使用方法
见“OS假期预习(一)——Linux,Git与Shell脚本”,此处略。
grep、sed、awk
sed 是一个文件处理工具,可以将数据行进行替换、删除、新增、选取等特定工作。
1 |
|
awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
1 |
|
这个命令的格式为 awk ‘pattern action’ file ,pattern 为条件,action 为命令,le 为文件。命令中出现的 $n 代表每一行中用空格分隔后的第 n 项。所以该命令的意义是文件 my.txt 中所有第一项大于 2 的行,输出第一项和第三项。
1 |
|
-F选项用来指定用于分隔的字符,默认是空格。所以该命令的 $n 就是用 ,
分隔的第 n 项了。