首页 > 系统相关 >linux中输出重定向

linux中输出重定向

时间:2024-01-29 10:46:09浏览次数:24  
标签:输出 log 标准 ls linux test root 重定向

介绍

image

  • 任何一个程序在Linux中运行,Linux系统都会为其创建3个已经打开的stream,分别用来输入(0:stdin),输出(1:stdout),打印诊断和错误信息(2:stderr)。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。可以被fprintf、fread等函数使用,他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其后
  • 从图中可以看到1代表标准输出,什么是标准输出?就是往屏幕上输出!
  • 同样的0代表标准输入,就是键盘输入!
  • 标准错误输出,就是往屏幕上显示错误信息!
  • 0, 1 和 2 常与操作符一起用,表示输入重定向或输出重定向!

重定向 >

运行程序时,加上 "> 文件名",即可将代码中标准输出(stdout)的字符串输出到指定文件中。

//屏幕的输出重定向至t.log 文件
echo "hello" > t.log
echo "hello" 1> t.log 
1 > t.log 等同于 > t.log

标准输出和标准错误输出分别指定到不同的文件中

[root@test]$ ls test >succ.log  2>err.log  `test文件夹真实存在,产生标准日志`
[root@test]$ cat succ.log
a.txt
[root@test]$ ls xxx >succ.log  2>err.log    `xxx文件夹不存在,产生错误日志`
[root@test]$ cat err.log
ls: cannot access xxx: No such file or directory   		`果然错误日志被重定向到err.txt`

标准输出和标准错误输出指定到同一个文件中

[root@test]$ ls test >my.log 2>my.log   `test文件夹真实存在,产生标准日志`
[root@test]$ ls xxx >my.log 2>my.log    `xxx文件夹不存在,产生错误日志`

2 > & 1

  • 2 代表错误标准输出,1代表标准输出,“2>&1”是一种优化写法,表示把标准错误输出也输出到标准输入所指定的文件中
[root@test]$ ls test >my.log 2>& 1
[root@test]$ ls xxx >my.log 2>& 1

符号>&是一个整体,不可分开,">"表示重定向,但是为了避免把1当成普通文件1,通过>&1,表示指向一个对象1,对象1对应着前面的标准输出!

追加 >>

运行程序时,加上 ">> 文件名",即可将代码中标准输出(stdout)的字符串追加到指定文件末尾

标签:输出,log,标准,ls,linux,test,root,重定向
From: https://www.cnblogs.com/hasome/p/17993994

相关文章

  • Linux环境安装MYSQL
    一、卸载MariaDB##查看是否安装rpm-qa|grepmariadb##卸载rpm-e--nodepsmariadb-libs 二、资源包准备2.1官网下载https://dev.mysql.com/downloads/mysql/ 2.2上传安装包,并解压#.tar.gz后缀:tar-zxvf文件名#.tar.xz后缀:tar-Jxvf文件名tar-xvf......
  • linux 每2个小时执行定时任务
    [root@localhost~]#crontab-l0*/2***sh/home/data-integration/run_logintop.sh0*/2***sh/home/data-integration/run_stationtj.sh[root@localhost~]#cat/home/data-integration/run_logintop.sh#!/bin/bashcd/home/data-integrationnohup......
  • 关于Linux内核4.12之前版本中, tcp_tw_recycle开启后NAT环境总是出问题的分析
     问题出现的场景很简单,nat网关下,有几台服务器,需要访问企业内部的某个的API服务器,API服务器上rcycle设置为1(4.12内核版本之前有这个设置,之后这个属性取消了,理论上也不会出现这种问题了),就在NAT下客户端并发量比较大的情况下,出现连接不上的情况(应该是SYN后,没有收到SYNACK,连接被丢......
  • 【亲测管用】Linux环境下MySQL 8.0重置密码
    这个问题折磨了我有两三个小时了,看了一大堆博客,大多数都不好用,真的怀疑有没有亲自试用过。本文使用的服务器为阿里云的服务器Linux系统,MySQL的版本为8.0。修改密码操作如下,供大家参考:在/etc/my.cnf中添加如下代码,使其支持免密登录[mysqld]skip-grant-tables重启MySQL服......
  • Linux如何查询是哪些进程占用了端口
    Addressalreadyinuse这个提示,想必大家遇到过,怎么能快速找到问题并解决呢?下面有几种姿势可以了解一下.在对网络连接或特定于应用程序的问题进行故障排除时,首先要检查的事情之一应该是系统上实际使用了哪些端口,以及哪个应用程序正在侦听特定的端口。本文介绍了如何使用netstat......
  • Tornado 输出第一个"hello world"
    在Python中,使用Tornado框架输出"HelloWorld"的示例代码如下:importtornado.ioloopimporttornado.webclassMainHandler(tornado.web.RequestHandler):defget(self):self.write("HelloWorld")defmake_app():returntorna......
  • python02-变量及输出
    目标变量的作用定义变量认识数据类型一.变量的作用举例体验:我们去图书馆读书,怎么样快速找到自己想要的书籍呢?是不是管理员提前将书放到固定位置,并把这个位置进行了编号,我们只需要在图书馆中按照这个编号查找指定的位置就能找到想要的书籍。这个编号其实就是把书籍存放的......
  • linux内存管理(三)进程地址空间(上)v5.0
    每个进程都有自己的虚拟机地址空间。在task_struct数据结构中有一个mm_struct专门用来描述进程的虚拟地址空间。structtask_struct{...structmm_struct*mm;...}structmm_struct{struct{structvm_area_struct*mmap;/*listofVMAs*......
  • linux之自旋锁(二千字长文)
    linux之自旋锁常见的各种锁悲观锁:在每次取数据时,总是担心数据会被其他线程修改,所以会在取数据前先加锁(读锁,写锁,行锁等),当其他线程想要访问数据时,被阻塞挂起。总是先行认为数据一定会被修改!所以要先加锁!保证没有人能够访问它!==我们学的同步互斥机制!其实都是属于悲观锁的范畴!==......
  • 《PalWorld/幻兽帕鲁》旧电脑linux搭建服务器
    关键词:PalWorld,Linux,Natapp,内网穿透,幻兽帕鲁 注意文章时效性 最近幻兽帕鲁爆火,steam一上线好友列表一串正在游玩哈哈哈,自己也是蹭一波热度,顺便试用一下natapp以及联系一下写文章的能力,嘿嘿 首先说明下环境Linux:ubuntu22.04.1Natapp:2.4.0#我用......