Ubuntu16.04终端五大项目常用命令(图文教程)
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、终端基本操作<ul class="second_class_ul"><li>终端操作技巧</li><li>终端快捷键</li><li>查询命令的帮助信息</li><ul class="third_class_ul"><li>1、第一种方式</li><li> 2、第二种方式</li></ul></ul></li><li> 二、常用文件和目录命令<ul class="second_class_ul"><li>1、ls命令</li><ul class="third_class_ul"></ul><li>2、pwd命令</li><ul class="third_class_ul"></ul><li>3、cd 命令 </li><ul class="third_class_ul"></ul><li>4、touch命令</li><ul class="third_class_ul"></ul><li> 5、mkdir命令</li><ul class="third_class_ul"></ul><li>6、rm命令</li><ul class="third_class_ul"></ul><li>7、tree命令</li><ul class="third_class_ul"></ul><li>8、echo命令</li><ul class="third_class_ul"></ul><li> 9、cp命令</li><ul class="third_class_ul"></ul><li> 10、mv命令</li><ul class="third_class_ul"></ul></ul></li><li>三、系统相关命令<ul class="second_class_ul"><li>1、关机/重启命令</li><ul class="third_class_ul"></ul><li>2、磁盘管理命令</li><ul class="third_class_ul"></ul></ul></li><li><strong>四、</strong>打包/解压命令tar<ul class="second_class_ul"><li>1、打包/压缩操作</li><ul class="third_class_ul"><li>(1) 打包/压缩文件</li><li>(2) 打包目录</li></ul><li>2、解包/解压操作</li><ul class="third_class_ul"></ul><li> 3、tar其它操作举例</li><ul class="third_class_ul"></ul></ul></li><li>五、文件及目录权限命令<ul class="second_class_ul"><li><strong>1、命令语法</strong></li><ul class="third_class_ul"></ul><li>2、八进制模式实现方法</li><ul class="third_class_ul"></ul></ul></li><li>六、网络相关命令<ul class="second_class_ul"><li>1、ifconfig</li><ul class="third_class_ul"></ul><li><strong>2、ping</strong></li><ul class="third_class_ul"></ul><li><strong>3、netstat</strong></li><ul class="third_class_ul"></ul><li>4、ssh 连接远程服务器</li><ul class="third_class_ul"></ul></ul></li><li>七、重要目录说明<ul class="second_class_ul"></ul></li></ul></div><p>Ubuntu 16.04 LTS (Long Term Support) 是一个长期支持版本,这意味着它将获得几年的安全更新和常规维护。在Ubuntu 16.04上,你可以通过终端(Terminal)进行各种操作和管理系统。,Ubuntu 16.04 虽然已经停止支持,但它的终端命令与现代 Ubuntu 版本绝大部分是通用的。</p><p class="maodian"></p><h2>一、终端基本操作</h2>
<p class="maodian"></p><h3>终端操作技巧</h3>
<p>终端,一个链接计算机的命令窗口。终端界面,即字符界面。</p>
<p>1、<strong>打开</strong>一个新终端窗口: ctrl + alt + t ,或者桌面右键 “Open Terminal " 新建终端;</p>
<p>2、在同一个窗口中打开新终端: ctrl +shift + t ;</p>
<p>3、终端<strong>清屏</strong>命令 :clear ,快捷键 ctrl + l ;</p>
<p>4、<strong>放大</strong>终端窗口的字体显示:ctrl + shift +“+” ;</p>
<p>5、<strong>缩小</strong>终端窗口字体显示:ctrl +“ - ”;</p>
<p>6、<strong>自动补全</strong>目录/文件/命令名称:tab键 </p>
<p>在敲出相关 “文件/目录/命令” 的前几个字母后,按下 tab 键</p>
<p>若输入的没有歧义,系统会自动补全(所输的几个字母已足够确定一个文件/目录/命令)<br />若还存在其他文件/目录/命令,再按一下tab 键,系统会提示可能存在的 “ 文件/目录/命令 ”,同时将已经敲出的命令复制在下一行(可根据提示再添上字母或再用tab键补全)。<br />7、<strong>选择</strong>曾经使用过的命令</p>
<p>按下键盘上的 “上/下 ” 键可以在曾经使用过的命令之间来回切换进行选择命令;<br />若想要退出选择,并且不想执行当前选中的命令,可以按ctrl + c退出。</p>
<p class="maodian"></p><h3>终端快捷键</h3>
<table><thead><tr><th>快捷键/命令</th><th>解释</th></tr></thead><tbody><tr><td>Ctrl + C</td><td>终止当前正在运行的命令</td></tr><tr><td>Ctrl + Z</td><td>暂停当前进程,可后用 fg 或 bg 恢复</td></tr><tr><td>Ctrl + D</td><td>退出当前终端会话 (相当于输入 exit)</td></tr><tr><td>Ctrl + L</td><td>清屏 (相当于 clear 命令)</td></tr><tr><td>Ctrl + R</td><td>反向搜索命令历史</td></tr><tr><td>Tab</td><td>命令/文件名自动补全</td></tr><tr><td>↑ / ↓</td><td>浏览命令历史</td></tr><tr><td>history</td><td>查看命令历史记录</td></tr><tr><td>man <command></td><td>查看命令的手册页,<strong>最重要的帮助工具</strong></td></tr><tr><td>command --help</td><td>查看命令的快速帮助</td></tr></tbody></table>
<p class="maodian"></p><h3>查询命令的帮助信息</h3>
<p class="maodian"></p><h4>1、第一种方式</h4>
<p>command --help:显示命令的帮助信息,例如查询“ls”命令的帮助信息</p>
<div class="dxycode"><pre class="brush:plain;">ls --help</pre></div>
<p> <img alt="第一种方式" height="386" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30004314.png" width="600" /></p>
<p class="maodian"></p><h4> 2、第二种方式</h4>
<p>man command :查阅命令使用手册(manual)。</p>
<p>同样输入"ls"命令</p>
<div class="dxycode"><pre class="brush:plain;">man ls</pre></div>
<p><img alt="第二种方式" height="62" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30004D2.png" width="600" /></p>
<p><img alt="第二种方式_图2" height="478" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30005556.png" width="600" /></p>
<p>提示:man操作键与功能说明 </p>
<p>操作键 功能</p>
<table><tbody><tr></tr></tbody><tbody><tr><td>空格键</td><td>显示手册页的下一屏</td></tr><tr><td>Enter键</td><td>一次滚动手册页的一行</td></tr><tr><td>b</td><td>回滚一屏</td></tr><tr><td>f</td><td>前滚一屏</td></tr><tr><td>q</td><td>推出</td></tr><tr><td>/word</td><td>搜索word字符串</td></tr></tbody></table>
<p class="maodian"></p><h2> 二、常用文件和目录命令</h2>
<p>序号 命令 对应英文 作用</p>
<table><tbody><tr></tr></tbody><tbody><tr><td>1</td><td>ls</td><td>list</td><td>查看当前文件夹下的内容</td></tr><tr><td>2</td><td>pwd</td><td>print work directory</td><td>查看当前所在的文件夹</td></tr><tr><td>3</td><td>cd</td><td>change directory</td><td>切换文件夹</td></tr><tr><td>4</td><td>touch [文件名]</td><td>touch</td><td>如果文件不存在,新建文件</td></tr><tr><td>5</td><td>mkdir 目录名</td><td>make directory</td><td>创建目录</td></tr><tr><td>6</td><td>rm [文件名]</td><td>remove</td><td>删除指定的文件名</td></tr><tr><td>7</td><td>tree [目录名]</td><td>tree</td><td>以树状图列出文件目录结构</td></tr><tr><td>8</td><td>echo</td><td></td><td>向终端发送文本或变量</td></tr><tr><td>9</td><td>cp 源文件 目标文件</td><td>copy</td><td>复制文件或者目录</td></tr><tr><td>10</td><td>mv 源文件 目标文件</td><td>move</td><td>移动文件或者目录/文件或者目录重命名</td></tr></tbody></table>
<p class="maodian"></p><h3>1、ls命令</h3>
<p>ls是英文单词list的简写,其作用是列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir命令。</p>
<p><strong>ls命令基本格式:</strong>ls [选项] [目录或文件名]</p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-a</td><td>列出<strong>所有</strong>文件和目录,包括以"."开头的隐藏文件和目录。</td></tr><tr><td>-l</td><td>以<strong>长列表的方式</strong>列出文件和目录的详细信息,包括文件权限、文件大小、创建时间等。</td></tr><tr><td>-h</td><td>配合-l选项使用,以人类可读的格式显示文件大小,如1.2K、3.4M等。</td></tr><tr><td>-r</td><td>倒序显示文件和目录。</td></tr><tr><td>-t</td><td>按照文件或目录的修改时间排序。</td></tr><tr><td>-S</td><td>按照文件或目录的大小排序。</td></tr><tr><td>-i</td><td>显示文件或目录的inode号。</td></tr><tr><td>-d</td><td>显示目录本身的信息,而不是目录下的文件和目录。</td></tr></tbody></table>
<p>通常,前三个选项应用比较多 ,下面通过命令操作实例来进一步巩固命令选项的具体用法。</p>
<p><img alt="ls命令" height="514" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30005V2.png" width="600" /></p>
<p>某些选项的联合使用举例:</p>
<p><img alt="ls命令_图2" height="427" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30005428.png" width="600" /></p>
<p> <img alt="ls命令_图3" height="420" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30005447.png" width="600" /></p>
<p>说明:ls查询结果不同颜色<br />白色 : 普通文件 text.txt, image.jpg, document.pdf<br />蓝色 : 目录 Documents, Downloads, 任何文件夹<br />绿色 : 可执行文件 编译后的程序、脚本(如 bash, python_script.py 如果设置了可执行权限)<br />青蓝色 : 符号链接 快捷方式文件,指向另一个文件或目录<br />红色 : 压缩文件或包文件 .zip, .tar.gz, .deb, .rpm<br />洋红色/粉色 : 图片、视频、多媒体文件 .png, .mp4, .mp3, .avi<br />黄色 : 设备文件 通常在 /dev 目录下,如 sda1 (磁盘分区)<br />黄底蓝字 : 其他文件 (sticky bit) 设置了 sticky bit 的目录,如 /tmp<br />蓝底绿字 : 其他文件 (setgid) 设置了 setgid 的目录,文件在该目录下会继承组权限<br />红底黄字 : 具有SUID权限的可执行文件 执行时会以文件所有者的权限运行,如 /usr/bin/passwd<br />黑色底红字 : 具有不可修改权限的文件 设置了 immutable 属性的文件(需 root 权限)</p>
<p>此外,ls命令还支持结合来<strong>过滤</strong>所显示的文件和目录。</p>
<p>通配符 含义</p>
<table align="center" border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>*</td><td>代表任意个数个字符</td></tr><tr><td>?</td><td>代表任意一个字符,至少一个</td></tr><tr><td>[]</td><td>代表可以匹配字符组中的任意一个</td></tr><tr><td></td><td>匹配a、b、c中的任意一个</td></tr><tr><td></td><td>匹配从a到f范围内的任意一个字符</td></tr></tbody></table>
<p><img alt="ls命令_图4" height="368" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000DU.png" width="600" /></p>
<p><img alt="ls命令_图5" height="77" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30006304.png" width="600" /></p>
<p class="maodian"></p><h3>2、pwd命令</h3>
<p>pwd命令用于显示用户当前工作目录的完整路径。这个命令非常简单且直接,帮助用户确定他们目前所在的目录位置。</p>
<p><strong>pwd命令基本格式:</strong>pwd [选项]‌</p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td></td><td></td></tr><tr><td><p>-L(逻辑)</p></td><td><p>打印出逻辑工作目录的名称,即包含符号链接的路径</p></td></tr><tr><td><p>-P(物理)</p></td><td><p>显示不包含符号链接的物理路径,即实际路径。</p></td></tr><tr><td><p>-help </p></td><td><p>显示帮助并退出</p></td></tr><tr><td><p>–version </p></td><td><p>输出版本信息并退出</p></td></tr></tbody></table>
<p><img alt="pwd命令" height="114" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000D96.png" width="600" /></p>
<p class="maodian"></p><h3>3、cd 命令 </h3>
<p>cd命令是Linux中非常常用的命令,用于切换工作目录。‌</p>
<p><strong>cd命令基本格式:</strong>cd [选项] [目录]</p>
<p>选项/目录 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>cd 指定目录</td><td>用于切换到“指定目录”。</td></tr><tr><td>cd /D</td><td>用于改变驱动器的当前目录,同时改变当前驱动器。</td></tr><tr><td>cd(不带参数)</td><td>显示当前驱动器和目录。</td></tr><tr><td>-</td><td>表示返回上一次所在的目录。</td></tr><tr><td>..</td><td>表示返回当前目录的上一级目录。</td></tr><tr><td>\~</td><td>表示用户的主目录,也就是当前用户登录后所在的默认目录。</td></tr><tr><td>/</td><td>表示根目录。</td></tr></tbody></table>
<p>‌<strong>目录</strong>参数‌可以是以下之一:</p>
<p>指定要切换到的目标目录的<strong>路径</strong>,可以使用<strong>相对路径</strong>或<strong>绝对路径</strong>。</p>
<p>相对路径是相对于当前工作目录的路径,例如<strong>cd documents</strong>表示切换到当前目录下的<strong>documents</strong>目录。</p>
<p>绝对路径是完整的目录路径,例如<strong>cd /usr/local</strong>表示切换到根目录下的<strong>usr/local</strong>目录。</p>
<p>通过连续使用cd命令,可以切换到更深层次的目录,例如<strong>cd dir1/dir2/dir3</strong>可以依次进入<strong>dir1目录、dir2目录以及dir3目录</strong>。</p>
<p>使用<strong>Tab</strong>键可以自动补全目录名称,减少输入错误。</p>
<p><img alt="cd 命令" height="235" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30006232.png" width="600" /></p>
<p><img alt="cd 命令_图2" height="104" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000E06.png" width="467" /></p>
<p class="maodian"></p><h3>4、touch命令</h3>
<p><strong>touch 命令基本格式:</strong>touch [选项] 文件</p>
<p>该命令的主要功能是更改文件的访问和修改。如果文件不存在,touch 会创建一个新的空文件。</p>
<p>1‌) <strong>创建空文件</strong>‌</p>
<p>如果指定的文件不存在,touch命令可以创建一个空文件。例如,touch text1.txt命令将在当前目录下创建一个名为text1.txt的空文件,也可以同时创建多个文件。</p>
<p><img alt="touch命令" height="143" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000L91.png" width="600" /></p>
<p><img alt="touch命令_图2" height="101" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000NX.png" width="600" /></p>
<p>2‌) <strong>更新文件时间戳</strong>‌</p>
<p>如果指定的文件已经存在,touch命令可以更新文件的<strong>访问时间戳和修改时间戳</strong>。例如,touch text1.txt命令将更新text1.txt的访问时间戳和修改时间戳为当前时间。</p>
<p><img alt="touch命令_图3" height="288" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000K53.png" width="600" /></p>
<p><strong>3) 使用特定选项</strong></p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-a</td><td>只更新文件的访问时间。</td></tr><tr><td>-m</td><td>只更新文件的修改时间。</td></tr><tr><td>-t</td><td>指定文件的时间戳,格式为YYYYMMDDhhmm或其它。</td></tr><tr><td>-d</td><td>使用日期字符串来设置文件的时间戳,格式可以是多种,如YYYY-MM-DD、YYYY-MM-DD HH:MM:SS等。</td></tr><tr><td>-r</td><td>使用现有文件的时间戳来更新目标文件的时间戳。</td></tr></tbody></table>
<p>使用 -a 和 -m 选项分别修改访问时间和修改时间:</p>
<div class="dxycode"><pre class="brush:plain;">touch -a -t 202409101230 text1.txt
touch -m -t 202409101230 text1.txt</pre></div>
<p><img alt="touch命令_图4" height="233" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000L55.png" width="600" /></p>
<p><img alt="touch命令_图5" height="164" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000XT.png" width="600" /></p>
<div class="dxycode"><pre class="brush:plain;">touch -r text1.txt text2.txt
#将text2.txt的时间戳设置为与text1.txt相同</pre></div>
<p><img alt="touch命令_图6" height="272" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000W21.png" width="600" /></p>
<p>设置时间戳格式‌:时间戳可以按照特定的格式设置。</p>
<p>例如,使用-t选项指定年(YYYY)、月(MM)、日(DD)、小时(HH)、分钟(MM)和秒(SS)的格式,如touch -t 202410011030 newfile.txt将文件的访问和修改时间设置为2024年10月01日10点30分。</p>
<div class="dxycode"><pre class="brush:plain;">touch -t 202410011030 newfile.txt
#将文件的访问和修改时间设置为2024年10月01日10点30分</pre></div>
<p><img alt="touch命令_图7" height="155" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000S01.png" width="600" /></p>
<p class="maodian"></p><h3> 5、mkdir命令</h3>
<p><strong>mkdir命令基本格式:</strong>mkdir [选项] 目录名</p>
<p>‌<strong>mkdir</strong>命令用于在文件系统中创建新的目录。</p>
<p>mkdir是"make directory"的缩写,是Unix/Linux系统中用于创建目录的基本命令。</p>
<p>通过使用不同的选项,可以实现创建单个目录、多级目录、设置目录权限以及显示创建过程中的详细信息等功能。</p>
<p><strong>1) 创建单个目录</strong>‌:使用mkdir 目录名命令可以在当前目录下创建一个新的目录。例如,</p>
<div class="dxycode"><pre class="brush:plain;">mkdir text</pre></div>
<p>将在当前目录下创建一个名为text的目录。</p>
<p><img alt="mkdir命令" height="104" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30009A1.png" width="600" /></p>
<p><strong>2) 创建多级目录</strong>‌:使用-p选项可以一次性创建多级目录,如果路径中的某些目录尚不存在,系统将自动建立这些目录。例如,</p>
<div class="dxycode"><pre class="brush:plain;">mkdir -p text1/text2/text3</pre></div>
<p>将创建text1\text2\text3这三级目录,即使它们中的某些尚未存在。</p>
<p><img alt="mkdir命令_图2" height="62" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3000b61.png" width="600" /></p>
<p><img alt="mkdir命令_图3" height="121" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30009112.png" width="600" /></p>
<p><strong>3) 设置目录权限</strong>‌:使用-m选项可以在创建目录的同时设置其权限。</p>
<p>该命令涉及权限设置,放在后面修改权限命令一起再详述。</p>
<p><strong>4) 显示详细信息</strong>‌:使用-v选项可以在创建目录时显示详细信息。让用户看到每个创建的目录的详细信息,这对于了解命令的执行过程和确认目录是否正确创建非常有帮助。例如,</p>
<div class="dxycode"><pre class="brush:plain;">mkdir -v test</pre></div>
<p>例如,如果用户在当前目录下创建一个名为test的新目录,使用mkdir -v test命令,系统会显示类似于“Created directory 'test'”的信息,从而确认目录已经被创建‌;如果正在创建,则提示“Creating directory 'test'”。</p>
<p><img alt="mkdir命令_图4" height="57" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30010538.png" width="600" /></p>
<p class="maodian"></p><h3>6、rm命令</h3>
<p><strong>‌rm命令基本格式</strong>:rm [选项] 文件或目录</p>
<p>rm命令不带任何选项时,仅删除文件。</p>
<div class="dxycode"><pre class="brush:plain;">#删除单个文件
rm text1.txt
#删除多个文件
rm text2.txt text3.txt text4.txt</pre></div>
<p><img alt="rm命令" height="197" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30010N2.png" width="600" /></p>
<p>rm命令是Linux和类Unix系统中用于删除文件或目录的命令。使用时需要格外小心,因为删除的文件或目录无法恢复。命令的基本用法包括删除单个文件、多个文件、目录及其内容等,具体操作取决于所使用的选项。</p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-f 或 --force</td><td>强制删除,忽略不存在的文件,不提示。</td></tr><tr><td>-i 或 --interactive</td><td>交互式删除,每个文件删除前都会询问用户。</td></tr><tr><td>-r 或 -R 或 --recursive</td><td>递归删除,用于删除目录及其内容。</td></tr><tr><td>-v 或 --verbose</td><td>显示详细信息,列出被删除的文件。</td></tr></tbody></table>
<p>这些选项可以单独使用,也可以组合使用以满足不同的删除需求。例如,rm -rf directoryName命令会强制递归地删除名为directoryName的目录及其所有内容,而不进行任何提示。</p>
<p>在使用rm命令时,应始终谨慎,确保不会意外删除重要文件或目录。建议在执行rm命令之前,先确认所在的目录和要删除的内容,以避免不必要的损失‌。</p>
<p>此外,还有其他一些选项,如--help显示帮助信息,--version显示版本信息等。</p>
<p>默认情况下,rm命令不会删除目录,但如果使用<strong>-r</strong>选项,则可以递归地删除目录及其所有内容。因此,在使用rm命令时必须小心,因为它会永久性地删除文件或目录,且没有提供撤销删除的功能‌。</p>
<p><img alt="rm命令_图2" height="221" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300113A.png" width="600" /></p>
<p><img alt="rm命令_图3" height="157" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30011S3.png" width="600" /></p>
<p><img alt="rm命令_图4" height="143" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30011Z9.png" width="600" /></p>
<p><img alt="rm命令_图5" height="143" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30011412.png" width="600" /></p>
<p><img alt="rm命令_图6" height="85" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30012632.png" width="600" /></p>
<p class="maodian"></p><h3>7、tree命令</h3>
<p><strong>tree命令基本格式:</strong>tree [选项] [目录]</p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-a 或 --all</td><td>显示所有文件和目录,包括隐藏的(以点开头的)。</td></tr><tr><td>-d 或 --dirs-only</td><td>-仅列出目录。</td></tr><tr><td>-L level 或 --max-depth=level</td><td>限制目录树的显示深度到指定的层数。</td></tr><tr><td>-f 或 --fullpath</td><td>显示每个文件或目录的完整路径。</td></tr><tr><td>-P pattern</td><td>只显示符合提供的模式的文件名或目录名。</td></tr><tr><td>-I pattern</td><td>排除符合提供的模式的文件名或目录名。</td></tr><tr><td>-o filename</td><td>将输出重定向到指定的文件。</td></tr><tr><td>-i</td><td>不显示文件和目录前的缩进线。</td></tr></tbody></table>
<p>tree命令用于在命令行界面以树状图形式显示目录及其子目录的内容,递归地列出所有子目录,并可选择显示每个目录中的文件。如果没有指定目录,tree会显示当前目录的树形结构。如果提供了目录路径,tree会显示该路径的树形结构。</p>
<div class="dxycode"><pre class="brush:plain;">#查看当前目录下的所有文件和目录(包括隐藏文件),并且限制显示深度为两级。
tree -a -L 2</pre></div>
<p><strong>注意:</strong>tree命令在不同的操作系统上可能有些许差异,且在大多数Linux发行版中,tree不是默认安装的,<strong>需要通过包管理器进行安装。</strong></p>
<p><img alt="tree命令" height="85" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30012459.png" width="600" /></p>
<div class="dxycode"><pre class="brush:plain;"># 安装 tree 命令
sudo apt install tree </pre></div>
<p><img alt="tree命令_图2" height="340" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30012535.png" width="600" /></p>
<p><img alt="tree命令_图3" height="326" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30013424.png" width="600" /></p>
<p> 也可以方便查询当前目录结构</p>
<p><img alt="tree命令_图4" height="550" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30013161.png" width="600" /></p>
<p class="maodian"></p><h3>8、echo命令</h3>
<p>echo 命令用于在终端显示一段文本或变量的值。它是Shell脚本中常用的命令之一,主要用于输出字符串或变量的内容。</p>
<p>echo命令的基本格式:echo [选项] [字符串...]</p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-n</td><td><p>在输出文本后不换行。</p></td></tr><tr><td>-e</td><td>启用的解释,可以识别和显示转义字符(如 \n、\t 等)。</td></tr><tr><td>-E</td><td>禁用转义字符的解释,将转义字符原样显示。</td></tr></tbody></table>
<p> 1)显示普通文本信息</p>
<div class="dxycode"><pre class="brush:plain;">echo "Hello, World!"
#输出:Hello, World!</pre></div>
<p> 2)显示带有转义字符的文本</p>
<p>启用反斜杠转义字符。常用转义字符包括:</p>
<p>\n:换行 \t:制表符(将文本按固定间隔对齐,即水平对齐功能,其功能与Tab键相同,但不触发命令行自动补全或特殊功能) \\:反斜杠 \b:退格</p>
<div class="dxycode"><pre class="brush:plain;">echo -e "Hello\tWorld\n"
#输出:Hello World</pre></div>
<div class="dxycode"><pre class="brush:plain;">echo -e "Line1\nLine2\nLine3"
#输出多行文本</pre></div>
<p><img alt="echo命令" height="77" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300132c.png" width="600" /></p>
<p>3)不自动添加换行符</p>
<div class="dxycode"><pre class="brush:plain;">echo -n "Hello, World!"
#输出:Hello, World!</pre></div>
<p><img alt="echo命令_图2" height="100" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30013Y9.png" width="600" /></p>
<p>4)显示变量的值</p>
<div class="dxycode"><pre class="brush:plain;">name="John"
echo "My name is $name"
#输出:My name is John</pre></div>
<p>5)输出命令的执行结果</p>
<div class="dxycode"><pre class="brush:plain;">echo "Today is $(date)"
#输出:Today is [当前日期和时间]</pre></div>
<p><img alt="echo命令_图3" height="100" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300132T.png" width="600" /></p>
<p>说明:CST代表了中国时区的标准时间。 </p>
<p>6)将输出到文件</p>
<div class="dxycode"><pre class="brush:plain;">echo "Hello, World!" > output.txt
#将文本"Hello, World!"写入output.txt文件中。</pre></div>
<p><img alt="echo命令_图4" height="73" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30014252.png" width="600" /></p>
<p><strong>补充说明:有关</strong>cat命令的用法就不单独详细讲解,可以参考下面说明:</p>
<p>‌<strong>查看文件内容</strong>‌:使用cat命令查看文件内容是最基本的用法。</p>
<p>例如,要查看名为file.txt的文件内容,可以输入cat file.txt。‌</p>
<p>‌<strong>显示行号</strong>‌:使用-n选项可以在显示文件内容时同时显示行号。</p>
<p>例如,输入cat -n file.txt将显示file.txt文件的每一行内容及其对应的行号。‌</p>
<p>‌<strong>合并文件</strong>‌:cat命令还可以用于合并多个文件的内容。</p>
<p>例如,要将file1.txt和file2.txt的内容合并并输出到终端,可以输入cat file1.txt file2.txt。如果要将合并后的内容保存到新文件中,可以使用重定向操作符>。例如,输入cat file1.txt file2.txt > merged.txt将合并后的内容保存到名为merged.txt的新文件中。</p>
<p>‌<strong>创建文件并写入内容</strong>‌:使用cat命令还可以创建新文件并写入内容。</p>
<p>例如,输入cat > newfile.txt后,可以在终端中输入要写入的内容,按Ctrl+D保存并退出,从而创建一个名为newfile.txt的新文件并包含输入的内容。</p>
<p> 6)追加输出到文件</p>
<div class="dxycode"><pre class="brush:plain;">echo "This is another test" >> testfile.txt
#将字符串 This is another test 追加到 testfile.txt 文件中,不会覆盖原有内容。</pre></div>
<p><img alt="echo命令_图5" height="143" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30014491.png" width="1151" /> 7)显示</p>
<div class="dxycode"><pre class="brush:plain;">echo "This is a \"quoted\" text"
#输出:This is a "quoted" text</pre></div>
<p class="maodian"></p><h3> 9、cp命令</h3>
<p>‌cp命令<strong>是‌系统中用于复制文件或目录的命令</strong>‌。</p>
<p><strong>cp命令的基本格式:</strong>cp [选项] 源文件/目录 目标文件/目录</p>
<p><strong>选项说明:</strong></p>
<p>选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td>-a 或 --archive</td><td><p>相当于 -dR --preserve=all,用于归档目的,递归地复制文件,并保持所有属性。</p></td></tr><tr><td>-i 或 --interactive</td><td>在覆盖目标文件前进行询问。</td></tr><tr><td>-r 或 -R 或 --recursive</td><td>递归地复制目录及其内容。</td></tr><tr><td>-f 或 --force</td><td>如果目标文件已经存在,不提示而是直接覆盖。</td></tr><tr><td>-p 或 --preserve</td><td>保持源文件的属性,如修改时间和访问权限。</td></tr></tbody></table>
<p>此外,还有其他选项如 --backup 为已存在的目标文件创建备份,-b 类似 --backup 但不接受参数等,这些选项可以根据具体需求灵活使用‌。</p>
<p><strong>1)复制单个文件</strong></p>
<div class="dxycode"><pre class="brush:plain;">cp text1.txt text2.txt
#将源目标text1.txt文件中的内容复制一份到目标文件text2.txt中</pre></div>
<p><img alt="cp命令" height="185" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30014535.png" width="600" /></p>
<p><strong> 2)将文件/多文件复制到目录中</strong></p>
<div class="dxycode"><pre class="brush:plain;"> cp text1.txt text2.txt wl/
#将多文件text1.txt text2.txt复制到指定目录:当前目录下的wl目录中</pre></div>
<p><img alt="cp命令_图2" height="98" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30014b9.png" width="600" /></p>
<p><strong>3)递归复制整个目录</strong></p>
<div class="dxycode"><pre class="brush:plain;">语法格式为:cp -r 源目录 目标目录
将复制源目录及其所有内容到目标目录中。</pre></div>
<p><img alt="cp命令_图3" height="126" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30015426.png" width="600" /></p>
<p><strong> 4)复制并重命名文件</strong></p>
<div class="dxycode"><pre class="brush:plain;">cp text1.txt text1.txt.bak
#将把text1.txt的内容复制到新创建的名为text1.txt.bak的文件中。</pre></div>
<p><img alt="cp命令_图4" height="117" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300159E.png" width="600" /> <br /><br /><strong>5)强制覆盖已有文件</strong></p>
<div class="dxycode"><pre class="brush:plain;">语法格式为:cp -f 源文件 已存在的文件</pre></div>
<p> 请注意,在执行任何可能覆盖重要文件的操作时,请谨慎使用-f选项,并在必要时备份数据以防意外丢失。</p>
<p><strong>6)交互式复制并保留属性</strong></p>
<div class="dxycode"><pre class="brush:plain;">语法格式为:cp -ip 源文件 目标文件</pre></div>
<p><strong>7)使用通配符批量复制文件</strong></p>
<div class="dxycode"><pre class="brush:plain;">cp *.txt wl/
#将当前目录下所有的txt文件都复制到当前目录下的wl目录中</pre></div>
<p class="maodian"></p><h3> 10、mv命令</h3>
<p>‌<strong>‌是‌系统中用于移动文件或目录、重命名文件或目录的命令。</strong>‌</p>
<p><strong>mv命令的基本格式:</strong></p>
<p>移动文件或目录:mv [选项] 源文件或目录 目标文件或目录 重命名文件:mv <旧文件名> <新文件名></p>
<p>该命令的主要功能包括:</p>
<p>当目标参数是文件时,mv命令完成文件重命名。 当目标参数是已存在的目录时,mv命令将源文件或目录移动到该目录中。 在跨文件系统移动文件时,mv命令会先拷贝文件,再将原有文件删除。</p>
<p>常用的选项包括:</p>
<p>-i :交互式移动,如果目标文件已经存在,则询问用户是否覆盖。</p>
<p>-f :强制移动,如果目标文件已经存在,则不询问直接覆盖。</p>
<p>-n: 如果目标文件已经存在,则不覆盖。<br />-v:显示详细的移动过程。<br />-u:如果目标文件已经存在,但源文件更新,则更新目标文件。</p>
<p>实例演示:</p>
<div class="dxycode"><pre class="brush:plain;">#将文件file1.txt重命名为file2.txt
mv file1.txt file2.txt</pre></div>
<p><img alt="mv命令" height="149" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30015C8.png" width="700" /></p>
<div class="dxycode"><pre class="brush:plain;">#将文件file2.txt移动到目录dir1中
mv file2.txt dir1</pre></div>
<p><img alt="mv命令_图2" height="177" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001C26.png" width="700" /></p>
<div class="dxycode"><pre class="brush:plain;">#使用-i选项在重命名或覆盖前询问用户,如果log2已存在,会询问是否覆盖。
mv -i log1 log2</pre></div>
<p><img alt="mv命令_图3" height="149" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001C26.png" width="700" /></p>
<div class="dxycode"><pre class="brush:plain;">#使用-f选项强制覆盖目标文件,不询问用户,直接覆盖。
mv -f log1 log2</pre></div>
<div class="dxycode"><pre class="brush:plain;">#使用-b选项在覆盖前备份目标文件,先备份log1,然后覆盖log2。
mv -b log1 log2</pre></div>
<div class="dxycode"><pre class="brush:plain;">#使用-n选项不覆盖已存在的文件
mv -n file1.txt dir1/file2.txt
#如果dir1中有file2.txt,则不移动</pre></div>
<div class="dxycode"><pre class="brush:plain;">#使用-u选项仅当源文件比目标文件新时才进行移动
mv -u source_file target_file
#如果source_file更新,才移动</pre></div>
<p class="maodian"></p><h2>三、系统相关命令</h2>
<p class="maodian"></p><h3>1、关机/重启命令</h3>
<p><strong>(1)shutdown命令</strong></p>
<p><strong>shutdown命令格式:shutdown [选项] [时间] [警告信息]</strong></p>
<p><strong>[选项]:</strong><br />-r :重新启动,不加就是关机;- h 关机后不重新启动;-c : 取消<br /><strong>[时间]:</strong><br />new : 现在<br />如果不指定选项和时间,则默认1分钟后关闭电脑</p>
<p><strong>shutdown可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。</strong>该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。</p>
<div class="dxycode"><pre class="brush:plain;">shutdown now #立刻关机
shutdown -c #取消shutdown的计划
shutdown -r now#立刻重启
shutdown 20:00 #将在20:00关机
shutdown +10 #将在十分钟之后自动关机</pre></div>
<p><strong>(2)halt命令,</strong><strong>最简单的关机命令,其实际上是调用shutdown -h命令。</strong></p>
<p><strong> </strong>halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。</p>
<p><strong>(3)reboot 命令工作过程与halt类似,其作用是重新启动,而halt是关机。</strong></p>
<p><strong> </strong>其参数也与halt类似,reboot命令重启动系统时是删除所有的进程,而不是平稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。所以使用reboot 命令的场合主要是在单用户模式。</p>
<p>实例总结<br /><strong>重启命令:</strong><br /> reboot<br /> shutdown -r now 立刻重启 (root用户使用)<br /> shutdown -r 10 过10分钟自动重启 (root用户使用)<br /> shutdown -r 20:35 在时间为20:35时候重启 (root用户使用)<br /> 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启</p>
<p><strong>关机命令:</strong><br /> halt 立刻关机<br /> poweroff 立刻关机<br /> shutdown -h now 立刻关机 (root用户使用)<br /> shutdown -h 10 10分钟后自动关机<br /> 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启</p>
<p class="maodian"></p><h3>2、磁盘管理命令</h3>
<p><strong>Linux 常用三个命令为 df、du 和 fdisk。</strong></p>
<p>df(英文全称:disk free):列出文件系统的整体磁盘使用量</p>
<p>du(英文全称:disk used):检查磁盘空间使用量</p>
<p>fdisk:用于磁盘分区</p>
<p><strong>(1)df</strong><br />df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。</p>
<div class="dxycode"><pre class="brush:plain;">#命令格式:
df [选项] [目录或文件名]</pre></div>
<p><strong>[选项]:</strong></p>
<p>-h:以人类可读的方式显示输出结果(例如,使用 KB、MB、GB 等单位)。<br />-T:显示文件系统的类型。<br />-t <文件系统类型>:只显示指定类型的文件系统。<br />-i:显示 inode 使用情况。<br />-H:该参数是 -h 的变体,但是使用 1000 字节作为基本单位而不是 1024 字节。这意味着它会以 SI(国际单位制)单位(例如 MB、GB)而不是二进制单位(例如 MiB、GiB)来显示磁盘使用情况。<br />-k:这个选项会以 KB 作为单位显示磁盘空间使用情况。<br />-a:该参数将显示所有的文件系统,包括虚拟文件系统,例如 proc、sysfs 等。如果没有使用该选项,默认情况下,df 命令不会显示虚拟文件系统。</p>
<div class="dxycode"><pre class="brush:plain;">df
#如果df没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap)
#都以 1 Kbytes 的容量来列出来!</pre></div>
<p> <img alt="磁盘管理命令" height="192" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30016433.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">df -h
#将容量结果以易读的容量格式显示出来</pre></div>
<p> <img alt="磁盘管理命令_图2" height="187" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30016291.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">df -aT
#将系统内的所有特殊文件格式及名称都列出来</pre></div>
<p> <img alt="磁盘管理命令_图3" height="564" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001JC.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">df -h /etc
#将 /etc 底下的可用的磁盘容量以易读的容量格式显示</pre></div>
<p> <img alt="磁盘管理命令_图4" height="92" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001M38.png" width="670" /></p>
<p><strong>显示内容参数说明:</strong>Filesystem:文件系统<br />Size: 分区大小<br />Used: 已使用容量<br />Avail: 还可以使用的容量<br />Use%: 已用百分比<br />Mounted on: 挂载点 </p>
<p><img alt="磁盘管理命令_图5" height="317" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001Hc.png" width="670" /></p>
<p><strong>相关命令</strong></p>
<p>df -hl:查看磁盘剩余空间<br />df -h:查看每个根路径的分区大小<br />du -sh [目录名]:返回该目录的大小<br />du -sm [文件夹]:返回该文件夹总M数<br />du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)</p>
<p><strong>(2) du命令</strong>du命令是linux系统里的文件大小查看的命令。<br />需要查看单个目录里面多个文件总大小; <br />需要查看目录中每个文件的大小以及每个子文件夹中文件的大小; <br />查看日志文件的大小;<br />查看文件大小并排序,找出最大的或最小的文件;<br />其它需要统计文件大小的场景。<br />ls, df也有类似的功能,但是du更侧重于文件大小,并且更灵活好用。是运维人员、服务端开发人员以及其他linux用户很好的工具。掌握du命令的用法十分有必要。</p>
<div class="dxycode"><pre class="brush:plain;">du -h #查看当前目录各文件占用磁盘大小</pre></div>
<p> <img alt="磁盘管理命令_图6" height="348" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001K04.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">sudo du -s #查看文件夹总大小,注意该命令操作需要超级管理员权限</pre></div>
<p> <img alt="磁盘管理命令_图7" height="136" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001Q10.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">du -hd1 #查看当前目录下各目录文件大小,层级深度为1</pre></div>
<p> <img alt="磁盘管理命令_图8" height="271" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001VW.png" width="670" /></p>
<div class="dxycode"><pre class="brush:plain;">du -ah #查看所有文件大小</pre></div>
<p> <img alt="磁盘管理命令_图9" height="337" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001W92.png" width="670" /></p>
<p><strong>(3)fdisk</strong></p>
<p> fdisk是一个用于磁盘分区的命令,适合给小于2T的磁盘分区。</p>
<p>命令格式如下:</p>
<p> <strong>fdisk [选项] -l <磁盘> :列出分区表</strong></p>
<p><strong> fdisk -s <分区> :给出分区大小(块数)</strong></p>
<p><strong> fdisk [选项] <磁盘> </strong><strong>:用于更改分区表</strong></p>
<p>在fdisk的交互操作方式下,可以使用以下子命令:</p>
<p>a:调整硬盘的启动分区,设置可引导标记。</p>
<p>d:删除一个硬盘分区,删除一个分区。</p>
<p>l:列出所有支持的分区类型,显示所有已知的分区类型。</p>
<p>m:列出所有命令,显示帮助菜单。</p>
<p>n:创建一个新的分区,新建分区。</p>
<p>p:列出硬盘分区表,显示分区列表。</p>
<p>q:退出fdisk,不保存更改,不保存退出。</p>
<p>t:更改分区类型,改变一个分区的默认id。</p>
<p>u:切换所显示的分区大小的单位,改变显示单位。</p>
<p>w:把设置写入硬盘分区表,然后退出,写入分区表,保存退出 。</p>
<div class="dxycode"><pre class="brush:plain;">#列出所有分区信息
sudo fdisk -l</pre></div>
<p><img alt="磁盘管理命令_图10" height="406" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001aP.png" width="1183" /></p>
<p>有关该命令实现分区的具体操作在这里不作详细讲解,如有需要进行分区操作的可以参考博文:</p>
<p class="maodian"></p><h2><strong>四、</strong>打包/解压命令tar</h2>
<p>tar命令基本格式:tar [选项] [文件名]</p>
<p>其中,文件名即是我们要操作的文件。</p>
<p>选项参数一般是我们要对该文件进行的操作,它可以简单的分为<strong>操作选项、附加选项</strong>。</p>
<p>操作选项主要有:</p>
<p>操作选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td><p><strong>-c:</strong></p></td><td><strong>创建压缩文件</strong></td></tr><tr><td><strong>-x</strong></td><td><strong>对文件进行解压</strong></td></tr><tr><td><strong>-t</strong></td><td><strong>查看压缩包内容</strong></td></tr><tr><td>-r</td><td>向压缩归档文件末尾追加文件</td></tr><tr><td>-u</td><td>更新原压缩包中的文件</td></tr><tr><td>-d</td><td>将压缩文件和文件系统上的文件进行对比</td></tr></tbody></table>
<p>附加选项 含义</p>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr></tr></tbody><tbody><tr><td><p><strong>-z</strong></p></td><td><strong>文件有gzip属性</strong></td></tr><tr><td><strong>-j</strong></td><td><strong>文件有bz2属性</strong></td></tr><tr><td><strong>-Z</strong></td><td><strong>文件有compress属性</strong></td></tr><tr><td><strong>-v</strong></td><td><strong>详细列出所有处理过程</strong></td></tr><tr><td>-C</td><td>指定工作目录(因为该参数后必须紧跟文件目录,故一般放在option参数的最后或单独使用)</td></tr><tr><td><strong>-f</strong></td><td><strong>指定归档文件名(因为该参数后必须紧跟文件名,故一般放在option参数的最后或单独使用)</strong></td></tr></tbody></table>
<p><strong>需要注意的是,操作选项</strong>之间互相独立,一般不可同时使用,但可以和下面的附加选项参数配合使用,为了方便理解,我们一般会操作选项参数在前,附加选项参数在后。</p>
<p class="maodian"></p><h3>1、打包/压缩操作</h3>
<p class="maodian"></p><h4>(1) 打包/压缩文件</h4>
<p>tar命令在进行压缩操作时常用选项很多,如上述两个表格,用法也可谓较复杂,为了方便说明,下面以一些具体的示例加以解说。</p>
<p>tar -cvf wlout.tar wl*<br />#将当前目录里所有以wl开头的文件打包成wlout.tar,并详细显示压缩过程</p>
<p>tar -czf wlout.tar.gz wl*<br />#将当前目录里所有以wl开头的文件打包成wlout.tar后,并将其用gzip进行压缩,生成一个gzip压缩过的包,命名为wlout.tar.gz</p>
<p>tar -cjf wlout.tar.bz2 wl*<br />#将当前目录里所有以wl开头的文件打包成wlout.tar后,并将其用bzip2压缩,生成一个bzip2压缩过的包,命名为wlout.tar.bz2</p>
<p>tar -czf wlout.tar.Z wl*<br />#将当前目录里所有以wl开头的文件打包成wlout.tar后,并将其用compress压缩,生成一个compress压缩过的包,命名为wlout.tar.Z</p>
<p>tar -cvf WL/wl.tar wlout*<br />#将当前目录里所有以wlout开头的文件打包成wl.tar存放在上当前目录下WL目录中,并详细显示压缩过程</p>
<p>其中,选项 "-cvf" 一般是习惯用法,记住打包时需要指定打包之后的文件名,而且要用 ".tar" 作为扩展名。 </p>
<p><img alt="(1) 打包/压缩文件" height="247" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001c05.png" width="700" /></p>
<p><img alt="(1) 打包/压缩文件_图2" height="125" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3001b27.png" width="700" /></p>
<p><img alt="(1) 打包/压缩文件_图3" height="140" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30020949.png" width="700" /></p>
<p><img alt="(1) 打包/压缩文件_图4" height="122" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30022153.png" width="700" /></p>
<p><img alt="(1) 打包/压缩文件_图5" height="331" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30022416.png" width="700" /></p>
<p class="maodian"></p><h4>(2) 打包目录</h4>
<p>tar -cvf text.tar text/<br />#把当前目录下text目录中所有文件打包为text.tar文件</p>
<p><img alt="(2) 打包目录" height="401" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30022K1.png" width="700" /></p>
<p>tar命令也可以打包多个文件或目录,只要用空格分开即可。</p>
<p>tar -cvf WL.tar WL1.txt WL2.txt WL/<br />#把当前目录下WL1.txt文件、WL.txt文件和WL目录打包成WL.tar文件包<br />#如果对系统根目录进行操作,若不是root用户,需要加sudo</p>
<p><img alt="(2) 打包目录_图2" height="206" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30022230.png" width="700" /></p>
<p class="maodian"></p><h3>2、解包/解压操作</h3>
<p>tar在进行解压缩操作时,主要看打包文件的扩展名,依据扩展名所对应的包格式进行相应选项的选择进行解压操作。</p>
<p>其实解包和打包相比,只是把打包选项 "-cvf" 更换为 "-xvf",操作方法类似。</p>
<div class="dxycode"><pre class="brush:plain;">tar -xvf wlout.tar #解包到当前目录下</pre></div>
<p>如果使用 "-xvf" 选项,则会把包中的文件解压到当前目录下。</p>
<p>如果想要指定解压位置,则需要使用 "-C(大写)" 选项。</p>
<div class="dxycode"><pre class="brush:plain;">tar -xvf wl.tar -C wl
#把文件包text.tar解包到wl/目录下</pre></div>
<p>具体操作同上述打包操作,操作命令汇总如下,就不再作详细说明 。</p>
<div class="dxycode"><pre class="brush:plain;">tar -xvf wlout.tar
#解压wrfout.tar到当前目录下,并详细显示解压过程
tar -xzf wlout.tar.gz
#解压wrfout.tar.gz到当前目录下
tar -xjf wlout.tar.bz2
#解压wrfout.tar.bz2到当前目录下
tar -xZf wlout.tar.Z
#解压wrfout.tar.Z到当前目录下
tar -xzvf wlout.tar.gz -C /home
#解压wrfout.tar.gz到/home目录下,并详细显示解压过程</pre></div>
<p class="maodian"></p><h3> 3、tar其它操作举例</h3>
<div class="dxycode"><pre class="brush:plain;">tar -rf wlout.tar *.py
#将所有.py的文件增加到wrfout.tar压缩包里面去
tar -uf wlout.tar plot.py
#用当前文件目录中的plot.py,更新压缩包wrfout.tar中plot.py文件
tar -tf wlout.tar
#列出wrfout.tar包中的所有文件
tar -dvf wlout.tar *.py
#将wrfout.tar压缩包中的文件与当前目录下的.py文件进行比较,并列出详细过程</pre></div>
<p class="maodian"></p><h2>五、文件及目录权限命令</h2>
<p class="maodian"></p><h3><strong>1、命令语法</strong></h3>
<p><strong>语法:</strong>chmod [选项] 模式 文件/目录名...</p>
<p><strong>其中:</strong><br />• [选项] 是可选的,用于指定特定的行为<br />• 模式 是指要设置的权限模式<br />• 文件名... 是一个或多个文件或目录的路径</p>
<p><strong>[选项] </strong>中一般最常用的就是-R,</p>
<p><img alt="命令语法" height="141" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30023131.png" width="572" /></p>
<p><strong>模式</strong></p>
<p>权限模式可以通过八进制模式(Octal Mode)或符号模式(Symbolic Mode)来表示,本文以八进制模式为主进行讲解。</p>
<p><strong>功能:</strong>修改文件及文件夹权限(注意,只有文件及目录的所属用户或root用户可以修改)</p>
<p><strong>说明:</strong>在Linux中,r、w 和 x 分别表示读(read)、写(write)和执行(execute)权限。</p>
<p>它们是英语单词的首字母缩写。</p>
<p>r:表示读权限,允许用户读取文件内容。<br />w:表示写权限,允许用户修改、编辑文件。<br />x:表示执行权限,对于文件来说,允许用户作为可执行文件运行;对于目录来说,允许用户进入该目录。<br />这些权限控制了用户对文件或目录的不同操作能力。</p>
<p>通过为<strong>所有者(用户,u表示)、所有组( g表示)和其他组( o表示)</strong>分配不同的权限,可以实现对系统资源的灵活管理和访问控制。</p>
<p>如下图所示,三组权限分别属于<strong>所有者(用户)、所有组、其他组</strong>,例如图中第一个目录"Desktop"当前权限为<strong>所有者</strong>可读、可写、可执行;<strong>所有组</strong>可读、可执行,不可写;<strong>其他组</strong>可读、可执行,不可写。</p>
<p><img alt="命令语法_图2" height="153" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300235S.png" width="525" /></p>
<p class="maodian"></p><h3>2、八进制模式实现方法</h3>
<p>模式下的八进制权限是由三组权限对应的三位八进制组成,每组权限又由三位二进制转化成的八进制来表示,下面仍然以目录"Desktop"来说明:</p>
<p>权限: r w x r - x r - x</p>
<p>二进制 1 1 1 1 0 1 1 0 1</p>
<p>十进制 7 5 5</p>
<p>即目录"Desktop" 的权限值为755。</p>
<p><img alt="八进制模式实现方法" height="152" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30023S6.png" width="476" /></p>
<p>如上图红框中所示,十位权限表示时,第一位代表文件的类型,类型可以是下面几个中的一个:</p>
<p>d代表的是目录(directroy)<br />-代表的是文件(regular file)<br />s代表的是套字文件(socket)<br />p代表的管道文件(pipe)或命名管道文件(named pipe)<br />l代表的是符号链接文件(symbolic link)<br />b代表的是该文件是面向块的设备文件(block-oriented device file)<br />c代表的是该文件是面向字符的设备文件(charcter-oriented device file) </p>
<p>后九位为权限,常见的权限表示形式有:</p>
<p>-rw------- (600) 只有所有者有读写权限。<br />-rw-r--r-- (644) 只有所有者有读写权限;而所有组用户和其他用户只有读权限。<br />-rwx------ (700) 只有所有者有读、写、执行权限。<br />-rwxr-xr-x (755) 所有者有读、写、执行权限;而所有组用户和其他用户只有读、执行权限。<br />-rwx--x--x (711) 所有者有读、写、执行权限;而所有组用户和其他用户只有执行权限。<br />-rw-rw-rw- (666) 所有用户都有文件读、写权限。<br />-rwxrwxrwx (777) 所有用户都有读、写、执行权限。<br />......</p>
<p>解析: Linux权限总共有三个属组,这里我们给每个属组使用三个位置来定义三种操作(读、写、执行)权限,合起来则是权限的后九位。 其中 -代表无权限,r代表读权限,w代表写权限,x代表执行权限。我们将各个位置权限的有和无分别用二进制数 1和 0来代替,有则为1,无则为0,每组权限先用三位二进制表示,并进一步转变成八进制数字,如下所示:</p>
<p>rwx = 111 = 7<br />rw- = 110 = 6<br />r-x = 101 = 5<br />r-- = 100 = 4<br />-wx = 011 = 3<br />-w- = 010 = 2<br />--x = 001 = 1<br />--- = 000 = 0</p>
<p>下面通过一些实例来强化说明。</p>
<p>(1)将文件test.txt的所有组权限全打开</p>
<p>一般系统根目录下的文件都是不能修改的,如果想要修改,得修改其权限。</p>
<div class="dxycode"><pre class="brush:plain;">chmod 777 ftest.txt #(等价于chmod u=rwx,g=rwx,o=rwx test.txt或 chmod a=rwx test.txt)</pre></div>
<p>(2)将文件test.txt的所有者权限全打开,用户组及其他组权限全关闭</p>
<div class="dxycode"><pre class="brush:plain;">chmod 700 test.txt # (等价于chmod u=rwx,g=---,o=--- test.txt )</pre></div>
<p>(3)-R:递归修改目录及其子目录下的所有文件和目录权限</p>
<p>例如,将目录Desktop及其子目录下所有文件的读写权限设置为 只有所有者有读、写、执行权限。</p>
<div class="dxycode"><pre class="brush:plain;">chmod -R 700 Desktop</pre></div>
<p>例如,将目录Desktop及其子目录下所有文件的读写权限设置为 所有用户都有读、写、执行权限。</p>
<div class="dxycode"><pre class="brush:plain;">chmod -R 777 Desktop</pre></div>
<p class="maodian"></p><h2>六、网络相关命令</h2>
<p class="maodian"></p><h3>1、ifconfig</h3>
<p>ifconfig是Linux中常用的工具之一,用于配置和显示网络接口的具体状况。</p>
<p><strong>注意事项:</strong><br />用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件。<br />要使用ifconfig命令,必须具有superuser权限。<br />在一些较新的Linux发行版中,ifconfig命令已经被ip命令所取代,因此在使用ifconfig命令之前,需要先检查系统是否支持该命令。<br />ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。</p>
<p>查看 ip 网络相关信息,如果命令不存在的话, 执行命令 yum install net-tools 安装。</p>
<p><img alt="ifconfig" height="383" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30023434.png" width="900" /></p>
<p>以上显示信息详细说明,可自行查看。</p>
<p><img alt="ifconfig_图2" height="334" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30023N8.png" width="472" /><img alt="ifconfig_图3" height="396" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30024T1.png" width="377" /></p>
<p><img alt="ifconfig_图4" height="113" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30024O3.png" width="435" /></p>
<p><img alt="ifconfig_图5" height="118" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30024S6.png" width="353" /></p>
<p><img alt="ifconfig_图6" height="58" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300241F.png" width="341" /><img alt="ifconfig_图7" height="118" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30025161.png" width="458" /></p>
<p class="maodian"></p><h3><strong>2、ping</strong></h3>
<p>作用:检测当前主机与目标主机之间的连通性(不是100%准确,有的是禁ping)。</p>
<p>ping 主机地址(ip地址、主机名、域名等)</p>
<p>用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]<br /> [-r count] [-s count] [[-j host-list] | [-k host-list]]<br /> [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]<br /> [-4] [-6] target_name</p>
<p>选项:<br /> -t Ping 指定的主机,直到停止<br /> 若要查看统计信息并继续操作,请键入 Ctrl+Break<br /> 若要停止,请键入 Ctrl+C<br /> -a 将地址解析为主机名<br /> -n count 要发送的回显请求数<br /> -l size 发送缓冲区大小<br /> -f 在数据包中设置“不分段”标记(仅适用于 IPv4)<br /> -i TTL 生存时间<br /> -v TOS 服务类型(仅适用于 IPv4。该设置已被弃用<br /> 对 IP 标头中的服务类型字段没有任何影响)<br /> -r count 记录计数跃点的路由(仅适用于 IPv4)<br /> -s count 计数跃点的时间戳(仅适用于 IPv4)<br /> -j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)<br /> -k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)<br /> -w timeout 等待每次回复的超时时间(毫秒)<br /> -R 同样使用路由标头测试反向路由(仅适用于 IPv6)<br /> 根据 RFC 5095,已弃用此路由标头<br /> 如果使用此标头,某些系统可能丢弃回显请求<br /> -S srcaddr 要使用的源地址<br /> -c compartment 路由隔离舱标识符<br /> -p Ping Hyper-V 网络虚拟化提供程序地址<br /> -4 强制使用 IPv4<br /> -6 强制使用 IPv6</p>
<p><img alt="ping" height="216" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30025922.png" width="600" /></p>
<p>若要停止,请键入 Ctrl+C。</p>
<p>如若限制发送ping请求的次数</p>
<p>我们可以用 -c 选项来限制发送ping请求的次数:</p>
<pre>ping -c 5 192.168.124.62
</pre>
<p><img alt="ping_图2" height="183" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30025216.png" width="700" /></p>
<p class="maodian"></p><h3><strong>3、netstat</strong></h3>
<p>作用:Netstat 命令用于显示各种网络相关信息,如网络连接,,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。</p>
<p>常见参数<br />-a (all)显示所有选项,默认不显示LISTEN相关<br />-t (tcp)仅显示tcp相关选项<br />-u (udp)仅显示udp相关选项<br />-n 拒绝显示别名,能显示数字的全部转化成数字。<br />-l 仅列出有在 Listen (监听) 的服務状态</p>
<p>-p 显示建立相关链接的程序名<br />-r 显示路由信息,路由表<br />-e 显示扩展信息,例如uid等<br />-s 按各个协议进行统计<br />-c 每隔一个固定时间,执行该netstat命令。</p>
<p>执行netstat后,其输出结果为 :</p>
<p><img alt="netstat" height="457" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300264Q.png" width="900" /></p>
<p> 执行 netstat -a,1. 列出所有端口 (包括监听和未监听的),其输出结果为:</p>
<p><img alt="netstat_图2" height="270" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q30026302.png" width="900" /></p>
<p><strong> 执行netstat -at,列出所有 tcp 端口,其输出结果为:</strong></p>
<p><img alt="netstat_图3" height="140" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q300262a.png" width="900" /></p>
<p><strong>执行netstat -au,列出所有 udp 端口,其输出结果为:</strong></p>
<p><img alt="netstat_图4" height="222" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3002G17.png" width="900" /></p>
<p><strong>执行 netstat -l,列出只显示监听端口,其输出结果为:</strong></p>
<p><img alt="netstat_图5" height="270" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3002M51.png" width="900" /></p>
<p><strong> 执行netstat -s,列出所有端口的统计信息,其输出结果为:</strong></p>
<p><img alt="netstat_图6" height="575" src="https://zhuji.jb51.net/uploads/allimg/20251108/1-25110Q3002I47.png" width="512" /></p>
<p>......</p>
<p class="maodian"></p><h3>4、ssh 连接远程服务器</h3>
<p>通过非对称加密以及对称加密的方式(同 HTTPS 安全连接原理相似)连接到远端服务器。</p>
<p>ssh 用户@ip:port<br /> <br />ssh root@172.20.10.1:22</p>
<p># 端口号可以省略不写,默认是22端口<br /># 输入连接密码后就可以操作远端服务器了</p>
<p><strong>配置 ssh:</strong>config 文件可以配置 ssh ,方便批量管理多个 ssh 连接。配置文件分为以下几种:</p>
<p>全局 ssh 服务端的配置:/etc/ssh/sshd_config ;<br />全局 ssh 客户端的配置:/etc/ssh/ssh_config(很少修改);<br />当前用户 ssh 客户端的配置:~/.ssh/config 。</p>
<p>配置当前用户的 config :</p>
<div class="dxycode"><pre class="brush:plain;"># 创建config
vim ~/.ssh/config
# 填写一下内容
Host lion # 别名
HostName 172.x.x.x # ip 地址
Port 22 # 端口
User root # 用户</pre></div>
<p>这样配置完成后,下次登录时,可以这样登录 ssh lion 会自动识别为 root 用户。</p>
<p class="maodian"></p><h2>七、重要目录说明</h2>
<ul><li><p><code>/home/username</code>:用户的家目录,存放个人文件和配置。</p></li><li><p><code>/etc</code>:系统全局配置文件存放地。</p></li><li><p><code>/var/log</code>:系统日志文件存放地。</p></li><li><p><code>/tmp</code>:临时文件目录。</p></li><li><p><code>/opt</code>:可选的应用软件包安装目录。</p></li></ul>
<p>这份指南涵盖了 Ubuntu 16.04 终端操作的绝大多数常用场景。对于任何命令,如果想了解更详细的用法,请务必使用 <code>man <命令名></code> 来查阅其官方手册。</p>
<p>以上就是3-Ubuntu 16.04 终端操作及常用命令综合的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁:
[1]