荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: jjksam (我是傻瓜...), 信区: Linux
标 题: 第一章 Linux基本命令的使用
发信站: 荔园晨风BBS站 (Thu Dec 6 12:46:52 2001), 转信
第一章 Linux基本命令的使用
本章主要讲解Linux下基本命令的使用,由于篇幅的关系,无法列出所有Linux命令的
使用说明。读者在使用没有列出的命令时,可以使用"--help"参数查询该命令所附的在线
帮助,或者利用man来查询更详细的使用说明。
1.ash
(1)简介
ash --a shell
这是由Kenneth Almquist在1989年编写的,ash是Linux下的许多命令解释器中的一个
,它的许多特性接近于SYSTEM V的shell。
(2)部分参数说明
ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c命令] [ 参数 ]
-c 命令:若用-c参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
-s:若用-s参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
如果不跟-c -s参数则ash以所跟的第一个参数为文件名,从此文件中读入命令。如无
参数则ash缺省设定-s参数,从标准输入中读入命令,直到输入exit。
如果参数0的第一个字母是"-"则ash确定为login shell,ash将从/etc/profile或用户
的根目录中的.profile读入相应的设置和环境变量。
-e:若用-e参数,则ash执行命令后返回值为非零值时则退出ash。
-f:若用-f参数,则ash关闭自动产生文件名功能。
-j:打开伯克利UNIX风格的工作控制。
-n:读入命令但是并不执行。
(3)范例
ash -c ls
ash执行ls这个命令后退回原先的目录和shell。
ash -s
ash执行一个新的shell,现在可以在这个shell中工作,按(Ctrl-D)或输入exit后,
则退回原先的目录和shell,所设定的环境变量返回原先的值。
2.at
(1)简介
at,batch,atq,atrm:安排、检查、删除队列中的工作。
由Thomas Koenig编写。
(2)部分参数说明
at [-V] [-q队列] [-f文件名] [-mldbv] 时间
at -c 作业 [作业…]
atq [-V] [-q队列] [-v]
atrm [-V] 作业 [作业…]
batch [-V] [-q队列] [-f文件名] [-mv] [时间]
at在设定的时间执行作业。
atq列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作。
atrm删除队列中的作业。
batch用低优先级运行作业,只要系统的loadavg(系统平均负载)<1.5(或者在
atrun中设定的值)它就开始执行作业。
-V:若用-V参数,则显示版本号到标准错误输出。
-q队列:若用-q参数,则指定可选队列名称,队列名称可以是a到z或A到Z之间的任意
字母。at的缺省队列名是c,batch的缺省队列名是E,队列的字母顺序越高,则队列的优先
级越低。如果是大写字母的话则提交给batch,如果atq使用-q参数,则只显示这个队列中
的作业。
-m:执行完作业后即使此作业并没有输也给提交作业的用户发送提示mail。
-f文件名:从文件中读取作业。
-l:等于atq。
-d:等于atrm。
-b:等于batch。
时间:这是用户设定的作业开始执行的时间。时间的格式分成三个部分:时间、日期
、偏移量。可接受的时间形式是HHMM或HH:MM,在一天中指定的时间运行,如果时间过去
了就在第二天执行。可以在时间后加入AM或PM使其在上午或下午运行,也可以指定在哪一
天执行,给出日期的格式应为MMDDYY或MM/DD/YY或MM.DD.YY,也可以给出偏移量:
时间+计数时间间隔
时间间隔可以是minutes,hours,days,weeks。
也可以指定today让作业在今天执行,指定tommorow让作业在明天执行。
(3)注意事项
如果没有指定-f选项,是at从标准输入读入所有的命令,所以可以通过管道、重定向
或交互输入来输入命令。
超级用户可以在任何情况下使用at系列的命令。一般用户使用at系列命令的权利由文件
/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,则只有列在这个文件中的
用户才能使用at系列的命令。如果/etc/at.allow文件不存在,则检查/etc/at.deny这个文
件。只要不列在这个文件中的用户都可以使用at系列的命令。缺省的配置是/etc/at.deny
,是一个空文件,这表明所有的用户都可以使用at系列的命令。
(4)范例
at -f work 4pm + 3 days
在三天后下午4点执行文件work中的作业。
at -f work 10am Jul 31
在七月31日上午10点执行文件work中的作业。
3.banner
banner:打印大标题。
banner在标准输出上打印高质量的标题,如果没有输入要打印的文字,则其等待从标
准输入输入一行文字。其标题由"*"组成。由Mark Horton编写。
(2)部分参数说明
/usr/bin/banner [ -wn ]信息
-w宽度 输出宽度从131到n,n缺省为80列。
(3)注意事项
不能打印字符:< ,>,[,],\,^,_,{,},|,-。信息长度为10个英文字符,如
果用空格分开字符串,还是连续打印字符串,两个字符串可以被括在引号(")中。这命名
banner把这些字任串置于同一行中。
4.bash
(1)简介
bash:GNU Bourne-Again Shell
自由软件基金会(Free Software Foundation Inc)拥有bash版权。
bash是Linux下的许多命令解释器中的一个,同sh兼容,并且包含了ksh和csh中一些有
用的特性。遵从IEEE Posix Shell and Tools specification(IEEE Working Group
1003.2)。
(2)部分参数说明
bash [参数] [文件名]
-c字符串:若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设
定为从$0开始的位置参数。
-i:若用-i参数,则bash是交互的。
-s:若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到
输入exit。
-:单一的-符号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看
作是文件名。
-norc:如果hash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh
来运行,这个参数缺省是关闭的。
-noprofile:不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.
bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这
些文件作为启动文件。
--refile文件名:如果bash是交互的,则以此文件作为bash的启动文件。替代-/.
bashrc。
-version:在bash开始时显示此bash的版本号。
-quiet:不显示版本号和其他信息,这是缺省值。
-login:激活bash,伪装为登录shell。
-nobraceexpansion:不执行大括号扩展。
-nolineediting:在交互状态下不使用GNU的readline库去读取命令。即取消了命令行
编辑功能。
-posix:改变bash的行为,使其符合Posix 1003.2规定的标准。
(3)注意事项
bash过于庞大,运行速度也太慢,并且不符合Posix标准。在某些情况下aliases
模糊不清。
(4)范例
lark:->bash -version
GNU bash, version 1.14.7(1)
bash $
显示此bash的版本号,并进入一个交互的shell。
5.bc
(1)简介
bc:一个简单的计算器。
作者为Philip A.Nelson.,bc是一个支持交互式的表达式计算的语言,其格式类似于C
语言,在命令行上还可以加载一个标准的数学库。
(2)部分参数说明
bc [-lwsqv] [长选项] [文件名…]
-l和--mathlib:定义标准数学库。
-w和--warn:给出对不符合Posix标准的扩展功能的警告。
-s和--standard:变成符合Posix标准的bc。
-q和--quiet:不输出GNU bc的欢迎信息。
-v和--version:输出版本号和版权信息后退出。
(3)范例
lark:->bc
bc 1.04
Copyright (c) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
1+2*3.1415926
7.2831852
quit
lark:->
6.cal
(1)简介
cal:显示一个日历。
最早出现在Version 6 AT&T UNIX。cal在标准输出上显示日历。对于查询某年某月某
日的用户来说是十分有用的。
(2)部分参数说明
cal [-jy] [月[年]]
-j:显示julian日期(日子是从1月1日开始累加的)
-y:显示今年的日历
年份必须写全,"cal 89"是错误的,应该为"cal 1989"。
月份必须是在1~12之间的数字,或英文的全称(过少无法区分)。不加参数则输出当
前月的日历。
(3)范例
lark:-> cal 3 1998
March 1998
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
lark:->
但是1752年9月4 日历就非常奇怪,少了13天。
lark:->cal 3 1998
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
这是因为这个月开始整个大不列颠帝国(美国那时还是英国殖民地),从凯撒历史更
换成现行的公历。[注:教皇格列高里十三世(Pope Gregory XIII)于1582年改革历法,
可是大不列颠帝国直到1752年才换用新的公历。]
7.cat
(1)简介
cat:连接文件并打印到标准输出。
cat是CA Tenate的缩写,常常用来显示文件,类似于DOS下的TYPE命令。
(2)部分参数说明
cat [-benstuvAET] [--number] [--number-nonblank]
[--squeeze-blank] [--show-nonprinting] [--show--ends]
[--show-tabs] [--show-all] [--help] [--version] [文件名…]
-b,--number-nonblank:计算所有非空输出行,从第一行开始计数。
-e:作用等于-vE。
-n:--number:计算所有输出行,从第一行开始计数。
-s,--squeeze-blank:将所有连续的多个空行替换为一个空行。
-t:作用等于-vT。
-u:没有作用,只是为了某些UNIX的兼容性而设。
-v,--show-nonprinting:显示除换行符和TAB以外的所有控制符。使用^作标志,并
在字符的高位放置Escape控制符。
-A,--show-all:作用等于-vET.
-E,--show-ends:在每一行的结尾加上字符"$"。
-T,--show-tabs:显示控制符TAB为'^I'。
--help:输出帮助信息并退出(返回值为非零值)。
--version:输出版本信息并退出。
(3)范例
lark:->cat -b -E.lessrc 显示文件.lessrc的内容
1 back-line $ $
3 forw-scroll $ $
4 back-scroll $
5 goto-line $
6 goto-end $
lark:->cat myfile1 myfile2 >tmp 将文件myfile1,myfile2连结起来输
出到
文件tmp
8.cd
(1)简介
cd:改变当前目录。
(2)部分参数说明
cd目录名
如果不加目录名,则回到用户的根目录,此外用户必须拥有该目录的权限。进入另外
一个用户的目录只要cd -用户名即可。
(3)范例
lark:/tmp>cd id1 进入id1目录
lark:/tmp/id1>cd-chenxy 进入用户chenxy的目录
lark:-chenxy>
9.chgrp
(1)简介
chgr:改变文件的组。
(2)部分参数说明
chgrp [-Refv] [--recursive] [--changes] [--silent]
[--quiet] [--verbose] [--help] [--version]组文件名…
-c --changes:只有在文件的组确实改变时才进行详细说明。
-f --quiet --silent:不输出组不能改变的文件的错误信息。
-v --verbose:详细说明组的变化。
-R --recursive:改变本目录及其所有子目录的文件的组。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
组:要改变到的组可以是组号对应的数字;也可以是/etc/group文件中的组名。
文件名:以空格分开的要改变组所有权的文件列表,支持通配符。
如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
(3)范例
lark:->chgrq -R book /opt/local/book/*.*
改变/opt/local/book/及其子目录下的所有文件的组为book。
10.chmod
(1)简介
chmod:改变文件保护,文件保护控制用户对文件的访问权,有三个安全级别,所有者
级别,组访问级别,其他用户访问级别,在这三个级别中,又有三种权限:读(r),写(
w),执行(x)。(用户可以ls-lg来观看某一文件的所属的group)对于文件来说读权限
意味着可以看文件的内容,写文件可以修改或删除文件,执行权限则可以执行它(类似于
DOS下的EXE,COM,BAT文件)。对于目录来说,读权限意味着可以查看目录下的内容,写
权限意味着能在目录下建立新文件,并可以从目录中删除文件,执行权限意味着可以从一
个目录转变到另一个目录。
(2)部分参数说明
chmod [-Rcfv] [--recursive] [--changes] [--silent]
[--quiet] [--verbose] [--help] [--version] 保护权限 文件名…
-c --changes:只有在文件的权限确实改变时才进行详细说明。
-f --silent -quiet:不输出权限不能改变的文件的错误信息。
-v --verbose:详细说明权限的变化。
-R --recursive:改变本目录及其所有子目录的文件的权限。
--help在标准输出上输出帮助信息并退出。
--version在标准输出上输出版本信息并退出。
保护权限:格式为[ugoa…][[+ - =] [r w x Xstugo…]…] […]
"ugoa"控制哪些用户对该文件的权限将被改变:(u)文件的所有者,(g)与文件所
有者同组的用户(o)其他组的用户(a)所有用户,操作符"+"使用用户选择的权限被追加
到每个目标文件。操作符"-"使得这些权限被撤销。"="使得目标文件只具有这些权限。
"r w x Xstugo"选择新的属性。(r)读权限(w)写权限(x)执行权(或对目录的访问权
)(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性(s)同时
设定用户或组ID(t)保存程序的文本到交换设备上(u)目标文件属主(g)目标文件属主
所在组(o)其他用户。如果用数字来表示属性,则(0)没有权限,(1)执行权,(2)
读权,(4)写权,然后将其相加,所以数字属性的格式应为3个从0到7的八进制数,其顺
序是(u)(g)(o)。
文件名:以空格分开的需要改变权限的文件列表,支持通配符。
(3)范例
lark->chmod a + x destfile 使所有用户对文件destfile有读写执行权
lark->chmod 644 destfile 使所有用户可以读文件destfile只有属主才能
改变
11.chown
(1)简介
chown:改变文件的属主和组。
(2)部分参数说明
chown [-Refv] [--recursive] [--changes] [--help] [--ver-sion] [--silent]
[--quiet] [--verbose] [用户] [: .] [组] 文件名…
-c --changes:只有在文件的属主确实改变时才进行详细说明。
-f --silent -quiet:不输出属主不能改变的文件的错误信息。
-v --verbose:详细说明属主的变化。
-R --recursive:改变本目录及其所有子目录的文件的属主。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
用户:可以是用户名或用户id。
组:可以是组名或组的id。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
(3)范例
lark->chown dfbb:book destfile 将文件destfile的属主改成dfbb,组
改成book
12.chsh
(1)简介
改变用户登录的shell。
作者Julianne Frances Haugh
(2)部分参数说明
chsh [-s 登录的shell] [用户名]
普通用户可以改变自己的登录shell,超级用户可以改变其他用户的登录shell,所有
的shell必须是在/etc/shells文件中列出的shell,但是超级用户不受这个限制。如果用户
的shell是一个受限制的shell则用户不能改变其登录shell。如果不加-s参数则chsh输出用
户的当前登录shell并提示用户输入新shell的路径。改变shell时都需要输入用户的密码。
(3)范例
lark:->chsh
Password:
Changing the login shell for dfbb
Enter the new value, or press return for the default
Login Shell [/bin/csh]:/bin/tcsh
lark:->
13.clear
(1)简介
clear:清除屏幕(类似于DOS的cls)
(2)范例
lark->clear 清除屏幕,提示符被移动到左上角
14.compress
(1)简介
compress,uncompress, zcat:压缩,展开文件。
compress利用LZW原理来压缩文件,原文件将被替代为扩张名为.Z的新文件。
uncompree和zcat则被用来展开压缩文件。
(2)部分参数说明
compress [-f] [-v] [-c] [-V] [-b bits] [文件名…]
uncompress [-f] [-v] [-c] [-V] [-b bits] [文件名…]
zcat [-v] [文件名…]
-f :强制替代所有原文件,如果不加此参数且compress工作在前台则compress将提示
用户,该参数对于压缩整个目录的文件特别有用。
-v:在压缩过程中输出每个文件的压缩比。
-c:将压缩结果输出到标准输出。
-V:输出版权信息。
-b bits:bits为9-16的数字,用来控制LZW的压缩深度。
文件名:以空格分开的要压缩的文件列表,支持通配符。
(3)范例
lark: ->compress -f -v -V destfile 压缩文件destfile
Based on compress.c, v 4.0 85/07/30 12:50:00 joe Release
Options: BITS=16
destfile: Compression:5.55% --replaced with destfile.Z
lark:->uncompress destfile.Z 还原文件destfile
lark:->
15.cp
(1)简介
cp:拷贝文件
(2)部分参数说明
cp[options] 源文件 目标文件
cp[options] 源文件…目标目录
Options:
[-abdfilprsuvxPR] [-S backup-suffix] [-V {numbered, existing, simple}]
[--backup] [--no-dereference] [--force] [--interactive] [--one-file-system]
[--preserve] [--recursive] [--update] [--verbose] [--suffix=backup-suffix]
[--version-control={numbered, existing, simple] [--archive] [--parents]
[--link] [--symbolic-link] [--help] [--version]
-a, --archive:在拷贝过程中保留尽可能多的源文件的结构和属性,同-dpR作用相同
。
-b, --backup:给将要覆盖和删除的文件作备份。
-d, --no-dereference:只拷贝符号连接,而不拷贝其所指向的文件并在拷贝中保留
原有的连接关系。
-f --force:删除已存在的目标文件。
-I, --interactive:在删除已存在的目标文件时给出提示。
-l, --link:用硬连接来代替非目录文件的拷贝。
-P, --parents:将给出路径的源文件连路径一起拷贝。
cp --parents a/b/c exist-ing_dir' copies
将文件a/b/c拷贝到exist-ing_dir/a/b/c。
-p, --preserve:保留源文件的属主,组,权限和时间标志。
-r,:整目录拷贝
-s, --symbolic-link:用建立符号连接来代替非目录文件的拷贝,除非目标文件也在
当前目录不然所有源文件都是绝对路径(从"/"开始)。在不支持符号连接的系统上将给出
出错信息。
-u, --update:如果非目录目标文件已存在具有相同或更新的修改时间则不拷贝。
-v,--verbose:在拷贝时输出每个文件的名称。
-x, --one-file-systme:从开始拷贝的文件开始跳过在不同文件系统上的子目录。
-R, --recursive整目录拷贝。
--help 在标准输出上输出帮助信息并退出。
--version 在标准输出上输出版本信息并退出。
-S, --suffixbackup-suffix:用于产生备份文件的后缀,此选项修改由环境变量
SIMPLE…BACKUP…SUFFIX设定的后缀,如果都没有定义则缺省是"-"。
-V, --version-control {numbered, existing, simple}:备份产生的类型。此选项
修改由环境变量VERSION…CONTROL设定的备份产生的类型,如果都没有定义则缺省是
"'existing"其有效选项是:
't' or 'numbered'总是建立编号备份。
'nil' or 'existing'只为已经有编号备份的文件建立编号备份,其他文件作单一备份
。
'never' or 'simple'只建立单一备份。
(3)范例
lark:->cp sourcefile destflie 拷贝文件sourcefil到文件destfile
。
lark:->cp */tmp 拷贝当前目录下所有文件到/tmp目录。
lark:->
16.cpio
(1)简介
cpio:向存档中拷贝文件或从存档中拷贝文件。
(2)部分参数说明
cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message] [-O
[ [user @]host:] archive] [-F[[user@]host:]archive]
[--file=[[user@]host:]archive] [--format=format] [--message=message] [--null]
[--restet-access-time] [--verbose] [--dot] [--append]
[--block-size=blocks] [--dereference] [--io-size=bytes] [--quiet]
[--force-local] [--help] [--version] < name-list [>archive]
cpio {-I |--extract}[-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H format] [-M
message] [-R [user][: .][group]] [-I [[user@]host:]archive] [-F
[[user@]host:]archive] [--file=[[user@]host:]archive] [--make-directories]
[--nonmatching] [--preserve-modification-time] [--numericuid-gid] [--rename]
[--list] [--swap-bytes] [--swap] [--dot] [--unconditional] [--verbose]
[--block-size=blocks] [-swap-halfwords] [--io-size=bytes]
[--pattern-file=file] [--format=format]
[--owner=[user][: .] [group]] [--no-preserve-owner] [--message=message]
[--force-local] [no-absolute-filenames] [--sparse] [--only-verify-crc]
[--quiet] [--help] [--version] [pattern…] [<archive]cpio
{-p|--pass-through} [-0adlmuvLV] [-R [user][: .] [group]]
[--null][--resct-access-time] [--make-directories] [--link] [--puiet]
[--preserve-modificationtime] [--unconditional] [--verbose] [--dot]
[--derefer-ence] [--owner=[uwer][: .] [group]] [--no-preserve-owner]
[--sparse] [--help] [--version] destination-directory <name-list
cpio有三种模式:
·copy-out模式:向存档文件中拷贝文件,从标准输入给出的文件列表(这个文件列
表可以用find命令来产生)读取源文件名,向标准输出写入存档文件。
·copy-in模式:从存档文件中拷贝文件,从标准输入读入存档文件,可以用通配符来
确定要拷贝的文件名,如果不给出文件名则拷贝所有文件。
·copy-pass模式:将文件从一个目录拷贝到另外一个目录,实际上是把copy-out和
copy-in模式结合起来,只不过不真的用一个存档文件,从标准输入给出的文件列表
读取源文件名,目标目录作为一个不带"-"的参数给出。
cpio支持下列文件格式:
binary,old ASCII,new ASCII,crc,HPUX binary,HPUX old ASCII,old tar,
and POSIX.1 tar
缺省的cpio产生binary格式的存档文件。
-O, --null:在copy-out和copy-pass模式,文件列表由空字符结束而不是由换行结
束。
-a, reset-access-time:在读取文件时重置文件的时间。
-A, --append:附加到已有的存档文件后,只工作在copy-out模式,存档文件必须是
由-O,-F指定的磁盘文件。
-b, --swap:在copy-in模式既交换bytes又交换halfwords等于-sS。
-B:将I/O的块大小改变为5120bytes缺省是512bytes。
--block-size=BLOCK-SIZE:将I/O的块大小改变为IO-SIZE bytes。
-d, --make-directories:如果需要就创建目录。
-E FILE, --pattern-fil=FILE:在copy-in模式从文件FILE中读出要解开的文件列表
。
-f, --nonmatching:只拷贝文件列表中没有文件。
-F, --file=archive:存档文件的文件名,如果目标设备是另外一台机器上的磁带机
则用"HOSTNAME:文件名"来处理,cpio自动加上username@(用户必须在那台机器的-/.
rhosts文件中添加本机器)。
--forc-local:在使用-F,-I,-O选项时即使文件名中有":"号也把它作为一个本地
文件来处理
-H FORMAT, --format=FORMAT:存档文件使用FORMAT(bin, odc, newc, crc, tar,
ustar, hpbin, hpodc)格式。
-I, --extract:使用copy-in模式。
-I archive:等同于 -F, --file=archive。
-k:无用(为某些兼容性而设)。
-l, --link:如果可能用连接文件代替拷贝文件。
-L, --dereference:对于文件连接直接拷贝文件而不是连接。
-m, --preserve-modification-time:产生文件时恢复文件的修改时间。
-M MESSAGE,--message=MESAGE:在备份媒体用完时给出提示信息MESSAGE(中间用%
d给出卷标)。
-n, --numeric-uid-gid:在文件列表时用数字的UID和GID代替名字。
--no-absolute-filenames:在copy-in模式用相对路径代替绝对路径。
--no-preserve-owner:在copy-in和copy-pass模式不改变文件的属主在恢复时恢复这
些属主,本参数对于普通用户是缺省选项。
-o, --create:使用copy-out模式。
-O archive:等同于-F, --file=archive。
only-verify-crc:在读CRC格式的存档文件时只检查每个文件的CRC而不解开文件。
-p, --pass-through:使用copy-pass模式。
quiet:不输出已拷贝的块的数目。
-r, --rename:交互式地给文件改名。
-R [user] [: .] [group], --owner [user] [: .] [group] :在copy-out和
copy-pass模式将所有文件的属主和组改变成设定的用户和组(只有超级用户才能使用)。
-sparse:在copy-out和copy-pass模式将小文件写入一个大块时用零来填补剩余部分
。
-s, --swap-bytes:在copy-in模式交换bytes。
-S, --swap-halfwords:在copy-in模式交换halfwords。
-t, --list:s'输出输入的文件列表。
-u, --unconditional:替代所有同名的现存文件而不给出提示。
-v, --verose:列出正在处理的文件给出"ls -1"格式的文件列表。
-V --dot:在处理每个文件时输出"."。
--version:输出版权信息并退出。
(3)范例
lark:->cpio -0 <filelist> d
cpio: sourcefile: truncating inode number
1 block
lark:->
从文件filelis中读出源文件列表,读入源文件并写入存档文件d。
lark:->cpio -i -v -F d
sourcefile
1 block
lark:->
从存档文件d中拷贝出文件。
17.crontab
(1)简介
crontab:操作每个用户的守护程序和该执行的时间表。
作者 Matthew Dillon
(2)部分参数说明
crontab file [-u user]:用指定的文件替代目前的crontab。
crontab - [-u user]:用标准输入替代目前的crontab。
crontab -l [ user]:列出用户目前的crontab。
crontab -e[ user]:编辑用户目前的crontab。
crontab -d[ user]:删除用户目前的crontab。
crontab -c[ user]:指定crontab的目录。
crontab文件的格式:M H D m d cmd
M:分钟(0-59)
H:小时(0-23)
D:天(1-31)
m:月(1-12)
d:一星期内的天(0-6,0为星期天)
cmd:要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环
境变量。
下面是一个例子文件:
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# 每天早上6点
10 6 * * * date
# 每两个小时
0 */2 * * * date
# 晚上11点以早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 14 4 * mon-wed date
# 1月份日早上4点
0 4 1 jan * date
(3)范例
lark:->crontab -1 列出用户目前的crontab。
# MIN HOUR DAY MONTH DAYOF WEEK COMMAND
10 6 * * * date
0 */2 * * * date
0 23-7/2, 8 * * * date
lark:->
18.csh
1.简介
见tcsh
19.cut
(1)简介
cut:将文件中的每一行都去掉一个域。
(2)部分参数说明
cut {-b byte-list, --bytes=byte-list} [-n] [--help]
[--version] [file...]
cut {-c character-list, --characters=character-list}
[--help] [--version] [file...]
cut {-f field-list, --fields=field-list} [-d delim] [-s]
[-delimiter=delim] [--only-delimited] [--help] [--veresion] [file...]
byte-list,character-list,和field-list是数字或一个区间,最小是1,区间格式
为"n-m",n为开始的数字,m为结束的数字,"n-"意味着行尾。
-b, --bytes bytd-list:只输出在byte-list区间的bytes,TABs和backspaces都占
1byte。
-c, --characters character-list:只输出在区间character-list内的字符TABs和
backspaces都占一个字符。
-f, --fields field-list:只输出在field-list内的域。
-d, --delimiter delim:指定在-f参数中的field-list的分割符(为delim中的第一
个字符,缺省为TAB)。
-n:不分割多byte的字符。
-s, --only-delimited:在-f参数中不输出没有域分割符的行。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->cat sourcefile
total 0
-rw-r--r-- 1 fangh users 0 Aug 23 21:46 destfile
lark:->cat -c 5-20 sourcefile
1 0
r--r-- 1 fangh
lark:->
20.date
(1)简介
date:打印或设置系统日期和时间。
(2)部分参数说明
date [-u] [-d datestr] [-s datestr] [--utc] [--universal]
[--date=datestr] [--set=datestr] [--help] [--version]
[+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
+FORMAT:控制如何显示日期
指令:%:%号
n:新行
t:TAB
时间域:
%H 小时(00..23)
%I 小时(01..12)
%k 小时(0..23)
%1 小时(1..12)
%M 分钟(00..59)
%p AM或PM
%r 12小时(hh:mm:ss[AP]M)
%s 从1970-01-01 00:00:00 UTC开始的时间
%S 秒(00..61)
%T 24小时(hh:mm:ss)
%X 时间表示(%H:%M:%S)
%Z 时区(如EDT)如没有指定时区则不显示
日期域:
%a 缩写形式的星期名(Sun..Sat)
%A 星期名(Sunday..Saturday)
%b 缩写形式的月名(Jan..Dec)
%B 月名(January..December)
%c 日期和时间(Sat Nov 04 12:02:33 EST 1989)
%d 每个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 等同于%b
%j 一年的第几天(001..366)
%m 月份(01..12)
%U 一年中的第几个星期,星期天为星期的第一天(00..53)
%w 每个星期的第几天(0..6)0为星期天
%W 一年中的第几个星期,星期一为星期的第一天(00..53(00..53))
%x 日期(mm/dd/yy)
%y 年份的后两个数字(00..99)
%Y 年份(1970...)
[MMDDhhmm[[CC]YY][.ss]]
MM 月份
DD 日期
hh 小时
mm 分钟
CC 年份的前两位(可选项)
YY 年份的后两位(可选项)
ss 秒(可选项)
只有超级用户才有权限设置系统时间(启动时在CMOS中读出)。
-d datestr, --date dates :显示datestr中指定的日期和时间。
-s datestr, --set datestr :设定datestr中指定的日期和时间。
-u, --universal:显示或设定格林威治时间(缺省为本地时间)。
-help:在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版权信息并退出。
(3)范例。打印两天前的时间:
lark:->date --date '2 days ago'
Fri Aug 22 20:20:08 CDT 1997
lark:->
打印月份和日期:
lark:->date ' + % B % d'
August 24
lark:->
21.dd
(1)简介
dd:拷贝一个文件(并可以同时转化它)。
(2)部分参数说明
dd [--help] [--version] [if=file] [of=file] [ibs=bytes]
[obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks]
[seek=blocks] [count=blocks]
[conv={ascii, ebcdic, ibm, block, unblock, lease, ucase, noerror, notrunc,
sync}]
if=file:以file作为源文件以代替标准输入。
of=file:以file作为目标文件一代替标准输出。
ibs=bytes:一次读bytes个byte。
obs=bytes:一次写bytes个byte。
cbs=bytes:一次读写bytes个byte,这个参数将改写bit和obs的值。
skip=blocks:从开头忽略blocks个ibs大小的块。
seek=blocks:从开头忽略blocks个obs大小的块。
count=blocks:只拷贝blocks个ibs大小的块。
conv=conversion[,conversion...]:转换文件,可转换的格式计算有:
ascll, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc,
sync
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将文件sourcefile拷贝到文件destfile。
lark->dd if =sourcefile of=destfile
0 + 1 records in
0 +1 records out
lark:->
22.df
(1)简介
df:报告磁盘剩余空间。
(2)部分参数说明
df [-aikPv] [-t fstype] [-x fstype] [--all] [--inodes]
[--type=fstype] [--exclude-type=fstype] [--kilobytes]
[--portabiliry] [--print-type] [--help] [--version] [file-name. . .]
-a, --all:列出BLOCK为零的文件系统缺省是不列出。
-i, --inodes:用inode使用状况来代替block使用状况。
-k, --kilobytes:用1K为单位来输出block(缺省是512bytes)。
-P, --portability:使用POSIX格式输出。
-T, --print-type:输出每个文件系统的类型。
-t, --type=fstype:只输出列在fstype中的类型的文件系统。
-x, --exclude-type=fstype:只输出不在fstype中的类型的文件系统。
-v:无用,只是为了同SYSTEM V版本的df兼容。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->df -a -T
Filesystem Type 1024-blocks Used Avaiable Capacity Mounted on
/dev/hdal ext2 497667 335214 136751 71% /
none proc 0 0 0 0% /proc
/dev/hda1 ext2 2454879 105267 2222699 5% /home
/dev/hda2 ext2 995147 49603 89413 5% /usr/local
lark:->
23.diff
(1)简介
diff:比较两个文件的不同。
(2)部分参数说明
diff [选项] 源文件 目标文件
-a:将所有文件当作文本文件来处理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-q --brief:只报告何处不同,不报告具体信息。
-c:使用纲要输出格式。
-e --ed:输出ed可以编辑的格式。
-f:输出同-c类似的反序格式。
-H:利用试探法加速对大文件的搜索。
-i:忽略大小写的变化。
-l --paginate:用pr对输出分页。
-n --rcs:输出RCS格式。
-r --recursive:比较目录时比较所有子目录。
--report-identical-files -s:两文件相同才报告。
-v --version:在标准输出上输出版本信息并退出。
常常利用diff来产生补丁程序(patch)。
(3)范例。比较destfile和sourcefile:
lark:->diff sourcefile destfile
1,2cl
< total 0
< -rw-r--r-- 1 fangh users 0 Aug 23 21:46 filelist
---
> ./sourcefile
lark:->
24.dialog
(1)简介
用来在shell编程中产生对话框。作者:John Gatewood Ham。
(2)范例
ark:-> dialog --title "test" --yesno "this is a test" 7 40
lqqqqqqqqqqqqqqqq test qqqqqqqqqqqqqqqqk
x this is a test x
x x
x x
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
x <Yes> <No> x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
lark.->
(1)简介
du:报告磁盘空间使用情况
(2)部分参数说明
du[-abcklsxDLS] [--all] [--total] [--count-links] [--sum-marize]
[--bytes] [--kilobytes] [--one-file-system]
[--separate-dirs] [--dereference] [--dereference-arge]
[--help] [--version] [filename...]
-a , --all:显示文件总和。
-b, --bytes:以byte为单位输出所占空间大小。
-c, --total:在处理完所有参数后给出所有这些参数的总计。
-k ,--kilobytes:以kilobytes为单位输出所占空间大小。
-l, --count-links:统计所有文件的大小即使它已经在另一个连接中被统计过了。
-s --summarize:对于每个参数只显示总和。
-x, --one-file-system:忽略不在本文件系统上的目录。
-D, --dereference-args:不统计是命令行的话参数的符号连接的文件。
-L, --dereference:不统计符号连接的文件。
-S, --separate-dirs:单独计算每个目录的大小,不包括子目录的大小。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->tmp>du
1 ./.X11-unix
15274 ./.data
4 ./.id4
15293 .
lark:/tmp>
26.echo
(1)简介
echo:显示一行文本。
(2)部分参数说明
echo [-ne] [字符串. . .]
echo {--help, --version}
-n :不输出新行。
-e:使echo可以输出下列ESC字符;
\a 警告(响铃)。
\b 退格。
\c 在行尾不另起一行。
\f 换页。
\n 换行。
\r 回车。
\t 制表符。
\V 垂直制表符号。
\ \ 反斜杠。
\ nnn 字符的八进制码是nnn。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意大多数shell内建echo命令,上述参数只对/usr/bin/echo起作用。
(3)范例
lark:->/bin/echo -e just \ \ wait
just \ wait
lark:->
27.ed
(1)简介
ed red:文本行编辑器。
(2)部分参数说明
ed [-] [-Gs] [-p字符串] [文件名]
red [-] [-Gs] [-p字符穿] [文件名]
-:在使用e,r,w,q和!命令时不输出信息。
-G:禁止向后一致性,作用于命令'G','V','f','l','m','t',和'!!'。
-s:禁止诊断,一般当ed的输入是一个脚本文件时使用该项。
-p字符串:以该字符串为提示符。
文件名:要编辑的文件名。
(3)范例
lark:->ed .lessrc
114
wq
114
lark:->
28.egrep
(1)简介
见grep
29.env
(1)简介
env:在修改过的环境中运行程序,运行完毕后不影响原环境设置。
(2)部分参数说明
env [-] [-1] [-u name] [--ignore-environment]
[--unset=name] [help] [--version][name=value]...[命令
[参数...]]
-u, --unset name:从原环境中删除变量(name为变量名)。
-, -I, --ignore-environment:开始一个空环境,忽略原环境的所有设置。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->env - ls
destfil destfile sourcefile
lark:->
30.expand
(1)简介
expand:将文件中的TAB转换为空格并输出到标准输出。
(2)部分参数说明
expand [-tab1[,tab2[, . . .]]] [-t tab1[,tab2[, . . .]]] [-i]
[--tabs=tab1[,tab2[, . . .]]] [--initial] [--help] [--ver-
sion] [文件名. . . ]
-,,-t,--tabs tab1[,bab2[, . . .]]:如果只有一个tab1,则将TAB转化为tab1个
空白(缺省为8)如果有tab2,tabe. . .则将第一个TAB转化为tab1个空格,第二个TAB转
化为tab2个空格,没有指出的全部转化为一个空格。
-e, --initial:只转化用来分开两个非空格和TAB字符的TAB为空格。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->expand test
abc
lark:->
31.fdformat
(1)简介
fdformat:低级格式化一张软盘。
作者:Werner Almesberger
(2)部分参数说明
fdformat [-n] 设备
支持的设备格式有:
/dev/fd0d360 (minor=4)
/dev/fd0h1200 (minor=8)
/dev/fd0D360 (minor=12)
/dev/fd0H360 (minor=12)
/dev/fd0D720 (minor=16)
/dev/fd0H720 (minor=16)
/dev/fd0h360 (minor=20)
/dev/fd0h360 (minor=24)
/dev/fd0H1440 (minor=28)
/dev/fd1d360 (minor=5)
/dev/fd1h1200 (minor=9)
/dev/fd1d360 (minor=13)
/dev/fd1H360 (minor=13)
/dev/fd1D720 (minor=17)
/dev/fd1H720 (minor=17)
/dev/fd1h360 (minor=21)
/dev/fd1h720 (minor=25)
/dev/fd1H1440 (minor=29)
(2)部分参数说明
-n:在格式化时不校验
32.fgrep
(1) 简介
见 grep
33.file
(1)简介
file:探测文件类型。
(2)部分参数说明
file [-vezL] [-f namefile] [-m magicfiles] 文件名...
-v:在标准输出上输出版本信息并退出。
-m magicfiles:指定用来代替缺省幻数文件(/etc/magic)的新幻数文件。
-z:探测压缩过的文件。
-c:输出正在处理的幻数文件的分析表格,常同-m参数联合使用来测试新幻数文件。
-f namefile:从文件namefile中读取要分析的文件名列表。
-L:允许符号连接。
文件名:要分析的文件名。
(3)范例
lark:/tmp>file*
destfile: ASCII text
clm.rc.OLD: English text
portnum:
rc.inetI.OLD:Bourne shell script text
lark:/tmp>
34.find
(1)简介
find:用来在大量目录中搜寻特定文件的强有力的工具。
(2)部分参数说明
find [路径. . .] [匹配表达式]
路径. . .:要搜寻的目录(可以是多个目录,用空格分开)。
匹配表达式:要搜寻的文件的匹配标准或说明。
-name文件名:告诉FIND要找什么文件;要找的文件包括在引号中(支持通配符*和?
)。
-perm模式:匹配所有符合指定数字模式值的文件,如果模式前面是"-"号则搜寻所有
除这个模式以外的所有模式。
-size n匹配大小为n个block的文件(若n后有nK大小的文件)。
-user用户名:搜寻所有属主为用户名(名称和ID都可以)的文件。
-group组名:搜寻所有组为组名的文件。
-atime n组名:搜寻所有组为组名的文件。
-atime n:搜寻在前n天访问过的文件。
-mtime n:搜寻在前n天修改过的文件。
-exec文件:对于每个匹配文件执行命令,标志{}用于指定命令执行时文件。
名出现的地方,命令必须中止于符号"\;"。
-print:输出搜寻结果到标准输出。
(3)范例
lark:/>find ./-name "passwd" -print
./user/bin/passwd
./home/ftp/etc/passwd
./etc/passwd
lark:/>
35.fortune
(1)简介
fortune:输出一段有趣的谚语或格言
作者:Ken Arnold
(2)范例
lark:/>fortune
"I must have a prodigious quantity of mind; it takes me as much as a
week sometimes to make it up."
--Mark Twain, "The Innocents Abroad"
lark:/>
36.grep
(1)简介
grep,egrep,fgrep:在文件中搜寻匹配的行并输出。
(2)部分参数说明
grep[-[[AB]]num][-[CEFGVBchilnsvwx]][-e]正则表达式
|-ffile] [文件名. . . ]
-A num:输出匹配行后的num行
-B num:输出匹配行前的num行
-V:输出版权信息
-f file:从文件中读入表达式
-q:不输出
-s:不输出错误信息
grep=Global Regular Expression Print, grep来自ed的搜寻所有符合某表达式的命
令:"g/re/p",其中re代表规则表达式。
rgrep是fixed grep,只能查询固定串。
egrep是extended grep扩展查询,支持某些增强的表达式。
(3)范例。在文件services中查找含有ftp的行。
lark:/etc>grep ftp services
ftp 21/tcp
tftp 69/udp
sftp 115/tcp
lark:/etc>
37.gzexe
(1)简介
gzexe:将可执行文件压缩成较小的可执行文件(类似于DOS下的PKLITE,LZEXE)。
(2)部分参数说明
gzexe[文件名. . . ]
-d解压缩
本命令对那些磁盘空间较小的用户特别有用。
(3)范例
lark:->ls -la cat
-rwxr-xr-x 1 fangh users 20916 Aug25 21:33cat*
lark:->gzexe cat
cat:
lark:->ls-la cat
-rw xr-xr-x 1 fangh users 11283 Aug 25 21:33 cat*
lark:->
38.gzip
(1)简介
gzip,gunzip,zcat:压缩或展开文件。
(2)部分参数说明
gzip[-acdfhlLnNrtv V19][-S suffix] [文件名 . . .]
gunzip[-acfhlLnNrtvV][-S suffix][文件名. . .]
zcat[-fhLV][文件名. . . ]
-d --decompree --uncompress:解压。
-h --help:显示帮助信息并退出。
-t --test:检验压缩文件。
-V --version:显示版权信息并退出。
-v:输出压缩信息。
-# --fast --best:#为1(fast)-9(best)数字越小速度越快,但压缩比越小,缺
省为6。
-c --stdout --to-stdout:压缩结果输出到标准输出,如不加-c参数,则gzip将源文
件压缩为.gz文件并删除源文件。
(3)范例
lark:->gzip -v sourcefile
sourcefile: 15.2% --replaced with sourcefile.gz
lark:->
39.head
(1)简介
head:显示文件的前几行。
(2)部分参数说明
head[-c N[bkm]][-n N][-qv][--bytes=N[bkm]][--lines=N]
[--quiet][--silent][--verbose][--help][--version]
[文件名. . .]
head[-N bcklmqv][文件名. . .]
-c N, --bytes N:输出文件的前N个字节。
-n N, --lines N:输出文件的前N行。
-q, --quiet, --silent:不输出文件名的信息。
-v, --verbose:输出文件名的信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。输出文件.lessrc的第一行。
lark:->head -n 1 .lessrc
forw-line
lark:->
40.hostid
(1)简介
hostid:显示或设置系统的HOSTID。
作者:Mitch Dsouza.
(2)部分参数说明
hostid [-v] [十六进制的ID]
-v:给出十进制和十六进制的ID。
对于每一台机器,其HOSTID是唯一的,只有超级用户才能更改。
(3)范例
lark:->hostid -v
Hostid is 650780800 (0×26ca2080)
lark:->
41.id
(1)简介
id:显示当前用户的用户名和组。
(2)部分参数说明
id [-a]
-a 参数用在支持一用户多组的系统上。
id在取得用户和user id和group id后从文件/etc/passwd,/etc/group中查出用户的用
户名和组名。
(3)范例
lark:-> id
uid=1000(fangh)gid=100(users)group=100(users)
lark:->
42.join
(1)简介
join:从两个文件中取出相同的行,按照指定的关键字为匹配的两行连接成一行。
(2)部分参数说明
join [-a 1|2][-v 1|2][-v empty-string][-o fieldlist. . .]
[-t char][-j[1|2]field] [-1 field] [-2 field]
文件1文件2
join{--help, --version}
-a file-number:文件1或2中不匹配的行也输出,file-number可以是1或2。
-e string:用字符串string代替输出的空域。
-1, -j1 field:在文件1的第field个域连接两个文件。
-2, -j2 field:在文件2的第field个域连接两个文件。
-j field:等于是-1 field -2 field。
-o field-list. . .:按照field-list中的格式构造输出行。
-t char:用字符char作为输入输出域的分割符。
-v file-number:为文件file-number的每一个不匹配的行打印一行代替通常的输出。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->join testfile1 testfile2
this is testfile is testfile
lark:->
43.kill
(1)简介
kill:中止一个进程
(2)部分参数说明
kill [-a信号|-p] [-a]进程号. . .
kill -l [信号]
kill向指定的进程发出特定的信号,如果没有指定信号则送出TERM信号,TERM信号将
杀死没有捕捉到这个信号的进程。对于某些进程可能要使用KILL(9)信号强制杀死。例如
:kill -9 11721。将强制杀死进程11721。大多数SHELL内建kill命令。
进程号. . :指定要杀死的进程列表,每个进程号可以是一个进程的id或者进程名。
-s:指定要送出的信号,信号可以由数字给出,也可以是信号名。常用的信号有KILL
(不能被进程忽略),HUP。
-P:只打印进程的ID不送出信号。
-I:打印所有信号列表(在/usr/include/linux/signal.h中定义)。
(3)范例。杀掉进程11721:
lark:->ps
PID TTY STAT TIME COMMAND
11668 pl s 0:00 -tcsh
11721 pl T0:00 cat
11737 pl R 0:00 cat
11737 pl R 0:00 ps
lark:!>kill 11721
[1] Terminated cat
lark:->
44.last
(1)简介
last:显示过去多少个用户或终端登录到到机器。
(2)部分参数说明
last:[-数目][-f文件名][-t tty] [-h 节点名][-i IP地址][-l][-y][用户名. . .
]
last从文件/var/log./wtmp中读出用户登录和离开的所有记录,并且可以查询某个用
户登录的情况,某个节点登录的情况,某个tty登录的情况。例如"last root -t
console"将列出所有root用户在控制台上登录的情况,如果不加参数则last将显示出所有
用户登录的情况。
-数目:确定显示多少行。
-f 文件名:用指定的log文件代替缺省的/var/log/wtmp文件。
-h节点名:只显示从某个节点登录的用户。
-l:用IP地址显示远端地址。
-t tty:只显示在特定tty上登录的用户。
-y:输出日期加上年份。
(3)范例。显示过去3次用户fangh登录的情况:
lark:->last -3 fangh
fangh ttyp1 csun01.ihep.ac.c Tue Aug 26 18:46 still logged in
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 22:32 - 23:14 (00:41)
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 19:58 - 21:59 (02:01)
lark:->
45.less
(1)简介
less:相对于more,用来按页显示文件。
作者:Mark Nudelman
(2)部分参数说明
less -?
less --help
less- V
less --version
less [-[+]aBcCdeEfgGiImMnNqQrsSuUVwX]
[-b bufs] [-h lines][-j line][-k keyfile]
[-{oO}logfile][-p pattern][-P prompt][-t tag]
[-T tagsfile] [-x tab] [-y lines][-[x]lines]
[+[+]cmd][--][文件名]. . .
less类似于more,但是less允许向前或向后浏览文件。less不全部读入文件后才显示
,所以在显示大文件时它的显示速度比vi之类的编辑器快。less采用termcap,所以它支持
的终端类型非常广泛。
-\? --help:列出less的所有操作命令。
-a:查询时从当前屏幕的最后一行之后开始查询。
-bn:指定less为每一个文件开nK的缓冲区。
-B:当less的输入是从管道中来的时候,其缓冲区的大小是字典设置 ,如果加上本选
项,则使用由-bn指定大小的缓冲区,但这有可能丢失前面输入的内容。
-c:从上往下刷屏,缺省的是从下往上刷屏。
-C:同-c,只是刷屏之前先清屏。
-d:less在哑终端上要输出错误信息,此参数强制less继续执行刷屏滚屏之类的命令
。
-e:当less第二次到达文件末尾时则退出,缺省的退出方式是命令"q"。
-E:当less第一次到达文件末尾时就退出。
-f:打开非正常文件(一个目录,或一个设备文件)。
-hn:指定回滚的最在行数。
-I:搜寻时忽略大小写。
-m:显示已经显示的文件百分比。
-q -Q:不输出响铃符号。
-r:显示控制符。
--version -V:显示版权信息。
(3)范例。显示test文件:
lark:-> less test
46.ln
(1)简介
ln:在文件间建立连接
(2)部分参数说明
ln [参数]源文件[目标文件]
ln[参数]源文件. . .dierectory
参数:
[-bdfinsvF][-s backup-suffix][-V{numbered, existing, simple}]
[--version-control={numbered, existing, simple}]
[--backup][--directory][--force][--interactive]
[--no-dereference][--symbolic][--verbose][--suf-
fix=backup-suffix][--help][-version]
-b, --backup:为删除的文件建立备份。
-d, -F, --directory:允许超级用户建立硬连接。
-f, --force:删除目标文件。
-i, interactive:在删除文件时给出提示。
-n, --no-dereference:如果目标文件是一个一个目录的符号连接则替代此符号连接
,而不是在这个目录中作连接。
-s, --symbolic:用符号连接代替硬连接。
-v, --verbose:输出每个要连接的文件的文件名。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
另外对链接文件做改变属性的动作是没有意义的,因为只有它们链接到的文件的属性才
是文件的真正属性。
(3)范例。将文件sourcefile连接到文件test:
lark:-> ln -s sourcefile test
lark:->ls -la test
lrwxrwxrwx 1fangh users 10 Aug 26 20:36 test -> sourcefile
lark:->
47.logname
(1)简介
logname:输出用户的登录时的用户名。
(2)范例
lark:->logname
fangh
lark:->
48.ls
(1)简介
ls,dir, vdir:列出目录下的文件(类似于DOS下的DIR命令)。
(2)部分参数说明
ls [-abcdefgiklmnopqrstuxABCFGLNQRSUX178] [-w cols] [-T cols] [-I
pattern] [--all] [--escape] [--directory]
[--inode] [--kilobytes] [--numeric-uid-gid] [--no-group]
[--hid-control-chars] [--reverse] [--size]
[--width=cols] [--tabsize=cols] [--almost-all] [--ignore-backups]
[--classify] [--file-type] [--full-time]
[--ignore=pattern] [--dereference] [--leteral] [--quote-name] [--trvitdobr]
[--sort={none,time,size,extension}] [--for mat={long,verbose,commas,across,
vertical,single-column}]
[--time={atime,access,use,ctime,status}] [--color[={yes,no,tty}]]
[--colour[={yes,no,tty}]][--7bit][--8bit] [--help][--version][name. . .]
-a, --all:列出目录系的所有文件,包括以"."开头的隐含文件。
-c, --time=ctime, --time=status:输出文件的i节点的修改时间,并按此排序。
-d, --directory:将目录当作文件一样显示,而不是显示其下的文件。
-e, --full-time:输出时间的全部信息,而不是输出简略信息。
-f -U, --sort=none:对目录下的文件不排序。
-g:无用。
-i, --inode:输出文件的i节点的索引信息。
-k, --kilobytes:如果输出文件大小,则按K的形式输出。
-l, --format=long, --format=verbose:输出文件的详细信息。
-m, --format=commas:横向输出文件名,以","作分割符。
-n, --numeric-uid-gid:用数字的UID,GID代替名称。
-o, --color, --colour, --color=yes, --colour=yes:输出彩色文件名。
-p -F,--classify:在每个文件名后附上一个字符以说明该文件的类型。
-q, --hide-control-chars:用?代替不可输出的字符。
-r, --reverse:对目录反向排序。
-s, --size:在每个文件名后输出该文件的大小。
-t, --sort=time:用时间对目录排序。
-u, --time=atime, --time=access, --time=use:用文件的上次被访问的时间来排序
。
-x, --format=across, --format=horizontal:输出按列输出,横向排序。
-A, --almost-all:输出除了"."". ."以外的所有文件。
-B, --ignore-backups:不输出以"-"结尾的备份文件。
-C, --format=vertical:输出按列输出,纵向排序。
-G, --no-group:输出文件的组的信息。
-L, --dereference:列出连接文件连接到的文件。
-N, --literal:不限制文件长度。
-R, --recursive:列出所有子目录下的文件。
-S, --sort=size:用文件大小排序。
-X, --sort=extension:用文件扩展名(最后一个"."后的字符)的字符顺序排序。
-l, --format=single-column:一行只输出一个文件。
-7, --7bit:不输出SCII(ISO646)(0x20-0x7E)以外的字符。
-8,--8bit:输出所有8-bit ISO8859(0x20-0x7E, 0xA1-0xFF)字符
-8, --8bit:输出所有8-bit ISO 8859 (0x20-0x7E,0xA1-0xFF)字符。
-w, --width cols:设定输出宽度为cols列。
-T, --tabsize cols:设定每个TAB宽度为cols列。
--color=no, --colour=no:不显示彩色文件名。
--help;在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版本信息并退出。
(3)范例。列出当前目录下的所有文件:
lark:->ls -la
total 6
drwxr-x--- 2 fangh users 1024 Aug 26 20:52 ./
drwxr-xr-x 19 root root 1024 Aug 26 21:09../
-rw-r--r-- 1 fangh users 15 Aug 21 21:57.bash_history
-rw-r--r-- 1 fangh users 34 Aug 20 20:41 .less
-rw-r--r-- 1 fangh users 114Aug 25 19:58 .lessrc
-rw-r--r-- 1fangh users 72Aug 24 18:43 sourcefile
lrwxrwxrwx 1fangh users 10 Aug 26 20:36 test ->sourcefile
lark:->
49.man
(1)简介
man:显示具有一定格式的在线手册。
(2)部分参数说明
man[-adfhkKtwW][-m system][-p string][-C config - file]
[-M path] [-P pager] [-S section -list] [section]查询名. . .
man搜寻的路径由MANPATH和(MAN)PAGER 这两个环境变量设置。
-C config_file:指定man.config这个配置文件的位置,缺省在usr/lib/man.config
。
-M path:指定man搜寻存放在线手册的路径。
-P pager:指定用来显示手册的程序,缺省/usr/bin/less。
-S section _list:选择手册的章节。
-k关键字:查询包含该关键字的所有man page。
man对于新手和老手来说都是非常有用的工具,用来快速查询命令和程序的使用方法和
参数。编程人员也可以用来查询C函数的用法。对于'rn(1)'或'ctime(3)'这样的输出,其
中括弧中的数字是指Unix手册中该文件所在的章节。当你打man3 ctime时,表示是要查阅
在第3节中的ctime的内容。下面是常见的Unix手册的分类。
1 用户命令
2 系统调用
3 库函数
4 设备和设备驱动程
5 文件格式
6 游戏
7 有用的杂类,如宏命令包
8 系统维护和管理命令
(3)范例。查询ls的用法:
lark->man ls
50.mtools
(1)简介
mtools:用来在UNIX下访问DOS下磁盘的工具包。
(2)工具介绍
mcd:进入DOS子目录。
mcd[DOS下的目录名]
mcopy:拷贝DOS文件。
mcopy[-tnvmoOsSrRA]源文件 目标文件
mcopy[-tnvmoOsSrRA]源文件 [源文件列表]目标目录
copy[-tnvm]MSDOS源文件
t:将文本文件中的回车和换行符转化为换行符。
n:覆盖已有文件时不给出提示信息。
medl:删除DOS文件。
medl [-v] msdos文件[msdos文件列表]
mdeltree:删除DOS目录。
mdeltree[-v]msdos目录[msdos目录列表]
mdir:查看DOS目录。
mdir[-w]mdos目录
mdir[-f][-w][-a]msdos文件[msdos文件列表]
-w 输出宽行文件列表(不包括时间信息)同DOS下的dir/w。
-a列出隐藏文件。
-f不计算磁盘剩余空间。
mformat:格式化DOS磁盘。
mformat[-t磁道][-h磁头][-s扇区][-l 扇标]
[-F][-I文件系统版本][-S大小代码][-2 0磁道上的扇区
][-M软件扇区大小][-a][-X][-C]
[-H隐藏扇区][-r根扇区]驱动器:
mkmanifest:创建一个恢复UNIX格式的文件名的SHELL。
mkmanifest[文件名]
mlabel[-ves]驱动器:[新卷标]
c清除原有卷标。
s显示原有卷标。
mmd:创建DOS目录。
mmd[-voOsSrRA]msdos目录[msdos目录列表]
mmove:移动DOS下的文件。
mmove[-voOsSrRA]源文件 目标文件
mmove[-voOsSrRA]源文件[源文件列表]目标目录
mmount:mount DOS磁盘。
mmount msdos驱动器[转载参数]
mtype:显示DOS下的文件。
mtpye[-ts]msdos文件[msdos文件列表]
t观看文本文件。
s略去高位字符。
mrd:删除DOS下的目录。
mrd[-v]msdos目录[msdos目录列表]
mren:将DOS下的文件改名。
mren[-voOsSrRA]源文件 目标文件
51.mesg
(1)简介
mesg:选择接收或者不接收其他用户发来的信息。
(2)部分参数说明
mesg[n][y]
此命令用来控制是否接受其他用户利用talk或是write向用户发出的信息(缺省是接受
),如果用户不想被打扰的话(例如用户正在编辑文件时)使用merg n就可以不接受别的
用户向用户的终端发过来的信息,不过这样有可能用户会错过别的用户发出的谈话请求,
如果用户想取消这一设置使用mesg y就可以恢复接受其他用户发来的信息.mesg不跟参数则
显示用户目前的设置情况。
(3)范例
lark:->mesg n
lark:->mesg
is n
lark:->
52.mkdir
(1)简介
mkdir:建立目录(同DOS下的md)。
(2)部分参数说明
mkdir[-p][-m权限][--parents][--mode=权限][--help]
[--version]目录列表
(3)范例
-m, --mode权限:给予建立的目录以设定的权限(缺省为drwxr-xr-x)。
-p, --parents:确定输入的每一层目录都存在,建立所有不存在的目录,例如
mkdir -p test/book如果test目录不存在则建立test目录。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
53.mknod
(1)简介
mknod:建立特殊文件。
(3)部分参数说明
mknod[选项]文件名{bcu}major minor
mknod[选项]文件名p
Options:
[-m 权限][--mode=权限][--help][--version]
mknod和来建立FIFO(管道文件)文件,特殊字符文件,特殊块文件。
p建立FIFO文件。
b建立块文件(有缓存)。
c,u建立字符文件(无缓存)。
注意 当建立块文件和字符文件时必须给出设备的major和minor数,mknod常常被和来
建立设备文件(/dev目录下都是设备文件)。
-m, --mode权限:给予建立的文件以设定的权限(缺省为0666)。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->mknod tt p
lark:->ls -la tt
prw-r--r-- 1 fangh users 0 Sep 2 20:33 tt|
lark:->
54.more
(1)简介
more:在终端上按页观看文件的过滤器。
more的功能没有less那么强大。而且less还提供了对more的模拟,不过一般和户可能更
习惯于使用同DOS环境下相似的more.
(2)部分参数说明
more[0dlfqesu][-num][+/要搜寻的字符串][+行数][文件列表]
-num:设定屏幕的大小(行数)
-d:more给出提示"[Press space to continue, 'q' to quit.]"在输入错误的命令时
给出"[Press 'h' for instructions.]"来代表响铃。
-l:通常more将^L看成是一个特殊字符,如果文件中含有这个字符则more会在这一行停
下来,此参数屏蔽这一特性。
-f:让more逻辑地计算文件的行数,缺省是按显示在屏幕上的行数来计算的。
-p:不滚屏,而是在清屏后显示下一屏。
-c:不滚屏,而是从上到下显示下一屏。
-s:将多个连续的空行转化成一行。
-u:屏蔽下划线。
+/:设定要搜寻的字符串。
+行数:从文件的第几行开始显示。
(3)范例。显示文件/etc/group并搜寻字符串bbs:
lark:->more+/bbs/etc/group
. . .skipping
users::100:games
nogroup::-1:
bbs:x:99:bbs,bbsroot,bbsuser
lark:->
55.mv
(1)简介
mv:将文件改名。
(2)部分参数说明
mv[参数]源文件目标文件
mv[ 参数]源文件 列表(支持通配符)目标目录
Options:
[-bfiuv][-S backup-suffix] [-V{numbered, existing,simple}] [--backup]
[--force][--interactive][--update][--verbose][--suffix=backup-suffix]
[--version-control={numbered,existing,simple}][--help][--version]
mv将文件从一个文件名更改到另一个文件名,或者将一批文件从一个目录移动到另外
一个目录。
注意 在不同的文件是移动文件时,只能移动普通文件。
-b, --backup:为要移动的文件制作备份。
-f, --force:强制覆盖已有文件。
-i, --interactive:在覆盖已有文件前给出提示让用户选择是否覆盖。
-u, --update:在目标文件的时间比原文件新时不覆盖目标文件。
-v, --verbose:在移动每个文件时输出相应信息。
-help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->mv -v sourcefile destfile
sourcefile ->destfile
lark:->
56.newgrp
(1)简介
newgrp:改变用户的组ID。
sg:以用户的另一组ID运行命令。
(2)部分参数说明
new grp[-][组]
sg[-]组[-c 命令]
new grp这条命令用来在用户登录后改变用户的组ID,如果不跟"-"参数,则所有环境
设置将被继续下来,反之则重新初始化,使用这条命令时如果不跟参数,则将用户的组改
变为/etc/passwd文件中缺省组,在输入命令后会提示让用户输入密码。如果用户不是要改
变到的组的成员或该组的密码部分是空的,则该用户将被屏蔽。sg命令同newgrp类似,但
是该命令不改变用户的shell。在运行完给定的命令后退回原先的组ID和shell。
(3)范例。改变用户的组ID到sys:
bash # new grp sys
#exit
exit
hash #
57.nice
(1)简介
nice:以设定的优先权来运行程序。
(2)部分参数说明
nice[-n adjustment]
[-adjustment][--adjustmen=adjustment][--help][--version][命令[参数列表]]
-n adjustment, -adjustment, --adjustment=adjustment:adjustmen为要调整的新
优先权,缺省为10,最高为-20(优先权最高)最低为19(优先权最低)
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。以优先权-19运行程序mpg123:
lark:->nice -19/usr/local/bin/mpg123 music1.mp3
58.passwd
(1)简介
passwd:设置用户的密码。
(2)部分参数说明
passwd[-f|-s] [用户名]
passwd[-g][-r|R]组名
passwd[-x max] [-n min] [-w warn] [-i inact]用户名
passwd{-l|-u|-d|-S}用户名
用户可以用passwd这个命令更改自己的登录密码,一般用户只能更改他自己的密码,
超级用户可以更改其他所有用户的密码,超级用户和组的管理者可以更改组的密码,还可
以用这个命令来更改用户的其他信息,如用户的全名,用户的登录shell,用户的密码失效
的时间间隔等等。用户首先被提示输入旧密码,程序接受这个密码并将其加密后同文件
/etc/passwd(或/etc/shadow如果有shadow的话)中存储的旧密码进行比较,用户只有一
次机会输入正确的密码,但是超级用户不必输入,因为这样才可以替那些忘记密码的用户
更改密码。用户的密码可以由大小写字母和阿拉伯数字及标点符号组成,最长8位,最短5
位。如果用户输入的密码符合条件,则passwd提示用户再输入一遍以便确认,在两次输入
密码相互吻合之后就将用户的密码改变。如果使用选项-g,则是让超级用户和组的管理者
更改组的密码,如果不加组名则使用当前组。在使用-g选项的的同时使用-r选项则解除组
的密码,使得任何一个用户都可以具有访问这个组的和,反之使用-R选项则让这个组对任
何用户都是不可访问的。超级用户可以用选项-x,-n,-w,-i选项来设定用户密码的使用期限
。-x选项用来设定用户密码有效的最长期限,在max天后用户需要改变密码,而-n选项则设
定用户只有在min天之后才能改变密码,-w选项用来设置警告用户的天数,-i选项用来设置
在incact天后将用户的帐号屏蔽掉,在inact天后用户将不能登录入自己的帐号。使用选项
-l可以屏蔽一个用户的帐号(将用户的密码改成一个不可能解密的值),使用选项则恢复
这个用户的帐号,密码被更改到上一次的值,即-l选项的逆过程。使用-S选项则输出用户
帐号的状态,输出的信息由下列部分组成:第一部分是表示用户的帐号是屏蔽(L),无密
码(NP),有可使用的密码(P),第二部分是最后一次改变密码的时间。下面四个部份分
别是最小使用密码时间,最长使用密码时间,警告时间,无效时间。即上文所述-n,-x,
-w,-i选项所设置的时间。
下面向读者介绍一下密码设置应注意的一些问题,对于UNIX系统来说,其安全性同每
个用户的密码都有关系,一个设置得很好的密码会让攻击系统的黑客花费很长的时间而一
无所得,而一个简单的密码会让一个精心设置的系统的安全毁于一旦。因而仔细地挑选密
码对于每个用户来说都是一件很重要的工作。下面给出设置密码的一些建议:不要使用自
己或家人的名字的汉语拼音,生日,门牌号电话号码来组成密码,也不要使用一个字典里
能查得到的英文单词作来密码,这些都属于容易攻击的密码范围,也不要将密码记在一个
别人看得见的地方。另外为了使密码易记,可以使用下面的方法,以一句英文句子的第一
个字母或最后的五个字母来作为密码,例如:
Do you still love me tommorow?
密码为Dyslmt?
这就是一个黑客们不大可能加入字典的一个密码,其安全性显然较好。另外密码中最
好包含数字和大小写,这样安全性会有所提高。
(3)范例。更改密码:
lark:->passwd
Changing password for fangh
Old password:oldpass 密码并不显示出来
Enter the new password(minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password:newpass
Re-enter new password:newpass
Password changed
lark:->passwd-S 显示用户情况
fangh P09/05/97 0 99999 7-1
lark:->
59.paste
(1)简介
paste:将不同文件的行连接起来。
(2)部分参数说明
paste[-s][-d
delim-list][--serial][--delimiters=delimlist][--help][-version][文件列表. . .
]
-s, --serial:一次只从一个文件中取一行,而不是从每个文件中取一行。
-d, --delimitesr delim-list:使用delim-list中的符号来代替缺省的TAB键为行为割
符。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
缺省的paste将输出到标准输出上。
(3)范例。将文件sourcel source2输出到文件dest中:
lark->paste sourcel source2 >dest
60.pr
(1)简介
pr:处理文件以便打印,输出到标准输出。
(2)部分参数说明
pr[+PAGE][-COLUMN][-abcdfFmrtv][-e[in-tab-char[in-tab-width]]][-b
header][-i[out-tab-char[out-tab-width]]] [-l
page-length][-n[number-separator[digits]]][-o
left-margin][-s[column-seqarator]][-w pagewidth][--help][--version][文件列表. .
.]
+PAGE:从第一PAGE页开始打印。
-COLUMN:输出COLUMN栏。
-d:将输出的每一行后加一新的空白行。
-e[in-tab-char[in-tab-width]]将TAB扩展为空格,in-tab-char为设定的TAB符(缺省
就是TAB),in-tab-width,为每个TAB扩展为几个空格,缺省为8个。
-F, -f:在页间使用换页符,缺省使用新行填满剩余部分。
-h header:用header字符串来代替缺省的文件名作为输出的标题。
-i[out-tab-char[out-tab-width]]:将空格缩定写成TAB,out-tab-char为设定的
TAB符(缺省就是TAB),out-tab-width为几个空格缩写为TAB,缺省为8个。
-l page-length:设置输出的每页有page-length行。
-m:将所有文件同时并行输出到几个栏位内。
-n[number-separator[digits]]:输出行号,number-separator为行号后的字符。缺省
为TAB,digits为行号的位数,缺省为5。
-o left-margin:设定左边界为left-margin个空格。
-r:打不开文件时不输出错误信息。
-s[column-seqarator]:用单个字符column-separator分栏,缺省为TAB。
-w page-width:设定页宽为page-width列,缺省为72。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。对文件destfile进行处理:
lark:->pr -f destfile -n
97-09-08 21:15 destfile Page 1
1 total9
2 -rw-r--r 1fangh users 172 Sep 6 17:09 aaa
3 -rw-r--r 1fangh users 0 Sep 8 21:15 desfile
4 -rw-r--r 1fangh users 99 Sep 6 21:08 destfile
5 -rw-r--r 1fangh users 28 Sep 7 14:28 list
6 -rw-r--r 2fangh users 1024 Sep 6 17:09 mail/
7 -rw----- 1fangh users 3652 Sep 8 15:45 mbox
8 drwxr-xr-x 6fangh users 1024 Sep 6 16:57 mp3/
lark:->
(1)简介
ps:查看进程状态。
(2)部分参数说明
ps[-][lujsvmaxScewhrnu][txx][O[+|-]kl[[+|-]k2. . .]
--sortX[+|-]key[,[+|-]]key[,. . .]] --help --vesion [pids]
-l:长列表。
-u:用户格式:给出用户名和开始的时间。
-j:作业格式:给出pgid,sid。
-s:信号格式。
-v:虚拟存储器格式。
-m:显示内存信息。
-f:给出树状格式。
-a:显示其他用户的进程。
-x:显示没有控制台的进程。
-c:从task-struct中给出进程名。
-e:显示环境。
-w:宽行输出,不自动换行。
-h:无标题。
-r:只显示正在运行的程序。
-n:用数字来输出USER和WCHAN。
txx:只显示受tty.xx控制的进程。
pids:只显示特定的进程。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
下面解释一下各栏的意义:
FLAGS:长格式的F域。 S: 睡眠。
UID: 用户的ID。 D: 不可打断的睡眠。
PID: 进程的ID。 T: 停止或跟踪。
PPID: 父进程的ID。 Z: 僵尸进程。
PRI: 进程优先级。 W: 进程没有驻留页。
NI: 标准UNIX的优先级 N: 进程有一负nice值。
SIZE: 虚拟内存的大小。 TTY: 进程的控制台。
RSS: 驻留空间的大小。 PAGEIN:主内存页失败的数目(页失败造成页
WCHAN:进程等待的内核事件。从磁盘或CACHE中读取)。
STAT: 进程状态:代码如下。TRS:文本驻留大小。
R: 正在运行。 SHARE:共享内存。
SWAP:交换设备上的K字节数。
(3)范例。显示当前进程:
lark:->ps -c
PID TTY STAT TIME COMMAND
8724 p4 s 0:00 tcsh
8876 p6 R 0:00 ps
lark:->
62.pwd
(1)简介
pwd:显示正在工作或当前目录名。
(2)部分参数说明
pwd [--help, --version]
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意pwd输出的是真实径名,它不会输出符号连接的目录名。
大多数UNIX shell内建pwd命令,这样用户运行的就有可能不是/bin/pwd这个 命令。
(3)范例。列出当前工作目录:
lark:->pwd
/home/fangh
lark:->
63.quota
(1)简介
qutoa[-guv|q]
qutoa[-uv|q] 用户名
qutoa[-gv|q] 组名
-g:显示用户所在某个组的磁盘限制。
-u:显示用户的磁盘限制(缺省设置)。
-v:显示没有分配空间的文件系统的分配情况。
-q:显示简洁的信息,除了超过限额的情况一般不显示。
注意 Linux缺省是不设置quota的,如果用户要设置quota请阅系统管理部分。
(3)范例
lark:->quota
Disk quotas for users fangh (uid 10000):none
lark:->
64.rcp
(1)简介
rcp:在计算机间拷贝文件。
(2)部分参数说明
rcp [-px][-k realm]源文件名 目标文件名
rcp[-px][-r][-k realm]源文件列表 目标目录
-r:如果源文件名是目录,则拷贝所有子目录,目标文件必须也是目录。
-p:尽量保持文件的修改时间和访问权限。
-k:要求rcp获得外部许可。
-x:给拷贝的数据流用DES方法加密。
注意 要成功地拷贝文件,用户必须在目标机器上具有运行rsh的权利。参见rsh和
rlogin。
(3)范例。从机器siskin上拷贝文件:
lark:-> rcp siskin:/home/fangh/mbox./mbox
lark:->
65.reset
(1)简介
reset:将终端复位。
在使用终端的过程中,有时会发现屏幕在字符"花"掉了,这时使用reset就可以恢复,
例如在运行完电路分析软件PSPICE后,就会发现屏幕字符错乱,使用reset就恢复正常。
reset调用tput函数,向终端发出复位信号。如果屏幕被Ctrl+S锁住了,可以用Ctrl+Q来解
除锁定。
(2)范例。将终端复位。
lark:->reset
66.rm
(1)简介
rm:删除文件或目录。
(2)部分参数说明
rm [-dfirvR][--directory][--force][--interactive]
[--recursive][--help][--version][--verbose]文件名列表. . .
-d, --directory:本选项将用unlink替代rmdir来删除目录,只有超级用户有权使用。
这种删除方法不用先使目录为空,但本选项在目录非空时会造成目录中的文件簇丢失,在
执行这个命令后可以用fsck来修复文件系统。
-f, --force:忽略不存在的文件,并且不给用户任何提示。
-i, --interactive:在删除每个文件时提示用户选择"y"或"n"。
-r, -R, --recursive:将整个目录删除,连带所有子目录。
-v, --verbose:删除每个文件时输出文件信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意 在LINUX
下如果产生类似于"-f"这种文件名的文件,删除是先跟"--"选项。这表明后面所跟的"-f"
不是选项而是文件名,例如"rm-- -fle"是删除文件"-file",在删除文件名中包含特殊字
符的文件时,可以用"\+特殊字符",或用""将文件名括起来,例如要删除文件"this is
a test"可以用下列命令:
rm this/\is \a \test或者
rm"this is a test"
另外要特别注意,使用rm-rf*这个命令,如果用户是超级用户,并且在root下使用此命令
,那么系统的所有文件将被删除。而在UNIX下恢复文件几乎是一
件不可能的事情。因而要谨慎对待这个命令。另外建议用户将rm定义为"rm-i",并加入到
用户的登录文件中。
(3)范例。删除文件destfile。
lark:->rm -v destfile
destfile
lark:->
67.rmdir
(1)简介
rmdir:删除空的目录。
(2)部分参数说明
rm"this is a test">
rmid[-p][--parents][-help][--version]目录列表. . .
-p --parents:例如rm -pdir/dir2如果删除dir2后dirl已经为空目录,则删除目录
dir1。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。删除目录test:
lark:->rmdir test
lark:->
68.set
(1) 简介
set:显示或设置环境变量。
unset:删除环境变量。
(2) 部分参数说明
set变量名=变量值
如不跟参数则显示当前设置:
unset变量名
这两个命令都是shell内建的命令。
(3) 范例
lark:->set term=vt100 设置变量term为vt100
lark:->unset term 删除变量 term
69.sh
(1)简介
见bash
70.sleep
(1)简介
sleep:延迟设定的时间。
(2)部分参数说明
sleep[--help] [--version] number[smhd]
sleep延迟由 number+smhd给出的时间。
Smhd的含义是:
S秒 h小时
m分钟 d天
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->sleep 1 m 等待1分钟
lark:->
71 sort
(1)简介
set:将文本文件排序。
(2)部分参数说明
sort [-cmus][-t间隔符][-o 输出文件名][-T临时目录]
[-bdfiMr][+POS1[-POS2]][-k POS1[,POS2]][文件名列表. . .]
sort {--help, --version}
sort有三种使用方式:缺省的是将文本文件排序,还可以合并文件。
-c:检查文件是否已经排序,如果没有则给出错误信息并退出。
-m:将文件列表中的文件作为一个组来排序,并合并起来,每个文件必须先各自排序
。
-b:排序时忽略行首的空白。
-d:按电话本的目录方式排序忽略了字母,数字和空白以外的所有字符。
-f:将小写字母当作大写字母来排序,例如"b"作为"B"来排序。
-i:忽略ASCII字符内码不在范围040-0176之间的字符。
-M:将每一行开头如果是月份的英文缩写的前三个字母的话被按月份大小排序。
-n:按数字大小而不是字母顺序来排序。
-r:反向排序。
-o输出文件名:将输出重定向到文件中取代缺省的标准输出。
-t间隔符:用设定的间隔符取代缺省的空格符。
+POS1[POS2]:用每一行的第POS1列到第POS2列来排序,如不给出POS2则到行尾。
-k POS1[,POL2]:同上。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。列出文件testfile的内容:
lark:->cat testfile
231
this is a test
1231
do you know
321
let's go
lark:->sort testfile 将文件testfile排序
1231
231
321
do you know
let's go
this is a test
lark:->sort -n testfile 将文件testfil按数字大小排序
231
321
1231
do you know
let's go
this is a test
lark:->
72.split
(1)简介
split:分割文件。
(2)部分参数说明
split [-lines] [-l lines][-h bytes[bkm]][-C bytes[bkm]]
[--lines=lines] [--bytes=bytes[btm]] [--line-
bytes=bytes[bkm]] [--help][--version] [输入文件[输入文件]]
输出文件名为输出文件的名称,程序自动在其后加上aa,ab,ac,. . . .,缺省为x。
-lines,-l lines, --lines=lines:从输入文件中读出lines行,然后写入一个新的输
出文件。
-b bytes[bkm], --bytes=bytes[bkm]:从输入文件中读出bytes(b -512比特,k -1
K,m-1兆)大小的数据,然后写入一个新的输出文件。
-C bytes[bkm], --line-bytes=bytes[bkm]:写入每输出文件的一行的大小被限制为
bytes大小。
-help:在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版本信息并退出。
(3)范例。分割文件tcsh.txt:
lark:->split tcsh.txt tcsh.txt
lark:->ls -la tcsh*
-rw-r--r-- 1 fangh users 252409 Sep 19 13:30 tcsh.txt
-rw-r--r-- 1 fangh users 48074 Sep 19 13:30 tcsh.txt.aa
-rw-r--r-- 1 fangh users 46000 Sep 19 13:30 tcsh.txt.ab
-rw-r--r-- 1 fangh users 46097 Sep 19 13:30 tcsh.txt.ac
-rw-r--r-- 1 fangh users 47867 Sep 19 13:30 tcsh.txt.ad
-rw-r--r-- 1 fangh users 43427 Sep 19 13:30 tcsh.txt.ae
-rw-r--r-- 1 fangh users 20944 Sep 19 13:30 tcsh.txt.af
lark:->
(1)简介
stty:设置或显示终端行数的设置情况。
(2)部分参数说明
stty[设置. . .]
stty{-a,--all,-g,--help,--save,--version}
stty如果不跟参数,则输出当前的终端设置情况。如跟参数则用"-"表示关闭该设定。
控制设定:
[-]parenb:输出时产生奇偶校验位,并且必须输入时也带奇偶校验。
[-]parodd:设置为奇校验。
cs6 cs6 cs7 cs8:设置字符大小为5,6,7或8比特。
[-]hupcl[-]huph:当本终端最后一个进程结束时送出hangup信号。
[-]cstopb:每个字符用两个停止位,加"-"号时为一个。
[-]creak:允许接受输入。
[-]clocal:禁止调制解调器控制信号。
[-]crtscts(np):使能RTS/CTS握手信号。
输入设定:
[-]ignbrk:忽略break字符。
[-]brkint:break字符产生一个中断。
[-]ignpar:忽略奇偶校验错的字符。
[-]parmrk:标志奇校验错的字符。
[-]inpck:使能对输入的奇偶校验检查。
[-]istrip:对输入字符的高八位清零。
[-]inlcr:将换行符转换为回车符。
[-]igncr:忽略回车。
[-]icrnl:将回车符转换为换行符。
[-]ixon:使能XON/XOFF流控制。
[-]ixoff[-]tandem:如果输入缓冲满则输出停止字符,当输入缓冲空时输出开始字符
。
[-]iuclc(np):将大写字符转换为小写字符。
[-]ixany(np):允许任何字符重置输出。
[-]imaxbel(np):如果新的字符来到时输入缓冲满则响铃,但是并不清缓冲。
[-]olcuc(np):将小写字母转变为大写字母。
[-]ocrnl(np):将回车符转变为新的换行符。
[-]onlcr(np):将换行符转变为回车加换行符。
[-]onocr(np):不在第一列输出回车。
[-]ofill(np):用填充字符来代替时间延迟。
[-]ofdel(np):使用删除符代替空白符为填充时使用的字符。
nll n10 (np):换行延迟类型。
cr3 cr2 cr1 cr0 (np):回车延迟类型。
tab3 tab2 tab1 tab0 (np):水平制表延迟类型。
bs1 bs0 (np):退格延迟类型。
vt1 vo0(np):垂直制表延迟类型。
ff1 ff0 (np):表格延迟类型。
本地设置:
[-]isig:使能中断,退出,挂起等特殊字符。
[-]icanon:使能删除,杀死,等特殊字符。
[-]iexten:使能非POSIX标准的特殊字符。
[-]echo:输入回显。
[-]echoe,[-]crterase:将删除符回显为退格-空格-退格。
[-]echok:在杀死符后回显新行。
[-]echonl:没有回显其他字符时也回显新行。
[-]noflsh:在中断和退出等特殊字符后禁止清空缓冲。
[-]xcase(np):在设置了icanon的情况下用"\"加小写字母来输入和显示相应的大写字
母。
[-]tostop(np):停止在后台的作业向终端输出。
[-]echoprt[-]prterase(np):在符号"\"和"/"之间将删除符回显为后退符。
[-]echoctl[-]ctlecho(np):用' ^c'的形式来输出控制符。
[-]evenp[-]parity:同parenb -parodd cs7。加'-'后,同-parenb cs8。
[-]oddp同parenb parodd cs7。加'-'后,同-parenb cs8。
[-]nl同-icrnl -onlcr。加'-'后,同icrnl。
合并设定:
ek:交删除和杀死符重置到缺省值。
sane:将所有设置重置到缺省值。
[-]pass8:同-parenb-istrip cs8。加'-'后,同parenb istrip cs7。
[-]litout:同-parenb -istrip -opost cs8。加'-'后,同parenb istrip opost
cs7。
特殊字符:
intr送出中断信号。
quit送出退出信号。
erase删除输入的最后一个字符。
kill删除当前行。
eof送出文件结束符。
eol行结束符。
eol2(np):交替的行结束符。
swtch(np):不同SHELL之间切换。
start重新开始输出。
stop停止输出。
susp送出终端停止符。
dsusp(np):在清空输入缓冲后送出终端停止符。
rprnt(np):重绘当前行。
werase(np):删除输入的最后一个单词。
特殊设定:
minN:当设定-icanon后,在特定时间内最少要输入N个字符。
TimeN:设定上一选项的特定时间。
ispeed N:设定输入速度为N。
ospeed N:设定输出速任*N。
rows N (np):通知系统核心终端有N列。
cols N columns N (np):通知系统核心终端有N行。
size(np):输出系统核心已知的终端的行列数。
line N(np):使用行设定N。
speed:输出终端的速度。
N:设定输入和输出的速度为N,N可以为:
0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200
38400 exta extb。
exta同19200;extb同38400。如果设定了0又设定了-clocal则终端将被挂起。
选项:
-a, --all:输出所有设置。
-g, --save:输出所有设置,输出格式为另一个stty可以恢复当前设置的格式。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。输出当前设置:
lark:->stty -a
speed 9600 baud;row 0; columns 0;line =0;
intr=^C;quit=^\;eras=^?;kill=^U;eof=^D;eol=<undef>;
eol2=<undef>;start=^Q;stop=^S;susp=^Z;rprnt=^R;werase=^W;
lnext=^V;flush=^O;min=1;time=0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon
-ixoff
-iucle -ixany -imaxbel
opost -olcuc -ocnl onlcr -onocr -onlret -ofill -ofell -ofdel nl0 cr0 tab0
bs0
vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop
-echoprt
echoctl echoke
lark:->
74.sync
(1)简介
sync:清空LINUX文件系统的缓冲区。
在系统的CPU停止工作以前必须调用该命令来将系统的缓冲区写入硬盘。REBOOT和HALT
指令都将调用该命令来清空缓冲区。LINUX的优点之一就是磁盘存取速度快,这是因为它将
不用的内存都拿来作缓冲区了,这带来的问题就是在系统前必须将缓冲清空,否则就会丢
失信息和数据。请看Linus本人是如何说的:"sync这个命令只保证在一定时间内将数据写
入硬盘,这需要一定的时间写完所有的数据,如果用户在执行这条命令后马上关机的话,
请稍等片刻。"(但是REBOOT和HALT命令会代替用户作这些工作。)
update -周期性地清空LINUX文件系统的缓冲区。
它有两种工作模式,一种是缺省地每5秒钟写一些块(不调用sync),一种是每30秒调
用一次sync。在系统启动时update作业应该越早运行越好,在SLACKWARE版本中在
/etc/rc.d/rc.S中的第二条命令就是运行update。它的进程号一般是13。
(2)部分参数说明
update[选项]
-S:只使用sync工作。
-a秒:设定调用sync的时间间隔,缺省是30秒。
-f秒:设定缺省工作方式的时间间隔,缺省是5秒。
75.su
(1)简介
su:改变用户的ID或成为超级用户。
作者为Julianne Frances Hargh(jfh@tab.com)。
su可一让用户在一个登录的shell中不用退出就可以变成另外一个用户,如果后面不跟
参数,则su缺省地变成超级用户。执行su命令时,程序会让用户输入密码,如果密码不正
确,则程序将给出出错信息后退出,所有su的动作都会被系统记录在一个log文件中,以便
探测谁在恶意攻击系统。su之后,当前的所有环境变量都会被传递过去,但是路径值$
PATH将被重置为/bin:/usr/bin(对一般用户)或/sbin:/bin:/usr/sbin:/usr/bin(对超
级用户)这两个缺省值可以通过改变文件/etc/login.defs中的ENV_PATH值和ENY_SUPATH的
值来改变。
(2)部分参数说明
su [-][用户名[参数]]
su后面可以跟参数,例如su用户名-c命令,就会在改变用户ID后执行相应的命令并退
出。
(3)范例。变更为用户fangh:
lark:->su fangh
Password:
>whoani
fangh
>
76.sudo
(1)简介
sudu:以超级用户的身份执行某些命令。
visudo:编辑可以使用sudo命令的用户列表。
在系统管理中,有时需要给予某些用户的部分系统特权以便执行某些系统命令。例如
shutdown,halt,lpc等命令,但是系统管理员又不愿意给予他们全部的系统特权,这时
sudo命令就非常有用了。Sudo允许经过同意的用户以超级用户的身份执行指令。Sudo一
/etc/sudoers这个文件来判定谁是授权的用户。Sudo将会提示用户输入密码开始一段N分钟
的可以使用的时间(其中N是在安装的进修定义的且缺省值为5分钟结束后自动退出)。
Sudoers这个文件是由一个选择性的主机别名(host alias)域,一个选择性的指令别
名(command alias)域以及用户说明(user specification)域所组成的。所有的指令别
名或主机别名必须需以他们自己的关键字作为开始(Host_Alias/Cmnd_Alias)。注意,只
有第一次使用的用户(在用户说明域里有记录的用户)使用时会有说明。
用户说明域格式:
用户 有权限[:有权组]. . .
有权组::=主机类别=[op]指令类别[,[op]指令类别]. . .
主机类别::=小写的主机名或主机别名。
指令类别::=指令或指令别名。
op::='!'否定符。
主机别名域格式:
Host_Alias主机别名=主机列表
Host_Alias::=一个关键字。
主机别名::=一个大写的别名。
主机列表::=以逗号间隔的一些主机名
指令别名域格式:
Cmnd_Alias指令别名=指令列表
Cmnd_Alias::=一个关键字。
指令别名::=一个大写的别名。
指令列表::=以逗号间隔的一些指令。
在"#"符号后面是注解。太长的行可以使用"\"来分成新的行。保留的别名"ALL"在
{Host,Cmnd}_Alias里都可以使用。不要使用关键字"ALL"来定义一个别名,这个别名无效
。
注意,"ALL"代表全部的主机跟指令。
用户可以使用这个语法从所有定义中掉一些项目:
user host =ALL,!ALIASI,!/etc/halt. . .
sudoers文件的范例文件:
# Host alias specification
Host_Alias HUB=houdini.rootgroup.com:\
REMOTE=merlin,kodiakthorn,spirit
Host_Alias MACHINES=kalkan,alpo,milkbones
Host_Alias SERVERS=houdini,merlin,kodiakthorn,spirit
#Command alias specification
Cmnd_Alias LPCS=/usr/etc/lpc,/usr/ucb/lprm
Cmnd_Alias SHELLS=/bin/sh,/bin/csh,/bin/tcsh
Cmnd_Alias MISC=/bin/rm,/bin/cat:\
SHUTDOWN=/etc/halt,/etc/shutdown
# User specification
britt REMOTE=SHUTDOWN:ALL=LPCS
robh ALL=ALL,!SHELLS
nieusma SERVERS=SHUTDOWN,/etc/reboot:\
HUB=ALL,!SHELLS
jill houdini.rootgroup.com=/etc/shutdown,MISC
markm HUB=ALL,!MISC,!/etc/shutdown,!/etc/halt
billp ALL=/usr/local/bin/top:MACHINES=SHELLS
davechieb merlin=ALL:SERVES=/etc/halt:\
kodiakthorn=ALL
上面的sudoers说明文件是由4个主机别名说明,4个指令别名说明以及7个用户说明所组
成的。Britt被允许在远端机器(merlin,kodiakthorn,还有sprirt)上执行/etc/halt,
/etc/shutdown,/usr/etc/lpq以及/usr/ucb/lprm。Rohn被允许在任何机器上执行除了
SHELL指令以外的任何指令。Jill被允许在机器houdini上执行/etc/shotdown,/bin/rm,以
及/bin/cat。Davehieb可以在机器merlin以及kodiakthor上执行任何指令并且可以halt服
务器。
Sudoers文件应该用visudo编辑,它会锁住该文件并且检查语法,以避免产生错误的文
件。Sudo被设计成用4.3BSD的syslogging来记录,但是也可以使用用户自己的log进程来记
录如果一个没有被授权的用户执行了sudo的话,将会有一封mail从该用户处寄送到当地的
管理员处(Linux缺省是root)。所有的设定都是在安装时定义的由sudo.h及Makefile定义
,但是Linux缺省的是安装好的执行文件,用户如果要更改的话,需要重新编译与安装。
允许巢状的主机以及指令别名。
允许在sudoers文件中使用host specifie,以便使全局符号(user ALL,!SERVERS,. .
.=commands)。
允许在sudores文件里的用户别名(就如同主机/指令别名一样)。
(2)部分参数说明
sudo命令
(3)范例。用sudo来halt机器:
lark:->sudo halt
77.tail
(1)简介
tail:显示文件的最后一部分
(2)部分参数说明
tail [-c[+]N[bkm]][-n[+]N][-fqv][--bytes=[+]N[bkm]]
[--lines=[+]N][--follow][--quiet][--silent][--verbose]
[--help][--version][文件名列表]
tail缺省显示文件名列表中的每个文件的最后十行,如果没有文件名或文件名为"-"则
其从标准输入中读取文件,如果有多个文件则其会在文件前面加上"= =>文件名<=="以
便区分。
-c N, --bytes N:显示文件后部的N比特大小的部分,N后面可以跟bkm参数。
b:512比特的块。
k:1k的块。
m:1M的块。
-f:--follow:如果文件大小在增长的话,tail将跟随文件增长而显示。
-l, -n N, --lines N:显示文件末尾的N行。
-v,--verbose:一直输出"= =>文件名<= ="形式的文件名。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示文件/etc/DIR_COLORS的最后三行:
lark:->tail -v -n 3/etc/DIR_COLORS
= => /etc/DIR_COLORS<= =
.xbm 01:35
.xpm 01:35
.tif 01:35
lark:->
78.tar
(1)简介
tar:GNU版的文件打包备份的工具。
(2)部分参数说明
tar [-] A --catenate --concatenate | c --create |d --diff --compare |r
--append | t --list | u-update |x
-extract --get [--atime -preserve][-b, --block-size N][-B,
--read--full-blocks][-C, --directory DIR][
--checkpoint][-f, --file[HOSTNAME:]F][--force-local][-F,--info--script
F--neo--volume-script F][
-G, --incrementat][-g, --listed-incremental F][-h, --dereference][-i,
--ignore-zeros][--ignore-failed-
read][-k, --keep-old-fils][-k, --starting-file F][-l,--one-file-system][-L,
--tape-lengthN][-m,
--modification-time][-M,--multi-volume] [-N, --after-date DATE, --newer
DATE][-o, --old-
archive, --portability][-O, --to-stdout][-p, --same-permissions,
--preserve-permissions][-P, --absolute-paths] [--preserve][-R,
--record-number][--remove-files]
[-s,--same-order, --preserve-order][--same-owner]
[-s,--sparse][-T,--files-from F][--null][--totals][-v,--verbose][-v, --label
NAME]
[-version] [-w, --inteactive, --confirmation][-W,--verify][--exclude FILE][-X,
--exclude-from FILE]
[-Z, --compress,--uncompress][-z, --gzip, --ungzip],[-use-compress-progran
PROG][--block-compress][-[0-7][lmh]]
[文件名列表]
[目录名列表]
tar是对一般用户最易用和最可靠的实用程序,从归档介质(可以是一个磁带机,也可以是
普通文件)上保留和恢复文件,也能从之个文件归档中抽取单个文件。
-A, --catenate, --concatenate:向归档文件中追加另一个tar文件。
-c, --create:建立新的归档文件。
-d, --diff, -compare:将归档文件和文件系统上的文件作比较。
--delete:从归档文件中删除文件(不能够用在磁带机上)。
-r, --append:向归档文件末尾追加文件。
-t, --list:对归档文件列目录。
-u, --update:只追加比归档文件中的文件新的文件。
-x, -extract, --get:从归档文件中解出文件。
--atime-preserve:不改变文件的访问次数。
-b, --block-size N:块大小为N乘以512比特(N缺省为20)。
-B, --read-full-bolcks:为兼容4.2BSD而设。
-C,--directory DIR:将目录名改为DIR。
--checkpoint:在读归档文件时输出文件名。
-f, --file[HOSTNAME:]F:使用设备F来储存归档文件。
-force-local:强制设定归档文件为本地文件。
-F, --info-script F --new-volume-script F为在每盘磁的结尾执行设定的脚本文件
。
-G, --incremental:用老的GNU格式来打包/列出/解开归档文件。
-g, --listed-incremental F:用新的GNU格式打包/列出/解开归档文件。
-h, --dereference:不保存符号连接而保存其指向的文件。
-i, --ignore-zores:忽略零block的文件。
--ignore-failed-read:在文件不可读时不退出。
-k, --keep-old-files:在从归档文件中释放文件时不改写现有文件。
-K,--starting-file F:从归档文件的第F个文件开始。
-l, --one-file-system:只在本地文件系统产生归档文件。
-L, --tape-length N:在写完N*1024byte后换磁带。
-m, --modification-time:归档时不改变文件的修改时间。
-M, --multi-volume:存放/列出/解开多卷的归档文件。
-N, --after-date DATE, --newer DATE:只存放比日期DATE新的文件。
-o, --old-archive,--portability:和旧的V7格式存放(缺省为ANSI格式)。
-O, --to-stdout:将文件解开到标准输出。
-p, --same-permissions, --preserve-permissions:解开文件时恢复所有访问限制。
-P, --absolute-paths:解开文件时使用绝对路径。
--preserve:同-p -s。
-R, --record-number:显示归档文件内部的所有记录数。
--remover-files:将文件归档后删除源文件。
-s, --same-order, --preserve-order:显示同归档文件中顺序一样的文件名。
--same-owner:解开文件时恢复原所有者。
-S, --sparse:有效存放稀疏文件。
-T, --files-from F:从文件F中读取要释放或解开的文件名。
--null:使能-T参数可以读取有空格的文件名,屏蔽参数-C。
--totals:在创建文件时显示总字节数。
-v, --verbose:处理过程中输出相关信息。
-V, --label NAME:用卷标名NAME来命名归档文件。
--version:输出版本号。
--w, --interactive, --confirmation:进行每一步操作前要确认。
-W, --verify:在打包文件后进行校验。
--exclude FILE:不将文件FILE归档。
-X, --exclude-from FILE:不将文件FILE中列出的文件归档。
-Z, --compress, --uncompress:用compress来压缩归档文件。
-z, --gzip, --ungzip:用gzip来压缩归档文件。
-use-compress-program PROG:用自定义的压缩程序PROG来压缩归档文件。
-block-compress:将压缩的归档文件做成块,以便磁带机使用。
-[0-7][1mh]:设定磁带驱动器和密度。
(3)范例。将当前目录下所有.txt文件打包并压缩到归档文件bak.tar.gz:
lark:>tar czvf bak.tar.gz ./* .txt
./tcsh.txt
将目录./sec打包到归档文件sec.tar.gz:
lark:->tar czvf sec.tar.gz ./sec
./sec/
./sec/advance_edu.tgz
./sec/email
./sec/doc.tar
lark:->
79.tcsh
(1)简介
tcsh:一个带有文件名自动补充和行编辑功能的C shell。
tcsh是著名的伯克利UNIX的C SHELL的增强版本,它既可以作为一个交互式的登录
SHELL又可以作为脚本文件的处理器。
(2)部分参数说明
-b:强迫tcsh中止对参数的处理,在此选项之后的参数都作为传递给tcsh的命令来处理
。
-c:若用-c参数,则tcsh执行完后面所跟的命令后退出。
-d:从文件-/.cshdirs中读入目录堆栈。
-Dname[=value]:设置环境变量name的值为value。
-e:tcsh执行命令后返回值为非零值时则退出tcsh。
-f:tcsh忽略配置文件-/.tcshrc,这样启动tcsh的过程会加快。
-F:tcsh使用fork来代替cfork以产生新进程。
-i:即使标准输入不为终端,也成为交互式的shell。
-l:表明此shell为登录shell。
-m:tcsh从当前目录下读取-/.tcshrc即使此目录不为当前用户的根目录。
-n:读入命令但是并不执行。
-q:tcsh接受SIGQUIT信号。
-s:从标准输入到接受命令。
-t:使tcsh只处理单行命令,当一行写不下的时候,用"/"可以在下一行接着输入。
tcsh在作为登录shell启动时,首先读取系统配置文件/etc/csh.cshrc和/etc/csh.
login.接着到用户的根目录下去读取-/.tcshrc,如果没有-/.tcshrc则去读取-/.cshrc,
接着读取-/.history,-/.login最后是-/.cshdirs。非登录shell启动时只读取/etc/csh.
cshrc和-/.tcshrc。
·命令行编辑器:使用方向键来编辑,上下键在历史记录中选择命令,左右键在命令行
上前后移动进行编辑。
·命令补充和列表:在用户键入命令时,经常不能记住命令或目录的全名,这时候
tcsh可以帮助用户将剩余部分补全,例如用户键入"/usr/lost"但是忘记后面的部分,这时
候用户只需要键入TAB键,tcsh就会自动将剩余的部分补全--"/usr/lost+found./",当用
户给出的部分有多个匹配的情况下例如"/usr/l"则TAB将无法补全,这时候用户只须键入
"Ctrl+D"则tcsh将替用户列出所有匹配的情况:"lib/local@lost+found/",用户就可以自
己选择了。
·拼写检查:在设置变量correct的值为cmd后,则tcsh会对用户输入错误的命令给出提
示:
>set correct=cmd
>ls/usr/bin
CORRECT>ls/usr/bin(y|n|e|a)?
如果回答yes就会将lz更正为ls。此外,tcsh所占内存比ash要大400k,为1.2M左右,如
果用户内存不足的话可以换用其他shell。
以上的介绍只是一些粗略的介绍,TCSH的强大功能有待于用户在实践中去发掘。或使用
man tcsh去查看tcsh的用户手册。
80.tee
(1)简介
tee:从标准输入中读取,向标准输出和其他文件中写入。
(2)部分参数说明
tee [-ai] [--append] [--ignore-interrupts] [--help]
[--version] [文件名列表]
-a, --append:将标准输入追加到输出文件的后面而不是缺省的覆盖它。
-i, --ignore-interrupt:忽略中断信号。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将输入重定向到标准输出和文件out中:
lark:->tee out
this is a test
this is a test
lark:->cat out
this is a test
fish:->
81.test
(1)简介
test:比较文件类型并返回相应的值。
(2)部分参数说明
test[表达式]
test[--help, --version]
test在表达式为真的时候返回0,在表达式为假的时候返回1,可行的表达式如下:
-b文件名:如果文件存在且为块文件则为真。
-c文件名:如果文件存在且为字符文件则为真。
-d文件名:如果文件存在且为目录则为真。
-e文件名:如果文件存在则为真。
-f文件名:如果文件存在且为普通文件则为真。
-g文件名:如果文件存在且为设置组则为真。
-k文件名:如果文件是真实文件则为真。
-L文件名:如果文件存在且为符号连接文件则为真。
-p文件名:如果文件存在且为管道文件则为真。
-r文件名:如果文件存在且可读则为真。
-s文件名:如果文件存在且比上一个文件大则为真。
-S文件名:如果文件存在且为socket文件则为真。
-t[fd]:如果fd在一个终端上打开则为真。
-u文件名:如果文件存在且其设置用户ID的位为1则为真。
-w文件名:如果文件存在且可写则为真。
-x文件名:如果文件存在且可执行则为真。
-O文件名:如果文件存在且其属主为有效用户则为真。
-G文件名:如果文件存在且其属组为有效组则为真。
文件1 -nt文件2:如果文件1比文件2新则为真。
文件1 -ot 文件2:如果文件1比文件2旧则为真。
-z字符串:如果字符长度为0则为真。
-n字符串:如果字符串长度不为0则为真。
字符串1=字符串2:如果两字符串相等则为真。
字符串1!=字符串2:如果两字符串不相等则为真。
!表达式:如果表达式为假则为真。
表达式1-a表达式2:表达式1和表达式2都为真则返回真。
表达式1-o表达式2:表达式1或表达式2只要有一个为真就返回真。
参数1 OP参数2:OP为-eq, -ne, -lt, -gt, 或-ge。
此命令一般是为shell编程使用。
82.time
time:取得以秒为单位的当前时间。
此条命令取得从00:00:00 GMT,January 1,1970开始的总时间。
(2)范例
lark:->time
0.170u 0.400s 12:48.52 0.0% 0+0k 0+0io 2229pf+0w
lark:->
83.top
(1)简介
top:显示系统的最高进程。
top这个命令可以即时显示当前系统最占CPU时间的进程,它同时提供一个交互的界面
让用户可以观察系统进程情况,它可以按照CPU使用情况,占内存大小,运行的时间来对进
程排序,这是系统管理的一项必不可少的工具。
(2)部分参数说明
top[-][d delay][q][c][S][s][i]
d:设定刷新屏幕的时间间隔。
q:此选项使得top刷新时间为零,如果是超级用户使用这个选项的话,则top将以最高
优先级运行。
S:设定累积模式,即一个进程的CPU时间包括它的所有死子进程消耗的时间。
s:使top以安全方式运行,即对外界输入不作反应。
I:忽略死进程和僵尸进程。
c:显示命令行。
在运行top时按h键就可以观看top交互命令的帮助。
(3)范例
lark:->top
10:16pm up2 days, 7:53, 2users, load average;0.14, 0.08,0.06
66 processes:5sleeping, 1 running, 0 zombie, 0stopped
CPUstates:4.7%user, 1.3%system, 5.6%nice,94.4%idle
Mem:63104Kav, 60608K used, 2496K free, 35332Kshrd, 9836Kbuff
Swap:128516K av, 292used, 128224K free
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
5968 root 15 0 11672 11672 1520 S 0 4.1 18.4 3:41X
10944 fangh 17 0 460 460 344 R 0 1.1 0.7 0:00top
10356 bbs 1 0 384 384 292 S 0 0.1 0.6 0:00 bbsnnrp
10359 bbs 1 0 396 396 282 S 0 0.1 0.6 0:00 bbsnnrp
9526 root 1 0 500 500 388S 0 0.1 0.7 0:00 in.telnetd
7823 chenxy 1 0 2144 2144 1232S 0 0.1 3.3 0:00 cxterm
1 root 0 0 320 320 252 S 0 0.0 0.5 0:05 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd
3 root -12-12 0 0 0 SW 0 0.0 0.0 0:00 kswapd
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsion
5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
6 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
7 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
9502 root 0 0 292 292 236 S 0 0.0 0.4 0:00 agetty
120 root 0 0 544 544 400 S 0 0.0 0.8 0:12 nmbd
14 root 0 0 284 284 228 S 0 0.0 0.4 0:00 kerneld
84.touch
(1)简介
touch:改变文件的时间参数。
touch将文件的访问时间,修改时间设置为系统的当前时间,如果该文件不存在则建立
一个空的新文件。
(2)部分参数说明
touch [-acfm] [-r reference-file] [-t MMDDhhmm[[CC]YY][.SS]] [-dtime]
[--time={atime, access,use,mtime,modify}] [--date=time]
[--file=reference-file] [--no-create][--help] [--version]
-a, --time=atime, --time=access, --time=use:只改变访问时间。
-c, --no-create:如果目标文件不存在,也不建立空文件。
-d, --date time是:使用time来代替目前时间。
-f:为了同BSD版本的touch兼容。
-m, --time=mtime, --time=modify:只改变修改时间。
-r, --file reference-file:用文件reference-file的时间来代替当前时间。
-t MMDDhhmm[[CC]YY][.ss]:使用此种格式的时间来代替当前时间。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将当前目录下的文件的时间参数修改为当前时间:
lark:->touch *
lark:-> ls -l
total 1883
drwx------ 2 fangh users 1024 Sep 21:07 Mail/
-rw-r--r-- 1 fangh users 71209 Sep 21:07 bak.tar.gz
drwx------ 7 fangh users 1024 Sep 21:07 circle/
-rw-rw-r-- 1 fangh users 1208006 Sep 21:07 circle.tgz
-rw-r--r-- 1 fangh users 378880 Sep 21:07 sec.tar.gz
-rw-r--r-- 1 fangh userw 252409 Sep 21:07 tcsh.txt
lark:->
85.tr
(1)简介
tr:替换或删除字符。
从标准输入中读取输入,经处理后输出到标准输出。
(2)部分参数说明
tr [-cat] [--complement] [--squeeze-repeats] [--truncate-set]
[--truncate-set 1] 字符串1字符串2
tr {-s, --squeeze-repeats} [-c][--complement]字符串
tr{-d, --delete} [-c] 字符串1
tr{-d, --delete} {-s, --squeeze-repeats} [-c] [--complement]字符串1字符串2
-c, --complemen:补足字符串1。
-d, --delete:删除字符串1而不是替换。
-s, --squeeze-repeats:将字符串的顺序替换为一个顺序。
-t, --truncate-set1:将字符串1比字符串二长的地方截断。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将输入中的abc替换为ddd:
lark:->tr abc ddd
I love abc
I love ddd
86.tty
(1)简介
tty:显示目前终端所用的tty。
tty的返回值:
0:标准输入是一个tty。
1:标准输入是一个tty。
2:给出错误参数。
3:发生写错误
(2)部分参数说明
tty [-a] [--silent] [--quiet] [-help] [--version] -s, --silent, --quiet:不
输出任何信息,只给出返回值。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示目前终端所用的tty:
lark:->tty
/dev/ttypl
lark:->
87.umout,mount
(1)简介
mount:装载一个文件系统。
umount:卸下一个文件系统。
(2)部分参数说明
mount [-hV]
mount -a [-fFnrvw] [-t vfstype]
mount [-fnrvw] [-o options [, . . .]] device | dir
mount [-fnrvw] [-t vfstype] [-o options] device dir
umount [-h V]
umount -a [-n] [-v] [-t vfstypes]
umount [-n] [-v] special | node. . .
-V:输出版权信息。
-h:输出帮助信息。
-v:校验模式。
-a:mount在文件/etc/fstab中的所有文件系统。
-F:同-a联用,并行mount所有文件系统。
-f:同-v联用,不作真实mount过程只是检查输出。
-n:mount文件系统后不久写入文件/etc/mtab。
-r:将文件系统mount为只读模式。
-w:将文件系统mount为读写模式。
-t vfstype:指定文件系统类型。
现有可mount的系统类型在/usr/scr/linux/fs/filesystems.c中定义:
minix, ext, ext2, xiafs, hpfs, msdos, umdos, vfat, proc,
nfs, iso9660, smbfs, ncpfs, affs, ufs, romfs, sysv, xenix
-o选项:设定mount的一些参数:
async:文件系统必须被异步写入。
atime:每次访问时将i节点的访问时间更新。
auto:自动选择文件系统类型。
defaults:使用缺省选项suid, dev, exec, auto, nouser, async。
dev:解释文件系统上的特殊设备文件。
exec:允许运行文件系统上的可执行文件。
noatime:每次访问时不将i节点的访问时间更新。
noauto:禁止自动选择文件系统类型。
nodev:禁止解释文件系统上的特殊设备文件。
noexec:禁止运行文件文件系统上的可执行文件。
nosuid:根本上设定用户ID位和设定组位起作用。
nouser:禁止非超级用户使用。
remount:重新mount一个已经mount的文件系统。
ro:将文件系统mount为只读模式。
rw:将文件系统mount为读写模式。
suid:允许设定用户ID位和设定组位起作用。
sync:文件系统必须被同步写入。
user:允许非超级用户使用。
不加参数则列出系统目前mount的文件系统。
(3)范例。列出系统目前mount的文件系统。
lark:->mount
/dev/hdal on / type ext2_(rw)
none on/ proc type proc(rw)
/dev/hda3 on/home type ext2(rw)
/dev/hda2on/usr/local type ext2(rw)
lark:->
加载光驱:
lark:->mount/dev/hdb/mnt
88.uname
(1)简介
uname:显示系统信息。
(2)部分参数说明
uname [-snrvma][--sysname][--nodename][--release]
[--machine][--all][--help][--version]
-m, --machine:显示机器硬件种类。
-n, --nodename:显示机器网络节点名。
-r, --release:显示操作系统发布版本。
-s, --sysname:显示操作系统名称。
-v:显示操作系统版本。
-a, -all:显示上面的所有信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示机器lark的全部信息:
lark:->uname -a
Linux lark 2.0.30 #3 Tue Jun 24 03:49:52 CDT 1997 I586 unkown
lark:->
89.unarj, unzip, lha
(1)简介
在DOS下最常用的压缩软件有adj, pkzip和早期的lha,他们产生的压缩文件如何在
Linux下展开呢?这就要用到unarj, unzip,lha这三个工具软件了,其用法同其在dos下的
同类软件用法几乎一样。只是请注意unarj和lha都是版权软件,是没有源码的,不属于
GNU。且unarj和unzip只能解压不能压缩。
(2)部分参数说明
unarj 1压缩文件名:查看压缩文件目录。
unarj x压缩文件名:解开压缩文件。
unzip -v压缩文件名:查看压缩文件目录。
unzip -d 压缩文件名:解开压缩文件。
lha l压缩文件名:查看压缩文件目录。
lha x压缩文件名:解开压缩文件。
lha a压缩文件名 源文件名:压缩新文件。
90.uniq
(1)简介
uniq:从一个排好序的文件中删除重复的行。
(2)部分参数说明
uniq [-cdu] [-f skip-fields] [-s skip-chars] [-w check-chars]
[-# skip-fields] [+#skip-chars] [--count]
[--skip-chars=skip-chars] [--check-chars=check-chars]
[--help] [-version][输入文件][输出文件]
-u, --unique:只输出独一无二的行。
-d, --repeated:只输出重复的行。
-c, --count:输出重复行的重复次数。
-number, -f, --skin-fields=number:选择开始比较的域,number为忽略掉的域,各
域之间是以TAB或空格键分开的。
+number, -s, --skip-chars=number;选择开始比较的字符,number为忽略掉的字符
。
-w, --check-chars=number:选择比较多少个字符。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
如不指定输入文件则以标准输入代替,如不指定输出文件则以标准输出代替。
(3)范例。处理文件sourcefile,输出到标准输出:
lark:->cat sourcefile
abcd
abcd
abcde123
abcd
lark->uniq -c sourcefile
2 abcd
1 abcde123
1 abcd
lark:->
91.uudecode,uuencode
(1)简介
uuencode:将一个二进制文件编码为一个文本文件。
uudecode:将uuencode产生的文件复原。
在Internet尚未十分发达的时候,很多用户只能使用E-mail,要交换软件的话是一件十
分麻烦的事情,因为不能用E-Mail直接传送二进制文件,于是uuencode和uudecode就成为
十分有用的两个工具。uuencode产生的文本文件以begin644为开始标志,以end为结束标志
,在这中间的就是编码过的文件。编码后的文件将比源文件大35%左右。uuencode产生的
文件将输出到标准输出,如要存成文件,请使用管道功能将其重定向到一个磁盘文件中。
(2)部分参数说明
uuencode源文件名 编码时使用的文件名
uudecode 要解码的文件名
(3)范例。对文件sourcefile进行编码:
lark:->uuencode sourcefile sf
begin 664sf
886)C9'IA8F-D"F%B8V1E,3(S"F%B8V0*'
end
lark:->
将目录temp打包、压缩、编码后mail给用户fangh:
lark:->tar cvf -./tepm |gzip |uuencode temp.tar.gz |mail fangh
./temp/
./temp/sourcefil
lark:->
92.vi
(1)简介
vi:功能强大的UNIX编辑器。
vi是UNIX世界里最通用的全屏编辑器,所有UNIX机器都提供本编辑器。Linux里提供的
是vi的加强板-vim,但是是同vi完全兼容的。vi的原意是"visual"即可视编辑器,用户键
入的会立即被显示出来。其强大的编辑功能可能同任何一个最新的编辑器相媲美,学会vi
可以让用户在任何一台UNIX机器无论是SUN,HP,AIX,SGI,还是Linux或FreeBSD上都可以
得心应手地编辑文件。
(2)部分参数说明
只要在命令上键入vi就可以进入vi的编辑环境。
vi有两种状态,输入状态以及指令状态。用户在输入状态下可以输入文字资料指令状
态是用来执行打开文件、存档、离开vi等操作命令,执行vi后首先进入指令状态,此时输
入的任何字符都作为指令来处理。输入"vi文件名"则vi自动装入文件或开始一个新文件,
vi屏幕的左方会出现波浪号 "-",代表本行为空行。
如果进入输入状态呢?以下为相应的指令:
追加(append):
a从光标所在位置后面开始追加文字,光标后的文字随追加的文字向后移动。
A从光标所在列最后面的地方开始追加文字。
插入(insert):
i 从光标所在位置前面开始插入文字,光标后的文字随追加的文字向后移动。
I从光标所在列的第一个非空白字符前面开始插入文字。
开始(open):
o在光标所在列下新增一列并进入输入状态。
O在光标所在列上方新增一列并进入输入状态。
x删除光标所在字符。
dd删除光标所在的列。
r 修改光标所在字符接下来要修正的字符。
R 进入改写状态,新增文字会覆盖原先文字。
s删除光标所在字符,并进入输入状态。
S 删除光标所在的列,并进入输入状态。
在vi下如何移动光标
指令
说明
功能键
0
移动到光标所在列的最前面
[Home]
$
移动到光标所在列的最后面
[End]
[Ctrl] [d]
向下半页
[Ctrl] [f]
向下一页
[PageDown]
[Ctrl] [u]
向上半页
[Ctrl] [b]
向上一页
[PageUp]
H
移动到屏幕的第一列
M
移动到屏幕的中间列
L
移动到屏幕的最后列
b
移动到下个字的第一个字母
w
移动到上个字的第一个字母
e
移动到下个字的最后一个字母
^
移动下游标所在列的第一个非空白字符
n-
减号移动到上一列的第一个非空白字符
前面加上数字可以指定移动到以上n列
n+
nG
加号移动到下一列的第一个非空白字符
前面加上数字可以指定移动到以下n列
直接用数字n加上大写G移动到第n列
fx
Fx
往右移动到第x个字符上
往左移动到第x个字符上
tx
Tx
往右移动到第x个字符前
往左移动到第x个字符前
;
.
配合f&t使用,重复一次
配合f&t使用,反方向重复一次
/string
?string
往右移动到有string的地方
往左移动到有string的地方
n
N
配合/&?使用,重复一次
配合/&?使用,反方向重复一次
n(
n)
左括号移动到句子的最前面
前面加上数字可以指定往前移动n个句子
右括号移动到下个句子的最前面
前面加上数字可以指定往后移动n个句子
句子是以
! . ?三种符号来分割
n{
n}
右括弧移动到段落的最前面
前面加上数字可以指定往前移动n个段落
右括弧移动到下个段落的最前面
前面加上数字可以指定往后移动n个段落
段落是以
段落间的空白列来分割
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几项:
e 光标所在位置到该字的最后一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最后一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最后一个字母
{ 光标所在位置到该段落的第一个字母
:q 结束编辑(quit)
如果不想存档而要放弃编辑过的文件则用:q!强制离开
:w 存档(write)
其后可加所要存档的名字。
:wq 即存档后离开。
zz 功能与;wq相同。
93.wall
(1)简介
wall:向所有用户广播信息。
(2)部分参数说明
wall[文件名]
wall将给定为文件名输出到所有登录用户的屏幕上,如果不给出文件名则以标准输入
作为输入,以Ctrl+D作为文件结束符。只有超级用户才能向那些设为屏蔽信息状态的用户
的屏幕上输出信息。
(3)范例。向所有用户广播信息:
bash # wall
system will be shutdown in 5 min !!!
Broadcast Message from root @ lark
(/dev/ttyp5) at 20:08. . .
system will be shutdown in min ! ! !
bash #
94.wc
(1)简介
wc:统计一个文件中的字节数,单词数,行数。
(2)部分参数说明
wc [-clw] [--bytes] [--chars] [--lines] [--words] [--help]
[--version] [文件名列表]
-c, --bytes, --chars:只输出字节数。
-w, -words:只输出单词数。
-l, --lines:只输出行数。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->wc -c tcsh.txt
252409 tcsh.txt
lark:-> wc -w tcsh.txt
27584 tcsh.txt
lark;->wc -l tcsh.txt
5478 tcsh.txt
lark:->
95.whereis
(1)简介
whereis:定位可执行,帮助文件,源代码文件。
缺省地whereis在下列目录搜寻文件
/bin /usr/iterviewa/bin/LINUX
/usr/bin /usr/bin/X11
/etc /usr/X11/bin
/usr/etc /usr/X11R5/bin
/sbin /usr/X11R6/bin
/usr/sbin /usr/X386/bin
/usr/games /usr/local/bin
/usr/games/bin /usr/local/etc
/usr/emacs/etc /usr/local/sbin
/usr/lib/emacs/19.22/etc /usr/local/games
/usr/lib/emacs/19.23/etc /usr/local/games/bin
/usr/lib/emacs/19.24/etc /usr/local/emacs/etc
/usr/lib/emacs/19.25/etc /usr/loacal/Tex/bin
/usr/lib/emacs/19.26/etc /usr/loacl/tex/bin
/usr/lib/emacs/19.27/etc /usr/local/bin/X11
/usr/lib/emacs/19.28/etc /usr/contrib
/usr/lib/emacs/19.29/etc /usr/hosts
/usr/lib/emacs/19.30/etc /usr/include
/usr/TeX/bin /usr/g+ + -include
/usr/tex/bin
(2)部分参数说明
whereis [-bmsu] [-BMS目录名列表 -f] 文件名列表
-b:只搜寻可执行文件。
-m:只搜寻man帮助文件。
-s:只搜寻源代码文件。
-u:搜寻上述路径中不属于三种文件中任何一种的文件。
-B:改变搜寻可执行文件的路径。
-M:改变搜寻man帮助文件的路径。
-S:改变搜寻源代码文件的路径。
(3)范例。查询whereis所在路径:
lark:->whereis whereis
whereis;/usr/bin/whereis
lark:->
96.who
(1)简介
who:查看其他登录的用户。
(2)部分参数说明
who [-imqsuwHT][--count][--idle][--heading][-help]
[--message] [--mesg] [--version][--writable] [file] [ami]
-m:同whoami和"who am i"。
-q, --count;只输出用户的登录名和正在使用的用户数目。
-i, -u, --idle:输出用户发呆的时间,"."表明用户没有发呆,"old"表明用户发呆
超过24小时。
-H, --heading:输出表头。
-w, -T, --mesg, --message, --writable:输出用户的信息屏蔽状态。
+:可写。
-:不可写。
?:不能发现终端设备。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。列出系统当前用户:
lark:->who -H
USER LINE LOGIN-TIME FROM
chenxy ttyp2 Sep 29 20:37(hpte2.ihep.ac.cn)
liubx ttyp3 Sep 29 15:59(:0.0)
fangh ttyp4 Sep 29 19:19 (csun01.ihep.ac.c)
lark:->
98.write
(1)简介
write:向另外一个用户发信息。
如果用户不是超级用户,则不能对设定message n的用户发信息,输入完成后,使用
Ctrl-D结束。
(2)部分参数说明
write user [@host] [ttyname]
99.zoo
(1)简介
zoo:使用Lz方式压缩文件并打包。
(2)部分参数说明
zoo {acfDeghHILPTuUvVx}[aAcCdEfghImMnNoOpPqSul:/.@n+ - =]
打包文件名 文件名列表
zoo -command 打包文件名 文件名列表
zoo h
选项
描述
专家选项
-add
-extract
-move
-test
-print
-delete
-list
-update
-freshen
-comment
向打包文件中增加文件
从打包文件中解开文件
移动以打包文件中
测试打包文件
从打包文件中解开文件输出到标准输出
从打包文件中删除文件
列出打包文件的目录
更新打包文件中的文件
增加打包文件中的文件
给文件加注解
aP:
x
aMP
xNd
xp
DP
VC
aunP:
aunp:
c
(3)范例。将目前目录下所有文件打包到文件bak.zoo中:
lark:->zoo a ban./*
Zoo: ./bak.tar --(24%)added
Zoo: ./circle --(31%)added
Zoo: ./sec.tar --(20%)added
Zoo:./sourcefile --(13%)added
lark:->
第一章 Linux基本命令的使用
本章主要讲解Linux下基本命令的使用,由于篇幅的关系,无法列出所有Linux命令的
使用说明。读者在使用没有列出的命令时,可以使用"--help"参数查询该命令所附的在线
帮助,或者利用man来查询更详细的使用说明。
1.ash
(1)简介
ash --a shell
这是由Kenneth Almquist在1989年编写的,ash是Linux下的许多命令解释器中的一个
,它的许多特性接近于SYSTEM V的shell。
(2)部分参数说明
ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c命令] [ 参数 ]
-c 命令:若用-c参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
-s:若用-s参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。
如果不跟-c -s参数则ash以所跟的第一个参数为文件名,从此文件中读入命令。如无
参数则ash缺省设定-s参数,从标准输入中读入命令,直到输入exit。
如果参数0的第一个字母是"-"则ash确定为login shell,ash将从/etc/profile或用户
的根目录中的.profile读入相应的设置和环境变量。
-e:若用-e参数,则ash执行命令后返回值为非零值时则退出ash。
-f:若用-f参数,则ash关闭自动产生文件名功能。
-j:打开伯克利UNIX风格的工作控制。
-n:读入命令但是并不执行。
(3)范例
ash -c ls
ash执行ls这个命令后退回原先的目录和shell。
ash -s
ash执行一个新的shell,现在可以在这个shell中工作,按(Ctrl-D)或输入exit后,
则退回原先的目录和shell,所设定的环境变量返回原先的值。
2.at
(1)简介
at,batch,atq,atrm:安排、检查、删除队列中的工作。
由Thomas Koenig编写。
(2)部分参数说明
at [-V] [-q队列] [-f文件名] [-mldbv] 时间
at -c 作业 [作业…]
atq [-V] [-q队列] [-v]
atrm [-V] 作业 [作业…]
batch [-V] [-q队列] [-f文件名] [-mv] [时间]
at在设定的时间执行作业。
atq列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作。
atrm删除队列中的作业。
batch用低优先级运行作业,只要系统的loadavg(系统平均负载)<1.5(或者在
atrun中设定的值)它就开始执行作业。
-V:若用-V参数,则显示版本号到标准错误输出。
-q队列:若用-q参数,则指定可选队列名称,队列名称可以是a到z或A到Z之间的任意
字母。at的缺省队列名是c,batch的缺省队列名是E,队列的字母顺序越高,则队列的优先
级越低。如果是大写字母的话则提交给batch,如果atq使用-q参数,则只显示这个队列中
的作业。
-m:执行完作业后即使此作业并没有输也给提交作业的用户发送提示mail。
-f文件名:从文件中读取作业。
-l:等于atq。
-d:等于atrm。
-b:等于batch。
时间:这是用户设定的作业开始执行的时间。时间的格式分成三个部分:时间、日期
、偏移量。可接受的时间形式是HHMM或HH:MM,在一天中指定的时间运行,如果时间过去
了就在第二天执行。可以在时间后加入AM或PM使其在上午或下午运行,也可以指定在哪一
天执行,给出日期的格式应为MMDDYY或MM/DD/YY或MM.DD.YY,也可以给出偏移量:
时间+计数时间间隔
时间间隔可以是minutes,hours,days,weeks。
也可以指定today让作业在今天执行,指定tommorow让作业在明天执行。
(3)注意事项
如果没有指定-f选项,是at从标准输入读入所有的命令,所以可以通过管道、重定向
或交互输入来输入命令。
超级用户可以在任何情况下使用at系列的命令。一般用户使用at系列命令的权利由文件
/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,则只有列在这个文件中的
用户才能使用at系列的命令。如果/etc/at.allow文件不存在,则检查/etc/at.deny这个文
件。只要不列在这个文件中的用户都可以使用at系列的命令。缺省的配置是/etc/at.deny
,是一个空文件,这表明所有的用户都可以使用at系列的命令。
(4)范例
at -f work 4pm + 3 days
在三天后下午4点执行文件work中的作业。
at -f work 10am Jul 31
在七月31日上午10点执行文件work中的作业。
3.banner
banner:打印大标题。
banner在标准输出上打印高质量的标题,如果没有输入要打印的文字,则其等待从标
准输入输入一行文字。其标题由"*"组成。由Mark Horton编写。
(2)部分参数说明
/usr/bin/banner [ -wn ]信息
-w宽度 输出宽度从131到n,n缺省为80列。
(3)注意事项
不能打印字符:< ,>,[,],\,^,_,{,},|,-。信息长度为10个英文字符,如
果用空格分开字符串,还是连续打印字符串,两个字符串可以被括在引号(")中。这命名
banner把这些字任串置于同一行中。
4.bash
(1)简介
bash:GNU Bourne-Again Shell
自由软件基金会(Free Software Foundation Inc)拥有bash版权。
bash是Linux下的许多命令解释器中的一个,同sh兼容,并且包含了ksh和csh中一些有
用的特性。遵从IEEE Posix Shell and Tools specification(IEEE Working Group
1003.2)。
(2)部分参数说明
bash [参数] [文件名]
-c字符串:若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设
定为从$0开始的位置参数。
-i:若用-i参数,则bash是交互的。
-s:若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到
输入exit。
-:单一的-符号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看
作是文件名。
-norc:如果hash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh
来运行,这个参数缺省是关闭的。
-noprofile:不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.
bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这
些文件作为启动文件。
--refile文件名:如果bash是交互的,则以此文件作为bash的启动文件。替代-/.
bashrc。
-version:在bash开始时显示此bash的版本号。
-quiet:不显示版本号和其他信息,这是缺省值。
-login:激活bash,伪装为登录shell。
-nobraceexpansion:不执行大括号扩展。
-nolineediting:在交互状态下不使用GNU的readline库去读取命令。即取消了命令行
编辑功能。
-posix:改变bash的行为,使其符合Posix 1003.2规定的标准。
(3)注意事项
bash过于庞大,运行速度也太慢,并且不符合Posix标准。在某些情况下aliases
模糊不清。
(4)范例
lark:->bash -version
GNU bash, version 1.14.7(1)
bash $
显示此bash的版本号,并进入一个交互的shell。
5.bc
(1)简介
bc:一个简单的计算器。
作者为Philip A.Nelson.,bc是一个支持交互式的表达式计算的语言,其格式类似于C
语言,在命令行上还可以加载一个标准的数学库。
(2)部分参数说明
bc [-lwsqv] [长选项] [文件名…]
-l和--mathlib:定义标准数学库。
-w和--warn:给出对不符合Posix标准的扩展功能的警告。
-s和--standard:变成符合Posix标准的bc。
-q和--quiet:不输出GNU bc的欢迎信息。
-v和--version:输出版本号和版权信息后退出。
(3)范例
lark:->bc
bc 1.04
Copyright (c) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type 'warranty'.
1+2*3.1415926
7.2831852
quit
lark:->
6.cal
(1)简介
cal:显示一个日历。
最早出现在Version 6 AT&T UNIX。cal在标准输出上显示日历。对于查询某年某月某
日的用户来说是十分有用的。
(2)部分参数说明
cal [-jy] [月[年]]
-j:显示julian日期(日子是从1月1日开始累加的)
-y:显示今年的日历
年份必须写全,"cal 89"是错误的,应该为"cal 1989"。
月份必须是在1~12之间的数字,或英文的全称(过少无法区分)。不加参数则输出当
前月的日历。
(3)范例
lark:-> cal 3 1998
March 1998
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
lark:->
但是1752年9月4 日历就非常奇怪,少了13天。
lark:->cal 3 1998
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
这是因为这个月开始整个大不列颠帝国(美国那时还是英国殖民地),从凯撒历史更
换成现行的公历。[注:教皇格列高里十三世(Pope Gregory XIII)于1582年改革历法,
可是大不列颠帝国直到1752年才换用新的公历。]
7.cat
(1)简介
cat:连接文件并打印到标准输出。
cat是CA Tenate的缩写,常常用来显示文件,类似于DOS下的TYPE命令。
(2)部分参数说明
cat [-benstuvAET] [--number] [--number-nonblank]
[--squeeze-blank] [--show-nonprinting] [--show--ends]
[--show-tabs] [--show-all] [--help] [--version] [文件名…]
-b,--number-nonblank:计算所有非空输出行,从第一行开始计数。
-e:作用等于-vE。
-n:--number:计算所有输出行,从第一行开始计数。
-s,--squeeze-blank:将所有连续的多个空行替换为一个空行。
-t:作用等于-vT。
-u:没有作用,只是为了某些UNIX的兼容性而设。
-v,--show-nonprinting:显示除换行符和TAB以外的所有控制符。使用^作标志,并
在字符的高位放置Escape控制符。
-A,--show-all:作用等于-vET.
-E,--show-ends:在每一行的结尾加上字符"$"。
-T,--show-tabs:显示控制符TAB为'^I'。
--help:输出帮助信息并退出(返回值为非零值)。
--version:输出版本信息并退出。
(3)范例
lark:->cat -b -E.lessrc 显示文件.lessrc的内容
1 back-line $ $
3 forw-scroll $ $
4 back-scroll $
5 goto-line $
6 goto-end $
lark:->cat myfile1 myfile2 >tmp 将文件myfile1,myfile2连结起来输
出到
文件tmp
8.cd
(1)简介
cd:改变当前目录。
(2)部分参数说明
cd目录名
如果不加目录名,则回到用户的根目录,此外用户必须拥有该目录的权限。进入另外
一个用户的目录只要cd -用户名即可。
(3)范例
lark:/tmp>cd id1 进入id1目录
lark:/tmp/id1>cd-chenxy 进入用户chenxy的目录
lark:-chenxy>
9.chgrp
(1)简介
chgr:改变文件的组。
(2)部分参数说明
chgrp [-Refv] [--recursive] [--changes] [--silent]
[--quiet] [--verbose] [--help] [--version]组文件名…
-c --changes:只有在文件的组确实改变时才进行详细说明。
-f --quiet --silent:不输出组不能改变的文件的错误信息。
-v --verbose:详细说明组的变化。
-R --recursive:改变本目录及其所有子目录的文件的组。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
组:要改变到的组可以是组号对应的数字;也可以是/etc/group文件中的组名。
文件名:以空格分开的要改变组所有权的文件列表,支持通配符。
如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
(3)范例
lark:->chgrq -R book /opt/local/book/*.*
改变/opt/local/book/及其子目录下的所有文件的组为book。
10.chmod
(1)简介
chmod:改变文件保护,文件保护控制用户对文件的访问权,有三个安全级别,所有者
级别,组访问级别,其他用户访问级别,在这三个级别中,又有三种权限:读(r),写(
w),执行(x)。(用户可以ls-lg来观看某一文件的所属的group)对于文件来说读权限
意味着可以看文件的内容,写文件可以修改或删除文件,执行权限则可以执行它(类似于
DOS下的EXE,COM,BAT文件)。对于目录来说,读权限意味着可以查看目录下的内容,写
权限意味着能在目录下建立新文件,并可以从目录中删除文件,执行权限意味着可以从一
个目录转变到另一个目录。
(2)部分参数说明
chmod [-Rcfv] [--recursive] [--changes] [--silent]
[--quiet] [--verbose] [--help] [--version] 保护权限 文件名…
-c --changes:只有在文件的权限确实改变时才进行详细说明。
-f --silent -quiet:不输出权限不能改变的文件的错误信息。
-v --verbose:详细说明权限的变化。
-R --recursive:改变本目录及其所有子目录的文件的权限。
--help在标准输出上输出帮助信息并退出。
--version在标准输出上输出版本信息并退出。
保护权限:格式为[ugoa…][[+ - =] [r w x Xstugo…]…] […]
"ugoa"控制哪些用户对该文件的权限将被改变:(u)文件的所有者,(g)与文件所
有者同组的用户(o)其他组的用户(a)所有用户,操作符"+"使用用户选择的权限被追加
到每个目标文件。操作符"-"使得这些权限被撤销。"="使得目标文件只具有这些权限。
"r w x Xstugo"选择新的属性。(r)读权限(w)写权限(x)执行权(或对目录的访问权
)(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性(s)同时
设定用户或组ID(t)保存程序的文本到交换设备上(u)目标文件属主(g)目标文件属主
所在组(o)其他用户。如果用数字来表示属性,则(0)没有权限,(1)执行权,(2)
读权,(4)写权,然后将其相加,所以数字属性的格式应为3个从0到7的八进制数,其顺
序是(u)(g)(o)。
文件名:以空格分开的需要改变权限的文件列表,支持通配符。
(3)范例
lark->chmod a + x destfile 使所有用户对文件destfile有读写执行权
lark->chmod 644 destfile 使所有用户可以读文件destfile只有属主才能
改变
11.chown
(1)简介
chown:改变文件的属主和组。
(2)部分参数说明
chown [-Refv] [--recursive] [--changes] [--help] [--ver-sion] [--silent]
[--quiet] [--verbose] [用户] [: .] [组] 文件名…
-c --changes:只有在文件的属主确实改变时才进行详细说明。
-f --silent -quiet:不输出属主不能改变的文件的错误信息。
-v --verbose:详细说明属主的变化。
-R --recursive:改变本目录及其所有子目录的文件的属主。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
用户:可以是用户名或用户id。
组:可以是组名或组的id。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
(3)范例
lark->chown dfbb:book destfile 将文件destfile的属主改成dfbb,组
改成book
12.chsh
(1)简介
改变用户登录的shell。
作者Julianne Frances Haugh
(2)部分参数说明
chsh [-s 登录的shell] [用户名]
普通用户可以改变自己的登录shell,超级用户可以改变其他用户的登录shell,所有
的shell必须是在/etc/shells文件中列出的shell,但是超级用户不受这个限制。如果用户
的shell是一个受限制的shell则用户不能改变其登录shell。如果不加-s参数则chsh输出用
户的当前登录shell并提示用户输入新shell的路径。改变shell时都需要输入用户的密码。
(3)范例
lark:->chsh
Password:
Changing the login shell for dfbb
Enter the new value, or press return for the default
Login Shell [/bin/csh]:/bin/tcsh
lark:->
13.clear
(1)简介
clear:清除屏幕(类似于DOS的cls)
(2)范例
lark->clear 清除屏幕,提示符被移动到左上角
14.compress
(1)简介
compress,uncompress, zcat:压缩,展开文件。
compress利用LZW原理来压缩文件,原文件将被替代为扩张名为.Z的新文件。
uncompree和zcat则被用来展开压缩文件。
(2)部分参数说明
compress [-f] [-v] [-c] [-V] [-b bits] [文件名…]
uncompress [-f] [-v] [-c] [-V] [-b bits] [文件名…]
zcat [-v] [文件名…]
-f :强制替代所有原文件,如果不加此参数且compress工作在前台则compress将提示
用户,该参数对于压缩整个目录的文件特别有用。
-v:在压缩过程中输出每个文件的压缩比。
-c:将压缩结果输出到标准输出。
-V:输出版权信息。
-b bits:bits为9-16的数字,用来控制LZW的压缩深度。
文件名:以空格分开的要压缩的文件列表,支持通配符。
(3)范例
lark: ->compress -f -v -V destfile 压缩文件destfile
Based on compress.c, v 4.0 85/07/30 12:50:00 joe Release
Options: BITS=16
destfile: Compression:5.55% --replaced with destfile.Z
lark:->uncompress destfile.Z 还原文件destfile
lark:->
15.cp
(1)简介
cp:拷贝文件
(2)部分参数说明
cp[options] 源文件 目标文件
cp[options] 源文件…目标目录
Options:
[-abdfilprsuvxPR] [-S backup-suffix] [-V {numbered, existing, simple}]
[--backup] [--no-dereference] [--force] [--interactive] [--one-file-system]
[--preserve] [--recursive] [--update] [--verbose] [--suffix=backup-suffix]
[--version-control={numbered, existing, simple] [--archive] [--parents]
[--link] [--symbolic-link] [--help] [--version]
-a, --archive:在拷贝过程中保留尽可能多的源文件的结构和属性,同-dpR作用相同
。
-b, --backup:给将要覆盖和删除的文件作备份。
-d, --no-dereference:只拷贝符号连接,而不拷贝其所指向的文件并在拷贝中保留
原有的连接关系。
-f --force:删除已存在的目标文件。
-I, --interactive:在删除已存在的目标文件时给出提示。
-l, --link:用硬连接来代替非目录文件的拷贝。
-P, --parents:将给出路径的源文件连路径一起拷贝。
cp --parents a/b/c exist-ing_dir' copies
将文件a/b/c拷贝到exist-ing_dir/a/b/c。
-p, --preserve:保留源文件的属主,组,权限和时间标志。
-r,:整目录拷贝
-s, --symbolic-link:用建立符号连接来代替非目录文件的拷贝,除非目标文件也在
当前目录不然所有源文件都是绝对路径(从"/"开始)。在不支持符号连接的系统上将给出
出错信息。
-u, --update:如果非目录目标文件已存在具有相同或更新的修改时间则不拷贝。
-v,--verbose:在拷贝时输出每个文件的名称。
-x, --one-file-systme:从开始拷贝的文件开始跳过在不同文件系统上的子目录。
-R, --recursive整目录拷贝。
--help 在标准输出上输出帮助信息并退出。
--version 在标准输出上输出版本信息并退出。
-S, --suffixbackup-suffix:用于产生备份文件的后缀,此选项修改由环境变量
SIMPLE…BACKUP…SUFFIX设定的后缀,如果都没有定义则缺省是"-"。
-V, --version-control {numbered, existing, simple}:备份产生的类型。此选项
修改由环境变量VERSION…CONTROL设定的备份产生的类型,如果都没有定义则缺省是
"'existing"其有效选项是:
't' or 'numbered'总是建立编号备份。
'nil' or 'existing'只为已经有编号备份的文件建立编号备份,其他文件作单一备份
。
'never' or 'simple'只建立单一备份。
(3)范例
lark:->cp sourcefile destflie 拷贝文件sourcefil到文件destfile
。
lark:->cp */tmp 拷贝当前目录下所有文件到/tmp目录。
lark:->
16.cpio
(1)简介
cpio:向存档中拷贝文件或从存档中拷贝文件。
(2)部分参数说明
cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message] [-O
[ [user @]host:] archive] [-F[[user@]host:]archive]
[--file=[[user@]host:]archive] [--format=format] [--message=message] [--null]
[--restet-access-time] [--verbose] [--dot] [--append]
[--block-size=blocks] [--dereference] [--io-size=bytes] [--quiet]
[--force-local] [--help] [--version] < name-list [>archive]
cpio {-I |--extract}[-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H format] [-M
message] [-R [user][: .][group]] [-I [[user@]host:]archive] [-F
[[user@]host:]archive] [--file=[[user@]host:]archive] [--make-directories]
[--nonmatching] [--preserve-modification-time] [--numericuid-gid] [--rename]
[--list] [--swap-bytes] [--swap] [--dot] [--unconditional] [--verbose]
[--block-size=blocks] [-swap-halfwords] [--io-size=bytes]
[--pattern-file=file] [--format=format]
[--owner=[user][: .] [group]] [--no-preserve-owner] [--message=message]
[--force-local] [no-absolute-filenames] [--sparse] [--only-verify-crc]
[--quiet] [--help] [--version] [pattern…] [<archive]cpio
{-p|--pass-through} [-0adlmuvLV] [-R [user][: .] [group]]
[--null][--resct-access-time] [--make-directories] [--link] [--puiet]
[--preserve-modificationtime] [--unconditional] [--verbose] [--dot]
[--derefer-ence] [--owner=[uwer][: .] [group]] [--no-preserve-owner]
[--sparse] [--help] [--version] destination-directory <name-list
cpio有三种模式:
·copy-out模式:向存档文件中拷贝文件,从标准输入给出的文件列表(这个文件列
表可以用find命令来产生)读取源文件名,向标准输出写入存档文件。
·copy-in模式:从存档文件中拷贝文件,从标准输入读入存档文件,可以用通配符来
确定要拷贝的文件名,如果不给出文件名则拷贝所有文件。
·copy-pass模式:将文件从一个目录拷贝到另外一个目录,实际上是把copy-out和
copy-in模式结合起来,只不过不真的用一个存档文件,从标准输入给出的文件列表
读取源文件名,目标目录作为一个不带"-"的参数给出。
cpio支持下列文件格式:
binary,old ASCII,new ASCII,crc,HPUX binary,HPUX old ASCII,old tar,
and POSIX.1 tar
缺省的cpio产生binary格式的存档文件。
-O, --null:在copy-out和copy-pass模式,文件列表由空字符结束而不是由换行结
束。
-a, reset-access-time:在读取文件时重置文件的时间。
-A, --append:附加到已有的存档文件后,只工作在copy-out模式,存档文件必须是
由-O,-F指定的磁盘文件。
-b, --swap:在copy-in模式既交换bytes又交换halfwords等于-sS。
-B:将I/O的块大小改变为5120bytes缺省是512bytes。
--block-size=BLOCK-SIZE:将I/O的块大小改变为IO-SIZE bytes。
-d, --make-directories:如果需要就创建目录。
-E FILE, --pattern-fil=FILE:在copy-in模式从文件FILE中读出要解开的文件列表
。
-f, --nonmatching:只拷贝文件列表中没有文件。
-F, --file=archive:存档文件的文件名,如果目标设备是另外一台机器上的磁带机
则用"HOSTNAME:文件名"来处理,cpio自动加上username@(用户必须在那台机器的-/.
rhosts文件中添加本机器)。
--forc-local:在使用-F,-I,-O选项时即使文件名中有":"号也把它作为一个本地
文件来处理
-H FORMAT, --format=FORMAT:存档文件使用FORMAT(bin, odc, newc, crc, tar,
ustar, hpbin, hpodc)格式。
-I, --extract:使用copy-in模式。
-I archive:等同于 -F, --file=archive。
-k:无用(为某些兼容性而设)。
-l, --link:如果可能用连接文件代替拷贝文件。
-L, --dereference:对于文件连接直接拷贝文件而不是连接。
-m, --preserve-modification-time:产生文件时恢复文件的修改时间。
-M MESSAGE,--message=MESAGE:在备份媒体用完时给出提示信息MESSAGE(中间用%
d给出卷标)。
-n, --numeric-uid-gid:在文件列表时用数字的UID和GID代替名字。
--no-absolute-filenames:在copy-in模式用相对路径代替绝对路径。
--no-preserve-owner:在copy-in和copy-pass模式不改变文件的属主在恢复时恢复这
些属主,本参数对于普通用户是缺省选项。
-o, --create:使用copy-out模式。
-O archive:等同于-F, --file=archive。
only-verify-crc:在读CRC格式的存档文件时只检查每个文件的CRC而不解开文件。
-p, --pass-through:使用copy-pass模式。
quiet:不输出已拷贝的块的数目。
-r, --rename:交互式地给文件改名。
-R [user] [: .] [group], --owner [user] [: .] [group] :在copy-out和
copy-pass模式将所有文件的属主和组改变成设定的用户和组(只有超级用户才能使用)。
-sparse:在copy-out和copy-pass模式将小文件写入一个大块时用零来填补剩余部分
。
-s, --swap-bytes:在copy-in模式交换bytes。
-S, --swap-halfwords:在copy-in模式交换halfwords。
-t, --list:s'输出输入的文件列表。
-u, --unconditional:替代所有同名的现存文件而不给出提示。
-v, --verose:列出正在处理的文件给出"ls -1"格式的文件列表。
-V --dot:在处理每个文件时输出"."。
--version:输出版权信息并退出。
(3)范例
lark:->cpio -0 <filelist> d
cpio: sourcefile: truncating inode number
1 block
lark:->
从文件filelis中读出源文件列表,读入源文件并写入存档文件d。
lark:->cpio -i -v -F d
sourcefile
1 block
lark:->
从存档文件d中拷贝出文件。
17.crontab
(1)简介
crontab:操作每个用户的守护程序和该执行的时间表。
作者 Matthew Dillon
(2)部分参数说明
crontab file [-u user]:用指定的文件替代目前的crontab。
crontab - [-u user]:用标准输入替代目前的crontab。
crontab -l [ user]:列出用户目前的crontab。
crontab -e[ user]:编辑用户目前的crontab。
crontab -d[ user]:删除用户目前的crontab。
crontab -c[ user]:指定crontab的目录。
crontab文件的格式:M H D m d cmd
M:分钟(0-59)
H:小时(0-23)
D:天(1-31)
m:月(1-12)
d:一星期内的天(0-6,0为星期天)
cmd:要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环
境变量。
下面是一个例子文件:
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# 每天早上6点
10 6 * * * date
# 每两个小时
0 */2 * * * date
# 晚上11点以早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 14 4 * mon-wed date
# 1月份日早上4点
0 4 1 jan * date
(3)范例
lark:->crontab -1 列出用户目前的crontab。
# MIN HOUR DAY MONTH DAYOF WEEK COMMAND
10 6 * * * date
0 */2 * * * date
0 23-7/2, 8 * * * date
lark:->
18.csh
1.简介
见tcsh
19.cut
(1)简介
cut:将文件中的每一行都去掉一个域。
(2)部分参数说明
cut {-b byte-list, --bytes=byte-list} [-n] [--help]
[--version] [file...]
cut {-c character-list, --characters=character-list}
[--help] [--version] [file...]
cut {-f field-list, --fields=field-list} [-d delim] [-s]
[-delimiter=delim] [--only-delimited] [--help] [--veresion] [file...]
byte-list,character-list,和field-list是数字或一个区间,最小是1,区间格式
为"n-m",n为开始的数字,m为结束的数字,"n-"意味着行尾。
-b, --bytes bytd-list:只输出在byte-list区间的bytes,TABs和backspaces都占
1byte。
-c, --characters character-list:只输出在区间character-list内的字符TABs和
backspaces都占一个字符。
-f, --fields field-list:只输出在field-list内的域。
-d, --delimiter delim:指定在-f参数中的field-list的分割符(为delim中的第一
个字符,缺省为TAB)。
-n:不分割多byte的字符。
-s, --only-delimited:在-f参数中不输出没有域分割符的行。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->cat sourcefile
total 0
-rw-r--r-- 1 fangh users 0 Aug 23 21:46 destfile
lark:->cat -c 5-20 sourcefile
1 0
r--r-- 1 fangh
lark:->
20.date
(1)简介
date:打印或设置系统日期和时间。
(2)部分参数说明
date [-u] [-d datestr] [-s datestr] [--utc] [--universal]
[--date=datestr] [--set=datestr] [--help] [--version]
[+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
+FORMAT:控制如何显示日期
指令:%:%号
n:新行
t:TAB
时间域:
%H 小时(00..23)
%I 小时(01..12)
%k 小时(0..23)
%1 小时(1..12)
%M 分钟(00..59)
%p AM或PM
%r 12小时(hh:mm:ss[AP]M)
%s 从1970-01-01 00:00:00 UTC开始的时间
%S 秒(00..61)
%T 24小时(hh:mm:ss)
%X 时间表示(%H:%M:%S)
%Z 时区(如EDT)如没有指定时区则不显示
日期域:
%a 缩写形式的星期名(Sun..Sat)
%A 星期名(Sunday..Saturday)
%b 缩写形式的月名(Jan..Dec)
%B 月名(January..December)
%c 日期和时间(Sat Nov 04 12:02:33 EST 1989)
%d 每个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 等同于%b
%j 一年的第几天(001..366)
%m 月份(01..12)
%U 一年中的第几个星期,星期天为星期的第一天(00..53)
%w 每个星期的第几天(0..6)0为星期天
%W 一年中的第几个星期,星期一为星期的第一天(00..53(00..53))
%x 日期(mm/dd/yy)
%y 年份的后两个数字(00..99)
%Y 年份(1970...)
[MMDDhhmm[[CC]YY][.ss]]
MM 月份
DD 日期
hh 小时
mm 分钟
CC 年份的前两位(可选项)
YY 年份的后两位(可选项)
ss 秒(可选项)
只有超级用户才有权限设置系统时间(启动时在CMOS中读出)。
-d datestr, --date dates :显示datestr中指定的日期和时间。
-s datestr, --set datestr :设定datestr中指定的日期和时间。
-u, --universal:显示或设定格林威治时间(缺省为本地时间)。
-help:在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版权信息并退出。
(3)范例。打印两天前的时间:
lark:->date --date '2 days ago'
Fri Aug 22 20:20:08 CDT 1997
lark:->
打印月份和日期:
lark:->date ' + % B % d'
August 24
lark:->
21.dd
(1)简介
dd:拷贝一个文件(并可以同时转化它)。
(2)部分参数说明
dd [--help] [--version] [if=file] [of=file] [ibs=bytes]
[obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks]
[seek=blocks] [count=blocks]
[conv={ascii, ebcdic, ibm, block, unblock, lease, ucase, noerror, notrunc,
sync}]
if=file:以file作为源文件以代替标准输入。
of=file:以file作为目标文件一代替标准输出。
ibs=bytes:一次读bytes个byte。
obs=bytes:一次写bytes个byte。
cbs=bytes:一次读写bytes个byte,这个参数将改写bit和obs的值。
skip=blocks:从开头忽略blocks个ibs大小的块。
seek=blocks:从开头忽略blocks个obs大小的块。
count=blocks:只拷贝blocks个ibs大小的块。
conv=conversion[,conversion...]:转换文件,可转换的格式计算有:
ascll, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc,
sync
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将文件sourcefile拷贝到文件destfile。
lark->dd if =sourcefile of=destfile
0 + 1 records in
0 +1 records out
lark:->
22.df
(1)简介
df:报告磁盘剩余空间。
(2)部分参数说明
df [-aikPv] [-t fstype] [-x fstype] [--all] [--inodes]
[--type=fstype] [--exclude-type=fstype] [--kilobytes]
[--portabiliry] [--print-type] [--help] [--version] [file-name. . .]
-a, --all:列出BLOCK为零的文件系统缺省是不列出。
-i, --inodes:用inode使用状况来代替block使用状况。
-k, --kilobytes:用1K为单位来输出block(缺省是512bytes)。
-P, --portability:使用POSIX格式输出。
-T, --print-type:输出每个文件系统的类型。
-t, --type=fstype:只输出列在fstype中的类型的文件系统。
-x, --exclude-type=fstype:只输出不在fstype中的类型的文件系统。
-v:无用,只是为了同SYSTEM V版本的df兼容。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->df -a -T
Filesystem Type 1024-blocks Used Avaiable Capacity Mounted on
/dev/hdal ext2 497667 335214 136751 71% /
none proc 0 0 0 0% /proc
/dev/hda1 ext2 2454879 105267 2222699 5% /home
/dev/hda2 ext2 995147 49603 89413 5% /usr/local
lark:->
23.diff
(1)简介
diff:比较两个文件的不同。
(2)部分参数说明
diff [选项] 源文件 目标文件
-a:将所有文件当作文本文件来处理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-q --brief:只报告何处不同,不报告具体信息。
-c:使用纲要输出格式。
-e --ed:输出ed可以编辑的格式。
-f:输出同-c类似的反序格式。
-H:利用试探法加速对大文件的搜索。
-i:忽略大小写的变化。
-l --paginate:用pr对输出分页。
-n --rcs:输出RCS格式。
-r --recursive:比较目录时比较所有子目录。
--report-identical-files -s:两文件相同才报告。
-v --version:在标准输出上输出版本信息并退出。
常常利用diff来产生补丁程序(patch)。
(3)范例。比较destfile和sourcefile:
lark:->diff sourcefile destfile
1,2cl
< total 0
< -rw-r--r-- 1 fangh users 0 Aug 23 21:46 filelist
---
> ./sourcefile
lark:->
24.dialog
(1)简介
用来在shell编程中产生对话框。作者:John Gatewood Ham。
(2)范例
ark:-> dialog --title "test" --yesno "this is a test" 7 40
lqqqqqqqqqqqqqqqq test qqqqqqqqqqqqqqqqk
x this is a test x
x x
x x
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
x <Yes> <No> x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
lark.->
(1)简介
du:报告磁盘空间使用情况
(2)部分参数说明
du[-abcklsxDLS] [--all] [--total] [--count-links] [--sum-marize]
[--bytes] [--kilobytes] [--one-file-system]
[--separate-dirs] [--dereference] [--dereference-arge]
[--help] [--version] [filename...]
-a , --all:显示文件总和。
-b, --bytes:以byte为单位输出所占空间大小。
-c, --total:在处理完所有参数后给出所有这些参数的总计。
-k ,--kilobytes:以kilobytes为单位输出所占空间大小。
-l, --count-links:统计所有文件的大小即使它已经在另一个连接中被统计过了。
-s --summarize:对于每个参数只显示总和。
-x, --one-file-system:忽略不在本文件系统上的目录。
-D, --dereference-args:不统计是命令行的话参数的符号连接的文件。
-L, --dereference:不统计符号连接的文件。
-S, --separate-dirs:单独计算每个目录的大小,不包括子目录的大小。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->tmp>du
1 ./.X11-unix
15274 ./.data
4 ./.id4
15293 .
lark:/tmp>
26.echo
(1)简介
echo:显示一行文本。
(2)部分参数说明
echo [-ne] [字符串. . .]
echo {--help, --version}
-n :不输出新行。
-e:使echo可以输出下列ESC字符;
\a 警告(响铃)。
\b 退格。
\c 在行尾不另起一行。
\f 换页。
\n 换行。
\r 回车。
\t 制表符。
\V 垂直制表符号。
\ \ 反斜杠。
\ nnn 字符的八进制码是nnn。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意大多数shell内建echo命令,上述参数只对/usr/bin/echo起作用。
(3)范例
lark:->/bin/echo -e just \ \ wait
just \ wait
lark:->
27.ed
(1)简介
ed red:文本行编辑器。
(2)部分参数说明
ed [-] [-Gs] [-p字符串] [文件名]
red [-] [-Gs] [-p字符穿] [文件名]
-:在使用e,r,w,q和!命令时不输出信息。
-G:禁止向后一致性,作用于命令'G','V','f','l','m','t',和'!!'。
-s:禁止诊断,一般当ed的输入是一个脚本文件时使用该项。
-p字符串:以该字符串为提示符。
文件名:要编辑的文件名。
(3)范例
lark:->ed .lessrc
114
wq
114
lark:->
28.egrep
(1)简介
见grep
29.env
(1)简介
env:在修改过的环境中运行程序,运行完毕后不影响原环境设置。
(2)部分参数说明
env [-] [-1] [-u name] [--ignore-environment]
[--unset=name] [help] [--version][name=value]...[命令
[参数...]]
-u, --unset name:从原环境中删除变量(name为变量名)。
-, -I, --ignore-environment:开始一个空环境,忽略原环境的所有设置。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->env - ls
destfil destfile sourcefile
lark:->
30.expand
(1)简介
expand:将文件中的TAB转换为空格并输出到标准输出。
(2)部分参数说明
expand [-tab1[,tab2[, . . .]]] [-t tab1[,tab2[, . . .]]] [-i]
[--tabs=tab1[,tab2[, . . .]]] [--initial] [--help] [--ver-
sion] [文件名. . . ]
-,,-t,--tabs tab1[,bab2[, . . .]]:如果只有一个tab1,则将TAB转化为tab1个
空白(缺省为8)如果有tab2,tabe. . .则将第一个TAB转化为tab1个空格,第二个TAB转
化为tab2个空格,没有指出的全部转化为一个空格。
-e, --initial:只转化用来分开两个非空格和TAB字符的TAB为空格。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->expand test
abc
lark:->
31.fdformat
(1)简介
fdformat:低级格式化一张软盘。
作者:Werner Almesberger
(2)部分参数说明
fdformat [-n] 设备
支持的设备格式有:
/dev/fd0d360 (minor=4)
/dev/fd0h1200 (minor=8)
/dev/fd0D360 (minor=12)
/dev/fd0H360 (minor=12)
/dev/fd0D720 (minor=16)
/dev/fd0H720 (minor=16)
/dev/fd0h360 (minor=20)
/dev/fd0h360 (minor=24)
/dev/fd0H1440 (minor=28)
/dev/fd1d360 (minor=5)
/dev/fd1h1200 (minor=9)
/dev/fd1d360 (minor=13)
/dev/fd1H360 (minor=13)
/dev/fd1D720 (minor=17)
/dev/fd1H720 (minor=17)
/dev/fd1h360 (minor=21)
/dev/fd1h720 (minor=25)
/dev/fd1H1440 (minor=29)
(2)部分参数说明
-n:在格式化时不校验
32.fgrep
(1) 简介
见 grep
33.file
(1)简介
file:探测文件类型。
(2)部分参数说明
file [-vezL] [-f namefile] [-m magicfiles] 文件名...
-v:在标准输出上输出版本信息并退出。
-m magicfiles:指定用来代替缺省幻数文件(/etc/magic)的新幻数文件。
-z:探测压缩过的文件。
-c:输出正在处理的幻数文件的分析表格,常同-m参数联合使用来测试新幻数文件。
-f namefile:从文件namefile中读取要分析的文件名列表。
-L:允许符号连接。
文件名:要分析的文件名。
(3)范例
lark:/tmp>file*
destfile: ASCII text
clm.rc.OLD: English text
portnum:
rc.inetI.OLD:Bourne shell script text
lark:/tmp>
34.find
(1)简介
find:用来在大量目录中搜寻特定文件的强有力的工具。
(2)部分参数说明
find [路径. . .] [匹配表达式]
路径. . .:要搜寻的目录(可以是多个目录,用空格分开)。
匹配表达式:要搜寻的文件的匹配标准或说明。
-name文件名:告诉FIND要找什么文件;要找的文件包括在引号中(支持通配符*和?
)。
-perm模式:匹配所有符合指定数字模式值的文件,如果模式前面是"-"号则搜寻所有
除这个模式以外的所有模式。
-size n匹配大小为n个block的文件(若n后有nK大小的文件)。
-user用户名:搜寻所有属主为用户名(名称和ID都可以)的文件。
-group组名:搜寻所有组为组名的文件。
-atime n组名:搜寻所有组为组名的文件。
-atime n:搜寻在前n天访问过的文件。
-mtime n:搜寻在前n天修改过的文件。
-exec文件:对于每个匹配文件执行命令,标志{}用于指定命令执行时文件。
名出现的地方,命令必须中止于符号"\;"。
-print:输出搜寻结果到标准输出。
(3)范例
lark:/>find ./-name "passwd" -print
./user/bin/passwd
./home/ftp/etc/passwd
./etc/passwd
lark:/>
35.fortune
(1)简介
fortune:输出一段有趣的谚语或格言
作者:Ken Arnold
(2)范例
lark:/>fortune
"I must have a prodigious quantity of mind; it takes me as much as a
week sometimes to make it up."
--Mark Twain, "The Innocents Abroad"
lark:/>
36.grep
(1)简介
grep,egrep,fgrep:在文件中搜寻匹配的行并输出。
(2)部分参数说明
grep[-[[AB]]num][-[CEFGVBchilnsvwx]][-e]正则表达式
|-ffile] [文件名. . . ]
-A num:输出匹配行后的num行
-B num:输出匹配行前的num行
-V:输出版权信息
-f file:从文件中读入表达式
-q:不输出
-s:不输出错误信息
grep=Global Regular Expression Print, grep来自ed的搜寻所有符合某表达式的命
令:"g/re/p",其中re代表规则表达式。
rgrep是fixed grep,只能查询固定串。
egrep是extended grep扩展查询,支持某些增强的表达式。
(3)范例。在文件services中查找含有ftp的行。
lark:/etc>grep ftp services
ftp 21/tcp
tftp 69/udp
sftp 115/tcp
lark:/etc>
37.gzexe
(1)简介
gzexe:将可执行文件压缩成较小的可执行文件(类似于DOS下的PKLITE,LZEXE)。
(2)部分参数说明
gzexe[文件名. . . ]
-d解压缩
本命令对那些磁盘空间较小的用户特别有用。
(3)范例
lark:->ls -la cat
-rwxr-xr-x 1 fangh users 20916 Aug25 21:33cat*
lark:->gzexe cat
cat:
lark:->ls-la cat
-rw xr-xr-x 1 fangh users 11283 Aug 25 21:33 cat*
lark:->
38.gzip
(1)简介
gzip,gunzip,zcat:压缩或展开文件。
(2)部分参数说明
gzip[-acdfhlLnNrtv V19][-S suffix] [文件名 . . .]
gunzip[-acfhlLnNrtvV][-S suffix][文件名. . .]
zcat[-fhLV][文件名. . . ]
-d --decompree --uncompress:解压。
-h --help:显示帮助信息并退出。
-t --test:检验压缩文件。
-V --version:显示版权信息并退出。
-v:输出压缩信息。
-# --fast --best:#为1(fast)-9(best)数字越小速度越快,但压缩比越小,缺
省为6。
-c --stdout --to-stdout:压缩结果输出到标准输出,如不加-c参数,则gzip将源文
件压缩为.gz文件并删除源文件。
(3)范例
lark:->gzip -v sourcefile
sourcefile: 15.2% --replaced with sourcefile.gz
lark:->
39.head
(1)简介
head:显示文件的前几行。
(2)部分参数说明
head[-c N[bkm]][-n N][-qv][--bytes=N[bkm]][--lines=N]
[--quiet][--silent][--verbose][--help][--version]
[文件名. . .]
head[-N bcklmqv][文件名. . .]
-c N, --bytes N:输出文件的前N个字节。
-n N, --lines N:输出文件的前N行。
-q, --quiet, --silent:不输出文件名的信息。
-v, --verbose:输出文件名的信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。输出文件.lessrc的第一行。
lark:->head -n 1 .lessrc
forw-line
lark:->
40.hostid
(1)简介
hostid:显示或设置系统的HOSTID。
作者:Mitch Dsouza.
(2)部分参数说明
hostid [-v] [十六进制的ID]
-v:给出十进制和十六进制的ID。
对于每一台机器,其HOSTID是唯一的,只有超级用户才能更改。
(3)范例
lark:->hostid -v
Hostid is 650780800 (0×26ca2080)
lark:->
41.id
(1)简介
id:显示当前用户的用户名和组。
(2)部分参数说明
id [-a]
-a 参数用在支持一用户多组的系统上。
id在取得用户和user id和group id后从文件/etc/passwd,/etc/group中查出用户的用
户名和组名。
(3)范例
lark:-> id
uid=1000(fangh)gid=100(users)group=100(users)
lark:->
42.join
(1)简介
join:从两个文件中取出相同的行,按照指定的关键字为匹配的两行连接成一行。
(2)部分参数说明
join [-a 1|2][-v 1|2][-v empty-string][-o fieldlist. . .]
[-t char][-j[1|2]field] [-1 field] [-2 field]
文件1文件2
join{--help, --version}
-a file-number:文件1或2中不匹配的行也输出,file-number可以是1或2。
-e string:用字符串string代替输出的空域。
-1, -j1 field:在文件1的第field个域连接两个文件。
-2, -j2 field:在文件2的第field个域连接两个文件。
-j field:等于是-1 field -2 field。
-o field-list. . .:按照field-list中的格式构造输出行。
-t char:用字符char作为输入输出域的分割符。
-v file-number:为文件file-number的每一个不匹配的行打印一行代替通常的输出。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->join testfile1 testfile2
this is testfile is testfile
lark:->
43.kill
(1)简介
kill:中止一个进程
(2)部分参数说明
kill [-a信号|-p] [-a]进程号. . .
kill -l [信号]
kill向指定的进程发出特定的信号,如果没有指定信号则送出TERM信号,TERM信号将
杀死没有捕捉到这个信号的进程。对于某些进程可能要使用KILL(9)信号强制杀死。例如
:kill -9 11721。将强制杀死进程11721。大多数SHELL内建kill命令。
进程号. . :指定要杀死的进程列表,每个进程号可以是一个进程的id或者进程名。
-s:指定要送出的信号,信号可以由数字给出,也可以是信号名。常用的信号有KILL
(不能被进程忽略),HUP。
-P:只打印进程的ID不送出信号。
-I:打印所有信号列表(在/usr/include/linux/signal.h中定义)。
(3)范例。杀掉进程11721:
lark:->ps
PID TTY STAT TIME COMMAND
11668 pl s 0:00 -tcsh
11721 pl T0:00 cat
11737 pl R 0:00 cat
11737 pl R 0:00 ps
lark:!>kill 11721
[1] Terminated cat
lark:->
44.last
(1)简介
last:显示过去多少个用户或终端登录到到机器。
(2)部分参数说明
last:[-数目][-f文件名][-t tty] [-h 节点名][-i IP地址][-l][-y][用户名. . .
]
last从文件/var/log./wtmp中读出用户登录和离开的所有记录,并且可以查询某个用
户登录的情况,某个节点登录的情况,某个tty登录的情况。例如"last root -t
console"将列出所有root用户在控制台上登录的情况,如果不加参数则last将显示出所有
用户登录的情况。
-数目:确定显示多少行。
-f 文件名:用指定的log文件代替缺省的/var/log/wtmp文件。
-h节点名:只显示从某个节点登录的用户。
-l:用IP地址显示远端地址。
-t tty:只显示在特定tty上登录的用户。
-y:输出日期加上年份。
(3)范例。显示过去3次用户fangh登录的情况:
lark:->last -3 fangh
fangh ttyp1 csun01.ihep.ac.c Tue Aug 26 18:46 still logged in
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 22:32 - 23:14 (00:41)
fangh ttyp2 csun01.ihep.ac.c Mon Aug 25 19:58 - 21:59 (02:01)
lark:->
45.less
(1)简介
less:相对于more,用来按页显示文件。
作者:Mark Nudelman
(2)部分参数说明
less -?
less --help
less- V
less --version
less [-[+]aBcCdeEfgGiImMnNqQrsSuUVwX]
[-b bufs] [-h lines][-j line][-k keyfile]
[-{oO}logfile][-p pattern][-P prompt][-t tag]
[-T tagsfile] [-x tab] [-y lines][-[x]lines]
[+[+]cmd][--][文件名]. . .
less类似于more,但是less允许向前或向后浏览文件。less不全部读入文件后才显示
,所以在显示大文件时它的显示速度比vi之类的编辑器快。less采用termcap,所以它支持
的终端类型非常广泛。
-\? --help:列出less的所有操作命令。
-a:查询时从当前屏幕的最后一行之后开始查询。
-bn:指定less为每一个文件开nK的缓冲区。
-B:当less的输入是从管道中来的时候,其缓冲区的大小是字典设置 ,如果加上本选
项,则使用由-bn指定大小的缓冲区,但这有可能丢失前面输入的内容。
-c:从上往下刷屏,缺省的是从下往上刷屏。
-C:同-c,只是刷屏之前先清屏。
-d:less在哑终端上要输出错误信息,此参数强制less继续执行刷屏滚屏之类的命令
。
-e:当less第二次到达文件末尾时则退出,缺省的退出方式是命令"q"。
-E:当less第一次到达文件末尾时就退出。
-f:打开非正常文件(一个目录,或一个设备文件)。
-hn:指定回滚的最在行数。
-I:搜寻时忽略大小写。
-m:显示已经显示的文件百分比。
-q -Q:不输出响铃符号。
-r:显示控制符。
--version -V:显示版权信息。
(3)范例。显示test文件:
lark:-> less test
46.ln
(1)简介
ln:在文件间建立连接
(2)部分参数说明
ln [参数]源文件[目标文件]
ln[参数]源文件. . .dierectory
参数:
[-bdfinsvF][-s backup-suffix][-V{numbered, existing, simple}]
[--version-control={numbered, existing, simple}]
[--backup][--directory][--force][--interactive]
[--no-dereference][--symbolic][--verbose][--suf-
fix=backup-suffix][--help][-version]
-b, --backup:为删除的文件建立备份。
-d, -F, --directory:允许超级用户建立硬连接。
-f, --force:删除目标文件。
-i, interactive:在删除文件时给出提示。
-n, --no-dereference:如果目标文件是一个一个目录的符号连接则替代此符号连接
,而不是在这个目录中作连接。
-s, --symbolic:用符号连接代替硬连接。
-v, --verbose:输出每个要连接的文件的文件名。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
另外对链接文件做改变属性的动作是没有意义的,因为只有它们链接到的文件的属性才
是文件的真正属性。
(3)范例。将文件sourcefile连接到文件test:
lark:-> ln -s sourcefile test
lark:->ls -la test
lrwxrwxrwx 1fangh users 10 Aug 26 20:36 test -> sourcefile
lark:->
47.logname
(1)简介
logname:输出用户的登录时的用户名。
(2)范例
lark:->logname
fangh
lark:->
48.ls
(1)简介
ls,dir, vdir:列出目录下的文件(类似于DOS下的DIR命令)。
(2)部分参数说明
ls [-abcdefgiklmnopqrstuxABCFGLNQRSUX178] [-w cols] [-T cols] [-I
pattern] [--all] [--escape] [--directory]
[--inode] [--kilobytes] [--numeric-uid-gid] [--no-group]
[--hid-control-chars] [--reverse] [--size]
[--width=cols] [--tabsize=cols] [--almost-all] [--ignore-backups]
[--classify] [--file-type] [--full-time]
[--ignore=pattern] [--dereference] [--leteral] [--quote-name] [--trvitdobr]
[--sort={none,time,size,extension}] [--for mat={long,verbose,commas,across,
vertical,single-column}]
[--time={atime,access,use,ctime,status}] [--color[={yes,no,tty}]]
[--colour[={yes,no,tty}]][--7bit][--8bit] [--help][--version][name. . .]
-a, --all:列出目录系的所有文件,包括以"."开头的隐含文件。
-c, --time=ctime, --time=status:输出文件的i节点的修改时间,并按此排序。
-d, --directory:将目录当作文件一样显示,而不是显示其下的文件。
-e, --full-time:输出时间的全部信息,而不是输出简略信息。
-f -U, --sort=none:对目录下的文件不排序。
-g:无用。
-i, --inode:输出文件的i节点的索引信息。
-k, --kilobytes:如果输出文件大小,则按K的形式输出。
-l, --format=long, --format=verbose:输出文件的详细信息。
-m, --format=commas:横向输出文件名,以","作分割符。
-n, --numeric-uid-gid:用数字的UID,GID代替名称。
-o, --color, --colour, --color=yes, --colour=yes:输出彩色文件名。
-p -F,--classify:在每个文件名后附上一个字符以说明该文件的类型。
-q, --hide-control-chars:用?代替不可输出的字符。
-r, --reverse:对目录反向排序。
-s, --size:在每个文件名后输出该文件的大小。
-t, --sort=time:用时间对目录排序。
-u, --time=atime, --time=access, --time=use:用文件的上次被访问的时间来排序
。
-x, --format=across, --format=horizontal:输出按列输出,横向排序。
-A, --almost-all:输出除了"."". ."以外的所有文件。
-B, --ignore-backups:不输出以"-"结尾的备份文件。
-C, --format=vertical:输出按列输出,纵向排序。
-G, --no-group:输出文件的组的信息。
-L, --dereference:列出连接文件连接到的文件。
-N, --literal:不限制文件长度。
-R, --recursive:列出所有子目录下的文件。
-S, --sort=size:用文件大小排序。
-X, --sort=extension:用文件扩展名(最后一个"."后的字符)的字符顺序排序。
-l, --format=single-column:一行只输出一个文件。
-7, --7bit:不输出SCII(ISO646)(0x20-0x7E)以外的字符。
-8,--8bit:输出所有8-bit ISO8859(0x20-0x7E, 0xA1-0xFF)字符
-8, --8bit:输出所有8-bit ISO 8859 (0x20-0x7E,0xA1-0xFF)字符。
-w, --width cols:设定输出宽度为cols列。
-T, --tabsize cols:设定每个TAB宽度为cols列。
--color=no, --colour=no:不显示彩色文件名。
--help;在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版本信息并退出。
(3)范例。列出当前目录下的所有文件:
lark:->ls -la
total 6
drwxr-x--- 2 fangh users 1024 Aug 26 20:52 ./
drwxr-xr-x 19 root root 1024 Aug 26 21:09../
-rw-r--r-- 1 fangh users 15 Aug 21 21:57.bash_history
-rw-r--r-- 1 fangh users 34 Aug 20 20:41 .less
-rw-r--r-- 1 fangh users 114Aug 25 19:58 .lessrc
-rw-r--r-- 1fangh users 72Aug 24 18:43 sourcefile
lrwxrwxrwx 1fangh users 10 Aug 26 20:36 test ->sourcefile
lark:->
49.man
(1)简介
man:显示具有一定格式的在线手册。
(2)部分参数说明
man[-adfhkKtwW][-m system][-p string][-C config - file]
[-M path] [-P pager] [-S section -list] [section]查询名. . .
man搜寻的路径由MANPATH和(MAN)PAGER 这两个环境变量设置。
-C config_file:指定man.config这个配置文件的位置,缺省在usr/lib/man.config
。
-M path:指定man搜寻存放在线手册的路径。
-P pager:指定用来显示手册的程序,缺省/usr/bin/less。
-S section _list:选择手册的章节。
-k关键字:查询包含该关键字的所有man page。
man对于新手和老手来说都是非常有用的工具,用来快速查询命令和程序的使用方法和
参数。编程人员也可以用来查询C函数的用法。对于'rn(1)'或'ctime(3)'这样的输出,其
中括弧中的数字是指Unix手册中该文件所在的章节。当你打man3 ctime时,表示是要查阅
在第3节中的ctime的内容。下面是常见的Unix手册的分类。
1 用户命令
2 系统调用
3 库函数
4 设备和设备驱动程
5 文件格式
6 游戏
7 有用的杂类,如宏命令包
8 系统维护和管理命令
(3)范例。查询ls的用法:
lark->man ls
50.mtools
(1)简介
mtools:用来在UNIX下访问DOS下磁盘的工具包。
(2)工具介绍
mcd:进入DOS子目录。
mcd[DOS下的目录名]
mcopy:拷贝DOS文件。
mcopy[-tnvmoOsSrRA]源文件 目标文件
mcopy[-tnvmoOsSrRA]源文件 [源文件列表]目标目录
copy[-tnvm]MSDOS源文件
t:将文本文件中的回车和换行符转化为换行符。
n:覆盖已有文件时不给出提示信息。
medl:删除DOS文件。
medl [-v] msdos文件[msdos文件列表]
mdeltree:删除DOS目录。
mdeltree[-v]msdos目录[msdos目录列表]
mdir:查看DOS目录。
mdir[-w]mdos目录
mdir[-f][-w][-a]msdos文件[msdos文件列表]
-w 输出宽行文件列表(不包括时间信息)同DOS下的dir/w。
-a列出隐藏文件。
-f不计算磁盘剩余空间。
mformat:格式化DOS磁盘。
mformat[-t磁道][-h磁头][-s扇区][-l 扇标]
[-F][-I文件系统版本][-S大小代码][-2 0磁道上的扇区
][-M软件扇区大小][-a][-X][-C]
[-H隐藏扇区][-r根扇区]驱动器:
mkmanifest:创建一个恢复UNIX格式的文件名的SHELL。
mkmanifest[文件名]
mlabel[-ves]驱动器:[新卷标]
c清除原有卷标。
s显示原有卷标。
mmd:创建DOS目录。
mmd[-voOsSrRA]msdos目录[msdos目录列表]
mmove:移动DOS下的文件。
mmove[-voOsSrRA]源文件 目标文件
mmove[-voOsSrRA]源文件[源文件列表]目标目录
mmount:mount DOS磁盘。
mmount msdos驱动器[转载参数]
mtype:显示DOS下的文件。
mtpye[-ts]msdos文件[msdos文件列表]
t观看文本文件。
s略去高位字符。
mrd:删除DOS下的目录。
mrd[-v]msdos目录[msdos目录列表]
mren:将DOS下的文件改名。
mren[-voOsSrRA]源文件 目标文件
51.mesg
(1)简介
mesg:选择接收或者不接收其他用户发来的信息。
(2)部分参数说明
mesg[n][y]
此命令用来控制是否接受其他用户利用talk或是write向用户发出的信息(缺省是接受
),如果用户不想被打扰的话(例如用户正在编辑文件时)使用merg n就可以不接受别的
用户向用户的终端发过来的信息,不过这样有可能用户会错过别的用户发出的谈话请求,
如果用户想取消这一设置使用mesg y就可以恢复接受其他用户发来的信息.mesg不跟参数则
显示用户目前的设置情况。
(3)范例
lark:->mesg n
lark:->mesg
is n
lark:->
52.mkdir
(1)简介
mkdir:建立目录(同DOS下的md)。
(2)部分参数说明
mkdir[-p][-m权限][--parents][--mode=权限][--help]
[--version]目录列表
(3)范例
-m, --mode权限:给予建立的目录以设定的权限(缺省为drwxr-xr-x)。
-p, --parents:确定输入的每一层目录都存在,建立所有不存在的目录,例如
mkdir -p test/book如果test目录不存在则建立test目录。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
53.mknod
(1)简介
mknod:建立特殊文件。
(3)部分参数说明
mknod[选项]文件名{bcu}major minor
mknod[选项]文件名p
Options:
[-m 权限][--mode=权限][--help][--version]
mknod和来建立FIFO(管道文件)文件,特殊字符文件,特殊块文件。
p建立FIFO文件。
b建立块文件(有缓存)。
c,u建立字符文件(无缓存)。
注意 当建立块文件和字符文件时必须给出设备的major和minor数,mknod常常被和来
建立设备文件(/dev目录下都是设备文件)。
-m, --mode权限:给予建立的文件以设定的权限(缺省为0666)。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->mknod tt p
lark:->ls -la tt
prw-r--r-- 1 fangh users 0 Sep 2 20:33 tt|
lark:->
54.more
(1)简介
more:在终端上按页观看文件的过滤器。
more的功能没有less那么强大。而且less还提供了对more的模拟,不过一般和户可能更
习惯于使用同DOS环境下相似的more.
(2)部分参数说明
more[0dlfqesu][-num][+/要搜寻的字符串][+行数][文件列表]
-num:设定屏幕的大小(行数)
-d:more给出提示"[Press space to continue, 'q' to quit.]"在输入错误的命令时
给出"[Press 'h' for instructions.]"来代表响铃。
-l:通常more将^L看成是一个特殊字符,如果文件中含有这个字符则more会在这一行停
下来,此参数屏蔽这一特性。
-f:让more逻辑地计算文件的行数,缺省是按显示在屏幕上的行数来计算的。
-p:不滚屏,而是在清屏后显示下一屏。
-c:不滚屏,而是从上到下显示下一屏。
-s:将多个连续的空行转化成一行。
-u:屏蔽下划线。
+/:设定要搜寻的字符串。
+行数:从文件的第几行开始显示。
(3)范例。显示文件/etc/group并搜寻字符串bbs:
lark:->more+/bbs/etc/group
. . .skipping
users::100:games
nogroup::-1:
bbs:x:99:bbs,bbsroot,bbsuser
lark:->
55.mv
(1)简介
mv:将文件改名。
(2)部分参数说明
mv[参数]源文件目标文件
mv[ 参数]源文件 列表(支持通配符)目标目录
Options:
[-bfiuv][-S backup-suffix] [-V{numbered, existing,simple}] [--backup]
[--force][--interactive][--update][--verbose][--suffix=backup-suffix]
[--version-control={numbered,existing,simple}][--help][--version]
mv将文件从一个文件名更改到另一个文件名,或者将一批文件从一个目录移动到另外
一个目录。
注意 在不同的文件是移动文件时,只能移动普通文件。
-b, --backup:为要移动的文件制作备份。
-f, --force:强制覆盖已有文件。
-i, --interactive:在覆盖已有文件前给出提示让用户选择是否覆盖。
-u, --update:在目标文件的时间比原文件新时不覆盖目标文件。
-v, --verbose:在移动每个文件时输出相应信息。
-help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->mv -v sourcefile destfile
sourcefile ->destfile
lark:->
56.newgrp
(1)简介
newgrp:改变用户的组ID。
sg:以用户的另一组ID运行命令。
(2)部分参数说明
new grp[-][组]
sg[-]组[-c 命令]
new grp这条命令用来在用户登录后改变用户的组ID,如果不跟"-"参数,则所有环境
设置将被继续下来,反之则重新初始化,使用这条命令时如果不跟参数,则将用户的组改
变为/etc/passwd文件中缺省组,在输入命令后会提示让用户输入密码。如果用户不是要改
变到的组的成员或该组的密码部分是空的,则该用户将被屏蔽。sg命令同newgrp类似,但
是该命令不改变用户的shell。在运行完给定的命令后退回原先的组ID和shell。
(3)范例。改变用户的组ID到sys:
bash # new grp sys
#exit
exit
hash #
57.nice
(1)简介
nice:以设定的优先权来运行程序。
(2)部分参数说明
nice[-n adjustment]
[-adjustment][--adjustmen=adjustment][--help][--version][命令[参数列表]]
-n adjustment, -adjustment, --adjustment=adjustment:adjustmen为要调整的新
优先权,缺省为10,最高为-20(优先权最高)最低为19(优先权最低)
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。以优先权-19运行程序mpg123:
lark:->nice -19/usr/local/bin/mpg123 music1.mp3
58.passwd
(1)简介
passwd:设置用户的密码。
(2)部分参数说明
passwd[-f|-s] [用户名]
passwd[-g][-r|R]组名
passwd[-x max] [-n min] [-w warn] [-i inact]用户名
passwd{-l|-u|-d|-S}用户名
用户可以用passwd这个命令更改自己的登录密码,一般用户只能更改他自己的密码,
超级用户可以更改其他所有用户的密码,超级用户和组的管理者可以更改组的密码,还可
以用这个命令来更改用户的其他信息,如用户的全名,用户的登录shell,用户的密码失效
的时间间隔等等。用户首先被提示输入旧密码,程序接受这个密码并将其加密后同文件
/etc/passwd(或/etc/shadow如果有shadow的话)中存储的旧密码进行比较,用户只有一
次机会输入正确的密码,但是超级用户不必输入,因为这样才可以替那些忘记密码的用户
更改密码。用户的密码可以由大小写字母和阿拉伯数字及标点符号组成,最长8位,最短5
位。如果用户输入的密码符合条件,则passwd提示用户再输入一遍以便确认,在两次输入
密码相互吻合之后就将用户的密码改变。如果使用选项-g,则是让超级用户和组的管理者
更改组的密码,如果不加组名则使用当前组。在使用-g选项的的同时使用-r选项则解除组
的密码,使得任何一个用户都可以具有访问这个组的和,反之使用-R选项则让这个组对任
何用户都是不可访问的。超级用户可以用选项-x,-n,-w,-i选项来设定用户密码的使用期限
。-x选项用来设定用户密码有效的最长期限,在max天后用户需要改变密码,而-n选项则设
定用户只有在min天之后才能改变密码,-w选项用来设置警告用户的天数,-i选项用来设置
在incact天后将用户的帐号屏蔽掉,在inact天后用户将不能登录入自己的帐号。使用选项
-l可以屏蔽一个用户的帐号(将用户的密码改成一个不可能解密的值),使用选项则恢复
这个用户的帐号,密码被更改到上一次的值,即-l选项的逆过程。使用-S选项则输出用户
帐号的状态,输出的信息由下列部分组成:第一部分是表示用户的帐号是屏蔽(L),无密
码(NP),有可使用的密码(P),第二部分是最后一次改变密码的时间。下面四个部份分
别是最小使用密码时间,最长使用密码时间,警告时间,无效时间。即上文所述-n,-x,
-w,-i选项所设置的时间。
下面向读者介绍一下密码设置应注意的一些问题,对于UNIX系统来说,其安全性同每
个用户的密码都有关系,一个设置得很好的密码会让攻击系统的黑客花费很长的时间而一
无所得,而一个简单的密码会让一个精心设置的系统的安全毁于一旦。因而仔细地挑选密
码对于每个用户来说都是一件很重要的工作。下面给出设置密码的一些建议:不要使用自
己或家人的名字的汉语拼音,生日,门牌号电话号码来组成密码,也不要使用一个字典里
能查得到的英文单词作来密码,这些都属于容易攻击的密码范围,也不要将密码记在一个
别人看得见的地方。另外为了使密码易记,可以使用下面的方法,以一句英文句子的第一
个字母或最后的五个字母来作为密码,例如:
Do you still love me tommorow?
密码为Dyslmt?
这就是一个黑客们不大可能加入字典的一个密码,其安全性显然较好。另外密码中最
好包含数字和大小写,这样安全性会有所提高。
(3)范例。更改密码:
lark:->passwd
Changing password for fangh
Old password:oldpass 密码并不显示出来
Enter the new password(minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password:newpass
Re-enter new password:newpass
Password changed
lark:->passwd-S 显示用户情况
fangh P09/05/97 0 99999 7-1
lark:->
59.paste
(1)简介
paste:将不同文件的行连接起来。
(2)部分参数说明
paste[-s][-d
delim-list][--serial][--delimiters=delimlist][--help][-version][文件列表. . .
]
-s, --serial:一次只从一个文件中取一行,而不是从每个文件中取一行。
-d, --delimitesr delim-list:使用delim-list中的符号来代替缺省的TAB键为行为割
符。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
缺省的paste将输出到标准输出上。
(3)范例。将文件sourcel source2输出到文件dest中:
lark->paste sourcel source2 >dest
60.pr
(1)简介
pr:处理文件以便打印,输出到标准输出。
(2)部分参数说明
pr[+PAGE][-COLUMN][-abcdfFmrtv][-e[in-tab-char[in-tab-width]]][-b
header][-i[out-tab-char[out-tab-width]]] [-l
page-length][-n[number-separator[digits]]][-o
left-margin][-s[column-seqarator]][-w pagewidth][--help][--version][文件列表. .
.]
+PAGE:从第一PAGE页开始打印。
-COLUMN:输出COLUMN栏。
-d:将输出的每一行后加一新的空白行。
-e[in-tab-char[in-tab-width]]将TAB扩展为空格,in-tab-char为设定的TAB符(缺省
就是TAB),in-tab-width,为每个TAB扩展为几个空格,缺省为8个。
-F, -f:在页间使用换页符,缺省使用新行填满剩余部分。
-h header:用header字符串来代替缺省的文件名作为输出的标题。
-i[out-tab-char[out-tab-width]]:将空格缩定写成TAB,out-tab-char为设定的
TAB符(缺省就是TAB),out-tab-width为几个空格缩写为TAB,缺省为8个。
-l page-length:设置输出的每页有page-length行。
-m:将所有文件同时并行输出到几个栏位内。
-n[number-separator[digits]]:输出行号,number-separator为行号后的字符。缺省
为TAB,digits为行号的位数,缺省为5。
-o left-margin:设定左边界为left-margin个空格。
-r:打不开文件时不输出错误信息。
-s[column-seqarator]:用单个字符column-separator分栏,缺省为TAB。
-w page-width:设定页宽为page-width列,缺省为72。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。对文件destfile进行处理:
lark:->pr -f destfile -n
97-09-08 21:15 destfile Page 1
1 total9
2 -rw-r--r 1fangh users 172 Sep 6 17:09 aaa
3 -rw-r--r 1fangh users 0 Sep 8 21:15 desfile
4 -rw-r--r 1fangh users 99 Sep 6 21:08 destfile
5 -rw-r--r 1fangh users 28 Sep 7 14:28 list
6 -rw-r--r 2fangh users 1024 Sep 6 17:09 mail/
7 -rw----- 1fangh users 3652 Sep 8 15:45 mbox
8 drwxr-xr-x 6fangh users 1024 Sep 6 16:57 mp3/
lark:->
(1)简介
ps:查看进程状态。
(2)部分参数说明
ps[-][lujsvmaxScewhrnu][txx][O[+|-]kl[[+|-]k2. . .]
--sortX[+|-]key[,[+|-]]key[,. . .]] --help --vesion [pids]
-l:长列表。
-u:用户格式:给出用户名和开始的时间。
-j:作业格式:给出pgid,sid。
-s:信号格式。
-v:虚拟存储器格式。
-m:显示内存信息。
-f:给出树状格式。
-a:显示其他用户的进程。
-x:显示没有控制台的进程。
-c:从task-struct中给出进程名。
-e:显示环境。
-w:宽行输出,不自动换行。
-h:无标题。
-r:只显示正在运行的程序。
-n:用数字来输出USER和WCHAN。
txx:只显示受tty.xx控制的进程。
pids:只显示特定的进程。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
下面解释一下各栏的意义:
FLAGS:长格式的F域。 S: 睡眠。
UID: 用户的ID。 D: 不可打断的睡眠。
PID: 进程的ID。 T: 停止或跟踪。
PPID: 父进程的ID。 Z: 僵尸进程。
PRI: 进程优先级。 W: 进程没有驻留页。
NI: 标准UNIX的优先级 N: 进程有一负nice值。
SIZE: 虚拟内存的大小。 TTY: 进程的控制台。
RSS: 驻留空间的大小。 PAGEIN:主内存页失败的数目(页失败造成页
WCHAN:进程等待的内核事件。从磁盘或CACHE中读取)。
STAT: 进程状态:代码如下。TRS:文本驻留大小。
R: 正在运行。 SHARE:共享内存。
SWAP:交换设备上的K字节数。
(3)范例。显示当前进程:
lark:->ps -c
PID TTY STAT TIME COMMAND
8724 p4 s 0:00 tcsh
8876 p6 R 0:00 ps
lark:->
62.pwd
(1)简介
pwd:显示正在工作或当前目录名。
(2)部分参数说明
pwd [--help, --version]
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意pwd输出的是真实径名,它不会输出符号连接的目录名。
大多数UNIX shell内建pwd命令,这样用户运行的就有可能不是/bin/pwd这个 命令。
(3)范例。列出当前工作目录:
lark:->pwd
/home/fangh
lark:->
63.quota
(1)简介
qutoa[-guv|q]
qutoa[-uv|q] 用户名
qutoa[-gv|q] 组名
-g:显示用户所在某个组的磁盘限制。
-u:显示用户的磁盘限制(缺省设置)。
-v:显示没有分配空间的文件系统的分配情况。
-q:显示简洁的信息,除了超过限额的情况一般不显示。
注意 Linux缺省是不设置quota的,如果用户要设置quota请阅系统管理部分。
(3)范例
lark:->quota
Disk quotas for users fangh (uid 10000):none
lark:->
64.rcp
(1)简介
rcp:在计算机间拷贝文件。
(2)部分参数说明
rcp [-px][-k realm]源文件名 目标文件名
rcp[-px][-r][-k realm]源文件列表 目标目录
-r:如果源文件名是目录,则拷贝所有子目录,目标文件必须也是目录。
-p:尽量保持文件的修改时间和访问权限。
-k:要求rcp获得外部许可。
-x:给拷贝的数据流用DES方法加密。
注意 要成功地拷贝文件,用户必须在目标机器上具有运行rsh的权利。参见rsh和
rlogin。
(3)范例。从机器siskin上拷贝文件:
lark:-> rcp siskin:/home/fangh/mbox./mbox
lark:->
65.reset
(1)简介
reset:将终端复位。
在使用终端的过程中,有时会发现屏幕在字符"花"掉了,这时使用reset就可以恢复,
例如在运行完电路分析软件PSPICE后,就会发现屏幕字符错乱,使用reset就恢复正常。
reset调用tput函数,向终端发出复位信号。如果屏幕被Ctrl+S锁住了,可以用Ctrl+Q来解
除锁定。
(2)范例。将终端复位。
lark:->reset
66.rm
(1)简介
rm:删除文件或目录。
(2)部分参数说明
rm [-dfirvR][--directory][--force][--interactive]
[--recursive][--help][--version][--verbose]文件名列表. . .
-d, --directory:本选项将用unlink替代rmdir来删除目录,只有超级用户有权使用。
这种删除方法不用先使目录为空,但本选项在目录非空时会造成目录中的文件簇丢失,在
执行这个命令后可以用fsck来修复文件系统。
-f, --force:忽略不存在的文件,并且不给用户任何提示。
-i, --interactive:在删除每个文件时提示用户选择"y"或"n"。
-r, -R, --recursive:将整个目录删除,连带所有子目录。
-v, --verbose:删除每个文件时输出文件信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
注意 在LINUX
下如果产生类似于"-f"这种文件名的文件,删除是先跟"--"选项。这表明后面所跟的"-f"
不是选项而是文件名,例如"rm-- -fle"是删除文件"-file",在删除文件名中包含特殊字
符的文件时,可以用"\+特殊字符",或用""将文件名括起来,例如要删除文件"this is
a test"可以用下列命令:
rm this/\is \a \test或者
rm"this is a test"
另外要特别注意,使用rm-rf*这个命令,如果用户是超级用户,并且在root下使用此命令
,那么系统的所有文件将被删除。而在UNIX下恢复文件几乎是一
件不可能的事情。因而要谨慎对待这个命令。另外建议用户将rm定义为"rm-i",并加入到
用户的登录文件中。
(3)范例。删除文件destfile。
lark:->rm -v destfile
destfile
lark:->
67.rmdir
(1)简介
rmdir:删除空的目录。
(2)部分参数说明
rm"this is a test">
rmid[-p][--parents][-help][--version]目录列表. . .
-p --parents:例如rm -pdir/dir2如果删除dir2后dirl已经为空目录,则删除目录
dir1。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。删除目录test:
lark:->rmdir test
lark:->
68.set
(1) 简介
set:显示或设置环境变量。
unset:删除环境变量。
(2) 部分参数说明
set变量名=变量值
如不跟参数则显示当前设置:
unset变量名
这两个命令都是shell内建的命令。
(3) 范例
lark:->set term=vt100 设置变量term为vt100
lark:->unset term 删除变量 term
69.sh
(1)简介
见bash
70.sleep
(1)简介
sleep:延迟设定的时间。
(2)部分参数说明
sleep[--help] [--version] number[smhd]
sleep延迟由 number+smhd给出的时间。
Smhd的含义是:
S秒 h小时
m分钟 d天
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->sleep 1 m 等待1分钟
lark:->
71 sort
(1)简介
set:将文本文件排序。
(2)部分参数说明
sort [-cmus][-t间隔符][-o 输出文件名][-T临时目录]
[-bdfiMr][+POS1[-POS2]][-k POS1[,POS2]][文件名列表. . .]
sort {--help, --version}
sort有三种使用方式:缺省的是将文本文件排序,还可以合并文件。
-c:检查文件是否已经排序,如果没有则给出错误信息并退出。
-m:将文件列表中的文件作为一个组来排序,并合并起来,每个文件必须先各自排序
。
-b:排序时忽略行首的空白。
-d:按电话本的目录方式排序忽略了字母,数字和空白以外的所有字符。
-f:将小写字母当作大写字母来排序,例如"b"作为"B"来排序。
-i:忽略ASCII字符内码不在范围040-0176之间的字符。
-M:将每一行开头如果是月份的英文缩写的前三个字母的话被按月份大小排序。
-n:按数字大小而不是字母顺序来排序。
-r:反向排序。
-o输出文件名:将输出重定向到文件中取代缺省的标准输出。
-t间隔符:用设定的间隔符取代缺省的空格符。
+POS1[POS2]:用每一行的第POS1列到第POS2列来排序,如不给出POS2则到行尾。
-k POS1[,POL2]:同上。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。列出文件testfile的内容:
lark:->cat testfile
231
this is a test
1231
do you know
321
let's go
lark:->sort testfile 将文件testfile排序
1231
231
321
do you know
let's go
this is a test
lark:->sort -n testfile 将文件testfil按数字大小排序
231
321
1231
do you know
let's go
this is a test
lark:->
72.split
(1)简介
split:分割文件。
(2)部分参数说明
split [-lines] [-l lines][-h bytes[bkm]][-C bytes[bkm]]
[--lines=lines] [--bytes=bytes[btm]] [--line-
bytes=bytes[bkm]] [--help][--version] [输入文件[输入文件]]
输出文件名为输出文件的名称,程序自动在其后加上aa,ab,ac,. . . .,缺省为x。
-lines,-l lines, --lines=lines:从输入文件中读出lines行,然后写入一个新的输
出文件。
-b bytes[bkm], --bytes=bytes[bkm]:从输入文件中读出bytes(b -512比特,k -1
K,m-1兆)大小的数据,然后写入一个新的输出文件。
-C bytes[bkm], --line-bytes=bytes[bkm]:写入每输出文件的一行的大小被限制为
bytes大小。
-help:在标准输出上输出帮助信息并退出。
-version:在标准输出上输出版本信息并退出。
(3)范例。分割文件tcsh.txt:
lark:->split tcsh.txt tcsh.txt
lark:->ls -la tcsh*
-rw-r--r-- 1 fangh users 252409 Sep 19 13:30 tcsh.txt
-rw-r--r-- 1 fangh users 48074 Sep 19 13:30 tcsh.txt.aa
-rw-r--r-- 1 fangh users 46000 Sep 19 13:30 tcsh.txt.ab
-rw-r--r-- 1 fangh users 46097 Sep 19 13:30 tcsh.txt.ac
-rw-r--r-- 1 fangh users 47867 Sep 19 13:30 tcsh.txt.ad
-rw-r--r-- 1 fangh users 43427 Sep 19 13:30 tcsh.txt.ae
-rw-r--r-- 1 fangh users 20944 Sep 19 13:30 tcsh.txt.af
lark:->
(1)简介
stty:设置或显示终端行数的设置情况。
(2)部分参数说明
stty[设置. . .]
stty{-a,--all,-g,--help,--save,--version}
stty如果不跟参数,则输出当前的终端设置情况。如跟参数则用"-"表示关闭该设定。
控制设定:
[-]parenb:输出时产生奇偶校验位,并且必须输入时也带奇偶校验。
[-]parodd:设置为奇校验。
cs6 cs6 cs7 cs8:设置字符大小为5,6,7或8比特。
[-]hupcl[-]huph:当本终端最后一个进程结束时送出hangup信号。
[-]cstopb:每个字符用两个停止位,加"-"号时为一个。
[-]creak:允许接受输入。
[-]clocal:禁止调制解调器控制信号。
[-]crtscts(np):使能RTS/CTS握手信号。
输入设定:
[-]ignbrk:忽略break字符。
[-]brkint:break字符产生一个中断。
[-]ignpar:忽略奇偶校验错的字符。
[-]parmrk:标志奇校验错的字符。
[-]inpck:使能对输入的奇偶校验检查。
[-]istrip:对输入字符的高八位清零。
[-]inlcr:将换行符转换为回车符。
[-]igncr:忽略回车。
[-]icrnl:将回车符转换为换行符。
[-]ixon:使能XON/XOFF流控制。
[-]ixoff[-]tandem:如果输入缓冲满则输出停止字符,当输入缓冲空时输出开始字符
。
[-]iuclc(np):将大写字符转换为小写字符。
[-]ixany(np):允许任何字符重置输出。
[-]imaxbel(np):如果新的字符来到时输入缓冲满则响铃,但是并不清缓冲。
[-]olcuc(np):将小写字母转变为大写字母。
[-]ocrnl(np):将回车符转变为新的换行符。
[-]onlcr(np):将换行符转变为回车加换行符。
[-]onocr(np):不在第一列输出回车。
[-]ofill(np):用填充字符来代替时间延迟。
[-]ofdel(np):使用删除符代替空白符为填充时使用的字符。
nll n10 (np):换行延迟类型。
cr3 cr2 cr1 cr0 (np):回车延迟类型。
tab3 tab2 tab1 tab0 (np):水平制表延迟类型。
bs1 bs0 (np):退格延迟类型。
vt1 vo0(np):垂直制表延迟类型。
ff1 ff0 (np):表格延迟类型。
本地设置:
[-]isig:使能中断,退出,挂起等特殊字符。
[-]icanon:使能删除,杀死,等特殊字符。
[-]iexten:使能非POSIX标准的特殊字符。
[-]echo:输入回显。
[-]echoe,[-]crterase:将删除符回显为退格-空格-退格。
[-]echok:在杀死符后回显新行。
[-]echonl:没有回显其他字符时也回显新行。
[-]noflsh:在中断和退出等特殊字符后禁止清空缓冲。
[-]xcase(np):在设置了icanon的情况下用"\"加小写字母来输入和显示相应的大写字
母。
[-]tostop(np):停止在后台的作业向终端输出。
[-]echoprt[-]prterase(np):在符号"\"和"/"之间将删除符回显为后退符。
[-]echoctl[-]ctlecho(np):用' ^c'的形式来输出控制符。
[-]evenp[-]parity:同parenb -parodd cs7。加'-'后,同-parenb cs8。
[-]oddp同parenb parodd cs7。加'-'后,同-parenb cs8。
[-]nl同-icrnl -onlcr。加'-'后,同icrnl。
合并设定:
ek:交删除和杀死符重置到缺省值。
sane:将所有设置重置到缺省值。
[-]pass8:同-parenb-istrip cs8。加'-'后,同parenb istrip cs7。
[-]litout:同-parenb -istrip -opost cs8。加'-'后,同parenb istrip opost
cs7。
特殊字符:
intr送出中断信号。
quit送出退出信号。
erase删除输入的最后一个字符。
kill删除当前行。
eof送出文件结束符。
eol行结束符。
eol2(np):交替的行结束符。
swtch(np):不同SHELL之间切换。
start重新开始输出。
stop停止输出。
susp送出终端停止符。
dsusp(np):在清空输入缓冲后送出终端停止符。
rprnt(np):重绘当前行。
werase(np):删除输入的最后一个单词。
特殊设定:
minN:当设定-icanon后,在特定时间内最少要输入N个字符。
TimeN:设定上一选项的特定时间。
ispeed N:设定输入速度为N。
ospeed N:设定输出速任*N。
rows N (np):通知系统核心终端有N列。
cols N columns N (np):通知系统核心终端有N行。
size(np):输出系统核心已知的终端的行列数。
line N(np):使用行设定N。
speed:输出终端的速度。
N:设定输入和输出的速度为N,N可以为:
0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200
38400 exta extb。
exta同19200;extb同38400。如果设定了0又设定了-clocal则终端将被挂起。
选项:
-a, --all:输出所有设置。
-g, --save:输出所有设置,输出格式为另一个stty可以恢复当前设置的格式。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。输出当前设置:
lark:->stty -a
speed 9600 baud;row 0; columns 0;line =0;
intr=^C;quit=^\;eras=^?;kill=^U;eof=^D;eol=<undef>;
eol2=<undef>;start=^Q;stop=^S;susp=^Z;rprnt=^R;werase=^W;
lnext=^V;flush=^O;min=1;time=0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon
-ixoff
-iucle -ixany -imaxbel
opost -olcuc -ocnl onlcr -onocr -onlret -ofill -ofell -ofdel nl0 cr0 tab0
bs0
vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop
-echoprt
echoctl echoke
lark:->
74.sync
(1)简介
sync:清空LINUX文件系统的缓冲区。
在系统的CPU停止工作以前必须调用该命令来将系统的缓冲区写入硬盘。REBOOT和HALT
指令都将调用该命令来清空缓冲区。LINUX的优点之一就是磁盘存取速度快,这是因为它将
不用的内存都拿来作缓冲区了,这带来的问题就是在系统前必须将缓冲清空,否则就会丢
失信息和数据。请看Linus本人是如何说的:"sync这个命令只保证在一定时间内将数据写
入硬盘,这需要一定的时间写完所有的数据,如果用户在执行这条命令后马上关机的话,
请稍等片刻。"(但是REBOOT和HALT命令会代替用户作这些工作。)
update -周期性地清空LINUX文件系统的缓冲区。
它有两种工作模式,一种是缺省地每5秒钟写一些块(不调用sync),一种是每30秒调
用一次sync。在系统启动时update作业应该越早运行越好,在SLACKWARE版本中在
/etc/rc.d/rc.S中的第二条命令就是运行update。它的进程号一般是13。
(2)部分参数说明
update[选项]
-S:只使用sync工作。
-a秒:设定调用sync的时间间隔,缺省是30秒。
-f秒:设定缺省工作方式的时间间隔,缺省是5秒。
75.su
(1)简介
su:改变用户的ID或成为超级用户。
作者为Julianne Frances Hargh(jfh@tab.com)。
su可一让用户在一个登录的shell中不用退出就可以变成另外一个用户,如果后面不跟
参数,则su缺省地变成超级用户。执行su命令时,程序会让用户输入密码,如果密码不正
确,则程序将给出出错信息后退出,所有su的动作都会被系统记录在一个log文件中,以便
探测谁在恶意攻击系统。su之后,当前的所有环境变量都会被传递过去,但是路径值$
PATH将被重置为/bin:/usr/bin(对一般用户)或/sbin:/bin:/usr/sbin:/usr/bin(对超
级用户)这两个缺省值可以通过改变文件/etc/login.defs中的ENV_PATH值和ENY_SUPATH的
值来改变。
(2)部分参数说明
su [-][用户名[参数]]
su后面可以跟参数,例如su用户名-c命令,就会在改变用户ID后执行相应的命令并退
出。
(3)范例。变更为用户fangh:
lark:->su fangh
Password:
>whoani
fangh
>
76.sudo
(1)简介
sudu:以超级用户的身份执行某些命令。
visudo:编辑可以使用sudo命令的用户列表。
在系统管理中,有时需要给予某些用户的部分系统特权以便执行某些系统命令。例如
shutdown,halt,lpc等命令,但是系统管理员又不愿意给予他们全部的系统特权,这时
sudo命令就非常有用了。Sudo允许经过同意的用户以超级用户的身份执行指令。Sudo一
/etc/sudoers这个文件来判定谁是授权的用户。Sudo将会提示用户输入密码开始一段N分钟
的可以使用的时间(其中N是在安装的进修定义的且缺省值为5分钟结束后自动退出)。
Sudoers这个文件是由一个选择性的主机别名(host alias)域,一个选择性的指令别
名(command alias)域以及用户说明(user specification)域所组成的。所有的指令别
名或主机别名必须需以他们自己的关键字作为开始(Host_Alias/Cmnd_Alias)。注意,只
有第一次使用的用户(在用户说明域里有记录的用户)使用时会有说明。
用户说明域格式:
用户 有权限[:有权组]. . .
有权组::=主机类别=[op]指令类别[,[op]指令类别]. . .
主机类别::=小写的主机名或主机别名。
指令类别::=指令或指令别名。
op::='!'否定符。
主机别名域格式:
Host_Alias主机别名=主机列表
Host_Alias::=一个关键字。
主机别名::=一个大写的别名。
主机列表::=以逗号间隔的一些主机名
指令别名域格式:
Cmnd_Alias指令别名=指令列表
Cmnd_Alias::=一个关键字。
指令别名::=一个大写的别名。
指令列表::=以逗号间隔的一些指令。
在"#"符号后面是注解。太长的行可以使用"\"来分成新的行。保留的别名"ALL"在
{Host,Cmnd}_Alias里都可以使用。不要使用关键字"ALL"来定义一个别名,这个别名无效
。
注意,"ALL"代表全部的主机跟指令。
用户可以使用这个语法从所有定义中掉一些项目:
user host =ALL,!ALIASI,!/etc/halt. . .
sudoers文件的范例文件:
# Host alias specification
Host_Alias HUB=houdini.rootgroup.com:\
REMOTE=merlin,kodiakthorn,spirit
Host_Alias MACHINES=kalkan,alpo,milkbones
Host_Alias SERVERS=houdini,merlin,kodiakthorn,spirit
#Command alias specification
Cmnd_Alias LPCS=/usr/etc/lpc,/usr/ucb/lprm
Cmnd_Alias SHELLS=/bin/sh,/bin/csh,/bin/tcsh
Cmnd_Alias MISC=/bin/rm,/bin/cat:\
SHUTDOWN=/etc/halt,/etc/shutdown
# User specification
britt REMOTE=SHUTDOWN:ALL=LPCS
robh ALL=ALL,!SHELLS
nieusma SERVERS=SHUTDOWN,/etc/reboot:\
HUB=ALL,!SHELLS
jill houdini.rootgroup.com=/etc/shutdown,MISC
markm HUB=ALL,!MISC,!/etc/shutdown,!/etc/halt
billp ALL=/usr/local/bin/top:MACHINES=SHELLS
davechieb merlin=ALL:SERVES=/etc/halt:\
kodiakthorn=ALL
上面的sudoers说明文件是由4个主机别名说明,4个指令别名说明以及7个用户说明所组
成的。Britt被允许在远端机器(merlin,kodiakthorn,还有sprirt)上执行/etc/halt,
/etc/shutdown,/usr/etc/lpq以及/usr/ucb/lprm。Rohn被允许在任何机器上执行除了
SHELL指令以外的任何指令。Jill被允许在机器houdini上执行/etc/shotdown,/bin/rm,以
及/bin/cat。Davehieb可以在机器merlin以及kodiakthor上执行任何指令并且可以halt服
务器。
Sudoers文件应该用visudo编辑,它会锁住该文件并且检查语法,以避免产生错误的文
件。Sudo被设计成用4.3BSD的syslogging来记录,但是也可以使用用户自己的log进程来记
录如果一个没有被授权的用户执行了sudo的话,将会有一封mail从该用户处寄送到当地的
管理员处(Linux缺省是root)。所有的设定都是在安装时定义的由sudo.h及Makefile定义
,但是Linux缺省的是安装好的执行文件,用户如果要更改的话,需要重新编译与安装。
允许巢状的主机以及指令别名。
允许在sudoers文件中使用host specifie,以便使全局符号(user ALL,!SERVERS,. .
.=commands)。
允许在sudores文件里的用户别名(就如同主机/指令别名一样)。
(2)部分参数说明
sudo命令
(3)范例。用sudo来halt机器:
lark:->sudo halt
77.tail
(1)简介
tail:显示文件的最后一部分
(2)部分参数说明
tail [-c[+]N[bkm]][-n[+]N][-fqv][--bytes=[+]N[bkm]]
[--lines=[+]N][--follow][--quiet][--silent][--verbose]
[--help][--version][文件名列表]
tail缺省显示文件名列表中的每个文件的最后十行,如果没有文件名或文件名为"-"则
其从标准输入中读取文件,如果有多个文件则其会在文件前面加上"= =>文件名<=="以
便区分。
-c N, --bytes N:显示文件后部的N比特大小的部分,N后面可以跟bkm参数。
b:512比特的块。
k:1k的块。
m:1M的块。
-f:--follow:如果文件大小在增长的话,tail将跟随文件增长而显示。
-l, -n N, --lines N:显示文件末尾的N行。
-v,--verbose:一直输出"= =>文件名<= ="形式的文件名。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示文件/etc/DIR_COLORS的最后三行:
lark:->tail -v -n 3/etc/DIR_COLORS
= => /etc/DIR_COLORS<= =
.xbm 01:35
.xpm 01:35
.tif 01:35
lark:->
78.tar
(1)简介
tar:GNU版的文件打包备份的工具。
(2)部分参数说明
tar [-] A --catenate --concatenate | c --create |d --diff --compare |r
--append | t --list | u-update |x
-extract --get [--atime -preserve][-b, --block-size N][-B,
--read--full-blocks][-C, --directory DIR][
--checkpoint][-f, --file[HOSTNAME:]F][--force-local][-F,--info--script
F--neo--volume-script F][
-G, --incrementat][-g, --listed-incremental F][-h, --dereference][-i,
--ignore-zeros][--ignore-failed-
read][-k, --keep-old-fils][-k, --starting-file F][-l,--one-file-system][-L,
--tape-lengthN][-m,
--modification-time][-M,--multi-volume] [-N, --after-date DATE, --newer
DATE][-o, --old-
archive, --portability][-O, --to-stdout][-p, --same-permissions,
--preserve-permissions][-P, --absolute-paths] [--preserve][-R,
--record-number][--remove-files]
[-s,--same-order, --preserve-order][--same-owner]
[-s,--sparse][-T,--files-from F][--null][--totals][-v,--verbose][-v, --label
NAME]
[-version] [-w, --inteactive, --confirmation][-W,--verify][--exclude FILE][-X,
--exclude-from FILE]
[-Z, --compress,--uncompress][-z, --gzip, --ungzip],[-use-compress-progran
PROG][--block-compress][-[0-7][lmh]]
[文件名列表]
[目录名列表]
tar是对一般用户最易用和最可靠的实用程序,从归档介质(可以是一个磁带机,也可以是
普通文件)上保留和恢复文件,也能从之个文件归档中抽取单个文件。
-A, --catenate, --concatenate:向归档文件中追加另一个tar文件。
-c, --create:建立新的归档文件。
-d, --diff, -compare:将归档文件和文件系统上的文件作比较。
--delete:从归档文件中删除文件(不能够用在磁带机上)。
-r, --append:向归档文件末尾追加文件。
-t, --list:对归档文件列目录。
-u, --update:只追加比归档文件中的文件新的文件。
-x, -extract, --get:从归档文件中解出文件。
--atime-preserve:不改变文件的访问次数。
-b, --block-size N:块大小为N乘以512比特(N缺省为20)。
-B, --read-full-bolcks:为兼容4.2BSD而设。
-C,--directory DIR:将目录名改为DIR。
--checkpoint:在读归档文件时输出文件名。
-f, --file[HOSTNAME:]F:使用设备F来储存归档文件。
-force-local:强制设定归档文件为本地文件。
-F, --info-script F --new-volume-script F为在每盘磁的结尾执行设定的脚本文件
。
-G, --incremental:用老的GNU格式来打包/列出/解开归档文件。
-g, --listed-incremental F:用新的GNU格式打包/列出/解开归档文件。
-h, --dereference:不保存符号连接而保存其指向的文件。
-i, --ignore-zores:忽略零block的文件。
--ignore-failed-read:在文件不可读时不退出。
-k, --keep-old-files:在从归档文件中释放文件时不改写现有文件。
-K,--starting-file F:从归档文件的第F个文件开始。
-l, --one-file-system:只在本地文件系统产生归档文件。
-L, --tape-length N:在写完N*1024byte后换磁带。
-m, --modification-time:归档时不改变文件的修改时间。
-M, --multi-volume:存放/列出/解开多卷的归档文件。
-N, --after-date DATE, --newer DATE:只存放比日期DATE新的文件。
-o, --old-archive,--portability:和旧的V7格式存放(缺省为ANSI格式)。
-O, --to-stdout:将文件解开到标准输出。
-p, --same-permissions, --preserve-permissions:解开文件时恢复所有访问限制。
-P, --absolute-paths:解开文件时使用绝对路径。
--preserve:同-p -s。
-R, --record-number:显示归档文件内部的所有记录数。
--remover-files:将文件归档后删除源文件。
-s, --same-order, --preserve-order:显示同归档文件中顺序一样的文件名。
--same-owner:解开文件时恢复原所有者。
-S, --sparse:有效存放稀疏文件。
-T, --files-from F:从文件F中读取要释放或解开的文件名。
--null:使能-T参数可以读取有空格的文件名,屏蔽参数-C。
--totals:在创建文件时显示总字节数。
-v, --verbose:处理过程中输出相关信息。
-V, --label NAME:用卷标名NAME来命名归档文件。
--version:输出版本号。
--w, --interactive, --confirmation:进行每一步操作前要确认。
-W, --verify:在打包文件后进行校验。
--exclude FILE:不将文件FILE归档。
-X, --exclude-from FILE:不将文件FILE中列出的文件归档。
-Z, --compress, --uncompress:用compress来压缩归档文件。
-z, --gzip, --ungzip:用gzip来压缩归档文件。
-use-compress-program PROG:用自定义的压缩程序PROG来压缩归档文件。
-block-compress:将压缩的归档文件做成块,以便磁带机使用。
-[0-7][1mh]:设定磁带驱动器和密度。
(3)范例。将当前目录下所有.txt文件打包并压缩到归档文件bak.tar.gz:
lark:>tar czvf bak.tar.gz ./* .txt
./tcsh.txt
将目录./sec打包到归档文件sec.tar.gz:
lark:->tar czvf sec.tar.gz ./sec
./sec/
./sec/advance_edu.tgz
./sec/email
./sec/doc.tar
lark:->
79.tcsh
(1)简介
tcsh:一个带有文件名自动补充和行编辑功能的C shell。
tcsh是著名的伯克利UNIX的C SHELL的增强版本,它既可以作为一个交互式的登录
SHELL又可以作为脚本文件的处理器。
(2)部分参数说明
-b:强迫tcsh中止对参数的处理,在此选项之后的参数都作为传递给tcsh的命令来处理
。
-c:若用-c参数,则tcsh执行完后面所跟的命令后退出。
-d:从文件-/.cshdirs中读入目录堆栈。
-Dname[=value]:设置环境变量name的值为value。
-e:tcsh执行命令后返回值为非零值时则退出tcsh。
-f:tcsh忽略配置文件-/.tcshrc,这样启动tcsh的过程会加快。
-F:tcsh使用fork来代替cfork以产生新进程。
-i:即使标准输入不为终端,也成为交互式的shell。
-l:表明此shell为登录shell。
-m:tcsh从当前目录下读取-/.tcshrc即使此目录不为当前用户的根目录。
-n:读入命令但是并不执行。
-q:tcsh接受SIGQUIT信号。
-s:从标准输入到接受命令。
-t:使tcsh只处理单行命令,当一行写不下的时候,用"/"可以在下一行接着输入。
tcsh在作为登录shell启动时,首先读取系统配置文件/etc/csh.cshrc和/etc/csh.
login.接着到用户的根目录下去读取-/.tcshrc,如果没有-/.tcshrc则去读取-/.cshrc,
接着读取-/.history,-/.login最后是-/.cshdirs。非登录shell启动时只读取/etc/csh.
cshrc和-/.tcshrc。
·命令行编辑器:使用方向键来编辑,上下键在历史记录中选择命令,左右键在命令行
上前后移动进行编辑。
·命令补充和列表:在用户键入命令时,经常不能记住命令或目录的全名,这时候
tcsh可以帮助用户将剩余部分补全,例如用户键入"/usr/lost"但是忘记后面的部分,这时
候用户只需要键入TAB键,tcsh就会自动将剩余的部分补全--"/usr/lost+found./",当用
户给出的部分有多个匹配的情况下例如"/usr/l"则TAB将无法补全,这时候用户只须键入
"Ctrl+D"则tcsh将替用户列出所有匹配的情况:"lib/local@lost+found/",用户就可以自
己选择了。
·拼写检查:在设置变量correct的值为cmd后,则tcsh会对用户输入错误的命令给出提
示:
>set correct=cmd
>ls/usr/bin
CORRECT>ls/usr/bin(y|n|e|a)?
如果回答yes就会将lz更正为ls。此外,tcsh所占内存比ash要大400k,为1.2M左右,如
果用户内存不足的话可以换用其他shell。
以上的介绍只是一些粗略的介绍,TCSH的强大功能有待于用户在实践中去发掘。或使用
man tcsh去查看tcsh的用户手册。
80.tee
(1)简介
tee:从标准输入中读取,向标准输出和其他文件中写入。
(2)部分参数说明
tee [-ai] [--append] [--ignore-interrupts] [--help]
[--version] [文件名列表]
-a, --append:将标准输入追加到输出文件的后面而不是缺省的覆盖它。
-i, --ignore-interrupt:忽略中断信号。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将输入重定向到标准输出和文件out中:
lark:->tee out
this is a test
this is a test
lark:->cat out
this is a test
fish:->
81.test
(1)简介
test:比较文件类型并返回相应的值。
(2)部分参数说明
test[表达式]
test[--help, --version]
test在表达式为真的时候返回0,在表达式为假的时候返回1,可行的表达式如下:
-b文件名:如果文件存在且为块文件则为真。
-c文件名:如果文件存在且为字符文件则为真。
-d文件名:如果文件存在且为目录则为真。
-e文件名:如果文件存在则为真。
-f文件名:如果文件存在且为普通文件则为真。
-g文件名:如果文件存在且为设置组则为真。
-k文件名:如果文件是真实文件则为真。
-L文件名:如果文件存在且为符号连接文件则为真。
-p文件名:如果文件存在且为管道文件则为真。
-r文件名:如果文件存在且可读则为真。
-s文件名:如果文件存在且比上一个文件大则为真。
-S文件名:如果文件存在且为socket文件则为真。
-t[fd]:如果fd在一个终端上打开则为真。
-u文件名:如果文件存在且其设置用户ID的位为1则为真。
-w文件名:如果文件存在且可写则为真。
-x文件名:如果文件存在且可执行则为真。
-O文件名:如果文件存在且其属主为有效用户则为真。
-G文件名:如果文件存在且其属组为有效组则为真。
文件1 -nt文件2:如果文件1比文件2新则为真。
文件1 -ot 文件2:如果文件1比文件2旧则为真。
-z字符串:如果字符长度为0则为真。
-n字符串:如果字符串长度不为0则为真。
字符串1=字符串2:如果两字符串相等则为真。
字符串1!=字符串2:如果两字符串不相等则为真。
!表达式:如果表达式为假则为真。
表达式1-a表达式2:表达式1和表达式2都为真则返回真。
表达式1-o表达式2:表达式1或表达式2只要有一个为真就返回真。
参数1 OP参数2:OP为-eq, -ne, -lt, -gt, 或-ge。
此命令一般是为shell编程使用。
82.time
time:取得以秒为单位的当前时间。
此条命令取得从00:00:00 GMT,January 1,1970开始的总时间。
(2)范例
lark:->time
0.170u 0.400s 12:48.52 0.0% 0+0k 0+0io 2229pf+0w
lark:->
83.top
(1)简介
top:显示系统的最高进程。
top这个命令可以即时显示当前系统最占CPU时间的进程,它同时提供一个交互的界面
让用户可以观察系统进程情况,它可以按照CPU使用情况,占内存大小,运行的时间来对进
程排序,这是系统管理的一项必不可少的工具。
(2)部分参数说明
top[-][d delay][q][c][S][s][i]
d:设定刷新屏幕的时间间隔。
q:此选项使得top刷新时间为零,如果是超级用户使用这个选项的话,则top将以最高
优先级运行。
S:设定累积模式,即一个进程的CPU时间包括它的所有死子进程消耗的时间。
s:使top以安全方式运行,即对外界输入不作反应。
I:忽略死进程和僵尸进程。
c:显示命令行。
在运行top时按h键就可以观看top交互命令的帮助。
(3)范例
lark:->top
10:16pm up2 days, 7:53, 2users, load average;0.14, 0.08,0.06
66 processes:5sleeping, 1 running, 0 zombie, 0stopped
CPUstates:4.7%user, 1.3%system, 5.6%nice,94.4%idle
Mem:63104Kav, 60608K used, 2496K free, 35332Kshrd, 9836Kbuff
Swap:128516K av, 292used, 128224K free
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
5968 root 15 0 11672 11672 1520 S 0 4.1 18.4 3:41X
10944 fangh 17 0 460 460 344 R 0 1.1 0.7 0:00top
10356 bbs 1 0 384 384 292 S 0 0.1 0.6 0:00 bbsnnrp
10359 bbs 1 0 396 396 282 S 0 0.1 0.6 0:00 bbsnnrp
9526 root 1 0 500 500 388S 0 0.1 0.7 0:00 in.telnetd
7823 chenxy 1 0 2144 2144 1232S 0 0.1 3.3 0:00 cxterm
1 root 0 0 320 320 252 S 0 0.0 0.5 0:05 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd
3 root -12-12 0 0 0 SW 0 0.0 0.0 0:00 kswapd
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsion
5 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
6 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
7 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 nfsiod
9502 root 0 0 292 292 236 S 0 0.0 0.4 0:00 agetty
120 root 0 0 544 544 400 S 0 0.0 0.8 0:12 nmbd
14 root 0 0 284 284 228 S 0 0.0 0.4 0:00 kerneld
84.touch
(1)简介
touch:改变文件的时间参数。
touch将文件的访问时间,修改时间设置为系统的当前时间,如果该文件不存在则建立
一个空的新文件。
(2)部分参数说明
touch [-acfm] [-r reference-file] [-t MMDDhhmm[[CC]YY][.SS]] [-dtime]
[--time={atime, access,use,mtime,modify}] [--date=time]
[--file=reference-file] [--no-create][--help] [--version]
-a, --time=atime, --time=access, --time=use:只改变访问时间。
-c, --no-create:如果目标文件不存在,也不建立空文件。
-d, --date time是:使用time来代替目前时间。
-f:为了同BSD版本的touch兼容。
-m, --time=mtime, --time=modify:只改变修改时间。
-r, --file reference-file:用文件reference-file的时间来代替当前时间。
-t MMDDhhmm[[CC]YY][.ss]:使用此种格式的时间来代替当前时间。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将当前目录下的文件的时间参数修改为当前时间:
lark:->touch *
lark:-> ls -l
total 1883
drwx------ 2 fangh users 1024 Sep 21:07 Mail/
-rw-r--r-- 1 fangh users 71209 Sep 21:07 bak.tar.gz
drwx------ 7 fangh users 1024 Sep 21:07 circle/
-rw-rw-r-- 1 fangh users 1208006 Sep 21:07 circle.tgz
-rw-r--r-- 1 fangh users 378880 Sep 21:07 sec.tar.gz
-rw-r--r-- 1 fangh userw 252409 Sep 21:07 tcsh.txt
lark:->
85.tr
(1)简介
tr:替换或删除字符。
从标准输入中读取输入,经处理后输出到标准输出。
(2)部分参数说明
tr [-cat] [--complement] [--squeeze-repeats] [--truncate-set]
[--truncate-set 1] 字符串1字符串2
tr {-s, --squeeze-repeats} [-c][--complement]字符串
tr{-d, --delete} [-c] 字符串1
tr{-d, --delete} {-s, --squeeze-repeats} [-c] [--complement]字符串1字符串2
-c, --complemen:补足字符串1。
-d, --delete:删除字符串1而不是替换。
-s, --squeeze-repeats:将字符串的顺序替换为一个顺序。
-t, --truncate-set1:将字符串1比字符串二长的地方截断。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。将输入中的abc替换为ddd:
lark:->tr abc ddd
I love abc
I love ddd
86.tty
(1)简介
tty:显示目前终端所用的tty。
tty的返回值:
0:标准输入是一个tty。
1:标准输入是一个tty。
2:给出错误参数。
3:发生写错误
(2)部分参数说明
tty [-a] [--silent] [--quiet] [-help] [--version] -s, --silent, --quiet:不
输出任何信息,只给出返回值。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示目前终端所用的tty:
lark:->tty
/dev/ttypl
lark:->
87.umout,mount
(1)简介
mount:装载一个文件系统。
umount:卸下一个文件系统。
(2)部分参数说明
mount [-hV]
mount -a [-fFnrvw] [-t vfstype]
mount [-fnrvw] [-o options [, . . .]] device | dir
mount [-fnrvw] [-t vfstype] [-o options] device dir
umount [-h V]
umount -a [-n] [-v] [-t vfstypes]
umount [-n] [-v] special | node. . .
-V:输出版权信息。
-h:输出帮助信息。
-v:校验模式。
-a:mount在文件/etc/fstab中的所有文件系统。
-F:同-a联用,并行mount所有文件系统。
-f:同-v联用,不作真实mount过程只是检查输出。
-n:mount文件系统后不久写入文件/etc/mtab。
-r:将文件系统mount为只读模式。
-w:将文件系统mount为读写模式。
-t vfstype:指定文件系统类型。
现有可mount的系统类型在/usr/scr/linux/fs/filesystems.c中定义:
minix, ext, ext2, xiafs, hpfs, msdos, umdos, vfat, proc,
nfs, iso9660, smbfs, ncpfs, affs, ufs, romfs, sysv, xenix
-o选项:设定mount的一些参数:
async:文件系统必须被异步写入。
atime:每次访问时将i节点的访问时间更新。
auto:自动选择文件系统类型。
defaults:使用缺省选项suid, dev, exec, auto, nouser, async。
dev:解释文件系统上的特殊设备文件。
exec:允许运行文件系统上的可执行文件。
noatime:每次访问时不将i节点的访问时间更新。
noauto:禁止自动选择文件系统类型。
nodev:禁止解释文件系统上的特殊设备文件。
noexec:禁止运行文件文件系统上的可执行文件。
nosuid:根本上设定用户ID位和设定组位起作用。
nouser:禁止非超级用户使用。
remount:重新mount一个已经mount的文件系统。
ro:将文件系统mount为只读模式。
rw:将文件系统mount为读写模式。
suid:允许设定用户ID位和设定组位起作用。
sync:文件系统必须被同步写入。
user:允许非超级用户使用。
不加参数则列出系统目前mount的文件系统。
(3)范例。列出系统目前mount的文件系统。
lark:->mount
/dev/hdal on / type ext2_(rw)
none on/ proc type proc(rw)
/dev/hda3 on/home type ext2(rw)
/dev/hda2on/usr/local type ext2(rw)
lark:->
加载光驱:
lark:->mount/dev/hdb/mnt
88.uname
(1)简介
uname:显示系统信息。
(2)部分参数说明
uname [-snrvma][--sysname][--nodename][--release]
[--machine][--all][--help][--version]
-m, --machine:显示机器硬件种类。
-n, --nodename:显示机器网络节点名。
-r, --release:显示操作系统发布版本。
-s, --sysname:显示操作系统名称。
-v:显示操作系统版本。
-a, -all:显示上面的所有信息。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。显示机器lark的全部信息:
lark:->uname -a
Linux lark 2.0.30 #3 Tue Jun 24 03:49:52 CDT 1997 I586 unkown
lark:->
89.unarj, unzip, lha
(1)简介
在DOS下最常用的压缩软件有adj, pkzip和早期的lha,他们产生的压缩文件如何在
Linux下展开呢?这就要用到unarj, unzip,lha这三个工具软件了,其用法同其在dos下的
同类软件用法几乎一样。只是请注意unarj和lha都是版权软件,是没有源码的,不属于
GNU。且unarj和unzip只能解压不能压缩。
(2)部分参数说明
unarj 1压缩文件名:查看压缩文件目录。
unarj x压缩文件名:解开压缩文件。
unzip -v压缩文件名:查看压缩文件目录。
unzip -d 压缩文件名:解开压缩文件。
lha l压缩文件名:查看压缩文件目录。
lha x压缩文件名:解开压缩文件。
lha a压缩文件名 源文件名:压缩新文件。
90.uniq
(1)简介
uniq:从一个排好序的文件中删除重复的行。
(2)部分参数说明
uniq [-cdu] [-f skip-fields] [-s skip-chars] [-w check-chars]
[-# skip-fields] [+#skip-chars] [--count]
[--skip-chars=skip-chars] [--check-chars=check-chars]
[--help] [-version][输入文件][输出文件]
-u, --unique:只输出独一无二的行。
-d, --repeated:只输出重复的行。
-c, --count:输出重复行的重复次数。
-number, -f, --skin-fields=number:选择开始比较的域,number为忽略掉的域,各
域之间是以TAB或空格键分开的。
+number, -s, --skip-chars=number;选择开始比较的字符,number为忽略掉的字符
。
-w, --check-chars=number:选择比较多少个字符。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
如不指定输入文件则以标准输入代替,如不指定输出文件则以标准输出代替。
(3)范例。处理文件sourcefile,输出到标准输出:
lark:->cat sourcefile
abcd
abcd
abcde123
abcd
lark->uniq -c sourcefile
2 abcd
1 abcde123
1 abcd
lark:->
91.uudecode,uuencode
(1)简介
uuencode:将一个二进制文件编码为一个文本文件。
uudecode:将uuencode产生的文件复原。
在Internet尚未十分发达的时候,很多用户只能使用E-mail,要交换软件的话是一件十
分麻烦的事情,因为不能用E-Mail直接传送二进制文件,于是uuencode和uudecode就成为
十分有用的两个工具。uuencode产生的文本文件以begin644为开始标志,以end为结束标志
,在这中间的就是编码过的文件。编码后的文件将比源文件大35%左右。uuencode产生的
文件将输出到标准输出,如要存成文件,请使用管道功能将其重定向到一个磁盘文件中。
(2)部分参数说明
uuencode源文件名 编码时使用的文件名
uudecode 要解码的文件名
(3)范例。对文件sourcefile进行编码:
lark:->uuencode sourcefile sf
begin 664sf
886)C9'IA8F-D"F%B8V1E,3(S"F%B8V0*'
end
lark:->
将目录temp打包、压缩、编码后mail给用户fangh:
lark:->tar cvf -./tepm |gzip |uuencode temp.tar.gz |mail fangh
./temp/
./temp/sourcefil
lark:->
92.vi
(1)简介
vi:功能强大的UNIX编辑器。
vi是UNIX世界里最通用的全屏编辑器,所有UNIX机器都提供本编辑器。Linux里提供的
是vi的加强板-vim,但是是同vi完全兼容的。vi的原意是"visual"即可视编辑器,用户键
入的会立即被显示出来。其强大的编辑功能可能同任何一个最新的编辑器相媲美,学会vi
可以让用户在任何一台UNIX机器无论是SUN,HP,AIX,SGI,还是Linux或FreeBSD上都可以
得心应手地编辑文件。
(2)部分参数说明
只要在命令上键入vi就可以进入vi的编辑环境。
vi有两种状态,输入状态以及指令状态。用户在输入状态下可以输入文字资料指令状
态是用来执行打开文件、存档、离开vi等操作命令,执行vi后首先进入指令状态,此时输
入的任何字符都作为指令来处理。输入"vi文件名"则vi自动装入文件或开始一个新文件,
vi屏幕的左方会出现波浪号 "-",代表本行为空行。
如果进入输入状态呢?以下为相应的指令:
追加(append):
a从光标所在位置后面开始追加文字,光标后的文字随追加的文字向后移动。
A从光标所在列最后面的地方开始追加文字。
插入(insert):
i 从光标所在位置前面开始插入文字,光标后的文字随追加的文字向后移动。
I从光标所在列的第一个非空白字符前面开始插入文字。
开始(open):
o在光标所在列下新增一列并进入输入状态。
O在光标所在列上方新增一列并进入输入状态。
x删除光标所在字符。
dd删除光标所在的列。
r 修改光标所在字符接下来要修正的字符。
R 进入改写状态,新增文字会覆盖原先文字。
s删除光标所在字符,并进入输入状态。
S 删除光标所在的列,并进入输入状态。
在vi下如何移动光标
指令
说明
功能键
0
移动到光标所在列的最前面
[Home]
$
移动到光标所在列的最后面
[End]
[Ctrl] [d]
向下半页
[Ctrl] [f]
向下一页
[PageDown]
[Ctrl] [u]
向上半页
[Ctrl] [b]
向上一页
[PageUp]
H
移动到屏幕的第一列
M
移动到屏幕的中间列
L
移动到屏幕的最后列
b
移动到下个字的第一个字母
w
移动到上个字的第一个字母
e
移动到下个字的最后一个字母
^
移动下游标所在列的第一个非空白字符
n-
减号移动到上一列的第一个非空白字符
前面加上数字可以指定移动到以上n列
n+
nG
加号移动到下一列的第一个非空白字符
前面加上数字可以指定移动到以下n列
直接用数字n加上大写G移动到第n列
fx
Fx
往右移动到第x个字符上
往左移动到第x个字符上
tx
Tx
往右移动到第x个字符前
往左移动到第x个字符前
;
.
配合f&t使用,重复一次
配合f&t使用,反方向重复一次
/string
?string
往右移动到有string的地方
往左移动到有string的地方
n
N
配合/&?使用,重复一次
配合/&?使用,反方向重复一次
n(
n)
左括号移动到句子的最前面
前面加上数字可以指定往前移动n个句子
右括号移动到下个句子的最前面
前面加上数字可以指定往后移动n个句子
句子是以
! . ?三种符号来分割
n{
n}
右括弧移动到段落的最前面
前面加上数字可以指定往前移动n个段落
右括弧移动到下个段落的最前面
前面加上数字可以指定往后移动n个段落
段落是以
段落间的空白列来分割
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几项:
e 光标所在位置到该字的最后一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最后一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最后一个字母
{ 光标所在位置到该段落的第一个字母
:q 结束编辑(quit)
如果不想存档而要放弃编辑过的文件则用:q!强制离开
:w 存档(write)
其后可加所要存档的名字。
:wq 即存档后离开。
zz 功能与;wq相同。
93.wall
(1)简介
wall:向所有用户广播信息。
(2)部分参数说明
wall[文件名]
wall将给定为文件名输出到所有登录用户的屏幕上,如果不给出文件名则以标准输入
作为输入,以Ctrl+D作为文件结束符。只有超级用户才能向那些设为屏蔽信息状态的用户
的屏幕上输出信息。
(3)范例。向所有用户广播信息:
bash # wall
system will be shutdown in 5 min !!!
Broadcast Message from root @ lark
(/dev/ttyp5) at 20:08. . .
system will be shutdown in min ! ! !
bash #
94.wc
(1)简介
wc:统计一个文件中的字节数,单词数,行数。
(2)部分参数说明
wc [-clw] [--bytes] [--chars] [--lines] [--words] [--help]
[--version] [文件名列表]
-c, --bytes, --chars:只输出字节数。
-w, -words:只输出单词数。
-l, --lines:只输出行数。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例
lark:->wc -c tcsh.txt
252409 tcsh.txt
lark:-> wc -w tcsh.txt
27584 tcsh.txt
lark;->wc -l tcsh.txt
5478 tcsh.txt
lark:->
95.whereis
(1)简介
whereis:定位可执行,帮助文件,源代码文件。
缺省地whereis在下列目录搜寻文件
/bin /usr/iterviewa/bin/LINUX
/usr/bin /usr/bin/X11
/etc /usr/X11/bin
/usr/etc /usr/X11R5/bin
/sbin /usr/X11R6/bin
/usr/sbin /usr/X386/bin
/usr/games /usr/local/bin
/usr/games/bin /usr/local/etc
/usr/emacs/etc /usr/local/sbin
/usr/lib/emacs/19.22/etc /usr/local/games
/usr/lib/emacs/19.23/etc /usr/local/games/bin
/usr/lib/emacs/19.24/etc /usr/local/emacs/etc
/usr/lib/emacs/19.25/etc /usr/loacal/Tex/bin
/usr/lib/emacs/19.26/etc /usr/loacl/tex/bin
/usr/lib/emacs/19.27/etc /usr/local/bin/X11
/usr/lib/emacs/19.28/etc /usr/contrib
/usr/lib/emacs/19.29/etc /usr/hosts
/usr/lib/emacs/19.30/etc /usr/include
/usr/TeX/bin /usr/g+ + -include
/usr/tex/bin
(2)部分参数说明
whereis [-bmsu] [-BMS目录名列表 -f] 文件名列表
-b:只搜寻可执行文件。
-m:只搜寻man帮助文件。
-s:只搜寻源代码文件。
-u:搜寻上述路径中不属于三种文件中任何一种的文件。
-B:改变搜寻可执行文件的路径。
-M:改变搜寻man帮助文件的路径。
-S:改变搜寻源代码文件的路径。
(3)范例。查询whereis所在路径:
lark:->whereis whereis
whereis;/usr/bin/whereis
lark:->
96.who
(1)简介
who:查看其他登录的用户。
(2)部分参数说明
who [-imqsuwHT][--count][--idle][--heading][-help]
[--message] [--mesg] [--version][--writable] [file] [ami]
-m:同whoami和"who am i"。
-q, --count;只输出用户的登录名和正在使用的用户数目。
-i, -u, --idle:输出用户发呆的时间,"."表明用户没有发呆,"old"表明用户发呆
超过24小时。
-H, --heading:输出表头。
-w, -T, --mesg, --message, --writable:输出用户的信息屏蔽状态。
+:可写。
-:不可写。
?:不能发现终端设备。
--help:在标准输出上输出帮助信息并退出。
--version:在标准输出上输出版本信息并退出。
(3)范例。列出系统当前用户:
lark:->who -H
USER LINE LOGIN-TIME FROM
chenxy ttyp2 Sep 29 20:37(hpte2.ihep.ac.cn)
liubx ttyp3 Sep 29 15:59(:0.0)
fangh ttyp4 Sep 29 19:19 (csun01.ihep.ac.c)
lark:->
98.write
(1)简介
write:向另外一个用户发信息。
如果用户不是超级用户,则不能对设定message n的用户发信息,输入完成后,使用
Ctrl-D结束。
(2)部分参数说明
write user [@host] [ttyname]
99.zoo
(1)简介
zoo:使用Lz方式压缩文件并打包。
(2)部分参数说明
zoo {acfDeghHILPTuUvVx}[aAcCdEfghImMnNoOpPqSul:/.@n+ - =]
打包文件名 文件名列表
zoo -command 打包文件名 文件名列表
zoo h
选项
描述
专家选项
-add
-extract
-move
-test
-print
-delete
-list
-update
-freshen
-comment
向打包文件中增加文件
从打包文件中解开文件
移动以打包文件中
测试打包文件
从打包文件中解开文件输出到标准输出
从打包文件中删除文件
列出打包文件的目录
更新打包文件中的文件
增加打包文件中的文件
给文件加注解
aP:
x
aMP
xNd
xp
DP
VC
aunP:
aunp:
c
(3)范例。将目前目录下所有文件打包到文件bak.zoo中:
lark:->zoo a ban./*
Zoo: ./bak.tar --(24%)added
Zoo: ./circle --(31%)added
Zoo: ./sec.tar --(20%)added
Zoo:./sourcefile --(13%)added
lark:->
--
____________________________________________
|┏━━━━━━━━━━━━━━━━━━━━┓
|┃ 欢迎光临荔园晨风 Linux 版,InstallBBS 版┃
|┗━━━━━━━━━━━━━━━━━━━━┛
﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店