首页 > 其他分享 >输入输出重定向

输入输出重定向

时间:2023-11-15 09:46:32浏览次数:40  
标签:输出 sbin 重定向 输入输出 标准 ls root

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 < /etc/passwd //将passwd内容输给cat,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 < /etc/passwd > 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

标签:输出,sbin,重定向,输入输出,标准,ls,root
From: https://www.cnblogs.com/LYayan/p/17833152.html

相关文章

  • 浮点类型(double与float及其它们的输入输出)
    <1>浮点类型(1)两种类型double字长64位(8个字节),有效数字15,范围大概为2.2*10^-308~1.79*10^308,0,nan;float字长32位(4个字节),有效数字7,范围大概为1.2*10^-38~3.4*10^38,0,nan;————注明-nan:不是一个有效数字由两种浮点类型的范围建立数轴可知:在靠近0但不包括0的一小片区......
  • 408---OS三轮复习---输入输出管理
    常考知识点I/O管理基础 ⭐⭐设备独立性软件 ⭐⭐⭐⭐磁盘 ⭐⭐⭐⭐⭐⭐⭐固态硬盘 ⭐⭐⭐⭐I/O管理基础设备分类1、块设备信息交换以数据块为单位,传输速率较高,可寻址2、字符设备以字符为单位,传输速率低、不可寻址I/O接口机组上学了,这里仅作为补充1、I/O......
  • I/O重定向与管道
    I/O重定向 重定向: 使用tty可以获取当前终端号输入命令,例如date会将系统时间输出到终端中,当使用date>文件名会将系统时间输出到该文件中修改密码的命令passwd,按下后不继续输入新密码,使用psaux|greppasswd获取刚才使用passwd进程的信息,其中有pid,使......
  • 跳转(Forward)和页面重定向(Redirect)的区别
    Redirect1.用户浏览器向http://localhost:8080/demo/start.xhtml发送GET请求。2.JSF收到请求,返回start.xhtml页面。3.用户点击页面中的按钮。4.JSF收到请求,向浏览器发送Redirect指令(3XX的HTTP状态值)。5.浏览器收到指令,发送另一个G......
  • HAL+CubeIDE,输入输出重定向
    ①将以下代码段复制到usart.c里;/*******************************************************************************************///----------------------------------------重定向方法---------------------------------------int_read(intfile,char*ptr,intlen)......
  • 重定向到 Next.js 应用程序文件夹中的 404 Not Found 页面:分步指南
    问题描述:你希望将所有的404请求重定向到Next.js应用程序文件夹中的404NotFound页面。解决方案:确保你已经在你的Next.js应用程序中创建了一个自定义的404页面。你可以在你的pages目录下创建一个名为404.js(或404.tsx)的文件,并在其中编写你的自定义页面内容。在Next.j......
  • C++prime之输入输出文件
    作为一种优秀的语言,C++必然是能操作文件的,但是我们要知道,C++是不直接处理输入输出的,而是通过一族定义在标准库中的类型来处理IO的。‘流’和‘缓冲区’‘流’和‘缓冲区’C++程序把输入输出看作字节流,并且其只检查字节流,不需知道字节来自何方。管理输入包括两步:将流与输入去......
  • C语言基础之基础的输入输出
    前言学一门编程语言,不能编写让用户输入数据然后输出处理后的数据的程序那么就等于没学,而在C语言中可以用printf()和scanf()函数进行输入和输出操作。这两个函数是内置的库函数,定义在stdio.h(头文件)中。printf()函数printf()函数用于输出操作。它将给定的语句打印到控制台......
  • nginx反向代理的重定向
    bi.kailinjt.com.confserver{listen80;server_namebi.kailinjt.com;location=/{return302$scheme://$host/webroot/login.html;}location/{#return302......
  • uboot的重定向汇编详细分析--Apple的学习笔记
    一,前言既然是第二轮学习,当然要比第一轮增加深度,获取更多技能和通用方法论。之前我想通过代码关闭relocate功能,结果一尝试就复位了,看来没我想的简单,还是先了解下relocate的代码。二,源码分析调用前r0有传参为gd->relocaddr,也就是一个指针地址保存在r0。arch/arm/lib/crt0.S ldr r0,......