Linux文件系统详解

来源:互联网 发布:html 获取js定义的值 编辑:程序博客网 时间:2024/06/02 05:38

一、Linux文件系统

        在Linux中,所有的设备都是文件。文件的类型是根据文件头字段来判断,而非文件的后缀名。

        用户配置文件:~/.bashrc  ~/.bash_profile  ~/.bash_logout

        全局配置文件:/etc/profile  /etc/bashrc

二、Linux文件系统目录结构

        linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。深刻理解linux文件目录是非常重要的。

        linux下的根目录中重要的目录如下是系统自动分配的:root目录、home目录、bin目录、sbin目录、mnt目录、etc目录、var目录、boot目录、usr目录、tmp目录(均为同级目录)。

        /:系统根目录。

        root目录:用于存放root用户相关文件的目录

        home目录:用于存放普通用户的相关文件的目录

        bin目录:用于存放常用命令的目录

        sbin目录:用于存放要具有一定权限才可以使用的命令的目录

        mnt目录:用于默认挂载软驱、光驱的目录

        etc目录:用于存放配置相关的文件的目录

        var目录:用于存放经常变化的文件的目录

        boot目录:用于存放系统引导文件的目录(重要)

        usr目录:用于存放安装的默认目录(安装文件会默认安装在usr目录里)

        /usr/doc  /usr/share/doc:帮助文档

        /usr/share:共享文件和数据

        /usr/bin:几乎所有的命令程序

        /usr/sbin:系统管理的命令

        /usr/include:C语言头文件

        /usr/lib:库文件和数据文件

        /usr/local:本地安装的软件

        /usr/src:Linux源代码

        tmp目录:用于存入临时文件的目录

        cd /返回到主目录下。lsdir功能相同,列出当前目录下的所有文件名。pwd命令显示当前在哪个路径下面。

        当前目录:pwd命令可以显示当前目录。

        相对路径:以当前目录开始寻找目标文件或文件夹 . .. ~

        绝对路径:以根目录开始寻找目录文件或文件夹 /目录。

        工作目录:就是执行文件所在的目录。

三、挂载文件系统

        挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。若要访问设备中的文件,必须将文件挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。

        注意:挂载目录可以不为空,但挂载后这个目录下以前的内容将不可用。

        可以通过mount命令来挂载文件系统,语法为:

        mount  -t  file_system_type device_to_mount  directory_to_mount_to

        例如:$ mount -t iso9660/dev/cdrom /mnt/cdrom

        将 CD-ROM 挂载到 /mnt/cdrom 目录。

        注意:file_system_type用来指定文件系统类型,通常可以不指定,Linux会自动正确选择文件系统类型。

        可以通过umount命令来卸载文件系统。例如,卸载cdrom:$ umount /dev/cdrom

        不过,大部分现代的Linux系统都有自动挂载卸载功能,unmount 命令较少用到。

四、文件操作常用命令

        1toucha.txt

        如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。

        2ls

        是list的简写,列出当前目录下的所有文件名ls -l a.txt列出文件的详细信息,ls –a会显示当前目录下所有文件(包括隐藏文件)。

        3cp  a.txt b.txt

        cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到文件b.txtcp a.txt ..:将a.txt复制到父目录的a.txt。

        4mva.txt c.txt

        mv是move的简写,用来移动文件。将a.txt移动成为c.txt (相当于重命名rename)。mv  c.txt  /home/vamei:将c.txt移动到/home/vamei目录。

        5rma.txt

        rm是remove的缩写,用于删除文件。删除a.txt。rm -r /home/vamei:删除从/home/vamei向下的整个子文件系统。-r表示recursive,是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。($rm -rf /:它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… 一般情况下,应该没有人会用这个命令。)

        6mkdir  /home/vamei/good创建一个新的目录。

        7rmdir  /home/vamei/good:删除一个空的目录。

        8pwd显示当前工作目录。

        9cd[dirName]

        改变目录至dirName。其中dirName可为绝对路径或相对路径。若目录命令省略,则变换至使用者登录时所在的目录(Home directory)。另外,“~”也表示为Home目录的意思,“.”则是表示当前所在的目录,“..”则表示当前目录位置的上一层目录。

        10ln

        命令ln:建立符号连接,ln –s 源目标。ln -s /etc/inittab inittab [inittab指向实际文件/etc/inittab]。

五、Linux文件名通配符表达式

        (wild card, 也叫filename pattern matching)之前所讲的命令,比如ls, mv, cp都可以接收多个参数,比如:

        ls -l a.txt b.txt c.txt就可以列出这三个文件的所有信息。有时候,我们想列出工作目录下所有的以.txt结尾的文件的信息,可以用下面的方式:ls -l *.txt

        *.txt的写法就运用了Linux通配表达式。它与正则表达式相类似,但语法有所不同。

Filename Pattern Matching

对应含义

*

任意多个任意字符

?

任意一个字符

[kl]

字符k或者字符l

[0-4]

数字0到4字符中的一个

[b-e]

b到e字符中的一个

[^mnp]

一个字符,这个字符不是m,n,p

        Linux会找到符合表达式的文件名,然后用这些文件名作为参数传递给命令。注意,当使用rm的时候,要格外小心。下面两个命令,只相差一个空格,但效果大为不同:

        rm * .txt    rm *.txt前一个命令会删除当前目录下所有文件!

六、Linux文件权限

        1chmod 755a.txt(必须是文件a.txt的拥有者才能运行此命令。或者以$sudo chmod 755 a.txt的方式,以超级用户的身份运行该命令。)

        change mode改变a.txt的读、写以及执行权限。每个文件都有九位的读写执行权限,分为三组,分别对应拥有者(owner),拥有组(owner group)中的用户和所有其他用户(other)。在这里,我们也有三个数字,755,对应三个组。7被分配给拥有者,5被分配给拥有组,最后一个5分配给其它用户。Linux规定:4为有读取的权利(r),2为有写入的权利(w),1为有执行的权利(x。我们看到的7实际上是4 + 2 + 1,表示拥有者有读、写、执行三项权利。

        这时,运行$ls -l a.txt, 应该看到九位的权限变成了rwxr-xr-x。根据自己的需要,你可以用比如444, 744代替755,来让文件有不同的权限。

        - rw- r-- r--

        -为文件类型,-为普通文件,d为文件夹, l为链接

        rw-文件的所有者对该文件的权限。r--文件所在组对该文件的权限。r--其它组的用户对该文件的权限。

        注:修改文件访问权限只有root用户和文件所有者。查看当前操作人员命令who am i。

        chmod 777 用户名

        解释:- --- --- ---  000       - r-- r-- r— 444      - rw- rw- rw-  666

                        - rwx rwx rwx   777          - rwx rw- r--  764

        2sudo chownroot a.txt

        changeowner改变文件的拥有者为root用户。这个命令需要有超级用户权限才能执行,所以我们在命令之前加上sudo。

        3sudo chgrp root a.txt

        change group 改变文件的拥有组为root组。

原创粉丝点击