管道符、重定向与环境变量

管道符、重定向与环境变量

重定向技术的5种模式:

  • 标准覆盖输出重定向

  • 标准追加输出重定向

  • 错误覆盖输出重定向

  • 错误追加输出重定向

  • 输入重定向

输入重定向

命令 < 文件		将文件作为命令的标准输入
命令 << 分界符    从标准输入中读入,直到遇见分界符才停止
命令 <文件1> 文件2  将文件1作为命令的标准输入并将标准输出到文件2
wc -l < readme.txt   统计一下文件中的行数
cat readme.txt | wc -l

输入输出重定向

输入重定向是把文件导入命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中。
*标准输入重定向 STDIN 文件描述符 0
*标准输出重定向 STDOUT ~ 1
*错误输出重定向 STDERR ~ 2
对于重定向中的标准输出模式,可以省略文件描述符1不写,而错误输出模式的文件描述符2是必须写的。
命令 > 文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件
将错误输入重定向到一个文件中(清空原有文件的数据)
命令 >> 文件
将标准输出重定向到一个文件中 (追加到原有内容的后面)
命令 2>> 文件
将错误输出重定向到一个文件中 (追加到原有内容的后面)
命令 >> 文件 2>&1 ( 命令 &>> 文件 )
将标准输出与错误输出共同写入到文件中(追加到原有的内容的后面)

管道命令符

grep “/sbin/nologin”/ /etc/passwd | wc -l
 ls -l /etc/ | more   内容默认会一股脑儿地显示到屏幕上,根本看不清楚

修改用户密码时,通常都需要输入两次密码进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷,我们可以用一条命令来完成密码重置操作。

echo “linuxprobe” | passwd --stdin root

发送邮件时,默认采用交互式的方式来进行,把编辑好的内容与标题一起“打包”

echo “Content” | mail -s “Subject” linuxprobe
su - linuxprobe

Mail
使用mail邮件命令与输入重定向的分界符,其目的是让用户一直输入内容,直到用户输入了其自定义的分界符时,才结束输入。

Mail -s “Readme” root@linuxprobe.com << over
> I think linux is very practical
>I hope to learn more
>can you teach me ?
>over

命令行通配符

*  代表匹配零个或多个字符
? 代表匹配单个字符
[0-9] 代表匹配0~9之间的单个数字的字符
[a-z]
ls -l /dev/sda*
ls -l /dev/sda?
ls -l /dev/sda[0-9]

常用的转义字符

反斜杠 \ 
使反斜杠后面的一个变量变为单纯的字符串。
单引号 ‘ ‘
转义其中所有的变量为单纯的字符串
双引号 “”
保留其中的变量属性,不进行转义处理
反引号 ` `
把其中的命令执行后返回结果
只需要某个命令的输出值时  `echo` uname -a

重要的环境变量

在linux系统中一切都是文件;命令在Linux中的执行分为4个步骤
①判断用户是否以绝对路径或相对路径的方式输入命令(/bin/ls)如果是则直接执行;
②Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替代原本的命令名称 alias
③Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大多数时间输入的是外部命令,可以使用type命令 来判断用户输入的命令是内部命令还是外部命令。
④系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫PATH,PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔;

接手一台linux系统后一定会执行命令前先检查PATH变量中是否有可疑的目录;
env命令查看Linux系统中所有的环境变量。

小结:
使用export 命令可以把名为LINUX的一般变量转换成全局变量 export LINUX;
管道符的作用把前面命令的输出值作为后面命令的输入值以便进一步处理信息;
PATH变量的作用是设定解释器搜索所执行的命令的途径;

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页