(一)目录切换和位置

1、cd: 切换目录命令
 
   cd      回到登录目录
   cd ..   回到上一级目录
   cd /    回到根目录
   cd -    回到上一目录,注意是上一目录,不是上一级目录,就是刚操作过的那个目录,和返回上一页差不多的意思
   cd ./   表示本目录
   cd ~ username  到username用户的主目录
 
2、pwd [-p]   //显示当前目录。
 
     -p(大写)显示实际路径,而非链接路径,相对于链接文件,想找到源文件路径,很好用。    
 
(二) 建立和删除文件及目录
 
3、mkdir [-mp] 目录名   //建立目录。
 
     -m:建立目录,并且直接设置目录权限。  
     -p:建立递归目录,即目录下还有目录。
 
     例: mkdir  -m 600  test     //建立目录时就设定好权限
             mkdir  -p  zj8s/29t/tk3y    //同时建立多级目录
 
4、touch[-acdmt] file   //建立文件或修改文件时间
     
5、rmdir [-p] directory  //删除空目录,必须是空目录。
     -p,删除本级空目录的同时,删除上级空目录
 
6、rm [-irf] file             //删除文件或目录。
 
   -i:交互式删除,删除前询问操作。 
   -r:递归删除,删除时同时删除目录下的所有文件。
   -f:强制删除,并且不提示。
 
     想删除一个文件夹,又不想提示: rm -fr /dir  //会删除dir文件夹下的所有内容,慎用。
 
(三)复制、移动文件或目录
 
7、cp [-filprsu]  源文件  目标文件   //复制文件
  
  -f:强制复制
  -r:递归复制。主要用于复制目录,可以复制目录下的所有文件
  -i:交互式复制。会有提示。若目标文件已经存在,覆盖前会提示。
  -l:建立硬链接文件,而不是复制文件本身。
  -s:建立软链接文件,而 不是复制文件本身。
  -u:若目标文件比源文件旧,更新目标文件。
  -p:与文件的属性一起复制,而非使用默认属性。
    
8、mv [-fiu] source destination   //移动文件或更改文件名 
   -f:强制移动,不询问
   -i:若目标存在,会询问
   -u:源文件较新,会更新目标文件
 
    mv a.txt b.txt c.txt  /dir  //移动这三个文件到/dir目录
    mv a.txt b.txt //更名
 
9、dd     
dd [bs=<字节数>] [cbs=<字节数>] [count=<区块数>] [ibs=<字节数>] [if=<文件>] [obs=<字节数>] [of=<文件>] [convt=<关键字>]
 
   bs:一个区块的字节数,即一个区块的容量。
   cbs:每次转换的字节数
   ibs:每次读取的字节数
   obs:每次输出的字节数
   if:输入的文件
   of:输出的文件
   count:多少个区块
 
 dd  if = bootdisk.img  of=/dev/fd0  bs=1440k  //把目录下的bootdisk.img 文件转换到软盘上,转换最大区块为1.44M
 
(四)查看目录和文件内容
  
10、ls [-alihstd]   //查看文件和目录
    -a:显示所有文件,包括隐葳文件
    -l:列兴详细细节,如权限,所有者,组等。
    -i:列出inode位置。
    -h:按G\M\的格式显示文件的大小
    -s:按文件大小排序
    -t:按时间排序
    -d:列出目录本身,不列出目录内文件数据。
11、cat   //显示文件,
12、tac   //与cat相反, 从后往前显示  
13、nl 文件名   //显示文件的同时,显示行号
14、less   //分面器,可分页显示。 可往前翻
15、more   //分面器,可分页显示。只能往后翻。
16、head [-n] 文件名  //显示文件的开头几行。 -n:后面接数字,即显示多少行
17、tail [-n] 文件名  //显示文件的最后几行。 -n:后面接数字,即显示多少行
 
(五)搜索文件与字符
locate 字符串:查找文件名中包含后面字符串的所有文件。 
 
find [path] [optin 选项匹配条件]   //从哪个目录中找到与选项及选项条件相匹配的所有文件。 选项有很多种: -name (文件名相匹配) -size(文件大小相匹配)等。例: find  /etc  -name  httpd.conf   //从 /etc中查找名字为 httpd.conf 的文件。
 
 
grep [项][匹配条件] :某文件或查找出来的内容中包含匹配字符的项。例: grep -n "!"  a.txt   //从a.txt中找到所有有"!"的行。 find  /  -name *.html |grep bookmark   //从根目录下查找所有 html文件,且文件中含有  bookmark字符串的html 文件。
 
 
 
(六)文件与目录的默认权限与隐藏权限
 
  1、文件与目录的默认权限
 
   (1) umask [-S]  //查看文件与目录的默认权限。不加-s时,显示出来的是数字权限066。加-S,显示出来的是字符权限,例: rwx-rw-r
       系统默认:建立的文件默认权限为666。而文件夹的是777
 
   (2) umask  023  //更改默认权限,后面跟权限值。这个权限值是指根据默认权限,将要减掉的权限。
   例:默认文件权限为666,字符表示为:rw-rw-rw- 。此处为umask值为023,不是指:666-023=643,643表示为:rw-r---wx。
       应该是0代表的是拥有者权限,不减;2表示权限w(写),这个2表示的组的权限,所以这里表示组权限减掉写权限;最后一个2,表示其他用户减掉写权限。则为:rw-r--r--。
       所以应为减掉了umask后指定的权限,而不是简单的用减法减。
 
 
2、隐藏属性
   文件有隐藏属性,对文件的安全很有帮助
 
    (1)设置隐藏属性
 
      chattr [+-=] [ASacdistu] 文件或目录
 
      +:增加某个特殊参数,其他原本存在的参数不变
      -:减去某个特殊参数,其他原本存在的参数不变
      =:即所有参数都改变成后面的特殊参数。原本存在的参数也会改变。
 
      A:增加这个参数,将不能更改文件或目录的访问时间atime
      S:同sync功效。将内存中的缓存数据写进磁盘
      a:增加此参数后,只能增加数据,不能删除。只有root 能设置此参数。
      i:增加此参数后,不能删除、改名、连接,也无法写入或新增数据
      
 
(2)   lsattr  [-aR]  文件或目录    //显示隐藏属性。 -a:连同隐藏文件一起显示。   -R:连同子目录一起显示。
 
 
 
      
 
 
 
 
 
二、文件目录的权限
 
(一)拥有者、用户组、其他用户
 
     拥有者:一般文件或目录的创建立是这个文件或目录的拥有者。也可以通过设定,更改拥有者。
     用户组: 一个用户可以属于多个用户组,一个用户组包含一个或多个用户。
     其他用户:不属于一个用户组的用户。
 
     
 
(二)权限
    
 一个文件或目录会有三组权限,分别对应文件或目录的拥有者,与拥有者相同组的其他用户,与拥有者不同组的其他用户。即为ugo
 
每组权限的顺序为:读\写\执行。用字符表示为:rwx。用数字表示为:421。
 
例:字符:  rwx rw- r--  用数字表示为:  7 6 4//注意每组权限中间没有空格,我是为了更清晰加了空格。
   
第一组rwx表示拥有者的权限,表示拥有者拥有读写执行的权限。 第二组表示和拥有者同组的组用户的权限,表示组用户拥有读写的权限。最后一组为与拥有者不同组的其他用户的权限,表示只拥有读的权限。
 
 
 
(三)更改文件权限
 
     chmod 命令
 
1、符号方式更改   
chmod [ugo] [+-=]  [rwx]  文件或目录名
 
ugo:表示拥有者、组用户、其他用户
+:表示增加权限
-:表示减去权限
=:表示取消以前的所拥有的权限,只拥有"="后面设定的权限。
 
例: chmod  g+w  test.txt   //即组用户增加对文件test.txt的写权限
     chmod  u+x,g+w,o=r  test.txt   //即设定拥有者增对文件test.txt的执行权限,增加组用户的写权限,而其他用户只有读的权限。
 
 
2、数字更改法:
 
    chmod [-R] XYZ  文件名或目录名
 
   -R:是指对目录下的所有文件都更改权限。
   XYZ:是指由421  421  421 三组权限值相加的值。 X表示拥有者权限,Y表示组用户权限,z 表示其他用户权限。
   例: chmod -R 754 /tmp/khp   //对/tmp/khp目录设定权限为 拥有者有读写执行的权限 4+2+1=7   ,组用户拥有读和执行的权限:4+0+1=5 ,其他用户只拥有读的权限  4+0+0=4  
        4 2  1分别代表:读、写、执行。
 
 
 
 
(四)更改文件所有者
 
一般建立者为即为文件或目录的拥有者,但也可以更改拥有者。也可以更改文件或目录的所属组。
 
 
1、chown命令:更改文件或目录的拥有者
 
 chown[-R]  用户名 文件名或目录
 chown[-R] 用户名: 用户组名  文件或目录
 
  -R:即目录下的所有子文件夹或文件都继承此处更改的拥有者
 
例:  chown -R khp /tmp/khp    //对目录/tmp/khp   更改拥有者为 khp
       chown  khp:khp test.txt   //对文件test.txt更改拥有者和所属属为khp.
 
 
2、chgrp  改变文件或目录的所属组
 
   chgrp [-R] 所属组名   文件或目录
 
例:  chgrp  -R  khp   /tmp/khp    //对目录/tmp/khp更改所属组为  khp组。  此文件更用户组为khp