【linux_笔记】Linux根目录结构介绍以及目录、文件管理命令详解

学习资源来自:www.magedu.com

学习记录过程中难免出现错误,如有发现,还望大神们指出。

先导:

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
file:用来检查文件类型
    示例:file /root

可执行二进制文件的存储格式:
    Windows:PE
    Linux:ELF

文件系统:
        文件系统是内核的主要功能之一,用于管理本机某一个分区上的文件,一般文件系统对于磁盘来说是以
    分区为单位进行交互的,在整个系统上,所有的文件系统都必须同属于整个系统级别的根目录下(root).
    整个文件系统分为目录和文件,除了目录就是文件,所有的文件都存储在目录中,所有的文件都能通过目录
    查找到。

    rootfs:根文件系统。对于Linux系统而言,每一个文件都是根文件系统下的某一个路径,需要通过根文件系
           统才能访问。
        
    FHS:文件系统层级标准,规定Linux发行版应该创建一些目录用于存储特定的文件,所以无论redhat、suse
         还是debian基本上都会有一些相同的目录,而且目录中的文件也都近似。

文件管理:
    文件命名规则
        1、文件名长度不能超过255个字符;
        2、不能使用“/”当文件名
            其一、“/”是用来当根目录使用的,
            其二、“/”在整个路径中作为路径分隔符
        3、严格区分大小写
      
    路径:  
        相对路径:相对于当前位置作为起始位置的文件查找路径。
        绝对路径:由根目录开始的文件查找路径。
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
            
根目录结构:ls /(查看整个文件系统上根目录下的所有第一级子目录。)    

    /boot:存放系统启动相关文件,
        如(initrd-redhat5)|(ramfs-redhat6)、vmlinuz
          (这两个文件是操作系统启动时主要用到的内核以及暂时性的小型linux)
           以及grub(bootloader)―― 引导加载器
    /dev(device):设备文件 ―― linux重要思想:一切皆文件
        一个设备需要有设备文件才能被linux所访问
        设备文件类型:
            块设备:可以实现随机访问的设备,按数据块为单位。
            线性设备:实现线性访问,按字符为单位 ―― 鼠标,显示器
            设备号:主设备号(major)和次设备号(minor)
    /etc(etcetera):配置文件(系统上大多数程序的配置文件)存放的位置。
    /home:存放用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
    /root:管理员的家目录(不建议使用root用户直接登录)
    /lib:存放库文件(库不是可执行文件――没有执行入口,不能单独执行)
        静态库:.a ―― 程序直接包含库文件,便于程序单个文件管理
        动态库:.so(shared object)
               (程序和库文件是独立的,多个程序可以使用同一个库文件,有利于减少内存的占用。)
        /lib/modules:内核模块文件
    /media:挂载点目录 ,移动设备,比如:U盘、光盘等。
    /mnt(mount):挂载点目录 ,额外的临时文件,比如:第二块硬盘
        挂载:把某个设备跟当前文件系统上的某个目录建立关联的过程
    /misc(miscellaneous):杂项
    /opt:可选目录,早期的第三方程序安装目录
    /proc(与调优以及系统性能数据的监控有关):伪文件系统(存放内核的映射文件),大多数文件都是内核
          中的可调参数或内核的工作统计数据。例如:网卡接收和发送了多少个数据包的统计数据。
    /sys(调优――修改磁盘调度队列):伪文件系统(存放跟硬件设备相关的属性映射),通常用于实现硬件设备
          的管理,尤其是像硬盘这样的存储设备。
        伪文件系统:关机后目录是空的,开机后目录里就会有映射文件。
    /tmp(temporary):临时文件系统,存放公共的、可以被其他用户查看到的临时文件,每隔一个月自动清理。
                      每个人都可以在里面创建文件,但每个人只能删除自己的文件,不能删除别人的文件。
    /var:可变化的文件,例如:缓存、锁文件、日志文件、用户邮件的转存位置……
        /var/tmp:临时文件系统
    /bin(binary):可执行文件,所有的命令都在这个路径下――用户命令
    /sbin:管理命令
    /usr(universal shared read-only):全局的共享的只读文件,存放只读文件
        /usr/bin
        /usr/sbin
        /usr/lib
        /usr/local(并不是必须的):第三方软件的安装路径
            /usr/local/bin
            /usr/local/sbin
            /usr/local/lib
    
目录管理:列出目录内容、显示目录、切换目录、创建目录、删除目录
    ls:列出当前目录内容
    cd:切换目录
    pwd:显示当前目录
    mkdir:创建空目录    /root/x/y/z ―― 创建的新目录是z
        -p:自动补充缺失的父目录
        -v(verbose):详细信息     ―― mkdir -pv /root/m/n/q
        tree:查看目录树
        示例:ls
              mkdir x ―― 创建目录x
              ls
              mkdir x/y ―― 在目录x下创建目录y
              mkdir x/y/z
              tree x ―― 查看目录x的目录树
              在同一目录下同时创建多个目录
                  mkdir -pv /mnt/test/x/m /mnt/test/y
                  ||
                  mkdir -pv /mnt/test/{x/m,y} ―― 花括号展开(命令行展开)
              在/mnt/test2/下创建目录a_b,a_c,d_b,d_c:
                  mkdir -pv /mnt/test2/{a_b,a_c,d_b,d_c}
                  ||
                  mkdir -pv /mnt/test2/{a,d}_{b,b} ―― (a+d)(b+c)=ab+ac+db+dc
        删除目录:rmdir (remove directory) ―― 只能删除空目录以及一脉相承的目录(-p)
            示例:rmdir /mnt/test2 ―― 无法删除test2目录(test2不为空)
                  rmdir /mnt/test2/a_b ―― 删除成功(a_b为空)
                  rmdir -p /mnt/test2/a_c ―― a_c删了,test2未删除
                  tree x
                  rmdir -p /root/x/y/z ―― x,y,z都被删除(x,y,z一脉相承)
                  
文件管理:创建、删除、查看、编辑……
    文件创建和删除:―― 文件和目录不能重名,(Windows下创建文件自动附带后缀)
        touch:创建文件
            示例:touch a ―― 创建文件a
                ls
                file a
                mkdir a ―― 失败(与文件a重名)
                mkdir x
                touch x.doc ―― 成功
                man touch ―― touch是用来修改文件的时间戳的,在文件不存在的情况下自动创建该文件(默认)
                man stat ―― stat显示文件或文件系统的状态信息
                stat a
                date
                touch a
                stat a ―― 时间戳全部改变
                ls
                touch -c c ―― 如果文件不存在,不创建文件
                ls
                改变文件时间戳:
                    -a 只改变访问时间
                    -m 只改变修改时间
                touch -a a ―― 访问时间和改变时间改变,修改时间未改变
                touch -m a ―― 最近一次的修改时间和改变时间改变,访问时间未改变
                按指定时间修改:-t 年月日小时分钟.秒钟
                touch -m -t 201212121212 a
                stat a
        创建文件,也可以使用文件编辑器 ―― nano
            示例:
                nano hello
                    This is a test file
                    根据提示保存文件 ―― ctrl+o回车

                    退出 ―― ctrl+x

                ls -lh
                file hello
            
        删除文件:rm ―― 为了防止误删文件,管理员下,rm是rm -i 的别名
                  \rm ―― 取消交互式信息
            -i:交互式,提示交互信息 ―― 提示是否真的要删除指定文件
            -f:强制删除
            -r:递归删除目录                            
            rm -rf:强制递归删除目录,没有提示
                管理员权限下绝对不能执行的命令!!:rm -rf / ――
                (这条命令含义是删除根目录及根目录下的所有文件(执行结果为所有数据都没了!))
                因此不到万不得已的时候,尽可能不使用管理员直接登录。
            示例:
                rm hello
                y
                ls -l ―― 文件hello被删除了
                type rm  ―― rm是rm -i 的别名
                rm a
                n
                \rm a ―― 在命令前加\,表示不使用别名,使用命令自身的意思(只对有别名的命令有意义)
                ls
                \ls ―― 显示列表没有高亮显示不同文件类型的文件
                type ls ―― ls 是 ls --color=tty 的别名
                tree /mnt/test2
                rm -rf /mnt/test2 ―― 强制递归删除目录test2
                ls /mnt
    文件的复制和移动:
        文件的复制:
        cp: copy,复制一个文件或多个文件到一个目录,管理员下是cp -i的别名。
        cp file1 file2 file3:只有file3是目标
        cp SRC DEST    ―― 源文件SRC复制到目标文件DEST
            -r:复制目录及目录中的文件(递归复制)
            -i:交互式,提示交互信息
            -f:强行复制
            -p:复制文件时保留这个文件原有的属主、属组、权限、以及时间戳。
            -a:保留文件原有的所有属性――归档复制,常用于备份
            -L:复制链接里的文件
            -P:复制链接自身
        示例:
            cp /etc/passwd /tmp/
                (把passwd这个文件以同样的文件名复制到tmp目录下(目标是一个已经存在的目录))
            cp /etc/passwd /tmp/test
               1、如果test不存在,则将passwd复制到tmp上并重命名为test
               2、如果test存在
                    1、test是文件:则提示是否覆盖
                    2、test是个目录:把passwd这个文件以同样的文件名复制到test目录下
            cp /etc/passwd /etc/issue /etc/inittab /tmp/abc ―― 提示abc不是目录无法执行
                (源有多个,则目标一定是目录(tmp下没有abc文件))
            cp /etc/inittab /tmp/abc ―― 将inittab复制到tmp并重命名为abc。
                (源只有一个,则目标可以不是目录(tmp下没有abc文件))
            复制目录:
                cp /etc/init.d/ /tmp/ ―― 失败(cp默认不能复制目录)
                cp -r /etc/init.d/ /tmp/hello
                    1、hello不存在:将把init.d复制到tmp下并命名为hello
                    2、hello存在并是个目录:将把init.d复制到hello下并命名为init.d
                    3、hello存在并是个文件:确认覆盖后将创建成一个hello的链接文件(指向当前目录下的
                        链接文件),本例由于俩文件不在同一个目录下,因此得到的是一个无效链接文件。
            su - student ―― 切换至student用户
            cd /tmp
            cp /etc/inittab /tmp/stu.inittab
            ls /tmp
            ls -l /tmp/stu.inittab
            exit
            cd /tmp
            ls -l
            cp stu.inittab root.inittab
            ls -l
            cp -p stu.inittab root.inittab.2 ―― 复制时保留属主、属组...
            ls -l ―― 比较root.inittab和root.inittab.2的不同
            cp /etc/rc /tmp   ―― rc是一个链接
            ls -l /tmp     ―― 复制的是链接指向的文件
            cp -L /etc/rc /tmp/rc.2 ―― 复制的是链接里的文件
            ls -l /tmp
            cp -P /etc/rc /tmp/rc.3 ―― 复制链接
            ls -l /tmp
            cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/ ―― 复制三个文件到目录tmp下
            
    文件的移动(剪切):
        mv: move,可以直接操作文件和目录,管理员下是mv -i的别名。
        mv SRC DEST 和copy一样只有最后一个是目标
        mv -t DEST SRC ―― 命令的另一种书写方式
        示例:
            cp /tmp/root.inittab /var/tmp/abc
            file /var/tmp/abc
            mv /tmp/hello/ /var/tmp/abc ―― 失败,不能用目录去覆盖一个非目录文件
            cd /var/tmp
            pwd ―― 显示当前目录
            ls
            mv abc mn ―― 相对路径(源文件和目标文件的路径一致,那么mv操作就是重命令
            ls
            cd /tmp
            pwd
            ls
            mv hello hi
            ls
    另一个复制文件命令(不能复制目录):install
        -d DIRECOTRY … :创建目录
        SRC DEST:复制文件
        -t DIRECTORY SRC…
        -m:指定权限
        示例:
            install -d /tmp/{install.1,install.2} ―― 在tmp目录下创建两个目录
            ls /tmp
            install  /etc/passwd /var/tmp/install.filed1 ―― 复制文件
            ls /var/tmp
            ls -l /var/tmp/ ―― 复制过来的文件具有执行权限
            ls /etc/passwd -l ―― 源文件passwd并没有执行权限
            file /etc/rc.d/
            install /etc/rc.d/ /var/tmp ―― 失败(install不能复制目录)
            ls /var/tmp       





你可能感兴趣的:(文件系统,根目录结构,文件管理命令,目录管理命令)