-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlab0.html
More file actions
247 lines (246 loc) · 55.1 KB
/
Copy pathlab0.html
File metadata and controls
247 lines (246 loc) · 55.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="VuePress 2.0.0-rc.14">
<script>
(function() {
const userMode = localStorage.getItem('vuepress-reco-color-scheme') || 'auto';
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode === 'auto' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
})();
</script>
<title>Lab0实验报告 | Yunge Hu 's Blog</title><meta name="description" content="Just playing around">
<link rel="preload" href="/assets/style-DFiSfBVn.css" as="style"><link rel="stylesheet" href="/assets/style-DFiSfBVn.css">
<link rel="modulepreload" href="/assets/app-B51tXhJU.js"><link rel="modulepreload" href="/assets/lab0.html-DQt1B-xd.js">
<link rel="prefetch" href="/assets/timeline.html-CDRCyYXN.js" as="script"><link rel="prefetch" href="/assets/posts.html-Cm3Bj9S1.js" as="script"><link rel="prefetch" href="/assets/friendship-link.html-CPYWbDf2.js" as="script"><link rel="prefetch" href="/assets/1.html-BvGA5exa.js" as="script"><link rel="prefetch" href="/assets/1.html-CQiPtbSY.js" as="script"><link rel="prefetch" href="/assets/1.html-B91OJGi4.js" as="script"><link rel="prefetch" href="/assets/1.html-Tfqc0eqa.js" as="script"><link rel="prefetch" href="/assets/1.html-DkR1aWCw.js" as="script"><link rel="prefetch" href="/assets/1.html-9JnLqyKk.js" as="script"><link rel="prefetch" href="/assets/2.html-Bgp2cdo4.js" as="script"><link rel="prefetch" href="/assets/3.html-BrEt4hPg.js" as="script"><link rel="prefetch" href="/assets/index.html-BKyJy_kV.js" as="script"><link rel="prefetch" href="/assets/Install-Neo4j-in-Ubuntu-and-Use-Gremlin.html-D3zJqoKu.js" as="script"><link rel="prefetch" href="/assets/Neo4j.html-RU17f5ie.js" as="script"><link rel="prefetch" href="/assets/index.html-DTD_Tf27.js" as="script"><link rel="prefetch" href="/assets/README.zh.html-C95KaJWV.js" as="script"><link rel="prefetch" href="/assets/Javajibenchengxushejijiegou.html-Cop84p5k.js" as="script"><link rel="prefetch" href="/assets/Javamianxiangduixiangchengxusheji——duixiangyulei.html-RHrWrJ8D.js" as="script"><link rel="prefetch" href="/assets/Javamianxiangduixiangchengxusheji——jiekou、lambdabiaodashiyunabulei.html-B4BIhUeh.js" as="script"><link rel="prefetch" href="/assets/Javamianxiangduixiangchengxusheji——jicheng.html-CDNHmPwq.js" as="script"><link rel="prefetch" href="/assets/bingfa.html-BObwH6f-.js" as="script"><link rel="prefetch" href="/assets/yichangduanyanherizhi.html-Bw2Q646T.js" as="script"><link rel="prefetch" href="/assets/fanxingyujihe.html-ChyCepcN.js" as="script"><link rel="prefetch" href="/assets/index.html-B_tI2L4g.js" as="script"><link rel="prefetch" href="/assets/suoyincaozuo.html-M9SgPFiv.js" as="script"><link rel="prefetch" href="/assets/lab1.html-Dvm30kLN.js" as="script"><link rel="prefetch" href="/assets/lab2.html-gAWXyUFt.js" as="script"><link rel="prefetch" href="/assets/lab3.html-LQVGolsr.js" as="script"><link rel="prefetch" href="/assets/lab4.html-CF_2B461.js" as="script"><link rel="prefetch" href="/assets/lab5.html-2WxLf5I9.js" as="script"><link rel="prefetch" href="/assets/lab6.html-ueb45YH9.js" as="script"><link rel="prefetch" href="/assets/index.html-CjBzVZj0.js" as="script"><link rel="prefetch" href="/assets/404.html-Dk0UZDtj.js" as="script"><link rel="prefetch" href="/assets/Valine.min-Dm4Ijz6H.js" as="script"><link rel="prefetch" href="/assets/giscus-2a044aea-CdPDkb7_.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="theme-container series--no show-catalog"><header class="navbar-container not-open"><div class="navbar-inner"><div class="site-brand nav-item"><img class="logo" src="/logo.png" alt="Yunge Hu 's Blog"><a href="/" class="site-name can-hide">Yunge Hu 's Blog</a></div><div class="nav-item navbar-links-wrapper" style=""><div><form class="search-box" role="search"><input type="search" autocomplete="off" spellcheck="false" value><!----></form></div><nav class="navbar-links"><!--[--><div class="navbar-links__item"><a href="/" class="link router-link-active" aria-label="Home"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Home<!--]--></span></span><!--[--><!--]--></a></div><div class="navbar-links__item"><a class="link" href="https://github.com/gitDebuger/gitdebuger.github.io" target="_blank" rel="noopener noreferrer" aria-label="GitHub"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->GitHub<!--]--></span></span><span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><span class="xicon-container btn-toggle-dark-mode btn--dark-mode"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" style="width:20px;height:20px;font-size:20px;color:inherit;"><path d="M15 2h2v3h-2z" fill="currentColor"></path><path d="M27 15h3v2h-3z" fill="currentColor"></path><path d="M15 27h2v3h-2z" fill="currentColor"></path><path d="M2 15h3v2H2z" fill="currentColor"></path><path d="M5.45 6.884l1.414-1.415l2.121 2.122l-1.414 1.414z" fill="currentColor"></path><path d="M23 7.58l2.121-2.12l1.414 1.414l-2.121 2.121z" fill="currentColor"></path><path d="M23.002 24.416l1.415-1.414l2.12 2.122l-1.413 1.414z" fill="currentColor"></path><path d="M5.47 25.13L7.59 23L9 24.42l-2.12 2.12l-1.41-1.41z" fill="currentColor"></path><path d="M16 8a8 8 0 1 0 8 8a8 8 0 0 0-8-8zm0 14a6 6 0 0 1 0-12z" fill="currentColor"></path></svg></span><span class="xicon-container btn-toggle-menus"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" style="width:20px;height:20px;font-size:20px;color:inherit;"><circle cx="16" cy="8" r="2" fill="currentColor"></circle><circle cx="16" cy="16" r="2" fill="currentColor"></circle><circle cx="16" cy="24" r="2" fill="currentColor"></circle></svg></span></div></div></header><!----><!----><!----><!--[--><main class="page-container"><aside class="series-container"><!--[--><!--]--></aside><div class="page-content"><h1 class="page-title">Lab0实验报告</h1><div class="page-info"><span class="xicon-container left"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="xicon-icon" style="width:18px;height:18px;font-size:18px;color:inherit;"><path d="M16 4a5 5 0 1 1-5 5a5 5 0 0 1 5-5m0-2a7 7 0 1 0 7 7a7 7 0 0 0-7-7z" fill="currentColor"></path><path d="M26 30h-2v-5a5 5 0 0 0-5-5h-6a5 5 0 0 0-5 5v5H6v-5a7 7 0 0 1 7-7h6a7 7 0 0 1 7 7z" fill="currentColor"></path></svg><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Yunge Hu<!--]--></span></span><!----><span class="xicon-container left"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="xicon-icon" style="width:18px;height:18px;font-size:18px;color:inherit;"><path d="M11.17 6l3.42 3.41l.58.59H28v16H4V6h7.17m0-2H4a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2H16l-3.41-3.41A2 2 0 0 0 11.17 4z" fill="currentColor"></path></svg><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[--><!--[--><a href="/categories/OS/1.html" class="">OS</a><!--]--><!--]--></span></span><!----><!----></div><div class="theme-reco-md-content"><div><h1 id="lab0实验报告" tabindex="-1"><a class="header-anchor" href="#lab0实验报告"><span>Lab0实验报告</span></a></h1><h2 id="思考题" tabindex="-1"><a class="header-anchor" href="#思考题"><span>思考题</span></a></h2><h3 id="thinking-0-1" tabindex="-1"><a class="header-anchor" href="#thinking-0-1"><span>Thinking 0.1</span></a></h3><p>思考下列有关Git的问题。</p><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">touch</span> README.txt</span>
<span class="line"><span class="token function">git</span> status <span class="token operator">></span> Untracked.txt</span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token string">"This a test file"</span> <span class="token operator">></span> README.txt</span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span> <span class="token parameter variable">-A</span></span>
<span class="line"><span class="token function">git</span> status <span class="token operator">></span> Stage.txt</span>
<span class="line"><span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"student ID: 22371264"</span></span>
<span class="line"><span class="token function">cat</span> Untracked.txt</span>
<span class="line"><span class="token function">cat</span> Stage.txt</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>两次运行,文件 <code>README.txt</code> 分别位于**“未跟踪的文件”<strong>和</strong>“要提交的变更”**标签下。</p><p><img src="https://github.com/gitDebuger/2024-os-lab/blob/documents/pic/lab0-1.png?raw=true" alt="lab0-1"></p><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token builtin class-name">echo</span> <span class="token string">"new content<span class="token entity" title="\n">\n</span>"</span> <span class="token operator">>></span> README.txt</span>
<span class="line"><span class="token function">git</span> status <span class="token operator">></span> Modified.txt</span>
<span class="line"><span class="token function">cat</span> Modified.txt</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>本次运行,文件 <code>README.txt</code> 位于**“尚未暂存以备提交的变更”**标签下。</p><p>因为该文件已经被跟踪过,所以不会位于未跟踪标签下,而是相对于上次提交发生了变化,所以会位于已变更标签下。</p><p><img src="https://github.com/gitDebuger/2024-os-lab/blob/documents/pic/lab0-2.png?raw=true" alt="lab0-2"></p><h3 id="thinking-0-2" tabindex="-1"><a class="header-anchor" href="#thinking-0-2"><span>Thinking 0.2</span></a></h3><p>对应的命令如下:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token comment"># add the file</span></span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span></span>
<span class="line"><span class="token comment"># stage the file</span></span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span></span>
<span class="line"><span class="token comment"># commit</span></span>
<span class="line"><span class="token function">git</span> commit</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="thinking-0-3" tabindex="-1"><a class="header-anchor" href="#thinking-0-3"><span>Thinking 0.3</span></a></h3><p>使用的命令如下:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token comment"># 代码文件 print.c 被错误删除</span></span>
<span class="line"><span class="token function">git</span> checkout print.c</span>
<span class="line"><span class="token comment"># 或者</span></span>
<span class="line"><span class="token function">git</span> restore print.c</span>
<span class="line"><span class="token comment"># 代码文件 print.c 被错误删除后并且执行了 git rm print.c 命令</span></span>
<span class="line"><span class="token function">git</span> reset HEAD print.c</span>
<span class="line"><span class="token function">git</span> checkout print.c</span>
<span class="line"><span class="token comment"># 或者</span></span>
<span class="line"><span class="token function">git</span> reset HEAD print.c</span>
<span class="line"><span class="token function">git</span> restore print.c</span>
<span class="line"><span class="token comment"># 无关文件 hello.txt 已经被添加到暂存区</span></span>
<span class="line"><span class="token comment"># 在不删除此文件的前提下将其移出暂存区</span></span>
<span class="line"><span class="token function">git</span> <span class="token function">rm</span> <span class="token parameter variable">--cached</span> hello.txt</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="thinking-0-4" tabindex="-1"><a class="header-anchor" href="#thinking-0-4"><span>Thinking 0.4</span></a></h3><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token builtin class-name">echo</span> <span class="token string">"Testing 1"</span> <span class="token operator">>></span> README.txt</span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span> README.txt</span>
<span class="line"><span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"1"</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token string">"Testing 2"</span> <span class="token operator">>></span> README.txt</span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span> README.txt</span>
<span class="line"><span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"2"</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token string">"Testing 3"</span> <span class="token operator">>></span> README.txt</span>
<span class="line"><span class="token function">git</span> <span class="token function">add</span> README.txt</span>
<span class="line"><span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"3"</span></span>
<span class="line"><span class="token function">git</span> log</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>日志内容如下(更早的日志已省略):</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text" data-title="text"><pre class="language-text"><code><span class="line">commit daf67700a3390e0617f086e84521d72be2ad3cf8 (HEAD -> master)</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:15:18 2024 +0800</span>
<span class="line"></span>
<span class="line"> 3</span>
<span class="line"></span>
<span class="line">commit dbf59701cf1a15c4d8b93c137792bc1368166b57</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:15:03 2024 +0800</span>
<span class="line"></span>
<span class="line"> 2</span>
<span class="line"></span>
<span class="line">commit 009ed016c831acffacb54289c8f07e77a5537749</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:14:41 2024 +0800</span>
<span class="line"></span>
<span class="line"> 1</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>提交说明 <code>3</code> 的哈希值为 <code>daf67700a3390e0617f086e84521d72be2ad3cf8</code> 。</p><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">git</span> reset <span class="token parameter variable">--hard</span> HEAD^</span>
<span class="line"><span class="token function">git</span> log</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>日志内容如下(更早的日志已省略):</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text" data-title="text"><pre class="language-text"><code><span class="line">commit dbf59701cf1a15c4d8b93c137792bc1368166b57 (HEAD -> master)</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:15:03 2024 +0800</span>
<span class="line"></span>
<span class="line"> 2</span>
<span class="line"></span>
<span class="line">commit 009ed016c831acffacb54289c8f07e77a5537749</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:14:41 2024 +0800</span>
<span class="line"></span>
<span class="line"> 1</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>可以发现第三次提交的内容被清除了,回退到了第二次提交后的状态。</p><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">git</span> reset <span class="token parameter variable">--hard</span> 009ed016c831acffacb54289c8f07e77a5537749</span>
<span class="line"><span class="token function">git</span> log</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>日志内容如下(更早的日志已省略):</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text" data-title="text"><pre class="language-text"><code><span class="line">commit 009ed016c831acffacb54289c8f07e77a5537749 (HEAD -> master)</span>
<span class="line">Author: HuYunge <silver_wolf@hyg></span>
<span class="line">Date: Wed Mar 13 23:14:41 2024 +0800</span>
<span class="line"></span>
<span class="line"> 1</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>可以发现回到了第一次提交后的状态。</p><p>如果尝试回到最新提交也就是第三次提交后的状态,依次执行如下命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">git</span> reset <span class="token parameter variable">--hard</span> daf67700a3390e0617f086e84521d72be2ad3cf8</span>
<span class="line"><span class="token function">git</span> log</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>日志内容如下(更早的日志已省略):</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line">commit daf67700a3390e0617f086e84521d72be2ad3cf8 <span class="token punctuation">(</span>HEAD -<span class="token operator">></span> master<span class="token punctuation">)</span></span>
<span class="line">Author: HuYunge <span class="token operator"><</span>silver_wolf@hyg<span class="token operator">></span></span>
<span class="line">Date: Wed Mar <span class="token number">13</span> <span class="token number">23</span>:15:18 <span class="token number">2024</span> +0800</span>
<span class="line"></span>
<span class="line"> <span class="token number">3</span></span>
<span class="line"></span>
<span class="line">commit dbf59701cf1a15c4d8b93c137792bc1368166b57</span>
<span class="line">Author: HuYunge <span class="token operator"><</span>silver_wolf@hyg<span class="token operator">></span></span>
<span class="line">Date: Wed Mar <span class="token number">13</span> <span class="token number">23</span>:15:03 <span class="token number">2024</span> +0800</span>
<span class="line"></span>
<span class="line"> <span class="token number">2</span></span>
<span class="line"></span>
<span class="line">commit 009ed016c831acffacb54289c8f07e77a5537749</span>
<span class="line">Author: HuYunge <span class="token operator"><</span>silver_wolf@hyg<span class="token operator">></span></span>
<span class="line">Date: Wed Mar <span class="token number">13</span> <span class="token number">23</span>:14:41 <span class="token number">2024</span> +0800</span>
<span class="line"></span>
<span class="line"> <span class="token number">1</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>可以发现回到了第三次提交后的状态,并且第二次提交后的日志记录也被恢复了。</p><h3 id="thinking-0-5" tabindex="-1"><a class="header-anchor" href="#thinking-0-5"><span>Thinking 0.5</span></a></h3><p>依次执行命令:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token comment"># 控制台输出一行first</span></span>
<span class="line"><span class="token builtin class-name">echo</span> first</span>
<span class="line"><span class="token comment"># 文件一行内容second</span></span>
<span class="line"><span class="token builtin class-name">echo</span> second <span class="token operator">></span> output.txt</span>
<span class="line"><span class="token function">cat</span> output.txt</span>
<span class="line"><span class="token comment"># 文件一行内容third</span></span>
<span class="line"><span class="token builtin class-name">echo</span> third <span class="token operator">></span> output.txt</span>
<span class="line"><span class="token function">cat</span> output.txt</span>
<span class="line"><span class="token comment"># 文件两行内容</span></span>
<span class="line"><span class="token comment"># 第一行third</span></span>
<span class="line"><span class="token comment"># 第二行fourth</span></span>
<span class="line"><span class="token builtin class-name">echo</span> fourth <span class="token operator">>></span> output.txt</span>
<span class="line"><span class="token function">cat</span> output.txt</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>如果不添加重定向,默认输出到标准输出——控制台。</p><p>重定向时使用 <code>></code> 意为覆盖,使用 <code>>></code> 意为追加。</p><h3 id="thinking-0-6" tabindex="-1"><a class="header-anchor" href="#thinking-0-6"><span>Thinking 0.6</span></a></h3><p>文件 <code>command.sh</code> 的内容如下:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token shebang important">#!/bin/bash</span></span>
<span class="line"><span class="token assign-left variable">file</span><span class="token operator">=</span>test.sh</span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token string">'#!/bin/bash</span>
<span class="line">echo Shell Start...</span>
<span class="line">echo set a = 1</span>
<span class="line">a=1</span>
<span class="line">echo set b = 2</span>
<span class="line">b=2</span>
<span class="line">echo set c = a+b</span>
<span class="line">c=$[$a+$b]</span>
<span class="line">echo c = $c</span>
<span class="line">echo save c to ./file1</span>
<span class="line">echo $c>file1</span>
<span class="line">echo save b to ./file2</span>
<span class="line">echo $b>file2</span>
<span class="line">echo save a to ./file3</span>
<span class="line">echo $a>file3</span>
<span class="line">echo save file1 file2 file3 to file4</span>
<span class="line">cat file1>file4</span>
<span class="line">cat file2>>file4</span>
<span class="line">cat file3>>file4</span>
<span class="line">echo save file4 to ./result</span>
<span class="line">cat file4>>result'</span> <span class="token operator">></span> <span class="token variable">$file</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>文件 <code>test.sh</code> 的内容如下:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token shebang important">#!/bin/bash</span></span>
<span class="line"><span class="token comment"># 输出文本内容 Shell Start</span></span>
<span class="line"><span class="token builtin class-name">echo</span> Shell Start<span class="token punctuation">..</span>.</span>
<span class="line"><span class="token comment"># 输出文本内容 set a = 1</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token builtin class-name">set</span> a <span class="token operator">=</span> <span class="token number">1</span></span>
<span class="line"><span class="token comment"># 将变量a的值设置为1</span></span>
<span class="line"><span class="token assign-left variable">a</span><span class="token operator">=</span><span class="token number">1</span></span>
<span class="line"><span class="token comment"># 输出文本内容 set b = 2</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token builtin class-name">set</span> b <span class="token operator">=</span> <span class="token number">2</span></span>
<span class="line"><span class="token comment"># 将变量b的值设置为2</span></span>
<span class="line"><span class="token assign-left variable">b</span><span class="token operator">=</span><span class="token number">2</span></span>
<span class="line"><span class="token comment"># 输出文本内容 set c = a+b</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token builtin class-name">set</span> c <span class="token operator">=</span> a+b</span>
<span class="line"><span class="token comment"># 取变量a的值和变量b的值相加得到临时变量再取该临时变量的值赋给变量c</span></span>
<span class="line"><span class="token assign-left variable">c</span><span class="token operator">=</span>$<span class="token punctuation">[</span><span class="token variable">$a</span>+<span class="token variable">$b</span><span class="token punctuation">]</span></span>
<span class="line"><span class="token comment"># 输出文本内容 c = 3</span></span>
<span class="line"><span class="token comment"># 因为此时c的值为3</span></span>
<span class="line"><span class="token builtin class-name">echo</span> c <span class="token operator">=</span> <span class="token variable">$c</span></span>
<span class="line"><span class="token comment"># 输出文本内容 save c to ./file1</span></span>
<span class="line"><span class="token builtin class-name">echo</span> save c to ./file1</span>
<span class="line"><span class="token comment"># 输出c的值将标准输出重定向到file1</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token variable">$c</span><span class="token operator">></span>file1</span>
<span class="line"><span class="token comment"># 输出文本内容 save b to ./file2</span></span>
<span class="line"><span class="token builtin class-name">echo</span> save b to ./file2</span>
<span class="line"><span class="token comment"># 输出b的值将标准输出重定向到file2</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token variable">$b</span><span class="token operator">></span>file2</span>
<span class="line"><span class="token comment"># 输出文本内容 save a to ./file3</span></span>
<span class="line"><span class="token builtin class-name">echo</span> save a to ./file3</span>
<span class="line"><span class="token comment"># 输出a的值将标准输出重定向到file3</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token variable">$a</span><span class="token operator">></span>file3</span>
<span class="line"><span class="token comment"># 输出文本内容 save file1 file2 file3 to file4</span></span>
<span class="line"><span class="token builtin class-name">echo</span> save file1 file2 file3 to file4</span>
<span class="line"><span class="token comment"># 以覆盖形式输出file1文件的内容到file4文件</span></span>
<span class="line"><span class="token comment"># 此时file4中有一行 3</span></span>
<span class="line"><span class="token function">cat</span> file<span class="token operator"><span class="token file-descriptor important">1</span>></span>file4</span>
<span class="line"><span class="token comment"># 以追加形式输出file2文件的内容到file4文件</span></span>
<span class="line"><span class="token comment"># 此时file4中有两行</span></span>
<span class="line"><span class="token comment"># 第一行内容 3</span></span>
<span class="line"><span class="token comment"># 第二行内容 2</span></span>
<span class="line"><span class="token function">cat</span> file<span class="token operator"><span class="token file-descriptor important">2</span>>></span>file4</span>
<span class="line"><span class="token comment"># 以追加形式输出file3文件的内容到file4文件</span></span>
<span class="line"><span class="token comment"># 此时file4中有三行</span></span>
<span class="line"><span class="token comment"># 第一行内容 3</span></span>
<span class="line"><span class="token comment"># 第二行内容 2</span></span>
<span class="line"><span class="token comment"># 第三行内容 1</span></span>
<span class="line"><span class="token function">cat</span> file<span class="token operator"><span class="token file-descriptor important">3</span>>></span>file4</span>
<span class="line"><span class="token comment"># 输出文本内容 save file4 to ./result</span></span>
<span class="line"><span class="token builtin class-name">echo</span> save file4 to ./result</span>
<span class="line"><span class="token comment"># 以追加形式输出file4文件的内容到result文件</span></span>
<span class="line"><span class="token comment"># 此时result中有三行</span></span>
<span class="line"><span class="token comment"># 第一行内容 3</span></span>
<span class="line"><span class="token comment"># 第二行内容 2</span></span>
<span class="line"><span class="token comment"># 第三行内容 1</span></span>
<span class="line"><span class="token function">cat</span> file<span class="token operator"><span class="token file-descriptor important">4</span>>></span>result</span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>文件 <code>result</code> 的内容如下:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token number">3</span></span>
<span class="line"><span class="token number">2</span></span>
<span class="line"><span class="token number">1</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>解释说明见 <code>test.sh</code> 中的注释。</p><p>然后是两组代码对比:</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token comment"># Group 1</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token builtin class-name">echo</span> Shell Start <span class="token comment"># 输出 echo Shell Start</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">echo</span> Shell Start<span class="token variable">`</span></span> <span class="token comment"># 输出 Shell Start</span></span>
<span class="line"><span class="token comment"># Group 2</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token builtin class-name">echo</span> <span class="token variable">$c</span><span class="token operator">></span>file1 <span class="token comment"># 输出 echo $c>file1</span></span>
<span class="line"><span class="token builtin class-name">echo</span> <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">echo</span> $c<span class="token operator">></span>file1<span class="token variable">`</span></span> <span class="token comment"># 输出 空行</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>不使用反引号的内容会以字符串的形式输出,使用反引号包裹的内容会以指令形式执行,然后返回值作为整段代码的一部分继续执行。</p><h2 id="难点分析" tabindex="-1"><a class="header-anchor" href="#难点分析"><span>难点分析</span></a></h2><h3 id="makefile" tabindex="-1"><a class="header-anchor" href="#makefile"><span>Makefile</span></a></h3><ul><li>在Makefile文件中可以引用其他Makefile文件,通过多级Makefile实现对复杂程序的编译和链接。</li><li>使用 <code>.PHONY</code> 定义伪目标形成合理的生成层次。</li><li>在编写Makefile文件时使用通配符、隐式规则和自动变量简化文件编写。</li><li>定义变量实现代码的复用,同时便于修改。</li><li>使用 <code>VPATH</code> 和 <code>vpath</code> 指定搜索路径,避免手动硬编码路径,同时提高Makefile文件的泛用性。</li></ul><h3 id="shell-programming" tabindex="-1"><a class="header-anchor" href="#shell-programming"><span>Shell Programming</span></a></h3><ul><li><p>使用 <code>sed</code> 命令对文档进行删除、替换和查找等操作。</p></li><li><p>在使用命令时利用双引号对以 <code>$</code> 开头的字符串整体或部分进行值替换,从而执行更灵活的操作。</p></li><li><p>使用通配符进行批量操作。</p></li><li><p>使用管道将多个命令串联操作。</p></li><li><p>使用 <code>grep</code> 命令对文本执行特定的查找任务。</p></li><li><p>利用双圆括号的算数扩展功能执行运算和判断操作。</p></li><li><p>使用大括号将需要替换的部分包裹起来,使用 <code>&</code> 引用文件描述符指定的文件。</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">"<span class="token variable">${n}</span>p"</span> err.txt<span class="token operator">></span><span class="token file-descriptor important">&2</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div></li><li><p>在 <code>.sh</code> 文件中使用 <code>getopts</code> 和 <code>case</code> 对命令行参数进行解析。</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token keyword">while</span> <span class="token builtin class-name">getopts</span> <span class="token string">"f:q:p:sh"</span> opt<span class="token punctuation">;</span> <span class="token keyword">do</span></span>
<span class="line"> <span class="token keyword">case</span> <span class="token variable">$opt</span> <span class="token keyword">in</span></span>
<span class="line"> f<span class="token punctuation">)</span> <span class="token assign-left variable">FILE</span><span class="token operator">=</span><span class="token variable">${OPTARG}</span> <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> q<span class="token punctuation">)</span> <span class="token assign-left variable">CMD</span><span class="token operator">=</span><span class="token variable">${OPTARG}</span> <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> p<span class="token punctuation">)</span> <span class="token assign-left variable">PID</span><span class="token operator">=</span><span class="token variable">${OPTARG}</span> <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> s<span class="token punctuation">)</span> <span class="token assign-left variable">SORT</span><span class="token operator">=</span>true <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> h<span class="token punctuation">)</span> usage<span class="token punctuation">;</span> <span class="token builtin class-name">exit</span> <span class="token number">0</span> <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> ?<span class="token punctuation">)</span> usage<span class="token punctuation">;</span> <span class="token builtin class-name">exit</span> <span class="token number">1</span> <span class="token punctuation">;</span><span class="token punctuation">;</span></span>
<span class="line"> <span class="token keyword">esac</span></span>
<span class="line"><span class="token keyword">done</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>在 <code>awk</code> 命令中使用 <code>-v</code> 参数向传给 <code>awk</code> 的代码中传递变量的值。</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">awk</span> <span class="token parameter variable">-v</span> <span class="token assign-left variable">input</span><span class="token operator">=</span><span class="token variable">$CMD</span> <span class="token string">'{if(index($5,input)!=0){print $0}}'</span> <span class="token variable">$FILE</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div></li><li><p>使用 <code>awk</code> 命令利用其内置的代码执行功能对文本执行复杂的处理工作。</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">awk</span> <span class="token parameter variable">-v</span> <span class="token assign-left variable">input</span><span class="token operator">=</span><span class="token variable">$PID</span> <span class="token string">'{</span>
<span class="line"> pid[NR] = $2</span>
<span class="line"> ppid[NR] = $3</span>
<span class="line"> } END {</span>
<span class="line"> p = input</span>
<span class="line"> for (i = 1; p != 0; ++i) {</span>
<span class="line"> if (pid[i] == p) {</span>
<span class="line"> p = ppid[i]</span>
<span class="line"> print p</span>
<span class="line"> i = 0</span>
<span class="line"> }</span>
<span class="line"> }</span>
<span class="line"> }'</span> <span class="token variable">$FILE</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>使用 <code>sort</code> 命令对文本进行排序。</p><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="line"><span class="token function">sort</span> <span class="token parameter variable">-k4nr</span> <span class="token parameter variable">-k2n</span> <span class="token variable">$FILE</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div></li></ul><h2 id="实验体会" tabindex="-1"><a class="header-anchor" href="#实验体会"><span>实验体会</span></a></h2><ul><li>限时实验难度并不低,课下必须做好充足的准备。</li><li>注意读题,确保文件路径正确。</li><li>题目中的tips对解题能够提供很多帮助。</li><li>可以通过 <code>man</code> 查看命令说明文档,获取详细的使用信息。</li><li>确保检查无误后再进行提交,提交冷却时间会逐渐增加,影响做题进度。</li></ul></div></div><footer class="page-meta"><div class="meta-item edit-link"><span class="xicon-container left meta-item-label"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="xicon-icon" style="width:20px;height:20px;font-size:20px;color:inherit;"><path d="M2 26h28v2H2z" fill="currentColor"></path><path d="M25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4l15-15zm-5-5L24 7.6l-3 3L17.4 7l3-3zM6 22v-3.6l10-10l3.6 3.6l-10 10H6z" fill="currentColor"></path></svg><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Edit this page<!--]--></span></span></div><div class="meta-item last-updated"><span class="xicon-container left meta-item-label"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="xicon-icon" style="width:20px;height:20px;font-size:20px;color:inherit;"><path d="M26 4h-4V2h-2v2h-8V2h-2v2H6c-1.1 0-2 .9-2 2v20c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 22H6V12h20v14zm0-16H6V6h4v2h2V6h8v2h2V6h4v4z" fill="currentColor"></path></svg><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Last Updated 2024/9/22 16:35:40<!--]--></span></span></div></footer><!----><!----></div><div class="page-catalog-container"><h5 class="tip">ON THIS PAGE</h5><ul><!--[--><!--[--><li class="page-catalog-menu-depth_2"><a aria-current="page" href="/blogs/OS/lab0.html#思考题" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="思考题"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->思考题<!--]--></span></span><!--[--><!--]--></a></li><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-1" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.1"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.1<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-2" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.2"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.2<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-3" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.3"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.3<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-4" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.4"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.4<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-5" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.5"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.5<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#thinking-0-6" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Thinking 0.6"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Thinking 0.6<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--]--><!--[--><li class="page-catalog-menu-depth_2"><a aria-current="page" href="/blogs/OS/lab0.html#难点分析" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="难点分析"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->难点分析<!--]--></span></span><!--[--><!--]--></a></li><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#makefile" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Makefile"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Makefile<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--[--><li class="page-catalog-menu-depth_3"><a aria-current="page" href="/blogs/OS/lab0.html#shell-programming" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="Shell Programming"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->Shell Programming<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--]--><!--[--><li class="page-catalog-menu-depth_2"><a aria-current="page" href="/blogs/OS/lab0.html#实验体会" class="router-link-active router-link-exact-active link page-catalog-item page-catalog-item" aria-label="实验体会"><!--[--><!--]--><span class="xicon-container left"><!--[--><!----><!--]--><span class="xicon-content" style="color:inherit;font-size:14px;"><!--[-->实验体会<!--]--></span></span><!--[--><!--]--></a></li><!--]--><!--]--></ul></div></main><!--]--></div><!--[--><!----><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-B51tXhJU.js" defer></script>
</body>
</html>