扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
tee用于把命令结果打印在屏幕上并同时保存到文件。
站在用户的角度思考问题,与客户深入沟通,找到库伦网站设计与库伦网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖库伦地区。
tee用法
描述:从标准输入中读取并同时写入到标准输出和指定的文件上
选项:
-a,--append:不覆盖,而是追加输出到指定的文件中
-i,--ignore-interrupts:忽略中断信息
若指定的输出文件为'-',则再次输出到标准输出上
实例:
tee Example.txt #将标准输入中输入的内容同时输出到Example.txt和标准输出上
实践:
例如 ifconfig | tee ifconfig.log
查看iconfig.log
注:
标准输入一般有键盘和其它文件,标准输出有屏幕等。tee只能进行标准输入的输出,对于错误输入是不能输出的。
在调试脚本时,想要每个命令的执行过程都输出到屏幕或者文件中,以便后续查看,如何操作呢?首先脚本第一行要写为“#!/bin/bash -x”,这样会把每个命令的执行记录都输出到屏幕,若还要输出到指定文件,要用到tee,但tee只能进行标准输入,对于标准输入和错误输入要用到下式:
./filename.sh 21 | tee output.log 或者直接 bash -x ./filename.sh 21 | tee output.log
今天调试一个bash,要把屏幕的输出结果存到log文件中,开始输入$bash -x ./test.sh log 结果发现log里只存放了程序的执行结果,后来在cu的一篇帖子里?tid=264380highlight=bash得到了启发,bash -x的调试信息是输出到2号流中的,所以解决方案为bash -x ./test.sh 21 | tee log 想起以前要存放执行make的结果时也遇到类似问题,总结如下:
1、管道符的“I”的作用只是把前一个程序的标准输出流(stdout)的数据作为后一个程序的标准输入流stdin的数据,如不进行重定向,则其他输出流的信息是无法传给后面的程序的
2、屏幕得到的信息不一定是从程序的标准输出来的,也包括标准错误输出流stderr中的信息
3、有些程序(特别是象bash、make这样执行了其他程序的程序)的设计者为了省事,把一些正常情况的信息也放在stderr中输出(即使程序本身并无错误),而stdout用来输出被调用程序的执行时信息,造成了用户的误解简单编写了一下脚本,通过ssh登陆在命令行下运行正常,可是将脚本添加到crontab中就不正常。想记录一下输出信息,分析一下错误原因。将脚本通过使用info.log 重定向输出,结果发现一些在命令行下可以看到的文本信息没有记录到info.log文件中,研究了一下,那些输出估计是输出到了标准错误上。
研究了一下通常添加命令后面几个输出含义
■ /dev/null 输出到空设备,表示丢掉输出信息。
■ 21将输出到标准错误的信息输出到标准输出设备(通常是屏幕)有3个默认的i/o,
■ 0是标准输入,一般是键盘
■ 1是标准输出,一般是屏幕
■ 2是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了
我们登录
Linux
之后,输入:date
--help
你会发现,命令行满屏了,上面还有一些内容看不到了,上下方向键也不起作用,这该怎么办呢?
我们可以通过组合键实现上一页和下一页:Shift
+
PageUp
和
Shift
+
PageDown
或者在输入命令的后面加上管道命令:less或者more
如:date
--help
|more
date
--help|less
都是可以进行翻页的。
; linux如何进入命令行?我们一起来了解一下吧。
1、打开linux系统,在linux的桌面的空白处右击,在弹出的下拉选项里,点击打开终端即可进入命令行。
2、在Linux的首页使用Ctrl+alt+T,打开终端。
Linux支持多终端,可以再使用Ctrl+alt+T命令打开多个终端。
3、通过“searchyourcomputer”功能搜索,terminal,也可以打开。
本文章基于ThinkpadE15品牌、centos7系统撰写的。
修改 /etc/X11/xorg.conf 文档的 Section "Screen" 语段,在其下 Modes 行的分辨率值后加上_刷新率值,同时如果你的显示器支持的高分辨率没有被识别,也可以在这里自己加上。完成以后如下所示
Section "Screen"
[………………]
SubSection "Display"
Depth 24
Modes "1600x1200_60" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
增加如红色的那行,对于老显示器,直接写 "800x600" 即可,前面的也不用尝试了。
1.命令行→图形
startx 注:图形界面完全关闭,如果界面中有文件未保存,将丢失。
ctrl+alt+F7
init 5 注:图形界面完全关闭,如果界面中有文件未保存,将丢失。
2.图形→命令行
ctrl+alt+F2
3.开机自动进入命令行模式
用文本编辑器打开文件/etc/inittab,找到:id:5:initdefault:。这行指示启动时运行级是5,也就是图形界面,改成3就是命令行了:id:3:initdefault:。
4.图形界面下怎么输入命令
在applications找到terminal(中文版本叫终端)
这个是数据流重定向操作的符号,就是将命令行屏幕上的标准输出或标准错误输出数据传送到一个文件或设备中,。通俗点来说就是,执行一个命令,本应该显示在屏幕上的结果,重定向到文件或设备。例如:
ls
/etc
mydata
记住:(一个大于符号)表示以覆盖的方式重定向数据,意思就是如果大于号后面跟的文件里有数据,会被覆盖掉。
(两个大于符号)表示以追加的方式重定向数据,就是后面跟的文件如果有数据,重定向数据会在其后面追加。例子:
ls
/usr
mydata
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流