第三十二节、文件重定向/命令通配符/环境变量

2017-12-31  本文已影响0人  妄语莫言
一、输入重定向
#wc命令作用于文件对象,返回的是统计结果和对象名
[root@localhost sh]# wc -l /etc/passwd
38 /etc/passwd
#文件对象内容作为标准输出流给到wc命令,只返回统计结果
[root@localhost sh]# wc -l < /etc/passwd
38
#cat读取文件内容后将内容通过管道符作为对象传递给wc,得到统计结果
[root@localhost sh]# cat /etc/passwd|wc -l
38
#下面是直接设置用户密码
[root@localhost sh]# echo "linux1234" |passwd --stdin  linuxprobe
#echo 打印输出的内容就是密码通过管道符作为后面的输入
#--stdin直接读取标准输入作为用户linuxprobe的新密码
二、输出重定向
#标准信息流就是命令正确执行如下,原本打印在屏幕的信息会被输入文件2.txt中
[root@localhost sh]# ls a.txt 
a.txt
[root@localhost sh]# ls a.txt >b.txt
#标准六输出是1,这里是省略不写
#[root@localhost sh]# ls a.txt 1>b.txt
[root@localhost sh]# cat b.txt 
a.txt
#报错信息,命令执行错误系统会在屏幕上返回报错信息
[root@localhost sh]# ls c.txt
ls: cannot access c.txt: No such file or directory
#错误的信息无法被追加到目标文件中而是直接打印在屏幕上
[root@localhost sh]# ls c.txt >b.txt 
ls: cannot access c.txt: No such file or directory
#定义错误信息也输入目标文件,但是这样定义只有报错信息才会输入目标文件
[root@localhost sh]# ls c.txt 2>b.txt
[root@localhost sh]# cat b.txt 
ls: cannot access c.txt: No such file or directory
#正确的命令,标准输出流没定义会打印在屏幕上
[root@localhost sh]# ls a.txt 2>b.txt 
a.txt
#下面就是正确错误信息都输出到文件
[root@localhost sh]# ls a.txt &>b.txt 
#将文件的标准和错误信息流分别定向到不同文件,一个重定向只能改变它们中的一个
[root@localhost sh]# ll c.txt 1>b.txt 2>d.txt 

command >/dev/null 2>&1
表示把正确错误的信息流都输出到黑洞,不显示任何信息

向一个文件中追加一段内容,以PHP测试页面index.php为例
脚本中
cat>/usr/local/nginx/html/index.php<<EOF      #<<EOF是起始标志
<?php
phpinfo();
?>
EOF            #结束标志
三、命令行通配符
#定义变量PRICE
[root@localhost sh]# PRICE=5
#利用$提取变量的值
[root@localhost sh]# echo $PRICE
5
#打印信息事反斜杠\表示转义,双引号里面的内容作为一个对象
[root@localhost sh]# echo "This price is \$$PRICE"
This price is $5
#单引号会强制转义里面的所有内容
[root@localhost sh]# echo 'This price is \$$PRICE' 
This price is \$$PRICE
#反引号``表示执行里面命令输出结果

#######四、环境变量
变量是计算机系统用于保存可变值的数据类型。在Linux系统中,变量名称一般都是大写的,这是一种约定俗成的规范。我们可以直接通过变量名称来提取到对应的变量值。Linux系统中的环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等

变量名称 作用
HOME 用户的主目录(即家目录)
SHELL 用户在使用的Shell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器

[root@localhost sh]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
上一篇下一篇

猜你喜欢

热点阅读