7-28-文件管理

1.stat命令和时间戳 详解

背景:       
        在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道
        文件的创建时间。但如果
        文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创
        建时间;如果文件创建后,
        没有被读取过,那么访问时间=创建时间,这个基本不太可能。
时间戳:每一个文件都有3中时间(称为时间戳timestamps),对这3种时间,很多时候容易混淆不清。
            Access time(atime):是指查看文件(内容)的时间,所谓取用,常见的操作有:使用编辑器查看文件内
        容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运
        用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,均衡改变文件的Access time.  
            Modify time(mtime):是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的
        方式)或存盘的操作,就会
            改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time          
        Change time(ctime):是指文件属性(元数据)或文件位置改动的时间,如使用chmod,chown,mv指令集使
        用ln做文件的硬是连接,就会改变文件的Change time.  
                
stat命令:查看文件状态
    功能说明:显示inode内容
    语  法:stat [文件或目录]
    补充说明:stat以文字的格式来显示inode的内容
        [root@localhost ~]# stat install.log
          File: "install.log"
          Size: 47326      Blocks: 104        IO Block: 4096   普通文件
        Device: 803h/2051d Inode: 915714      Links: 1
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
        Access: 2016-07-19 19:19:11.179998361 +0800
        Modify: 2016-07-19 19:38:08.996997327 +0800
        Change: 2016-07-19 19:38:31.687997301 +0800
        
    stat -f 显示了有关文件系统(而非文件)的信息
        [root@localhost testdir]# stat -f python_dir/getFTPdir.py 
          File: "python_dir/getFTPdir.py"
            ID: 78f86a0ed0592c40 Namelen: 255     Type: ext2/ext3
        Block size: 4096       Fundamental block size: 4096
        Blocks: Total: 4819016    Free: 3886210    Available: 3639746
        Inodes: Total: 1234576    Free: 1128101

2.touch命令:刷新时间

    touch命令用来修改文件时间戳,或者新建一个不存在的空文件
    用法:touch [OPTION]... FILE...
    选项:
        -a: 仅改变 atime
        -m: 仅改变 mtime
        -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同(touch -r a b 将b的日期设置成a的)
        -t: 使用指定的日期时间,而非现在的时间。[[CC]YY]MMDDhhmm[.ss]
        -c: 如果文件不存在,则不予创建

3.cp命令

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
选项
    -i:交互式
    -r, -R: 递归复制目录及内部的所有内容;
    -a: 归档,相当于-dR --preserv=all
    -d: --no-dereference --preserv=links 不复制原文件,只复制链接名
    --preserv[=ATTR_LIST]
         mode: 权限
         ownership: 属主属组
         timestamp:
         links
         xattr
         context
         all
    -p: 等同--preserv=mode,ownership,timestamp    
    -v: --verbose
    -f: --force

cp.png

 4.alias别名

        为了方便频繁使用某一命令,Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,这样一来,以后只需输入一个简短的别名就可以达到同样的作用

定义:  
        显示当前shell进程所有可用的命令别名    
                ~]#alias
        定义别名NAME,其相当于执行命令VALUE
            ~]#alias NAME='VALUE'
        注:在命令行中定义的别名,仅对当前shell进程有效,要想永久有效,要定义在配置文件中:
                仅对当前用户: ~/.bashrc
                对所有用户有效: /etc/bashrc
        编辑配置完成后,要重读配置文件,采用. /PATH/FILE或source /PATH/FILE
删除:
        unalias 别名名称
            -a 删除所有别名
            
若别名和命令名称相同,要执行原始命令,不执行别名:
        \COMMAND
        'COMMAND'
        /PATH/COMMAND (外部命令可用)

5.mv移动或重命名

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
        -i: 交互式
        -f: 强制

6.rm删除

rm [OPTION]... FILE...
      常用选项:
      -i: 交互式
      -f: 强制删除
      -r: 递归
      --no-preserve-root / 强制删除根

7.目录操作

tree 显示目录树
        -d: 只显示目录
        -L level:指定显示的层级数目
        -P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
        -p: 存在于不报错,且可自动创建所需的各目录;
        -v: 显示详细信息
        -m MODE: 创建目录时直接指定权限;
rmdir 删除空目录
        -p: 递归删除父空目录
        -v: 显示详细信息

8.file命令

检查文文件类型,然后确定适当的开放命令或应用程序使用
file [options] <filename>...
Option:
      -b列出文件辨识结果时,不显示文件名称。    
      -c详细显示指令执行过程,便于排错或分析程序执行形    
      -f列出文件中文件名的文件类型   
      -F使用指定分隔符号替换输出文件名后默认的”:”分隔符  
      -i输出mime类型的字符串   
      -L查看对应软链接对应文件的文件类型    
      -z尝试去解读压缩文件的内容
      --help显示命令在线帮助

 9.inode和链接 详解

inode和链接.png

 软链接其他特点:

软链接以l开头
软链接权限为777
软链接文件大小为原文件路径字符数

概念

1.linux上目录结构

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区, OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
     b: block device,块设备,随机访问
     c: character device,字符设备,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
     /bin/主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free等。
     /sbin:放置一些网路管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba等
     /lib: 32位使用
     /lib64:只存在64位系统
     /include: C程序的头文件(header files)
     /share:结构化独立的数据,例如doc, man等
     /local:第三方应用程序的安装位置
/var: variable data files
    /cache: 应用程序缓存数据目录
    /lib: 应用程序状态信息数据
    /local:专用于为/usr/local下的应用程序存储可变数据;
    /lock: 锁文件
    /log: 日志目录及文件
    /opt: 专用于为/opt下的应用程序存储可变数据;
    /run: 运行中的进程相关数据;通常用于存储进程pid文件
    /spool: 应用程序数据池
/tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux, selinux相关的安全策略等信息的存储位置
centos7目录变化:
    /bin转移到/usr/bin;/sbin转移到/usr/sbin;/lib转移到/usr/lib;/lib64转移到/usr/lib64.
综述:如果这是用户和管理员必备的二进制文件,就会放在/bin。如果这是系统管理员必备,但是一般用户根本不会用到的二进
制文件,就会放在 /sbin。相对而言。如果不是用户必备的二进制文件,多半会放在/usr/bin;如果不是系统管理员必备的工
具,多半会放在/usr/sbin。

2.linux上命令组成

二进制程序: /bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
库文件: /lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64
配置文件: /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件: /usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc

3.文件类型

-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket

 4.绝对路径和相对路径

绝对路径:
        以正斜杠(/)开始
        完整的文件的位置路径
        从根下开始定义路径
 相对路径:
         不以斜线开始
         指定相对于当前工作目录或某目录的位置
         .表示当前目录
         ..表示上级目录
                 
改变目录:
        到上一级目录:cd ..
        为了你的主目录:cd
        到以前的工作目录:cd -
        
环境变量:
        PWD:保存了当前目录路径
        OLDPWD:上一次所在目录路径

 5.文件名通配

* 匹配零个或多个字符 
? 匹配任何单个字符 
~ 当前用户家目录 
~username 用户家目录 
~+ 当前工作目录 
~- 前一个工作目录 
[0-9] 匹配一个数字范围 
[a-z]:大写和小写字母 
[A-Z]:大写字母
        [wxc]:匹配列表中的任何的一个字符
        [^wxc]:匹配列表中的所有字符以外的字符
        
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:空格
[:punct:]:标点符号

原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/26621

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-02 10:58
下一篇 2016-08-02 10:58

相关推荐

  • 推荐CentOS Linux下的分区及格式化工具

    简介 伴随着科技的飞速发展,越来越多的企业对于服务器的稳定要求越来越高,越来越多的企业开始采用linux系统来部署自己的服务,以求高效的稳定性,当然任何操作系统都需要一个最基本的基础,那就是硬盘,及硬盘分区,今天来给大家推荐几款CentOS Linux下的分区工具及如何查看分区环境,也会给大家来带一些硬盘的基本知识 一、硬盘的接口类型 分区肯定是对硬盘进行分…

    2017-03-19
  • 第十二周课堂练习下

    6、在LAMP架构中,请分别以php编译成httpd模块形式和php以fpm工作为独立守护进程的方式来支持httpd,列出详细的过程 1.模块方式安装可见第三节 2.fpm独立守护进程安装 [root@LAMP setup]# tar -xf  php-5.6.23.tar.bz2  ##编译&nb…

    Linux干货 2017-01-03
  • N23-卡卡琦-第一周

    1、描述计算机的组成及其功能 硬件: 控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等;运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理;存储器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息;输入输…

    Linux干货 2016-11-16
  • 第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# awk -F: '/^(root|user1|fedora)/{print $1,"shell is",$NF}' /etc/pass…

    Linux干货 2016-09-15
  • yum安装报错

    我的系统是centos 6.8 x86 安装bind时出错如下: [root@Ams ~]# yum install bind -y Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from…

    Linux干货 2016-08-02
  • linux文件系统分类

    1、linux文件系统分配策略: 块分配(blockallocation)和扩展分配(extentallocation): 块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。 每一次文件扩展时,块分配算法就需要写入文件块的结构信息,也就是meta-dada。meta-dat…

    Linux干货 2017-05-02