zoukankan      html  css  js  c++  java
  • linux目录结构及文件管理

    Linux的目录结构:

                          

          /            根分区 linux文件系统的起点

                       /bin           普通用户的命令,普通用户能使用

                       /sbin         管理员使用的命令,只有管理员能使用

                       /home      普通用户的宿主目录

                       /root         管理员的宿主目录

                       /boot        linux启动所需的文件,内核,grub,内核引导文件

                       /dev          设备文件,硬盘,键盘鼠标,光驱等

                       /usr           应用程序 /usr/src  源码包的存放路径

                       /etc           配置文件

                       /opt           安装额外软件时的存放路径

                       /var         日志文件,邮件等

                       /proc         虚拟文件系统(计算机内核的信息,CPU...),数据都在内存中

                       /lib          库文件,驱动

                       /selinux    美国国家安全属研发的安全机制

                       /tmp         临时文件存放目录(公共文件夹)

                       /media     挂载点(redhat9.0里面使用的/mnt)

                       /sys     系统相关文件

                       /srv           启动的服务需要访问的数据目录

                       /mnt    临时文件系统挂载点

    文件的两类数据:

             元数据:文件的属性

             数据:文件的内容

    显示当前所在目录:

    [root@bogon ~]# pwd
    /root

    切换目录:cd命令

      绝对路径:以根目录“/”作为起点,可以非常准确的表示一个目录或文件所在的位置,如果路径较长输入时会比较繁琐。

      相对路径:以当前工作目录作为起点,“.”表示当前工作目录,“..”表示上一级目录,“~”表示用户的宿主目录。

    [root@bogon ~]# cd -    ##回到上一次的工作目录,实现两个工作目录间来回切换
    /etc
    [root@bogon etc]#cd -

    文件通配符:

             * 匹配零个或多个字符

             ?  匹配任何单个字符

             ~  当前用户家目录

             ~username  用户家目录

             ~+  当前工作目录

             ~-  前一个工作目录

             [0-9] 匹配一个数字范围

             [a-z]   大写和小写字母

             [A-Z]   大写字母

             [wxc] 匹配列表中的任何的一个字符

             [^wxc]  匹配列表中的所有字符以外的字符

             预定义的字符类: #man 7 glob

             [:digit:]   任意数字,相当于0-9

             [:lower:]   任意小写字母

             [:upper:]   任意大写字母

             [:alpha:]   任意大小写字母

             [:alnum:]   任意数字或字母

             [:space:]   空格

             [:punct:]   标点符号

    列出目录的内容或指定目录:

             ls命令:ls [options] [files_or_dirs]

                       -a     包含隐藏文件

                       -l      以长格式显示,ll

                       -R    目录递归显示

                       -d    目录和符合链接信息

                       -1      文件分行显示

                       -S     从大到小排序

          -i  显示文件索引节点

    显示当前工作目录下的所以隐藏文件和目录:

    [root@bogon ~]# ls -d .*
    .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc  .viminfo

    显示当前工作目录下的所以目录:

    [root@bogon var]# ls -d */ 
    adm/    crash/  empty/  gopher/    lib/    lock/  mail/  opt/       run/    tmp/
    cache/  db/     games/  kerberos/  local/  log/   nis/   preserve/  spool/  yp/

    显示/etc 目录下,所有.conf 结尾,且以m,n,r,p 开头的文件或目录

    [root@bogon log]# ll /etc/[mnrp]*.conf 
    -rw-r--r--. 1 root root 5171 Jun 10  2014 /etc/man_db.conf
    -rw-r--r--. 1 root root  936 Mar  6  2015 /etc/mke2fs.conf
    -rw-r--r--. 1 root root 1717 May  1 05:40 /etc/nsswitch.conf
    -rw-r--r--. 1 root root   82 May  1 19:24 /etc/resolv.conf
    -rw-r--r--. 1 root root  458 Nov 21  2015 /etc/rsyncd.conf
    -rw-r--r--. 1 root root 3232 Sep  8  2015 /etc/rsyslog.conf

    linux文件的类型:

      -   普通文件

      d   目录文件

      b   块设备

      c   字符设备

      l   符号链接文件

      p   管道文件pipe

      s   套接字文件socket

    查看文件状态:stat

    [root@bogon ~]# stat anaconda-ks.cfg 
      File: ‘anaconda-ks.cfg’
      Size: 1401          Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 101877942   Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:admin_home_t:s0
    Access: 2017-05-01 05:41:12.625008626 +0800    ##访问时间,读取文件内容
    Modify: 2017-05-01 05:41:12.630008626 +0800    ##修改时间,改变文件内容(数据)
    Change: 2017-05-01 05:41:12.630008626 +0800    ## 改变时间,元数据发生改变
     Birth: -

    touch命令:创建文件和刷新时间

             touch [OPTION]... FILE...

             -a    改变atime

             -m   改变mtime

             -t     STAMP:[[CC]YY]MMDDhhmm[.ss]

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

    cp命令:复制        

             -a    归档,等同于-dr

             -b    若删除或者覆盖目标文件,将对目标文件进行备份,备份文件以备份的字符串结尾

             -d    复制符号链接

             -f     强制复制

             -h    强制cp复制符号链接。缺省值是跟随符号链接,将文件复制到符号链接指向处。

             -i      交互式模式。覆盖目标文件之前先要进行询问

             -l      建立硬链接,而非复制

             -p    源目录或者文件的属性保留

             -r    处理指定目录以及子目录

    复制/root目录下所以文件到/data目录,包括隐藏文件:

    [root@bogon ~]# cp -r /root/. /data/
    [root@bogon ~]# ls -a /data/
    .   anaconda-ks.cfg  .bash_logout   .bashrc  .tcshrc
    ..  .bash_history    .bash_profile  .cshrc   .viminfo

    移动和重命名:mv [选项]

                       -i       交互式

                       -f       强制,如果目标文件已经存在,不会询问而直接覆盖

            -b     若需覆盖文件,则覆盖前先行备份

    [root@bogon ~]# ls
    anaconda-ks.cfg  file1.txt
    [root@bogon ~]# mv file1.txt /data/file2.txt
    [root@bogon ~]# ls /data/
    file2.txt      ##将file1移动到/data目录下重命名file2

    删除文件: rm [选项]... file...

                       -i:  交互式

                       -f:  强制删除

                       -r:  递归删除目录树

    [root@bogon ~]# ls /data/
    file2.txt  testdir
    [root@bogon ~]# rm -rf /data/*
    [root@bogon ~]# ll /data/
    total 0      ##删除/data目录下所以文件

    显示目录树: tree

             -d:  只显示目录

             -L level :指定显示的层级数目

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

     显示“/”目录树,只显示一层:

    [root@bogon ~]# tree -L 1 /
    /
    ├── bin -> usr/bin
    ├── boot
    ├── data
    ├── dev
    ├── etc
    ├── home
    ├── lib -> usr/lib
    ├── lib64 -> usr/lib64
    ├── media
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── sbin -> usr/sbin
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var

    创建目录:mkdir

             -p:  递归创建,且可自动创建所需的各目录;

             -v:  显示详细信息

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

    [root@bogon ~]# mkdir -m 700 test
    [root@bogon ~]# ll
    total 4
    -rw-------. 1 root root 1401 May  1 05:41 anaconda-ks.cfg
    drwx------. 2 root root    6 May  2 02:27 test

    rmdir:删除空目录

             -p:  递归删除父空目录

             -v: 显示详细信息

    链接文件:ln命令

      软连接与硬链接的区别:

        当删除源文件后,软连接将失效,但硬链接仍旧可用。

        软连接适用于文件或目录,但硬链接只可用于文件。

        软连接与原文件可以位于不同的文件系统中,但硬链接必须与原文件在同一个分区内。

       ln命令默认创建的是硬链接,创建软链接必须结合“-s”选项

    [root@bogon ~]# ln -s /etc/httpd/conf/httpd.conf /etc
    [root@bogon ~]# ll /etc/httpd.conf 
    lrwxrwxrwx. 1 root root 26 May  2 02:47 /etc/httpd.conf -> /etc/httpd/conf/httpd.conf
    [root@bogon ~]# ln  /var/log/messages /tmp/test
    [root@bogon ~]# ll -h /tmp/test
    -rw-------. 2 root root 574K May  2 02:46 /tmp/test

    file命令:用来识别文件类型,也可用来辨别一些文件的编码格式

    file [options] <filename>...

      -b 列出文件辨识结果时,不显示文件名称。

      -c 详细显示指令执行过程,便于排错或分析程序执行形

      -f 列出文件中文件名的文件类型

      -F 使用指定分隔符号替换输出文件名后默认的”:” 分隔符

      -i 输出mime 类型的字符串

      -L 查看对应软链接对应文件的文件类型

      -z 尝试去解读压缩文件的内容

      --help显示命令在线帮助

    查看软连接对应文件的类型:

    [root@bogon ~]# file -L /etc/httpd.conf 
    /etc/httpd.conf: ASCII text

    du命令:统计目录及文件的空间占用情况

      -a  统计磁盘空间占用的所以文件,而不仅仅只统计目录

      -h  以K,M单位显示

      -s  只统计某个参数所占用的空间,而不是统计每个子目录

    [root@bogon ~]# du -sh /var/log/
    3.3M    /var/log/
    [root@bogon ~]# du -ah /boot/
    4.0K    /boot/grub/splash.xpm.gz
    4.0K    /boot/grub
    0    /boot/grub2/themes/system
    0    /boot/grub2/themes
    4.0K    /boot/grub2/device.map
    12K    /boot/grub2/i386-pc/acpi.mod

    文件压缩及归档:

    gzip命令:

      gzip[OPTION]... FILE ...

      -d  解压缩,相当于gunzip

      -c  将解压或压缩的结果输出至标准输出

      -r  递归处理,将指定目录下的所有文件及子目录一并处理

      -#  指定压缩比,#表示数字1-9

    bzip2命令:

      bzip2 [OPTION]... FILE ...

      -k  压缩时保留源文件

      -d  解压缩

      -#  指定压缩比,#表示数字1-9,默认为6

      bzcat  不解压的的情况下查看文件内容

    xz命令:

      xz[OPTION]... FILE ...

      -k  保留源文件

      -d  解压

      -#  指定压缩比,#表示数字1-9,默认为6

      bzcat  不解压的的情况下查看文件内容

    打包压缩:

    zip命令:跨平台压缩工具 

    -r 处理指定目录和指定目录下的使用子目录
    uzaip  解压缩

    tar命令:

    -c 创建.tar格式的文件
    -x 解开.tar格式的文件
    -f 使用归档文件
    -v 显示详细信息
    -t 查看包内文件
    -j 使用baip2程序
    -z 使用gzip程序
    -p 打包时保留文件及目录的权限
    -P 打包时保留文件及目录的绝对路径
    -C 释放的目的地

    打包:
    对文件和目录打包和压缩(c)
    tar -cf file.tar file
    tar -czf file.tar.gz file
    tar -cjf file.tar.bz2 file
    查看包内容(t)
    a.tar-------->tar -tf a.tar
    a.tar.gz---->tar -tzf a.tar.gz
    a.tar.bz2-->tar -tjf a.tar.bz2
    对文件和目录解包(x)
    tar -xf file.tar -C 路径
    tar -xzf file.tar.gz -C 路径
    tar -xjf file.tar.bz2 -C 路径

    cpio命令:存取归档包中的文件

      -o    将文件拷贝打包成文件或者将文件输出到设备上
      -i   解包,将打包文件解压或将设备上的备份还原到系统
      -t   预览,查看文件内容或者输出到设备上的文件内容
      -v   显示打包过程中的文件名称。
      -d   解包生成目录,在cpio还原时,自动的建立目录
      -c   一种较新的存储方式

  • 相关阅读:
    codeforce 272B Dima and Sequence
    Codeforce 270D Greenhouse Effect
    codeforce 270C Magical Boxes
    codeforce 270B Multithreading
    图论--Dijkstra算法总结
    图论--(技巧)超级源点与超级汇点
    图论--Floyd总结
    ZOJ 3932 Handshakes
    ZOJ 3932 Deque and Balls
    ZOJ 3927 Programming Ability Test
  • 原文地址:https://www.cnblogs.com/yuezhimi/p/6792443.html
Copyright © 2011-2022 走看看