文件处理命令

命令格式

命令【-选项】【参数】

例如:ls -la /etc

说明:1)个别命令使用不遵循此格式

   2)当有多个选项,可以写在一起

   3)简化选项与完整选项  -a等价于--all  简化的一般用-,完整的一般用--

目录处理命令ls

 ls(list)

命令所在路径:/bin/ls

执行权限:所有用户

功能描述:显示目录文件

语法:  ls [-ald] [文件或目录]

     -a  all,显示所有文件,包括隐藏文件(以.开头的文件是隐藏文件,要隐藏一个文件直接改文件名,前面加.)

     -l   long,显示详细信息

        

      详细信息包含七种信息:

        1)-  表示该文件的类型是一个文件,d开头表示这是一个目录,l开头表示这是一个软链接

          rw-------  不同用户对该文件的访问权限(r可读,w可写,x可执行)。前三个rw-表示所有者的访问权限,中间三个---表示用户组的访问权限,后三个---表示其他人的访问权限;-表示该类用户没有该访问权限,如rw-,表示该类用户对该文件可执行读写,但不可执行

          Linux中用户与文件之间有三种关系:

            所有者u(user),文件的创建者,一个文件只能有一个所有者,但是所有者的身份可以变更

            用户组g(group),一个用户的集合

            其他人o(other),除所有者和用户组的其他用户

        2)  1  文件的硬链接总数,表示文件被引用的次数

        3)  root  文件所有者

        4)  root  文件用户组

        5)  1280  文件大小,单位字节

        6)  Mar 27 04:50    文件最近一次被修改的时间

        7)  anaconda-ks.cfg  文件名或目录名

     -d  directory,查看目录属性,显示当前目录本身而不显示目录的内容,-d和-l选项一般会一起使用,用于查看某一目录的详细信息

     -h  human,这是一个通用命令,为了显示的人性化而设计,如

      

        文件大小以KB为单位显示,显示更加人性化

     -i  显示目录下文件的i node结点

目录处理命令

1.命令名称:mkdir(make directories)

命令所在路径:/bin/mkdir

执行权限:所有用户

语法:mkdir -p[目录名]

功能描述:创建新目录

     -p 递归创建,例如,mkdir -p /tmp/book/xiyou,如果book目录本身不存在,会先创建book目录,再创建xiyou子目录

     也可以同时创建多个目录,mkdir -p /tmp/book/xiyou /tmp/book/sanguo

     注意:不要在系统关键目录下随便创建目录,可以在自己的用户目录或者/tmp下创建

2.命令名称:cd(change directory)

命令所在路径:shell内置命令

执行权限:所有用户

语法描述:cd[目录]

功能描述:切换目录

     cd ..  切换到上层目录

     cd.    当前目录

3.命令名称:pwd(print working directory)

命令所在路径:/bin/pwd

执行权限:所有用户

语法:pwd

功能描述:显示当前目录的绝对路径

4.命令名称:rmdir(remove empty directories)

命令所在路径:/bin/rmdir

执行权限:所有用户

功能描述:删除目录

5.命令名称:cp(copy)

命令所在路径:/bin/cp

执行权限:所有用户

功能描述:复制文件或目录

语法:cp [-rp] [原文件或目录][目标目录]

   可以一次复制多个文件,如cp /root/install.log /root/install.log.syslog /tmp

   复制之后给文件或目录重命名,cp /root/install.log /tmp/book/installed.log,文件复制后重命名为installed.log

   -r  复制目录

   cp -r /tmp/book/xiyou /root,复制xiyou目录到/tmp目录下

   -p  保留文件属性

   cp -p /root/install.log /tmp/book/xiyou,复制后两个文件属性一致

   两条文件详细信息一致,如果不用-p选项,文件操作时间不会一样

6.命令名称:mv(move)

命令所在路径:/bin/mv

执行权限:所有用户

功能描述:剪切文件、改名

语法:mv[原文件或目录][目标目录]

   mv不像cp命令需要选项,且也可以同时操作多个文件或目录

   mv也可以剪切之后改名,与cp命令格式一样,如果剪切的目录是同一目录,就是执行了改名操作,如mv sanguo shuihu

7.命令名称:rm(remove)

命令所在路径:/bin/rm

执行权限:所有用户

功能描述:删除文件

语法:rm [-rf] [文件或目录]

   -r  删除目录

   -i  强制确认

   -f  强制删除

   如果一个目录下有很多文件,要删除这个目录,可以加-rf选项,略过对每个文件的删除询问确认操作

文件处理命令

1.命令名称:touch

命令所在路径:/bin/touch

执行权限:所有用户

功能描述:创建空文件

语法:touch [文件名]

   理论上命名没有限制,但是命名过于奇葩会引发不可预知的错误和麻烦;如:Windows文件名中允许空格出现,Program Files,但是Linux中使用命令touch Program Files,会创建两个文件Program和Files文件;如果非要在文件命中出现空格,用双引号把文件名括起来,touch "Program Files",这样操作起来很麻烦,不推荐文件名中出现空格

   touch命名还可以用来更改文件的修改时间,而不改变文件的内容,语法touch [已存在的文件],如果只想改变文件的访问时间,使用-a选项,touch -a [已存在文件]

   ls -l 命令只会显示文件被修改的时间,ls -l --time=atime能够显示文件被访问时间

2.命令名称:cat

命令所在路径:/bin/cat

执行权限:所有用户

功能描述:显示文件内容,适合内容不长的文件使用

语法:cat [-n] [文件名]

   -n  显示行号

3.命令名称:tac

命令所在路径:/usr/bin/tac

执行权限:所有用户

功能描述:反向列示文件内容,同样适用内容不长的文件

语法:tac [文件名]

4.命令名称:more

命令所在路径:/bin/more

访问权限:所有用户

功能描述:分页显示文件内容

语法:more [文件名]  如:more /etc/services

   space/f  翻页查看

   enter   逐行查看

   q/Q     退出查看

5.命令名称:less

命令所在路径:/usr/bin/less

执行权限:所有用户

功能描述:分页显示文件内容,支持向上翻页和搜索,搜索时直接输入关键字回车,搜索到的内容如果过多,可按n查看下一页的内容

语法:less [文件名]

   less支持more所有的子命令

   pgUp   向上翻页

   pgDn   向下翻页

   上箭头    向上逐行查看

   下箭头    向下逐行查看

6.命令名称:head

命令所在路径:/usr/bin/head

执行权限:所有用户

功能描述:显示文件的前几行内容

语法:head [-n] [文件名]

   -n 后面指明显示的行数,如果没有使用该选项,默认显示前十行

7.命令名称:tail

命令所在路径:/usr/bin/tail

执行权限:所有用户

功能描述:显示文件最后几行的内容

语法:tail [-nf] [文件名]

   -n  后面指定要显示的行数,如果不使用该选项,默认显示最后十行

   -f  动态显示文件末尾内容,如检测操作日志,tail -f /var/log/messages

链接命令

命令名称:ln(link)

命令所在路径:/bin/ln

执行权限:所有用户

功能描述:生成链接文件

语法:ln [-s] [原文件][目标文件]

   -s  创建软链接

例如:ln -s /etc/issue /tmp/issue.soft,创建文件/etc/issue的软链接/tmp/issue.soft

   ln /etc/issue /tmp/issue.hard,创建文件/etc/issue的硬链接/tmp/issue.hard

软链接:类似于Windows中的快捷方式,只是源文件的一个符号文件。

    

     查看软链接的详细信息,可以发现软链接有以下特征:

      1)以字母l开头,表明这是软链接,且软链接对所有三种用户的权限是全开的,但是用户对软链接的执行权限并不代表对原文件的执行权限

      2)软链接只是原文件的符号文件,所以都很小,上述软链接只有10B

      3)软链接文件名后有箭头指向原文件

硬链接:文件的带属性拷贝(cp -p)+同步更新操作

    

    查看硬链接文件和原文件的详细信息,发现除文件名不一致其余属性属性都一样,就好像对文件执行了cp -p /tmp/issue /tmp/issue.hard一样。

    但是如果我们更新了原文件的内容,硬链接文件的内容也会同步更新:

    

    echo [字符串] >> [目标文件],作用是向目标文件的文件尾追加字符串;同样,往硬链接文件添加内容,原文件也会同步更新:

    

    此时我们再查看软链接的文件内容:

    

    我们发现文件内容也实现了同步更新,这样的话软、硬链接不就没区别了?

    实际上不是的,软链接只是原文件的符号文件,相当于一个快捷方式,如果执行软链接,软链接会定位找到原文件来执行,所以我们查看的实际上还是原文件的内容;而硬链接时原文件的带属性拷贝+双向的同步操作,性质是不一样的。

    如果想更直白的区分硬链接和软链接,将原文件删除,再分别查看软硬链接的文件内容

    

    这就是软硬链接的区别,原文件如果被删除,软链接找不到原文件,但是硬链接依然可以访问

  硬链接的特征:

  1)是对原文件的cp -p +同步更新

  2)不能跨分区使用,但是软链接可以

  3)不能对目录执行操作

  4)软链接可以通过详细信息中是否以字母l开头,文件名是否指向原文件识别,硬链接可以通过i节点来识别

     

    硬链接和原文件的i节点是一样的,正是这个原因,所以硬链接和原文件可以实现同步更新;而软链接与原文件的i节点不一样

    因此,一个文件只能对应一个i节点,而一个i节点并不是只对应一个文件

原文地址:https://www.cnblogs.com/qingyaxuan/p/6625001.html