在终端窗口中运行命令时,命令的输出通常会打印到终端或屏幕上,因此可以立即读取。如果要保存命令,也可以将其输出打印到文件中。
如果要诊断问题,将命令的输出保存到文件中会很有帮助。要获得技术支持的帮助,您可能需要在计算机上运行某些命令,并将结果发送给支持团队。在命令行上使用输出重定向很容易。
今天我们将介绍如何在Windows、Mac和Linux上将命令的输出发送到bashshell中的文本文件。
注意:我们将在我们的示例中使用Mac终端,但是它在Linux上的bash shell和windows10中的新bash shell中的工作方式相同。
有两个操作符用于将命令的输出重定向到文件而不是屏幕。
>;符号将创建一个新文件(如果不存在),或覆盖该文件(如果已存在)。如果文件不存在,>;>;也会创建一个新文件,但如果文件已经存在,则会将文本附加到文件末尾,而不是覆盖该文件。
要将命令的输出重定向到文件,请键入命令,指定>;或>;>;运算符,然后提供要将输出重定向到的文件的路径。例如,ls命令列出当前目录中的文件和文件夹。运行以下命令时,文件和文件夹列表将写入ls_输出.txt终端输出文件夹中的文件。
将/path/to/file替换为要使用的文件的完整路径。
ls > /path/to/file
这是我们示例的命令。
ls > /Users/lorikaufman/TerminalOutput/ls_output.txt
要在终端窗口中查看文件的内容,请使用cat命令,如以下命令所示。同样,将/path/to/file替换为要查看的文件的完整路径。
cat /path/to/file
每次使用现有文件重定向输出时,>;运算符都会替换该文件的内容。如果要将多个命令的输出保存到单个文件中,请改用>;>;运算符。这会将命令的输出附加到指定文件(如果该文件已存在)的末尾。如果文件不存在,它将创建一个新文件。
例如,我们将把系统信息附加到上面创建的文件的末尾。因此,在下一行中,uname-a是命令,后跟>;>;重定向操作符。然后是要将uname命令的输出附加到的文件的完整路径。
uname命令中的-a参数打印所有可用的系统信息。
uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt
要在终端窗口中查看包含附加信息的文件,请输入以下命令,并提供文件的完整路径。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
根据需要多次重复此过程,以将命令输出附加到文件末尾。
下面是另一个示例,将ls命令的输出发送为目录树,子目录递归列出(R参数),每行列出一个文件(1参数)。
ls -1R > /Users/lorikaufman/TerminalOutput/dir_tree.txt
然后,如前所述,我们使用cat命令在终端窗口中查看文件的内容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
>;和>;>;运算符不在屏幕上显示命令的输出。输出仅发送到文件。
如果要将输出发送到文件并在屏幕上看到它,请使用tee命令而不是>;和>;>;运算符。
要使用tee命令,必须使用pipe操作符(垂直条(|))将正在运行的命令(如ls)的输出通过管道传输到tee命令。例如,下面的命令接受ls命令的输出并将其导入tee命令。然后tee命令将输出发送到屏幕和使用文件的完整路径指定的文件。
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt
上面的命令将替换文件中的所有内容,或者在文件不存在时创建一个新的内容,就像>;操作符一样。我们使用以下cat命令在终端窗口中查看文件的内容。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
要使用tee命令将输出打印到屏幕并将其附加到文件末尾,请输入以下命令。在这里,我们使用uname-a命令将完整的系统信息添加到文件的末尾,就像我们对>;>;操作符所做的那样,但是也会将输出发送到屏幕。
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
下面的命令是将目录树递归打印到文件和屏幕的tee版本,每行一个文件,就像我们使用>;操作符所做的那样。
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
然后,我们再次使用cat命令查看文件的内容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
有很多方法可以将输出(包括错误)重定向到文件。您可以在高级Bash脚本指南的I/O重定向一章中了解用于重定向输出的不同操作符和命令。
Mac用户还应该为我们的Mac终端命令备忘表添加书签。
...上安装了DOSBox,上述所有说明都有效。唯一的区别在于你如何组织你的文件——但是一旦这个位置被挂载为C:\,你就可以开始了。 ...
... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...
... 我们不希望您在不知道命令行如何工作的情况下就开始使用它。本质上,它是一种指示计算机执行任务的方法,但没有鼠标。 ...
...的内容上,而不是和一组晦涩难懂的宏作斗争。 相关:如何使用Linux的man命令:隐藏的秘密和基础 潘多克前往救援 pandoc程序读取标记文件并生成大约40种不同标记语言和文档格式的新文件,包括手册页。它完全改变了手册页的...
Linux上有多种类型的环境变量。了解如何查看它们,为本地和远程登录创建它们,并使它们在重新启动后仍然有效。 环境变量的工作原理 启动终端窗口及其内部的shell时,会引用一组变量,以确保shell配置正确。这些变量还确...
...个文件。每一个都有它在远程服务器上的名字。 相关:如何在Linux上使用xargs命令 从ftp服务器下载文件 将curl与文件传输协议(FTP)服务器结合使用很容易,即使您必须使用用户名和密码进行身份验证。要使用curl传递用户名和...
使用Linux管道编排命令行实用程序如何协作。通过利用一组独立命令并将它们转化为一个专注的团队,简化复杂的流程并提高生产率。我们教你怎么做。 到处都是管道 管道是Linux和类Unix操作系统最有用的命令行特性之一。管道...
...出定向到/dev/null。 检测脚本中的重定向 我们讨论了命令如何检测是否有任何流被重定向,以及如何选择相应地改变其行为。我们能用自己的脚本来完成吗?是的,我们可以。这是一个很容易理解和运用的技巧。 在编辑器中键入...
想了解登录到您的Linux计算机的用户吗?好吧,一根手指也别提,举起你的小指。 要了解登录到Linux或Unix类计算机的用户的一些详细信息,许多系统管理员可能会使用finger命令。这一切都很好,但在许多系统上手指将缺席。默认...