当前位置: 首页 > article >正文

Linux命令——4.重定向、管道

文章目录

  • 一、重定向
      • 1)重定向符号
      • 2)重定向分类
        • (1)输出重定向
        • (2)输入重定向
      • 3)Here Document
      • 4)/dev/null
      • 6)重定向使用
        • (1)标准输出
        • (2)标准错误
        • (3)标准输出和错误
        • (4)标准输入
        • (5)特殊用法
  • 二、`|` 管道

一、重定向

在 Linux 中,重定向是将命令的输入或输出重定向到文件或其他命令的操作。重定向通常用于处理命令行程序的标准输入(stdin)、标准输出(stdout)和标准错误(stderr)流。

1)重定向符号

  1. >:输出重定向,将标准输出写入文件。文件不存在时会创建文件,存在时会覆盖文件。
  2. >>:追加输出重定向,将标准输出追加到文件的末尾。文件不存在时会创建文件。
  3. <:输入重定向,从文件读取标准输入。
  4. 2>:标准错误重定向,将标准错误输出写入文件。
  5. 2>>:追加标准错误重定向,将标准错误输出追加到文件的末尾。
  6. &>>&:将标准输出和标准错误一起重定向到同一个文件(覆盖)。
  7. &>>:将标准输出和标准错误一起追加到同一个文件。

2)重定向分类

重定向是指将命令的输入或输出从默认位置(通常是终端)重定向到其他位置(如文件或设备)。重定向分为输入重定向和输出重定向两种。以下是详细解释:

(1)输出重定向

输出重定向用于将命令的输出重定向到文件或其他设备,而不是显示在终端上。

命令描述
command > file将标准输出重定向到文件,覆盖文件内容
command >> file将标准输出追加到文件末尾
command 2> file将标准错误重定向到文件,覆盖文件内容
command 2>> file将标准错误追加到文件末尾
command > file 2>&1将标准输出和标准错误一起重定向到文件,覆盖文件内容
command >> file 2>&1将标准输出和标准错误一起追加到文件末尾
> 覆盖模式的重定向
[ac@linuxac django]$ ls -lh > ll.txt
[ac@linuxac django]$ ls
ll.txt  test.txt
[ac@linuxac django]$ cat ll.txt 
总用量 4.0K
-rw-rw-r--. 1 ac ac  0 6月  19 21:29 ll.txt
-rwxrw-r--. 1 ac ac 95 6月  19 21:22 test.txt
>> 追加模式的重定向
[ac@linuxac django]$ ls -lh >> ll.txt
(2)输入重定向

输入重定向用于将命令的输入从文件或其他设备读取,而不是从终端读取。

命令描述
command < file从文件读取输入
command1 < infile > outfileinfile 读取输入,并将输出写入 outfile

3)Here Document

Here Document 是一种特殊的重定向方式,用于将多行输入传递给命令。

command << delimiter
document
delimiter
cat << EOF
Hello, World!
EOF

4)/dev/null

/dev/null 是一个特殊的设备文件,代表一个空的黑洞,任何写入其中的内容都会被丢弃。常用于丢弃输出或错误信息,可以用来屏蔽命令的输出。

command > /dev/null 2>&1

这行命令将 command 的所有输出(包括错误)都丢弃。

以下是关于 Linux 重定向的完整整理,包括标准输出、标准错误、标准输入以及管道的使用示例:

6)重定向使用

(1)标准输出
  1. 将标准输出重定向到文件

    ls > file.txt
    

    这个命令会将 ls 命令的输出写入 file.txt 文件。若文件存在,将覆盖其内容。

  2. 追加标准输出到文件

    echo "Another line" >> output.txt
    

    这个命令会将 “Another line” 追加到 output.txt 文件的末尾,不会覆盖已有内容。

(2)标准错误
  1. 将标准错误重定向到文件

    ls non_existing_file 2> error.log
    

    这个命令会将尝试列出不存在文件时的错误信息写入 error.log 文件。

  2. 追加标准错误到文件

    ls non_existing_file 2>> error.log
    

    这个命令会将错误信息追加到 error.log 文件的末尾。

(3)标准输出和错误
  1. 将标准输出和标准错误一起重定向到文件

    ls > output.log 2>&1
    

    这个命令将 ls 命令的标准输出和标准错误一起写入 output.log 文件。

  2. 使用&>符号同时重定向

    command &> output.log
    

    这个命令等同于上一个,将标准输出和标准错误一起写入 output.log 文件。

(4)标准输入
  1. 将文件作为命令的输入
    wc -l < input.txt
    
    这个命令将 input.txt 的内容作为 wc -l 命令的输入,用于统计文件的行数。
(5)特殊用法
  1. 将标准输出或错误重定向到空设备

    command > /dev/null 2>&1
    

    这个命令会将 command 的所有输出和错误信息丢弃。

  2. 创建一个空文件或清空文件

    > file.txt
    

    这个命令会清空 file.txt 文件的内容,如果文件不存在,则会创建一个空文件。

这些重定向操作是 Linux 系统管理和脚本编写中的基本工具,能够灵活地控制命令的输入输出。

二、| 管道

使用管道将一个命令的输出作为另一个命令的输入

ls -l | grep "txt"

这个命令会列出当前目录下所有文件,然后过滤出包含 “txt” 的行。

管道需要两个指令 , 第二个指令需要第一个指令的结果来进行操作

[ac@linuxac etc]$ ll -a | more
more 指令是给前面的ll -a 指令的结果进行分屏显示结果

[ac@linuxac etc]$ ll -a | grep "xml"
drwxr-xr-x.   2 root root       21 6月  15 21:01 xml

[ac@linuxac etc]$ ll -a | grep "r" | more

[ac@linuxac etc]$ ll -a | grep "r" | wc
    289    2631   17409

http://www.kler.cn/a/463293.html

相关文章:

  • 自组织映射 (Self-Organizing Map, SOM) 算法详解与PyTorch实现
  • 初学STM32 ---高级定时器互补输出带死区控制
  • REMARK-LLM:用于生成大型语言模型的稳健且高效的水印框架
  • 【从零开始入门unity游戏开发之——unity篇05】unity6基础入门——运行游戏按钮、Game游戏窗口和Project项目窗口介绍
  • Vue3 子组件向父组件传递消息(Events)
  • 【51单片机零基础-chapter6:LCD1602调试工具】
  • rust学习-初识rust
  • 基于OAuth2.0和JWT规范实现安全易用的用户认证
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • WireShark4.4.2浏览器网络调试指南:TCP传输包分析(七)
  • TCP/IP协议簇常见协议信息
  • 打造电竞比分网:用Java和Vue实现赛事实时数据与直播功能
  • 【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素
  • 【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解
  • 攻防靶场(29):目录权限和文件权限 ICMP
  • cursor 配置 deepseek 后,无法使用 cursor 的 Composer问题
  • datalist的作用?怎么用的?
  • C之(14)gcov覆盖率
  • SpringBoot使用Nacos进行application.yml配置管理
  • Markdown如何导出Html文件Markdown文件
  • H3C无线产品案例汇编
  • RC充电电路仿真与分析
  • 关于 PPPOE技术的详细解释
  • LLaMA:开放和高效的基础语言模型集
  • 主流在售AI电子宠物产品
  • STM32裸机开发转FreeRTOS教程