linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > SHELL >
栏目导栏
资料搜索
热门文章
·csh shell编程入门
·玩转Linux shell命令提示符
·Bourne Shell及shell编程
·Shell 编程实例集锦
·Linux下的shell编程入门
·Shell编程基础
·linux shell 编程基础
·shell基础十二篇
·Linux的Shell编程
·linux Shell编程入门 实例讲解
·Linux主要shell命令详解
·Linux shell 脚本实例一
·深入浅出Shell编程: Shell 变量
·shell命令(一)
·UNIX/LINUX SHELL 正则表达式语
最新文章
·Linux系统中加入自定义Shell为
·Shell学习:关于替换命令-tr-R
·Linux Shell学习:uniq命令使用
·uClinux操作系统下的shell功能
·Shell编程基础:单引号和双引号
·Linux操作系统下Shell语句元字
·Linux系统环境程序设计之路
·Linux Shell中PS命令中的%CPU的
·Linux Shell元字符知识笔记
·压缩命令-vi-认识SHELL-正规表
·Linux系统下Shell命令行快捷键
·谈Linux Shell下的输出重定向
·在Shell中执行vi/cp/mv时自动备
·shell数组介绍
·开启和关闭Shell特性的小技巧
Google
 
LINUX shell快速参考
[ 作者:  加入时间:2007-07-26 09:43:59  来自:Linux联盟收集整理 ]
LINUX shell
*********************************************************************RSLLinux联盟
*1, 文件及权限RSLLinux联盟
*********************************************************************RSLLinux联盟
chmod who [operator] [permission] filename
相对模式:RSLLinux联盟
operator: +/-RSLLinux联盟
permission:r,w,x,l(给文件加锁),s(设置文件宿主或组set_ID),t(粘帖位)
绝对模式:RSLLinux联盟
权限: r(2), w(4), x(1)RSLLinux联盟
uid:  owner(set_uid)(2), group(set_gid)(4), 粘帖位(1)RSLLinux联盟
设置uid时把uid的绝对组合数字放在最前面
umask:RSLLinux联盟
允许设置文件创建时的缺省模式, 对每一类用户存在相应的mask数字, 对于文件RSLLinux联盟
该值最大为6, 因为系统不允许在创建文件时赋予执行权限, 对于目录来讲最大RSLLinux联盟
值为7, 例子:RSLLinux联盟
 RSLLinux联盟
(目录) umask: 101    对应的权限为676
 
*********************************************************************RSLLinux联盟
*2, 文件名替换RSLLinux联盟
*********************************************************************RSLLinux联盟
*  匹配任何字符串RSLLinux联盟
?  匹配单个字符串RSLLinux联盟
[...] 匹配其中的任何字符RSLLinux联盟
[!...]匹配非!之后的字符
 
RSLLinux联盟
*********************************************************************RSLLinux联盟
*3, shell 的输入与输出RSLLinux联盟
*********************************************************************RSLLinux联盟
echo 输出语句RSLLinux联盟
read 变量1 变量2 ...RSLLinux联盟
cat  用来显示文件 分割显示文件 显示控制字符RSLLinux联盟
tee  把一个副本传递到标准输出同时也把另一个副本COPY到相应的文件中
shell 3个相关的文件描述符:RSLLinux联盟
0 标准输入RSLLinux联盟
1 标准输出RSLLinux联盟
2 标准错误
文件重定向:RSLLinux联盟
>   定向到文件RSLLinux联盟
>>  追加到文件
对标准错误重定向时必须是文件描述符:
command 0/1/2 >/>> filenameRSLLinux联盟
command >/>> filename 0/1/2>&0/1/2
RSLLinux联盟
command < filenameRSLLinux联盟
command << delimiter 从标准输入中读入直到遇到delimiter分界符RSLLinux联盟
command <&m 把m作为标准输入RSLLinux联盟
command >&m 把标准输出重定向到m中去RSLLinux联盟
command <&- 关闭标准输入
 
 
*********************************************************************RSLLinux联盟
*4, shell 命令的执行顺序RSLLinux联盟
*********************************************************************RSLLinux联盟
&&  如:命令1 && 命令2 只有命令1返回真(0),命令2才被执行RSLLinux联盟
||  如:命令1 || 命令2 如果命令1执行失败, 则执行命令2RSLLinux联盟
()  在当前shell执行一组命令, 如(命令1;命令2;...), 如用{}则组中所有的命令的输出RSLLinux联盟
    作为一个整体被重定向时,则放到子shell执行否则放到当前shell执行RSLLinux联盟
    RSLLinux联盟
   
 
*********************************************************************RSLLinux联盟
*5, 文本过滤(正则表达式)RSLLinux联盟
*********************************************************************RSLLinux联盟
^                匹配行首     如^cRSLLinux联盟
$                只匹配行尾   如$cRSLLinux联盟
*                一个单字符后跟*, 匹配0或多个此字符RSLLinux联盟
[]               匹配[]内字符, 可以是单字也可以是字符序列, 也可以使用-表示字符范围,如[1-5]RSLLinux联盟
\                用来匹配一个元字符的特殊含义RSLLinux联盟
.                匹配任意单字符RSLLinux联盟
pattern\{n\}     匹配前面的pattern,n为次数RSLLinux联盟
pattern\{n,\}m   同上但次数至少为nRSLLinux联盟
patterb\{n,m\}   同上但次数在n与m之间
 
 
*********************************************************************RSLLinux联盟
*5, awk, 主要用来格式化文本RSLLinux联盟
*********************************************************************RSLLinux联盟
awk脚本:RSLLinux联盟
   可以使用-F指定分割符, 如果未指定则使用空格
模式和动作:RSLLinux联盟
   模式可以式任何语句, 模式包含BEGIN和END两个字段, 实际动作在{}内指定, 模式可RSLLinux联盟
   以省略
域和记录:RSLLinux联盟
   awk执行时其浏览域标识为$1,$2..., 使用$0表示使用所有域
正则表达式:RSLLinux联盟
   除了grep的正则表达式之外,awk还支持另外两个:RSLLinux联盟
   + 匹配一个或多个字符RSLLinux联盟
   ? 匹配模式出现频率,如/XY?Z/匹配XYZ和XZRSLLinux联盟
   表达式需要用斜线括起来
条件操作符:RSLLinux联盟
   <, <=, ==,!=, >, >=, ~(匹配正则表达式), !~(不匹配正则表达式), 如:RSLLinux联盟
   awk '{if($4~/brown/) print $0}' grade.txt
符合表达式:RSLLinux联盟
   &&  语句两边必须同时匹配为真RSLLinux联盟
   ||  语句两边必须有一个匹配为真RSLLinux联盟
   !   非
内置变量:RSLLinux联盟
   ARGC     命令行参数个数RSLLinux联盟
   ARGV     命令行参数排列, 每个参数使用ARGV[n]访问, 下标以0开始RSLLinux联盟
   ENVIRON  支持队列中系统环境变量的使用, 如ENVIRON["PATH"] = "usr/local/bin" RSLLinux联盟
   FILENAME awk浏览的文件名, RSLLinux联盟
   FNR      浏览文件的记录数RSLLinux联盟
   FS       设置输入域分割符等价于-F选项RSLLinux联盟
   NF       浏览记录的域个数RSLLinux联盟
   NR       已读的记录数RSLLinux联盟
   OFS      输出域分割符, 缺省为空格RSLLinux联盟
   ORS      输出记录的分割符, 缺省为\nRSLLinux联盟
   RS       记录分割符号, 缺省为\nRSLLinux联盟
   RSLLinux联盟
操作符:RSLLinux联盟
   =, +=, *=, /=, %=, ^=RSLLinux联盟
   ? 条件表达式操作符RSLLinux联盟
   ||, &&, !RSLLinux联盟
   ~, !~RSLLinux联盟
   <,<=,==,!=,>,>=RSLLinux联盟
   +,-,*,/,%,^RSLLinux联盟
   ++, --
内置字符串函数:RSLLinux联盟
   gsub(r,s),   在整个$0中用s替代rRSLLinux联盟
   gsub(r,s,t)  在整个t中用s替代rRSLLinux联盟
   index(s,t)   返回s中字串t的第一位置RSLLinux联盟
   length(s)RSLLinux联盟
   match(s,r)   测试s是否包含匹配r的字符串RSLLinux联盟
   split(s,a,fs)在fs上将s分成序列aRSLLinux联盟
   sprintf(fmt,exp), 经格式化后的expRSLLinux联盟
   sub(r,s)     用$0中最左边最长的字符串代替sRSLLinux联盟
   substr(s,p)  返回s中以p开始的部分RSLLinux联盟
   substr(s,p,n)
输出函数:RSLLinux联盟
   printf([格式控制符], 参数)RSLLinux联盟
   RSLLinux联盟
   修饰符:RSLLinux联盟
   格式:RSLLinux联盟
   -        左对齐RSLLinux联盟
   .prec    最大字符串长度或小数点右边的位数RSLLinux联盟
   Width    域的步长, 用0表示0步长RSLLinux联盟
   RSLLinux联盟
   格式符号:RSLLinux联盟
   %c       字符RSLLinux联盟
   %d RSLLinux联盟
   %e       RSLLinux联盟
   %fRSLLinux联盟
   %g       awk决定使用哪种浮点数转换e或者fRSLLinux联盟
   %o       八进制数RSLLinux联盟
   %sRSLLinux联盟
   %x       十六进制RSLLinux联盟
  
awk数组:RSLLinux联盟
   使用数组前不必定义也不必指定数组元素的个数, 如:RSLLinux联盟
   '{split("123#224#245", myarrary, "#")}'RSLLinux联盟
   RSLLinux联盟
   也可以先定义再使用.RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
*********************************************************************RSLLinux联盟
*6, sed 文本过滤工具RSLLinux联盟
*********************************************************************RSLLinux联盟
sed [选项] sed命令  输入文件
sed [选项] -f 脚本文件 输入文件
RSLLinux联盟
查询方式:RSLLinux联盟
   sed默认从第一行开始RSLLinux联盟
   定位方式:RSLLinux联盟
   x   为一行号RSLLinux联盟
   x,y 行范围RSLLinux联盟
   /pattern/ 查询包含模式的行RSLLinux联盟
   /pattern/pattern/ 查询包含两个模式的行RSLLinux联盟
   /pattern/,x  在指定的行上查询包含模式的行RSLLinux联盟
   x,/pattern/  通过行号和模式查询匹配行RSLLinux联盟
   x,y!查询不包含指定行号x,y的行RSLLinux联盟
   RSLLinux联盟
   命令:RSLLinux联盟
   p  打印匹配行RSLLinux联盟
   =  显示文件行号RSLLinux联盟
   a\ 在定位行号后附加新文本信息RSLLinux联盟
   i\ 在定位行号号插入新文本信息RSLLinux联盟
   d  删除定位行RSLLinux联盟
   c\ 用新文本替换定位行RSLLinux联盟
   s  使用替换模式替换相应模式RSLLinux联盟
   r  从另一个文件中读文本RSLLinux联盟
   w  写文本到一个文件RSLLinux联盟
   q  第一个模式匹配后退出RSLLinux联盟
   l  显示与8进制ASCII代码等价的控制字符RSLLinux联盟
   {} 在定位行执行的命令组RSLLinux联盟
   n  从另一个文件中读取下一行, 并附加在下一行RSLLinux联盟
   g  将模式2粘贴到/pattern n/RSLLinux联盟
   y  传送字符RSLLinux联盟
   n  延续到下一输入行, 允许跨行的模式匹配语句RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   例子:RSLLinux联盟
   sed -n '2p' filename 第二行开始RSLLinux联盟
   sed -n '1,3p' filename 1~3行RSLLinux联盟
   sed -n '/pattern/p' filenameRSLLinux联盟
   sed -n '4,/pattern/p'RSLLinux联盟
   sed -n '1,$p' filename 显示整个文件, $表示最后一行RSLLinux联盟
   sed -n '/pattern/=' 显示行号RSLLinux联盟
   sed '/pattern/a\text' 附加文本,在指定行后面RSLLinux联盟
   sed '4i\text' 插入文本, 在指定行前面RSLLinux联盟
   sed '/pattern/c\text' 替换指定行RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   替换文本:RSLLinux联盟
   [address[,address]] s/pattern-to-find/replace-pattern/[g p w n]RSLLinux联盟
   g  缺省只替换一次出现模式, 使用g替换全局所有模式RSLLinux联盟
   p  缺省sed将所有被替换行写入标准输出,使用p将不打印结果RSLLinux联盟
   w  文件名  将输出定向到一个文件RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
   RSLLinux联盟
*********************************************************************RSLLinux联盟
*7, 工具RSLLinux联盟
*********************************************************************RSLLinux联盟
tr     字符转换删除和替换RSLLinux联盟
stty   设置终端特性
 
 
RSLLinux联盟
*********************************************************************RSLLinux联盟
*8, shell环境及变量RSLLinux联盟
*********************************************************************RSLLinux联盟
本地变量:RSLLinux联盟
variable-name = value 设置实际值到变量RSLLinux联盟
variable-name + value 如果设置了variable-name则重设其值RSLLinux联盟
variable-name :? value 如果未设置variable-name 显示未定义用户错误信息RSLLinux联盟
variable-name ? value  如果未设置variable-name 显示系统错误信息RSLLinux联盟
variable-name := value 如果未设置设置其值, 如果设置则使用原值RSLLinux联盟
variable-namne :- value 如果未设置使用value替换但并不设置value到variable-name, 如果设置RSLLinux联盟
                        则使用其值
unset variable 清除变量RSLLinux联盟
set  variable value 设置变量 如果不提供参数则显示所有本地变量
测试变量是否设置值:RSLLinux联盟
echo "The file is ${FILE?}"RSLLinux联盟
echo "The file is ${FILE:? sorry ....}"
设置只读变量:RSLLinux联盟
readonly variable-name
设置环境变量:RSLLinux联盟
export variable-name
env 显示所有环境变量
unset variable 清除环境变量
 
预留的变量名:RSLLinux联盟
CDPATH  cd 一个目录时查找此变量RSLLinux联盟
EXINIT  保存VI初始化时的设置RSLLinux联盟
HOME    HOME目录RSLLinux联盟
LFS     用来指定shell缺省的分割符RSLLinux联盟
LOGNAME 保存登陆名RSLLinux联盟
MAIL    保存邮箱路径名RSLLinux联盟
MAILCHECK 缺省为每60秒检查一次新邮件RSLLinux联盟
MAILPATH 如果有多个邮箱要用到MAILPATH,此变量将覆盖MAIL设置RSLLinux联盟
PS1     shell提示符,缺省对root为#, 其他用户为$RSLLinux联盟
PS2     shell附属提示符, 缺省为>, 用于执行超过一行的一个命令RSLLinux联盟
SHELL   缺省shellRSLLinux联盟
TERMINFO 终端初始化变量保存终端初始化配置RSLLinux联盟
TERM    终端类型RSLLinux联盟
TZ      时区RSLLinux联盟
EDITOR  缺省的编辑器RSLLinux联盟
PWD     当前路径名RSLLinux联盟
PAGER   屏幕翻页命令RSLLinux联盟
MANPATH man路径RSLLinux联盟
PRINTER 缺省打印机名
RSLLinux联盟
向脚本传递参数, 用空格分割, $0~$9 其中$0始终保存的脚本名
RSLLinux联盟
特定变量参数:RSLLinux联盟
$#  传递到脚本的参数个数RSLLinux联盟
$*  以单个字符变量显示所有传递的参数,此选项参数可以超过9个RSLLinux联盟
$$  当前脚本进程的ID号RSLLinux联盟
$!  后台运行的最后一个进程的ID号RSLLinux联盟
$@  与$#相同但是使用时加引号RSLLinux联盟
$-  SHELL的当前选项,与set相同RSLLinux联盟
$?  显示命令的最后退出状态, 0为没错误, 其他任何值表示有错误
 
 
RSLLinux联盟
*********************************************************************RSLLinux联盟
*9, 引号RSLLinux联盟
*********************************************************************RSLLinux联盟
使用双引号可以引用除字符$,反引号,\以外的任何字符RSLLinux联盟
使用双引号可以引用任何值RSLLinux联盟
使用反引号用于将系统命令输出到变量RSLLinux联盟
反斜线引用特殊字符:&*+^$'""|?
 
 
*********************************************************************RSLLinux联盟
*10, 条件测试RSLLinux联盟
**********************************************************************RSLLinux联盟
测试文件状态:RSLLinux联盟
test condition 或 [ condition ] 使用[]要在两边加上空格RSLLinux联盟
-d 目录RSLLinux联盟
-f 正规文件RSLLinux联盟
-L 符号连接RSLLinux联盟
-r 可读RSLLinux联盟
-s 文件长度大于0非空RSLLinux联盟
-w 可写RSLLinux联盟
-u 文件具有suid位设置RSLLinux联盟
-x 可执行RSLLinux联盟
-e 存在RSLLinux联盟
-b 块文件RSLLinux联盟
-c 字符设备文件RSLLinux联盟
-g 设置了guid位RSLLinux联盟
...
如: [ -f filename ]RSLLinux联盟
    echo $?RSLLinux联盟
    RSLLinux联盟
测试时使用逻辑操作:RSLLinux联盟
-a 逻辑与 -o 逻辑或 !逻辑非, 如:RSLLinux联盟
[ -w result.txt -a -w test.txt ]
字符串测试:RSLLinux联盟
test "string"RSLLinux联盟
test string_operator "string"RSLLinux联盟
test "string" string_operator "string"
string_operator:RSLLinux联盟
= 相等RSLLinux联盟
!= 不等RSLLinux联盟
-z 空串RSLLinux联盟
-n 非空串
测试数值:RSLLinux联盟
"number" number_operator "number"RSLLinux联盟
RSLLinux联盟
[ "number" number_operator "number" ]RSLLinux联盟
-eq 相等RSLLinux联盟
-ne 不等RSLLinux联盟
-gt 大于RSLLinux联盟
-lt 小于RSLLinux联盟
-le 小于等于RSLLinux联盟
-ge 大于等于
expr 用于数值计算:RSLLinux联盟
exper argument operator argument
 
 
**********************************************************************RSLLinux联盟
*11, 控制流结构RSLLinux联盟
**********************************************************************RSLLinux联盟
if-else:RSLLinux联盟
if 条件1RSLLinux联盟
then RSLLinux联盟
   命令1RSLLinux联盟
elif 条件2RSLLinux联盟
then RSLLinux联盟
   命令2RSLLinux联盟
elseRSLLinux联盟
   命令3RSLLinux联盟
fi
空命令永远为真
case 语句:RSLLinux联盟
case 值 inRSLLinux联盟
模式1)RSLLinux联盟
   命令1RSLLinux联盟
   ...RSLLinux联盟
   ;;RSLLinux联盟
模式2)RSLLinux联盟
   命令2RSLLinux联盟
   ...RSLLinux联盟
   ;;RSLLinux联盟
esac
RSLLinux联盟
for循环:RSLLinux联盟
for 变量名 in 列表RSLLinux联盟
doRSLLinux联盟
   命令1RSLLinux联盟
   命令2RSLLinux联盟
   ...RSLLinux联盟
done
RSLLinux联盟
until循环:RSLLinux联盟
until 条件RSLLinux联盟
doRSLLinux联盟
   命令1RSLLinux联盟
   命令2RSLLinux联盟
   ...RSLLinux联盟
done
RSLLinux联盟
while 循环:RSLLinux联盟
while 命令RSLLinux联盟
doRSLLinux联盟
   命令1RSLLinux联盟
   命令2RSLLinux联盟
   ...RSLLinux联盟
done
 
可以使用break continue 控制流程, 对case及循环有效
 
 
*********************************************************************RSLLinux联盟
*12, shell 函数RSLLinux联盟
*********************************************************************RSLLinux联盟
格式:RSLLinux联盟
函数名()RSLLinux联盟
{RSLLinux联盟
命令1RSLLinux联盟
命令2RSLLinux联盟
} 或RSLLinux联盟
函数名() {RSLLinux联盟
}
也可以在函数名前面加上function
参数传递:RSLLinux联盟
和在shell中使用参数一样如$1 ~ $9, 如:
test() {RSLLinux联盟
   echo $1RSLLinux联盟
   echo $2RSLLinux联盟
   echo $3RSLLinux联盟
}RSLLinux联盟
调用: test 1 2 3
函数返回:RSLLinux联盟
return 返回用最后的命令状态决定返回值RSLLinux联盟
return 0RSLLinux联盟
return 1
在shell中定位文件:RSLLinux联盟
定位格式为:RSLLinux联盟
. pathname
执行函数:RSLLinux联盟
函数名  参数 ...
删除函数:RSLLinux联盟
unset 函数名
 
RSLLinux联盟
*********************************************************************RSLLinux联盟
*13, 向脚本传递参数RSLLinux联盟
*********************************************************************RSLLinux联盟
shift 命令:RSLLinux联盟
他每执行一次参数个数减一且值向前移动一位,如:RSLLinux联盟
while [ $# -ne 0 ]RSLLinux联盟
doRSLLinux联盟
   echo $1RSLLinux联盟
   shiftRSLLinux联盟
done
 
 
********************************************************************RSLLinux联盟
*14, 创建屏幕输出RSLLinux联盟
********************************************************************RSLLinux联盟
tput:RSLLinux联盟
    字符输出:RSLLinux联盟
    bel       警铃RSLLinux联盟
    blink     闪烁RSLLinux联盟
    bold      粗体RSLLinux联盟
    civis     隐藏光标RSLLinux联盟
    clear     清屏RSLLinux联盟
    cnorm     不隐藏光标RSLLinux联盟
    cup       移动光标位置到x,yRSLLinux联盟
    el        清除到行尾RSLLinux联盟
    ell       清除到行首RSLLinux联盟
    smso      启动突出显示RSLLinux联盟
    rmso      正常显示RSLLinux联盟
    smul      开始下划线模式RSLLinux联盟
    rmul      停止下划线模式RSLLinux联盟
    sc        保存当前光标位置RSLLinux联盟
    rc        恢复光标位置RSLLinux联盟
    sgr0      正常屏幕RSLLinux联盟
    rev       逆转视图RSLLinux联盟
    RSLLinux联盟
    数字输出:RSLLinux联盟
    cols      列数目RSLLinux联盟
    it        TAB设置宽度RSLLinux联盟
    lines     屏幕行数RSLLinux联盟
    RSLLinux联盟
    布尔输出:RSLLinux联盟
    chts  光标不可见RSLLinux联盟
    hs    具有状态行
例子, 使用布尔输出:RSLLinux联盟
    STATUS_LINE=`tput hs`RSLLinux联盟
    if $STATUS_LINE; thenRSLLinux联盟
      echo "Your terminal has a status line"RSLLinux联盟
    elseRSLLinux联盟
      echo "Your terminal don't has a status line"RSLLinux联盟
    fiRSLLinux联盟
    RSLLinux联盟
    RSLLinux联盟
使用颜色:RSLLinux联盟
    前景色:RSLLinux联盟
    30(黑)  31(红)  32(绿)  33(黄)  34(蓝)  35(紫) 36(青) 37(白)RSLLinux联盟
    背景色:RSLLinux联盟
    40(黑)  41(红)  42(绿)  43(黄)  44(蓝)  45(紫) 46(青) 47(白)RSLLinux联盟
    RSLLinux联盟
    颜色格式:RSLLinux联盟
    <ESCAPE>[background_number;foreground_number]mRSLLinux联盟
    例子:RSLLinux联盟
    echo -e "\033[40;32m"RSLLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·UNIX和Linux Shell正则表达式语法介绍  (2007-06-29 10:42:18)
 ·新手看招 Linux Shell编程简单一例  (2007-04-09 10:30:52)
 ·linux shell 脚本入门  (2007-02-13 12:23:22)
 ·面向DBA的Linux Shell脚本编写简介  (2007-02-13 12:18:43)
 ·在Linux Shell下将汉字转换为Url编码  (2006-10-10 10:55:58)
 ·linux Shell编程入门 实例讲解详解  (2006-09-21 11:21:57)
 ·Linux shell 脚本实例一  (2006-09-10 22:18:12)
 ·免费unix/linux shell帐号  (2006-09-04 21:45:44)
 ·在Linux Shell程序中进行身份验证  (2006-08-28 10:08:09)
 ·linux shell 编程基础  (2006-08-28 10:06:51)