1、对输出数据进行重定向
ls -l > lsoutput.txt
追加
ps >> lsoutput.txt
2、对输入数据进行重定向
more < killout.txt
3、管道
管道操作符‘|’把进程连接在一起。
ps > psout.txt
sort psout.txt > pssort.out
==
ps | sort > pssort.out
假设我们想看看所有运行中进程的名字,不包括shell本身,可以使用下面的命令
ps -xo comm | sort | uniq | grep -v sh | more
先用sort把ps命令的输出按字母表顺序排列好,再用uniq命令去掉重复的内容,然后用grep -v sh 删去名为sh的进程、最后一页一页地把它显示在屏幕上。
shell编程
1.变量
在使用变量之前并不需要事先对它们做出声明。我们是在第一次用到它们的时候创建它们的。默认情况下,所有变量都被认为是并保存为字符串,即使它们被赋值为数值时也是如此。shell和其他一些工具程序会把“数值”型字符串依次转换为正确的数值。
salutation=Hello
echo $salutation
salutation="Yes Dear"
echo $salutation
salutation=7+5
echo $salutation
注意,如果字符串里包含着空格,就必须用引号把它们括起来。还要注意的是等号两边不能有空格。
我们可以用read命令把用户的输入赋值给一个变量,这个命令需要有一个参数,就是变量名字
1.1引号的用法
如果想在一个参数里包含一个或多个这样的空白字符,就必须给参数加上引号。
$HOME 当前用户的登陆子目录
$PATH 以冒号分隔的用来搜索命令的子目录清单
$PS1 命令行提示符,通常是‘$’字符
$PS2 辅助提示符,用来提示后续输入,通常是“>”字符
$!FS 输入区的分隔符。当shell读取输入数据的时候会把一组字符看做是单词之间的分隔字符,它们通常是空格、制表符和换行符
$0 shell脚本程序的名字
$# 传递到脚本程序的参数个数
$$ 该shell脚本程序的进程ID,脚本程序一般会使用它来创建独一无二的临时文件,比如/tmp/tmpfile_$$