命令说明[部分]
时间:2005-12-05 来源:山中无老虎
B shell 内置变量
CDPATH: cd命令的搜索路径
PATH : 用户命令的搜索路径
MAIL : 邮件文件名,shell用其检查是否有该邮件
MAILCHECK :shell检查邮件表,它与用于选择的显示消息一起使用
MAILPATH: shell检查的邮件表,它与用于选择的显示消息一起使用,
(缺省值是”you have mail”)
PS1 :基本提示符(缺省为$)
PS2 :辅助提示符(缺省为>)
IFS :内部域分隔符(缺省是空格、tab、新行)
SHACCT:用于记帐的文件名
TERM:终端名
HOME:主目录名
export 命令
除非采用特殊声明,否则定义的变量及其值对于定义它们的shell来讲是局部的。
即使父shell为某个变量命名,其子进程(如子shell)也无法知道这个变量,除非用export命令输出这个变量。
在shell批处理中调用cd来改变工作目录时,只影响你本身的shell环境,而在父shell中的当前目录并未改变。
特殊的shell变量:
$n :第n个位置参数
$0调用的命令名
$1是第一个参数名
$2是第二个参数名
……
$* :含有命令行中所有参数的位置参数(以$1开始,由空格分开),并不限于9个参数
$@ :与$*相同,$@代表’$1’,’$2’……,而$*代表’$1$2…..’
$# :位置参数的总数,不含$0
$- :在命令行中可选的标志
$? :命令返回的退出值(十进制),不能被用户以赋值命令修改。大多约定为:0表示成
功,,非0表示失败,同时表示出失败的原因。退出值是由命令的编程方法而决定,
因此0并不总表示成功。
$$ :当前shell进程的id,它不能被修改。因为进程的id是唯一的数,因此此参数常用来
构造临时文件的唯一名字。
$! :最后命令的后台进行id(由&操作符调用),它不能被用户由赋值命令进行修改。
$_ :一个临时变量,存储执行的批命令的路径,前一个命令的最后一个参数或mail检查
期间的MAIL文件名
$ERRNO :最近系统调用的出错号,在etc/include/sys/errno.h中
$LINENO :当前shell批命令或函获得中的当前行号
$OLDPWD :前一工作目录名,最近的cd命令以前所处的目录
$OPTARG :getopts处理的最后选项名
$OPTIND :getopts下次要处理的选项的数字索引,$OPTARL的索引
$PPID :本shell之父PID号
$PWD :当前工作目录
$RANDOM[-n] :每次引用时产生一个新的随机数,如指定n即从n开始
$REPLY :select和read使用的缺省答复
$SECONDS[=n] : 自这个shell启动算起的秒数,如指定n,则过去的秒数加上数值n
sort排序选项
c :检查排序的次序,用于排序选项的连接,如目标文件不在指定的序列中,则文件
无法排序,会得到警告信息;
r :使指定的排序方式反序
f :将小写字母视为大写字母
d :按字典序
i :忽略非打印字符
n :按数值顺序
M :按英文月份名顺序
b :忽略空格
u :删除重复值,使各值的输出唯一
tx :使用x为字段的分隔符(缺省为空格或制表符)
-o选项可以产生一个输出重定向
例:sort –o name.sort name 将name文件排序后写入文件name.sort中
uniq [-udc [+n] [-n]] [input_file] [output_file]
不能缺省input_file参数,可以缺省output_file参数
-u :仅输出非重复部分
-d :输出第个相邻重复行的一个拷贝,不输出非重复部分
-c :在每行上加一个计算值来显示重复次数,同时隐含-ud
+n :当测试重复部分时,最初忽略的字符数
-n :当测试重复部分时,最初忽略的字段数
head [-count] [file1 files <f128>]
count说明每个指定文件要输出的行数,其缺省值为10,作为一个过滤器,head采用标准输入输出且给出标准的输入,经常用于管道中。
tail +|-[count] [lib] [-f] [filename]
l、b、c选项分别指定行、块或字符。缺省为1行,与head相同,count缺省值为10
tail filename将显示出filename的最后10行,而
tail –c filename将显示出filename的最后10个字符
split命令
把给定的文件分割为固定大小的几个文件,可以定义文件大小及分割文件名
split [-n] [filename] [split_name]
n缺省值为1000
cut命令
将一系列的文件中选定字段的相应行删除并将结果送到标准输出上
cut –clist [file1 file2 <f128>] 或
cut –flist [-dchar] [-s] [fiel1 file2 <f128>]
注:在c(或f)与list之间不能有空格,dchar只能与flist联用
clist 按list指定的位置截取列
dchar 指定字段分隔符为char,与-f选项共用。缺省为一个制表符tab,如使用特殊字符如
空格,应当将它引进来
flist 按list指定的字段截取
s 分隔符的行,与-f选项共用
paste命令
与cut命令相反,用于粘贴
paste [-s] [-dchar] file1 file2……
find命令:
find 路径名 表达式
使用通配符要使用引号引起来,其基本表达式如下:
-atime n :如最后一次访问文件的时间正好等于n天,则为true
-atime +n :如最后一次访问文件的时间超过n天之前,则为true
-atime –n :如最后一次访问文件的时间小于n天之前,则为true
-cplo dev :备份当前文件至设备dev上,返回总为true
-ctime n :最后一次改变文件的时间正好为n 天,则为true
-ctime +n :最后一次改变文件的时间大于n 天,则为true
-ctime –n :最后一次改变文件的时间小于n 天,则为true
-exec command ; :执行命令;如command返回0状态,则返回true
-exec command {} ; :与上述命令相似,但由使用匹配的路径名取代
-links n :文件正好有n 个链接,返回true
-links +n :文件有大于n个链接,返回true
-links –n :文件有小于n 个链接,返回true
-newer file :如当前带路径的文件名比file新,返回true
-name file :如file匹配一个文件,则为true(通配符必须用引号引起)
-ok command ; :显示命令并跟?,在执行之前等待确认的y,如command返回一个0
值状则返回true
-ok command {} ; :与上述命令相似,但{}由匹配的路径代替
-perm oct_mode :如当前文件的权限值由oct_mode给出的八进制模式,则为true
-perm –oct_mode :如当前文件的全部码匹配oct_mode,则为true
-print :送当前匹配的路径名至标准输出,总为true
-size n :如文件正好为n 块长,(n*512字节)则为true
-size +n :如文件大于n 块(n*512字节),则为true
-size –n :如文件小于n 块(n*512字节),则为true
-type t :如果文件类型匹配参数t,则为true,文件类型为:
F 普通文件
D 目录
B块I/O设备文件
C 字符I/O设备文件
P 命名管道
-user uname :如文件所有者为uname,则为true(如uname为数字且与/etc/passwd
中的登录名不匹配,则find将它作为用户的id
-group gname :如文件属于组gname,则为true(如gname是数字且与/etc/passwd中
的登录名不匹配,则find把它作为用户的id
tr命令
是一个简单的过滤器,主要用于执行字符转换过程语法为:
tr [-cds] [in_string] [out_string]
用z代替字符s: tr s z 文件名
-d为从文件中删除指定字符并显示结果
-c为通知tr不要匹配指定字符,可以与-s和-d选项联用以修改这些选项的操作。
-s 用一个字符代替所有特定的字符
字符 转义序列(八进制)
Bell ‘7’
Backspace ‘10’
CR ‘15’
Escape ‘33’
Formfeed ‘14’
换行、新行 ‘12’
Tab ‘11’
在tr的参数中可以指定字符范围如下例将小写转为大写
tr ‘[a-z]’ ‘[A-Z]’ <输入文件名
dd命令
用于在不同文件与介质之间进行拷贝和转换
dd [option1=value1] [option2=value2]…
dd命令选项:
if=(input file) 输入文件名(缺省为标准输入)
of=(output file) 输出文件名(缺省为标准输出)
ibs=(i/p block size) 输入块中的字节数
nk