<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>SMGoro Blog</title>
  
  <subtitle>虚拟世界的观测者のRecord | 享受世间不可多得的静谧时光</subtitle>
  <link href="http://blog.imc.re/atom.xml" rel="self"/>
  
  <link href="http://blog.imc.re/"/>
  <updated>2025-04-11T15:55:23.000Z</updated>
  <id>http://blog.imc.re/</id>
  
  <author>
    <name>SummerGoro</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>fern wifi cracker 报错解决方案</title>
    <link href="http://blog.imc.re/archives/91fb.html"/>
    <id>http://blog.imc.re/archives/91fb.html</id>
    <published>2024-04-20T10:30:16.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>查看无线网卡</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">airmon-ng</span><br></pre></td></tr></table></figure><p>重新设置无线网卡</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ip <span class="built_in">link</span> <span class="built_in">set</span> wlan0 down</span><br><span class="line">ip <span class="built_in">link</span> <span class="built_in">set</span> wlan0 name wlan0mon</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="kali" scheme="http://blog.imc.re/tags/kali/"/>
    
  </entry>
  
  <entry>
    <title>Linux查询操作</title>
    <link href="http://blog.imc.re/archives/b59e.html"/>
    <id>http://blog.imc.re/archives/b59e.html</id>
    <published>2023-12-20T14:50:37.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ol><li>whereis用来寻找可执行文件的位置</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># whereis ls</span></span><br><span class="line"><span class="built_in">ls</span>: /usr/bin/ls /usr/share/man/man1/ls.1.gz</span><br><span class="line">[root@master ~]<span class="comment"># ls</span></span><br><span class="line">aaa  anaconda-ks.cfg  localperl  nohup.out  perl5  ShiSai2022-1.0-SNAPSHOT.jar </span><br><span class="line">spark-yarn-logs  zookeeper.out</span><br><span class="line">[root@master ~]<span class="comment"># cd /usr/bin/</span></span><br><span class="line">[root@master bin]<span class="comment"># ll ls</span></span><br><span class="line">-rwxr-xr-x. 1 root root 117680 10月 31 2018 <span class="built_in">ls</span></span><br></pre></td></tr></table></figure><ol start="2"><li>whatis用来获取命令的简介</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master bin]<span class="comment"># whatis ls</span></span><br><span class="line"><span class="built_in">ls</span> (1)               - list directory contents</span><br></pre></td></tr></table></figure><ol start="3"><li>find用来寻找文件的位置</li></ol><p>从根目录下开始，寻找cd这个文件的位置。一共找到了3处。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># find / -name cd</span></span><br><span class="line">/root/.npm/_cacache/index-v5/cd</span><br><span class="line">/root/.npm/_cacache/content-v2/sha512/f7/cd</span><br><span class="line">/usr/bin/cd</span><br><span class="line">[root@master ~]<span class="comment"># cd /usr/bin/</span></span><br><span class="line">[root@master bin]<span class="comment"># ls cd</span></span><br><span class="line"><span class="built_in">cd</span></span><br></pre></td></tr></table></figure><ol start="4"><li>grep用来查找文件中，包含指定字符串的行</li></ol><p>建立./aaa.txt并插入一些内容</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo &quot;hello hadoop&quot; &gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello hdfs&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello hdfs&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello yarn&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello spark&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello hive&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello flink&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># echo &quot;hello hbase&quot; &gt;&gt; ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># cat ./aaa.txt</span></span><br><span class="line">hello hadoop</span><br><span class="line">hello hdfs</span><br><span class="line">hello hdfs</span><br><span class="line">hello yarn</span><br><span class="line">hello spark</span><br><span class="line">hello hive</span><br><span class="line">hello flink</span><br><span class="line">hello hbase</span><br></pre></td></tr></table></figure><p>在./aaa.txt里查找含有字符串hadoop的行</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># grep hadoop ./aaa.txt</span></span><br><span class="line">hello Hadoop</span><br><span class="line">[root@master ~]<span class="comment"># grep flink ./aaa.txt</span></span><br><span class="line">hello flink</span><br><span class="line">[root@master ~]<span class="comment"># grep hdfs ./aaa.txt</span></span><br><span class="line">hello hdfs</span><br><span class="line">hello hdfs</span><br></pre></td></tr></table></figure><ol start="5"><li>用数字法修改文件的权限</li></ol><p>./aaa.txt原来的权限：对于文件的所有者而言aaa.txt可读可写不可执行，对于同组用户而言aaa.txt可读不可写不可执行，对于其他用户而言aaa.txt可读不可写不可执行</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ll ./aaa.txt</span></span><br><span class="line">-rw-r--r--. 1 root root 93 11月 20 08:21 ./aaa.txt</span><br><span class="line"> 421421421</span><br><span class="line">  6   4  4</span><br><span class="line">-rwxr--r--</span><br><span class="line">  7  4  4</span><br></pre></td></tr></table></figure><p>把./aaa.txt变成：对于文件的所有者而言aaa.txt可读可写可执行，对于同组用户而言aaa.txt可读不可写不可执行，对于其他用户而言aaa.txt可读不可写不可执行</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod 744 ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># ll ./aaa.txt</span></span><br><span class="line">-rwxr--r--. 1 root root 93 11月 20 08:21 ./aaa.txt</span><br></pre></td></tr></table></figure><p>把./aaa.txt变成：对于文件的所有者而言aaa.txt可读可写可执行，对于同组用户而言aaa.txt可读可写可执行，对于其他用户而言aaa.txt可读可写可执行</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod 777 ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># ll ./aaa.txt</span></span><br><span class="line">-rwxrwxrwx. 1 root root 93 11月 20 08:21 ./aaa.txt</span><br></pre></td></tr></table></figure><p>把./aaa.txt变回到原来状态</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod 644 ./aaa.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># ll ./aaa.txt</span></span><br><span class="line">-rw-r--r--. 1 root root 93 11月 20 08:21 ./aaa.txt</span><br></pre></td></tr></table></figure><p>课堂练习：</p><p>把hadoop01镜像转到20230912，并启动hadoop01，用Ubuntu进行联机。完成下面的操作，并把命令和结果截图粘贴到ubuntu桌面下的目录Release的“模块A提交的结果.docx”。要求所有命令均使用绝对路径。</p><ol><li>在/root目录下建立子目录bbb</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /root/bbb</span><br></pre></td></tr></table></figure><ol start="2"><li>在/root/bbb目录下建立文件b01.txt</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">touch</span> /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="3"><li><p>在b01.txt中插入以下内容：</p><p>Hello HadoopHello hdfsHello sparkHello flinkHello yarnHello hbase</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt;&gt; /root/bbb/b01.txt &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">Hello Hadoop</span></span><br><span class="line"><span class="string">Hello hdfs</span></span><br><span class="line"><span class="string">Hello spark</span></span><br><span class="line"><span class="string">Hello flink</span></span><br><span class="line"><span class="string">Hello yarn</span></span><br><span class="line"><span class="string">Hello hbase</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="4"><li><p>将b01.txt拷贝为b02.txt，并在b02.txt中新增两行内容：</p><p>Hello RedisHello clickhouse</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /root/bbb/b01.txt /root/bbb/b02.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello Redis&quot;</span> &gt;&gt; /root/bbb/b02.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello clickhouse&quot;</span> &gt;&gt; /root/bbb/b02.txt</span><br></pre></td></tr></table></figure><ol start="5"><li>用diff命令比较b01.txt、b02.txt的不同之处</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">diff /root/bbb/b01.txt /root/bbb/b02.txt</span><br></pre></td></tr></table></figure><ol start="6"><li>用grep命令查找b01.txt中含有flink的行</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep &quot;flink&quot; /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="7"><li>修改/root/bbb/b01.txt的权限：文件所有者可读可写可执行，同组用户可读可写不可执行，其他用户不可读不可写不可执行，并用ls命令查看结果</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 760 /root/bbb/b01.txt &amp;&amp; <span class="built_in">ls</span> -l /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="8"><li>修改/root/bbb/b02.txt的权限：文件所有者可读不可写可执行，同组用户可读不可写不可执行，其他用户不可读不可写可执行，并用ls命令查看结果</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">chmod 441 /root/bbb/b01.txt &amp;&amp; ls -l /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="9"><li>用find命令查找b01.txt文件的位置</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name b01.txt</span><br></pre></td></tr></table></figure><ol start="10"><li>用whereis命令查找grep命令文件的位置</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">whereis grep</span><br></pre></td></tr></table></figure><ol start="11"><li>用tar命令将到/opt/hadoop-2.7.7.tar.gz解压到/usr/local/src下面。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -xvzf /opt/hadoop-2.7.7.tar.gz -C /usr/local/src</span><br></pre></td></tr></table></figure><ol start="12"><li>用find命令查找文件stop-all.sh的位置。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name stop-all.sh</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux管道命令</title>
    <link href="http://blog.imc.re/archives/1903.html"/>
    <id>http://blog.imc.re/archives/1903.html</id>
    <published>2023-12-18T14:18:16.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ol><li>管道命令：|</li></ol><p>管道命令的作用：前一个命令的输出是后一个命令的输入</p><p>例如：统计目前有几个用户登录</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># who</span></span><br><span class="line">root     pts/0        2023-12-18 08:08 (192.168.152.130)</span><br><span class="line">[root@master ~]<span class="comment"># who | wc -l</span></span><br><span class="line">1</span><br></pre></td></tr></table></figure><p>查看/etc下面的文件和文件夹及其子文件夹、子文件的详细信息，并以可翻页的形式显示：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ls -Rl /etc | less</span></span><br></pre></td></tr></table></figure><p>增加一个用户aaa，并查看/etc/passwd的内容，该文件存放了所有的系统用户、root用户、自定义用户。增加一个用户aaa，就可以看到该文件最后增加的相应的一行内容。用管道命令统计该文件的行数、字数、字符数。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># adduser aaa</span></span><br><span class="line">[root@master ~]<span class="comment"># cat /etc/passwd</span></span><br><span class="line">root:x:0:0:root:/root:/bin/bash</span><br><span class="line">bin:x:1:1:bin:/bin:/sbin/nologin</span><br><span class="line">daemon:x:2:2:daemon:/sbin:/sbin/nologin</span><br><span class="line"></span><br><span class="line">…………</span><br><span class="line"></span><br><span class="line">nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin</span><br><span class="line">mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false</span><br><span class="line">aaa:x:1000:1000::/home/aaa:/bin/bash</span><br><span class="line">[root@master ~]<span class="comment"># cat /etc/passwd | wc</span></span><br><span class="line">     30      59    1491</span><br><span class="line"><span class="comment"># （行数） （字数） （字符数）</span></span><br></pre></td></tr></table></figure><p>查看是否存在用户aaa</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># cat /etc/passwd | grep aaa</span></span><br><span class="line">aaa:x:1000:1000::/home/aaa:/bin/bash</span><br></pre></td></tr></table></figure><p>命令rpm -qa可以查看目前安装了哪些应用程序。现在要用管道命令，检查是否安装了mysql数据库：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># rpm -qa | grep mysql</span></span><br><span class="line">mysql-community-server-5.7.18-1.el7.x86_64</span><br><span class="line">mysql-community-common-5.7.18-1.el7.x86_64</span><br><span class="line">mysql-community-libs-5.7.18-1.el7.x86_64</span><br><span class="line">mysql-community-client-5.7.18-1.el7.x86_64</span><br><span class="line">mysql-community-devel-5.7.18-1.el7.x86_64</span><br></pre></td></tr></table></figure><p>查看mysql数据库中有多少个组件：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># rpm -qa | grep mysql | wc -l</span></span><br><span class="line">5</span><br></pre></td></tr></table></figure><p>通过这个命令，说明了管道命令是可以级联的，从而实现更加复杂的功能。</p><ol start="2"><li>vi编辑器操作</li></ol><p>（1）vi编辑器的启动和退出</p><p>用命令：vi+文件名：进入vi编辑器</p><p>按i键进入编辑模式，可以输入内容</p><p>按:wq保存退出，按:q!不保存退出</p><p>（2）vi编辑器的工作模式</p><p>编辑模式：进入vi编辑器以后的默认模式</p><p>插入模式：在编辑模式下，按i键，进入插入模式</p><p>命令模式：在编辑模式下，按：键，进入命令模式</p><p>（3）vi编辑器常用命令</p><p>:q!  不保存退出</p><p>:wq  保存退出</p><p>:?单词   查找文件中的某一个单词位置，查找定位后，按n键可以连续定位下一个单词。</p><p>😒/单词1/单词2/g   把文件中所有的单词1，替换成单词2</p><p>:d   删除当前行，或者在编辑模式状态下，在某一行上按dd，直接删除这一行</p><h2 id="课堂练习"><a class="markdownIt-Anchor" href="#课堂练习"></a> 课堂练习：</h2><ol><li>在/opt下建立文件夹/opt/aaa</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /opt/aaa</span><br></pre></td></tr></table></figure><ol start="2"><li>用vi编辑器建立文件/opt/aaa/a01.txt,并输入下面的内容</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">vi /opt/aaa/a01.txt</span><br><span class="line">hello hadoop</span><br><span class="line">hello spark</span><br><span class="line">hello spark</span><br><span class="line">hello hdfs</span><br><span class="line">hello hdfs</span><br><span class="line">hello hdfs</span><br><span class="line">hello spark spark</span><br></pre></td></tr></table></figure><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/20240101224407.png" alt="image.png" /></p><ol start="3"><li><p>保存并退出</p></li><li><p>用管道命令统计/opt/aaa/a01.txt，一共有几行</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> /opt/aaa/a01.txt | <span class="built_in">wc</span> -l</span><br></pre></td></tr></table></figure><ol start="5"><li>用管道命令找到所有的含有hdfs单词的内容</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep <span class="string">&quot;hdfs&quot;</span> /opt/aaa/a01.txt</span><br></pre></td></tr></table></figure><ol start="6"><li>用管道命令统计含有spark单词的行，一共有几行</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep <span class="string">&quot;spark&quot;</span> /opt/aaa/a01.txt | <span class="built_in">wc</span> -l</span><br></pre></td></tr></table></figure><ol start="7"><li>用管道命令统计spark单词有几个</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep -o <span class="string">&quot;spark&quot;</span> /opt/aaa/a01.txt | <span class="built_in">wc</span> -l</span><br></pre></td></tr></table></figure><ol start="8"><li>查看系统中是否安装了hbase软件包</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">rpm -qa | grep hbase</span><br></pre></td></tr></table></figure><ol start="9"><li>新建用户bbb，并查找/etc/passwd中是否存在该用户</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">useradd bbb</span><br><span class="line">grep bbb /etc/passwd</span><br></pre></td></tr></table></figure><ol start="10"><li><p>在vi编辑器中，用?命令，查找hello单词</p></li><li><p>在vi编辑器中，用:s/单词1/单词2/g命令，将所有的hello，替换成hi</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 进入vi 使用如下命令</span></span><br><span class="line">vi /opt/aaa/a01.txt</span><br><span class="line">:%s/hello/hi/g</span><br><span class="line">:wq</span><br><span class="line"></span><br><span class="line"><span class="comment"># 方法二</span></span><br><span class="line">sed -i s/hello/hi/g /opt/aaa/a01.txt</span><br></pre></td></tr></table></figure><ol start="12"><li>用管道命令，统计包含hi的内容一共有多少行，并利用重定向命令将结果写入/opt/aaa/a02.txt</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep hi /opt/aaa/a01.txt | <span class="built_in">wc</span> -l &gt;&gt; /opt/aaa/a02.txt</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux环境设置</title>
    <link href="http://blog.imc.re/archives/1ba9.html"/>
    <id>http://blog.imc.re/archives/1ba9.html</id>
    <published>2023-12-11T14:56:38.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ol><li>工作环境设置文件</li></ol><p>（1）系统环境</p><p>/etc/profile</p><p>(2) root用户的环境</p><p>/root/.bash_profile</p><ol start="2"><li>将某一个目录/aaa加入工作环境文件，实现在任意位置均可执行该目录下面的程序</li></ol><p>（1）建立/aaa文件夹，并加入工作环境文件</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># cd /</span></span><br><span class="line">[root@master /]<span class="comment"># mkdir /aaa</span></span><br></pre></td></tr></table></figure><p>(2) 在/etc/profile中插入下面的内容：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">[root@master /]<span class="comment"># vi /etc/profile  </span></span><br><span class="line"><span class="comment"># 安装flume环境</span></span><br><span class="line"><span class="built_in">export</span> FLUME_HOME=/opt/apache-flume-1.7.0-bin</span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:<span class="variable">$FLUME_HOME</span>/bin</span><br><span class="line"><span class="comment"># 将/aaa文件夹加入</span></span><br><span class="line"><span class="built_in">export</span> AAA_HOME=/aaa</span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:<span class="variable">$AAA_HOME</span></span><br></pre></td></tr></table></figure><p>(3) 在/aaa中建立一个简单计时器脚本</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">[root@master /]<span class="comment"># cd /aaa</span></span><br><span class="line">[root@master aaa]<span class="comment"># vi time01.sh</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;start&quot;</span></span><br><span class="line"><span class="built_in">sleep</span> 1;<span class="built_in">echo</span> <span class="string">&quot;----5----&quot;</span>;</span><br><span class="line"><span class="built_in">sleep</span> 1;<span class="built_in">echo</span> <span class="string">&quot;----4----&quot;</span>;</span><br><span class="line"><span class="built_in">sleep</span> 1;<span class="built_in">echo</span> <span class="string">&quot;----3----&quot;</span>;</span><br><span class="line"><span class="built_in">sleep</span> 1;<span class="built_in">echo</span> <span class="string">&quot;----2----&quot;</span>;</span><br><span class="line"><span class="built_in">sleep</span> 1;<span class="built_in">echo</span> <span class="string">&quot;----1----&quot;</span>;</span><br><span class="line"><span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;stop&quot;</span></span><br><span class="line">[root@master aaa]<span class="comment"># chmod 777 ./time01.sh</span></span><br><span class="line">[root@master aaa]<span class="comment"># ll</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 164 12月 11 08:28 time01.sh</span><br></pre></td></tr></table></figure><p>(4) 使修改的工作环境文件生效</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master aaa]<span class="comment"># source /etc/profile</span></span><br></pre></td></tr></table></figure><p>(5)在任意位置均可执行：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[root@master aaa]<span class="comment"># cd /</span></span><br><span class="line">[root@master /]<span class="comment"># time01.sh</span></span><br><span class="line">start</span><br><span class="line">----5----</span><br><span class="line">----4----</span><br><span class="line">----3----</span><br></pre></td></tr></table></figure><ol start="3"><li>grep打印出所有符合指定规则的文本行</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[root@master /]<span class="comment"># cd /aaa</span></span><br><span class="line">[root@master aaa]<span class="comment"># ll</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 164 12月 11 08:28 time01.sh</span><br><span class="line">[root@master aaa]<span class="comment"># grep &#x27;start&#x27; time01.sh</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;start&quot;</span></span><br></pre></td></tr></table></figure><ol start="4"><li>正则表达式</li></ol><p>所有的正则表达式需要用单引号括起来</p><p>. 匹配单个任意字符</p><p>[list] 匹配字符串列表中的一个字符</p><p>*  匹配前一个字符0次或多次</p><p>^ 在行头匹配正则表达式</p><ol start="5"><li>重定向</li></ol><p>重定向是指不使用标准的输入输出接口，而进行重新指定</p><p>&lt; 输入重定向</p><blockquote><blockquote><p>或 &gt; 输出重定向</p></blockquote></blockquote><p>2&gt;或2&gt;&gt; 错误重定向</p><p>&amp;&gt; 同时实现输出重定向和错误重定向</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ll /aaa</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 164 12月 11 08:28 time01.sh</span><br></pre></td></tr></table></figure><p>将/aaa文件夹的ll显示的内容保存到/root的result01.txt中</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ll /aaa &gt; result01.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># ll</span></span><br><span class="line">总用量 72</span><br><span class="line">drwxr-xr-x. 4 root root    36 11月 16 2022 aaa</span><br><span class="line">-rw-------. 1 root root  1257 11月 18 2021 anaconda-ks.cfg</span><br><span class="line">drwxr-xr-x. 5 root root    39 11月 18 2021 localperl</span><br><span class="line">-rw-------. 1 root root  1623 7月  11 21:08 nohup.out</span><br><span class="line">drwxr-xr-x. 5 root root    39 11月 18 2021 perl5</span><br><span class="line">-rw-r--r--. 1 root root    65 12月 11 09:09 result01.txt</span><br><span class="line">-rw-r--r--. 1 root root 50112 7月  11 21:31 ShiSai2022-1.0-SNAPSHOT.jar</span><br><span class="line">-rw-r--r--. 1 root root     0 11月 15 2022 spark-yarn-logs</span><br><span class="line">-rw-r--r--. 1 root root  4175 11月 16 2022 zookeeper.out</span><br><span class="line">[root@master ~]<span class="comment"># cat result01.txt</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 164 12月 11 08:28 time01.sh</span><br></pre></td></tr></table></figure><p>把/tmp里面的内容追加到result01.txt中</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ll /tmp</span></span><br><span class="line">总用量 0</span><br><span class="line">drwx------. 3 root root 17 12月 11 08:07 systemd-private-03f98bcc8dcb4c7b8b38ca9ae50eaf49-chronyd.service-XdsvpJ</span><br><span class="line">drwx------. 2 root root  6 12月 11 08:07 vmware-root_8740-2865761114</span><br><span class="line">[root@master ~]<span class="comment"># ll /tmp &gt;&gt; result01.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># cat result01.txt</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 164 12月 11 08:28 time01.sh</span><br><span class="line">总用量 0</span><br><span class="line">drwx------. 3 root root 17 12月 11 08:07 systemd-private-03f98bcc8dcb4c7b8b38ca9ae50eaf49-chronyd.service-XdsvpJ</span><br><span class="line">drwx------. 2 root root  6 12月 11 08:07 vmware-root_8740-2865761114</span><br></pre></td></tr></table></figure><p>将文件的输出信息和错误信息保存到result02.txt中</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># date</span></span><br><span class="line">2023年 12月 11日 星期一 09:15:08 CST</span><br><span class="line">[root@master ~]<span class="comment"># data</span></span><br><span class="line">-bash: data: 未找到命令</span><br><span class="line">[root@master ~]<span class="comment"># data &amp;&gt; result02.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># cat result02.txt</span></span><br><span class="line">-bash: data: 未找到命令</span><br><span class="line">[root@master ~]<span class="comment"># date &amp;&gt;&gt; result02.txt</span></span><br><span class="line">[root@master ~]<span class="comment"># cat result02.txt</span></span><br><span class="line">-bash: data: 未找到命令</span><br><span class="line">2023年 12月 11日 星期一 09:16:48 CST</span><br></pre></td></tr></table></figure><h2 id="课堂练习"><a class="markdownIt-Anchor" href="#课堂练习"></a> 课堂练习：</h2><ol><li>在/opt下建立文件夹/opt/bbb，并将该文件夹写入工作环境文件/etc/profile</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /opt/bbb</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;export PATH=<span class="variable">$PATH</span>:/opt/bbb&quot;</span> &gt;&gt; /etc/profile</span><br></pre></td></tr></table></figure><ol start="2"><li>在/opt/bbb中建立一个可执行文件hello.sh,可以向屏幕中打印一行hello world字符</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&quot;echo &quot;</span>hello world<span class="string">&quot;&quot;</span> &gt;&gt; /opt/bbb/hello.sh</span><br></pre></td></tr></table></figure><ol start="3"><li>生效修改的工作环境文件/etc/profile</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /etc/profile</span><br></pre></td></tr></table></figure><ol start="4"><li>在/root目录中直接输入hello.sh进行验证</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /root</span><br><span class="line">sh hello.sh</span><br></pre></td></tr></table></figure><ol start="5"><li>用重定向符号将hello.sh的结果保存到/root/result001.txt中</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sh hello.sh &gt;&gt; /root/result001.txt</span><br></pre></td></tr></table></figure><ol start="6"><li>打印/root/result001.txt</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> /root/result001.txt</span><br></pre></td></tr></table></figure><ol start="7"><li>用grep命令在/root/result001.txt中查找world字符</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep world /root/result001.txt</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux变量使用</title>
    <link href="http://blog.imc.re/archives/43a5.html"/>
    <id>http://blog.imc.re/archives/43a5.html</id>
    <published>2023-12-04T14:13:54.000Z</published>
    <updated>2025-04-11T15:55:22.999Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="linux变量使用"><a class="markdownIt-Anchor" href="#linux变量使用"></a> Linux变量使用</h1><ol><li>变量的定义与引用，用=进行定义，用$进行引用</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># name=zhangsan</span></span><br><span class="line">[root@master ~]<span class="comment"># echo $name</span></span><br><span class="line">zhangsan</span><br><span class="line">[root@master ~]<span class="comment"># echo name</span></span><br><span class="line">name</span><br></pre></td></tr></table></figure><p>$在单引号中不能被识别，在双引号中可识别</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo &quot;I am $name&quot;</span></span><br><span class="line">I am zhangsan</span><br><span class="line">[root@master ~]<span class="comment"># echo &#x27;I am $name&#x27;</span></span><br><span class="line">I am <span class="variable">$name</span></span><br></pre></td></tr></table></figure><ol start="2"><li>环境变量</li></ol><p>PATH环境变量：寻找可执行文件的搜索路径</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo $PATH</span></span><br><span class="line">/root/perl5/bin:/root/perl5/bin:/opt/kafka_2.11-2.0.0/bin:/opt/zookeeper-3.4.12/bin:/opt/flink-1.10.2/bin:/opt/spark-2.1.1-bin-hadoop2.7//bin:/opt/apache-hive-2.3.4-bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/hadoop-2.7.7/bin:/opt/hadoop-2.7.7/sbin:/usr/java/jdk1.8.0_162/bin:/usr/java/jdk1.8.0_162/jre/bin:/opt/scala-2.11.0/bin:/opt/apache-flume-1.7.0-bin/bin:/root/bin</span><br></pre></td></tr></table></figure><p>PWD：当前工作目录</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo $PWD</span></span><br><span class="line">/root</span><br></pre></td></tr></table></figure><p>PS1和PS2：命令行的一级提示符和二级提示符</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo $PS1</span></span><br><span class="line">[\u@\h \W]\$</span><br><span class="line">[root@master ~]<span class="comment"># echo $PS2</span></span><br><span class="line">&gt;</span><br><span class="line"></span><br><span class="line">[root@master ~]<span class="comment"># echo $PS1</span></span><br><span class="line">[\u@\h \W]\$</span><br><span class="line">[root@master ~]<span class="comment"># echo $PS2</span></span><br><span class="line">&gt;</span><br><span class="line">[root@master ~]<span class="comment"># mysql -u root -p</span></span><br><span class="line">Enter password: <span class="comment"># （输入Passwd123！）</span></span><br><span class="line">Welcome to the MySQL monitor.  Commands end with ; or \g.</span><br><span class="line">Your MySQL connection <span class="built_in">id</span> is 3</span><br><span class="line">Server version: 5.7.18 MySQL Community Server (GPL)</span><br><span class="line"></span><br><span class="line">Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.</span><br><span class="line"></span><br><span class="line">Oracle is a registered trademark of Oracle Corporation and/or its</span><br><span class="line">affiliates. Other names may be trademarks of their respective</span><br><span class="line">owners.</span><br><span class="line"></span><br><span class="line">Type <span class="string">&#x27;help;&#x27;</span> or <span class="string">&#x27;\h&#x27;</span> <span class="keyword">for</span> <span class="built_in">help</span>. Type <span class="string">&#x27;\c&#x27;</span> to clear the current input statement.</span><br><span class="line"></span><br><span class="line">mysql&gt; show databases;</span><br><span class="line">+--------------------+</span><br><span class="line">| Database           |</span><br><span class="line">+--------------------+</span><br><span class="line">| information_schema |</span><br><span class="line">| bak                |</span><br><span class="line">| hive               |</span><br><span class="line">| mysql              |</span><br><span class="line">| performance_schema |</span><br><span class="line">| shtd_result        |</span><br><span class="line">| shtd_store         |</span><br><span class="line">| shtd_store01       |</span><br><span class="line">| sys                |</span><br><span class="line">+--------------------+</span><br><span class="line">9 rows <span class="keyword">in</span> <span class="built_in">set</span> (0.02 sec)</span><br><span class="line"></span><br><span class="line">mysql&gt; <span class="built_in">exit</span></span><br><span class="line">Bye</span><br><span class="line">[root@master ~]<span class="comment">#</span></span><br></pre></td></tr></table></figure><p>OLDPWD：前一个工作目录</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># ll</span></span><br><span class="line">总用量 68</span><br><span class="line">drwxr-xr-x. 4 root root    36 11月 16 2022 aaa</span><br><span class="line">-rw-------. 1 root root  1257 11月 18 2021 anaconda-ks.cfg</span><br><span class="line">drwxr-xr-x. 5 root root    39 11月 18 2021 localperl</span><br><span class="line">-rw-------. 1 root root  1623 7月  11 21:08 nohup.out</span><br><span class="line">drwxr-xr-x. 5 root root    39 11月 18 2021 perl5</span><br><span class="line">-rw-r--r--. 1 root root 50112 7月  11 21:31 ShiSai2022-1.0-SNAPSHOT.jar</span><br><span class="line">-rw-r--r--. 1 root root     0 11月 15 2022 spark-yarn-logs</span><br><span class="line">-rw-r--r--. 1 root root  4175 11月 16 2022 zookeeper.out</span><br><span class="line">[root@master ~]<span class="comment"># cd aaa</span></span><br><span class="line">[root@master aaa]<span class="comment"># echo $PWD</span></span><br><span class="line">/root/aaa</span><br><span class="line">[root@master aaa]<span class="comment"># echo $OLDPWD</span></span><br><span class="line">/root</span><br></pre></td></tr></table></figure><p>HISTFILE：储存历史命令</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">[root@master aaa]<span class="comment"># echo $HISTFILE</span></span><br><span class="line">/root/.bash_history</span><br><span class="line">[root@master aaa]<span class="comment"># vi /root/.bash_history  （退出----按：，按q，按回车键）</span></span><br><span class="line">[root@master aaa]<span class="comment">#</span></span><br></pre></td></tr></table></figure><p>HOME:当前用户的用户目录</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># echo $HOME</span></span><br><span class="line">/root</span><br></pre></td></tr></table></figure><p>3.PATH环境变量的综合运用</p><p>在PATH环境变量之前加入新的路径，/tmp</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># export PATH=/tmp:$PATH</span></span><br><span class="line">[root@master ~]<span class="comment"># echo $PATH</span></span><br><span class="line">/tmp:/root/perl5/bin:/root/perl5/bin:/opt/kafka_2.11-2.0.0/bin:/opt/zookeeper-3.4.12/bin:/opt/flink-1.10.2/bin:/opt/spark-2.1.1-bin-hadoop2.7//bin:/opt/apache-hive-2.3.4-bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/hadoop-2.7.7/bin:/opt/hadoop-2.7.7/sbin:/usr/java/jdk1.8.0_162/bin:/usr/java/jdk1.8.0_162/jre/bin:/opt/scala-2.11.0/bin:/opt/apache-flume-1.7.0-bin/bin:/root/bin</span><br></pre></td></tr></table></figure><p>转到新的路径/tmp下面制造了一个可执行文件hello</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># cd /tmp</span></span><br><span class="line">[root@master tmp]<span class="comment"># ll</span></span><br><span class="line">总用量 0</span><br><span class="line">drwx------. 3 root root 17 12月  4 08:08 systemd-private-29aad2a4b89b4c6b8901f17655036ac6-chronyd.service-IX3I1a</span><br><span class="line">drwx------. 2 root root  6 12月  4 08:08 vmware-root_8736-2857568991</span><br><span class="line">[root@master tmp]<span class="comment"># vi hello</span></span><br><span class="line"><span class="comment"># （按i键，看到屏幕底下有insert字样，此时输入）</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;hello hadoop!&quot;</span> </span><br><span class="line"><span class="comment"># (按Esc键，屏幕底下的insert字样消失，再按：，按wq，按回车键，此时就保存退出了vi编辑器)</span></span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">[root@master tmp]<span class="comment"># ll hello</span></span><br><span class="line">-rw-r--r--. 1 root root 21 12月  4 09:00 hello</span><br><span class="line">[root@master tmp]<span class="comment"># chmod 777 hello </span></span><br><span class="line">[root@master tmp]<span class="comment"># ll hello</span></span><br><span class="line">-rwxrwxrwx. 1 root root 21 12月  4 09:00 hello</span><br><span class="line">[root@master tmp]<span class="comment"># cd /root</span></span><br><span class="line">[root@master ~]<span class="comment"># echo $PATH</span></span><br><span class="line">/tmp:/root/perl5/bin:/root/perl5/bin:/opt/kafka_2.11-2.0.0/bin:/opt/zookeeper-3.4.12/bin:/opt/flink-1.10.2/bin:/opt/spark-2.1.1-bin-hadoop2.7//bin:/opt/apache-hive-2.3.4-bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/hadoop-2.7.7/bin:/opt/hadoop-2.7.7/sbin:/usr/java/jdk1.8.0_162/bin:/usr/java/jdk1.8.0_162/jre/bin:/opt/scala-2.11.0/bin:/opt/apache-flume-1.7.0-bin/bin:/root/bin</span><br><span class="line">[root@master ~]<span class="comment"># hello</span></span><br><span class="line">hello hadoop!</span><br><span class="line">[root@master ~]<span class="comment"># cd /tmp</span></span><br><span class="line">[root@master tmp]<span class="comment"># ll</span></span><br><span class="line">总用量 4</span><br><span class="line">-rwxrwxrwx. 1 root root 21 12月  4 09:00 hello</span><br><span class="line">drwx------. 3 root root 17 12月  4 08:08 systemd-private-29aad2a4b89b4c6b8901f17655036ac6-chronyd.service-IX3I1a</span><br><span class="line">drwx------. 2 root root  6 12月  4 08:08 vmware-root_8736-2857568991</span><br><span class="line">[root@master tmp]<span class="comment"># rm hello</span></span><br><span class="line"><span class="built_in">rm</span>：是否删除普通文件 <span class="string">&quot;hello&quot;</span>？y</span><br><span class="line">[root@master tmp]<span class="comment"># ll</span></span><br><span class="line">总用量 0</span><br><span class="line">drwx------. 3 root root 17 12月  4 08:08 systemd-private-29aad2a4b89b4c6b8901f17655036ac6-chronyd.service-IX3I1a</span><br><span class="line">drwx------. 2 root root  6 12月  4 08:08 vmware-root_8736-2857568991</span><br><span class="line">[root@master tmp]<span class="comment"># cd /root</span></span><br><span class="line">[root@master ~]<span class="comment"># hello</span></span><br><span class="line">-bash: /tmp/hello: 没有那个文件或目录</span><br></pre></td></tr></table></figure><h2 id="课堂练习"><a class="markdownIt-Anchor" href="#课堂练习"></a> 课堂练习</h2><p>（要求所有的命令均使用全局路径，将结果截图粘贴到桌面Release下面的word文件“模块A提交的结果”）：</p><ol><li>在根目录下面建立文件夹/bbb</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /bbb</span><br></pre></td></tr></table></figure><ol start="2"><li>在文件夹/bbb中建立文件hi.sh</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">touch</span> /bbb/hi.sh</span><br></pre></td></tr></table></figure><ol start="3"><li>在文件/bbb/hi.sh中，用vi编辑器输入10秒倒计时程序如下：</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">vi /bbb/hi.sh</span><br><span class="line"><span class="comment"># 点击 i 键 进入 insert 编辑模式</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----start----&quot;</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----10----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----9----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----8----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----7----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----6----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----5----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----4----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----3----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----2----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----1----&quot;</span>;<span class="built_in">sleep</span> 1;</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;----launch!----&quot;</span></span><br></pre></td></tr></table></figure><pre><code>保存并退出。(点击Esc退出insert编辑模式后输入 `:wq` )</code></pre><ol start="4"><li>设置hi.sh文件为可执行文件</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> +x /bbb/hi.sh</span><br></pre></td></tr></table></figure><ol start="5"><li>把/bbb路径添加在PATH环境变量中，并生效</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">echo &quot;PATH=\$PATH:/bbb&quot; &gt;&gt; /etc/profile</span><br><span class="line">source /etc/profile</span><br></pre></td></tr></table></figure><ol start="6"><li>在系统任意位置，执行hi.sh命令，将结果粘贴。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">[root@MySQL01 ~]<span class="comment"># sh hi.sh</span></span><br><span class="line">----start----</span><br><span class="line">----10----</span><br><span class="line">----9----</span><br><span class="line">----8----</span><br><span class="line">----7----</span><br><span class="line">----6----</span><br><span class="line">----5----</span><br><span class="line">----4----</span><br><span class="line">----3----</span><br><span class="line">----2----</span><br><span class="line">----1----</span><br><span class="line">----launch!----</span><br><span class="line">[root@MySQL01 ~]<span class="comment"># </span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux综合练习</title>
    <link href="http://blog.imc.re/archives/d4fd.html"/>
    <id>http://blog.imc.re/archives/d4fd.html</id>
    <published>2023-11-28T14:12:13.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="linux综合课堂练习"><a class="markdownIt-Anchor" href="#linux综合课堂练习"></a> Linux综合课堂练习</h2><p>将命令和结果粘贴在桌面的release目录下，模块A提交的结果文件中。要求命令参数文件路径使用绝对路径。</p><ol><li>建立文件夹/aaa/a01</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> -p /aaa/a01</span><br></pre></td></tr></table></figure><ol start="2"><li>转移到/aaa/a01目录下，并显示当前路径</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /aaa/a01 &amp;&amp; <span class="built_in">pwd</span></span><br></pre></td></tr></table></figure><ol start="3"><li>在文件夹/aaa/a01下新建文件myHadoop01.txt，内容为：Hello HadoopHello HDFSHello spark</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt;&gt; /aaa/a01/myHadoop01.txt &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">Hello Hadoop</span></span><br><span class="line"><span class="string">Hello HDFS</span></span><br><span class="line"><span class="string">Hello spark</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="5"><li>新建文件夹/bbb/b01</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> -p /bbb/b01</span><br></pre></td></tr></table></figure><ol start="6"><li>将文件/aaa/a01/myHadoop01.txt，复制到/bbb/b01目录下，并改名为myHadoop02.txt。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="7"><li>在/bbb/b01/myHadoop02.txt末尾，新增加一行内容：Hello Yarn</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello Yarn&quot;</span> &gt;&gt; /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="8"><li>比较/aaa/a01/myHadoop01.txt和/bbb/b01/myHadoop02.txt的不同之处。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">diff /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="9"><li>打印/aaa/a01/myHadoop01.txt的前两行内容。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">head</span> -n 2 /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="10"><li>打印/bbb/b01/myHadoop02.txt的最后1行内容。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">tail</span> -n 1 /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="11"><li>将文件夹/aaa，拷贝为/ccc</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> -r /aaa /ccc</span><br></pre></td></tr></table></figure><ol start="12"><li>删除/ccc/a01/myHadoop01.txt文件。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">rm</span> /ccc/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="13"><li>分别删除文件夹/ccc/a01，/ccc</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">rmdir</span> /ccc/a01</span><br><span class="line"><span class="built_in">rmdir</span> /ccc</span><br></pre></td></tr></table></figure><ol start="14"><li>为文件/aaa/a01/myHadoop01.txt，建立软连接/aaa/a01/myHadoop</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">ln</span> -s /aaa/a01/myHadoop01.txt /aaa/a01/myHadoop</span><br></pre></td></tr></table></figure><ol start="15"><li>用tar命令将/bbb/b01/myHadoop02.txt压缩为/bbb/b01/myHadoop02.tar.tz</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /bbb/b01</span><br><span class="line">tar cvzf myHadoop02.tar.tz myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="16"><li>查找电脑中所有以myHadoop字符开头的文件。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name <span class="string">&quot;myHadoop*&quot;</span></span><br></pre></td></tr></table></figure><ol start="17"><li>查找/aaa/a01/myHadoop01.txt中所有包含Hadoop的行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep <span class="string">&quot;Hadoop&quot;</span> /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="18"><li>显示/aaa/a01/myHadoop01.txt的属性，并用文字说明该文件的文件所有者、同组用户、其他用户分别具有什么权限。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">root@RC:/<span class="comment"># ll /aaa/a01/</span></span><br><span class="line">总用量 12</span><br><span class="line">drwxr-xr-x 2 root root 4096 11月 28 08:12 ./</span><br><span class="line">drwxr-xr-x 3 aaa  root 4096 11月 28 08:04 ../</span><br><span class="line">lrwxrwxrwx 1 root root   23 11月 28 08:12 myHadoop01 -&gt; /aaa/a01/myHadoop01.txt*</span><br><span class="line">-rw-r--r-- 1 root root   36 11月 28 08:07 myHadoop01.txt*</span><br></pre></td></tr></table></figure><ul><li>文件所有者：读写权限</li><li>同组用户：读权限</li><li>其他用户：读权限</li></ul><ol start="19"><li>用数字的方式，将myHadoop01.txt的权限设置为文件所有者可读不可写可执行，同组用户只可读，其他用户只可执行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 541 /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="20"><li>用字母的方式，将myHadoop01.txt的权限设置为一切用户均可读可写可执行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> a=rwx /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="21"><li>新建用户aaa</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">useradd aaa</span><br></pre></td></tr></table></figure><ol start="22"><li>将文件夹/aaa的所有者设置为aaa用户，并显示/aaa的属性</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chown</span> aaa /aaa</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux 权限操作</title>
    <link href="http://blog.imc.re/archives/e5ff.html"/>
    <id>http://blog.imc.re/archives/e5ff.html</id>
    <published>2023-11-27T14:11:32.000Z</published>
    <updated>2025-04-11T15:55:22.999Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="linux-权限操作"><a class="markdownIt-Anchor" href="#linux-权限操作"></a> Linux 权限操作</h1><p>1.用字母的方式改变权限用u表示文件所有者，g表示同组用户，o表示其他用户用r表示可读，用w表示可写，用x表示可执行，文件的权限就可以表示为字母等式的组合</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># touch a01.txt</span></span><br></pre></td></tr></table></figure><p>使文件所有者具有可读可写可执行：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod u=rwx a01.txt</span></span><br></pre></td></tr></table></figure><p>使同组用户和其他用户可读不可写可执行：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod go=rx a01.txt</span></span><br></pre></td></tr></table></figure><p>在原来的基础上，为同组用户增加可写属性：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod g+w a01.txt</span></span><br></pre></td></tr></table></figure><p>在原来的基础上，收回其他用户可执行的属性：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod o-x a01.txt</span></span><br></pre></td></tr></table></figure><p>文件所有者可读不可写可执行，同组用户收回可写属性，其他用户增加可写属性：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chmod u=rx,g-w,o+w a01.txt</span></span><br></pre></td></tr></table></figure><p>2.修改文件的所有者与所属组chown</p><p>增加用户aaa：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># useradd aaa</span></span><br></pre></td></tr></table></figure><p>将文件a01.txt的所有者改为aaa：</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[root@master ~]<span class="comment"># chown aaa a01.txt </span></span><br><span class="line">[root@master ~]<span class="comment"># ll a01.txt</span></span><br><span class="line">-r-xr-xrw-. 1 aaa root 0 11月 27 08:15 a01.txt</span><br></pre></td></tr></table></figure><h2 id="linux权限数字表达"><a class="markdownIt-Anchor" href="#linux权限数字表达"></a> Linux权限数字表达</h2><blockquote><p>由 <a href="https://chatglm.cn">智谱清言</a> 生成回答, 可能含有不正确的内容, 如有错误欢迎指正.</p></blockquote><p>在Linux中，文件和目录的权限可以用数字来表示，这些数字对应于权限的读（r）、写（w）和执行（x）。以下是各个权限对应的数字：</p><ul><li>读（r）：4</li><li>写（w）：2</li><li>执行（x）：1</li></ul><p>无权限（-）对应的数字是0。权限的设置是通过组合这些数字来实现的。例如，读和执行权限的组合（r-x）对应的数字是5（4+1），读和写权限的组合（rw-）对应的数字是6（4+2）。</p><p>在Linux中，权限的设置通常遵循以下模式：</p><ul><li>第一位数字：文件所有者的权限</li><li>第二位数字：文件所属组的权限</li><li>第三位数字：其他用户的权限</li></ul><p>例如，权限模式755表示：</p><ul><li>所有者（owner）：7（读、写、执行权限）</li><li>组（group）：5（读、执行权限，无写权限）</li><li>其他用户（others）：5（读、执行权限，无写权限）</li></ul><p>在Linux中，还有一些特殊的权限设置：</p><ul><li>600（rw-------）：所有者有读写权限，组和其他用户无权限。</li><li>644（rw-r--r--）：所有者有读写权限，组和其他用户只有读权限。</li><li>666（rw-rw-rw-）：所有者有读写权限，组和其他用户也有读写权限（但通常不会同时给予）。</li><li>700（rwx------）：所有者有读写执行权限，组和其他用户无权限。</li><li>744（rwxr--r--）：所有者有读写执行权限，组和其他用户只有读权限。</li><li>755（rwxr-xr-x）：所有者有读写执行权限，组和其他用户有读和执行权限，但无写权限。</li><li>777（rwxrwxrwx）：所有者有读写执行权限，组和其他用户也有读写执行权限（但通常不会同时给予）。在实际操作中，可以使用<code>chmod</code>命令来设置或修改文件和目录的权限。例如：</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 755 file.txt</span><br></pre></td></tr></table></figure><p>这个命令会将文件<code>file.txt</code>的权限设置为所有者可读写执行，组和其他用户可读执行。</p><h2 id="课堂练习"><a class="markdownIt-Anchor" href="#课堂练习"></a> 课堂练习：</h2><p>将命令和结果粘贴在桌面的release目录下，模块A提交的结果文件中。要求命令参数文件路径使用绝对路径。</p><ol><li>建立文件夹/aaa/a01</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> -p /aaa/a01</span><br></pre></td></tr></table></figure><ol start="2"><li>转移到/aaa/a01目录下，并显示当前路径</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /aaa/a01 &amp;&amp; <span class="built_in">pwd</span></span><br></pre></td></tr></table></figure><ol start="3"><li>在文件夹/aaa/a01下新建文件myHadoop01.txt，内容为：Hello HadoopHello HDFSHello spark</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt;&gt; /aaa/a01/myHadoop01.txt &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">Hello Hadoop</span></span><br><span class="line"><span class="string">Hello HDFS</span></span><br><span class="line"><span class="string">Hello spark</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="4"><li>新建文件夹/bbb/b01</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> -p /bbb/b01</span><br></pre></td></tr></table></figure><ol start="5"><li>将文件/aaa/a01/myHadoop01.txt，复制到/bbb/b01目录下，并改名为myHadoop02.txt。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="6"><li>在/bbb/b01/myHadoop02.txt末尾，新增加一行内容：Hello Yarn</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello Yarn&quot;</span> &gt;&gt; /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="7"><li>比较/aaa/a01/myHadoop01.txt和/bbb/b01/myHadoop02.txt的不同之处。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">diff /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="8"><li>打印/aaa/a01/myHadoop01.txt的前两行内容。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">head</span> -n 2 /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="9"><li>打印/bbb/b01/myHadoop02.txt的最后1行内容。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">tail</span> -n 1 /bbb/b01/myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="10"><li>将文件夹/aaa，拷贝为/ccc</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cp -r /aaa /ccc</span><br></pre></td></tr></table></figure><ol start="11"><li>删除/ccc/a01/myHadoop01.txt文件。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">rm</span> -rf /ccc/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="12"><li>分别删除文件夹/ccc/a01，/ccc</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">rmdir</span> /ccc/a01</span><br><span class="line"><span class="built_in">rmdir</span> /ccc</span><br></pre></td></tr></table></figure><ol start="13"><li>为文件/aaa/a01/myHadoop01.txt，建立软连接/aaa/a01/myHadoop</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">ln</span> -s /aaa/a01/myHadoop01.txt /aaa/a01/myHadoop</span><br></pre></td></tr></table></figure><ol start="14"><li>用tar命令将/bbb/b01/myHadoop02.txt压缩为/bbb/b01/myHadoop02.tar.tz</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -C /bbb/b01/ -czvf /bbb/b01/myHadoop02.tar.tz myHadoop02.txt</span><br></pre></td></tr></table></figure><ol start="15"><li>查找电脑中所有以myHadoop字符开头的文件。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name myHadoop*</span><br></pre></td></tr></table></figure><ol start="16"><li>查找/aaa/a01/myHadoop01.txt中所有包含Hadoop的行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep <span class="string">&quot;Hadoop&quot;</span> /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="17"><li>显示/aaa/a01/myHadoop01.txt的属性，并用文字说明该文件的文件所有者、同组用户、其他用户分别具有什么权限。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[root@MySQL01 aaa]<span class="comment"># ll /aaa/a01/myHadoop01.txt</span></span><br><span class="line">-rw-r--r--. 1 root root 36 1月   1 12:48 /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ul><li>文件所有者: 读写权限</li><li>同组用户,其他用户: 读权限</li></ul><ol start="18"><li>用数字的方式，将myHadoop01.txt的权限设置为文件所有者可读不可写可执行，同组用户只可读，其他用户只可执行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 541 /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="19"><li>用字母的方式，将myHadoop01.txt的权限设置为一切用户均可读可写可执行。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> a=rwx /aaa/a01/myHadoop01.txt</span><br></pre></td></tr></table></figure><ol start="20"><li>新建用户aaa</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">useradd aaa</span><br></pre></td></tr></table></figure><ol start="21"><li>将文件夹/aaa的所有者设置为aaa用户，并显示/aaa的属性</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chown</span> aaa /aaa &amp;&amp; <span class="built_in">stat</span> /aaa</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>Linux查找作业解析</title>
    <link href="http://blog.imc.re/archives/d40e.html"/>
    <id>http://blog.imc.re/archives/d40e.html</id>
    <published>2023-11-21T01:03:53.000Z</published>
    <updated>2025-04-11T15:55:22.999Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="linux查找作业解析"><a class="markdownIt-Anchor" href="#linux查找作业解析"></a> Linux查找作业解析</h1><blockquote><p>Linux 20231121 复习内容</p></blockquote><h2 id="课堂练习"><a class="markdownIt-Anchor" href="#课堂练习"></a> 课堂练习：</h2><p>把hadoop01镜像转到20230912，并启动hadoop01，用Ubuntu进行联机。完成下面的操作，并把命令和结果截图粘贴到ubuntu桌面下的目录Release的“模块A提交的结果.docx”。要求所有命令均使用绝对路径。</p><ol><li>在/root目录下建立子目录bbb</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /root/bbb</span><br></pre></td></tr></table></figure><ol start="2"><li>在/root/bbb目录下建立文件b01.txt</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">touch</span> /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="3"><li><p>在b01.txt中插入以下内容：</p><p>Hello HadoopHello hdfsHello sparkHello flinkHello yarnHello hbase</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello Hadoop&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello hdfs&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello spark&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello flink&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello yarn&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello hbase&quot;</span> &gt;&gt; /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="4"><li><p>将b01.txt拷贝为b02.txt，并在b02.txt中新增两行内容：</p><p>Hello RedisHello clickhouse</p></li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /root/bbb/b01.txt /root/bbb/b02.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello Redis&quot;</span> &gt;&gt; /root/bbb/b02.txt</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&quot;Hello clickhouse&quot;</span> &gt;&gt; /root/bbb/b02.txt</span><br></pre></td></tr></table></figure><ol start="5"><li>用diff命令比较b01.txt、b02.txt的不同之处</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">diff /root/bbb/b01.txt /root/bbb/b02.txt</span><br></pre></td></tr></table></figure><ol start="6"><li>用grep命令查找b01.txt中含有flink的行</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep flink /root/bbb/b01.txt</span><br></pre></td></tr></table></figure><ol start="7"><li>修改/root/bbb/b01.txt的权限：文件所有者可读可写可执行，同组用户可读可写不可执行，其他用户不可读不可写不可执行，并用ls命令查看结果</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 760 /root/bbb/b01.txt</span><br><span class="line"><span class="built_in">ls</span></span><br></pre></td></tr></table></figure><ol start="8"><li>修改/root/bbb/b02.txt的权限：文件所有者可读不可写可执行，同组用户可读不可写不可执行，其他用户不可读不可写可执行，并用ls命令查看结果</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> 541 /root/bbb/b02.txt</span><br><span class="line"><span class="built_in">ls</span></span><br></pre></td></tr></table></figure><ol start="9"><li>用find命令查找b01.txt文件的位置</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name b01.txt</span><br></pre></td></tr></table></figure><ol start="10"><li>用whereis命令查找grep命令文件的位置</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">whereis grep</span><br></pre></td></tr></table></figure><ol start="11"><li>用tar命令将到/opt/hadoop-2.7.7.tar.gz解压到/usr/local/src下面。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -xvzf /opt/hadoop-2.7.7.tar.gz -C /usr/local/src</span><br></pre></td></tr></table></figure><ol start="12"><li>用find命令查找文件stop-all.sh的位置。</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">find / -name stop-all.sh</span><br></pre></td></tr></table></figure><h2 id="课后笔记"><a class="markdownIt-Anchor" href="#课后笔记"></a> 课后笔记</h2><p>关于上述题目同学们有部分易错点，在此记录：</p><ol><li><strong>绝对路径和相对路径的概念还是不熟悉</strong>：绝对路径是以 <code>/</code> 开头，代表从根目录 <code>/</code> 开始。相对目录为 <code>./</code> 或者不加前缀。例：假设当前目录为<code>/root</code> ， <code>/bbb</code> 就是以根目录开始，与 <code>/root</code> 同级，如果是 <code>aaa</code> 或者 <code>./bbb</code> 就是在当前文件夹下 <code>/root</code> 创建，绝对路径为 <code>/root/aaa</code> <code>/root/bbb</code></li></ol><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/20240102012337.png" alt="linux files tree" /></p><ol start="2"><li><p><strong>echo的用法掌握不熟练</strong>：echo的指令根据格式不同会有不同的功能，<code>echo &quot;Hello Hadoop &gt; a.txt&quot;</code> 是将 <code>a.txt</code> 中的文件内容替换覆盖为指定内容，而 <code>echo &quot;Hello Hadoop &gt;&gt; a.txt&quot;</code> 是在 <code>a.txt</code> 中的文件末尾添加内容，区别为 <code>&gt;</code> 覆盖，<code>&gt;&gt;</code> 添加，<strong>使用错误会让文件内容全部消失，切记！</strong></p></li><li><p><strong>创建文件命令混淆</strong>： 创建文件夹的命令为 <code>mkdir</code> ，创建文件的命令为 <code>touch</code>，一个是文件夹，一个是文件，不要搞混。如果搞混后需要删除使用如下指令：<code>rmdir</code> 删除文件夹，<code>rm</code> 删除文件</p></li><li><p><strong>权限设置内容</strong>：可以参考：<a href="https://www.runoob.com/linux/linux-comm-chmod.html">Linux chmod命令</a></p></li></ol><h2 id="扩展内容"><a class="markdownIt-Anchor" href="#扩展内容"></a> 扩展内容：</h2><blockquote><p>如果认为上述操作太过简单，可以参考下方扩展内容增加效率</p></blockquote><ol><li>使用 <code>cat</code> 命令插入多行内容（以第4题为例）：</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt;&gt; /root/bbb/b01.txt &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">Hello Hadoop</span></span><br><span class="line"><span class="string">Hello hdfs</span></span><br><span class="line"><span class="string">Hello spark</span></span><br><span class="line"><span class="string">Hello flink</span></span><br><span class="line"><span class="string">Hello yarn</span></span><br><span class="line"><span class="string">Hello hbase</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="2"><li>使用 <code>history</code> 命令查看历史执行指令（可以用于回滚查找操作截图，但是只有命令，没有输出）</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="Linux" scheme="http://blog.imc.re/tags/Linux/"/>
    
    <category term="study" scheme="http://blog.imc.re/tags/study/"/>
    
  </entry>
  
  <entry>
    <title>中慧1+X证书真题</title>
    <link href="http://blog.imc.re/archives/7daf.html"/>
    <id>http://blog.imc.re/archives/7daf.html</id>
    <published>2023-10-31T17:44:40.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>所属院校：厦门南洋职业学院</p><h2 id="2022年python-1x中级考试真题理论"><a class="markdownIt-Anchor" href="#2022年python-1x中级考试真题理论"></a> 2022年Python 1+X中级考试真题(理论)</h2><h3 id="单选题"><a class="markdownIt-Anchor" href="#单选题"></a> 单选题</h3><p>每小题2分，共60 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django模板的变量名在HTML中用（    ）定义。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：[[   ]]</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：&#123;&#123;   &#125;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：&#123;  &#125;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：[  ]</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">爬虫代理的可以编写为（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：参数是一个序列&#123;&#x27;类型&#x27;：&#x27;代理ip：端口号&#x27;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：参数是一个字典&#123;&#x27;类型&#x27;：&#x27;代理ip：端口号&#x27;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：参数是一个字典&#123;&#x27;属性&#x27;：&#x27;代理ip：端口号&#x27;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：参数是一个序列&#123;&#x27;属性&#x27;：&#x27;代理ip：端口号&#x27;&#125;</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于MongoDB数据库，下列说法不正确的是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：MongoDB是关系型数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：MongoDB是一个基于分布式文件存储的数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：MongoDB数据库中每个文档都有_id字段</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：MongoDB数据库支持海量数据存储</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">下列关于Navicat说法，错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：支持SQL Server数据库可视化管理</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：是一种NoSQL数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：支持MySQL数据库可视化管理</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：支持MongoDB数据库可视化管理</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">itempipeline的一些典型应用不包括（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：验证爬取的数据（检查item包含某些分段）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：将爬取结果保存到数据库中</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：整理HTML、CSS和JS内容</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：查重</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">在MySQL数据库中，以下能够删除一列的是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：alter table user delete age</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：alter table user drop column age</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：alter table user delete column age</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：alter table user remove age</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">对于MySQL的一个学生表，其生日用以下哪种数据类型更合适（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：DATE</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：DATETIME</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：YEAR</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：TIMESTAMP</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">查询MySQL数据库World中的country表的前10条记录，显示“Name”、“Region”两个字段，下列正确的SQL语句是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：SELECT Name,Region FROM country LIMIT 10</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：SELECT * FROM WorldLIMIT 10</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：SELECT top 100 * FROM `country`</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：DELETE FROM country WHERE Name&gt;10</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django创建名为TestModel应用的语法是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：python manage.py makemigrations TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：django-admin startproject TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：python manage.py migrate TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：python manage.py startapp TestModel</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Scrapy-redis提供了四种组件，其中不包括（     ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：Scheduler</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：Item Pipeline</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：Base Spider</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：Mutiple Filter</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>11</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB切换数据库的命令是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：find</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：use</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：enter</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：select</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>12</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ORM的Models类对应于数据库的（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：属性</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：一条记录</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：数据表</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：字段</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>13</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB数据库集合的find()命令，如果未指定查询参数，则（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：执行命令时会报错</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：读取数据库集合的所有记录</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：读取数据库集合的第一条记录</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：返回nil</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>14</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">提高Selenium脚本的执行速度描述中错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：优化代码</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：对于firefox浏览器，考虑使用测试专用的profile，因为每次启动浏览器的时候firefox会创建1个新的profile，对于这个新的profile，所有的静态资源都是从服务器直接下载，而不是从缓存里加载，这就导致网络不好的时候用例运行速度特别慢的问题</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：使用更高配置的电脑和选择更快的网络环境</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：可以随便加sleep，使用显式等待</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>15</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Selenium中没有提供原生的方法判断元素是否存在，一般我们可以通过（    ）判断。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：定位元素+异常捕获</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：定位属性+非空</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：定位元素+非空</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：定位属性+异常捕获</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>16</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">一般网站从三个方面反爬虫，其中不包括（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：用户行为</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：网站目录和数据加载方式</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：用户点击网页</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：用户请求的Headers</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>17</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">SELECT语句的完整语法比较复杂，但至少包含以下哪个部分（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：SELECT，GROUP</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：SELECT，INTO</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：SELECT，FROM</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：仅SELECT</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>18</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQL数据库中，以下聚合函数求数据总和的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：AVG</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：COUNT</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：MAX</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：SUM</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>19</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQL数值型数据类型中有符号TINYINT的范围是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：(0，255)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：(-128，127)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：(0，65 535)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：(-32 768，32 767)</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>20</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">当生成一个spider继承redisspider时，会调用setup_redis函数，这个函数回去连接redis数据库，然后会设置（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：response</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：singals信号</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：token信令</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：request请求</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>21</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">反爬虫应对策略不包含下列哪项？(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：反爬虫自己会好的</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：设置延迟爬虫sleep()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：更换爬虫IP</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：添加headers信息</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>22</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">向一个尚不存在的MongoDB数据库集合执行插入文档操作，下列说法正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：返回false</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：插入成功，自动创建集合</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：返回nil</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：导致报错</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>23</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB命令dB. CollectionName.remove(&#123;key:value&#125;, &#123;justOne&#125;)的作用是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：删除集合CollectionName下的一条文档</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：查询集合CollectionName下的一条文档，并移动到justOne集合中</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：删除名为CollectionName的集合</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：删除集合CollectionName下的所有文档</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>24</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django请求对象属性中用于获取当前请求方式的关键字是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：path</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：body</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：method</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：POST</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>25</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">要启用spider中间件，您可以将其加入到 SPIDER_MIDDLEWARES 设置中。该设置是一个（    ），键为中间件的路径，值为中间件的顺序(order)。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：堆栈</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：item</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：字典</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：队列</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>26</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">元素找不到可能的原因不包括（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：动态id定位不到元素</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：在同一个iframe中查找元素</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：xpath描述错误</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：iframe原因定位不到元素</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>27</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB服务器默认端口是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：27017</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：8080</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：6379</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：3306</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>28</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">以下哪个不属于Scrapy框架的优点？（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：它由Spiders、ItemPipeline、Downloader、Scoop组成</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：它更容易构建大规模的抓取项目</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：它异步处理请求，速度非常快</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：它可以使用自动调节机制自动调整爬行速度</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>29</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">使用“CREATE TABLE”语句创建MySQL数据库的表，下列说法正确的是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：如果指定创建的表已经存在，则SQL语句执行失败</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：不能在两个不同的数据库里创建相同名称的表</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：创建数据库表时，不能指定主键</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：如果指定创建的表已经存在，则覆盖原有表</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>30</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">SQL语句中的条件查询用以下拿一项（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：THEN</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：WHERE</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：WHILE</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：IF</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><h3 id="多选题"><a class="markdownIt-Anchor" href="#多选题"></a> 多选题</h3><p>每小题2分，共20 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">如果AppModel是一个Django模型类，则修改数据的方法正确的有（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">A：a1 = AppModel.objects.get(id=1)</span><br><span class="line">a1.name = ‘zhangsan’</span><br><span class="line">a1.save()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：AppModel.objects.all().modify(name=’abc’)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：AppModel.objects.all().update(name=’wangwu’)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：AppModel.objects.filter(id=1).update(name=’lisi’)</span><br></pre></td></tr></table></figure><p>答案：A,C,D</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">以下对Django MVT模式解释正确的是（）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：V全拼为View，用于模本渲染，生成页面展示的HTML内容。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：M全拼为Model，与MVC中的M功能相同，负责和数据库交互。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：V全拼为View，与MVC中的C功能相同，接收请求，返回响应。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：T全拼为Template，与MVC中的V功能相同，负责封装构造渲染需要返回的HTML页面。</span><br></pre></td></tr></table></figure><p>答案：B,C,D</p><p>问题解析：Na</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">下列关于xpath表达式描述正确的有（）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：//title[@lang = &#x27;en&#x27;] 选取拥有lang属性并且值为‘en’的所有title元素。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：//bookstore/book[position()&lt;3] 选取最前面的三个属于bookstore元素的子元素的book元素。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：//bookstore/book[last()-1] 选取属于bookstore子元素的倒数第二个book元素。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：//bookstore/book[1] 选取属于bookstore子元素的第二个book元素。</span><br></pre></td></tr></table></figure><p>答案：A,C</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django中的redirect()的参数可以是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：一个绝对的或相对的URL，将原封不动的作为重定向的位置</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：一个视图，可以带有参数：将使用urlresolvers.reverse 来反向解析名称</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：一个元组，元组内是一系列URL</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：一个列表，列表内存放的是一系列的URL</span><br></pre></td></tr></table></figure><p>答案：A,B</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django路由中的path()和re_path()函数的描述正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：path()函数如果手动添加正则首位限制符号也可用于正则路径</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：path()函数用于普通路径</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：path()函数和Django 1.1.x版本的url()函数用法相同</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：re_path()函数用于正则路径</span><br></pre></td></tr></table></figure><p>答案：B,D</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django模板取值的方法正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：在模板中取出列表某个元素可以使用下标</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：视图可以传递列表，在模板中可以直接显示列表</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：视图可以传递字典，在模板中可以直接显示字典</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：在模板中可以通过字典的键得到相应的值</span><br></pre></td></tr></table></figure><p>答案：A,B,C,D</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django中的HttpRequest对象的属性，错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：POST包含所有HTTP POST参数的列表对象</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：GET包含所有HTTP GET参数的列表对象</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：body表示请求体。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：method属性返回请求中使用的HTTP方法的字符串表示，全大写表示</span><br></pre></td></tr></table></figure><p>答案：A,B</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ORM和数据库的对应关系正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：方法对应字段</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：对象实例对应一条记录</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：Models类对应数据表</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：属性对应字段</span><br></pre></td></tr></table></figure><p>答案：B,C,D</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">创建Django项目后，其中的文件的意义描述正确的有（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：settings.py 为Django项目的配置文件，里面包含了项目引用的Django组件、项目名等。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：urls.py为路由系统，主要维护项目的URL路由映射，即定义客户端访问的URL</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：__init__.py告诉Python该目录是一个Python模块，创建后暂无内容</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：wsgi.py定义WSGI的接口信息，用于与其他Web服务器集成，一般无需改动</span><br></pre></td></tr></table></figure><p>答案：A,B,D</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">对requests库描述正确的是（）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：任何类型的请求都可以通过requests.get()获取数据</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：使用requests.post()发送请求时可以通过data参数传递请求数据</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：可以使用requests.get()发送GET请求</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：使用requests.get()发送请求时可以通过data参数传递请求数据</span><br></pre></td></tr></table></figure><p>答案：B,C</p><p>问题解析：Na</p><h3 id="判断题"><a class="markdownIt-Anchor" href="#判断题"></a> 判断题</h3><p>每小题2分，共20 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django的视图函数至少要有一个参数用来接收请求对象（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB是一个基于分布式文件存储的数据库。是由C++语言编写（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">我们使用requests库发送post请求的时候，可以通过params关键字传递参数（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django是Python的一个Web开发框架，底层是基于C语言实现的。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django在创建应用后需要将应用注册到项目中，才能将应用中的模型类映射为数据表（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">构建Django模型时需要在settings.py文件中修改DATABASE的配置项，里面加上数据库引擎、数据主机、用户、密码等。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">在Scrapy项目中，我们可以通过yield关键字将item对象传递到管道，然后对数据进行持久化存储（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">我们可以使用Scrapy-Redis框架实现分布式爬虫，大规模的采集数据，但它的缺点是数据只能保存到Redis中，不能保存到MySQL中（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">我们在开发中大量采用MySQL数据库的原因是因为它是基于内存的数据库，效率高，速度快（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django MVT架构模式中的V指的是View，它的作用是渲染HTML内容，让用户能够看到一个美观的页面（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>中慧1+X证书题库</title>
    <link href="http://blog.imc.re/archives/260d.html"/>
    <id>http://blog.imc.re/archives/260d.html</id>
    <published>2023-10-31T16:59:10.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>所属院校：厦门南洋职业学院</p><h2 id="python程序开发模拟卷中级1120"><a class="markdownIt-Anchor" href="#python程序开发模拟卷中级1120"></a> Python程序开发模拟卷(中级1120)</h2><h3 id="单选题"><a class="markdownIt-Anchor" href="#单选题"></a> 单选题</h3><p>每小题2分，共60 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">提高Selenium脚本的执行速度描述中错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：使用更高配置的电脑和选择更快的网络环境</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：对于firefox浏览器，考虑使用测试专用的profile，因为每次启动浏览器的时候firefox会创建1个新的profile，对于这个新的profile，所有的静态资源都是从服务器直接下载，而不是从缓存里加载，这就导致网络不好的时候用例运行速度特别慢的问题</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：优化代码</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：可以随便加sleep，使用显式等待</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">删除Redis当前数据库的命令为（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：FLUSHALL</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：DB. Remove</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：DB. Drop</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：FLUSHDB</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django在视图中将数据传递给模板可以通过哪种方式（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：return render(request,&quot;xxx.html&quot;, &#123;key: value&#125;)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：return render(request,&quot;xxx.html&quot;, “name”)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：return render(request,&quot;xxx.html&quot;, 20)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：return render(request,&quot;xxx.html&quot;, [1, 2, 3])</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django创建名为TestModel应用的语法是（     ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：python manage.py makemigrations TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：python manage.py startapp TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：django-admin startproject TestModel</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：python manage.py migrate TestModel</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">以下操作不可以应对反爬的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：发送请求之后加上time.sleep(random.randint(1, 2))</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：requests.get()函数中为headers参数设置合理的User-Agent</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：一台计算机上开启多线程加快发送请求的速度</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：requests.get()函数中为proxies设置合适的代理</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQL字符数据类型不包括(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：TINYBLOB</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：CHAR</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：VARCHAR</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：BIGBLOB</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ORM是指（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：对象、联系、模型</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：关系、对象、模型</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：映射、对象、联系</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：对象、关系、映射</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">以下属于pymongo删除数据方法的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：delete_all()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：drop_one()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：delete_one()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：drop_many()</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">查询MySQL数据库World中的country表的前10条记录，显示“Name”、“Region”两个字段，下列正确的SQL语句是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：SELECT Name,Region FROM country LIMIT 10</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：DELETE FROM country WHERE Name&gt;10</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：SELECT * FROM WorldLIMIT 10</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：SELECT top 100 * FROM `country`</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">假如Student是一个Django模型类，利用该模型类删除数据的操作错误的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：Student.objects.all().delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：Student.objects.filter(id=1).delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：Student.objects.query_all().delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">D：stu=Student.objects.get(id=1)</span><br><span class="line">stu.delete()</span><br></pre></td></tr></table></figure><p>答案：C</p><p>11</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Redis的Hash的说法错误的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：HSET可设置字典的一个键值对</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：HDROP可用于删除键</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：HGETALL可获取字典的所有键值对</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：Hash是Redis的一种字典存储数据结构，一个Hash对象可以存储多个键-值对元素，底层由哈希表实现</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>12</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Selenium键盘操作，描述错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：send_keys(Keys.BACK_SPACE)表示删除键</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：send_keys(Keys.ENTER)表示回车键</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：send_keys(Keys.CONTROL，&#x27;c&#x27;)表示复制</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：send_keys(Keys.ESCAPE)表示空格键</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>13</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">现有一个stuinfo表,其中包含name(VARCHAR)、gender(INT)、birthday(DATE)、address(VARCHAR)、class(INT)几个字段，以下插入语句正确的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：NSERT INTO stuinfo VALUES (&#x27;chen&#x27;,1,&#x27;1999-5-1&#x27;,&#x27;北京市西直门大街123号&#x27;,5);</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：NSERT INTO stuinfo VALUES (&#x27;chen&#x27;,1,&#x27;1999-5-1&#x27;,&#x27;北京市西直门大街123号&#x27;);</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：NSERT INTO stuinfo (name,sex,birthday,address) VALUES (&#x27;chen&#x27;, 1, 1999-5-1, &#x27;北京市西直门大街123号&#x27;, 5);</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：NSERT INTO stuinfo (name,sex,birthday,address,class) VALUES (&#x27;chen&#x27;,1,&#x27;1999-5-1&#x27;,5);</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>14</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Selenium中获取页面相关信息的描述，不正确的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：元素的get_attribute()方法可以获取元素的属性值</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：元素的text属性可以获取元素的文本信息</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：元素的title属性可以获取网页标题</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：元素得到size属性可以获取元素的尺寸</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>15</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">在Scrapy项目中创建爬虫的命令是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：scrapy genspider 爬虫名 网页域名</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：scrapy genspider 爬虫名 网页的URL</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：scrapy startspider 爬虫名 网页域名</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：scrapy startspider 爬虫名 网页的URL</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>16</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">SQL是以下哪三个单词的缩写(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：Selected Quiet Language</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：Structured Query Language</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：Structured Quiet Language</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：Selected Query Language</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>17</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Redis的说法，错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：Redis服务端程序为redis-server.exe</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：启动Redis可以通过CMD命令和手动方式启动</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：可发送PING命令测试服务器，正常服务器回复OK</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：Redis客户端程序为redis-cli.exe</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>18</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">scrapy-Redis分布式策略中，爬虫继承了RedisSpider，它能够支持分布式的抓取，采用的是basic spider，需要写parse函数。其次就是不再有start_urls了，取而代之的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：redis_key</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：scheduler</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：key-values</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：setting</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>19</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Redis数据库中一个字符串类型的值能存储最大容量是多少(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：128M</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：64M</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：512M</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：256M</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>20</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django请求对象属性中用于获取当前请求方式的关键字是（    ）</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：method</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：POST</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：path</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：body</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>21</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Redis说法，不正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：速度快</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：单线程操作</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：基于内存存储</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：不支持键-值对数据存储</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>22</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Scrapy框架基于管道的持久化存储流程，描述有误的是哪项(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：爬虫文件抓取到数据后，将数据封装到items对象中</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：settings.py中开启管道</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：使用return将items对象交给pipelines管道进行持久化操作</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：管道文件中使用process_item方法将爬虫文件提交过来的item对象数据进行持久化存储</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>23</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MongoDB数据库操作错误的是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：show databases 可以显示数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：use 数据库名 可以切换数据库，但不能切换到一个不存在的数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：show dbs 可以显示数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：db.dropDatabase()可以删除数据库</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>24</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">SQL语言中数据定义语言DDL中包括哪个语句（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：grant</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：select</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：DROP</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：DELETE</span><br></pre></td></tr></table></figure><p>答案：C</p><p>问题解析：Na</p><p>25</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django模板中单行注释语法为(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：//</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：/*  */</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：#</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：&#123;# ... #&#125;</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>26</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django路由反向解析的说法错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：在模板 templates 中的 HTML 文件中，利用 &#123;% &quot;路由别名&quot; %&#125; 反向解析，如：&lt;form action=&quot;&#123;% &#x27;login&#x27; %&#125;&quot; method=&quot;post&quot;&gt;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：在 views.py 中，从 django.urls 中引入 reverse，利用 reverse(&quot;路由别名&quot;) 反向解析，如：return redirect(reverse(&quot;login&quot;))</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：在urls.py中给路由起别名，name=”路由别名”，如：path(&quot;login1/&quot;, views.login, name=&quot;login&quot;)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：反向解析，开发者可以增加代码的可维护性，使用URL反向解析使得开发者在许多需要写URL绝对路径的地方用映射名来代替</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>27</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQLdb连接数据库的语法为bObj=MySQLdB. connect(ServerName,User,PWD,DbName,charset=CharsetName)，以下关于它的描述错误的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：DbName表示表名</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：ServerName表示服务器名</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：PWD表示密码</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：User表示用户名</span><br></pre></td></tr></table></figure><p>答案：A</p><p>问题解析：Na</p><p>28</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">进入Django项目的交互式环境的命令是(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：python manage.py runserver</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：python manage.py shell</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：python manage.py makemigrations</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：python manage.py migrate</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><p>29</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">向一个尚不存在的MongoDB数据库集合执行插入文档操作，下列说法正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：返回false</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：导致报错</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：返回nil</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：插入成功，自动创建集合</span><br></pre></td></tr></table></figure><p>答案：D</p><p>问题解析：Na</p><p>30</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Scrapy中Downloader Middleware的核心方法不包括（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：process_response(request，response，spider)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：process_spider(request，spider)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：process_request(request，spider)</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：process_exception(request，exception，spider)</span><br></pre></td></tr></table></figure><p>答案：B</p><p>问题解析：Na</p><h3 id="多选题"><a class="markdownIt-Anchor" href="#多选题"></a> 多选题</h3><p>每小题2分，共20 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django路由中的path()和re_path()函数的描述正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：path()函数和Django 1.1.x版本的url()函数用法相同</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：path()函数用于普通路径</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：re_path()函数用于正则路径</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：path()函数如果手动添加正则首位限制符号也可用于正则路径</span><br></pre></td></tr></table></figure><p>答案：B,C</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">如果AppModel是一个Django模型类，则删除数据的方法正确的有（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：AppModel.objects.filter(id=1).delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">B：a1 = AppModel.objects.get(id=1)</span><br><span class="line">a1.delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：AppModel.objects.delete()</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：AppModel.objects.all().delete()</span><br></pre></td></tr></table></figure><p>答案：A,B,D</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">下列哪些列类型是MySQL数值型的数据(    )。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：DOUBLE</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：FLOAT</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：INT</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：SET</span><br></pre></td></tr></table></figure><p>答案：A,B,C</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">以下Django框架的描述正确的有（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：免费开源</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：集成了众多功能强大的模块</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：Django诞生于2003年，是目前Python语言影响力最高和最成熟的网络框架</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：开发效率高</span><br></pre></td></tr></table></figure><p>答案：A,B,C,D</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于MongoDB的说法，正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：由C++编写</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：提供可扩展的高性能数据存储解决方法</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：是一种基于分布式文件的开源数据库系统</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：可添加节点保证服务器性能</span><br></pre></td></tr></table></figure><p>答案：A,B,C,D</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Scrapy项目中的文件的描述正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：pipelines.py：数据处理文件，对爬取到的数据进行处理保存等</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：settings.py：项目配置文件。定义了项目设置文件路径、部署信息等内容</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：items.py：定义Item数据结构的文件。在此可以编写所有的Item数据定义</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：scrapy.cfg：项目设置文件，可以定义项目的全局设置，比如USER_AGENT，ROBOTSTXT_OBEY等</span><br></pre></td></tr></table></figure><p>答案：A,C</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQL中关于模糊查询的说法正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：由于模糊查询具有极大的便利性，因此在SQL中应推荐使用</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：‘张%’表示以‘张’开头的记录</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：可以使用LIKE关键字</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：‘_德_’表示三个字且中间为‘德’的记录</span><br></pre></td></tr></table></figure><p>答案：B,C,D</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Navicat支持哪些数据库的可视化管理（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：Oracle</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：MySQL</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：MongoDB</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：SQL Server</span><br></pre></td></tr></table></figure><p>答案：A,B,C,D</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Django视图的描述正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：视图函数可以查询数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：一个视图函数（类），简称视图，就是一个Python函数</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：视图函数render方法不能向页面发送响应数据</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：视图函数接受Web请求并返回Web响应</span><br></pre></td></tr></table></figure><p>答案：A,B,D</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">关于Redis命令，正确的是（    ）。</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">A：DBCOUNT 命令用于查看当前数据库的记录数</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">B：SELECT命令用于选择数据库</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C：GET KeyName，其中KeyName为键名，返回当前参数KeyName的值，如果指定KeyName不存在，则返加nil</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D：SET KeyName Value命令表示将值存储在当前数据库中</span><br></pre></td></tr></table></figure><p>答案：B,C,D</p><p>问题解析：Na</p><h3 id="判断题"><a class="markdownIt-Anchor" href="#判断题"></a> 判断题</h3><p>每小题2分，共20 分</p><p>1</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">通过CMD命令行启动MySQL服务的命令为start xxx, xxx表示安装过程中配置的MySQL服务名。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>2</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">由于Redis是内存数据库，因此它不支持数据的持久化存储。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>3</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Scrapy项目中运行爬虫的命令为scrapy start 爬虫名字。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Selenium是一个爬虫框架，让浏览器自动加载页面，获取需要的数据，甚至页面提交，后来又应用于Web自动化测试。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>5</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mongo.exe是MongoDB的客户端程序，在命令行执行mongo命令即可启动MongoDB客户端。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>6</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">在使用多线程的过程中，为了解决全局变量冲突问题，可以通过Lock加锁。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>7</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django中path()函数可以用于正则路径。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>8</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">HttpRequest 对象的path属性可以获取URL中的路径部分，数据类型是字符串。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：正确</p><p>问题解析：Na</p><p>9</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">MySQL数据库在集群技术、高可用性、安全性、系统管理等方面都有较好性能表现，支持跨平台运行，是目前大型高性能商务数据库的首选。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p><p>10</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Django中的模板变量名必须有字母、数字、下划线和点组成，可以以字母、数字和下划线开头。（    ）</span><br></pre></td></tr></table></figure><p>正确</p><p>错误</p><p>答案：错误</p><p>问题解析：Na</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>kafka安装文档</title>
    <link href="http://blog.imc.re/archives/kafka.html"/>
    <id>http://blog.imc.re/archives/kafka.html</id>
    <published>2023-10-24T14:26:40.000Z</published>
    <updated>2025-04-11T15:55:22.999Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ol start="0"><li>关闭防火墙</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl stop firewalld</span><br></pre></td></tr></table></figure><ol><li>需安装Zookeeper组件具体要求同Zookeeper任务要求，并与Kafka环境适配，启动Zookeeper并截图保存结果：</li></ol><ul><li>在master，slave1，slave2分别启动zookeeper</li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkServer.sh start</span><br></pre></td></tr></table></figure><ul><li>查询3台机器的zookeeper启动状态</li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkServer.sh status</span><br></pre></td></tr></table></figure><ul><li>zookeeper 配置文件 <code>/opt/software/zookeeper/conf/zoo.cfg</code> ，数据文件夹设置为 <code>/opt/software/zookeeper/zkdata</code>，<code>zoo.cfg</code> 需要和 kafka 的 <code>zookeeper.properties</code> 适配</li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /opt/module/zookeeper/conf/zoo.cfg</span><br></pre></td></tr></table></figure><p>需要查看的配置内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">dataDir=/opt/module/zookeeper/zkdata</span><br><span class="line">clientPort=2181</span><br><span class="line">server.1=master:2888:3888</span><br><span class="line">server.2=slave1:2888:3888</span><br><span class="line">server.3=slave2:2888:3888</span><br></pre></td></tr></table></figure><ol start="2"><li>解压kafka安装包到 <code>/opt/module</code> 路径,并修改解压后文件夹名为 kafka ,截图并保存结果:</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">tar -xvzf /opt/software/kafka1.0.0.tar.gz -C /opt/module</span><br><span class="line"><span class="built_in">mv</span> /opt/module/kafka_2.11-1.0.0 /opt/module/kafka</span><br></pre></td></tr></table></figure><ol start="3"><li>设置kafka环境变量, 并使环境变量只对当前root用户生效，截图并保存结果:</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /root/.bash_profile</span><br></pre></td></tr></table></figure><p>添加以下内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">export KAFKA_HOME=/opt/module/kafka</span><br><span class="line">export PATH=$PATH:$KAFKA_HOME/bin</span><br></pre></td></tr></table></figure><p>刷新生效:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /root/.bash_profile</span><br></pre></td></tr></table></figure><ol start="4"><li>修改kafka相应文件, 截图并保存结果:</li></ol><ul><li>在 master 上修改文件zookeeper.properties</li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /opt/module/kafka/config/zookeeper.properties</span><br></pre></td></tr></table></figure><p>配置文件内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">clientPort=2181</span><br><span class="line">dataDir=/opt/module/kafka/data</span><br><span class="line">server.1=master:2888:3888</span><br><span class="line">server.2=slave1:2888:3888</span><br><span class="line">server.3=slave2:2888:3888</span><br></pre></td></tr></table></figure><p>在kafka安装文件夹中建立 data 文件夹,与 <code>dataDir=/opt/module/kafka/data</code> 对应</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /opt/module/kafka/data</span><br><span class="line">vi /opt/module/kafka/data/myid</span><br></pre></td></tr></table></figure><ul><li>在 master 上修改 <code>server.properties</code></li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi  /opt/module/kafka/config/server.properties</span><br></pre></td></tr></table></figure><p>修改以下内容:</p><figure class="highlight properties"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">broker.id</span>=<span class="string">0</span></span><br><span class="line"><span class="attr">listeners</span>=<span class="string">PLAINTEXT://192.168.152.240:9092</span></span><br><span class="line"><span class="attr">advertised.listeners</span>=<span class="string">PLAINTEXT://192.168.152.240:9092</span></span><br><span class="line"><span class="attr">log.dirs</span>=<span class="string">/usr/local/src/kafka/data</span></span><br><span class="line"><span class="attr">zookeeper.connect</span>=<span class="string">192.168.152.240:2181,192.168.152.241:2181,192.168.152.242:2181</span></span><br></pre></td></tr></table></figure><p>文件分发:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">scp -r /opt/module/kafka slave1:/opt/module</span><br><span class="line">scp -r /opt/module/kafka slave2:/opt/module</span><br><span class="line">scp /root/.bash_profile slave1:/root</span><br><span class="line">scp /root/.bash_profile slave2:/root</span><br></pre></td></tr></table></figure><p>在其他节点刷新变量文件生效:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /root/.bash_profile</span><br></pre></td></tr></table></figure><ul><li>在 slave1 上修改 <code>myid</code> 文件为 2</li></ul><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span>&gt;/opt/module/kafka/data/myid&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">2</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><p>修改 <code>server.properties</code> 文件为以下内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">broker.id=1</span><br><span class="line">listeners=PLAINTEXT://192.168.152.241:9092</span><br><span class="line">advertised.listeners=PLAINTEXT://192.168.152.241:9092</span><br><span class="line">log.dirs=/usr/local/src/kafka/data zookeeper.connect=192.168.152.240:2181,192.168.152.241:2181,192.168.152.242:2181</span><br></pre></td></tr></table></figure><p>在 slave2 上修改 <code>myid</code> 文件为 3</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span>&gt;/opt/module/kafka/data/myid&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">3</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><p>修改 <code>server.properties</code> 文件为以下内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">broker.id=1</span><br><span class="line">listeners=PLAINTEXT://192.168.152.242:9092</span><br><span class="line">advertised.listeners=PLAINTEXT://192.168.152.242:9092</span><br><span class="line">log.dirs=/usr/local/src/kafka/data zookeeper.connect=192.168.152.240:2181,192.168.152.241:2181,192.168.152.242:2181</span><br></pre></td></tr></table></figure><ol start="5"><li>启动 kafka 并保存命令输出结果, 截图并保存结果:</li></ol><p>分别在master, slave1, slave2 上执行</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties</span><br><span class="line"></span><br><span class="line">jps</span><br></pre></td></tr></table></figure><p>输出以下内容为正常启动:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">2198 QuorumPeerMain</span><br><span class="line">6732 Jps</span><br><span class="line">3758 Kafka</span><br></pre></td></tr></table></figure><ol start="6"><li>创建指定topic, 截图并保存结果:</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-topics.sh --zookeeper master01:2181,slave01:2181,slave02:2181 --create --partitions 3 --replication-factor 3 --topic <span class="built_in">test</span></span><br></pre></td></tr></table></figure><p>输出以下内容为正常启动:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Created topic <span class="string">&quot;test-topic&quot;</span>.</span><br></pre></td></tr></table></figure><ol start="7"><li>查看所有topic信息, 并截图保存结果:</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-topics.sh --list --zookeeper master01:2181</span><br></pre></td></tr></table></figure><p>输出:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">test</span></span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-topics.sh -zookeeper master01:2181,slave01:2181,slave02:2181 --describe --topic <span class="built_in">test</span></span><br></pre></td></tr></table></figure><p>输出:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Topic:test-topic     PartitionCount:3   ReplicationFactor:3      Configs:</span><br><span class="line">      Topic: test-topic    Partition: 0 Leader: 1   Replicas: 1,2,0      Isr: 1,0</span><br><span class="line">      Topic: test-topic    Partition: 1 Leader: 2   Replicas: 2,0,1      Isr: 2,0,1</span><br><span class="line">      Topic: test-topic    Partition: 2 Leader: 0   Replicas: 0,1,2      Isr: 0,1</span><br></pre></td></tr></table></figure><ol start="8"><li>启动指定生产者(producer), 并截图保存结果:</li></ol><blockquote><p>注意: 控制台发送者的broker-list的ip需要与server.properties中listeners处的一致, 控制台消费者就能接收到消息</p></blockquote><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-producer.sh --broker-list 192.168.152.240:9092 --topic <span class="built_in">test</span></span><br></pre></td></tr></table></figure><ol start="9"><li>启动消费者(sonsumer), 并截图保存结果:</li></ol><p>再开启一个master连接, 输入:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-consumer.sh --bootstrap-server 192.168.152.240:9092 --topic <span class="built_in">test</span></span><br></pre></td></tr></table></figure><p>注: kafka旧版本连接服务器的参数为 <code>--zookeeper</code> , 新版为 <code>--bootstrap-server</code></p><p>输出:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Using the ConsoleConsumer with old consumer is deprecated and will be removed <span class="keyword">in</span> a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper]</span><br></pre></td></tr></table></figure><ol start="10"><li>测试生产者(producer), 并截图保存结果:</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-producer.sh --broker-list 192.168.152.240:9092 --topic <span class="built_in">test</span></span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">[root@master01 ~]<span class="comment"># kafka-console-producer.sh --broker-list 192.168.152.240:9092 --topic test</span></span><br><span class="line">&gt;111</span><br><span class="line">&gt;222</span><br><span class="line">&gt;333</span><br><span class="line">&gt;444</span><br><span class="line">&gt;555</span><br><span class="line">&gt;666</span><br><span class="line">&gt;777</span><br><span class="line">&gt;888</span><br></pre></td></tr></table></figure><ol start="11"><li>测试消费者(consumer), 并截图保存结果</li></ol><p>消费者上显示:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].</span><br><span class="line">111</span><br><span class="line">222</span><br><span class="line">333</span><br><span class="line">444</span><br><span class="line">555</span><br><span class="line">666</span><br><span class="line">777</span><br><span class="line">888</span><br></pre></td></tr></table></figure><h2 id="基于命令行方式使用kafka"><a class="markdownIt-Anchor" href="#基于命令行方式使用kafka"></a> 基于命令行方式使用kafka</h2><p>1.  三台机器上启动zookeeper<br /><a href="http://zkServer.sh">zkServer.sh</a> start</p><p>2.  三台机器上启动kafka服务</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kafka-server-start.sh -daemon /usr/local/src/kafka/config/server.properties  </span><br></pre></td></tr></table></figure><p>3.  查看进程</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">jps</span><br></pre></td></tr></table></figure><p>4.  创建主题</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">kafka-topics.sh --create \  </span><br><span class="line">--topic itcasttopic \  </span><br><span class="line">--partitions 3 \  </span><br><span class="line">--replication-factor 2 \  </span><br><span class="line">--zookeeper master01:2181,slave01:2181,slave02:2181  </span><br></pre></td></tr></table></figure><p>5.  创建生产者，来生产消息。在master01上输入</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-producer.sh \  </span><br><span class="line">--broker-list master01:9092,slave01:9092,slave02:9092 \  </span><br><span class="line">--topic itcasttopic  </span><br></pre></td></tr></table></figure><p>6.  创建消费者，来消费消息。在slave01上输入</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-consumer.sh \  </span><br><span class="line">--from-beginning \  </span><br><span class="line">--topic itcasttopic </span><br></pre></td></tr></table></figure><p>测试消费者（consumer）（kafka2.11-2.0.0命令有所不同）</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">kafka-console-consumer.sh \  </span><br><span class="line">--from-beginning \  </span><br><span class="line">--topic <span class="built_in">test</span> \  </span><br><span class="line">--bootstrap-server 192.168.152.245:9092</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>zookeeper安装文档</title>
    <link href="http://blog.imc.re/archives/zookeeper.html"/>
    <id>http://blog.imc.re/archives/zookeeper.html</id>
    <published>2023-10-24T14:26:40.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><ol start="0"><li>关闭防火墙</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 禁用防火墙</span></span><br><span class="line">systemctl <span class="built_in">disable</span> firewalld</span><br><span class="line"></span><br><span class="line"><span class="comment"># 关闭防火墙</span></span><br><span class="line">systemctl stop firewalld</span><br><span class="line"></span><br><span class="line"><span class="comment"># 再次查看防火墙状态</span></span><br><span class="line">systemctl status firewalld</span><br></pre></td></tr></table></figure><ol><li>查看主机名称</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hostname</span><br></pre></td></tr></table></figure><ol start="2"><li>解压zookeeper</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">tar -xvzf /opt/software/zookeeper-3.4.5.tar.gz -C /opt/module</span><br><span class="line"></span><br><span class="line"><span class="built_in">mv</span> /opt/module/zookeeper-3.4.5 /opt/module/zookeeper</span><br></pre></td></tr></table></figure><ol start="3"><li>修改zookeeper配置文件</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /opt/module/zookeeper/conf/zoo_simple.cfg /opt/module/zookeeper/conf/zoo.cfg</span><br><span class="line"></span><br><span class="line">vi /opt/module/zookeeper/conf/zoo.cfg</span><br></pre></td></tr></table></figure><p>修改以下内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"># 修改 dataDir 路径</span><br><span class="line">dataDir=/opt/module/zookeeper/zkdata</span><br><span class="line"></span><br><span class="line"># 文件末尾添加服务器</span><br><span class="line">server.1=master:2888:3888</span><br><span class="line">server.2=slave1:2888:3888</span><br><span class="line">server.3=slave2:2888:3888</span><br></pre></td></tr></table></figure><ol start="4"><li>创建 dataDir 设置的目录和 <code>myid</code> 文件</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /opt/module/zookeeper/zkdata</span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span> &gt; /opt/module/zookeeper/zkdata/myid &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">1</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="5"><li>配置环境变量</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /root/.bash_profile</span><br></pre></td></tr></table></figure><p>文件结尾插入以下内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">export ZK_HOME=/opt/module/zookeeper</span><br><span class="line">export PATH=$PATH:$ZK_HOME/bin</span><br></pre></td></tr></table></figure><p>刷新文件生效:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /root/.bash_profile</span><br></pre></td></tr></table></figure><ol start="6"><li>分发 zookeeper 相关文件和环境变量到slave1 slave2</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">scp -r /opt/module/zookeeper slave1:/opt/module</span><br><span class="line">scp -r /opt/module/zookeeper slave2:/opt/module</span><br><span class="line">scp -r /root/.bash_profile slave1:/root</span><br><span class="line">scp -r /root/.bash_profile slave2:/root</span><br></pre></td></tr></table></figure><p>在其他节点shell终端上刷新环境变量以生效</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">source</span> /.bash_profile</span><br></pre></td></tr></table></figure><ol start="7"><li>更改 slave1 和 slave2 的 <code>myid</code> 文件内容为 2 和 3</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt; /opt/module/zookeeper/zkdata/myid &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">2</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> &gt; /opt/module/zookeeper/zkdata/myid &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">3</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><ol start="8"><li>分别在三台机子上启动 zookeeper</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkServer.sh start</span><br></pre></td></tr></table></figure><ol start="9"><li>查看启动状态</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkServer.sh status</span><br></pre></td></tr></table></figure><p>输出类似下方内容即为启动正常</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">JMX enabled by default</span><br><span class="line">Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg</span><br><span class="line">Mode: follower</span><br></pre></td></tr></table></figure><ol start="10"><li>进入 zkshell</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkCli.sh -server localhost:2181</span><br></pre></td></tr></table></figure><ol start="11"><li>退出</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">quit</span><br></pre></td></tr></table></figure><ol start="12"><li>停止 zk 服务</li></ol><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">zkServer.sh stop</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>hadoop安装竞赛文档</title>
    <link href="http://blog.imc.re/archives/1385.html"/>
    <id>http://blog.imc.re/archives/1385.html</id>
    <published>2023-10-11T14:26:40.000Z</published>
    <updated>2025-04-11T15:55:22.999Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="hadoop安装教程"><a class="markdownIt-Anchor" href="#hadoop安装教程"></a> Hadoop安装教程</h1><blockquote><p>仅供厦门南洋学院的同学参考使用，基于厦门南洋学院实训楼413的环境进行配置，无法保证能够应用到其他场景。</p></blockquote><ul><li>编纂时间：2023.10.11</li><li>编纂作者：夏五郎</li></ul><h1 id="linux入门教程"><a class="markdownIt-Anchor" href="#linux入门教程"></a> Linux入门教程</h1><p>在linux下安装hadoop必须要会的几个基本操作：</p><ul><li><p>cd <code>目录</code> # 切换目录的命令使用 <code>cd</code> 命令可以切换目录，比如 <code>cd $MP</code> 就是打开$MP  目录。其中在目录前添加 <code>./module</code>或不加任何标记 <code>module</code> 表示当前目录，添加 <code>../module</code> 表示上级目录 ，<code>/module</code> 表示从根目录 <code>/</code> 开始的绝对路径目录。</p></li><li><p>vi <code>文件目录</code> # 在命令行中使用编辑器的命令使用 <code>vi</code> 命令可以在shell中编辑文件，比如 <code>vi /etc/hosts</code> 就是编辑/etc/hosts文件。文件目录的标注方法和cd同样，不存在的文件会直接新建，请注意！使用方向键移动光标，点击 <code>i</code> 键，最下方显示 <code>INSERT</code> 后进入编辑模式点击 <code>Esc</code> 键，然后输入 <code>:wq</code>可以保存文件并退出，其中q表示退出，w表示保存</p></li><li><p>tar # 解压文件的命令使用<code>tar</code>命令可以压缩/解压文件，hadoop配置中只用到了解压文件，这里给出解压文件的示例命令，其他参数请自行<code>tar --help</code> 或者bing查看。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">tar -xvzf 压缩目录文件 -C 解压到的目录</span><br><span class="line"># 例子：</span><br><span class="line">tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C $MP</span><br></pre></td></tr></table></figure><p>其中 <code>/opt/jdk-8u162-linux-x64.tar.gz</code> 是压缩文件所在文件路径，<code>$MP</code> 是要解压到的文件目录</p></li><li><p>ip #命令使用 <code>ip a</code> 命令可以查看服务器的IP地址，输出一般为这样：</p></li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">  [root@master ~]<span class="comment"># ip a</span></span><br><span class="line">1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000</span><br><span class="line">    <span class="built_in">link</span>/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</span><br><span class="line">    inet 127.0.0.1/8 scope host lo</span><br><span class="line">       valid_lft forever preferred_lft forever</span><br><span class="line">    inet6 ::1/128 scope host </span><br><span class="line">       valid_lft forever preferred_lft forever</span><br><span class="line">2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</span><br><span class="line">    <span class="built_in">link</span>/ether 00:0c:29:56:e9:74 brd ff:ff:ff:ff:ff:ff</span><br><span class="line">    inet 192.168.152.81/24 brd 192.168.152.255 scope global noprefixroute ens33</span><br><span class="line">       valid_lft forever preferred_lft forever</span><br><span class="line">    inet6 fe80::6a9a:2e8:734b:def2/64 scope <span class="built_in">link</span> noprefixroute </span><br><span class="line">       valid_lft forever preferred_lft forever</span><br></pre></td></tr></table></figure><p>其中 <code>192.168.152.81</code>就是该服务器的ip地址，要学会去看其他节点服务器的ip地址，以便连接操作。</p><ul><li>ssh #连接服务器命令使用 <code>ssh</code> 命令可以连接其他节点服务器，连接命令为：</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">ssh root@192.168.152.81 <span class="comment">#root是连接用户名，192.168.152.81是要连接的服务器ip地址。</span></span><br><span class="line">root@192.168.152.81<span class="string">&#x27;s password: #显示这个后输入密码</span></span><br><span class="line"><span class="string">[root@master ~]# 显示这个代表成功连接</span></span><br></pre></td></tr></table></figure><h2 id="小贴士"><a class="markdownIt-Anchor" href="#小贴士"></a> 小贴士</h2><ul><li>在敲命令的过程中可以使用 <code>TAB</code> 键补全命令哦~</li><li>可以使用方向键的 ↑ ↓ 键切换到上次执行的命令</li><li>使用 <code>ssh root@192.168.152.81 &quot;command&quot;</code> 指令即可远程执行 <code>command</code> 指令，前提是配置了密钥连接哦。</li></ul><h1 id="hadoop安装流程"><a class="markdownIt-Anchor" href="#hadoop安装流程"></a> Hadoop安装流程</h1><h2 id="一配置服务器基本环境"><a class="markdownIt-Anchor" href="#一配置服务器基本环境"></a> 一，配置服务器基本环境</h2><blockquote><p>需要在本板块将服务器所需模块以及其他配置文件弄好，以便后续的配置</p></blockquote><ol><li>在ubuntu中连接hadoop01，将hadoop01作为master节点进行配置：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">ssh root@192.168.152.81 </span><br><span class="line"><span class="comment">#打开终端，输入上述命令进行连接，root是连接用户名，192.168.152.81是要连接的服务器ip地址。</span></span><br><span class="line">root@192.168.152.81<span class="string">&#x27;s password: #显示这个后输入密码</span></span><br><span class="line"><span class="string">[root@server-1 ~]# 显示这个代表成功连接</span></span><br></pre></td></tr></table></figure><p><strong>如果无法连接说明IP地址更改了，请自行查看！</strong></p><ol start="2"><li>设置master主机名称和host文件，便于连接</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 设置主机名</span></span><br><span class="line">hostnamectl set-hostname master</span><br><span class="line"></span><br><span class="line"><span class="comment"># 在/etc/hosts文件里插入master和其他节点的ip和域名id</span></span><br><span class="line"><span class="built_in">cat</span>&gt;&gt;<span class="string">&quot;/etc/hosts&quot;</span>&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">192.168.152.81 master</span></span><br><span class="line"><span class="string">192.168.152.101 slave1</span></span><br><span class="line"><span class="string">192.168.152.121 slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure><p>或者使用 <code>vi /etc/hosts</code> 命令在文件末尾插入如下代码</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">192.168.152.81 master</span><br><span class="line">192.168.152.101 slave1</span><br><span class="line">192.168.152.121 slave2</span><br></pre></td></tr></table></figure><ol start="3"><li>生成密钥配置一键免密登录</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 生成密钥，回车三次即可</span></span><br><span class="line">ssh-keygen -t rsa</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将密钥复制给其他的节点便于一键连接，先输入 yes ，再输入节点密码 123456</span></span><br><span class="line">ssh-copy-id master</span><br><span class="line">ssh-copy-id slave1</span><br><span class="line">ssh-copy-id slave2</span><br></pre></td></tr></table></figure><ol start="4"><li>解压配置jdk以及hadoop</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 新建目录 /opt/module 用于放置所有需要的模组文件</span></span><br><span class="line"><span class="built_in">mkdir</span> /opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># 解压jdk文件，文件路径为/opt/jdk-8u162-linux-x64.tar.gz，如有变更自行更改</span></span><br><span class="line">tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C /opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将jdk目录重命名，方便后续配置</span></span><br><span class="line"><span class="built_in">mv</span> /opt/module/jdk1.8.0_162 /opt/module/jdk</span><br><span class="line"></span><br><span class="line"><span class="comment"># 解压hadoop文件，文件路径为tar -xvzf /opt/hadoop-3.3.0.tar.gz，学校自带镜像没有该版本，该版本为2023参赛所用版本，需要手动上传。</span></span><br><span class="line">tar -xvzf /opt/hadoop-3.3.0.tar.gz -C /opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将hadoop目录重命名，方便后续配置</span></span><br><span class="line"><span class="built_in">mv</span> /opt/module/hadoop-3.3.0 /opt/module/hadoop</span><br></pre></td></tr></table></figure><ol start="5"><li>设置jdk以及hadoop的环境变量</li></ol><p>使用 <code>vi /root/.bash_profile</code> 在文件末尾添加如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> JAVA_HOME=/opt/module/jdk</span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$JAVA_HOME</span>/bin:<span class="variable">$PATH</span></span><br><span class="line"><span class="built_in">export</span> HADOOP_HOME=/opt/module/hadoop</span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:<span class="variable">$HADOOP_HOME</span>/bin:<span class="variable">$HADOOP_HOME</span>/sbin</span><br></pre></td></tr></table></figure><ol start="6"><li>配置其他文件节点，执行以下命令：</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 传输hosts以及.root_profile 配置文件到其他的节点上</span></span><br><span class="line">scp -r /etc/hosts slave1:/etc</span><br><span class="line">scp -r /etc/hosts slave2:/etc</span><br><span class="line">scp -r /root/.root_profile slave1:/etc</span><br><span class="line">scp -r /root/.bash_profile slave2:/root</span><br></pre></td></tr></table></figure><ul><li><strong>打开新的终端页面执行以下指令</strong>，配置slave1。</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 连接服务器ssh</span></span><br><span class="line">ssh root@slave1</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置主机名</span></span><br><span class="line">hostnamectl set-hostname slave1</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建文件夹</span></span><br><span class="line"><span class="built_in">mkdir</span> /opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># 生成密钥，回车三次即可</span></span><br><span class="line">ssh-keygen -t rsa</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将密钥复制给其他的节点便于一键连接，先输入 yes ，再输入节点密码 123456</span></span><br><span class="line">ssh-copy-id master</span><br><span class="line">ssh-copy-id slave1</span><br><span class="line">ssh-copy-id slave2</span><br></pre></td></tr></table></figure><ul><li>配置slave2，<strong>打开新的终端页面执行以下指令</strong>。</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 连接服务器ssh</span></span><br><span class="line">ssh root@slave2</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置主机名</span></span><br><span class="line">hostnamectl set-hostname slave2</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建文件夹</span></span><br><span class="line"><span class="built_in">mkdir</span> /opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># 生成密钥，回车三次即可</span></span><br><span class="line">ssh-keygen -t rsa</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将密钥复制给其他的节点便于一键连接，先输入 yes ，再输入节点密码 123456</span></span><br><span class="line">ssh-copy-id master</span><br><span class="line">ssh-copy-id slave1</span><br><span class="line">ssh-copy-id slave2</span><br></pre></td></tr></table></figure><ol start="7"><li>查看安装情况</li></ol><p>在</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 刷新文件使变量生效</span></span><br><span class="line"><span class="built_in">source</span> /root/.bash_profile</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看Java安装情况和版本</span></span><br><span class="line">java -version</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看hadoop安装情况和版本</span></span><br><span class="line">hadoop version</span><br></pre></td></tr></table></figure><p>如果都正常输出证明安装成功，如果提示未找到命令则需要排查问题。</p><h2 id="二更改hadoop配置文件"><a class="markdownIt-Anchor" href="#二更改hadoop配置文件"></a> 二，更改hadoop配置文件</h2><blockquote><p>一共有6个配置文件需要更改，hadoop-3.3.0版本需要在4个启动/关闭脚本中添加环境参数，更改文件命令为 <code>vi ./文件名</code></p></blockquote><ol><li>更改 <code>hadoop-env.sh</code>文件</li></ol><p>切换目录到hadoop配置文件目录下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /opt/module/hadoop/etc/hadoop</span><br></pre></td></tr></table></figure><p>使用如下命令更改：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi ./hadoop-env.sh</span><br></pre></td></tr></table></figure><p>查找文件中 <code>JAVA_HOME</code> 关键词并替换为下方路径</p><ul><li>提示：可以使用 <code>?JAVA_HOME</code> 搜索关键词， <code>N</code> 键是查找下一个，在文件内标注<code>export JAVA_HOME=</code> 的地方进行修改，如果有注释需要删除注释进行修改，修改成下方内容</li></ul><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> JAVA_HOME=/opt/module/jdk</span><br></pre></td></tr></table></figure><ol start="2"><li>更改 <code>core-site.xml</code> 文件</li></ol><p>配置文件如下：</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">configuration</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>fs.defaultFS<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>hdfs://master:9000<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>hadoop.tmp.dir<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>/opt/module/hadoop/tmp<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">configuration</span>&gt;</span></span><br></pre></td></tr></table></figure><ol start="3"><li>更改 <code>hdfs-site.xml</code> 文件</li></ol><p>配置文件如下：</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">configuration</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>dfs.replication<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>3<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>dfs.namenode.secondary.http-address<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>slave1:50090<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">configuration</span>&gt;</span></span><br></pre></td></tr></table></figure><ol start="4"><li>更改 <code>mapred-site.xml</code> 文件</li></ol><p>配置文件如下：</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">configuration</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>mapreduce.framework.name<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>yarn<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">configuration</span>&gt;</span></span><br></pre></td></tr></table></figure><p>注：hadoop-2.7.7中需要先复制配置文件模板再进行配置</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> ./mapred-site.xml.template ./mapred-site.xml</span><br></pre></td></tr></table></figure><ol start="5"><li>更改 <code>yarn-site.xml</code> 文件</li></ol><p>配置文件如下：</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">configuration</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>yarn.resourcemanager.hostname<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>master<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line">       <span class="tag">&lt;<span class="name">property</span>&gt;</span></span><br><span class="line">         <span class="tag">&lt;<span class="name">name</span>&gt;</span>yarn.nodemanager.aux-services<span class="tag">&lt;/<span class="name">name</span>&gt;</span></span><br><span class="line">            <span class="tag">&lt;<span class="name">value</span>&gt;</span>mapreduce_shuffle<span class="tag">&lt;/<span class="name">value</span>&gt;</span></span><br><span class="line">     <span class="tag">&lt;/<span class="name">property</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">configuration</span>&gt;</span></span><br></pre></td></tr></table></figure><ol start="6"><li>更改 <code>workers</code> 文件</li></ol><p><strong>在hadoop-2.7.7中该文件名称为 <code>slaves</code> ，hadoop-3.3.0中该文件为<code>workers</code> 记得根据实际情况更改文件名！</strong></p><p>配置文件如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">master</span><br><span class="line">slave1</span><br><span class="line">slave2</span><br></pre></td></tr></table></figure><ol start="7"><li>更改 <code>start-dfs.sh</code> 以及 <code>stop-dfs.sh</code> 中的启动变量</li></ol><p>使用 <code>vi /opt/module/hadoop/sbin/start-dfs.sh</code> 以及 <code>vi /opt/module/hadoop/sbin/stop-dfs.sh</code> 指令分别更改，在 <strong>文件开头第二行插入如下代码！</strong>（#!/usr/bin/env的下面）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">HDFS_DATANODE_USER=root</span><br><span class="line">HADOOP_SECURE_DN_USER=hdfs</span><br><span class="line">HDFS_NAMENODE_USER=root</span><br><span class="line">HDFS_SECONDARYNAMENODE_USER=root</span><br></pre></td></tr></table></figure><ol start="8"><li>更改 <code>start-yarn.sh</code> 以及 <code>stop-yarn.sh</code> 中的启动变量</li></ol><p>使用 <code>vi /opt/module/hadoop/sbin/start-yarn.sh</code> 以及 <code>vi /opt/module/hadoop/sbin/stop-yarn.sh</code> 指令分别更改，在 <strong>文件开头第二行插入如下代码！</strong>（#!/usr/bin/env的下面）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">YARN_RESOURCEMANAGER_USER=root</span><br><span class="line">HADOOP_SECURE_DN_USER=yarn</span><br><span class="line">YARN_NODEMANAGER_USER=root</span><br></pre></td></tr></table></figure><ol start="9"><li>将master节点下的模组文件传输给其他的节点</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">scp -r /opt/module slave1:/opt</span><br><span class="line">scp -r /opt/module slave2:/opt</span><br></pre></td></tr></table></figure><h2 id="三启动hadoop"><a class="markdownIt-Anchor" href="#三启动hadoop"></a> 三，启动hadoop</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="comment"># hdfs初始化</span></span><br><span class="line">hdfs namenode -format</span><br><span class="line"></span><br><span class="line"><span class="comment"># 启动dfs</span></span><br><span class="line">start-dfs.sh</span><br><span class="line"></span><br><span class="line"><span class="comment"># 启动yarn</span></span><br><span class="line">start-yarn.sh</span><br><span class="line"></span><br><span class="line"><span class="comment"># 检查启动情况</span></span><br><span class="line">jps</span><br><span class="line"></span><br><span class="line"><span class="comment"># 检查其他节点启动情况</span></span><br><span class="line">ssh root@slave1 <span class="string">&quot;source /root/.bash_profile &amp;&amp; hostnamectl &amp;&amp; jps&quot;</span></span><br><span class="line">ssh root@slave2 <span class="string">&quot;source /root/.bash_profile &amp;&amp; hostnamectl &amp;&amp; jps&quot;</span></span><br></pre></td></tr></table></figure><p>如果启动失败记得先关闭yarn以及dfs，然后再排查问题</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">stop-dfs.sh</span><br><span class="line">stop-yarn.sh</span><br></pre></td></tr></table></figure><p><strong>问题更改之后记得使用下方命令同步文件！</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">scp -r /opt/module slave1:/opt</span><br><span class="line">scp -r /opt/module slave2:/opt</span><br></pre></td></tr></table></figure><h2 id="四配置文件记忆"><a class="markdownIt-Anchor" href="#四配置文件记忆"></a> 四，配置文件记忆</h2><p><strong>注意：比赛时所有的配置文件都需要背过！！！</strong> 为了方便背诵，我将所有需要背的配置文件内容拆解开来，助于理解记忆。</p><p>理解记忆：</p><ul><li><p>xml文件中配置框架英文含义：</p><ul><li>configuartion：配置</li><li>property：属性</li><li>name：名称</li><li>value：值</li></ul></li><li><p><code>hadoop-env.sh</code> 文件中需要重点记忆的内容：</p><ul><li><code>export JAVA_HOME</code> Java配置路径</li></ul></li><li><p><code>core-site.xml</code> 文件中需要重点记忆的内容：</p><ul><li><code>property</code> hadoop默认主节点的名称<ul><li>name <code>fs.defaultFS</code></li><li>value <code>hdfs://master:9000</code></li></ul></li><li><code>property</code> hadoop缓存目录路径值<ul><li>name <code>hadoop.tmp.dir</code></li><li>value <code>/opt/module/hadoop/tmp</code></li></ul></li></ul></li><li><p><code>hdfs-site.xml</code> 文件中需要重点记忆的内容：</p><ul><li><code>property</code> hadoop分布式节点数量名称<ul><li>name <code>dfs.replication</code></li><li>value <code>3</code></li></ul></li><li><code>property</code> hadoop namenode第二节点http地址<ul><li>name <code>dfs.namenode.secondary.http-address</code></li><li>value <code>slave1:50090</code></li></ul></li></ul></li><li><p><code>mapred-site.xml</code> 文件中需要重点记忆的内容：</p><ul><li><code>property</code> mapreduce framework 名称<ul><li>name <code>mapreduce.framework.name</code></li><li>value <code>yarn</code></li></ul></li></ul></li><li><p><code>yarn-site.xml</code> 文件中需要重点记忆的内容：</p><ul><li><code>property</code> yarn资源管理主机名称<ul><li>name <code>yarn.resourcemanager.hostname</code></li><li>value <code>master</code></li></ul></li><li><code>property</code> yarn节点管理 aux-services<ul><li>name <code>yarn.nodemanager.aux-services</code></li><li>value <code>mapreduce_shuffle</code></li></ul></li></ul></li><li><p><code>workers</code> 文件中需要重点记忆的内容：</p><ul><li>所有节点的主机名称</li></ul></li><li><p><code>*-dfs.sh</code> 文件中需要重点记忆的内容：</p><ul><li><code>HDFS_DATANODE_USER=root</code> # HDFS_数据节点_用户=root</li><li><code>HADOOP_SECURE_DN_USER=hdfs</code> # HADOOP_安全_DN_用户=hdfs</li><li><code>HDFS_NAMENODE_USER=root</code> # HDFS_名称节点_用户=root</li><li><code>HDFS_SECONDARYNAMENODE_USER=root</code> # HDFS_第二名称节点_用户=root</li></ul></li><li><p><code>*-yarn.sh</code> 文件中需要重点记忆的内容：</p><ul><li><code>YARN_RESOURCEMANAGER_USER=root</code> # YARN_资源管理_用户=root</li><li><code>HADOOP_SECURE_DN_USER=yarn</code> # HADOOP_安全_DN_用户=yarn</li><li><code>YARN_NODEMANAGER_USER=root</code> # YARN_节点管理_用户=root</li></ul></li></ul><hr /><h1 id="一键安装脚本"><a class="markdownIt-Anchor" href="#一键安装脚本"></a> 一键安装脚本</h1><p>针对南洋学院内网2022参赛环境编写的一键安装脚本，在master节点执行本脚本可以一键安装hadoop。<s>仅供参考</s></p><p><strong>请不要在学习hadoop搭建的时候使用脚本偷懒！脚本参考是为了辅助理解计算机配置hadoop的流程！学习hadoop搭建的过程无需查看，或仅供参考。</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="comment">### FIRST 第一板块</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set PATH&quot; 设置脚本执行环境变量，文件位置，模组路径等</span></span><br><span class="line"></span><br><span class="line">JF=/opt/jdk-8u162-linux-x64.tar.gz</span><br><span class="line">HF=/opt/hadoop-3.3.0.tar.gz</span><br><span class="line">MP=/opt/module</span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set host 设置主机名以及配置host文件&quot; </span></span><br><span class="line">hostnamectl set-hostname master</span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span>&gt;&gt;<span class="string">&quot;/etc/hosts&quot;</span>&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">192.168.152.81 master</span></span><br><span class="line"><span class="string">192.168.152.101 slave1</span></span><br><span class="line"><span class="string">192.168.152.121 slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set ssh key 配置ssh key进行自动连接&quot; </span></span><br><span class="line"></span><br><span class="line">ssh-keygen -t rsa <span class="comment"># -n &#x27;&#x27; -f  ~/.ssh/id_rsa</span></span><br><span class="line">ssh-copy-id master</span><br><span class="line">ssh-copy-id slave1</span><br><span class="line">ssh-copy-id slave2</span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set java &amp;&amp; hadoop&quot; 解压配置jdk以及hadoop</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">mkdir</span> <span class="variable">$MP</span></span><br><span class="line"><span class="built_in">mkdir</span> <span class="variable">$MP</span>/jdk</span><br><span class="line">tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C <span class="variable">$MP</span>/jdk --strip-components 1</span><br><span class="line"></span><br><span class="line"><span class="built_in">mkdir</span> <span class="variable">$MP</span>/hadoop</span><br><span class="line">tar -xvzf /opt/hadoop-3.3.0.tar.gz -C <span class="variable">$MP</span>/hadoop --strip-components 1</span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set PATH 设置jdk以及hadoop的环境变量&quot; </span></span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span>&gt;&gt;<span class="string">&quot;/root/.bash_profile&quot;</span>&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">export JAVA_HOME=$MP/jdk</span></span><br><span class="line"><span class="string">export PATH=\$JAVA_HOME/bin:\$PATH</span></span><br><span class="line"><span class="string">export HADOOP_HOME=$MP/hadoop</span></span><br><span class="line"><span class="string">export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;check install 查看安装情况&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">source</span> /root/.bash_profile</span><br><span class="line">java -version</span><br><span class="line">hadoop version</span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set slave 设置其他slave节点的主机配置文件&quot; </span></span><br><span class="line"></span><br><span class="line">scp -r /root/.bash_profile slave1:/root/</span><br><span class="line">scp -r /root/.bash_profile slave2:/root/</span><br><span class="line">scp -r /etc/hosts slave1:/etc/</span><br><span class="line">scp -r /etc/hosts slave2:/etc/</span><br><span class="line"></span><br><span class="line"><span class="comment"># echo &quot;set ssh slave ssh连接设置其他节点&quot;</span></span><br><span class="line">  </span><br><span class="line">ssh root@slave1 &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">hostnamectl set-hostname slave1</span></span><br><span class="line"><span class="string">mkdir $MP</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">ssh-keygen -t rsa -n &#x27;&#x27; -f  ~/.ssh/id_rsa</span></span><br><span class="line"><span class="string">ssh-copy-id master</span></span><br><span class="line"><span class="string">ssh-copy-id slave1</span></span><br><span class="line"><span class="string">ssh-copy-id slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line">ssh root@slave2 &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">hostnamectl set-hostname slave2</span></span><br><span class="line"><span class="string">mkdir $MP</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">ssh-keygen -t rsa -n &#x27;&#x27; -f  ~/.ssh/id_rsa</span></span><br><span class="line"><span class="string">ssh-copy-id master</span></span><br><span class="line"><span class="string">ssh-copy-id slave1</span></span><br><span class="line"><span class="string">ssh-copy-id slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment">### SECOND 第二板块</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># hadoop settings file 设置hadoop配置文件</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 替换 hadoop-env.sh 中的JAVA_HOME PATH文件</span></span><br><span class="line">sed -i <span class="string">&#x27;/export JAVA_HOME=/cexport JAVA_HOME=&#x27;</span><span class="variable">$MP</span><span class="string">&#x27;/jdk&#x27;</span> <span class="variable">$MP</span>/hadoop/etc/hadoop/hadoop-env.sh</span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置 core-site.xml 文件</span></span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/core-site.xml &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">&lt;configuration&gt;</span></span><br><span class="line"><span class="string">     &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;fs.defaultFS&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;hdfs://master:9000&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">      &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;hadoop.tmp.dir&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;/opt/module/hadoop/tmp&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">&lt;/configuration&gt;</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置 hdfs-site.xml 文件</span></span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/hdfs-site.xml &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">&lt;configuration&gt;</span></span><br><span class="line"><span class="string">    &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;dfs.replication&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;3&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">     &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;dfs.namenode.secondary.http-address&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;slave1:50090&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">&lt;/configuration&gt;</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置 mapred-site.xml 文件</span></span><br><span class="line"><span class="built_in">cp</span> <span class="variable">$MP</span>/hadoop/etc/hadoop/mapred-site.xml.template <span class="variable">$MP</span>/hadoop/etc/hadoop/mapred-site.xml</span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/mapred-site.xml&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">&lt;configuration&gt;</span></span><br><span class="line"><span class="string">    &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;mapreduce.framework.name&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;yarn&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">&lt;/configuration&gt;</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置 yarn-site.xml 文件</span></span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/yarn-site.xml&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">&lt;configuration&gt;</span></span><br><span class="line"><span class="string">&lt;!-- Site specific YARN configuration properties --&gt;</span></span><br><span class="line"><span class="string">     &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;yarn.resourcemanager.hostname&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;master&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">       &lt;property&gt;</span></span><br><span class="line"><span class="string">         &lt;name&gt;yarn.nodemanager.aux-services&lt;/name&gt;</span></span><br><span class="line"><span class="string">            &lt;value&gt;mapreduce_shuffle&lt;/value&gt;</span></span><br><span class="line"><span class="string">     &lt;/property&gt;</span></span><br><span class="line"><span class="string">&lt;/configuration&gt;</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置 slaves 文件 hadoop-2.7.7</span></span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/slaves&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">master</span></span><br><span class="line"><span class="string">slave1</span></span><br><span class="line"><span class="string">slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 配置workers wenjian hadoop-3.3.0</span></span><br><span class="line"><span class="built_in">cat</span> &gt; <span class="variable">$MP</span>/hadoop/etc/hadoop/workers&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">master</span></span><br><span class="line"><span class="string">slave1</span></span><br><span class="line"><span class="string">slave2</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># hadoop-3.3.0 need to add PATH for start&amp;stop shell hadoop-3.3.0需要添加PATH变量到启动/关闭脚本中</span></span><br><span class="line"></span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_DATANODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HADOOP_SECURE_DN_USER=hdfs&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_NAMENODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_SECONDARYNAMENODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-dfs.sh</span><br><span class="line"></span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_DATANODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HADOOP_SECURE_DN_USER=hdfs&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_NAMENODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HDFS_SECONDARYNAMENODE_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh</span><br><span class="line"></span><br><span class="line">sed -i <span class="string">&quot;2i YARN_RESOURCEMANAGER_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-yarn.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HADOOP_SECURE_DN_USER=yarn&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-yarn.sh</span><br><span class="line">sed -i <span class="string">&quot;2i YARN_NODEMANAGER_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/start-yarn.sh</span><br><span class="line"></span><br><span class="line">sed -i <span class="string">&quot;2i YARN_RESOURCEMANAGER_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-yarn.sh</span><br><span class="line">sed -i <span class="string">&quot;2i HADOOP_SECURE_DN_USER=yarn&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-yarn.sh</span><br><span class="line">sed -i <span class="string">&quot;2i YARN_NODEMANAGER_USER=root&quot;</span> <span class="variable">$MP</span>/hadoop/sbin/stop-yarn.sh</span><br><span class="line"></span><br><span class="line"><span class="comment">### THIRD 第三板块</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># trasnfer module 将配置好的模组路径下的所有文件传输到其他节点</span></span><br><span class="line">scp -r <span class="variable">$MP</span> slave1:/opt</span><br><span class="line">scp -r <span class="variable">$MP</span> slave2:/opt</span><br><span class="line"></span><br><span class="line"><span class="comment"># check hadoop start 启动hadoop</span></span><br><span class="line">hdfs namenode -format</span><br><span class="line"><span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh</span><br><span class="line"><span class="variable">$MP</span>/hadoop/sbin/stop-yarn.sh</span><br><span class="line"><span class="variable">$MP</span>/hadoop/sbin/start-dfs.sh</span><br><span class="line"><span class="variable">$MP</span>/hadoop/sbin/start-yarn.sh</span><br><span class="line"></span><br><span class="line"><span class="comment"># 检查启动情况</span></span><br><span class="line">hostnamectl</span><br><span class="line">jps</span><br><span class="line"></span><br><span class="line">ssh root@slave1 <span class="string">&quot;source /root/.bash_profile &amp;&amp; hostnamectl &amp;&amp; jps&quot;</span></span><br><span class="line">ssh root@slave2 <span class="string">&quot;source /root/.bash_profile &amp;&amp; hostnamectl &amp;&amp; jps&quot;</span></span><br></pre></td></tr></table></figure><h2 id="其他操作"><a class="markdownIt-Anchor" href="#其他操作"></a> 其他操作</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 覆盖文件</span></span><br><span class="line"><span class="built_in">cat</span>&gt;<span class="string">&quot;/etc/hosts&quot;</span>&lt;&lt;<span class="string">EOF </span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 在文件末尾添加</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span>&gt;&gt;<span class="string">&quot;/etc/hosts&quot;</span>&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 自动ssh配置</span></span><br><span class="line">sed -i <span class="string">&#x27;/StrictHostKeyChecking/cStrictHostKeyChecking no&#x27;</span> /etc/ssh/ssh_config</span><br><span class="line"><span class="built_in">rm</span> -rf ~/.ssh/&#123;known_hosts,id_rsa*&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># tar末尾添加参数--strip-components 1 可以去掉最外层的目录</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 目录更改重命名</span></span><br><span class="line"><span class="built_in">mv</span> <span class="variable">$MP</span>/hadoop-2.7.7 <span class="variable">$MP</span>/hadoop</span><br><span class="line"><span class="built_in">mv</span> <span class="variable">$MP</span>/jdk1.8.0_162 <span class="variable">$MP</span>/jdk</span><br><span class="line"></span><br><span class="line">ssh root@slave1 <span class="string">&quot;source /root/.bash_profile&quot;</span></span><br><span class="line">ssh root@slave2 &gt; /dev/null 2&gt;&amp;1 &lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"># JAVA_HOME路径直接添加</span></span><br><span class="line"><span class="string">echo &quot;export JAVA_HOME=$MP/jdk&quot; &gt;&gt; $MP/hadoop/etc/hadoop/hadoop-env.sh</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"># 传输hadoop的配置文件所在目录</span></span><br><span class="line"><span class="string">scp -r $MP/hadoop/etc/hadoop slave1:$MP/hadoop/etc</span></span><br><span class="line"><span class="string">scp -r $MP/hadoop/etc/hadoop slave2:$MP/hadoop/etc</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"># dfs启动脚本添加参数，不能直接使用，需要添加到文件头</span></span><br><span class="line"><span class="string">cat &gt;&gt; $MP/hadoop/sbin/start-dfs.sh&lt;&lt;EOF</span></span><br><span class="line"></span><br><span class="line">HDFS_DATANODE_USER=root</span><br><span class="line">HADOOP_SECURE_DN_USER=hdfs</span><br><span class="line">HDFS_NAMENODE_USER=root</span><br><span class="line">HDFS_SECONDARYNAMENODE_USER=root</span><br><span class="line"></span><br><span class="line">EOF</span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span> &gt;&gt; <span class="variable">$MP</span>/hadoop/sbin/stop-dfs.sh&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">HDFS_DATANODE_USER=root</span></span><br><span class="line"><span class="string">HADOOP_SECURE_DN_USER=hdfs</span></span><br><span class="line"><span class="string">HDFS_NAMENODE_USER=root</span></span><br><span class="line"><span class="string">HDFS_SECONDARYNAMENODE_USER=root</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span> &gt;&gt; <span class="variable">$MP</span>/hadoop/sbin/start-yarn.sh&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">YARN_RESOURCEMANAGER_USER=root</span></span><br><span class="line"><span class="string">HADOOP_SECURE_DN_USER=yarn</span></span><br><span class="line"><span class="string">YARN_NODEMANAGER_USER=root</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span> &gt;&gt; <span class="variable">$MP</span>/hadoop/sbin/stop-yarn.sh&lt;&lt;<span class="string">EOF</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">YARN_RESOURCEMANAGER_USER=root</span></span><br><span class="line"><span class="string">HADOOP_SECURE_DN_USER=yarn</span></span><br><span class="line"><span class="string">YARN_NODEMANAGER_USER=root</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 传输hadoop启动脚本文件</span></span><br><span class="line">scp -r <span class="variable">$MP</span>/hadoop/sbin slave1:<span class="variable">$MP</span>/hadoop</span><br><span class="line">scp -r <span class="variable">$MP</span>/hadoop/sbin slave2:<span class="variable">$MP</span>/hadoop</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>MCBE 88音平均律</title>
    <link href="http://blog.imc.re/archives/7d13.html"/>
    <id>http://blog.imc.re/archives/7d13.html</id>
    <published>2023-05-14T07:51:38.000Z</published>
    <updated>2025-04-11T15:55:23.002Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> 前言</h1><p>今天修IMC Geyser的时候看到冲田在烷MC，随便试了试Xbox联机没想到进去了）然后冲田似乎在研究playsound的调音，我才知道原来MCBE的playsound命令还有微分音的用法（红石音乐人狂喜x）通过微分音的调教，理论上突破原版材质包里自带的音符盒音域，实现88音的完整钢琴音域就可能实现了，如果再搭配上midi文件的转化就可以实现在MC游戏里不依靠任何材质包，mod等就能实现音乐的播放！</p><p>虽然已经有相关的项目了，比如 <a href="https://opennbs.org/">Open Note Block Studio</a> 就已经实现了nbs音乐相关的编辑，以及midi文件的转换。不过这个工具目前只支持MCJE，并不支持MCBE，扩展音域似乎也是通过扩展音符包来实现的，相对繁琐。本文主要记录一下MCBE的playsound调音对应88键平均律的对应数值以及方法，虽然不一定在MCJE适用，但是基本方法应该是差不多的，可以作为参考留档。</p><h1 id="基本知识"><a class="markdownIt-Anchor" href="#基本知识"></a> 基本知识</h1><p>让我们先来复习一下初中基本物理知识——声音的基本三要素：</p><ul><li>音色：波形决定了声音的音调。由于不同对象材料的特点，声音具有不同的特性，音色本身就是抽象的东西，但波形就是把这种抽象和直观的性能。波形因音调而异，不同的音调可以通过波形来区分。</li><li>音调：声音的高低由频率决定，频率越高音调越高，人耳听觉范围20—20000Hz；20Hz以下称为次声波，20000Hz以上称为超声波。</li><li>响度：指人耳感觉到的声音强弱，即声音响亮的程度，根据它可以把声音排成由轻到响的序列。响度的大小主要依赖于声强和频率，振幅越大响度越大，人和声源的距离越小，响度越大。</li></ul><p>而这三要素在Minecraft的 <code>/playsound</code> 指令里基本算是都齐活了，声音的基本三要素和MC指令的信息对应还是需要说明一下（毕竟wiki没提）：</p><p>MCBE的 /playsound 指令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/playsound &lt;sound: string&gt; [player: target] [position: x y z] [volume: float] [pitch: float] [minimumVolume: float]</span><br></pre></td></tr></table></figure><p>示例指令：音色为 <code>note.pling</code> ，音调为 <code>中央C（C4）</code> ，播放给全局玩家。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/playsound note.pling @a ~~~ 9999 0.7</span><br></pre></td></tr></table></figure><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/202305141550245.png" alt="指令预览" /></p><p>简单说明：</p><ul><li>音色：对应的 <code>&lt;sound: string&gt;</code> ，只能调用 <a href="https://minecraft.fandom.com/zh/wiki/Sounds.json#%E5%A3%B0%E9%9F%B3%E4%BA%8B%E4%BB%B6" title="Sounds.json">sounds.json</a> 里的项目，具体的可以去Minecraft Wiki或者自行拆包查看，有预览表，也可以使用自制的材质包实现自定义音色。值得一提的是MC中所有的音效都可以使用。这里列几个常用的Note音色：<ul><li><code>note.harp</code> 音符盒音色，算是MC红石音乐比较标志性的音色。类似音色：  <code>note.pling</code>  ，声音比较洪亮，音长相对较长。</li><li><code>note.guitar</code> 音符盒吉他音色，拨弦乐器声音采样比较短促，类似音色： <code>note.banjo</code>  班卓琴音色</li><li><code>note.bass</code> 音符盒贝斯音色，低音必备。类似音色： <code>note.bassattack</code></li><li><code>note.hat</code> 音符盒打击音色，可以当鼓点使用。类似音色： <code>note.bd</code>  <code>note.snare</code></li><li><code>note.flute</code> 音符盒笛声音色，使用高频播放的话可以达到延音的效果（吹奏类乐器音色的好处，采样出来的音色首尾相接基本不会有违和感，《光遇》里的乐器演奏也能用类似的方法实现延音。）类似音色： <code>note.didgeridoo</code> 有点低音号的感觉，但是高频播放不是很连贯。</li><li><code>note.bit</code> bit音乐采样音色，算是电子音乐比较经典的音色。类似音色： <code>note.bell</code> 八音盒感觉的音色， <code>note.cow_bell</code> 相对低沉的八音盒感觉的音色</li></ul></li><li>音调：对应的 <code>[pitch: float]</code> ，以数值的形式表现，默认是 <code>1</code> ，在 <code>note.pling</code> 中对应十二平均律中的 <code>F#</code> 。这种对应关系也是本文的重点，大概是通过程序将音色移调的参数，通过这种方式即便不把所有音符采样塞进游戏里<strong>理论上也能实现十二平均律，以及对应的钢琴八十八键的复原</strong>。</li><li>响度：响度有些特殊，决定响度的是 <code>[player: target] [position: x y z] [volume: float] [minimumVolume: float]</code> 这三个参数决定，依次是玩家目标，声音发生的位置，能够听到声音的范围，和补偿范围。没有直接影响响度的变量，不过可以通过这些参数间歇性的实现响度的控制，甚至环绕音的混响实现也是有可能的。</li></ul><p>详细参数说明：</p><blockquote><p><code>sound: string</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#basic_string" title="参数类型">basic_string</a></p><p>指定要播放的声音。必须为在<a href="https://minecraft.fandom.com/zh/wiki/Sounds.json#%E5%A3%B0%E9%9F%B3%E4%BA%8B%E4%BB%B6" title="Sounds.json">sounds.json</a>中被定义的一个声音项目（例如，<code>entity.pig.ambient</code>）。</p><p>一个声音项目可被多个不同的声音关联，而实际产生的声音为从中随机挑选的结果，被选中的概率由其权重决定，与正常游戏中相同。例如，声音项目<code>entity.pig.ambient</code>会随机播放多种猪音效之一，因为有多个声音关联于该项目。</p><p><a href="https://minecraft.fandom.com/zh/wiki/%E8%B5%84%E6%BA%90%E5%8C%85" title="资源包">资源包</a>可能会向sounds.json中添加额外的声音项目；此命令可以正常播放这些项目。该命令使用的声音名称<strong>不是</strong>文件名；而是严格使用sounds.json内定义的项目（项目名称可能与实际音频文件的文件名和目录相差甚远），因此资源包在添加新声音时必须为这些音频文件定义声音事件项目（但当资源包替换原有的已被定义的音频文件时，不必为其重新定义）。</p><p><code>player: target</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#CommandSelector%3CPlayer%3E" title="参数类型">CommandSelector Player</a></p><p>指定播放声音的目标。</p><p>必须为玩家名、目标选择器或<a href="https://minecraft.fandom.com/zh/wiki/UUID" title="UUID">UUID</a>。且目标选择器只允许玩家。</p><p><code>position: x y z</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#CommandPositionFloat" title="参数类型">CommandPositionFloat</a></p><p>指定声音发出的方位。</p><p>必须为三维坐标，元素为浮点数。允许<a href="https://minecraft.fandom.com/zh/wiki/%E5%91%BD%E4%BB%A4#%E7%9B%B8%E5%AF%B9%E5%9D%90%E6%A0%87%E5%92%8C%E5%B1%80%E9%83%A8%E5%9D%90%E6%A0%87" title="命令">波浪号与脱字号标记</a>。</p><p><code>volume: float</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#float" title="参数类型">float</a></p><p>指定声音能被听见的距离。必须至少为0.0。对小于1.0的值，声音会相对减轻，球状可闻范围会相对小。对大于1.0的值，声音不会实际上增大，但其可闻范围（1.0时半径为16米）会与_音量_相乘。声音总会基于与球体中心的距离逐渐衰减至无声。默认为1.0。</p><p>必须为<a href="https://en.wikipedia.org/wiki/zh:%E5%96%AE%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E%E6%95%B8" title="wikipedia:zh:单精度浮点数">单精度浮点数</a>。在<a href="https://minecraft.fandom.com/zh/wiki/Java%E7%89%88" title="Java版">Java版</a>中，必须大于等于0.0。</p><p><code>pitch: float</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#float" title="参数类型">float</a></p><p>指定声音的音调。若未指定，默认为1.0。</p><p>在<a href="https://minecraft.fandom.com/zh/wiki/Java%E7%89%88" title="Java版">Java版</a>中，该数值必须在0.0至2.0间（含），而小于0.5的值与0.5等价。小于1.0的值降低音调而提升持续时间；大于1.0的值提升音调而降低持续时间。音调值是乘在声音频率上的一个倍率，因此若将0.5-1.0（含）区间内的音调值乘以2，所得的新音调便会高一个八度。</p><p>在<a href="https://minecraft.fandom.com/zh/wiki/%E5%9F%BA%E5%B2%A9%E7%89%88" title="基岩版">基岩版</a>中，该数字没有特别限制，但是必须要在0.0至256.0之间才有对应效果。高于256.0的值与默认值的效果相同。小于等于0.0的值会导致听不到该声音。</p><ul><li>对于<a href="https://minecraft.fandom.com/zh/wiki/%E9%9F%B3%E7%AC%A6%E7%9B%92" title="音符盒">音符盒</a>的声音，如果你希望将其他音符转换为音调数值，请参阅<a href="https://minecraft.fandom.com/zh/wiki/%E9%9F%B3%E7%AC%A6%E7%9B%92#%E7%94%A8%E9%80%94" title="音符盒">相关内容</a>。但请注意1.0的音调值对于每种声音并不一定都是F♯。</li></ul><p><code>minimumVolume: float</code>：<a href="https://minecraft.fandom.com/zh/wiki/%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B#float" title="参数类型">float</a></p><p>指定在声音可闻范围外的目标能听到的音量。若目标在可闻范围外，作为补偿，声源会被放置在距离目标较近的位置（距离小于4格），而<code>_最小音量_</code>会决定补偿声源的音量。</p><p>如果此数值等于0，则正常可闻范围外的目标听不到声音。如果未指定，则默认为0.0。</p><p>必须为<a href="https://en.wikipedia.org/wiki/zh:%E5%96%AE%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E%E6%95%B8" title="wikipedia:zh:单精度浮点数">单精度浮点数</a>。在<a href="https://minecraft.fandom.com/zh/wiki/Java%E7%89%88" title="Java版">Java版</a>中，必须在0.0和1.0（含）之间。</p><p>——<a href="https://minecraft.fandom.com/zh/wiki/%E5%91%BD%E4%BB%A4/playsound">《命令/playsound - Minecraft Wiki》</a></p></blockquote><p>有这三要素基本就满足了声音构成的条件，但是把范围缩小到 <code>音乐</code> 当中，光有这基本三要素是不够的，关于 <code>音调</code> 的使用范围至关重要，而在乐理中基本的音调构成范围就不得不提到 <strong>十二平均律</strong> 了：</p><blockquote><p><strong>十二平均律</strong>（12-equal temperament）又称<strong>十二等程律</strong>，是世界上通用的一组音（八度）分成十二个<a href="https://baike.baidu.com/item/%E5%8D%8A%E9%9F%B3/20378032?fromModule=lemma_inlink">半音</a><a href="https://baike.baidu.com/item/%E9%9F%B3%E7%A8%8B/18483922?fromModule=lemma_inlink">音程</a>的<a href="https://baike.baidu.com/item/%E5%BE%8B%E5%88%B6/6785021?fromModule=lemma_inlink">律制</a>，各相邻两律之间的波长之比完全相等。 十二平均律是由中国明朝皇族世子<a href="https://baike.baidu.com/item/%E6%9C%B1%E8%BD%BD%E5%A0%89/1182870?fromModule=lemma_inlink">朱载堉</a>发现。</p><p>十二平均律是指八度的音程按波长比例平均分成十二等份，每一等份称为一个半音（<a href="https://baike.baidu.com/item/%E5%B0%8F%E4%BA%8C%E5%BA%A6/3316765?fromModule=lemma_inlink">小二度</a>）。一个<a href="https://baike.baidu.com/item/%E5%A4%A7%E4%BA%8C%E5%BA%A6/3269655?fromModule=lemma_inlink">大二度</a>则是两等份，称为<a href="https://baike.baidu.com/item/%E5%85%A8%E9%9F%B3/10997917?fromModule=lemma_inlink">全音</a>。将一个八度分成12等份有着惊人的一些巧合。这是因为它的纯<a href="https://baike.baidu.com/item/%E4%BA%94%E5%BA%A6/8803536?fromModule=lemma_inlink">五度</a>音程的两个音的波长比（即1/2的7/12次方）约为0.6674，与2/3，约为0.6667，非常接近。</p><p><strong>十二平均律在<a href="https://baike.baidu.com/item/%E4%BA%A4%E5%93%8D%E4%B9%90%E9%98%9F/10995603?fromModule=lemma_inlink">交响乐队</a>和<a href="https://baike.baidu.com/item/%E9%94%AE%E7%9B%98%E4%B9%90%E5%99%A8/5194554?fromModule=lemma_inlink">键盘乐器</a>中得到广泛使用，钢琴即是根据十二平均律来定音的。</strong></p><p>——<a href="https://baike.baidu.com/item/%E5%8D%81%E4%BA%8C%E5%B9%B3%E5%9D%87%E5%BE%8B/592297?fr=aladdin">十二平均律_百度百科 (baidu.com)</a></p></blockquote><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/202305211306495.png" alt="十二平均律图表" /></p><p>可能有人会问为什么要拘泥于十二平均律？使用微分音创作音乐不是也很新吗？其实这么想也不是不可以，不过截至目前，人类的基本音乐创作理论体系 <s>（俗称乐理）</s> 还“局限”于基于十二平均律中，因此，想要作出“给人听”的音乐十二平均律的存在是不可或缺的。当然科技发展至今，使用微分音创作的电子音乐也不算少数，这个就因人而异咯xd 借用《海上钢琴师》里我印象深刻的经典台词来说：</p><blockquote><p>Take a piano. The keys begin, the keys end. You know there are eightyeight of them, nobody can tell you any different. They are not infinite. You are infinite. And on these keys the music that you can make is infinite. I like that. That I can live by.</p><p>译：拿一架钢琴来说，从琴键开始，又结束。**你知道钢琴只有88个键，随便什么琴都没差。它们不是无限的。你才是无限的，在琴键上制作出的音乐是无限的。**我喜欢这样，我活的惯。</p></blockquote><hr /><h1 id="mc中的平均律"><a class="markdownIt-Anchor" href="#mc中的平均律"></a> MC中的平均律</h1><p>理论成立，实践开始！Minecraft原版中的音符盒的音域只有F#3到F#5的25个键，想要还原钢琴八十八键的音域一般来说只有扩展材质包，mod之类的办法。</p><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/202305141736378.png" alt="image-20230514173645051" /></p><p><strong>但是通过 <code>/playsound</code> 指令中的  <code>[pitch: float]</code> 调音参数就能实现原版MC不使用任何外部资源加持的前提下实现88键钢琴音域的还原！</strong> （甚至超出88键都有可能xd）那么在这其中需要实现各个键位的音调还原，Minecraft中 pitch参数和十二平均律的对应关系是必不可少的。</p><p>本来以为是很简单的正比线性对应关系，但是试了几个数之后感觉有点不对。。比如 p=1 的时候音色 <code>note.pling</code> 对应的是 F#4， p=2 的时候对应的是 F#5，但是到 F#3的时候对应的 p=0.5 ，并不是一般的一次函数线性关系。</p><p>通过冲田分享的文章 <a href="https://www.bilibili.com/read/cv4773559">【我的世界】playsound钢琴全键音调值 - 哔哩哔哩 (bilibili.com)</a> 知道了基本的对应关系式~~（不知道是怎么来的，不过随机抽样了几个数试了试大概是对的，就按这个公式来看吧x）~~：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>p</mi><mo>=</mo><msup><mn>2</mn><mfrac><mrow><mo fence="true">(</mo><mi>n</mi><mo>−</mo><mn>12</mn><mo fence="true">)</mo></mrow><mn>12</mn></mfrac></msup></mrow><annotation encoding="application/x-tex">p=2^{\frac{\left(n-12\right)}{12}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.13945em;vertical-align:0em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:1.13945em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.0377857142857143em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span><span class="mord mtight">2</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.5020714285714285em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="minner mtight"><span class="mopen mtight delimcenter" style="top:0em;"><span class="mtight">(</span></span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mord mtight">2</span><span class="mclose mtight delimcenter" style="top:0em;"><span class="mtight">)</span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/202305141803364.png" alt="image.png" /></p><p>其中 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi></mrow><annotation encoding="application/x-tex">p</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span></span></span></span> 代表的是 <code>[pitch: float]</code> 中的数值，而 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 则是十二平均律中的数值关系， <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 的整数之间都是半音关系，比如在音色 <code>note.pling</code> 中， <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">n=0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span> 的时候对应 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi><mo>=</mo><mn>0.5</mn></mrow><annotation encoding="application/x-tex">p=0.5</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span><span class="mord">.</span><span class="mord">5</span></span></span></span> ，对应的 F#3 , <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>12</mn></mrow><annotation encoding="application/x-tex">n=12</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mord">2</span></span></span></span> 的时候对应 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">p=1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span></span></span></span> 对应的 F#4，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>24</mn></mrow><annotation encoding="application/x-tex">n=24</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">2</span><span class="mord">4</span></span></span></span> 的时候对应 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>p</mi><mo>=</mo><mn>2</mn></mrow><annotation encoding="application/x-tex">p=2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">2</span></span></span></span> ...... 以此类推，便能得到钢琴八十八键对应的音符音调了。</p><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/uploads/202305211308820.png" alt="钢琴频谱" /></p><p>值得一提的是，MC中所有可以使用的音效对应的基准因，也就是 p=1 对应的音，并不一定都是 F# ，但是就目前来看，所有 <code>Note</code> 类型的音色对应的基准音都是 F#，所以以 F# 为基准音的基础上去测试以及记录对应的88音平均律的基本关系，如果有基准因不是 F# 的，也可以通过参考这个基准音对应关系来进行平移得到相对应的平均律谱表。</p><h2 id="88音平均律谱表"><a class="markdownIt-Anchor" href="#88音平均律谱表"></a> 88音平均律谱表</h2><p>以 <code>note.pling</code> 音色为基准，通过 p=1 F#3 的基本音关系延伸，根据 p=2^((n-12)/12) 的关系式，测试计算出来的平均律谱表如下（p取值为小数点后四位数）：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>p</mi><mo>=</mo><msup><mn>2</mn><mfrac><mrow><mo fence="true">(</mo><mi>n</mi><mo>−</mo><mn>12</mn><mo fence="true">)</mo></mrow><mn>12</mn></mfrac></msup></mrow><annotation encoding="application/x-tex">p=2^{\frac{\left(n-12\right)}{12}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.13945em;vertical-align:0em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:1.13945em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.0377857142857143em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span><span class="mord mtight">2</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.5020714285714285em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="minner mtight"><span class="mopen mtight delimcenter" style="top:0em;"><span class="mtight">(</span></span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mord mtight">2</span><span class="mclose mtight delimcenter" style="top:0em;"><span class="mtight">)</span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p><p>测试指令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/playsound note.harp @a ~~~ 1 p</span><br></pre></td></tr></table></figure><table><thead><tr><th style="text-align:center">n</th><th style="text-align:center">p</th><th style="text-align:center">音符</th><th style="text-align:center">音域</th></tr></thead><tbody><tr><td style="text-align:center">-33</td><td style="text-align:center">0.0743</td><td style="text-align:center">A</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">-32</td><td style="text-align:center">0.0787</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-31</td><td style="text-align:center">0.0834</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-30</td><td style="text-align:center">0.0884</td><td style="text-align:center">C</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">-29</td><td style="text-align:center">0.0936</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-28</td><td style="text-align:center">0.0992</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-27</td><td style="text-align:center">0.1051</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-26</td><td style="text-align:center">0.1114</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-25</td><td style="text-align:center">0.1180</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-24</td><td style="text-align:center">0.1250</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-23</td><td style="text-align:center">0.1324</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-22</td><td style="text-align:center">0.1403</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-21</td><td style="text-align:center">0.1487</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-20</td><td style="text-align:center">0.1575</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-19</td><td style="text-align:center">0.1669</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-18</td><td style="text-align:center">0.1768</td><td style="text-align:center">C</td><td style="text-align:center">2</td></tr><tr><td style="text-align:center">-17</td><td style="text-align:center">0.1873</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-16</td><td style="text-align:center">0.1984</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-15</td><td style="text-align:center">0.2102</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-14</td><td style="text-align:center">0.2227</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-13</td><td style="text-align:center">0.2360</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-12</td><td style="text-align:center">0.2500</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-11</td><td style="text-align:center">0.2649</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-10</td><td style="text-align:center">0.2806</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-9</td><td style="text-align:center">0.2973</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-8</td><td style="text-align:center">0.3150</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-7</td><td style="text-align:center">0.3337</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-6</td><td style="text-align:center">0.3536</td><td style="text-align:center">C</td><td style="text-align:center">3</td></tr><tr><td style="text-align:center">-5</td><td style="text-align:center">0.3746</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-4</td><td style="text-align:center">0.3969</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-3</td><td style="text-align:center">0.4204</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-2</td><td style="text-align:center">0.4454</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">-1</td><td style="text-align:center">0.4719</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">0</td><td style="text-align:center">0.5000</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">1</td><td style="text-align:center">0.5297</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">2</td><td style="text-align:center">0.5612</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">3</td><td style="text-align:center">0.5946</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">4</td><td style="text-align:center">0.6300</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">5</td><td style="text-align:center">0.6674</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">6</td><td style="text-align:center">0.7071</td><td style="text-align:center">C</td><td style="text-align:center">4</td></tr><tr><td style="text-align:center">7</td><td style="text-align:center">0.7492</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">8</td><td style="text-align:center">0.7937</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">9</td><td style="text-align:center">0.8409</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">10</td><td style="text-align:center">0.8909</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">11</td><td style="text-align:center">0.9439</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">12</td><td style="text-align:center">1.0000</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">13</td><td style="text-align:center">1.0595</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">14</td><td style="text-align:center">1.1225</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">15</td><td style="text-align:center">1.1892</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">16</td><td style="text-align:center">1.2599</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">17</td><td style="text-align:center">1.3348</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">18</td><td style="text-align:center">1.4142</td><td style="text-align:center">C</td><td style="text-align:center">5</td></tr><tr><td style="text-align:center">19</td><td style="text-align:center">1.4983</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">20</td><td style="text-align:center">1.5874</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">21</td><td style="text-align:center">1.6818</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">22</td><td style="text-align:center">1.7818</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">23</td><td style="text-align:center">1.8877</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">24</td><td style="text-align:center">2.0000</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">25</td><td style="text-align:center">2.1189</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">26</td><td style="text-align:center">2.2449</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">27</td><td style="text-align:center">2.3784</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">28</td><td style="text-align:center">2.5198</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">29</td><td style="text-align:center">2.6697</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">30</td><td style="text-align:center">2.8284</td><td style="text-align:center">C</td><td style="text-align:center">6</td></tr><tr><td style="text-align:center">31</td><td style="text-align:center">2.9966</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">32</td><td style="text-align:center">3.1748</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">33</td><td style="text-align:center">3.3636</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">34</td><td style="text-align:center">3.5636</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">35</td><td style="text-align:center">3.7755</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">36</td><td style="text-align:center">4.0000</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">37</td><td style="text-align:center">4.2379</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">38</td><td style="text-align:center">4.4898</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">39</td><td style="text-align:center">4.7568</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">40</td><td style="text-align:center">5.0397</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">41</td><td style="text-align:center">5.3394</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">42</td><td style="text-align:center">5.6569</td><td style="text-align:center">C</td><td style="text-align:center">7</td></tr><tr><td style="text-align:center">43</td><td style="text-align:center">5.9932</td><td style="text-align:center">C#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">44</td><td style="text-align:center">6.3496</td><td style="text-align:center">D</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">45</td><td style="text-align:center">6.7272</td><td style="text-align:center">D#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">46</td><td style="text-align:center">7.1272</td><td style="text-align:center">E</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">47</td><td style="text-align:center">7.5510</td><td style="text-align:center">F</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">48</td><td style="text-align:center">8.0000</td><td style="text-align:center">F#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">49</td><td style="text-align:center">8.4757</td><td style="text-align:center">G</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">50</td><td style="text-align:center">8.9797</td><td style="text-align:center">G#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">51</td><td style="text-align:center">9.5137</td><td style="text-align:center">A</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">52</td><td style="text-align:center">10.0794</td><td style="text-align:center">A#</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">53</td><td style="text-align:center">10.6787</td><td style="text-align:center">B</td><td style="text-align:center"></td></tr><tr><td style="text-align:center">54</td><td style="text-align:center">11.3137</td><td style="text-align:center">C</td><td style="text-align:center">8</td></tr></tbody></table><p>以上表格使用Excel计算 原文件 <s>（懒人一个xd）</s> ：<a href="https://docs.qq.com/sheet/DZWlER3ZjcXhFRFZz?tab=BB08J2">【腾讯文档】MC音律表</a></p><hr /><h1 id="结语"><a class="markdownIt-Anchor" href="#结语"></a> 结语</h1><p>从未设想过的道路）如果能加上midi转换的话，那么直接在MC里制作音乐也是完全有可能的了（确信。虽然有了nbs音乐，但是nbs本身并不支持在原版MC中直接播放，虽然可以用NBS Studio进行转换，但是目前NBS Studio也不支持MC基岩版，以及原版适配中目前似乎并没有支持到用命令扩展音域的地步（不过高版本mcfunction似乎可行。？）能在原生的MC里实现88音律表，也方便以后创作红石音乐的人们。</p><p>简单的一次尝试，也学到了不少东西，xd</p>]]></content>
    
    
      
      
    <summary type="html">&lt;link rel=&quot;stylesheet&quot; class=&quot;aplayer-secondary-style-marker&quot; href=&quot;/assets/css/APlayer.min.css&quot;&gt;&lt;script src=&quot;/assets/js/APlayer.min.js&quot; cla</summary>
      
    
    
    
    <category term="Tutorial" scheme="http://blog.imc.re/categories/Tutorial/"/>
    
    
    <category term="MCBE" scheme="http://blog.imc.re/tags/MCBE/"/>
    
    <category term="游戏" scheme="http://blog.imc.re/tags/%E6%B8%B8%E6%88%8F/"/>
    
  </entry>
  
  <entry>
    <title>Nostr浅尝记录</title>
    <link href="http://blog.imc.re/archives/99d4.html"/>
    <id>http://blog.imc.re/archives/99d4.html</id>
    <published>2023-05-12T09:59:13.000Z</published>
    <updated>2025-04-11T15:55:22.997Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> 前言</h1><p>Nostr是什么？一句话总结nostr：<strong>基本成型的去中心化的社交网络。</strong></p><p>其实相关的概念已经见到过不少了，“去中心化”也是最近网上的热点 <s>(嘛，多半都是被比特币炒上去的热度就是了，实际上关注技术和应用本身的人并不算很多x)</s> 而Nostr就是“去中心化社交网络”的具体体现之一（似乎有别的，不过我没接触过x）</p><span id="more"></span><p>我本身对“去中心化”其实也有一定的兴趣和倾向，不过个人技术力属实有限，能做到的事情太少，充其量也就是看看别人做的现成品x。不过经过大半天的琢磨体验下来，稍稍总结了一些心得。尽管在自己的nostr账户上也发布了，不过由于无法修改/删除，故不公开，只写在博客上作为记录（毕竟博客的数据是自己的x）</p><h2 id="nostr相关链接"><a class="markdownIt-Anchor" href="#nostr相关链接"></a> nostr相关链接</h2><blockquote><p>为了研究nostr专门把edge开了个分类，感觉浏览器快被我用成图书馆了x</p></blockquote><ul><li>Nostr Client项目：<ul><li><a href="https://github.com/vitorpamplona/amethyst">vitorpamplona/amethyst: Nostr client for Android (github.com)</a> Android开源客户端，功能还是比较齐全的，自动翻译，画廊功能算是特色吧，对于node节点的检测也比较人性化，以及具有群组聊天功能，如果有个国内能直连的node节点的话体验还是很不错的。</li><li><a href="https://github.com/damus-io/damus">damus-io/damus: iOS nostr client (github.com)</a> IOS开源客户端，因为没有苹果设备所以没体验过，不过挺出名的倒是x</li><li><a href="https://iris.to/">iris</a> 网页客户端，同时具有iOS/Android的客户端。基本操作还是比较友好的，也有多语言实现，就是一开始从哪看其他信息有点摸不着头脑x，另外功能比较简单，只实现了基本的功能，没太多特色亮点，值得一提的是有类似Twitter那样的自定义ID的功能，比如 <a href="https://iris.to/smgoro">https://iris.to/smgoro</a> 这样的。似乎还会注册NIP-05 Address，不过这是什么我不太清楚，有待研究。<ul><li><a href="https://github.com/irislib/iris-messenger">irislib/iris-messenger: Decentralized messenger (github.com)</a> 开源客户端仓库。</li></ul></li><li><a href="https://github.com/lovvtide/satellite-web">lovvtide/satellite-web: Satellite nostr client (github.com)</a> 在线体验网址 <a href="https://satellite.earth/">https://satellite.earth/</a> 一个非常风格化的网页客户端，似乎有不少奇奇怪怪的功能（待开发），没有i18n支持，也没有中文，不过还是值得一看的。</li><li><a href="https://github.com/digi-monkey/flycat-web">digi-monkey/flycat-web：马上在Nostr上写博客 (github.com)</a> 国人开发的网页客户端，理念是在Nostr上写博客，总的来说还是挺不错的，不过目前来说写博客还是自己的博客更方便些x，而且美中不足的就是UI方面还差了点火候）要是能完善一下就更好了。在线体验网址： <a href="http://flycat.club/">flycat.club</a></li><li><a href="https://github.com/styppo/hamstr">styppo/hamstr: A twitter-style Nostr web client (github.com)</a> 模仿Twitter风格的网页客户端，UI很好看~~（不如说大多数Nostr客户端UI都是模仿Twitter做的就是了）~~，但是功能上似乎有些缺陷，我用他的在线体验网址 <a href="https://hamstr.to/">hamstr.to</a> 试了试，登录账号之后刷新就什么都做不了了，很怪。如果能和flycat结合一下那大概是蕨杀。</li></ul></li><li>Nostr node项目：参考 <a href="https://nostrtips.com/?p=259">自建Nostr中继器 - Nostr协议 (nostrtips.com)</a> 这里留档几个自己比较感兴趣的项目。<s>（留坑为后续自建node做准备x）</s><ul><li><a href="https://github.com/hoytech/strfry">hoytech/strfry: a nostr relay (github.com)</a> 基于C++实现的无数据库中继器</li><li><a href="https://sr.ht/~gheartsfield/nostr-rs-relay/">nostr-rs-relay: Nostr relay in rust (sr.ht)</a> 基于Rust使用SQLite存储数据的中继器</li><li><a href="https://code.pobblelabs.org/fossil/nostr_relay/index">nostr relay: nostr relay (pobblelabs.org)</a> 基于Python使用SQLite存储的中继器</li></ul></li><li>其他Nostr相关网址：<ul><li><a href="https://github.com/nostr-protocol">nostr-protocol (github.com)</a>：应该算是“nostr官方”吧，理论提出的文章记录仓库，以及nostr相关的基本介绍，实现思路应该都有，不过基本只有md文件，过于简陋，只能算是理论，不是什么实际项目，有兴趣可以看看）</li><li><a href="https://nostr.build/">nostr.build media uploader</a> 为Nostr网络提供图像存储上传的网站，可以使用直链查看，不过可惜国内屏蔽了，不然可以当图床用x 不过关键的数据存储是否使用Nostr网络这点打个问号，目前来看大概率不是，还是自托管的，毕竟用的php实现的，还能查看具体的存储用量）估计和一般的图床差不多，只是挂了个nostr的名号。</li><li><a href="https://nostr.watch/">nostr.watch</a> 查看Nostr节点的网站，目前来看已经有500多个节点了，不过中国节点屈指可数）这么来看的话Nostr网络集群也算是发展起来了，虽然不如区块链那般壮大。</li><li><a href="https://github.com/search?q=nostr&amp;type=repositories">Repository search results · GitHub</a> Github上nostr相关的仓库，目前来看数量也有2.6k了，也算是比较成熟的项目了吧。</li><li><a href="https://github.com/aljazceru/awesome-nostr">aljazceru/awesome-nostr: A curated list of nostr projects and resources (github.com)</a> Nostr相关的项目大集合，有不少，有时间可以看看。</li></ul></li></ul><p>去中心化的“web3”概念提出到现在，Nostr是第一个我看到，并且亲自尝试的实际项目。 <strong>概念的变革都是由理想家提出，由工程师落实，最后让用户进行巩固充盈，这三者缺一不可，但资本并不是绝对必须的存在。</strong> 对于Nostr网络的未来，我还是很期待的。</p><h1 id="使用体验区别"><a class="markdownIt-Anchor" href="#使用体验区别"></a> 使用体验&amp;区别</h1><blockquote><p>一般的使用体验基本和Twitter差不多，发送文章，评论，点赞什么的（尽管不能撤销x）主要说下技术上的区别带来的直观体验吧。</p></blockquote><h2 id="1-账户体验"><a class="markdownIt-Anchor" href="#1-账户体验"></a> 1. 账户体验：</h2><p>应该是最直观的体验差异，账户不像中心化管理的社交网络那样使用常规的邮箱/手机号注册，密码验证，而是使用公钥私钥进行创建账户以及认证信息。这样做和中心化管理的最大差异就是你可以使用公钥看到对方的信息，包括发的文章，关住，粉丝，甚至私信对象（大部分nostr客户端的设计把公钥和私钥都设置成可以登录的认证方式了）</p><p>但是并不是所有信息都能看到，毕竟那样就没有设置账户的意义了）私信内容会被加密，只有有私钥的人才能看到具体内容，公钥看就是一团乱码。此外没有私钥的话也不能进行信息交互，发文章点赞关注之类的。大体来说其实和传统的账户使用无异。但是公钥和私钥都是不能更改的，所以说一旦泄露这个账户基本就相当于废了，正儿八经用的话可以使用密码管理器一类的东西来保存。</p><h2 id="2-客户端体验"><a class="markdownIt-Anchor" href="#2-客户端体验"></a> 2. 客户端体验：</h2><p>客户端体验算是一个比较直观的体验差距，和传统中心化管理的社交网络不同，没有“官方客户端”这一说，所有客户端都是第三方的。这样做有利有弊吧，相比起传统的中心化社交网络的第三方客户端，去中心化的社交网络的客户端开发显然地位要比前者高，可操性也更强，事实上半天的琢磨已经发现了不少开源的客户端，软件网页应有尽有，各有各的好处和优势，不过展开讲就长了，留着挖个坑，回头再说x。</p><p>基本内容都是一样的，可以看到别人的文章，基本的信息，发布自己的文章等等。要说有什么不同的话，那就是相比起中心化的社交网络多了个“node节点选择”的功能，不同的节点获取到的信息可能是不一样的，你发送的信息实际上也是悲存储在了node节点中。不过倒是不用太担心数据安全的问题（大概 该加密的数据就算存储在别人的node上也会以加密的形式存储，解密需要用到私钥，这个是客户端的活。</p><h2 id="3-服务器体验"><a class="markdownIt-Anchor" href="#3-服务器体验"></a> 3. 服务器体验：</h2><p>至少直到目前为止，去中心化的优势并没有在中国有所体现，因为基本上绝大多数的节点都被gfw噶掉了）而且去中心化的社交网络不利于监管，对于中国这种林子大了什么鸟都有的国家还是不太适用）不过可以自建node节点，这点倒是和传统的中心化社交网络差异性比较大。目前为止从 nostr.watch 的网站来看，已经有了500多个节点，不过大半集中在欧美地区，亚洲地区的node节点还比较少，目前来看日本那边可能用的人多一些（大概是twitter的难民）国内节点目前来看的话，台湾有一个节点，大陆有三四个，其中一半不是失效就是乱提交的，实质上能用的似乎只有一个（开node的大哥哥加油啊x），看别的人说国内节点迟早也会被制裁，这点我也比较同意，基本暂时不对国内节点保留希望了）</p><p>说实话，目前为止的nostr网络虽然说实现了去中心化管理，但是和我想象中的“完全去中心化社交网络”，或者说是“web3”还是有些差距，理想状态下我是希望能做到“用户及节点”的效果，这样用户体量越大社交网络也就越稳定，但是现阶段是“节点越多网络越稳定”，节点数量和用户数量不一定是正相关的，所以有崩溃的风险。另外虽然说从技术角度来看和区块链关系不大，但是目前主要受众群体其实还是吃到区块链红利的那波人，有没有可能下沉到一般用户群体（特别是在中国）也有待商榷。</p><p>另外有机会的话我也想试试自建node节点，不过需要考虑的事情还是有很多，比如选择什么样的方式搭建（node节点的实现方式似乎有不少），使用什么服务对外公开，以及通过什么途径来进行使用以及宣传，以及监管措施导致的服务商层面的惩罚等，要考虑清楚在弄，不能随随便便就去弄了，毕竟已经吃到过教训了）</p><h2 id="4-数据体验"><a class="markdownIt-Anchor" href="#4-数据体验"></a> 4. 数据体验：</h2><p>数据的存储，交互可以说是去中心化网络最大的特色和看点，相比起中心化网络，数据的直接所有人是维护中心化网络的主体（一般来说往往是公司）， <strong>去中心化的nostr社交网络的数据从结论上来看则是“不属于任何人”。</strong> 尽管数据直接存储在node节点中，但是用户是可以主动选择node节点的，而且用户数据似乎也会被分发到不同的节点中进行分布式存储，以及node搭建的所有人就算能查看到node里的数据，对于隐私数据一般来说是无法查看的，加密信息，密钥等。 说了“不属于任何人”，当然也不属于你自己。你能做到的只有两件事：发布和交互。</p><p>你想要删除或者修改都是没有办法的，发布出去的信息相当于“泼出去的水”，而且还不会干，会一直保留在去中心化的网络中。账户也是同理，无法注销，无法修改密码。从好的方面来想一定程度上保证了数据的安全性，以及相比起传统的中心化社交网络来说隐秘性更高，因为你的隐私数据只有你自己（私钥所有人）可以查看，连服务提供者都没法看到； <strong>从不好的方面来考虑，那就是现阶段的去中心化社交网络“太危险了”</strong> ：</p><p>因为数据“不属于任何人”，而认证账户的唯一手段是一个无法更改的密钥，你的账户也是并不是绝对安全的，也没有法律措施能够保护账户上的财产安全，上升到“国家舆论保护”的层面更是如此，所以短时间内这种模式的去中心化社交网络很难在中国普及开来。下放到商业化操作，这种去中心化的社交网络所承载的账号也绝对不是什么好选择，不管是作为公司企业的官方账号，还是偶像演员明星的活动账号，放在这种去中心化的社交网络风险都是相当大的，一方面是资本引来的大量流量，作为媒介的账号本身就具有价值，肯定会有人图谋不轨试图获取账号，万一账号密钥泄露，相关的公司或者艺人几乎没有任何办法再把这个账号挽回，放弃账号的话就相当于把一个常年积累的流量入口拱手让人，甚至会产生负面影响。这点其实下放到个人，上升到国家都是一样的，只是影响规模的程度问题。</p><p>综上所述，当前的去中心化社交网络几乎不可能吃到资本带来的流量红利，更多的其实还是向往自由的个体户在进行“尝鲜”。其实这种网络更加符合我心目中的“互联网精神”，其技术架构模式也类似bt那样的文件上传存储下载技术，但是如果失去了“资本的利益”，这种网络究竟能走多远，就不得而知了。虽然个人来说看好这种技术，但是就目前来说，他是一个“自由的混乱都市”，无法承担“世界级”的任务。</p><p>对了，补充一点。因为账户创建的低成本以及数据所有的特性，nostr其实有被大量bot用户灌溉“垃圾信息”的风险。但是目前来看nostr网络实际存储的信息只有文字和账户基本设定等基本信息，图片等其他资源还是引用的外部资源，包括头像，横幅，以及各种插入图也是。虽然有 nostr.build 这样的资源上传站点，但是实际上是否是用的nostr网络进行存储不得而知，似乎也并不是开源的。Amethyst的上传是可以自选图片托管方的，其他客户端目前不得而知，大概是随便选了个，或者是直接自建了吧。</p>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;前言&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#前言&quot;&gt;&lt;/a&gt; 前言&lt;/h1&gt;
&lt;p&gt;Nostr是什么？一句话总结nostr：&lt;strong&gt;基本成型的去中心化的社交网络。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;其实相关的概念已经见到过不少了，“去中心化”也是最近网上的热点 &lt;s&gt;(嘛，多半都是被比特币炒上去的热度就是了，实际上关注技术和应用本身的人并不算很多x)&lt;/s&gt; 而Nostr就是“去中心化社交网络”的具体体现之一（似乎有别的，不过我没接触过x）&lt;/p&gt;</summary>
    
    
    
    <category term="Article" scheme="http://blog.imc.re/categories/Article/"/>
    
    
    <category term="web3" scheme="http://blog.imc.re/tags/web3/"/>
    
    <category term="nostr" scheme="http://blog.imc.re/tags/nostr/"/>
    
  </entry>
  
  <entry>
    <title>图床测试</title>
    <link href="http://blog.imc.re/archives/f2eb.html"/>
    <id>http://blog.imc.re/archives/f2eb.html</id>
    <published>2023-04-29T05:45:21.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="smgphoto"><a class="markdownIt-Anchor" href="#smgphoto"></a> SMGPhoto</h1><p>采用 PicGo客户端 + Github + Cloudflare Pages+ thumbsup 的方案实现完全脱离自托管服务器的自建静态渲染图床网站.</p><span id="more"></span><p>效果好像还行, 就是Cloudflare编译网站的时间比较长, PicGo每上传一个图片都要重新编译一遍, 每次都得等个一分多钟才能加载好. ~~一时半会不知道要传什么图片, 就随便截图群里的几张扔上去了, 23333)</p><p>项目地址：<a href="https://github.com/SMGCDN/photos">SMGCDN/Photos</a></p><p>相册站点：<a href="https://img.imc.re/">SMGoro Photos</a></p><p>使用项目概览:</p><ul><li><a href="https://github.com/Molunerfinn/PicGo/">PicGo</a>： 客户端上传程序</li><li><a href="https://github.com/PicGo/flutter-picgo">flutter-picgo</a>：手机客户端上传程序</li><li><a href="https://github.com/">Github</a>：图片仓库存储</li><li><a href="https://gitee.com">Gitee</a>：国内仓库镜像存储</li><li><a href="https://github.com/thumbsup/thumbsup">Thumbsup</a>：静态相册网站程序</li><li><a href="https://pages.cloudflare.com/">Cloudflare Pages</a>：网站托管编译+CDN镜像</li><li><a href="https://www.jsdelivr.com/">Jsdelivr</a>：额外CDN镜像提供</li><li><a href="https://github.com/Yikun/hub-mirror-action">hub-mirror-action</a>：Github Action同步至Gitee</li></ul><h1 id="图床地址"><a class="markdownIt-Anchor" href="#图床地址"></a> 图床地址</h1><h2 id="cloudflare速度一般刷新速度慢"><a class="markdownIt-Anchor" href="#cloudflare速度一般刷新速度慢"></a> Cloudflare（速度一般，刷新速度慢）</h2><p>托管在Cloudflare Pages上的图片有经过Thumbsup相册的处理，可以实现略缩图，原图，水印图的处理，总的来说，十分牛逼，就是每次都要从头构建导致刷新速度有点慢x</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"># Pages</span><br><span class="line">https://smgimg.pages.dev/</span><br><span class="line"># IMC.RE</span><br><span class="line">https://img.imc.re/</span><br><span class="line"># 略缩图</span><br><span class="line">https://img.imc.re/media/small/</span><br><span class="line"># 处理图</span><br><span class="line">https://img.imc.re/media/large/</span><br><span class="line"></span><br><span class="line">example:</span><br><span class="line">![CF_IMC](https://img.imc.re/logo/imc.re.png)</span><br><span class="line">![CF_small](https://img.imc.re/media/small/wallpaper/bg.jpg)</span><br><span class="line">![CF_large](https://img.imc.re/media/large/wallpaper/bg.jpg)</span><br></pre></td></tr></table></figure><p>example:</p><p><img src="https://img.imc.re/logo/imc.re.png" alt="CF_IMC" /><img src="https://img.imc.re/media/small/wallpaper/bg.jpg" alt="CF_small" /><img src="https://img.imc.re/media/large/wallpaper/bg.jpg" alt="CF_large" /></p><hr /><h2 id="gitee国内速度快action同步"><a class="markdownIt-Anchor" href="#gitee国内速度快action同步"></a> Gitee（国内速度快，Action同步）</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">https://gitee.com/smgoro_0/photos/raw/master/</span><br><span class="line"></span><br><span class="line"># example:</span><br><span class="line">![Gitee](https://gitee.com/smgoro_0/photos/raw/master/logo/imc.re.png)</span><br></pre></td></tr></table></figure><p>example:</p><p><img src="https://gitee.com/smgoro_0/photos/raw/master/logo/imc.re.png" alt="Gitee" /></p><hr /><h2 id="jsdelivr速度海星缓存刷新慢"><a class="markdownIt-Anchor" href="#jsdelivr速度海星缓存刷新慢"></a> jsdelivr（速度海星，缓存刷新慢）</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"># 刷新链接</span><br><span class="line">https://purge.jsdelivr.net/gh/SMGCDN/photos/</span><br><span class="line"># 请求链接</span><br><span class="line">https://cdn.jsdelivr.net/gh/SMGCDN/photos/</span><br><span class="line">https://gcore.jsdelivr.net/gh/SMGCDN/photos/</span><br><span class="line"></span><br><span class="line"># example:</span><br><span class="line">![jsdelivr](https://cdn.jsdelivr.net/gh/SMGCDN/photos/logo/imc.re.png)</span><br></pre></td></tr></table></figure><p>example:</p><p><img src="https://cdn.jsdelivr.net/gh/SMGCDN/photos/logo/imc.re.png" alt="jsdelivr" /></p><hr /><h2 id="githubraw国内速度慢刷新速度快"><a class="markdownIt-Anchor" href="#githubraw国内速度慢刷新速度快"></a> GithubRaw（国内速度慢，刷新速度快）</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">https://raw.githubusercontent.com/smgcdn/photos/master/</span><br><span class="line"></span><br><span class="line"># example:</span><br><span class="line">![GithubRaw](https://raw.githubusercontent.com/smgcdn/photos/master/logo/imc.re.png)</span><br></pre></td></tr></table></figure><p>example:</p><p><img src="https://raw.githubusercontent.com/smgcdn/photos/master/logo/imc.re.png" alt="GithubRaw" /></p>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;smgphoto&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#smgphoto&quot;&gt;&lt;/a&gt; SMGPhoto&lt;/h1&gt;
&lt;p&gt;采用 PicGo客户端 + Github + Cloudflare Pages+ thumbsup 的方案实现完全脱离自托管服务器的自建静态渲染图床网站.&lt;/p&gt;</summary>
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="图片" scheme="http://blog.imc.re/tags/%E5%9B%BE%E7%89%87/"/>
    
  </entry>
  
  <entry>
    <title>群友逆天言论</title>
    <link href="http://blog.imc.re/archives/e795.html"/>
    <id>http://blog.imc.re/archives/e795.html</id>
    <published>2023-04-28T11:55:20.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><p><s>其实只是为了测试图床上传xd)</s> 采用 PicGo客户端 + Github + Cloudflare Pages+ thumbsup 的方案实现完全脱离自托管服务器的自建静态渲染图床网站.</p><span id="more"></span><p>效果好像还行, 就是Cloudflare编译网站的时间比较长, PicGo每上传一个图片都要重新编译一遍, 每次都得等个一分多钟才能加载好. ~~一时半会不知道要传什么图片, 就随便截图群里的几张扔上去了, 23333)</p><p>使用项目概览:</p><ul><li>PicGo: <a href="https://github.com/Molunerfinn/PicGo/">Molunerfinn/PicGo: A simple &amp; beautiful tool for pictures uploading built by vue-cli-electron-builder (github.com)</a></li><li>Cloudflare Pages</li><li>Github</li><li>Thumbsup: <a href="https://github.com/thumbsup/thumbsup">thumbsup/thumbsup: Generate static HTML photo / video galleries (github.com)</a></li></ul><h1 id="效果预览"><a class="markdownIt-Anchor" href="#效果预览"></a> 效果预览</h1><p><img src="https://img.imc.re/uploads/202304282008876.png" alt="烈焰姐逆天言论" /></p><p><img src="https://img.imc.re/uploads/202304281842609.png" alt="" /></p><p><img src="https://img.imc.re/uploads/20230428180548.png" alt="附身" /></p><p><img src="https://img.imc.re/uploads/202304282011919.png" alt="" /></p><p><img src="https://img.imc.re/uploads/202304282024124.png" alt="Pasted image 20230428202439" /></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;&lt;s&gt;其实只是为了测试图床上传xd)&lt;/s&gt; 采用 PicGo客户端 + Github + Cloudflare Pages+ thumbsup 的方案实现完全脱离自托管服务器的自建静态渲染图床网站.&lt;/p&gt;</summary>
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="图片" scheme="http://blog.imc.re/tags/%E5%9B%BE%E7%89%87/"/>
    
    <category term="群" scheme="http://blog.imc.re/tags/%E7%BE%A4/"/>
    
  </entry>
  
  <entry>
    <title>latex公式渲染测试</title>
    <link href="http://blog.imc.re/archives/2400.html"/>
    <id>http://blog.imc.re/archives/2400.html</id>
    <published>2023-04-28T09:33:51.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> 前言</h1><p>博客Latex公式渲染老炸, 气死我啦啊啊啊啊啊啊!!! 这叫我怎么总结数学笔记嘛!!!</p><p>用这个页面记录几个newbing给的公式, 用来测试latex公式的渲染)</p><span id="more"></span><h1 id="测试"><a class="markdownIt-Anchor" href="#测试"></a> 测试</h1><blockquote><p>使用latex语法给我列几个复杂的公式</p></blockquote><p>当然，我可以给你列举一些复杂的公式。以下是一些例子：</p><ol><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mi>i</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">\sum_{i=1}^{n} i = \frac{n(n+1)}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.104002em;vertical-align:-0.29971000000000003em;"></span><span class="mop"><span class="mop op-symbol small-op" style="position:relative;top:-0.0000050000000000050004em;">∑</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.804292em;"><span style="top:-2.40029em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.2029em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.29971000000000003em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathnormal">i</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∫</mo><mrow><mo>−</mo><mi mathvariant="normal">∞</mi></mrow><mi mathvariant="normal">∞</mi></msubsup><msup><mi>e</mi><mrow><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msup><mi>d</mi><mi>x</mi><mo>=</mo><msqrt><mi>π</mi></msqrt></mrow><annotation encoding="application/x-tex">\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.401071em;vertical-align:-0.41415100000000005em;"></span><span class="mop"><span class="mop op-symbol small-op" style="margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8592920000000001em;"><span style="top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight">∞</span></span></span></span><span style="top:-3.2579000000000002em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∞</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.41415100000000005em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9869199999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mord mathnormal mtight">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913142857142857em;"><span style="top:-2.931em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="mord mathnormal">d</span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.23972em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8002800000000001em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord mathnormal" style="margin-right:0.03588em;">π</span></span></span><span style="top:-2.76028em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221l0 -0c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47zM834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.23972em;"><span></span></span></span></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo fence="true">{</mo><mtable rowspacing="0.3599999999999999em" columnalign="left left" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>x</mi><mo>&lt;</mo><mn>0</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mfrac><mn>1</mn><mi>x</mi></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>x</mi><mo>≥</mo><mn>0</mn></mrow></mstyle></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex">f(x) = \begin{cases} 0 &amp; x &lt; 0 \\ \frac{1}{x} &amp; x \geq 0 \end{cases}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:3.0000299999999998em;vertical-align:-1.25003em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size4">{</span></span><span class="mord"><span class="mtable"><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.69em;"><span style="top:-3.69em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-2.25em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">x</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.19em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:1em;"></span><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.69em;"><span style="top:-3.69em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span></span></span><span style="top:-2.25em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">≥</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.19em;"><span></span></span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mo><mi>lim</mi><mo>⁡</mo></mo><mrow><mi>x</mi><mo>→</mo><mi mathvariant="normal">∞</mi></mrow></msub><msup><mrow><mo fence="true">(</mo><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mi>x</mi></mfrac><mo fence="true">)</mo></mrow><mi>x</mi></msup><mo>=</mo><mi>e</mi></mrow><annotation encoding="application/x-tex">\lim_{x\to\infty} \left(1 + \frac{1}{x}\right)^x = e</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.254302em;vertical-align:-0.35001em;"></span><span class="mop"><span class="mop">lim</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">x</span><span class="mrel mtight">→</span><span class="mord mtight">∞</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="minner"><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size1">(</span></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">x</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size1">)</span></span></span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.904292em;"><span style="top:-3.3029em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">x</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">e</span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>e</mi><mrow><mi>i</mi><mi>π</mi></mrow></msup><mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">e^{i\pi} + 1 = 0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.907994em;vertical-align:-0.08333em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.824664em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mord mathnormal mtight" style="margin-right:0.03588em;">π</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span></p></li></ol><p>希望这些例子能帮到你。如果你还有其他问题，请随时问我。</p><p>源: 与必应的对话， 2023/4/28(1) 超详细 LaTex数学公式_latex公式_ViatorSun的博客-CSDN博客. <a href="https://blog.csdn.net/ViatorSun/article/details/82826664">https://blog.csdn.net/ViatorSun/article/details/82826664</a>.(2) LaTeX 公式篇 - 知乎. <a href="https://zhuanlan.zhihu.com/p/110756681">https://zhuanlan.zhihu.com/p/110756681</a>.(3) 如何用LaTeX写公式（示例了十余个公式，涵盖了大多 .... <a href="https://blog.csdn.net/weixin_41036461/article/details/84580272">https://blog.csdn.net/weixin_41036461/article/details/84580272</a>.(4) latex如何编辑特别复杂的公式? - 知乎. <a href="https://www.zhihu.com/question/574094050">https://www.zhihu.com/question/574094050</a>.(5) 如何用latex编写矩阵（包括各类复杂、大型矩阵 .... <a href="https://zhuanlan.zhihu.com/p/266267223">https://zhuanlan.zhihu.com/p/266267223</a>.</p><blockquote><p>再来几个</p></blockquote><p>当然，我可以再给你列举一些复杂的公式。以下是一些例子：</p><ol><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.384482em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.039482em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="mord mathnormal mtight">a</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.3939999999999997em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mathnormal mtight">b</span><span class="mbin mtight">±</span><span class="mord sqrt mtight"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9221171428571429em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mtight" style="padding-left:0.833em;"><span class="mord mtight"><span class="mord mathnormal mtight">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mbin mtight">−</span><span class="mord mtight">4</span><span class="mord mathnormal mtight">a</span><span class="mord mathnormal mtight">c</span></span></span><span style="top:-2.882117142857143em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail mtight" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221l0 -0c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47zM834 80h400000v40h-400000z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.11788285714285718em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mrow><msup><mi mathvariant="normal">∂</mi><mn>2</mn></msup><mi>u</mi></mrow><mrow><mi mathvariant="normal">∂</mi><msup><mi>t</mi><mn>2</mn></msup></mrow></mfrac><mo>=</mo><msup><mi>c</mi><mn>2</mn></msup><mfrac><mrow><msup><mi mathvariant="normal">∂</mi><mn>2</mn></msup><mi>u</mi></mrow><mrow><mi mathvariant="normal">∂</mi><msup><mi>x</mi><mn>2</mn></msup></mrow></mfrac></mrow><annotation encoding="application/x-tex">\frac{\partial^2 u}{\partial t^2} = c^2 \frac{\partial^2 u}{\partial x^2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.36292em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01792em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right:0.05556em;">∂</span><span class="mord mtight"><span class="mord mathnormal mtight">t</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right:0.05556em;">∂</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913142857142857em;"><span style="top:-2.931em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mord mathnormal mtight">u</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.36292em;vertical-align:-0.345em;"></span><span class="mord"><span class="mord mathnormal">c</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01792em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right:0.05556em;">∂</span><span class="mord mtight"><span class="mord mathnormal mtight">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mtight" style="margin-right:0.05556em;">∂</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913142857142857em;"><span style="top:-2.931em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mord mathnormal mtight">u</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∫</mo><mn>0</mn><mn>1</mn></msubsup><mfrac><mrow><mi>d</mi><mi>x</mi></mrow><mrow><mn>1</mn><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mi>π</mi><mn>4</mn></mfrac></mrow><annotation encoding="application/x-tex">\int_{0}^{1} \frac{dx}{1 + x^2} = \frac{\pi}{4}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.4123390000000002em;vertical-align:-0.403331em;"></span><span class="mop"><span class="mop op-symbol small-op" style="margin-right:0.19445em;position:relative;top:-0.0005599999999999772em;">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.0090080000000001em;"><span style="top:-2.34418em;margin-left:-0.19445em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span><span style="top:-3.2579000000000002em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.35582em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8801079999999999em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span><span class="mbin mtight">+</span><span class="mord mtight"><span class="mord mathnormal mtight">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">d</span><span class="mord mathnormal mtight">x</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.403331em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.040392em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.695392em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">4</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.03588em;">π</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo fence="true">[</mo><mtable rowspacing="0.15999999999999992em" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>1</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>0</mn></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mn>1</mn></mstyle></mtd></mtr></mtable><mo fence="true">]</mo></mrow><annotation encoding="application/x-tex">\begin{bmatrix} 1 &amp; 0 &amp; 0 \\ 0 &amp; 1 &amp; 0 \\ 0 &amp; 0 &amp; 1 \end{bmatrix}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:3.6010299999999997em;vertical-align:-1.55002em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.0510099999999998em;"><span style="top:-2.2500000000000004em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎣</span></span></span><span style="top:-2.8099900000000004em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎢</span></span></span><span style="top:-4.05101em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎡</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.55002em;"><span></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.21em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span><span style="top:-3.0099999999999993em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-1.8099999999999994em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.5500000000000007em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.21em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-3.0099999999999993em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span><span style="top:-1.8099999999999994em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.5500000000000007em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.05em;"><span style="top:-4.21em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-3.0099999999999993em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">0</span></span></span><span style="top:-1.8099999999999994em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.5500000000000007em;"><span></span></span></span></span></span></span></span><span class="mclose"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.0510099999999998em;"><span style="top:-2.2500000000000004em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎦</span></span></span><span style="top:-2.8099900000000004em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎥</span></span></span><span style="top:-4.05101em;"><span class="pstrut" style="height:3.1550000000000002em;"></span><span class="delimsizinginner delim-size4"><span>⎤</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.55002em;"><span></span></span></span></span></span></span></span></span></span></span></p></li><li><p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">∞</mi></msubsup><mfrac><mn>1</mn><msup><mi>n</mi><mn>2</mn></msup></mfrac><mo>=</mo><mfrac><msup><mi>π</mi><mn>2</mn></msup><mn>6</mn></mfrac></mrow><annotation encoding="application/x-tex">\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mop"><span class="mop op-symbol small-op" style="position:relative;top:-0.0000050000000000050004em;">∑</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.804292em;"><span style="top:-2.40029em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.2029em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∞</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.29971000000000003em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.36292em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01792em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.03588em;">π</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913142857142857em;"><span style="top:-2.931em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></p></li></ol><p>希望这些例子能帮到你。如果你还有其他问题，请随时问我。</p>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;前言&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#前言&quot;&gt;&lt;/a&gt; 前言&lt;/h1&gt;
&lt;p&gt;博客Latex公式渲染老炸, 气死我啦啊啊啊啊啊啊!!! 这叫我怎么总结数学笔记嘛!!!&lt;/p&gt;
&lt;p&gt;用这个页面记录几个newbing给的公式, 用来测试latex公式的渲染)&lt;/p&gt;</summary>
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="latex" scheme="http://blog.imc.re/tags/latex/"/>
    
    <category term="ChatGPT" scheme="http://blog.imc.re/tags/ChatGPT/"/>
    
  </entry>
  
  <entry>
    <title>mermaid 测试</title>
    <link href="http://blog.imc.re/archives/bea7.html"/>
    <id>http://blog.imc.re/archives/bea7.html</id>
    <published>2023-04-28T08:03:27.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> 前言</h1><p>看到主题插件有这个插件, 就顺便琢磨琢磨了) 正好obsidian有mermaid的插件, 预制了一些模板语法以及预览, 正好拿这篇文章试试效果)</p><span id="more"></span><ul><li>官网: <a href="https://mermaid.js.org/">Mermaid | Diagramming and charting tool</a></li><li>在线编辑器: <a href="https://mermaid.live/">https://mermaid.live/</a></li></ul><h1 id="测试"><a class="markdownIt-Anchor" href="#测试"></a> 测试</h1><h2 id="flowchart"><a class="markdownIt-Anchor" href="#flowchart"></a> Flowchart</h2><pre class="mermaid">flowchart LRStart --> Stop</pre><h2 id="sequencediagram"><a class="markdownIt-Anchor" href="#sequencediagram"></a> SequenceDiagram</h2><pre class="mermaid">sequenceDiagramAlice->>John: Hello John, how are you?John-->>Alice: Great!Alice-)John: See you later!</pre><h2 id="statediagram"><a class="markdownIt-Anchor" href="#statediagram"></a> StateDiagram</h2><pre class="mermaid">stateDiagram-v2    [*] --> Still    Still --> [*]    Still --> Moving    Moving --> Still    Moving --> Crash    Crash --> [*]</pre><h2 id="entityrelationshipdiagram"><a class="markdownIt-Anchor" href="#entityrelationshipdiagram"></a> EntityRelationshipDiagram</h2><pre class="mermaid">erDiagram    CUSTOMER ||--o{ ORDER : places    ORDER ||--|{ LINE-ITEM : contains    CUSTOMER }|..|{ DELIVERY-ADDRESS : uses</pre><h2 id="userjourneydiagram"><a class="markdownIt-Anchor" href="#userjourneydiagram"></a> UserJourneyDiagram</h2><pre class="mermaid">journey    title My working day    section Go to work      Make tea: 5: Me      Go upstairs: 3: Me      Do work: 1: Me, Cat    section Go home      Go downstairs: 5: Me      Sit down: 5: Me</pre><h2 id="ganttchart"><a class="markdownIt-Anchor" href="#ganttchart"></a> GanttChart</h2><pre class="mermaid">gantt    title A Gantt Diagram    dateFormat  YYYY-MM-DD    section Section    A task           :a1, 2014-01-01, 30d    Another task     :after a1  , 20d    section Another    Task in sec      :2014-01-12  , 12d    another task      : 24d</pre><h2 id="piechart"><a class="markdownIt-Anchor" href="#piechart"></a> PieChart</h2><pre class="mermaid">pie title /r/obsidianmd posts by type    "Look at my awesome graph" : 85    "Look at my cool dashboard" : 14    "Moved from Notion, liking it" : 1</pre><h2 id="requirementdiagram"><a class="markdownIt-Anchor" href="#requirementdiagram"></a> RequirementDiagram</h2><pre class="mermaid">    requirementDiagram    requirement test_req {    id: 1    text: the test text.    risk: high    verifymethod: test    }    element test_entity {    type: simulation    }    test_entity - satisfies -> test_req</pre><h2 id="gitegraph"><a class="markdownIt-Anchor" href="#gitegraph"></a> GiteGraph</h2><pre class="mermaid">gitGraph    commit    commit    branch develop    checkout develop    commit    commit    checkout main    merge develop    commit    commit</pre>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;前言&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#前言&quot;&gt;&lt;/a&gt; 前言&lt;/h1&gt;
&lt;p&gt;看到主题插件有这个插件, 就顺便琢磨琢磨了) 正好obsidian有mermaid的插件, 预制了一些模板语法以及预览, 正好拿这篇文章试试效果)&lt;/p&gt;</summary>
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="mermaid" scheme="http://blog.imc.re/tags/mermaid/"/>
    
  </entry>
  
  <entry>
    <title>数列求和通项公式</title>
    <link href="http://blog.imc.re/archives/3123.html"/>
    <id>http://blog.imc.re/archives/3123.html</id>
    <published>2023-04-28T07:42:53.000Z</published>
    <updated>2025-04-11T15:55:23.000Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> 前言</h1><p>尝试借由Newbing学习高中数学相关知识 <s>(并非应付烈焰姐的提问)</s> ,用chatgpt学习数学的话需要具备很重要的一点技能, 就是<strong>自行查证</strong>的能力) 如果只是一味吸收, 不进行任何错误查证的话, 很容易学习到错误的知识, 不过这在我看来, 既是弊端的同时, 也是一个作为训练自己能力的优势)</p><span id="more"></span><h1 id="基础知识"><a class="markdownIt-Anchor" href="#基础知识"></a> 基础知识</h1><blockquote><p>等差数列和公式</p></blockquote><p>等差数列的通项公式为：<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mi>d</mi></mrow><annotation encoding="application/x-tex">a_n=a_1+(n-1)d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">1</span><span class="mclose">)</span><span class="mord mathnormal">d</span></span></span></span>，其中 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> 为首项，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>d</mi></mrow><annotation encoding="application/x-tex">d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span></span></span></span> 为公差，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 为项数。前 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 项和公式为：<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><mo>⋅</mo><mstyle displaystyle="true" scriptlevel="0"><mfrac><mrow><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><msub><mi>a</mi><mi>n</mi></msub></mrow><mn>2</mn></mfrac></mstyle></mrow><annotation encoding="application/x-tex">S_n=n\cdot\dfrac{a_1+a_n}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.44445em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.9463300000000001em;vertical-align:-0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.2603300000000002em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span> 或 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><mo>⋅</mo><mstyle displaystyle="true" scriptlevel="0"><mfrac><mrow><mn>2</mn><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mi>d</mi></mrow><mn>2</mn></mfrac></mstyle></mrow><annotation encoding="application/x-tex">S_n=n\cdot\dfrac{2a_1+(n-1)d}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.44445em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span><span class="mclose">)</span><span class="mord mathnormal">d</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。 ¹²</p><p>希望这能帮到你。还有其他问题吗？</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>等差数列求和公式 - 百度百科. <a href="https://bing.com/search?q=%e7%ad%89%e5%b7%ae%e6%95%b0%e5%88%97%e5%92%8c%e5%85%ac%e5%bc%8f">https://bing.com/search?q=等差数列和公式</a>.</li><li>等差数列求和公式 - 百度百科. <a href="https://baike.baidu.com/item/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C%E5%85%AC%E5%BC%8F/7527418">https://baike.baidu.com/item/等差数列求和公式/7527418</a>.</li><li>等差数列求和公式是什么？_百度知道. <a href="https://zhidao.baidu.com/question/1518747751354623700.html">https://zhidao.baidu.com/question/1518747751354623700.html</a>.</li><li>等差数列求和公式及答题技巧 - 知乎. <a href="https://zhuanlan.zhihu.com/p/357439130">https://zhuanlan.zhihu.com/p/357439130</a>.</li><li>等差数列 - 维基百科，自由的百科全书. <a href="https://zh.wikipedia.org/wiki/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97">https://zh.wikipedia.org/wiki/等差数列</a>.</li></ol><blockquote><p>裂项相加</p></blockquote><p>裂项相消法，又称拆分法，是将一个分数拆成两个或两个以上分数相减或相加的形式，然后再进行计算的方法。在数列求和中，裂项相消法就是把通项拆分成“两项的差”的形式，使得恰好在求和时能够“抵消”多数的项而剩余少数几项³。裂项相消法的应用范围很广，包括分数、代数、整数等⁵。</p><p>如果你想求等差数列的和，可以使用等差数列求和公式。如果你想求等比数列的和，可以使用等比数列求和公式。如果你想求裂项相加的和，可以使用裂项求和公式⁷。</p><p>希望这些信息能对你有所帮助。如果你有其他问题，请随时问我。</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>小升初数学：裂项相消法，小学、初中都要考的简便 .... <a href="https://baijiahao.baidu.com/s?id=1753072455604821323">https://baijiahao.baidu.com/s?id=1753072455604821323</a>.</li><li>裂项法_百度百科. <a href="https://baike.baidu.com/item/%E8%A3%82%E9%A1%B9%E6%B3%95">https://baike.baidu.com/item/裂项法</a>.</li><li>裂项公式大全合集 - 百度文库. <a href="https://wenku.baidu.com/aggs/b02ea9d528ea81c758f578af.html">https://wenku.baidu.com/aggs/b02ea9d528ea81c758f578af.html</a>.</li><li>浅谈“裂项” - 知乎. <a href="https://zhuanlan.zhihu.com/p/105726498">https://zhuanlan.zhihu.com/p/105726498</a>.</li><li>数列中裂项相消法如何裂项？ - 知乎. <a href="https://www.zhihu.com/question/396939682">https://www.zhihu.com/question/396939682</a>.</li><li>裂项求和公式是什么？_百度知道. <a href="https://zhidao.baidu.com/question/426560924.html">https://zhidao.baidu.com/question/426560924.html</a>.</li><li>裂项公式大全合集 - 百度文库. <a href="https://bing.com/search?q=%e8%a3%82%e9%a1%b9%e6%b1%82%e5%92%8c%e5%85%ac%e5%bc%8f">https://bing.com/search?q=裂项求和公式</a>.</li><li>裂项法公式合集 - 百度文库. <a href="https://wenku.baidu.com/aggs/e1595efe04a1b0717fd5ddb0.html">https://wenku.baidu.com/aggs/e1595efe04a1b0717fd5ddb0.html</a>.</li><li>裂项求和_360百科 - SO. <a href="https://baike.so.com/doc/1258874-1331334.html">https://baike.so.com/doc/1258874-1331334.html</a>.</li><li>数列必须满分系列(3.2) 数列求和---裂项相消 - 知乎. <a href="https://zhuanlan.zhihu.com/p/39123013">https://zhuanlan.zhihu.com/p/39123013</a>.</li><li>高中生福利到了，高中数列裂项公式收集 - 知乎. <a href="https://zhuanlan.zhihu.com/p/439851326">https://zhuanlan.zhihu.com/p/439851326</a>.</li></ol><blockquote><p>累加法</p></blockquote><p>累加法是求解数列通项公式的基本方法之一。它是递推法求解数列通项公式的两大基本方法之一，前面学习过的等差数列的通项公式便是用累加法推导得出的。对于形如a (n+1)=an+f (n)或者a (n+1)-an=f (n)的关系式，其中f (n)可以为常数（此时为等差数列），也可以是关于n的函数如一次函数、分式函数、二次函数和指数函数等，此时求解通项公式时均可使用累加法。¹</p><p>如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>百度安全验证. <a href="https://bing.com/search?q=%e7%b4%af%e5%8a%a0%e6%b3%95">https://bing.com/search?q=累加法</a>.</li><li>【高考数学】5.16 累加法求通项 - 知乎. <a href="https://zhuanlan.zhihu.com/p/369597335">https://zhuanlan.zhihu.com/p/369597335</a>.</li><li>高中数学：求数列通项公式的十一种方法（方法全 .... <a href="https://zhuanlan.zhihu.com/p/73032201">https://zhuanlan.zhihu.com/p/73032201</a>.</li><li>数列求和_百度百科. <a href="https://baike.baidu.com/item/%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C/7318680">https://baike.baidu.com/item/数列求和/7318680</a>.</li><li>高考数列通项公式解题方法（1）：观察法、公式法 .... <a href="https://zhuanlan.zhihu.com/p/103586796">https://zhuanlan.zhihu.com/p/103586796</a>.</li><li>高中数学的累加法和累乘法要怎么用？ - 知乎. <a href="https://www.zhihu.com/question/62607975">https://www.zhihu.com/question/62607975</a>.</li></ol><h1 id="做题应用"><a class="markdownIt-Anchor" href="#做题应用"></a> 做题应用</h1><blockquote><p>已知an＝1/n - 1/(n+1） 求Sn。</p></blockquote><p>已知an=1/n-1/(n+1)，求Sn。</p><p>首先，我们可以将an拆分为两个分式，即an=1/n-1/(n+1)=1/n-(n/(n(n+1)))=1/n-(n/n(n+1))=1/n-1/(n+1)。因此，an的通项公式为a (n)=1/n-1/(n+1)。</p><p>接下来，我们可以使用等差数列和公式求解Sn。根据等差数列和公式，前n项和Sn=n<em>a (1)+n (n-1)/2</em>d，其中a (1)为首项，d为公差。因此，我们需要求出首项a (1)和公差d。</p><p>由于a (n)=a (n-1)+d，因此d=a (n)-a (n-1)=1/n-1/(n+1)-[1/(n-1)-1/n]=2/(n*(n-1))-2/((n+1)*n)，a (1)=a (2)-d=1/2-2/6=-1/6。</p><p>将a (1)和d代入等差数列和公式中，得到Sn=n*(-(n+2)/(6*(n+1)))=-((n+2)/(6*(n+1)))<em>n。因此，Sn的通项公式为-Sum[(i+2)/(6</em>(i+1)), {i, 0, n-1}]。</p><p>希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>等差数列求和公式 - 百度百科. <a href="https://bing.com/search?q=%e7%ad%89%e5%b7%ae%e6%95%b0%e5%88%97%e5%92%8c%e5%85%ac%e5%bc%8f">https://bing.com/search?q=等差数列和公式</a>.</li><li>等差数列求和公式 - 百度百科. <a href="https://baike.baidu.com/item/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C%E5%85%AC%E5%BC%8F/7527418">https://baike.baidu.com/item/等差数列求和公式/7527418</a>.</li><li>等差数列求和公式是什么？_百度知道. <a href="https://zhidao.baidu.com/question/1518747751354623700.html">https://zhidao.baidu.com/question/1518747751354623700.html</a>.</li><li>等差数列求和公式及答题技巧 - 知乎. <a href="https://zhuanlan.zhihu.com/p/357439130">https://zhuanlan.zhihu.com/p/357439130</a>.</li><li>等差数列 - 维基百科，自由的百科全书. <a href="https://zh.wikipedia.org/wiki/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97">https://zh.wikipedia.org/wiki/等差数列</a>.</li></ol><blockquote><p>求Sn的值</p></blockquote><p>根据上面的计算，Sn的通项公式为-Sum[(i+2)/(6*(i+1)), {i, 0, n-1}]。因此，当n=1时，Sn=-1/6；当n=2时，Sn=-1/3；当n=3时，Sn=-5/12；当n=4时，Sn=-3/8；当n=5时，Sn=-11/30。</p><p>因此，Sn的值分别为-1/6、-1/3、-5/12、-3/8和-11/30。</p><p>希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><blockquote><p>以中国高中数学知识点来总结这个Sn通项公式</p></blockquote><p>好的，我会尽力用中国高中数学知识点来总结这个Sn通项公式。</p><p>首先，我们可以将an拆分为两个分式，即an=1/n-1/(n+1)=1/n-(n/(n(n+1)))=1/n-(n/n(n+1))=1/n-1/(n+1)。因此，an的通项公式为a (n)=1/n-1/(n+1)。</p><p>接下来，我们可以使用等差数列和公式求解Sn。根据等差数列和公式，前n项和Sn=n<em>a (1)+n (n-1)/2</em>d，其中a (1)为首项，d为公差。因此，我们需要求出首项a (1)和公差d。</p><p>由于a (n)=a (n-1)+d，因此d=a (n)-a (n-1)=1/n-1/(n+1)-[1/(n-1)-1/n]=2/(n*(n-1))-2/((n+1)*n)，a (1)=a (2)-d=1/2-2/6=-1/6。</p><p>将a (1)和d代入等差数列和公式中，得到Sn=n*(-(n+2)/(6*(n+1)))=-((n+2)/(6*(n+1)))<em>n。因此，Sn的通项公式为-Sum[(i+2)/(6</em>(i+1)), {i, 0, n-1}]。</p><p>这个通项公式涉及到了等差数列和公式、分式拆分、数学归纳法等知识点。希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><blockquote><p>-Sum[(i+2)/(6(i+1)), {i, 0, n-1}] 是什么</p></blockquote><p>-Sum[(i+2)/(6(i+1)), {i, 0, n-1}]是Sn的通项公式。其中，Sum表示求和，i是求和的变量，0和n-1是求和的范围，(i+2)/(6(i+1))是求和的表达式。这个通项公式可以用来计算Sn的值。</p><p>希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><blockquote><p>用latex公式表示求Sn通项公式的过程</p></blockquote><p>好的，下面是用LaTeX公式表示求Sn通项公式的过程：</p><p>首先，我们可以将an拆分为两个分式，即an=1/n-1/(n+1)=1/n-(n/(n(n+1)))=1/n-(n/n(n+1))=1/n-1/(n+1)。因此，an的通项公式为<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>−</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding="application/x-tex">a_n=\frac{1}{n}-\frac{1}{n+1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.2484389999999999em;vertical-align:-0.403331em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.403331em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>接下来，我们可以使用等差数列和公式求解Sn。根据等差数列和公式，前n项和<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac><mi>d</mi></mrow><annotation encoding="application/x-tex">S_n=na_1+\frac{n(n-1)}{2}d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord mathnormal">n</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathnormal">d</span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>为首项，d为公差。因此，我们需要求出首项<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和公差d。</p><p>由于<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><msub><mi>a</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>d</mi></mrow><annotation encoding="application/x-tex">a_n=a_{n-1}+d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.791661em;vertical-align:-0.208331em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.301108em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.208331em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span></span></span></span>，因此<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>d</mi><mo>=</mo><msub><mi>a</mi><mi>n</mi></msub><mo>−</mo><msub><mi>a</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mn>2</mn><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac><mo>−</mo><mfrac><mn>2</mn><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mi>n</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">d=a_n-a_{n-1}=\frac{2}{n(n-1)}-\frac{2}{(n+1)n}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.638891em;vertical-align:-0.208331em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.301108em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.208331em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span><span class="mord mathnormal mtight">n</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo>=</mo><msub><mi>a</mi><mn>2</mn></msub><mo>−</mo><mi>d</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>−</mo><mfrac><mn>2</mn><mn>6</mn></mfrac><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mn>6</mn></mfrac></mrow><annotation encoding="application/x-tex">a_1=a_2-d=\frac{1}{2}-\frac{2}{6}=-\frac{1}{6}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>将<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和d代入等差数列和公式中，得到<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><mo stretchy="false">(</mo><mo>−</mo><mfrac><mrow><mi>n</mi><mo>+</mo><mn>2</mn></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mfrac><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>2</mn><mo stretchy="false">)</mo><mi>n</mi></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding="application/x-tex">S_n=n(-\frac{n+2}{6(n+1)})=-\frac{(n+2)n}{6(n+1)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord mathnormal">n</span><span class="mopen">(</span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.53em;vertical-align:-0.52em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">2</span><span class="mclose mtight">)</span><span class="mord mathnormal mtight">n</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。因此，Sn的通项公式为<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>−</mo><mfrac><mrow><mi>i</mi><mo>+</mo><mn>2</mn></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding="application/x-tex">\sum_{i=0}^{n-1}-\frac{i+2}{6(i+1)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.474008em;vertical-align:-0.52em;"></span><span class="mop"><span class="mop op-symbol small-op" style="position:relative;top:-0.0000050000000000050004em;">∑</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.954008em;"><span style="top:-2.40029em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mrel mtight">=</span><span class="mord mtight">0</span></span></span></span><span style="top:-3.2029em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.29971000000000003em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.855664em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">i</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mbin mtight">+</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><blockquote><p>为什么使用等差数列求和公式计算？</p></blockquote><p>使用等差数列求和公式计算Sn的好处是可以避免使用累加法，从而节省时间和精力。等差数列求和公式是一种通用的求和方法，适用于各种等差数列，包括公差为分数的等差数列。</p><p>对于这个问题，我们可以将an拆分为两个分式，即an=1/n-1/(n+1)=1/n-(n/(n(n+1)))=1/n-(n/n(n+1))=1/n-1/(n+1)。因此，an的通项公式为<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>−</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding="application/x-tex">a_n=\frac{1}{n}-\frac{1}{n+1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.2484389999999999em;vertical-align:-0.403331em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.403331em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>接下来，我们可以使用等差数列和公式求解Sn。根据等差数列和公式，前n项和<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><mo>∗</mo><msub><mi>a</mi><mn>1</mn></msub><mo>+</mo><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac><mi>d</mi></mrow><annotation encoding="application/x-tex">S_n=n*a_1+\frac{n(n-1)}{2}d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.46528em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathnormal">d</span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>为首项，d为公差。因此，我们需要求出首项<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和公差d。</p><p>由于<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><msub><mi>a</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>+</mo><mi>d</mi></mrow><annotation encoding="application/x-tex">a_n=a_{n-1}+d</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.791661em;vertical-align:-0.208331em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.301108em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.208331em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span></span></span></span>，因此<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>d</mi><mo>=</mo><msub><mi>a</mi><mi>n</mi></msub><mo>−</mo><msub><mi>a</mi><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mn>2</mn><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac><mo>−</mo><mfrac><mn>2</mn><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mi>n</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">d=a_n-a_{n-1}=\frac{2}{n(n-1)}-\frac{2}{(n+1)n}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.638891em;vertical-align:-0.208331em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.301108em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.208331em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span><span class="mord mathnormal mtight">n</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub><mo>=</mo><msub><mi>a</mi><mn>2</mn></msub><mo>−</mo><mi>d</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>−</mo><mfrac><mn>2</mn><mn>6</mn></mfrac><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mn>6</mn></mfrac></mrow><annotation encoding="application/x-tex">a_1=a_2-d=\frac{1}{2}-\frac{2}{6}=-\frac{1}{6}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.73333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>将<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">a_1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和d代入等差数列和公式中，得到<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mi>n</mi><mo stretchy="false">(</mo><mo>−</mo><mfrac><mrow><mi>n</mi><mo>+</mo><mn>2</mn></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mfrac><mrow><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>2</mn><mo stretchy="false">)</mo><mi>n</mi></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding="application/x-tex">S_n=n(-\frac{n+2}{6(n+1)})=-\frac{(n+2)n}{6(n+1)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord mathnormal">n</span><span class="mopen">(</span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.53em;vertical-align:-0.52em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">2</span><span class="mclose mtight">)</span><span class="mord mathnormal mtight">n</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。因此，Sn的通项公式为<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>−</mo><mfrac><mrow><mi>i</mi><mo>+</mo><mn>2</mn></mrow><mrow><mn>6</mn><mo stretchy="false">(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding="application/x-tex">\sum_{i=0}^{n-1}-\frac{i+2}{6(i+1)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.474008em;vertical-align:-0.52em;"></span><span class="mop"><span class="mop op-symbol small-op" style="position:relative;top:-0.0000050000000000050004em;">∑</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.954008em;"><span style="top:-2.40029em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mrel mtight">=</span><span class="mord mtight">0</span></span></span></span><span style="top:-3.2029em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.29971000000000003em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.855664em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">6</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">i</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mbin mtight">+</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p>希望这能帮到您。如果您需要更多关于数列通项公式的信息，请告诉我。我很乐意帮助您。😊</p><h2 id="错误纠正"><a class="markdownIt-Anchor" href="#错误纠正"></a> 错误纠正</h2><p><strong>烈焰姐: 使用累加法进行计算.</strong></p><blockquote><p><strong>可是通过你给出的计算过程，我并不能判定这个数列一定是等差数列，我认为使用等差数列求和公式来计算是错误的</strong></p></blockquote><p>感谢您的反馈。您说得对，如果数列不是等差数列，那么使用等差数列求和公式计算是错误的。如果您能提供更多信息，例如数列的前几项或者通项公式，我可以帮您计算出前n项和。如果您想了解如何求Sn的通项公式，可以使用阶差法或递推法进行求解¹²。</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>高中数学已知Sn求数列通项公式，老师教的阶差法 .... <a href="https://bing.com/search?q=%e6%b1%82Sn%e9%80%9a%e9%a1%b9%e5%85%ac%e5%bc%8f">https://bing.com/search?q=求Sn通项公式</a>.</li><li>高中数学已知Sn求数列通项公式，老师教的阶差法 .... <a href="https://baijiahao.baidu.com/s?id=1639169095559425012">https://baijiahao.baidu.com/s?id=1639169095559425012</a>.</li><li>求数列通项公式an和前n项和Sn的方法 - 百度知道. <a href="https://zhidao.baidu.com/question/324744789.html">https://zhidao.baidu.com/question/324744789.html</a>.</li><li>数列求和_百度百科. <a href="https://baike.baidu.com/item/%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C/7318680">https://baike.baidu.com/item/数列求和/7318680</a>.</li><li>求数列的通项公式总结 - 知乎. <a href="https://zhuanlan.zhihu.com/p/424162014">https://zhuanlan.zhihu.com/p/424162014</a>.</li><li>等差数列求和公式及答题技巧 - 知乎. <a href="https://zhuanlan.zhihu.com/p/357439130">https://zhuanlan.zhihu.com/p/357439130</a>.</li><li>数学学习方法：等差数列求和公式+方法 - 知乎. <a href="https://zhuanlan.zhihu.com/p/365793447">https://zhuanlan.zhihu.com/p/365793447</a>.</li><li>等差数列求和公式 - 百度百科. <a href="https://baike.baidu.com/item/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C%E5%85%AC%E5%BC%8F/7527418">https://baike.baidu.com/item/等差数列求和公式/7527418</a>.</li><li>等差数列公式_百度百科. <a href="https://baike.baidu.com/item/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97%E5%85%AC%E5%BC%8F/2907747">https://baike.baidu.com/item/等差数列公式/2907747</a>.</li><li>如何用等差数列求和公式证明等差数列？ - 知乎. <a href="https://www.zhihu.com/question/383760005">https://www.zhihu.com/question/383760005</a>.</li></ol><blockquote><p>使用累加法计算“已知an＝1/n - 1/(n+1） 求Sn的通项公式“</p></blockquote><p>感谢您的提问。对于已知数列an=1/n-1/(n+1)，求Sn的通项公式，我们可以使用累加法来计算。累加法是一种求解数列通项公式的方法之一，它的原理是对数列的相邻两项之差进行累加，得到数列的前n项和，然后再通过求解前n项和的通项公式来得到数列的通项公式²。</p><p>对于这个数列，我们可以先求出前n项和Sn，然后再通过Sn来推导出通项公式。根据题目中给出的an=1/n-1/(n+1)，我们可以得到：</p><p>S_n = a_1 + a_2 + ... + a_n= (1 - 1/2) + (1/2 - 1/3) + ... + (1/n - 1/(n+1))= 1 - 1/(n+1)</p><p>因此，这个数列的前n项和为1-1/(n+1)。接下来，我们可以通过求解前n项和的通项公式来得到数列的通项公式。由于这个数列不是等差数列，因此不能使用等差数列求和公式来计算³。</p><p>如果您还有其他问题，请随时问我。</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>高中数学：求数列通项公式的十一种方法（方法全 .... <a href="https://zhuanlan.zhihu.com/p/73032201">https://zhuanlan.zhihu.com/p/73032201</a>.</li><li>【高考数学】5.16 累加法求通项 - 知乎. <a href="https://zhuanlan.zhihu.com/p/369597335">https://zhuanlan.zhihu.com/p/369597335</a>.</li><li>数列求和_百度百科. <a href="https://baike.baidu.com/item/%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C/7318680">https://baike.baidu.com/item/数列求和/7318680</a>.</li><li>高考数列通项公式解题方法（1）：观察法、公式法 .... <a href="https://zhuanlan.zhihu.com/p/103586796">https://zhuanlan.zhihu.com/p/103586796</a>.</li></ol><h1 id="裂项相消"><a class="markdownIt-Anchor" href="#裂项相消"></a> 裂项相消</h1><blockquote><p>已知an=1/n(n+1) 求Sn</p></blockquote><p>已知数列 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>a</mi><mi>n</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow><annotation encoding="application/x-tex">a_n=\frac{1}{n(n+1)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.365108em;vertical-align:-0.52em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">+</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.52em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，求 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">S_n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>。</p><p>首先，我们可以把这个求和分成两部分，一种是通项为 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 的，一种是通项为 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 的平方的。</p><p>通项为 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 的求和为：$$S_n=\frac{1}{1\cdot2}+\frac{1}{2\cdot3}+\cdots+\frac{1}{n(n+1)}$$</p><p>通项为 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span> 的平方的求和是本体的重点，现在介绍两种常用的方法。</p><p>方法一：裂项相消法</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.24999999999999992em" columnalign="right left" columnspacing="0em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><msub><mi>S</mi><mi>n</mi></msub></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>⋅</mo><mn>2</mn></mrow></mfrac><mo>+</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mo>⋅</mo><mn>3</mn></mrow></mfrac><mo>+</mo><mo>⋯</mo><mo>+</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mrow><mo fence="true">(</mo><mn>1</mn><mo>−</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo fence="true">)</mo></mrow><mo>+</mo><mrow><mo fence="true">(</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>−</mo><mfrac><mn>1</mn><mn>3</mn></mfrac><mo fence="true">)</mo></mrow><mo>+</mo><mo>⋯</mo><mo>+</mo><mrow><mo fence="true">(</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>−</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac><mo fence="true">)</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mn>1</mn><mo>−</mo><mfrac><mn>1</mn><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mfrac><mi>n</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mrow></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\begin{aligned} S_n&amp;=\frac{1}{1\cdot2}+\frac{1}{2\cdot3}+\cdots+\frac{1}{n(n+1)} \\ &amp;=\left(1-\frac{1}{2}\right)+\left(\frac{1}{2}-\frac{1}{3}\right)+\cdots+\left(\frac{1}{n}-\frac{1}{n+1}\right) \\ &amp;=1-\frac{1}{n+1} \\ &amp;=\frac{n}{n+1} \end{aligned}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:9.825129999999998em;vertical-align:-4.662564999999999em;"></span><span class="mord"><span class="mtable"><span class="col-align-r"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:5.162565em;"><span style="top:-7.291125000000001em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-4.605125000000001em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"></span></span><span style="top:-2.0336550000000004em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"></span></span><span style="top:0.14323499999999867em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:4.662564999999999em;"><span></span></span></span></span></span><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:5.162565em;"><span style="top:-7.291125000000001em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">3</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="minner">⋯</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span><span class="mclose">)</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.936em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:-4.605125000000001em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">3</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="minner">⋯</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size3">(</span></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size3">)</span></span></span></span></span><span style="top:-2.0336550000000004em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:0.14323499999999867em;"><span class="pstrut" style="height:3.45em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.10756em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:4.662564999999999em;"><span></span></span></span></span></span></span></span></span></span></span></span></p><p>方法二：数学归纳法</p><p>当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n=1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span></span></span></span> 时，显然成立。</p><p>假设当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mo stretchy="false">(</mo><mi>k</mi><mo>⩾</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">n=k(k \geqslant 1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel amsrm">⩾</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">1</span><span class="mclose">)</span></span></span></span> 时成立，则当 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mi>k</mi><mo>+</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n=k+1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.77777em;vertical-align:-0.08333em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span></span></span></span> 时：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.24999999999999992em" columnalign="right left" columnspacing="0em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><msub><mi>S</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><msub><mi>S</mi><mi>k</mi></msub><mo>+</mo><mfrac><mn>1</mn><mrow><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mfrac><mi>k</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></mfrac><mo>+</mo><mfrac><mn>1</mn><mrow><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mfrac><mrow><mi>k</mi><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>3</mn><mo stretchy="false">)</mo></mrow><mrow><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>k</mi><mo>+</mo><mn>3</mn><mo stretchy="false">)</mo></mrow></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mfrac><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>k</mi><mo>+</mo><mn>2</mn></mrow></mfrac></mrow></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\begin{aligned} S_{k+1}&amp;=S_k+\frac{1}{(k+1)(k+2)} \\ &amp;=\frac{k}{k+1}+\frac{1}{(k+1)(k+2)} \\ &amp;=\frac{k(k+3)}{(k+2)(k+3)} \\ &amp;=\frac{k+1}{k+2} \end{aligned}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:10.268650000000001em;vertical-align:-4.884325em;"></span><span class="mord"><span class="mtable"><span class="col-align-r"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:5.3843250000000005em;"><span style="top:-7.489885000000001em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361079999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.03148em;">k</span><span class="mbin mtight">+</span><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.208331em;"><span></span></span></span></span></span></span></span></span><span style="top:-4.882445000000001em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"></span></span><span style="top:-2.2194450000000012em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"></span></span><span style="top:0.3879949999999994em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:4.884325em;"><span></span></span></span></span></span><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:5.3843250000000005em;"><span style="top:-7.489885000000001em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.03148em;">k</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">2</span><span class="mclose">)</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.936em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:-4.882445000000001em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.37144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03148em;">k</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">2</span><span class="mclose">)</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.936em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:-2.2194450000000012em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">2</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">3</span><span class="mclose">)</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">3</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.936em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:0.3879949999999994em;"><span class="pstrut" style="height:3.427em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.37144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:4.884325em;"><span></span></span></span></span></span></span></span></span></span></span></span></p><p>由数学归纳法可知，对于任意正整数 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathnormal">n</span></span></span></span>，都有：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>S</mi><mi>n</mi></msub><mo>=</mo><mfrac><mi>n</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding="application/x-tex">S_n=\frac{n}{n+1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.8768900000000002em;vertical-align:-0.7693300000000001em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.10756em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord">1</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.7693300000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><p>源: 与必应的对话， 2023/4/28</p><ol><li>数列an=1/n前n项和的求法 - 百度知道. <a href="https://zhidao.baidu.com/question/365193151.html">https://zhidao.baidu.com/question/365193151.html</a>.</li><li>数列求和_百度百科. <a href="https://baike.baidu.com/item/%E6%95%B0%E5%88%97%E6%B1%82%E5%92%8C/7318680">https://baike.baidu.com/item/数列求和/7318680</a>.</li><li>an=n(n+1),sn=? 数学 题目 数列 求和 高中 高一 - 百度知道. <a href="https://zhidao.baidu.com/question/89380634.html">https://zhidao.baidu.com/question/89380634.html</a>.</li><li>已知数列{an}中,a1=1,an+1=(n/n+1)an,求an的通向公式,用叠加法. <a href="https://www.lishixinzhi.com/zs/post/653219.html">https://www.lishixinzhi.com/zs/post/653219.html</a>.</li><li>已知an=1/[n*(n+1)],求Sn_作业帮. <a href="https://qb.zuoyebang.com/xfe-question/question/00b2b6934c5a6ca09ff8a6793019394c.html">https://qb.zuoyebang.com/xfe-question/question/00b2b6934c5a6ca09ff8a6793019394c.html</a>.</li></ol><blockquote><p>什么是裂项相消</p></blockquote><p>裂项相消是一种数列求和方法，它可以将一个分数拆成两个分数之差的形式，从而使得原来的求和式子变得更加简单。裂项相消法在分数计算中经常用到，先将算式中的项进行拆分，拆成两个或多个数字单位的和或差，拆分后的项可以前后抵消。如果您还有其他问题，请告诉我。</p><p>源: 与必应的对话， 2023/4/28</p><ol><li>什么是裂项法，裂项相消法例题详解和公式总结-百度 .... <a href="https://jingyan.baidu.com/article/0bc808fc8496ed5ad585b916.html">https://jingyan.baidu.com/article/0bc808fc8496ed5ad585b916.html</a>.</li><li>高中数学必会裂项相消 - 百度经验. <a href="https://jingyan.baidu.com/article/a24b33cd78c2af58ff002b31.html">https://jingyan.baidu.com/article/a24b33cd78c2af58ff002b31.html</a>.</li><li>带根号的裂项相消公式_百度知道. <a href="https://zhidao.baidu.com/question/592508045053078165.html">https://zhidao.baidu.com/question/592508045053078165.html</a>.</li><li>数列必须满分系列(3.2) 数列求和---裂项相消 - 知乎. <a href="https://zhuanlan.zhihu.com/p/39123013">https://zhuanlan.zhihu.com/p/39123013</a>.</li><li>初中数学之裂项相消法 - 知乎. <a href="https://zhuanlan.zhihu.com/p/376399356">https://zhuanlan.zhihu.com/p/376399356</a>.</li><li>数列中裂项相消法如何裂项？ - 知乎. <a href="https://www.zhihu.com/question/396939682">https://www.zhihu.com/question/396939682</a>.</li></ol><h1 id="后记"><a class="markdownIt-Anchor" href="#后记"></a> 后记</h1><p><s>烈焰姐赢了, 人类的胜利(bus)</s> 查证固然重要, 但是查证的前提是得有足够的知识储备, 说实话Chatgpt开始给的答案着实让我一脸懵), 不过烈焰姐很轻松就判断出来chatgpt的答案是错误的了, 着实让人佩服. <strong>工具的上限取决于使用的人</strong> ,让我很清楚的明白了这个道理)</p><p>另外，是烈焰姐告诉我的“<strong>焰式解法</strong>”，我总结过后扔这里了，很简单的方法，就是有点玄学XD</p><p><img src="https://img.imc.re/uploads/202304282117252.png" alt="202304282117252.png (715×418) (imc.re)" /></p><p><img src="https://img.imc.re/uploads/202304282123886.png" alt="向量求和法" /></p><p><img src="https://img.imc.re/uploads/202304282134741.svg" alt="math-fxlqf.svg" /></p>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;前言&quot;&gt;&lt;a class=&quot;markdownIt-Anchor&quot; href=&quot;#前言&quot;&gt;&lt;/a&gt; 前言&lt;/h1&gt;
&lt;p&gt;尝试借由Newbing学习高中数学相关知识 &lt;s&gt;(并非应付烈焰姐的提问)&lt;/s&gt; ,用chatgpt学习数学的话需要具备很重要的一点技能, 就是&lt;strong&gt;自行查证&lt;/strong&gt;的能力) 如果只是一味吸收, 不进行任何错误查证的话, 很容易学习到错误的知识, 不过这在我看来, 既是弊端的同时, 也是一个作为训练自己能力的优势)&lt;/p&gt;</summary>
    
    
    
    <category term="Notes" scheme="http://blog.imc.re/categories/Notes/"/>
    
    
    <category term="学习" scheme="http://blog.imc.re/tags/%E5%AD%A6%E4%B9%A0/"/>
    
    <category term="ChatGPT" scheme="http://blog.imc.re/tags/ChatGPT/"/>
    
    <category term="高考" scheme="http://blog.imc.re/tags/%E9%AB%98%E8%80%83/"/>
    
  </entry>
  
</feed>
