前言:测试开发的学习已经开启第三周的学习了。
奋斗至此,内容已稍有难度。
发现每一点都有其深挖的地方,但读书在某些方面来讲要不求甚解,如果只在一点深挖,那可能进度很难提的上来。
继续加油!!!!
目录
一、标准输入、标准输出、标准错误
二、重定向
(一)输出重定向
(二)错误重定向
(三)同时重定向输出与内容
三、管道
(一)管道的定义
(二)管道的用法
四、环境变量
(一)什么是环境变量?
(二)如何查看环境变量?
(三)Linux常见的环境变量
(四)如何设置环境变量
1.临时方案
2.永久方案
一、标准输入、标准输出、标准错误
执行一个shell命令行时通常会自动打开三个标准文件,即:
- 标准输入文件(stdin),通常对应终端的键盘;
- 标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。
进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
二、重定向
(一)输出重定向
有的时间,不想输出到终端上(命令结果要处理);
这时可以把输出结果重定向到某个文件;
语法:命令 > 文件
比如:ps -ef > file01 表示把ps -ef的结果重定向到文件file01中;
输出重定向会覆盖文件内容,如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾。
(二)错误重定向
一般情况下,每个Linux 命令运行时都会打开三个文件:
- 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
- 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
- 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
默认情况下,命令 > 文件 会将输出重定向到 file,命令 < 文件 会将输入重定向到文件;
如果希望将错误重定向到文件,可以这样写:命令 2 > 文件
同样可以用>>来追加错误到文件末尾。
(三)同时重定向输出与内容
同时将输出与错误重定向到同一个文件
命令 >文件 2>&1:把标准错误和标准输出都重定向到文件。比如:ps -ef >out 2>&1
同时将输出与错误重定向到不同文件
命令 >文件A 2>文件B:把标准输出重定向到文件A,标准错误重定向到文件B,比如:ps -ef 1> outfile 2>errorfile
三、管道
(一)管道的定义
经常要将一个命令的输出的内容,给另一个命令作为输入的内容进行处理
比如先用ps -ef查看系统所有进程,再用grep 1182过滤ID为1182的进程
可以这样写:
ps -ef >tmp.out_file
grep 1182 tmp.out_file
也可以更方便地写成:
ps -ef | grep 1182
这里的“|”就是管道,表示将ps -ef的输出作为grep 1182的输入
管道示意图
- 将前面的ps -ef命令的stdout(本来是输出到终端设备的)重定向到一个临时管道设备里
- 同时将后一个命令grep 1182的stdin重定向到这个临时的管道设备里
(二)管道的用法
让stdout和stderr同时重定向到管道
ps -ef 2>&1 | grep err
连续使用管道
ps -ef | grep python |wc -l
四、环境变量
(一)什么是环境变量?
什么是变量?
- 让某个特定的字符串代表不固定的内容就是变量,比如高中学过的数学y=ax+b。等号左边的y就是变量,右边的ax+b就是变量的内容。注意左边的y是未知数,右边的ax+b是已知数
什么是Linux系统的环境变量?
- Linux是一个多用户的操作系统,每个用户登录系统后,都会有一个专用的运行环境。这个运行环境是用一组环境变量来定义的。用户也可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
打印环境变量的命令: env、 printenv
(二)如何查看环境变量?
查看系统的所有环境变量及值: env、 printenv;
查看系统的某个环境变量的值:echo $变量名,比如echo $PATH,echo命令的作用是显示字符,$放在变量名前表示引用某个变量。
(三)Linux常见的环境变量
1.常见的环境变量如HOME,PWD,PATH等
(四)如何设置环境变量
命令方式、配置文件(/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc)
1.临时方案
- 设置环境变量命令:export
- 举例:修改环境变量PATH的值,增加/home/tom,命令如下:
- export PATH=$PATH:/home/tom
- 但是,直接执行这个命令设置的变量值只是临时有效的,在重启系统后会失效,如果要永久有效,需要修改配置文件。
2.永久方案
把export PATH=$PATH:/home/tom的命令添加到配置文件的末尾
- 1.如果要配置对所有用户永久生效,则添加到配置文件/etc/profile
- 2.如果要配置对当前用户生效,则添加到配置文件~/.bashrc
- 执行如下命令使配置生效
- source /etc/profile