Skip to content

Commit e331736

Browse files
authored
Auto deploy from GitHub Actions build 869
taoky: [d647bae] Ch03, 05, 06: Update find/grep intro; Systemd fhs note (#99)
1 parent 39b59f6 commit e331736

File tree

6 files changed

+243
-236
lines changed

6 files changed

+243
-236
lines changed

Ch03/index.html

Lines changed: 188 additions & 94 deletions
Large diffs are not rendered by default.

Ch05/index.html

Lines changed: 4 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1767,48 +1767,6 @@
17671767
</span>
17681768
</a>
17691769

1770-
</li>
1771-
1772-
<li class="md-nav__item">
1773-
<a href="#list-objects" class="md-nav__link">
1774-
<span class="md-ellipsis">
1775-
列出文件系统项目
1776-
</span>
1777-
</a>
1778-
1779-
<nav class="md-nav" aria-label="列出文件系统项目">
1780-
<ul class="md-nav__list">
1781-
1782-
<li class="md-nav__item">
1783-
<a href="#cmd-find" class="md-nav__link">
1784-
<span class="md-ellipsis">
1785-
find 命令
1786-
</span>
1787-
</a>
1788-
1789-
</li>
1790-
1791-
<li class="md-nav__item">
1792-
<a href="#cmd-du" class="md-nav__link">
1793-
<span class="md-ellipsis">
1794-
du 命令
1795-
</span>
1796-
</a>
1797-
1798-
</li>
1799-
1800-
<li class="md-nav__item">
1801-
<a href="#cmd-ncdu" class="md-nav__link">
1802-
<span class="md-ellipsis">
1803-
ncdu 命令
1804-
</span>
1805-
</a>
1806-
1807-
</li>
1808-
1809-
</ul>
1810-
</nav>
1811-
18121770
</li>
18131771

18141772
<li class="md-nav__item">
@@ -2119,6 +2077,10 @@ <h2 id="fhs">文件系统层次结构<a class="headerlink" href="#fhs" title="Pe
21192077
<p>其他的分区以挂载 (mount) 的形式「挂」在了这棵树上,如图中的 <code>/mnt/windows_disk/</code></p>
21202078
<p>那么在根目录下的这些目录各自有什么含义呢?这就由文件系统层次结构标准 (FHS, Filesystem Hierarchy Standard) 来定义了。这个标准定义了 Linux 发行版的标准目录结构。大部分的 Linux 发行版遵循此标准,或由此标准做了细小的调整。以下进行一个简要的介绍。也可以在<a href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html">官网</a>查看标准的具体内容。</p>
21212079
<p>当然,实际情况不一定会和以下介绍的内容完全一致。可以使用 <code>man hier</code><code>man file-hierarchy</code> 查看你的系统中关于文件系统层次结构的文档。</p>
2080+
<details class="note">
2081+
<summary>Systemd 的文件系统层次结构</summary>
2082+
<p>如果你阅读了 <code>man hier</code><code>man file-hierarchy</code>,你会发现它们之间有一些差异。例如后者有 <code>/efi</code> 目录,前者未提及。这是因为后者是 Systemd 使用的文件系统层次结构,在 FHS 的基础上做了一些扩展。但是总体来说,两者是类似的。</p>
2083+
</details>
21222084
<dl>
21232085
<dt><code>/bin</code></dt>
21242086
<dd>存储必须的程序文件,对所有用户都可用。</dd>
@@ -2213,70 +2175,6 @@ <h2 id="fhs">文件系统层次结构<a class="headerlink" href="#fhs" title="Pe
22132175
</ul>
22142176
</dd>
22152177
</dl>
2216-
<h2 id="list-objects">列出文件系统项目<a class="headerlink" href="#list-objects" title="Permanent link">&para;</a></h2>
2217-
<p>经常我们需要在 Shell 中列出某个目录下的项目(子目录和文件)。<code>ls</code> 命令是最常见的用来列出文件系统项目的命令,<code>ls -la</code> 则可以显示隐藏文件(<code>-a</code>)和更详细的信息(<code>-l</code>)。但是,<code>ls</code> 只能显示某个目录下的文件和子目录,并不会深入子目录内部继续检查。下面介绍几个命令,常用于获取这些信息。</p>
2218-
<h3 id="cmd-find"><code>find</code> 命令<a class="headerlink" href="#cmd-find" title="Permanent link">&para;</a></h3>
2219-
<p><code>find</code> 命令可以列出某个目录下所有的目录和文件,并<strong>递归地</strong>进入子目录。基本用法是</p>
2220-
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>find<span class="w"> </span>/etc
2221-
/etc
2222-
/etc/analog.cfg
2223-
/etc/hosts.deny
2224-
/etc/initramfs-tools
2225-
/etc/initramfs-tools/initramfs.conf
2226-
/etc/initramfs-tools/hooks
2227-
/etc/initramfs-tools/conf.d
2228-
/etc/initramfs-tools/conf.d/resume
2229-
/etc/initramfs-tools/modules
2230-
/etc/initramfs-tools/update-initramfs.conf
2231-
...<span class="w"> </span><span class="o">(</span>省略<span class="o">)</span>
2232-
</code></pre></div>
2233-
<p>可以看到,<code>find</code> 命令将列出指定的目录下的文件和子目录名称,在遇到子目录时立即进入目录并递归地执行上面的操作。</p>
2234-
<p>该命令的一个很有用的用法是对每一个文件都执行某个命令(例如 <code>md5sum</code>):</p>
2235-
<div class="highlight"><pre><span></span><code>find<span class="w"> </span>.<span class="w"> </span>-type<span class="w"> </span>f<span class="w"> </span>-exec<span class="w"> </span>md5sum<span class="w"> </span><span class="o">{}</span><span class="w"> </span><span class="se">\;</span>
2236-
</code></pre></div>
2237-
<p>这里,<code>find .</code> 是指对当前目录(<code>.</code>)进行 <code>find</code>,并只列出文件(<code>-type f</code>)。<code>-exec</code> 后面的内容是要执行的命令,其中 <code>{}</code> 会被替换成找到的对象(文件、目录)的路径,<code>\;</code> 表示对每个对象都执行一次给定的命令,即实际运行的是</p>
2238-
<div class="highlight"><pre><span></span><code>md5sum<span class="w"> </span>file1
2239-
md5sum<span class="w"> </span>file2
2240-
md5sum<span class="w"> </span>file3
2241-
...
2242-
</code></pre></div>
2243-
<p>如果将 <code>\;</code> 换成 <code>+</code>,那么就是将文件名称收集起来一并交给要执行的命令,即</p>
2244-
<div class="highlight"><pre><span></span><code>md5sum<span class="w"> </span>file1<span class="w"> </span>file2<span class="w"> </span>file3<span class="w"> </span>...
2245-
</code></pre></div>
2246-
<h3 id="cmd-du"><code>du</code> 命令<a class="headerlink" href="#cmd-du" title="Permanent link">&para;</a></h3>
2247-
<p><code>du</code> 命令可以统计文件和目录的大小。目录的大小是无法直接获取的,需要统计里面所有的文件和子目录的大小之后加和才能得到。<code>du</code> 命令的输出类似这样:</p>
2248-
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>du<span class="w"> </span>-h<span class="w"> </span>/etc/
2249-
<span class="m">4</span>.0K<span class="w"> </span>/etc/initramfs-tools/hooks
2250-
<span class="m">8</span>.0K<span class="w"> </span>/etc/initramfs-tools/conf.d
2251-
<span class="m">4</span>.0K<span class="w"> </span>/etc/initramfs-tools/scripts/local-premount
2252-
<span class="m">4</span>.0K<span class="w"> </span>/etc/initramfs-tools/scripts/nfs-premount
2253-
...<span class="w"> </span><span class="o">(</span>省略<span class="o">)</span>
2254-
<span class="m">4</span>.0K<span class="w"> </span>/etc/initramfs-tools/scripts/panic
2255-
<span class="m">4</span>.0K<span class="w"> </span>/etc/initramfs-tools/scripts/local-top
2256-
44K<span class="w"> </span>/etc/initramfs-tools/scripts
2257-
72K<span class="w"> </span>/etc/initramfs-tools
2258-
12K<span class="w"> </span>/etc/udisks2
2259-
16K<span class="w"> </span>/etc/fonts/conf.d
2260-
60K<span class="w"> </span>/etc/fonts/conf.avail
2261-
84K<span class="w"> </span>/etc/fonts
2262-
</code></pre></div>
2263-
<p>由于前面说到的原因,<code>du</code> 需要先递归进入子目录,处理完其中所有的项目之后,才能回到上层目录并显示上层目录的总大小。类似 <code>ls -h</code>,这里的 <code>-h</code> 表示以人类可读的方式进行显示,<code>-b</code> 则可以显示字节数,<code>-a</code> 可以使得输出包含文件的大小(默认只显示各层级目录的大小)。</p>
2264-
<h3 id="cmd-ncdu"><code>ncdu</code> 命令<a class="headerlink" href="#cmd-ncdu" title="Permanent link">&para;</a></h3>
2265-
<p><code>ncdu</code> 命令可以以图形化和交互式的方式显示目录的内容和大小,并可以用左右方向键浏览目录,类似 Windows 的文件资源管理器。这非常便于观察哪个目录占用了较大的磁盘空间。</p>
2266-
<div class="highlight"><pre><span></span><code>ncdu 1.18 ~ Use the arrow keys to navigate, press ? for help
2267-
--- /home/xxxxxx(略去) -----------------
2268-
/..
2269-
53.1 MiB [##########] /main
2270-
45.4 MiB [######## ] Contents-riscv64.gz
2271-
40.6 MiB [####### ] /universe
2272-
580.0 KiB [ ] /multiverse
2273-
44.0 KiB [ ] /restricted
2274-
8.0 KiB [ ] InRelease
2275-
8.0 KiB [ ] Release
2276-
4.0 KiB [ ] Release.gpg
2277-
2278-
Total disk usage: 139.7 MiB Apparent size: 139.6 MiB Items: 29
2279-
</code></pre></div>
22802178
<h2 id="questions">思考题<a class="headerlink" href="#questions" title="Permanent link">&para;</a></h2>
22812179
<div class="admonition question">
22822180
<p class="admonition-title">nobody 用户</p>

Ch06/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2261,6 +2261,21 @@ <h3 id="grep">文本查找:grep<a class="headerlink" href="#grep" title="Perma
22612261
<p class="admonition-title">不止如此!</p>
22622262
<p>grep 事实上是非常强大的查找工具,<a href="../Ch09/">第九章</a>将在介绍正则表达式语法之后进一步介绍 grep。</p>
22632263
</div>
2264+
<div class="admonition tip">
2265+
<p class="admonition-title">ripgrep</p>
2266+
<p>除了 grep 以外,还有一个更快更强大的工具 <a href="https://github.com/BurntSushi/ripgrep">ripgrep</a>。其会默认递归查找当前目录下的文件。安装 <code>ripgrep</code> 包后使用 <code>rg</code> 命令,即可作为 <code>grep -R</code> 的替代:</p>
2267+
<div class="highlight"><pre><span></span><code><span class="gp">$ </span><span class="c1"># 在 /etc/ 下搜索包含 localhost 的文件</span>
2268+
<span class="gp">$ </span>rg<span class="w"> </span>localhost<span class="w"> </span>/etc/
2269+
<span class="go">/etc/hosts</span>
2270+
<span class="go">1:127.0.0.1 localhost</span>
2271+
<span class="go">2:::1 localhost</span>
2272+
2273+
<span class="go">/etc/security/pam_env.conf</span>
2274+
<span class="go">52:# to &quot;localhost&quot; rather than not being set at all</span>
2275+
<span class="go">53:#REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}</span>
2276+
<span class="go">64:#NNTPSERVER DEFAULT=localhost</span>
2277+
</code></pre></div>
2278+
</div>
22642279
<h3 id="sed">文本替换:sed<a class="headerlink" href="#sed" title="Permanent link">&para;</a></h3>
22652280
<p><code>sed</code> 命令可以替换文本中的字符串:</p>
22662281
<div class="highlight"><pre><span></span><code><span class="gp">$ </span>sed<span class="w"> </span><span class="s1">&#39;s/hello/world/g&#39;</span><span class="w"> </span>file<span class="w"> </span><span class="c1"># 将文件 file 中的 hello 全局(global)替换为 world 后输出</span>

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sitemap.xml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,142 +2,142 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://101.lug.ustc.edu.cn/</loc>
5-
<lastmod>2025-10-08</lastmod>
5+
<lastmod>2025-10-13</lastmod>
66
</url>
77
<url>
88
<loc>https://101.lug.ustc.edu.cn/credits/</loc>
9-
<lastmod>2025-10-08</lastmod>
9+
<lastmod>2025-10-13</lastmod>
1010
</url>
1111
<url>
1212
<loc>https://101.lug.ustc.edu.cn/notations/</loc>
13-
<lastmod>2025-10-08</lastmod>
13+
<lastmod>2025-10-13</lastmod>
1414
</url>
1515
<url>
1616
<loc>https://101.lug.ustc.edu.cn/postface/</loc>
17-
<lastmod>2025-10-08</lastmod>
17+
<lastmod>2025-10-13</lastmod>
1818
</url>
1919
<url>
2020
<loc>https://101.lug.ustc.edu.cn/preface/</loc>
21-
<lastmod>2025-10-08</lastmod>
21+
<lastmod>2025-10-13</lastmod>
2222
</url>
2323
<url>
2424
<loc>https://101.lug.ustc.edu.cn/Appendix/distribution/</loc>
25-
<lastmod>2025-10-08</lastmod>
25+
<lastmod>2025-10-13</lastmod>
2626
</url>
2727
<url>
2828
<loc>https://101.lug.ustc.edu.cn/Appendix/man/</loc>
29-
<lastmod>2025-10-08</lastmod>
29+
<lastmod>2025-10-13</lastmod>
3030
</url>
3131
<url>
3232
<loc>https://101.lug.ustc.edu.cn/Appendix/markdown/</loc>
33-
<lastmod>2025-10-08</lastmod>
33+
<lastmod>2025-10-13</lastmod>
3434
</url>
3535
<url>
3636
<loc>https://101.lug.ustc.edu.cn/Appendix/wsl/</loc>
37-
<lastmod>2025-10-08</lastmod>
37+
<lastmod>2025-10-13</lastmod>
3838
</url>
3939
<url>
4040
<loc>https://101.lug.ustc.edu.cn/Ch01/</loc>
41-
<lastmod>2025-10-08</lastmod>
41+
<lastmod>2025-10-13</lastmod>
4242
</url>
4343
<url>
4444
<loc>https://101.lug.ustc.edu.cn/Ch01/solution/</loc>
45-
<lastmod>2025-10-08</lastmod>
45+
<lastmod>2025-10-13</lastmod>
4646
</url>
4747
<url>
4848
<loc>https://101.lug.ustc.edu.cn/Ch01/supplement/</loc>
49-
<lastmod>2025-10-08</lastmod>
49+
<lastmod>2025-10-13</lastmod>
5050
</url>
5151
<url>
5252
<loc>https://101.lug.ustc.edu.cn/Ch02/</loc>
53-
<lastmod>2025-10-08</lastmod>
53+
<lastmod>2025-10-13</lastmod>
5454
</url>
5555
<url>
5656
<loc>https://101.lug.ustc.edu.cn/Ch02/solution/</loc>
57-
<lastmod>2025-10-08</lastmod>
57+
<lastmod>2025-10-13</lastmod>
5858
</url>
5959
<url>
6060
<loc>https://101.lug.ustc.edu.cn/Ch02/supplement/</loc>
61-
<lastmod>2025-10-08</lastmod>
61+
<lastmod>2025-10-13</lastmod>
6262
</url>
6363
<url>
6464
<loc>https://101.lug.ustc.edu.cn/Ch03/</loc>
65-
<lastmod>2025-10-08</lastmod>
65+
<lastmod>2025-10-13</lastmod>
6666
</url>
6767
<url>
6868
<loc>https://101.lug.ustc.edu.cn/Ch03/solution/</loc>
69-
<lastmod>2025-10-08</lastmod>
69+
<lastmod>2025-10-13</lastmod>
7070
</url>
7171
<url>
7272
<loc>https://101.lug.ustc.edu.cn/Ch03/supplement/</loc>
73-
<lastmod>2025-10-08</lastmod>
73+
<lastmod>2025-10-13</lastmod>
7474
</url>
7575
<url>
7676
<loc>https://101.lug.ustc.edu.cn/Ch04/</loc>
77-
<lastmod>2025-10-08</lastmod>
77+
<lastmod>2025-10-13</lastmod>
7878
</url>
7979
<url>
8080
<loc>https://101.lug.ustc.edu.cn/Ch04/solution/</loc>
81-
<lastmod>2025-10-08</lastmod>
81+
<lastmod>2025-10-13</lastmod>
8282
</url>
8383
<url>
8484
<loc>https://101.lug.ustc.edu.cn/Ch04/supplement/</loc>
85-
<lastmod>2025-10-08</lastmod>
85+
<lastmod>2025-10-13</lastmod>
8686
</url>
8787
<url>
8888
<loc>https://101.lug.ustc.edu.cn/Ch05/</loc>
89-
<lastmod>2025-10-08</lastmod>
89+
<lastmod>2025-10-13</lastmod>
9090
</url>
9191
<url>
9292
<loc>https://101.lug.ustc.edu.cn/Ch05/solution/</loc>
93-
<lastmod>2025-10-08</lastmod>
93+
<lastmod>2025-10-13</lastmod>
9494
</url>
9595
<url>
9696
<loc>https://101.lug.ustc.edu.cn/Ch05/supplement/</loc>
97-
<lastmod>2025-10-08</lastmod>
97+
<lastmod>2025-10-13</lastmod>
9898
</url>
9999
<url>
100100
<loc>https://101.lug.ustc.edu.cn/Ch06/</loc>
101-
<lastmod>2025-10-08</lastmod>
101+
<lastmod>2025-10-13</lastmod>
102102
</url>
103103
<url>
104104
<loc>https://101.lug.ustc.edu.cn/Ch06/solution/</loc>
105-
<lastmod>2025-10-08</lastmod>
105+
<lastmod>2025-10-13</lastmod>
106106
</url>
107107
<url>
108108
<loc>https://101.lug.ustc.edu.cn/Ch06/supplement/</loc>
109-
<lastmod>2025-10-08</lastmod>
109+
<lastmod>2025-10-13</lastmod>
110110
</url>
111111
<url>
112112
<loc>https://101.lug.ustc.edu.cn/Ch07/</loc>
113-
<lastmod>2025-10-08</lastmod>
113+
<lastmod>2025-10-13</lastmod>
114114
</url>
115115
<url>
116116
<loc>https://101.lug.ustc.edu.cn/Ch07/supplement/</loc>
117-
<lastmod>2025-10-08</lastmod>
117+
<lastmod>2025-10-13</lastmod>
118118
</url>
119119
<url>
120120
<loc>https://101.lug.ustc.edu.cn/Ch08/</loc>
121-
<lastmod>2025-10-08</lastmod>
121+
<lastmod>2025-10-13</lastmod>
122122
</url>
123123
<url>
124124
<loc>https://101.lug.ustc.edu.cn/Ch08/supplement/</loc>
125-
<lastmod>2025-10-08</lastmod>
125+
<lastmod>2025-10-13</lastmod>
126126
</url>
127127
<url>
128128
<loc>https://101.lug.ustc.edu.cn/Ch09/</loc>
129-
<lastmod>2025-10-08</lastmod>
129+
<lastmod>2025-10-13</lastmod>
130130
</url>
131131
<url>
132132
<loc>https://101.lug.ustc.edu.cn/Ch09/supplement/</loc>
133-
<lastmod>2025-10-08</lastmod>
133+
<lastmod>2025-10-13</lastmod>
134134
</url>
135135
<url>
136136
<loc>https://101.lug.ustc.edu.cn/Spec/slide/</loc>
137-
<lastmod>2025-10-08</lastmod>
137+
<lastmod>2025-10-13</lastmod>
138138
</url>
139139
<url>
140140
<loc>https://101.lug.ustc.edu.cn/Spec/writing/</loc>
141-
<lastmod>2025-10-08</lastmod>
141+
<lastmod>2025-10-13</lastmod>
142142
</url>
143143
</urlset>

sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)