一、输入重定向
- <将文件内容作为输出流给到命令
- |管道符是将前面命令的输出作为后面命令的输入,可多个联合使用
#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的新密码
二、输出重定向
-
>
表示覆盖写入,会清空目标文件内容 -
>>
表示追加写入,保留目标文件内容
linux系统中命令输出的信息分为标准信息流和报错信息
#标准信息流就是命令正确执行如下,原本打印在屏幕的信息会被输入文件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 #结束标志
三、命令行通配符
- *可以匹配任意字符,包括空和其他所有字符
- ?匹配单个字符
- [0-9]匹配0到9中的一个数字
#定义变量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