资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

linux命令输出到文件 linux程序输出信息输出到文件

linux下,如何将控制台输出的所有内容全部输出到一个文本文件?

直接使用输出重定向到你想要的文件即可,不过将所有的控制到信息输出到一个文本文件,只有两个办法:

创新互联建站主营东平网站建设的网络公司,主营网站建设方案,APP应用开发,东平h5小程序定制开发搭建,东平网站营销推广欢迎东平等地区企业咨询

①:修改所有程序的输出路径:printf函数 echo.....几乎是不可能完成的任务

②:修改linux的标准输出路径:

句柄 句柄的数字代号 描述

STDIN 0 键盘输入

STDOUT 1 输出到命令提示符窗口

STDERR 2 错误输出到命令提示符窗口

将标准输出 标准输出的默认设置更改为你要保存的文件,这样就会控制台的信息就会输出到你指定的文件里面

linux命令输出到屏幕的同时保存到文件

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将输出的内容放到文件中存储

我们在上面的例子中可以看到,我们使用输出转向,命令在终端上的输出转向到了文件中,但如果我希望能同时在终端上看到输出信息怎么办?

Linux标准输入输出与重定向详解|果断收藏

linux中的、、、、2、2、21、、,总归要面对的

为了更好的理解这个问题,我们需要追本溯源。

执行一个shell命令行时通常会自动打开三个标准文件

(1) 、标准输入文件(stdin)

通常对应终端的键盘。

(2)、标准输出文件(stdout)。

(3)、标准错误输出文件(stderr)。

(2)和(3)这两个文件都对应终端的屏幕。

进程将从标准输入文件中得到输入数据。

将正常输出数据输出到标准输出文件[显示器]。

将错误信息送到标准错误文件中[显示器]。

下图所示:

0、1、2表示一个文件描述符

但是,有时候我们不想把一些进程处理后信息输出到显示器。

这时我们就引出了重定向。

改变标准输入/输出的方向

三种重定向:

1、重定向标准输出,包括两种。

(1)、(覆盖),等价1

将命令执行的结果输出到指定文件,非显示器。

(2) 、(追加),等价1

将命令执行的结果追加到指定文件,非显示器。

2、 重定向标准输入,包括两种。

(1) 、

将命令中接收的输入途径,由键盘改为指定文件。

(2) 、[Here Document]

命令序列传递到一个交互程序或者命令中。

3、 重定向标准错误,包括两种。

(1) 、2(覆盖)

将命令执行的结果输出到指定文件。

(2) 、2(追加)

将命令执行的结果追加到指定文件。

1、重定向标准输出和重定向标准错误到同一个文件中

有以下的几种方式

(1) 、21

(2) 、

(3) 、

2、 两个特殊文件

(1) 、/dev/nul

过滤标准错误信息

意思就是不想显示结果就输出到这里面。

(2) 、/dev/zero

创建指定长度的文件

案例1:

测试 and

案例2:

测试 and

测试

测试

案例3:

测试2 and 2

案例4:

测试重定向标准输出和重定向标准错误到同一个文件中

(1)、

(2)、

与上面的案例类似,不做解释

(3) 、21

案例5:

使用/dev/nul文件

有时候我们使用命令,不想将输出的信息显示到界面

这时我们可以使用 /dev/nul[常用]

简单测试修改demo 用户密码

请问linux把shell的信息全部输出到文本文件的命令是什么?

user 创建新的用户账户

alias 设置命令的别名

bzips .bz2的文件压缩程序

cal 月历显示

cat 将所有内容输出到标准输出设备

chfn 更改finger命令显示的信息

chgrp 变更文件与目录的所属组

chmod 更换文件或目录的权限

chown 更换文件或目录的拥有者或所在组

clear 清除画面上的信息

col 滤除控制字符

cp 复制文件或目录

crontab 设置定时器

date 设置显示系统时间及日期

dd 由键盘输入文件中的数据,然后依照指定格式来转换数据,再输出至所指定的文件或屏幕上

df 显示磁盘文件系统的使用状况

dmesg 显示开机信息

du 显示目录或文件所占磁盘空间

e2fsck 检查ext2文件系统

echo 文字显示

edquota 编辑quota

egrep 查找文件中符合条件的字符串

exec shell执行命令后即交出控制权

export 设置显示环境变量

fdisk 磁盘分割(分区)

fg 前台执行程序或命令

fgrep 查找文件中符合条件的字符串

file 识别文件类型

find 查找文件或目录

finger 显示用户信息

free 查看内存状态

fsck 检查文件系统并试着修复错误

ftp 传输文件

grep 搜索文件中符合条件的字符串

groupadd 创建组

groupdel 删除组

groupmod 改变组识别码或名称

gunzip 文件解压缩

gzip 文件压缩

halt 关闭系统

help shell创建命令内容

history 列出所有使用过的命令

hostname 查询及设置主机名称

id 显示用户ID及所属的组ID

ifconfig 显示或设置网络上状态

insmod 加载模块

jobs 显示正在后台执行的工作

kill 删除执行中的程序或工作

last 列出目前与过去登录系统的用户相关信息

less 显示文件内容

lilo 安装内核加载、开机管理程序

linuxconf 设置Linux系统

ln 连接文件或目录

locate 寻找文件

login 登录系统

logout 注销系统

ls 列出目录内容

lsmod 显示已加载系统的模块名称

mail E-mail管理程序

make 编译系统核心或模块

man 在线查询命令

mcopy 复制MS-DOS文件

mdel 删除MS-DOS文件

mdeltree 删除MS-DOS文件及包含的子目录文件

mdir 显示MS-DOS目录

mkbootdisk 创建目前系统的引导盘

mkdir 创建目录

mke2fs 创建ext2文件系统

mkfs 创建各种文件系统

more 一页一页地显示文件内容(文本文件)

miunt 挂入文件系统

mouseconfig 设置鼠标相关参数

mv 移动或更名现有的文件或目录

netconfig Red Hat Linux用来设置网络功能的图形接口程序

netstat 显示目前系统的网络状态

nice 变更程序执行时的优先等级

nohup 在用户注销系统后继续以后台的方式执行指定的命令

open 查找第一个可使用的虚拟终端,并执行位于“--”符号后的命令

passwd 提供管理员及用户管理或变更密码

patch 利用修补文件来修改源文件

pine 邮件处理程序,它可收发电子邮件及浏览新闻组

ping 使用ICMP对远程主机发出要求响应的信息,以侦测远程主机的网络功能是否正常

ps 显示程序执行的状况

pwd 显示目前的工作目录

quota 查询磁盘空间限制以及使用情形

quotacheck 检查磁盘使用空间及限制

quotaoff 关闭磁盘使用空间限制

quotaon 开启磁盘使用空间限制

reboot 停止系统运作并重新开机

renice 重新调整程序执行的优先级

repquota 显示磁盘空间限制状况

rm 删除文件或目录

rmdir 删除目录

rpm 管理Red Hat Linux套件

set 设置Shell的执行方式

setup 设置公用程序,可设置的选项包括:登录认证方法、键盘配置、

鼠标配置、开机启动服务、声卡本配置、时区设置和 X Window配置等

shutdown 系统关机

startx 启动 X Window

stat 显示inode内容

su 变更用户身份

sync 将内存缓冲区内的数据写入磁盘

tail 列出文件内容最后部分

talk 和其他用户交谈

tar 文件备份

telnet 登录远程主机

top 显示及管理执行中的程序

traceroute 显示封包到远程主机间的详细路径

umask 在创建文件时预设的权限屏蔽

umount 卸载文件系统

unalias 删除别名

uname 显示系统信息

uncompress 将.Z文件解压缩

unzip 将.Zip文件解压缩

useradd 创建用户账号

userdel 删除用户账户

vi 编辑文本文件

w 显示目前登录系统的用户信息

wall 将信息传送至每位终端用户

whereis 查找文件,预设whereis去查找的文件包括:/bin、/etc、/sbin、

/usr/bin、/usr/etc、/usr/games、/usr/include、/usr/lib、

/usr/local、/usr/man、/usr/sbin、/usr/src、/usr/local/bin、

/usr/local/etc、/usr/local/game、/usr/local/lib 和/usr/local/man

which 在环境变量¥PATH 设置的目录中,搜索符合条件的文件

who 显示目前登录系统的用户信息

whoami 显示用户名称

whois 搜索并显示用户信息

write 可传送信息给另一位登录的用户

Xconfigurator 设置 Xfree86

xf86config 设置XFree86

zip 压缩程序

linux 终端打印内容输出到文件

方法:利用tee命令可将linux终端的打印内容输出到文件

示例:ifconfig | tee ifconfig.log

运行结束后可在ifconfig.log文件中查看打印的内容


名称栏目:linux命令输出到文件 linux程序输出信息输出到文件
标题路径:http://cdkjz.cn/article/hgehed.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220