资讯

精准传达 • 有效沟通

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

linux命令输出到文本 linux输出作为输入

linux中的shell脚本中输出文本内容到文件的命令是

您想问的是linux中的shell脚本中输出文本内容到文件的命令是什么吗?shell变量调出命令。

创新互联公司主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设公司、程序开发、网站优化、微网站、小程序制作等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站建设、成都做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

linux中的shell脚本有多种命令格式,其中输出文本内容到文件的命令包括但不限于shell文本命令调出、shell变量取值等。

Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于Linux桌面1991年10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。

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中如何使用echo命令输出指定文本字符串

可以使用echo命令将文本流导向标准输出,然后再使用符号重新定向标准输出到文件。

用法示例:

将字符串"hello world"写入文件file.txt中

$ echo "hello world" file.txt

然后再尝试用cat命令从读取文件并写入到标准输出,可以看到字符串已经成功写入文件。

$ cat file.txt

请问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下常用文本处理命令

Linux下常用文本处理命令大全

Linux下面有很多经典的非常有用的命令,其中处理文本的命令就有很多。下面就让我们一起看看这些经典的Linux文本处理命令有哪些吧。

一. sort

文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想了解这个命令的全部参数请参考这个命令的info页.

二. tsort

拓扑排序, 读取以空格分隔的有序对, 并且依靠输入模式进行排序.

三. uniq

这个过滤器将会删除一个已排序文件中的重复行. 这个命令经常出现在sort命令的管道后边.

四. expand, unexpand

expand命令将会把每个tab转化为一个空格. 这个命令经常用在管道中.

unexpand命令将会把每个空格转化为一个tab. 效果与expand命令相反.

五. cut

一个从文件中提取特定域的工具. 这个命令与awk中使用的print $N命令很相似, 但是更受限. 在脚本中使用cut命令会比使用awk命令来得容易一些. 最重要的选项就是-d(字段定界符)和-f(域分隔符)选项.

六. paste

将多个文件, 以每个文件一列的形式合并到一个文件中, 合并后文件中的每一列就是原来的一个文件. 与cut结合使用, 经常用于创建系统log文件.

七. join

这个命令与paste命令属于同类命令. 但是它能够完成某些特殊的目地. 这个强力工具能够以一种特殊的形式来合并两个文件, 这种特殊的形式本质上就是一个关联数据库的简单版本.

join命令只能够操作两个文件. 它可以将那些具有特定标记域(通常是一个数字标签)的行合并起来, 并且将结果输出到stdout. 被加入的文件应该事先根据标记域进行排序以便于能够正确的匹配.

八. head

把文件的头部内容打印到stdout上(默认为10行, 可以自己修改). 这个命令有一些比较有趣的选项.

九. tail

将一个文件结尾部分的内容输出到stdout中(默认为10行). 通常用来跟踪一个系统logfile的.修改情况, 如果使用-f选项的话, 这个命令将会继续显示添加到文件中的行.

十. wc

wc可以统计文件或I/O流中的”单词数量”:

十一. fold

将输入按照指定宽度进行折行. 这里有一个非常有用的选项-s, 这个选项可以使用空格进行断行(译者: 事实上只有外文才需要使用空格断行, 中文是不需要的)(请参考例子 12-23和例子 A-1).

十二. fmt

一个简单的文件格式器, 通常用在管道中, 将一个比较长的文本行输出进行”折行”.

十三. col

这个命令用来滤除标准输入的反向换行符号. 这个工具还可以将空白用等价的tab来替换. col工具最主要的应用还是从特定的文本处理工具中过滤输出, 比如groff和tbl. (译者: 主要用来将man页转化为文本.)

十四. column

列格式化工具. 通过在合适的位置插入tab, 这个过滤工具会将列类型的文本转化为”易于打印”的表格式进行输出.

十五. colrm

列删除过滤器. 这个工具将会从文件中删除指定的列(列中的字符串)并且写到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename将会删除filename文件中每行的第2到第4列之间的所有字符. p="" /filename将会删除filename文件中每行的第2到第4列之间的所有字符.

Caution: 如果这个文件包含tab和不可打印字符, 那将会引起不可预期的行为. 在这种情况下, 应该通过管道的手段使用expand和unexpand来预处理colrm.

十六. nl

计算行号过滤器. nl filename将会把filename文件的所有内容都输出到stdout上, 但是会在每个非空行的前面加上连续的行号. 如果没有filename参数, 那么就操作stdin.

nl命令的输出与cat -n非常相似, 然而, 默认情况下nl不会列出空行.

十七. pr

格式化打印过滤器. 这个命令会将文件(或stdout)分页, 将它们分成合适的小块以便于硬拷贝打印或者在屏幕上浏览. 使用这个命令的不同的参数可以完成好多任务, 比如对行和列的操作, 加入行, 设置页边, 计算行号, 添加页眉, 合并文件等等. pr命令集合了许多命令的功能, 比如nl, paste, fold, column, 和expand.

pr -o 5 –width=65 fileZZZ | more 这个命令对fileZZZ进行了比较好的分页, 并且打印到屏幕上. 文件的缩进被设置为5, 总宽度设置为65.

一个非常有用的选项-d, 强制隔行打印(与sed -G效果相同).

十八. gettext

GNU gettext包是专门用来将程序的输出翻译或者本地化为不同国家语言的工具集. 在最开始的时候仅仅支持C语言, 现在已经支持了相当数量的其它程序语言和脚本语言.

想要查看gettext程序如何在shell脚本中使用. 请参考info页.

十九. msgfmt

一个产生二进制消息目录的程序. 这个命令主要用来本地化.

二十. iconv

一个可以将文件转化为不同编码格式(字符集)的工具. 这个命令主要用来本地化.

二十一. recode

可以认为这个命令是上边iconv命令的专业版本. 这个非常灵活的并可以把整个文件都转换为不同编码格式的工具并不是Linux标准安装的一部分.

二十二. TeX, gs

TeX和Postscript都是文本标记语言, 用来对打印和格式化的视频显示进行预拷贝.

TeX是Donald Knuth精心制作的排版系统. 通常情况下, 通过编写脚本的手段来把所有的选项和参数封装起来一起传到标记语言中是一件很方便的事情.


新闻名称:linux命令输出到文本 linux输出作为输入
标题路径:http://cdkjz.cn/article/hhhepg.html
多年建站经验

多一份参考,总有益处

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

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

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220