UNIX基本命令-目录及文件操作

转自:http://blog.sina.com.cn/s/blog_4ab7568101000en1.html
  一章  目录及文件操作 

1.1  ls 
[语法]:  ls  [-RadCxmlnogrtucpFbqisf1]  [目录或文件......] 
[说明]:  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  列出当前目录下的文件 
  ls  -al  /bin  以长列表的形式列出目录  /bin  下的所有文件,包括隐藏文件 

1.2  pwd 
[语法]:  pwd 
[说明]:  本命令用于显示当前的工作目录 
[例子]: 
  pwd  显示出当前的工作目录 

1.3  cd 
[语法]:  cd  [目录] 
[说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME  作为其参数,$HOME  一般为注册时进入的路径。 
[例子]: 
  cd  回到注册进入时的目录 
  cd  /tmp  进入  /tmp  目录 
  cd  ../  进入上级目录 


1.4  mkdir 
[语法]:  mkdir  [-m  模式]  [-p]  目录名 
[说明]:  本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID 
-m  按指定存取模式建立目录 
-p  建立目录时建立其所有不存在的父目录 
[例子]: 
  mkdir  tmp  在当前目录下建立子目录  tmp 
  mkdir  -m  777  /tmp/abc  用所有用户可读可写可执行的存取模式 
  建立目录  /tmp/aaa  (存取模式参看命令  chmod) 
  mkdir  -p  /tmp/a/b/c  建立目录  /tmp/a/b/c  ,若不存在目录  /tmp/a 
及/tmp/a/b  则建立之 


1.5  rmdir 
[语法]:  rmdir  [-p]  [-s]  目录名 
[说明]:  本命令用于删除目录 
-p  删除所有已经为空的父目录 
-s  当使用-p  选项时,出现错误不提示 
[例子]: 
  rmdir  /tmp/abc  删除目录  /tmp/abc 
  rmdir  -p  /tmp/a/b/c  删除目录  /tmp/a/b/c  ,若目录  /tmp/a  /b及/tmp/a  空,则删除 


1.6  cat 
[语法]:  cat  [-u]  [-s]  [-v[-t]  [-e]]  文件... 
[说明]:  显示和连接一个或多个文件至标准输出 
  -u  无缓冲的输出(缺省为有缓冲输出) 
  -s  对不存在的文件不作提示 
  -v  显示出文件中的非打印字符,控制字符显示成^n  ,n为八进制数字,其他非打印字符显示成M-x,x为该字符低7位的8进制数值 
  -t  在使用-v  选项时,将制表符(tab)  显示成  ^I,将换页符(formfeed)显示成 
  -e  在使用-v  选项时,在每一行的行尾显示 
[例子]: 
  cat  file  显示文件 
  cat  -s  -v  -e  file1  file2  file3  逐个显示文件  file1  file2  file3 


1.7  head 
[语法]:  head  [-n]  [文件  ...] 
[说明]:  将文件的头n  行显示输出,缺省值为  10  行,显示多个文件时,请按序列出文件名 
[例子]: 
 head  -9999  file1  file2  显示文件  file1  和  file2  的头  9999  行 


1.8  more 
[语法]:  more  [-cdflrsuw]  [-  行数]  [+  行数]  [+  模式  文件  ... 
[说明]:  将文件显示在终端上,每次一屏,在左下部显示  --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more  命令中的子命令。 
  -c  显示文件之前先清屏 
  -d  当输错命令时显示错误信息而不是响铃(bell) 
  -f  不折叠显示长的行 
  -l  不将分页控制符(CTRL+D)当作页结束 
  -r  一般情况下,more  不显示控制符,本选项使more  显示控制符,例如,将  (CTRL+C)  显示成 
  -s  将多个空行转换成一个空行显示 
  -u  禁止产生下划线序列 
  -w  一般情况下  more  显示完后立即推出,本选项在显示完后作提示,敲任意键后推出 
  -n  行数  指定每屏显示的行数 
    行号  从指定行号开始显示 
  +/  模式  在文件中搜索指定模式,从模式出现行的上两行开始显示。文件未显示完时,可以使用more  命令中的子命令,命令中除了!  和  以外均不回显,也不用敲回车,当命令破坏  more  提示行时,可用退格键恢复提示行。在以下子命令操作中,i  表示数字,缺省值为  1。 
     空格  上滚一屏多  行 
     回车  上滚  行 
     CTRL+D i  缺省时上滚  11  行,否则上滚  行 
     id    i  缺省时上滚  11  行,否则上滚  行 
     iz    i  缺省时上滚一屏,否则定义每屏为  行 
     is    跳过  行后显示一屏 
     if    跳过  屏后显示一屏 
     CTRL+B 跳回  屏后显示一屏 
     b      跳回一屏后显示一屏 
     或  Q  退出  more 

   显示当前行号 
   从当前行开始编辑当前文件编辑器由环境变量$EDITOR定义 
   显示帮助信息 
   /模式向前搜索,直至模式的第  次出现  ,  从该行的上两行开始显示一屏 
     in  向前搜索,直至上一模式的第  次出现  ,  从该行  的上两行开始显示一屏 
     单引号  回到上次搜索的出发点,若无搜索则回到开始位置 
     !   激活一个sh  去执行指定的命令 
     :i    跳到后面第  个文件,若不存在则跳到最后一个文件 
     :f    显示当前文件名和行号 
   :q  或:Q  推出  more 
   .  (点) 重复上次命令 

例子]: 
  more  -c  +50  file  清屏后,从第50行开始显示文件  file 
  more  -s  -w  file1  file2  file3  显示文件  file1  file2  file3 


1.9  cp 
[语法]:  cp  -p  -r  文件  文件  ...]  目标 
[说明]:  将文件1(文件2  ...)拷贝到目标上,目标不能与文件同名,若目标是文件名,则拷贝的文件只能有一个,若目标是目录,  则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。 
   -i  在覆盖已存在文件时作提示,若回答  则覆盖,其他则中止 
   -p  不仅拷贝文件内容,还有修改时间,存取模式,存取控制表,但不拷贝UID  及  GID 
   -r  若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录 
[例子]: 
  cp  file1  file2  将文件  file1  拷贝到文件  file2 
  cp  file1  file2  /tmp  将文件  file1  和文件  file2  拷贝到目录  /tmp  下 
  cp  -r  /tmp  /mytmp  将目录  /tmp  下所有文件及其子目录拷贝至目录/mytmp 


1.10  mv 
[语法]:  mv  [-f]  [-i]  文件1  [文件2...]  目标 
[说明]:  将文件移动至目标,若目标是文件名,则相当于文件改名 
   在覆盖已存在文件时作提示,若回答  则覆盖,其他则中止 
   覆盖前不作任何提示 
[例子]: 
  mv  file1  file2  将文件  file1  改名为  file2 
  mv  file1  file2  /tmp  将文件  file1  和文件  file2  移动到目录  /tmp  下 


1.11  rm 
[语法]:  rm  [-f]  [-i]  文件... 
或  rm  -r  [-f]  [-i]  目录名...  [文件] 
[说明]:  用来删除文件或目录 
 -  删除文件时不作提示 
 -  递归地删除目录及其所有子目录 
 -  删除文件之前先作提示 
[例子]: 
  rm  file1  删除文件  file1 
  rm  -i  /tmp/*  删除目录  /tmp  下的所有文件 
  rm  -r  /mytmp  递归地删除目录  /mytmp 


1.12  chmod 
[语法]:  chmod  [-R]  模式  文件...  或  chmod  [ugoa]  {+|-|=}  [rwxst]  文件... 
[说明]:  改变文件的存取模式,存取模式可表示为数字或符号串,例如: 
chmod  nnnn  file  ,  n为0-7的数字,意义如下: 
  4000  运行时可改变UID 
  2000  运行时可改变GID 
  1000  置粘着位 
  0400  文件主可读 
  0200  文件主可写 
  0100  文件主可执行 
  0040  同组用户可读 
  0020  同组用户可写 
  0010  同组用户可执行 
  0004  其他用户可读 
  0002  其他用户可写 
  0001  其他用户可执行 
nnnn  就是上列数字相加得到的,例如  chmod  0777  file  是指将文件  file  存取权限置为所有用户可读可写可执行。 
  -R  递归地改变所有子目录下所有文件的存取模式 
  u  文件主 
  g  同组用户 
  o  其他用户 
  a  所有用户 
  +  增加后列权限 
  -  取消后列权限 
  =  置成后列权限 
  r  可读 
  w  可写 
  x  可执行 
  s  运行时可置UID 
  t  运行时可置GID 
[例子]: 
  chmod  0666  file1  file2  将文件  file1  及  file2  置为所有用户可读可写 
  chmod  u+x  file  对文件  file  增加文件主可执行权限 
  chmod  o-rwx  对文件file  取消其他用户的所有权限 


1.13  chown 
[语法]:  chown  [-R]  文件主  文件... 
[说明]:  文件的UID表示文件的文件主,文件主可用数字表示,  也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。 
-R  递归地改变所有子目录下所有文件的存取模式 
[例子]: 
  chown  mary  file  将文件  file  的文件主改为  mary 
  chown  150  file  将文件  file  的UID改为150 


1.14  chgrp 
[语法]:  chgrp  [-R]  文件组  文件... 
[说明]:  文件的GID表示文件的文件组,文件组可用数字表示,  也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。 
  -R  递归地改变所有子目录下所有文件的存取模式 
[例子]: 
  chgrp  group  file  将文件  file  的文件组改为  group 


1.15  cmp 
[语法]:  cmp  [-l]  [-s]  文件1  文件2 
[说明]:  比较两个文件,若文件1  为  "-"  ,则使用标准输入,  两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。 
  -l  显示每个不同处的字节数(10进制)和不同的字节(8进制) 
  -s  不作任何提示,只返回码 
[例子]: 
  cmp  file1  file2  比较文件  file1  和  file2 
  cmp  -l  file1  file2  比较文件file1  和  file2  的每处不同 

1.16  diff 
[语法]:  diff  [-be]  文件1  文件2 
[说明]:  本命令比较两个文本文件,将不同的行列出来 
  -b  将一串空格或TAB转换成一个空格或TAB 
  -e  生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2 
[例子]: 
  diff  file1  file2 
  diff  -b  file1  file2 
  diff  -e  file1  file2  >;edscript 


1.17  wc 
[语法]:  wc  [-lwc]  文件... 
[说明]:  统计文件的行、字、字符数,若无指定文件,则统计标准输入 
  -l  只统计行数 
  -w  只统计字数 
  -c  只统计字符数 
[例子]: 
  wc  -l  file1  file2  统计文件file1和file2  的行数 


1.18  split 
[语法]:  split  [-n]  文件  [名字]] 
[说明]:  split  将指定大文件分解为若干个小文件,每个文件长度为n行(n  缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入 
[例子]: 
    split  -500  largefile  little 
    将文件largefile  每500行写入一个文件,第一个文件名为littleaa 


1.19  touch 

[语法]:  touch  [-amc]  [mmddhhmm[yy]]  文件... 
[说明]:  将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。 
  -a  只改变访问时间 
  -m  只改变修改时间 
  -c  若文件不存在,不创建它且不作提示 
mmddhhmm[yy]  两位表示  月日时分[年] 
[例子]: 
  touch  file 
  更新文件file的时间 
  touch  0701000097  HongKong 
  将文件HongKong的时间改为97年7月1日0时0分 


1.20  file 
[语法]:  file  [-f  文件名文件]  文件... 
[说明]:  file  对指定文件进行测试,尽量猜测出文件类型并显示出来 
  -f  文件名文件  文件名文件是一个包含了文件名的文本文件,  -f  选项测试 
文件名文件中所列出的文件 
[例子]: 
  file  显示当前目录下所有文件的类型 


1.21  pack 
[语法]:  pack  文件... 
[说明]:  pack  将指定文件转储为压缩格式,文件名后加  ".z  ",  文件存取模式,访问时间,修改时间等均不变 
[例子]: 
  pack  largefile  将largefile  压缩后转储为largefile.z 


1.22  pcat  显示压缩文件 
[语法]:  pcat  文件... 
[说明]:  pcat  显示输出压缩文件 
[例子]: 
  pcat  largefile.z  显示压缩前的largefile 
  pcat  largefile.z  >;  oldfile  显示压缩前的laregfile,并将其重定向到文件oldfile中 


1.23  unpack 
[语法]:  unpack  文件... 
[说明]:  将压缩后的文件解压后转储为压缩前的格式 
[例子]: 
  unpack  largefile.z  将压缩文件largefile.z解压后转储为largefile 


1.24  find 
[语法]:  find  路径名...  表达式 
[说明]:  find  命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下  代表一个十进制整数,+n  代表打印  ,  -n  代表小于  ,下面是合法表达式说明: 
  -name  模式  文件名与模式匹配则为真,(\  为转意符) 
  -perm  [-]八进制数  文件存取模式与八进制数相同则为真若有-  选项,则文件存取模式含有八进制数规定模式即为真 
  -size  n[c]  文件块长度为  则真(一块为512字节),若有c  选项,则文件字节长度为  则真 
  -atime  若文件的最近访问时间为  天前则为真。 
find  命令将改变其访问的目录的访问时间 
  -mtime  若文件的最近修改时间为  天前则为真 
  -ctime  若文件状态为  天前改变则为真 
  -exec  命令  }\;  若命令返回值为0则真,{  }内为命令参数,此命令必须以  \;  为结束 
  -ok  命令  }\;  与  exec  相同,只是在命令执行前先提示,若回答  则执行命令 
  -print  显示输出使表达式为真的文件名 
  -newer  文件  若文件的访问时间比newer  指定的文件新则真 
  -depth  先下降到搜索目录的子目录,然后才至其自身 
  -mount  仅查找包含指定目录的文件系统 
  -local  文件在当前文件系统时为真 
  -type  文件类型为  则真,c  取值可为  b(块文件)  (字符文件)  d(目录)  (符号链接)  (命名管道)  (普通文件) 
  \(  表达式  \)  表达式为真则真 
  -links  文件链接数为  时为真 
  -user  用户  当文件属于用户时为真,用户可用数字表示UID 
  -nouser  当文件不属于  /etc/passwd  中的一个用户时为真 
  -group  文件组  当文件属于文件组时为真,文件组可用数字表示GID 
  -nogroup  当文件不属于  /etc/group  中的一个组时为真 
  -fstype  类型  当文件所属文件系统类型为指定类型时真 
  -inum  当文件  节点号为  时为真 
  -prune  当目录名与模式匹配时,不再搜索其子目录 
  可以用逻辑操作符将简单表达式连接成复杂表达式。逻辑操作符有  表示非操作,  -o  表示或操作,两个表达式并列则表示与操作 
[例子]: 
  find  -name  find*  -print 
  从根目录开始搜索文件名如  find*  的文件并显示之 
  find  ./  -exec  sleep{1}\;  -print 
  每秒显示一个当前目录下的文件 
  find  $HOME  \(-name  a.out  -o  -name  '*.o'  \)  -atime  +7  -exec  rm  {}  \; 
  从$HOME目录开始搜索,删除所有文件名为a.out  或  *.o  且访问时间在7天前的文件 


1.25  grep 
[语法]:  grep  [选项]  模式  [文件...] 
[说明]:  在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(')  中,若指定文件为缺省,则使用标准输入,正规表达式可以是: 
  .  匹配任意一个字符 
  *  匹配0个或多个*前的字符 
  ^  匹配行开头 
  $  匹配行结尾 
  []  匹配[  ]中的任意一个字符,[]中可用  表示范围,例如[a-z]表示字母a  至z  中的任意一个 
  \  转意字符 
命令中的选项为: 
  -b  显示块号 
  -c  仅显示各指定文件中包含模式的总行数 
  -i  模式中字母不区分大小写 
  -h  不将包含模式的文件名显示在该行上 
  -l  仅显示包含模式的文件名 
  -n  显示模式所在行的行号 
  -s  指定文件若不存在或不可读,不提示错误信息 
  -v  显示所有不包含模式的行 
[例子]: 
  grep  'good'  在所有文件中搜索含有字符串  good  的行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值