在Linux/Ubuntu/Debian中使用 tee 命令将输出显示在终端并写入文件中

好嘞,给你捋一捋在Linux系统(比如Ubuntu、Debian这些)上怎么用tee命令,把命令的输出既能看在屏幕上,又能存到文件里。
这玩意儿用起来特方便,我给你举几个栗子:
最基础的用法:
想看命令的输出,又想把它保存一下?用tee就行。
基本思路就是:你的命令 加一个竖线 |,再接上 tee,然后跟上你想保存的文件名。

比如,想看看当前目录下有什么文件,同时把列表存到叫files.txt的文件里:
bash ls | tee files.txt
执行这个命令,你既能看到终端上打印出来的文件列表,列表内容也会被写入到files.txt里。

进阶用法:链式处理,备份并修改
有时候,你可能想备份一个文件,然后对备份进行点修改,再干点啥。
tee也能帮忙。
你可以把tee放到命令链中间。

比如,备份一下crontab里的定时任务配置到crontab_backup.txt,然后用sed把里面所有的oldtext换成newtext,最后更新到crontab里。
操作如下:
bash crontab -l | tee crontab_backup.txt | sed 's/oldtext/newtext/' | crontab -
这条命令咋回事呢?crontab -l列出当前配置,|交给tee,tee把内容打印到终端,并存入crontab_backup.txt。
|再交给sed,sed干完替换活儿,|最后交给crontab -l,把修改后的配置写回。

一石多鸟:同时写入多个文件
想用一个命令的输出,同时保存到好几个地方?tee也支持,直接把多个文件名用空格隔开就行。

比如,还是用ls命令,想把输出同时保存到list1 .txt、list2 .txt和list3 .txt这三个文件里:
bash ls | tee list1 .txt list2 .txt list3 .txt
这样,ls的输出就会打印到终端,并且分别写入到这三个文件中。

“追加”模式:不覆盖,往文件末尾加内容
如果你不想用tee直接覆盖文件里的内容,只想把新的输出加到文件末尾,可以在tee后面加个-a(就是--append的简写)。

比如,想把当前的ls输出加到output.log文件的最后,而不是从头开始写:
bash ls | tee -a output.log
这样,output.log里之前的内容会保留,新的ls输出会被添加到文件末尾,同时也在终端上显示。

总结一下:
所以你看,tee这命令确实挺实用的。
在Linux系统里,用起来也顺手,帮你轻松搞定命令输出既要看又要存的需求,或者进行更复杂的命令链处理。
掌握了这些用法,以后操作起来就方便多啦!

在linux命令行下如何将指定的几行内容写入到一个文件中?

在Linux系统中,我们可以借助sed这个强大的命令来实现向文件中追加内容的功能。
举个例子,假设我们想要把/etc/test1 文件中的第1 行到第1 0行的内容追加到另一个文件test2 中,我们可以使用如下命令:
bash sed -n '1 ,1 0p' /etc/test1 >> test2
这个命令会将/etc/test1 文件中指定行的内容追加到test2 文件中。

关于sed命令的格式,通常是这样的:
bash sed [选项] '命令' 文本
这里有一些常用的选项,它们能帮助我们对文本进行更精细的操作:

-n:这个选项会让sed进入安静模式,也就是说,它不会默认输出处理过的文本,而是需要结合其他命令(比如这里的p)来决定输出什么。

-e:使用这个选项,我们可以直接在命令行上对sed进行动作编辑,而不是通过脚本文件。

-f:如果你有一系列的sed命令需要执行,可以把它们写在一个文件中,然后通过-f选项让sed读取这个文件来执行命令。

-r:这个选项允许sed命令中使用扩展的正则表达式,提供更强大的文本匹配能力。

-i:当你想要直接修改原文件而不是仅仅输出结果到屏幕时,可以使用这个选项。
这样,sed会直接在读取的文件上做出更改。

以上就是关于sed命令的一些基本用法和选项说明,希望对你有所帮助。