首页 > 系统相关 >linux shell "<" 、 "<<" 、 ">" 、">>" 的含义

linux shell "<" 、 "<<" 、 ">" 、">>" 的含义

时间:2023-11-20 15:45:02浏览次数:49  
标签:输出 shell 重定向 文件 含义 cat 标准 file linux

linux 关于标准输入输出的规定

Linux规定一下文件描述符

文件描述符 文件 对应设备
0 标准输入 keyboard,mouse
1 标准输出 屏幕监视器
2 错误输出 屏幕监视器

image

输出重定向>,>>

>和>>都是输出重定向符号

  • 其中>是重写
  • >>是追加到文件
    image

进阶

  1. Shell中 1>&2 2>&1 &> 重定向的含义
  • 通常1>简写成>指的是标准输出
    实例:

    # ll test01.txt test02.txt 1>file.out 2>file.err
    

    命令执行,没有任何返回值,原因是,返回值都重定向到相应的文件中了,而不再在前端显示。
    在这个命令中,1代表标准输出(stdout),2代表标准错误(stderr)。当你使用命令ll test01.txt test02.txt 1>file.out 2>file.err时,标准输出和标准错误会被分别重定向到file.outfile.err

    注意:这两个重定向操作是同时进行的,并没有先后顺序。因此,标准输出和标准错误会分别被重定向到指定的文件,互不影响。

  1. 高级用法,难理解
    基于上述认识,我们才能理解 "1>&2" 和 "2>&1".。
    1>&2  正确返回值传递给2输出通道, &2表示2输出通道 ,如果此处错写成 1>2, 就表示把1输出重定向到文件2中了。
    2>&1 错误返回值传递给1输出通道,&1表示1输出通道
    总结就是&表示通道,不加&后面直接写到文件
    实例:
"2>&1"和"2>1"在shell中有着不同的含义:

- "2>&1"表示将标准错误(stderr)重定向到标准输出(stdout)。这意味着标准错误和标准输出都会发送到同一个地方,通常是终端或重定向的位置。

- "2>1"表示将标准错误重定向到一个名为"1"的文件。这意味着标准错误会被写入一个名为"1"的文件中,而不是作为标准输出的一部分。

因此,这两个表达式的含义是不同的,你需要根据具体的需求来选择使用哪一个。

输入重定向

输出重定向的符号是<,注意输出重定向只能从文件中获取
语法1: # cat < /etc/passwd 而输入重定向,cat < /etc/passwd ,它是将passwd文件指定为输入设备,并将内容显示到控制台。

语法2.# cat << delimiter(交互式)

cat < <delimiter (这个字符串字符是任意的,没有任何含义)

它的作用是将这个 delimiter 字符之前的内容(document) 作为输入传递给 cat

碰到delimiter将自动结束输入,并将输入的内容显示出来;
上手测试:
image

参考链接

1>&2,2>&1用法

标签:输出,shell,重定向,文件,含义,cat,标准,file,linux
From: https://www.cnblogs.com/codedingzhen/p/17843925.html

相关文章

  • 一 Linux 学习
    远程登录一台linux后,怎么查看是什么发行版。一般来说 Linux著名系统分两大类  Redhat系列:Redhat centosfedora  Debian系列:DebianUbuntu   1.有yum命令的是Redhat系列,有apt-get是Debian系列  2.使用lsb_release-a 命令。        可......
  • Linux vs Windows
    特点比较费用·windows:收费且很贵linux:免费或少许收费软件与支持windows:数量和质量都有优势,不过大部分为收费软件;由微软官方提供支持和服务linux:开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;由全球所有linux开发者和自由软件社区提供支......
  • 通过PowerShellPlus示例脚本学习PowerShell-通过WIndows集成验证登录SQLServer
    ##=====================================================================##Title:Connect-MSSQL-IPWindowsAuth##Description:ConnecttoSQLServerusingIPaddress,instanceand##Windowsauthentication##Author:Idera......
  • linux时间比较大小----亲测OK
    摘自:https://blog.csdn.net/u010429831/article/details/122722187 (Linux_C环境编程:时间日期函数总结)//TimeUtil.h#ifndef__TIME_UTIL_H__#define__TIME_UTIL_H__#ifdef__cplusplus//告诉编译器,这部分代码按C语言的格式进行编译,而不是C++的extern"C"{......
  • GPU服务器的含义
    GPU服务器是配备了图形处理单元(GPU)的服务器,用于加速处理图形、计算密集型任务和并行计算工作负载。传统的中央处理单元(CPU)主要用于通用目的的计算,而GPU则专注于处理与图形相关的计算任务。近年来,由于GPU在并行计算方面的卓越性能,GPU服务器在多个领域得到广泛应用。以下是GPU服务器......
  • Linux poweroff 命令
    poweroff命令命令用于关闭计算器并切断电源。使用权限:系统管理者。语法poweroff[-n][-w][-d][-f][-i][-h]参数说明:-n:在关机前不做将记忆体资料写回硬盘的动作-w:并不会真的关机,只是把记录写到/var/log/wtmp档案里-d:不把记录写到/var/log/wtmp文件里-i......
  • Linux reboot命令
    Linuxreboot命令用于用来重新启动计算机。若系统的runlevel为0或6,则重新开机,否则以shutdown指令(加上-r参数)来取代语法reboot[-n][-w][-d][-f][-i]参数:-n:在重开机前不做将记忆体资料写回硬盘的动作-w:并不会真的重开机,只是把记录写到/var/log/wtmp档......
  • shell运维脚本优化
    我们在平常工作中,你是否感觉shell脚本只是命令的堆砌;很多时候只是为了实现功能而没有好的组织结构;自己的脚本都不想再看一遍;此让你的shell脚本有python一样的美感并且极易维护,真的是shell脚本写到停不下来。现以k8s发版脚本为例,看一下脚本的优化过程:#!/bin/bashset-euns=$......
  • Linux常用命令记录
    Linux常用命令记录文件与目录管理命令Linux的文件目录是树状结构,最顶级的目录为根目录/,其他目录是通过挂载将其添加到文件树上,通过解除挂载将其移除。首先先了解什么是绝对路径和相对路径绝对路径:从根目录开始的完整路径描述,通常以/开头,从根目录root一直到目标目录相对......
  • [oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux
    先跑起来......