热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

8.linux重定向详解,标准输入输出,输入重定向,输出重定向

文章目录一.初识1.标准输入输出设备2.文件描述符3.重定向3.&(重点)二、输入重定向三、输出重定向1.描述符2.输出重定向的符号及作用总结一.初识


文章目录

  • 一.初识
    • 1.标准输入输出设备
    • 2. 文件描述符
    • 3. 重定向
    • 3. &(重点)
  • 二、输入重定向
  • 三、输出重定向
    • 1. 描述符
    • 2. 输出重定向的符号及作用
  • 总结




一.初识


1.标准输入输出设备

Linux 中标准的输入设备默认指的是键盘,标准的输出设备默认指的是显示器。


2. 文件描述符

数据流又可分为 标准输入流 、标准输出流和标准标准错误流。 这三种流向对应着相关的文件描述符, 默认描述符范围是:0-2。
在这里插入图片描述

[root@zaishu ~]# ls -l //这个就是标准输出,如果需要重定向 则指定其描述符为1
total 4620
-rw-r--r-- 1 root root 0 Oct 22 11:25 1
-rw-r--r-- 1 root root 0 Oct 22 11:21 a
-rw-r--r-- 1 root root 0 Oct 22 11:14 aa
-rw-r--r-- 1 root root 0 Oct 22 11:14 aaa
-rw-r--r-- 1 root root 0 Oct 22 11:14 aabbc

[root@zaishu ~]# ls-l // 这个输出结果就是标准错误 如果需要重定向 则指定其描述符为2
-bash: ls-l: command not found

3. 重定向

输入、输出重定向可以理解为:

输入重定向:指的是重新指定设备来代替键盘作为新的输入设备;
输出重定向:指的是重新指定设备来代替显示器作为新的输出设备。

在这里插入图片描述

标准数据流重定向

[root@zaishu ~]# ls -l > x //不输出到屏幕,输出到文本,这就是输出重定向;另外当指定没有描述符的时候,默认就是标准数据流。
root@zaishu ~]# ls -l 1> y (这两条命令的效果一样 1就是代表标准输出流)

错误数据流重定向

[root@zaishu ~]# ls-l > x //可看到错误数据流,当不指定描述符的时候,还是会输出到屏幕。
-bash: ls-l: command not found

[root@zaishu ~]# ls-l 2>x //如果对于错误数据流的重定向,需要指定描述符 2
[root@zaishu ~]# cat x
-bash: ls-l: command not found

3. &(重点)

& 是一个描述符,如果在1和2前面不加&,这个时候1和2表示的是普通文件。加了&表示的是重定向到对应的设备。 举例:

1>&2 意思是把标准输出重定向到标准错误.
如果是 1>2 表示的是将标准输出重定向到2这个文件。

2>&1 意思是把标准错误输出重定向到标准输出。
如果是 2>1 表示的是将标准错误重定向到1这个文件

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

二、输入重定向

在这里插入图片描述
例1. 文本作为输入

[root@zaishu ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
oracle:x:1002:1002::/home/oracle:/bin/bash

[root@zaishu ~]# cat
root:x:0:0:root:/root:/bin/bash
...
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
oracle:x:1002:1002::/home/oracle:/bin/bash

例2. 分界符

[root@zaishu ~]# cat <<0 //遇到0,表示跳出
> a
> b
> c
> 0
a
b
c

例3. 输入 输出一起用
通过重定向 将/etc/passwd 作为输入设备,并输出重定向到 shu.txt,最终实现将 /etc/passwd 文件中内容复制到 shu.txt 。

[root@prometheus ~]# cat shu.txt
[root@prometheus ~]# cat shu.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
prometheus:x:998:996::/home/prometheus:/bin/bash
node_exporter:x:997:995::/home/node_exporter:/bin/bash

三、输出重定向


1. 描述符

在这里插入图片描述
输出重定向可以细分为标准输出重定向和错误输出重定。


2. 输出重定向的符号及作用

在这里插入图片描述
例1. 标准输出重定向到文本

[root@prometheus ~]# ls -lt > test
[root@prometheus ~]# ls -lt 1> test

例2. 标准错误重定向到文本

[root@prometheus ~]# ls-lt 2>err

例3. 标准错误重定向到标准输出(屏幕)

[root@prometheus ~]# ls-lt 2>&1
-bash: ls-lt: command not found



总结


以上就是这一小节的内容,重定向一定要分清 & 0 1 2的含义和作用。
推荐阅读
  • 本文探讨了Linux/Unix文件系统中两种主要的权限控制方式:传统的UGO(User/Group/Others)和更为精细的ACL(Access Control List)。ACL提供了一种更灵活的权限管理方法,适用于需要对文件系统进行细粒度控制的场景。 ... [详细]
  • 在尝试使用Ubuntu 10.04进行Android开发时,遇到了系统无法识别HTC G1设备的情况。本文将详细介绍如何通过配置系统和安装必要的驱动来解决这一问题。 ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • 一键LNMP配置SSL证书实现全站HTTPS访问
    许多网站搭建者选择了便捷的一键LNMP安装包,但在网站部署完成后,配置SSL证书以支持HTTPS访问是一个不可或缺的步骤。本文将详细介绍如何通过简单的步骤完成这一过程。 ... [详细]
  • 微服务自动化.dockercompose
    目录一、docker-compose二、docker-compose安装与配置1、修改docker.service2、下载文件3、将刚才下载的docker-compose文 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 在Linux系统中使用EncFS实现文件夹加密
    为了保护个人隐私或敏感数据不被未经授权的访问,可以通过加密技术来增强安全性。本文介绍如何在Linux系统上使用EncFS工具创建和管理加密文件夹,以确保即使在系统登录状态下,特定文件夹中的数据也保持加密状态。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 利用Python在DragonBoard 410c上解析GPS数据获取位置信息
    本文介绍了如何在DragonBoard 410c开发板上使用Python脚本来解析GPS报文,从而获取精确的位置信息。DragonBoard 410c集成了GPS、Wi-Fi和高性能GPU,非常适合用于各种物联网项目。 ... [详细]
  • 深入解析 RuntimeClass 及多容器运行时应用
    本文旨在探讨RuntimeClass的起源、功能及其在多容器运行时环境中的实际应用。通过详细的案例分析,帮助读者理解如何在Kubernetes集群中高效管理不同类型的容器运行时。 ... [详细]
  • 本文详细介绍了如何在Vue项目中集成和配置XGPlayer视频插件,包括安装步骤、基本配置以及常见问题的解决方法。 ... [详细]
  • 利用Git GUI将本地项目同步至GitHub的方法
    GitHub作为开发者不可或缺的工具,不仅提供了丰富的开源项目资源,还极大地便利了个人项目的管理和版本控制。本文将详细介绍如何使用Git GUI工具将本地开发的项目上传至GitHub。 ... [详细]
  • Node.js 断点调试指南
    本文详细介绍了利用Google Chrome DevTools和Visual Studio Code两种工具进行Node.js应用的断点调试技巧。 ... [详细]
author-avatar
_自己疼__374
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有