目录管理类命令

  • mkdir   

用来创建目录的。

对Linux的ls来讲,ls是一个别名,这个别名启用了颜色显示法,蓝色的表示目录,黑色的表示普通文件,绿色表示这个文件有执行权限。

对Linux来讲,目录和文件是同一类东西,是无法重名的。

选项:

-p:存在 时不报错,且可以自动创建所需的各目录

-v:显示过程的详细信息

-m:创建目录时直接指定权限

rmdir

用来删除目录的,该命令只能删除空目录

选项:

-v:显示过程

-p:重左向右删除文件,直到全部删除或遇到不空的文件为止

tree

列出目录的层级结构

选项:

-d:只显示目录

-L level(数字):指定显示的层级目录

-P pattern:只显示由指定pattern匹配到的路径

bash的基础特性

命令行展开

~:给出这个符号,bash自动展开为用户的主目录

 ~  USERNANE:展开为指定用户的主目录

命令行的执行结果状态

状态只有两种:成功或失败

bash使用$?保存最近一条命令的执行状态结果,其中状态结果:

      0:表示执行成功

      1—255:表示执行失败

bash只要执行成功就会用0表示,不会去纠结怎样成功。但执行失败会有多种多样的原因,bash会用不同的数字来表示。

在Linux中程序的执行有两类结果,像上面所说的是状态,但成功以后可能有很多数据:

     一个叫程序的返回值,即程序的执行结果

     一个叫程序的执行状态结果,即程序的状态

而返回值成功时命令执行的结果应该是什么就是什么,失败时,则可能是报错信息。

文本查看类命令

more

基于显示器来查看时能实现文本过滤

选项:

-d:显示翻页及退出提示

less

与man命令用法相同,man命令就是通过使用less命令来工作的

head

获取文件前一部分

选项:

-c#:指定获取前#字符

-n#:指定获取前#行

-#:与-n#相同,指定获取前#行

tail

获取文件后一部分

选项:

-c#:指定获取后#字节

-n#:指定获取后#行

-#:与-n相同。指定获取后#行

-f:跟踪显示文件新追加的内容

文件的时间戳管理工具

文件由metadata和data组成,即元数据和数据组成

stat

查看文件状态

每一个文件都有三个时间戳:

access time:最近一次访问的时间,即读取文件内容

modify time:最近一次修改时间,即改变文件内容或数据

change time:最近一次改变时间,即元数据发生改变

access time可简写为atime

modify time可简写为mtime

change time可简写为ctime

touch

手动修改atime和mtime

atime和mtime属于元数据,而元数据改变,ctime也会改变

访问就是使用命令查看或打开可执行程序,也是最近一次访问,读取文件的内容叫访问

选项:

-a:只改变atime,即最近一次访问时间

-m:只改变mtime,即最近一次修改时间

-t STAMP:自己指明修改哪一个时间戳

时间戳的格式:

[[cc]yy]MMDDHHmm[.ss]

年月日小时分钟秒钟

注意:但我们去touch一个文件时,如果这个文件不存在,touch命令会创建一个空文件的,而且时间戳都为当前时间,使用touch命令的主要目的是修改时间戳而不是去创建时间戳。

选项:

-c:如果文件不存在,则不予创建

文件管理

cp

复制命令

对于cp命令,在实现使用复制时,它的简要使用格式是:

(1)cp SRC(源)  DEST(目标)   

   SRC是文件而不是目录

注意:如果目标事先不存在,则表示复制SRC为DEST,即新建DEST,并将SRC中内容填充至DEST中。

          如果目标存在:

          如果DEST是文件:将SRC中的内容覆盖至DEST中的话,建议使用时与-i选项一同使用,如果DEST中有文件的话,使用-i就会提醒你要不要覆盖,对管理员来讲cp命令会默认使用-i,而普通用户不会

           如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中的内容填充至新文件中。

(2)cp SRC......(多个文件)  DEST

       当SRC是多个文源,而DEST不存在时,程序会报错,所以DEST必须存在,而且是目录,其他情形均会出错。当成功执行时,会将每一个原文件保留原名,放在目标目录下。每一个原文件在目标目录下都会新建一个,并将数据填充过去。

(3)cp  SEC  DEST

        SEC为目录:

cp命令会报错,cp命令在默认情况下是不支持目录复制的,如果要复制目录,则要使用专门的选项:-r

         -r:递归,表示不仅要复制目录,还有复制目录中的文件,这样才能实现复制

        如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中

         如果DEST存在:

                       DEST是文件:会报错,无法将目录复制到文件中

                       DEST是目录:复制到此目录中,在目标目录下创建一个与原目录同名的目录,并且把原目录中的文件复制到目标目录中。

cp的常用选项:

             -i:交互式,它会提示你是不是覆盖

             -f:强制式,不提示是否覆盖,强制覆盖

             -R或-r:递归复制目录及内部的所有内容

             -a:复制时必须把每一个文件保留它原来的样子

             -p:不去跟踪原文件所指向的目标文件,就复制这个符号链接本身,而不是它指向的内容

             -d:表示不追踪符号链接

             --preserve  [=ATTR_LIST]:保持文件的某些属性,保留你所指定的属性,有:

            context    安全上下文

            links         链接本身的属性

            xatty         扩展属性

            all             所以属性

如果使用=号,则保留你所指定的属性,如果不使用=号,则默认保留权限:node     属主属组:ovnershin    时间戳:timestamps   这三项

             -v:显示复制过程或显示详细信息

             -t:复制时可以把源放在后面,把目标放在前面

mv

移动文件

如果SRC是单个文件:

    DEST不存在:移动到那个目录下并重命名成你所指定的那个新名字,相当于在目录下创建一个我们自己指明名字为新文件名,把原来的内容填充到这个文件中,并删除原文件

    DEST存在:DEST是文件,会把原文件覆盖至目标文件中,并删除原文件

                     DEST是目录,在目标目录下创建一个原文件同名的文件,把原来的内容填充到这个文件中,并删除原文件 

如果SER是多个文件:

     DEST必须存在,而且是目录否则会出错

如果SRC是目录:

     不考虑SRC是目录或文件,不需要使用-r ,SRC是目录和文件没区别,与cp不同

     如果SRC是目录,它就把目录以及目录下的所以文件都移动到DEST中去

     如果SRC是文件,它就只移动文件

     所以mv命令并不区分SRC是文件还是目录

     移动目录有一个特点,它是把目标目录创建出来,目标目录如果不存在,它就是你指定的名字,如果存在,那就是我们新建的一个名字,如果SRC是目录的话,目标一定不能使用文件。        

     注意:如果SRC和DEST在同一个目录下,而且名字不相同,使用mv相当于重命名

选项:

     -i:交互式

     -f:强制式

rm

删除,用来删除文件或目录的,但rm本身事实上是不能删除目录及以下文件,想要删除目录,就要使用递归选项-r

常用选项:

        -i:交互式

        -f:强制删除

        -r:递归

在centos6及之后的版本是无法删除‘/’目录的,因为centos6在执行rm命令时有一个默认选项  --preserve-root,要删‘/’是不被允许的,如果要删‘/’,要加--on-preserve-root选项才可以,而在centos5及之前的版本是没有这个限制的