OS实验——Lab0串讲

本文最后更新于:2024年4月22日 晚上

操作系统Lab0串讲

Linux基本操作命令

ls

ls命令用于列出(list)指定路径下的文件。

1
2
3
4
5
ls
用法:ls [选项]... [文件]...
选项(常用):
-a 不隐藏任何以. 开始的项目
-l 每行只列出一个文件

touch

touch 命令用于创建一个新的文件。

1
2
touch
用法:touch [选项]... [文件名]...

mkdir

mkdir 命令用于创建目录(make directory)。

1
2
mkdir
用法:mkdir [选项]... 目录...

cd

mkdir 命令用于创建目录(make directory)。

1
2
cd
用法:cd [选项]... 目录...

rmdir

rmdir命令用于 删除空的目录(remove directory)。

1
2
rmdir
用法:rmdir [选项]... 目录...

rm

rm 命令用于删除(remove)文件,也可以将某个目录及其下属所有文件及其子目录全部删除。

1
2
3
4
5
rm
用法:rm [选项]... 文件...
选项(常用):
-r 递归删除目录及其内容,如果不加这个命令,删除一个有内容的文件夹会提示不能删。
-f 强制删除。忽略不存在的文件,不提示确认

cp与mv

复制(copy)与移动(move)。

1
2
3
cp
用法:cp [选项]... 源文件... 目录
选项(常用):-r 递归复制目录及其子目录内的所有内容
1
2
mv
用法:mv [选项]... 源文件... 目录

cat

cat 命令用于拼接(concatenate)文件并输出到标准输出。也可用于查看单个文件内容。

1
2
cat
用法:cat [选项]... [文件]...

head 命令用于输出文件首部内容。

1
2
3
4
5
head
用法:head [选项]... [文件]...
选项(常用):
-n <n> 显示前 <n> 行内容
-c <n> 显示前 <n> 个字节内容

tail

touch 命令用于创建一个新的文件。

1
2
3
4
5
6
tail
用法:tail [选项]... [文件]...
选项(常用):
-n <n> 显示末尾 <n> 行内容
-c <n> 显示末尾 <n> 个字节内容
-f 当文件增长时,输出后续添加的数据(适用于文件不断变化的情况,如日志文件)

ps

ps 命令用于显示当前进程状态(process status)。

1
2
3
4
5
ps
用法:ps [选项]...
选项(常用):
-e-A 显示所有进程
-f 显示全部信息

kill

kill 命令用于向进程发送信号(并非仅有杀死进程的功能)。

1
2
3
4
kill
用法:kill [选项] [pid]...
选项(常用):
-s <s> 或 -<s> 指定要发送的信息(-9SIGKILL

sudo

sudo 命令用于以超级用户(superuser,或称 root)权限执行命令。

1
2
sudo
用法:sudo [命令]

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编译器的使用

C 语言程序从源代码到可执行文件

1
2
3
4
5
6
7
8
语法:gcc [选项]... [参数]...
选项(常用):
-o 指定生成的输出文件
-S 将 C 代码转换为汇编代码
-Wall 显示一些警告信息
-c 仅执行编译操作,不进行链接操作,生成可重定位的目标文件
-M 列出依赖
-Ipath 编译时指定头文件目录,使用标准库时不需要指定目
  • 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
2
3
4
5
target: dependencies
command 1
command 2
...
command n
  • target 是构建 (build) 的目标,可以是目标文件、可执行文件,也可以是一个标签。
  • dependencies 是构建该目标所需的其他文件或其他目标。
  • command 是构建该目标所需执行的指令。每一个指令 (command) 之前必须按一次制表符键来控制间隔,而不能是空格,否则 make 会报错。

如果想要构建 target,那么首先要准备好 dependencies,接着执行 command 中的命令,最终完成构建 target。

Git使用方法

见“OS假期预习(一)——Linux,Git与Shell脚本”,此处略。

grep、sed、awk

sed 是一个文件处理工具,可以将数据行进行替换、删除、新增、选取等特定工作。

1
2
3
4
5
6
7
8
9
10
11
12
sed
sed [选项] '命令' 输入文本
选项(常用):
-n:安静模式,只显示经过sed处理的内容。否则显示输入文本的所有内容。
-i:直接修改读取的档案内容,而不是输出到屏幕。否则,只输出不编辑。
命令(常用):
[行号]a[内容]:新增,在行号后新增一行相应内容。行号可以是“数字”,在这一行之后新增,也可以是“起始行,终止行”,在其中的每一行后新增。当不写行号时,在每一行之后新增。使用$表示最后一行。后面的命令同理。
[行号]c[内容]:取代。用内容取代相应行的文本。
[行号]i[内容]:插入。在当前行的上面插入一行文本。
[行号]d:删除当前行的内容。
[行号]p:输出选择的内容。通常与选项-n一起使用。
s/re(正则表达式)/string/:将re匹配的内容替换为string。

awk 是一种处理文本文件的语言,是一个强大的文本分析工具。

1
awk '\$1>2 {print $1,$3}' my.txt

这个命令的格式为 awk ‘pattern action’ file ,pattern 为条件,action 为命令,le 为文件。命令中出现的 $n 代表每一行中用空格分隔后的第 n 项。所以该命令的意义是文件 my.txt 中所有第一项大于 2 的行,输出第一项和第三项。

1
awk -F, '{print \$2}' my.txt

-F选项用来指定用于分隔的字符,默认是空格。所以该命令的 $n 就是用 , 分隔的第 n 项了。


OS实验——Lab0串讲
https://galaxy-jewxw.github.io/2024/03/06/OS2/
作者
Traumtänzer aka 'Jew1!5!'
发布于
2024年3月6日
许可协议