Linux的四大特点贯穿了整个Linux程序开发:
1. 重定向,管道
2. 变量
3. 扩展
4. 脚本
一. 重定向,管道
Linux有三种IO,即标准输入stdin,错误输入error,标准输出stdout
比如: ls / 就有一个标准输出列举出/下所有文件
1> 表示将标准输入重定向到1>后面接的文件中
比如: ls / > root.txt 表示将ls列举出的字符写入到root.txt中
2> 表示将错误输出重定向到2>后面接的文件中
< 表示将<后面接的标准输入到<前面的命令中
管道| 表示将|前的输出作为|后面命令的标准输入
比如: ls / | grep “^r”
标准输入和错误输出结合:
ls / /god &> t1.txt
ls / /god 1> t1.txt 2> t2.txt
ls / /god 1> t1.txt 2>&1
二. 变量
var=0类似于java代码中:int var = 0;
使用set可以查看所有变量
echo $var 打印变量的内容
export c=2定义一个全局变量c,任何进程都可以使用
c有一个特点,即是全局变量,任何进程调用的时候都只是引用c,而不是复制,且创建它的父进程修改变量操作时,则c会复制一份给子进程,即copy on write,修改的时候才复制
变量的另类使用技巧:
var=cat
$var f.sh
三. 扩展
常用扩展符:
~家目录,
引用变量”严格的字符串“”不严格的字符串,可以使用
引用变量
`等价于$()
whereis ls`
\$()将括号里的字符串转换为引用
比如:
echo
等价于 echo $(whereis ls)
四. shell脚本,将作为下一张具体来讲解
shell脚本,就是多个bash命令组合来完成一个特定的功能
比如:
touch f.sh
vi f.sh
echo $c
sleep 10
echo $c
sleep 10
echo $c
bash f.sh 执行f.sh脚本
这个脚本就完成了”在20秒内,从一开始,每10秒钟对变量c监听打印一次”的功能