首页
学习
活动
专区
圈层
工具
发布

将make的输出(标准输出标准错误输出)重定向到文件 _

方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出的全部信息,输出到某个文件中 最常见的办法就是:make xxx > build_output.txt...此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。...2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息...,还是会输出到屏幕上,你还是可以在屏幕上看到的。...相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。

6.8K20

从根本解决python3 open的UnicodeDecodeError: gbk codec问题

: 有多个open的情况下,必须手动一个个添加参数,很麻烦 更致命的是,当引用的第三方库中的open没有加上这个参数时,我们就几乎完全束手无策了(勇士可以尝试修改源码再重装) 我正是因为碰到了第二种情况...这是 Python 在 open 文件时默认使用的 encoding sys.getdefaultencoding() 是 Python 进行 str/unicode(byte/str) 转换时默认使用的...encoding sys.getfilesystemencoding() 是用来 encoding 文件名的, 例如 open(b’balabala’) 标准输入输出(print)的 encoding...: 4.1 若设置了 PYTHONIOENCODING 环境变量, 则以次变量为准 4.2 标准输入输出是打到终端的话, 看终端的 locale 配置, 在 windows cmd 的代码页 4.3...标准输入输出被重定向到文件的话, 则参照 1 , 用的是 ` locale.getpreferredencoding() ----出自:http://neue.v2ex.com/t/271999 所以我们的目标是要修改环境配置

8.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于 Linux shell 你必须知道的

    一、标准输入和参数的区别 这个问题一定是最容易让人迷惑的,具体来说,就是搞不清什么时候用管道符|和文件重定向>,尝试过: $ where connect.sh | rm 实际上,这样操作是错误的,正确的做法应该是这样的: $ rm $(where connect.sh) 前者试图将where的结果连接到...rm的标准输入,后者试图将结果作为命令行参数传入。...管道符和重定向符是将数据作为程序的标准输入,而$(cmd)是读取cmd命令输出的数据作为参数,前文画图解释过: 输入重定向就是说,程序想读取数据的时候就会去 files[0] 读取,所以我们只要把 files...[0] 指向一个文件,那么程序就会从这个文件中读取数据,而不是从键盘: [图片] 同理,输出重定向就是把files[1]指向一个文件,那么程序的输出就不会写入到显示器,而是写入到这个文件中: [图片

    2K10

    关于 Linux shell 你必须知道的

    一、标准输入和参数的区别 这个问题一定是最容易让人迷惑的,具体来说,就是搞不清什么时候用管道符|和文件重定向>,尝试过: $ where connect.sh | rm 实际上,这样操作是错误的,正确的做法应该是这样的: $ rm $(where connect.sh) 前者试图将where的结果连接到...rm的标准输入,后者试图将结果作为命令行参数传入。...管道符和重定向符是将数据作为程序的标准输入,而$(cmd)是读取cmd命令输出的数据作为参数,前文画图解释过: 输入重定向就是说,程序想读取数据的时候就会去 files[0] 读取,所以我们只要把 files...[0] 指向一个文件,那么程序就会从这个文件中读取数据,而不是从键盘: [图片] 同理,输出重定向就是把files[1]指向一个文件,那么程序的输出就不会写入到显示器,而是写入到这个文件中: [图片

    2.3K20

    Python 学习笔记 (8)—— sy

    如果文件不存在,将会被创建。如果文件存在,将被覆盖。 sys.stdout = fsock              # 所有后续的输出都会被重定向到刚才打开的新文件上。...print  'This message will be logged instead of displayed'    # 这样只会将输出结果“打印”到日志文件中;屏幕上不会看到输出 sys.stdout...sys.stderr = fsock                               # 将新打开的日志文件的文件对象赋值给stderr以重定向标准错误。...这样挺好,因为一旦程序崩溃 (由于引发的异常),Python 将替我们清理并关闭文件打印到 stderr 向标准错误写入错误信息是很常见的,所以有一种较快的语法可以立刻导出信息 >>> print 'entering...在这里,你可以将单个print语句重定向到stderr而且不用影响后面的print语句。

    1.1K30

    掌握这些的Linux命令,你基本稳了

    Mac到Linux服务器的文件传送我推荐用的软件是 小黄鸭 Cyberduck Windows 推荐的连接软件为 Xshell windows和Linux服务器文件传送软件推荐为 Win:...doc2unix: 将windows的换行/r/n -> /n doc2unix grep: 用于查找文件里符合条件的字符串 grep 正则字符串 awk...,命令为: nohup command >out.file 2>&1 & nohup command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上...2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。...试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出. test.sh: 执行命令:

    1.7K80

    python中的sys模块函数

    你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们 从网上摘抄的文章,供大家参考: testing stdout print ‘Hello...其实Python程序的标准输入/输出/出错流定义在sys模块中,分别 为: sys.stdin, sys.stdout, sys.stderr 上面的程序分别与下列的程序是一样的: import...stdin, stdout, stderr在Python中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。...而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。...= sys.stdout #保存标准I/O流 sys.stdout = buff #将标准I/O流重定向到buff对象 print 42, ‘hello’, 0.001 sys.stdout

    1.3K10

    基础IO:系统文件IO

    文件描述符在file_struct中的数组中存放管理,通过改变文件描述符的指向,我们可以将输入或输出流重定向到文件、设备或其他流。...先关闭fd = 1的文件,也就是标准输出流文件。此时再打开文件时就会按照文件描述符的分配规则,将新打开的文件描述符设置为按照顺序最小的下标,也就是刚关闭fd = 1。...功能: 将 oldfd 指向的文件复制到 newfd。 如果 newfd 已经打开,则先关闭它。 返回新的文件描述符 newfd,如果出错则返回 -1。..."); return 1; } // 将标准输出重定向到文件 if (dup2(fd, STDOUT_FILENO) == -1) { perror...然后,使用 dup2() 将标准输出(STDOUT_FILENO)重定向到 output.txt 文件。 关闭原始的文件描述符 fd。

    41900

    Python中os.system()、subprocess.run()、call()、check_output()的用法

    , stderr 参数的值时,可以从返回值对象中的 stdout 和 stderr 属性中读取输出内容 subprocess.STDOUT: 用作 stderr 参数的值时,相当于把标准错误重定向到标准输入中...) subprocess.DEVNULL: 用作 stdout, stderr 参数的值时,相当于把输出内容重定向到 /dev/null 用户已经打开的文件对象或描述符(整型数字)capture_output...=subprocess.STDOUT # 标准错误重定向到标准输出) print("STDOUT:", ret.stdout) # STDOUT: /bin/sh: abcdefg...,也可以将设置 stderr=subprocess.STDOUT 将标准错误重定向到标准输出,但是好像没有办法单独捕获标准错误内容呢!...) print("[" + ret + "]") # 输出内容中包含标准输出和标准错误,输出顺序在 windows 下和 linux 下可能会有差异 assert re.search("stdout

    1.2K20

    linux 后台运行进程:& , nohup

    如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中: command > out.file 2>&1 & 这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file...nohup command > myout.file 2>&1 & 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的nohup.out 文件中。...2>&1解析: command >out.file 2>&1 & command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file...2>&1 是将标准出错 重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。...试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

    6.2K40

    python crontab 坑

    输出 要将crontab命令的输出记录到日志文件中,可以使用重定向,不仅要重定向stdout也要重定向stderr,因为Python解释器会将异常输出到stderr。...,但是在crontab执行脚本时,由于工作目录不同,就会出现找不到文件或者目录不存在的问题。...在终端中直接执行Python程序时,Python会将输出内容自动编码为终端所使用的编码,我使用的终端编码是utf-8,所以不会出错,输出的内容也是正常的。...但是在使用管道或者重定向时,编码格式为ascii,Python会用ascii编码格式去encode输出的字符串,但是字符串的编码使用的时utf-8,所以会出现UnicodeEncodeError的错误。...解决方法: 方法一:在程序中可能输出中文的字符串都加上encode('utf-8'); 方法二:在crontab中加上PYTHONIOENCODING=utf-8,将Python的stdout/stderr

    1.1K10

    python正向连接后门

    新建一个socket,并将0、1、2分别代表系统的stdin、stdout、stderr(标准输入、输出、错误)重定向到socket中,然后开启一个shell。...这样我们从socket中传来的命令就会进入系统的标准输入(就跟键盘输入的效果一样了),系统的输出和错误就会重定向到socket中,被我们客户端获取。...客户端连接上以后,就开启一个shell进程,然后把进程的标准输入输出错误(stdin、stdout、stderr)都重定向到管道中,通过管道和python程序连接,py中的subprocess库已为我们封装好了这个功能...,专门读取管道中的数据 4.不使用管道,直接把shell的输入输出定向到socket中。...直接在popen的时候,将新建进程的stdin、stdout、stderr都重定向到socket中。这样就可以不使用管道通信了。这也是C语言下零管道后门的原理。

    1.6K31

    2018年8月25日python中os模块和sys模块的区别

    你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们 import sys sys.stdout.write('HelloWorld!')...% name     常用print和raw_input来进行输入和打印,那么print 和 raw_input是如何与标准输入/输出流建立关系:其实Python程序的标准输入/输出/出错流定义在sys...中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。     ...而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。...#保存标准I/O流 sys.stdout =buff #将标准I/O流重定向到buff

    1K30

    批处理教程pdf_批处理怎么用

    rem 以下命令只能将net的标准输出记录在result.log文件中,出错信息则会输入到控制台 net stop myservices >result.log rem 如果想把错误信息输出到文件...net stop myservices 2>result.log rem 如果想把正确和错误信息都输出到文件,则需要用重定向即将2重定向到1,这样两者都输出到文件 net stop myservices...但是如果我不想显示输出的信息,可以将输入信息输出定向到nul,即相当于不用输出。...>,>> 将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内 容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。...& , <& 文件中而不是从键盘中读入命令输入。 >& 将一个句柄的输出写入到另一个句柄的输入中。 到另一个句柄输出中。 3.13.

    2.7K20

    Python中os与sys两模块的区别 原

    你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们 我们常用print和raw_input来进行输入和打印,那么print 和 raw_input...其实Python程序的标准输入/输出/出错流定义在sys模块中,分别 为: sys.stdin,sys.stdout, sys.stderr 下列的程序也可以用来输入和输出是一样的: import...中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。...而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。...#将标准I/O流重定向到buff对象 print 42, 'hello', 0.001 sys.stdout=temp                                #恢复标准I

    61710

    python decode encode

    /usr/bin/env python #coding=utf-8 import sys print sys.getdefaultencoding() 该段程序在英文WindowsXP上输出为:ascii...这是因为UliPad在英文WindowsXP上的控制台信息输出窗口是按照ascii编码输出的(英文系统的默认编码是 ascii),而上面代码中的字符串是Unicode编码的,所以输出时产生了错误。...>>>>> >>>>> =Python编码和Windows控制台=  我发现,很多初学者出错的地方都在print语句,这牵涉到控制台的输出。我不了解linux,所以只说控制台的。 ...首先,Windows的控制台确实是unicode(utf16_le编码)的,或者更准确的说使用字符为单位输出文本的。  但是,程序的执行是可以被重定向到文件的,而文件的单位是“字节”。 ...理论上,从一个字符到具体的编码,会经过以下几个概念。

    3.2K10

    命令注入限制绕过

    file cmd >> file 将输出以追加的方式重定向到file cmd 将文本内容作为输入 cmd file 以读写模式把文件file重定向到输入...那么就创建一个0长度的文件 cmd >&n 将命令的标准输出和标准错误输出都重定向到文件描述符n cmd m>&n 将一个文件描述符m重定向到另一个文件描述符n cmd...将命令的标准输入重定向自文件描述符n并关闭该文件描述符 cmd >&n- 将命令的标准输出和标准错误输出都重定向到文件描述符n并关闭该文件描述符 正则表达 正则表达式...,但是我们可以通过重定向的方式将注入命令的输出重定向到web根目录中的文件中,随后再使用浏览器检索该文件,例如:如果应用程序从文件系统位置/var/www/static提供静态资源,那么我们可以提交以下输入将命令执行的结果重定向到一个...1=sh a 下面的脚本是在phith0n的基础上改的python3版本,通过运行脚本尝试getshell操作,这里的fileNames中的域名信息需要按需进行替换: #!

    1.2K10

    Python重定向标准输入、标准输出和标

    然而,它们的确是类文件对象,并且你可以将任意文件对象或类文件对象赋给它们来重定向输出。 例 5.33....始终在重定向 stdout 之前保存它,这样你可以在后面将其设回正常。 打开一个新文件用于写入。 将所有后续的输出重定向到我们刚打开的新文件上。...这样只会将输出结果“打印”到日志文件中;在IDE窗口中或在屏幕上不会看到输出结果。 在我们将 stdout 搞乱之前,让我们把它设回原来的方式。 关闭日志文件。...将我们新打开的日志文件的文件对象赋给 stderr 重定向标准错误。 引发一个异常。从屏幕输出上我们可以注意到这样没有在屏幕上打印出任何东西。所以正常跟踪信息已经写进 error.log。...要点就是我们完全不必修改我们的 kgp.py 脚本就可以同任何这种功能进行合并。我们要做的只是能够从标准输入中接收语法文件,并且我们可以将所有其它的逻辑分散到另一个程序中。

    4.5K10

    python 字符编码处理总结

    ') >>> 鍝堝搱 反之亦然,有兴趣可以尝试其他转换 有时当我们遇到把s(gbk字符串)直接编码成utf-8的时候,将抛出异常,但是通过调用如下代码: import sys reload(sys) sys.setdefaultencoding...在python中str和unicode在编码和解码过程中,如果将一个str直接编码成另一种编码,会先把str解码成unicode,采用默认编码,一般默认编码是anscii,所以在上面示例代码中第一次转换的时候会出错...("Test.txt").read().decode("utf-8") 结果:abc中文 上面的test.txt我是用Editplus来编辑的,但当我用Windows自带的记事本编辑并存成UTF-8格式时...-8编码的文件时, 会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。...解决办法: 将获取的字符串strTxt做decode时,指明ignore,会忽略非法字符, 当然对于gbk等编码,处理同样问题的方法是类似的 strTest = strTxt.decode('utf-

    71010
    领券