Linux----------------Shell重定向输入输出

2023-11-04 23:52

本文主要是介绍Linux----------------Shell重定向输入输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(一)

标准输入

以键盘读取用户输入的数据,然后再把数据拿到 Shel程序中使用。
 

标准输出

Shell 程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看


输入输出重定向


        输入方向就是数据从哪里流向程序数据默认从键盘流向程序,如果改变了它的方向,
数据就从其它地方流入,这就是输入重定向。

        输出方向就是数据从程序流向哪里数据默认从程序流向显示器,如果改变了它的方向,
数据就流向其它地方,这就是输出重定向。


(二)文件描述符


        linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。在linuxshell 执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述不容易记忆,shell同时给出相应的文件名。

文件名文件描述符功能
标准输入stdin0获取键盘的输入数据
标准输出stdout1将正确数据输出到显示器上
标准错误2将错误信息输出到显示器上

        默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。以下是几种情况:

如果希望 stderr 重定向到 file,可以这样写:

$ command 2>file

如果希望 stderr 追加到 file 文件末尾,可以这样写:

$ command 2>>file

2 表示标准错误文件(stderr)。

如果希望将 stdout 和 stderr 合并后重定向到 file,可以这样写:

$ command > file 2>&1或者$ command >> file 2>&1

如果希望对 stdin 和 stdout 都重定向,可以这样写:

$ command < file1 >file2

command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

()重定向命令列表

输出重定向

        当你在Linux或Unix-like操作系统中执行命令时,可以使用输出重定向来控制命令的输出。输出重定向通过使用特定符号来实现,以下是一些常见的语法:

  `>` 符号:

将命令的输出覆盖到指定的文件。如果文件已经存在,它将被新内容替代。

 `>>` 符号:

将命令的输出追加到指定文件的末尾,而不会删除已有的内容。

   示例:
 

   例如,执行以下命令会将指定的文本追加到"users"文件的末尾,而不会删除已有的内容:
   $ echo "好人一生平安" >> users
 

        这些输出重定向功能对于日志记录、数据备份和生成报告等任务非常有用。你可以使用这些符号来控制命令的输出,以满足不同的需求。

输入重定向

wc命令可以用来对文本进行统计,包括单词个数、行数、字节数。

wc语法格式:wc   [选项] [文件名]

常见选项有:

(四)补充

Here Document

        Here Document是Shell脚本中的一种特殊重定向方式,用于将一段文本作为输入传递给一个命令或脚本。这种重定向方式允许你在Shell脚本或交互式环境中嵌入多行文本,并将这些文本作为命令的输入。

Here Document的基本形式如下:

command << delimiterdocument
delimiter
  • command 是接收输入的命令。
  • delimiter 是自定义的分界符,它标志了文本输入的开始和结束。
  • document 包含了你要传递给命令的文本。

注意事项:

  • 结尾的delimiter必须以单独的一行顶格写,前后不能有任何字符,包括空格和制表符。
  • 开始的delimiter前后的空格会被忽略。
  • 这个功能非常适用于需要在Shell脚本中生成动态文本或配置文件的情况。

可以使用Here Document来传递多行文本,而不必在命令行中手动输入多行文本。wc -l命令用来计算Here Document中的行数。这个功能在脚本编程中非常有用,因为它允许你轻松地嵌入文本内容,而无需手动创建临时文件。

        /dev/null文件。/dev/null是一个特殊的文件,它会吞掉所有写入它的内容,这对于禁止输出或将输出丢弃非常有用。通过将命令的输出重定向到/dev/null,你可以将命令的输出完全丢弃,使其不会在屏幕上显示或占用系统资源。如果将标准输出和标准错误都重定向到/dev/null,可以使用command > /dev/null 2>&1。这里的2>&1表示将标准错误(文件描述符2)重定向到标准输出,然后再将标准输出重定向到/dev/null。这样,命令的所有输出都会被丢弃。

这篇关于Linux----------------Shell重定向输入输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346043

相关文章

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删