unix命令.docx
《unix命令.docx》由会员分享,可在线阅读,更多相关《unix命令.docx(46页珍藏版)》请在冰豆网上搜索。
unix命令
A.目录及文件操作命令
1.ls
[语法]:
ls[-RadCxmlnogrtucpFbqisf1][directory/filename]
[说明]:
ls命令列出指定目录下的文件,缺省目录为当前目录./,缺省输出顺序为纵向按字符顺序排列。
-R递归地列出每个子目录的内容
-a列出所有文件,包括第一个字符为“.”的隐藏文件
-d若参数是目录,则只列出目录名不列出目录内容,常与-l选项连用以显示目录状态。
-C输出时多列显示
-x横向按字符顺序排列
-m输出按流式格式横向排列,文件名之间用逗号(,)分隔
-l长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:
文件存取模式链接数文件主文件组文件字节数上次修改时间
其中文件存取模式用10个字母表示,从左至右的意义如下:
第一个字母表示文件种类,可以是以下几种情况:
d为目录文件
l为链接
b为块文件
c为字符型文件
p为命名管道(FIFO)
-为普通文件
后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w表示可写,x表示可执行。
如果是设备文件,则在文件字节数处显示:
主设备从设备。
-n与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字(即GID)表示
-o与-l选项相同,只是不显示文件组
-g与-l选项相同,只是不显示文件主
-r逆序排列
-t按时间顺序排列而非按名字
-u显示时间时使用上次访问时间而非上次修改时间
-c显示时间时使用上次修改i节点时间而非上次修改时间
-p若所列文件是目录文件,则在其后显示斜杠(/)
-F在目录文件后加’/’,在可执行文件后加’*’
-b文件名中若有非打印字符,则用八进制显示该字符
-q文件名中的打印字符用’?
’表示
-I显示节点号
-s显示文件长度时使用块长度而非字节长度
-f将后面的参数解释为目录并列出其中的每一项
-1每行仅列一项
[例子]:
ls-al/bin以长列表的形式列出目录/bin下的所有文件,包括隐藏文件
2.pwd
[语法]:
pwd
[说明]:
本命令用于显示当前的工作目录
[例子]:
pwd显示出当前的工作目录
3.cd
[语法]:
cd[dir]
[说明]:
改变当前的工作目录,无参数时使用环境变量$HOME作为其参数,$HOME一般为注册时进入的路径。
[例子]:
cd/tmp进入/tmp目录
cd../进入上级目录
4.mkdir
[语法]:
mkdir[-mmode][-p][dir]…
[说明]:
本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID
-m按指定存取模式建立目录
-p建立目录时建立其所有不存在的父目录
[例子]:
mkdirtmp在当前目录下建立子目录tmp
mkdir-m777/tmp/abc用所有用户可读可写可执行的存取模式建立目录/tmp/abc,
存取模式参看命令chmod
mkdir-p/tmp/a/b/c建立/tmp/a/b/c,若不存在/tmp/a及/tmp/a/b则全部建立
5.rmdir
[语法]:
rmdir[-p][-s][dir]…
[说明]:
本命令用于删除目录
-p删除所有已经为空的父目录
-s当使用-p选项时,出现错误不提示
[例子]:
rmdir/tmp/abc删除目录/tmp/abc
rmdir-ptmp/a/b/c删除目录/tmp/a/b/c,若目录/tmp/a/b
及/tmp/a空,则删除
6.cat
[语法]:
cat[-u][-s][-v[-t][-e]][file]…
[说明]:
显示和连接一个或多个文件至标准输出
-u无缓冲的输出(缺省为有缓冲输出)
-s对不存在的文件不作提示
-v显示文件中的非打印字符,控制字符显示成^n,n为八进制数字,其他非打印字符显示成M-x,x为该字符低7位的8进制数值
-t在使用-v选项时,将制表符(tab)显示成^I,将换页符(formfeed)显示成^L
-e在使用-v选项时,在每一行的行尾显示$
[例子]:
catfile显示文件
cat-s-v-ef1f2f3逐个显示文件f1f2f3
7.head
[语法]:
head[-n][file]…
[说明]:
将文件的头n行显示输出,缺省值为10行,显示多个文件时,在每个文件的前面加上==>文件名<==
[例子]:
head-9999file1file2显示文件file1和file2的头9999行
8.more
[语法]:
more[-cdflrsuw][-line][+line][+/mode][file]…
[说明]:
将文件显示在终端上,每次一屏,在左下部显示--more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more命令中的子命令。
-c显示文件之前先清屏
-d当输错命令时显示错误信息而不是响铃(bell)
-f不折叠显示长的行
-l不将分页控制符(CTRLD)当作页结束
-r一般情况下,more不显示控制符,本选项使more显示控制符,
例如,将(CTRLC)显示成^C
-s将多个空行转换成一个空行显示
-u禁止产生下划线序列
-w一般情况下more显示完后立即退出,本选项显示完后提示,敲任意键后退出
-line指定每屏显示的行数
+line从指定行号开始显示
+/mode在文件中搜索指定模式,从模式出现行的上两行开始显示文件未显示完时,可以使用more命令中的子命令,命令中除了!
和/以外均不回显,也不用敲回车,当命令破坏more提示行时,可用退格键恢复提示行。
在以下子命令操作中,i表示数字,缺省值为1。
iblank上滚一屏多i行
ireturn上滚i行
iCTRL+Di缺省时上滚11行,否则上滚i行
idi缺省时上滚11行,否则上滚i行
izi缺省时上滚一屏,否则定义每屏为i行
is跳过i行后显示一屏
if跳过i屏后显示一屏
iCTRL+B跳回i屏后显示一屏
b跳回一屏后显示一屏
q/Q退出more
=显示当前行号
v从当前行开始编辑当前文件编辑器由环境变量$EDITOR定义
h显示帮助信息
i/mode向前搜索,直至模式的第i次出现,从该行的上两行开始显示一屏
in向前搜索,直至上一模式的第i次出现,从该行的上两行开始显示一屏
‘回到上次搜索的出发点,若无搜索则回到开始位置
!
command激活一个sh去执行指定的命令
i:
n跳到后面第i个文件,若不存在则跳到最后一个文件
:
f显示当前文件名和行号
:
q/:
Q退出more
.重复上次命令
[例子]:
more–c+50file清屏后,从第50行开始显示文件file
more-s-wf1f2f3显示文件file1file2file3
9.cp
[语法]:
cp[-p][-r]file1[file2]…[file/dir]
[说明]:
将file1(file2…)拷贝到目标上,目标不能与文件同名,若目标是文件名,则拷贝的文件只能有一
个,若目标是目录,则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则
覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
-i在覆盖已存在文件时作提示,若回答y则覆盖,其他则中止
-p拷贝文件内容,修改时间,存取模式,存取控制表,但不拷贝UID及GID
-r若文件名为目录,拷贝目录下文件及子目录和它们的文件,此时目标必须为目录
[例子]:
cpfile1file2将文件file1拷贝到文件file2
cpfile1file2/tmp将文件file1和文件file2拷贝到目录/tmp下
cp-r/tmp/mytmp将目录/tmp下所有文件及其子目录拷贝至目录/mytmp
10.mv
[语法]:
mv[-f][-i]file1[file2]…[target]
[说明]:
将文件移动至目标,若目标是文件名,则相当于文件改名
-i在覆盖已存在文件时作提示,若回答y则覆盖,其他则中止
-f覆盖前不作任何提示
[例子]:
mvfile1file2将文件file1改名为file2
mvfile1file2tmp将文件file1和文件file2移动到目录/tmp下
11.rm
[语法]:
rm[-f][-i]file…
rm-r[-f][-i]目录名…[file]
[说明]:
用来删除文件或目录
-f删除文件时不作提示
-r递归地删除目录及其所有子目录
-i删除文件之前先作提示
[例子]:
rmfile1删除文件file1
rm-i/tmp/*删除目录/tmp下的所有文件
rm-r/mytmp递归地删除目录/mytmp
12.chmod
[语法]:
chmod[-R][mode]file…
chmod[ugoa]{+|-|=}[rwxst][file]…
[说明]:
改变文件的存取模式,存取模式可表示为数字或符号串,例如:
chmodnnnnfile,n为0-7的数字,意义如下:
4000运行时可改变UID
2000运行时可改变GID
1000置粘着位
0400文件主可读
0200文件主可写
0100文件主可执行
0040同组用户可读
0020同组用户可写
0010同组用户可执行
0004其他用户可读
0002其他用户可写
0001其他用户可执行
nnnn就是上列数字相加得到的,例如chmod0777file是指将文件file存取权限
置为所有用户可读可写可执行。
-R递归地改变所有子目录下所有文件的存取模式
u文件主
g同组用户
o其他用户
a所有用户
+增加后列权限
-取消后列权限
=置成后列权限
r可读
w可写
x可执行
s运行时可置UID
t运行时可置GID
[例子]:
chmod0666file1file2将文件file1及file2置为所有用户可读可写
chmodu+xfile对文件file增加文件主可执行权限
chmodo-rwx对文件file取消其他用户的所有权限
13.chown
[语法]:
chown[-R]文件主file…
[说明]:
文件的UID表示文件的文件主,文件主可用数字表示,也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。
-R递归地改变所有子目录下所有文件的存取模式
[例子]:
chownmaryfile将文件file的文件主改为mary
chown150file将文件file的UID改为150
14.chgrp
[语法]:
chgrp[-R]文件组file…
[说明]:
文件的GID表示文件的文件组,文件组可用数字表示,也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。
-R递归地改变所有子目录下所有文件的存取模式
[例子]:
chgrpgroupfile将文件file的文件组改为group
15.cmp
[语法]:
cmp[-l][-s]file1file2
[说明]:
比较两个文件,若file1为"-",则使用标准输入,两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。
-l显示每个不同处的字节数(10进制)和不同的字节(8进制)
-s不作任何提示,只返回码
[例子]:
cmpfile1file2比较文件file1和file2
cmp-lfile1file2比较文件file1和file2的每处不同
16.diff
[语法]:
diff[-be]file1file2
[说明]:
本命令比较两个文本文件,将不同的行列出来
-b将一串空格或TAB转换成一个空格或TAB
-e生成一个编辑角本,作为ex或ed的输入可将file1转换成file2
[例子]:
difffile1file2
diff-bfile1file2
diff-efile1file2>edscript
17.wc
[语法]:
wc[-lwc]file…
[说明]:
统计文件的行、字、字符数,若无指定文件,则统计标准输入
-l只统计行数
-w只统计字数
-c只统计字符数
[例子]:
wc-lfile1file2统计文件file1和file2的行数
18.split
[语法]:
split[-n][file[name]]
[说明]:
split将指定大文件分解为若干个小文件,每个文件长度为n行(n缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入
[例子]:
split-500largefilelittle将文件largefile每500行写入一个文件,
第一个文件名为littleaa
19.touch
[语法]:
touch[-amc][mmddhhmm[yy]]file…
[说明]:
将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。
-a只改变访问时间
-m只改变修改时间
-c若文件不存在,不创建它且不作提示
mmddhhmm[yy]两位表示月日时分[年]
[例子]:
touchfile更新文件file的时间
touch0701000097HongKong将文件HongKong的时间改为97年7月1日0时0分
20.file
[语法]:
file[-ffilename]file…
[说明]:
file对指定文件进行测试,尽量猜测出文件类型并显示出来
-ffilenamefilename是一个包含了文件名的文本文件,-f选项测试文件名文
件中所列出的文件
[例子]:
file*显示当前目录下所有文件的类型
21.pack
[语法]:
packfile…
[说明]:
pack将指定文件转储为压缩格式,文件名后加".z",文件存取模式,访问时间,修改时间等均不变
[例子]:
packlargefile将largefile压缩后转储为largefile.z
22.pcat
[语法]:
pcatfile…
[说明]:
pcat显示输出压缩文件
[例子]:
pcatlargefile.z显示压缩前的largefile
pcatlargefile.z>oldfile显示压缩前的laregfile,并将其重定向到oldfile中
23.unpack
[语法]:
unpackfile…
[说明]:
将压缩后的文件解压后转储为压缩前的格式
[例子]:
unpacklargefile.z将压缩文件largefile.z解压后转储为largefile
24.find
[语法]:
finddir…[expression]
[说明]:
find命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下n代表一个十进制整数,+n代表打印n,-n代表小于n,下面是合法表达式说明:
-namemodb文件名与模式匹配则为真,(\为转意符)
-perm[-]八进制数文件存取模式与八进制数相同则为真若有-选项,则文件存
取模式含有八进制数规定模式即为真
-sizen[c]文件块长度为n则真(一块为512字节),若有c选项,则文件字节长度
为n则真
-atimen若文件的最近访问时间为n天前则为真,find命令将改变其访问
的目录的访问时间
-mtimen若文件的最近修改时间为n天前则为真
-ctimen若文件状态为n天前改变则为真
-exec命令{}\;若命令返回值为0则真,{}内为命令参数,此命令必须以\;为结束
-ok命令{}\;与exec相同,只是在命令执行前先提示,若回答y则执行命令
-print显示输出使表达式为真的文件名
-newerfile若文件的访问时间比newer指定的文件新则真
-depth先下降到搜索目录的子目录,然后才至其自身
-mount仅查找包含指定目录的文件系统
-local文件在当前文件系统时为真
-typec文件类型为c则真,c取值可为b(块文件)c(字符文件)d(目录)l(符
号链接)p(命名管道)f(普通文件)\(表达式\)表达式为真则真
-linksn文件链接数为n时为真
-userusername当文件属于用户时为真,用户可用数字表示UID
-nouser当文件不属于/etc/passwd中的一个用户时为真
-groupgroupname当文件属于文件组时为真,文件组可用数字表示GID
-nogroup当文件不属于/etc/group中的一个组时为真
-fstypetype当文件所属文件系统类型为指定类型时真
-inumn当文件i节点号为n时为真
-prune当目录名与模式匹配时,不再搜索其子目录可以用逻辑操作符将简
单表达式连接成复杂表达式逻辑操作符有!
表示非操作,-o表示或操作,两个表达式并列则表示与操作
[例子]:
find/-namefind*-print从根目录开始搜索文件名如find*的文件并显示之
find./-execsleep{1}\;-print每秒显示一个当前目录下的文件
find$HOME\(-namea.out-o-name'*.o'\)-atime+7-execrm{}\;
从$HOME目录开始搜索,删除所有文件名为a.out或
*.o且访问时间在7天前的文件
25.grep
[语法]:
grep[option]mode[file…]
[说明]:
在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(')中,若指定文件为缺省,则使用标准输入,正规表达式可以是:
.匹配任意一个字符
*匹配0个或多个*前的字符
^匹配行开头
$匹配行结尾
[]匹配[]中的任意一个字符,[]中可用-表示范围,例如[a-z]表示字母a至
z中的任意一个
\转意字符
命令中的选项为:
-b显示块号
-c仅显示各指定文件中包含模式的总行数
-I模式中字母不区分大小写
-h不将包含模式的文件名显示在该行上
-l仅显示包含模式的文件名
-n显示模式所在行的行号
-s定文件若不存在或不可读,不提示错误信息
-v显示所有不包含模式的行
[例子]:
grep'good'*在所有文件中搜索含有字符串good的行
grep'^myline'mytext在文件mytext中搜索行首出现myline字符串的行
26.vi
[语法]:
vi[-wn][-R]file…
[说明]:
vi是一个基于行编辑器ex上的全屏幕编辑器,可以在vi中使用ex,ed的全部命令,vi选项中-wn指将编辑窗口大小置为n行,-R为将编辑的文件置为只读模式,vi工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令aAiIoOcCsSR可进入输入模式,在输入模式下按ESC键可退出输入模式,回到命令模式,在命令模式中敲入:
命令,则可进入ex方式,在屏幕底部出现提示符:
,此时可使用任意ex命令,屏幕底行也用来作/?
!
命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi的命令集,^表示(CTRL)键
^B退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^D在命令模式下,表示下滚屏幕一半,在输入模式下,表示回退至左边的自动缩进处
^E显示屏幕底线之下的一行
^F前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^G显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置
^H(退格)在命令模式下,光标左移一格;在输入模式下,删去前面的字符
^I(TAB)在输入模式下,产生一串空格
^J(LF)光标下移一行
^L刷新屏幕,即将屏幕重新显示
^M(回车)在命令模式下,光标移动至下行开头在输入模式下,开辟一新行
^N光标下移一行
^P光标上移一行
^Q在输入模式下,将其后的非打印字符作为正文插入
^R刷新屏幕
^U屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D^U命令有效
^V在输入模式下,将其后的非打印字符作为正文插入
^W在输入模式下,使光标回退一个字
^Y显示屏幕底线之上的一行
^Z暂停编辑,退回上层Shell
^[(ESC)退出输入模式,回到命令模式
!
暂时退出编辑,执行Shell命令
"(双引号)用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z
供用户存放自定义的正文
$将光标移动到当前行尾,前加数字则表示前