一. 入门
1.开发系统
应用程序存放在系统为之保留的特定目录中。系统提供的程序在/usr/bin中,本地添加的程序在/usr/local/bin或/opt中。
头文件是用来提供对常量的定义和对系统函数和库函数调用的声明。在/usr/include里面。
库文件是一组预先编译好的函数的集合。按照可重用的原则编写。在/lib和/usr/lib中,库文件的类型分为:静态库.a,共享函数库.so。
静态库:
也称归档文件,是一组准备好使用状态的目标文件,编译器和链接器会将程序代码和函数库结合在一起以组成一个单独的可执行文件。
ar程序:可以创建一个归档文件并且将目标文件添加进去。
ar crv libfoo.a bill.o fred.o
共享库:
静态库的缺点:同事运行多个应用程序并且它们都使用来自于同一个函数库的函数时,内存中就会有同一个函数的多份副本。消耗大量的内存。
当一个程序使用共享库时,它的链接方式是这样的:程序本身不包含函数代码,而是引用运行时可访问的共享代码。系统可以只保留共享库的一份副本供很多应用程序使用。
二. shell程序设计
1. shell的语法
变量:使用之前无需声明。加“$”来访问它的内容。将一个$表达式放入双引号,变量会被替换,放入单引号就不会发生替换。
环境变量:大写字母
参数变量:$*和$@
条件:布尔判断命令 [ ]和test
控制结构:
if语句,elif语句:
if condition
then
statements
else<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;"> statements</span>
fi
if condition
then
statements
elif condition
then
statements
else
statements
fi
while语句:在条件为真时反复执行
while condition do
statements
done
until语句:循环反复执行直到条件为真
until condition
do
statements
done
case语句:
case variable in
pattern | pattern ...) statements;;
pattern | pattern ...) statements;;
...
esac
2. 一些命令
echo:输出结果
echo -n 去掉了换行符
find:用于搜索的命令
find [path] [options] [tests] [actions]
grep:在文件中搜索字符串
grep [options] PATTERN [FILES]
3.正则表达式