社区编辑申请
注册/登录
Linux Tee 命令真实示例详细指南
系统 Linux
这篇文章将为您提供有关tee命令的详细指南,并向您展示tee命令的一些真实示例。

使用 Linux 终端时,您可能需要执行命令将一些数据写入文件并进一步处理其输出。命令是一个可以帮助您实现这一目标的强大实用程序??tee??。这篇文章将为您提供有关tee命令的详细指南,并向您展示tee命令的一些真实示例。

什么是 Tee 命令?

这个??tee??命令是一个 Linux 命令,它将标准输入复制到标准输出(通常是您的屏幕)和指定文件。这对于将命令连接在一起非常有用,并且当您想要将输出重定向到单个或多个文件并仍然进一步处理输出时非常方便。该??tee??命令得名于水管工在连接多根水管时使用的 T 型分流器。如果您不熟悉 Linux 终端,这听起来可能有点复杂。让我们尝试使用图形演示。

假设我们有一个名为??linuxmi.txt??. 我们要对该文本文件进行排序,将输出写入文件,并在终端上显示项目总数。我们使用下面的两个命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sort linuxmi.txt > 300.txt
linuxmi@linuxmi:~/www.linuxmi.com$ wc -l 300.txt
8 300.txt

但是,我们可以使用下面的 tee 命令来简化它。


linuxmi@linuxmi:~/www.linuxmi.com$ sort linuxmi.txt | tee 300.txt | wc -l

安装 Tee 命令

??tee??命令是随 GNU Coreutils 安装的工具之一。因此,它预装在任何 Linux 发行版上,您无需手动安装。但是,您可以通过运行以下命令来确认该实用程序是否可用。

linuxmi@linuxmi:~/www.linuxmi.com$ which tee
/usr/bin/tee

要检查系统上运行的tee命令的版本,请运行以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ tee --version

Tee 命令的基本语法

tee 命令的基本语法如下:tee [选项]... [文件]...这里的 [ 选项 ] 可能包括:

  • ??-a??:防止 tee 命令覆盖现有文件,而是追加数据。
  • ??--version??:此选项显示当前安装的 tee 命令版本。
  • ??--help??: 此选项列出了 tee 命令可用的所有选项

tee 命令应用程序

现在您已经对 Tee 命令有了很好的理解,让我们看一些实际示例,您可以在这些示例中应用这个强大的命令行实用程序。

1. 将 Ping 命令的输出写入文件

您一定遇到过 ping 命令,尤其是在诊断网络连接时。Ping 用于测试网络上主机的可用性。例如,如果你正在配置一个服务器,你可以通过执行类似的命令来检查它是否在线ping [服务器地址]例如,

linuxmi@linuxmi:~/www.linuxmi.com$ ping 192.168.174.170

现在,如果我们想将此输出写入文件同时仍显示来自服务器的响应,我们可以执行以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ ping yahoo.com | tee pingLinuxMi.txt

下图显示了写入文件的 ping 输出以及??stdout??.

2. 使用 Tee 命令将数据附加到文件中

默认情况下,当您执行??tee??命令将输出写入现有文件时,它会自动覆盖所有现有数据。例如,??tee??如果我们运行具有相同文件名的新 ping 命令来写入输出,将自动覆盖现有数据。我们将使用??-a??如下语法所示的选项来防止这种情况。

ping -a [文件名]


linuxmi@linuxmi:~/www.linuxmi.com$ ping 192.168.174.170 | tee -a pingLinuxMi.txt

3. 使用 Tee 写入多个文件

如果您使用其他 Linux 命令来操作多个文件,这将非常容易。要使用??tee??命令写入多个文件,我们将使用以下语法。

[你的命令] | tee file1 file2 file3 file4

4. 使用 Tee 将命令输出重定向到另一个命令

除了将输出写入文件之外,还可以使用??tee??命令将一个命令的输出重定向到另一个命令。让我们使用下面的示例。我们想使用??ls??命令列出主目录中的所有文件,然后使用 ??wc -l?? 命令计算存在的文件总数。由于 ??tee?? 我们可以使用单行命令,而不是编写两个不同的命令,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ ls ~ | tee linuxmi.txt | wc -l

5. 执行 Tee 时忽略中断

为了停止终端中运行的任何命令,我们总是使用??Ctrl + C??键盘组合来中断进程。如果您正在使用 Tee 运行一项关键任务,则可以使用??-i??选项防止键盘中断 ( ??SIGINT??)。使用下面的语法。

[command] | tee -i [file-name]

6.隐藏tee输出

有时您执行的命令会在终端中打印出许多不必要的输出。幸运的是,您可以通过将输出重定向到??/dev/null??来隐藏输出。使用下面的语法。

[command] | tee output_file_name >/dev/null

在下图中,您可以看到我们执行了 ping 命令,但终端中没有打印输出。但是,它已全部写入指定的输出文件。

7. 将 Tee 与 sudo 一起使用

在某些情况下,您希望将数据写入root用户拥有的文件。我们称这个文件为??linuxmi.conf??。如果我们执行下面的命令,我们会得到错误。

linuxmi@linuxmi:~/www.linuxmi.com$ echo "300" > linuxmi.conf
bash: linuxmi.conf: 权限不够

为了解决这个问题,我们可以使用 Tee 命令添加到??sudo??我们的命令中,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ echo "300" > linuxmi.conf

结论

至此,我相信您现在已经很好地理解了 tee 命令以及如何使用它来执行您的日常任务。通过在你的系统上练习更多的例子,你应该很高兴。如果您有任何反馈或问题,请随时在评论中告诉我们,我们会尽快回复您。

责任编辑:庞桂玉 来源: 太阳城会员登入
相关推荐

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-04-14 10:10:59

Nginx开源Linux

2022-04-15 14:31:02

鸿蒙操作系统

2022-04-06 13:55:22

DockerLinux

2022-04-25 08:45:38

Linux 发行版旧计算机PC

2022-03-21 09:52:44

LinuxSystemd日志

2022-03-25 09:39:50

LinuxLinux top

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-04-14 10:22:30

NginxLinux

2022-04-24 16:00:15

LinuxLinux命令ls命令

2022-03-30 09:32:32

BashtestLinux

2022-05-14 08:05:18

Linux内存管理

2022-04-28 09:46:20

Nginx文件Linux

2022-04-12 11:20:11

C 语言Linux编程

2022-05-09 07:08:14

LinuxBashShell

2022-04-20 10:43:24

Linux命令

2022-04-26 06:43:12

文档TCPLinux

2022-04-06 06:35:58

进程命令CPU

2022-04-20 10:56:06

JavaJVM参数

2022-04-20 11:03:28

Linux内存管理

同话题下的热门内容

NVIDIA 终于发布开源 Linux GPU 内核模块为何 NVidia 的开源驱动程序对 Linux 如此重要?Fedora 36 通过桌面大修吸引开发者,但它能取悦 Linux 之父吗?万字多图,搞懂 Nginx 高性能网络工作原理!80%的 Linux 使用者都不懂的内存问题Ubuntu 22.04 中安装最新 Wine 以运行 Windows 应用程序GPIO到底该如何控制43个Bash编程最容易犯的错误大全

编辑推荐

Linux系统下安装MySQL的步骤详解CentOS与Ubuntu有什么不同?Linux下如何使用minicom USB串口为什么你可能想要略过Ubuntu 17.04?Linux中7个判断文件系统类型的方法
我收藏的内容
点赞
收藏

51CTO技术栈公众号

网站地图 申博游戏注册 申博真人游戏 申博太阳城 太阳城代理
澳门太阳城官方网址 太阳城游戏介绍 申博游戏官网登入 申博138
申博娱乐官网 菲律宾太城申博 百家乐 申博娱乐手机版
申博娱乐网 太阳城亚洲开户 盛618官网 申博游戏登入不了
太阳城app下载 申博娱乐登入 太阳城亚洲 盛618网址