• Linux系统学习之文件管理


    Linux目录分布通常是树形,所以它的结构又称为目录树。

    一、文件和目录管理

    [root@Cfhost-170820-UCNK /]# cd /
    [root@Cfhost-170820-UCNK /]# ls
    aquota.group  aquota.user  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
    
    /bin  常见的用户指令
    /boot 内核和启动文件
    /dev 设备文件
    /etc 系统和服务配置文件
    /home 系统默认的普通用户的家目录
    /lib 系统函数库的目录
    /lost+found ext3文件系统需要的目录,用于磁盘检查
    /mnt 系统加载文件系统时常用的挂载点
    /opt 第三方软件安装目录
    /proc 虚拟文件系统
    /root root用户的家目录
    /sbin 存放系统管理命令
    /tmp 临时文件的存放目录
    /usr 存放与用户直接相关的文件和目录
    
    绝对路径和相对路径
    在linux目录下每个目录或文件都可以从根目录处开始寻找,比如/usr/local/src目录.这种从根目录开始的全路径被称为"绝对路径",绝对路径一般以 "/" 开头。
    
    通常如果想要确认当前所在目录,可以使用pwd命令查看
    
    特殊目录(.)和(..)属于相对路径
    

     二、文件的相关操作

    Linux遵循着一切皆文件的规则,对Linux配置时,很大程度上就是对文件的操作过程。
    
    1.创建文件
      touch 文件名
    
    2.删除文件
      rm 文件名
      执行该命令时,系统会询问是否删除,按y删除,按n将不会删除该文件。
    3.移动或重命名文件
    
    mv 目标文件路径 将要移到的路径
    例如:我要将/root/mysql移到/usr/local下
    mv /root/mysql /usr/local/ 
    
    mv 旧文件名 新文件名
    例如:我要将test.txt修改为test2.txt
    mv test.txt test2.txt
    修改文件名
    
    
    4.查看文件内容
    cat 文件名
    
    5.查看文件头
    head -n 20 文件名
    查看该文件前20行内容
    
    6.查看文件尾
    例如: var/log/message文件是默认的系统日志文件,系统在运行中将会有大量的日志写入这个文件中,可以使用如下命令,一旦有新的日志内容写入,该命令会立即将新内容显示出来。
    
    7.文件格式转换:dos2unix
    说的是linux和windows可以通过文件共享的方式共享文件。
    至于如何使用,我没有用过。
    
    tail -f /var/log/message

    三、目录的相关操作

    1.进入目录:cd
    2.创建目录:mkdir 目录名
    3.删除目录:rmdir 目录名 和rm 目录名(注意区分这两个删除目录的命令,rmdir使用注意,当它要删除的文件里面,存在一个目录时,会导致删除失败,也就会报下面这个错误:
    rmdir: failed to remove `testoop': Directory not empty
    
    要想解决需将你要删除的目录下的空目录删除,然后在删除该目录,就可以了。
    
    当然要删除可以直接删除根本不需要这样做,只需rm -r 即可删除或者rm -rf。
    rm -r 目录名 这样删除的不好点是每次删除都要询问一次是否确定删除,所以通常我们使用rm -rf 目录名,
    不过注意,使用这个命令要非常小心,因为一旦删除就几乎不可能恢复,另外root用户在Linux系统中的权限非常高,甚至可以使用rm -rf 命令来删除全部的系统文件,这样做的后果是非常严重的,所以我们使用这个命令一定要非常小心。
    
    4.文件和目录的复制:cp 原文件 复制文件
    例如:
    我们想将/usr/local/tomcat 复制到/root下
    就可以使用如下命令: cp /usr/local/tomcat /root/即可。
    
    5.文件时间戳
    记住在Linux下目录也是一种文件,所以如果touch一个目录,这个目录的创建时间也会被更新。
    不论是哪种系统,几乎所有的程序都会读写系统文件,默认情况下,一旦发生写文件操作,该文件的时间戳将会立刻得到更新。因此可以利用这种特性来有选择地备份一些文件(又称差异化备份)
    
    6.文件和目录权限
    通过ll 或ls -l也可以看到所有文件权限,ls -al可以列出隐藏文件,但ll和ls -l不可以。
    文件的权限无非是读写执行(rwx)
    通过chmod a+x 文件A 即可赋予文件A的执行权限
    (读写权限通常是系统默认的)
    改变文件拥有者:chown 用户名 文件名
    例如:我要将test.sh文件拥有者改变,可通过执行该命令 chown 用户名 文件名 即可改变
    chown java test.sh
    该命令还可以同时更改文件的用户组.
    chown : java test.sh
    以上两个改变文件拥有者命令,可以合并为chown java:java test.sh
    
    7.改变文件拥有组
    chgrp 组名 文件名
    
    8.文件特殊属性:SUID/SGID/Sticky(看的不是特别明白,待续)
    
    9.查看文件类型
    
    file 文件 即可查看文件的类型
    10.一般查看:find
    find / -name 查找的文件名或目录
    
    数据库查找:locate
    
    与find不同,locate依赖于一个数据库文件,linux会默认每天检索一下系统中的所有文件,然后将检索到的文件记录到数据库中。
    
    执行locate 文件或目录名时,要先执行updatedb,否则会报错。
    
    报错信息如下:
    locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
    
    注意:使用locate查找文件有一个弊端,那就是当你查找后删除了,第二次仍然可以找到,所以在此之前必须手动执行updatedb命令。
    

     四、文件压缩和打包

    1.gzip/gunzip
    gzip 文件名 
    可以将文件打成gz的压缩包
    解压命令为:gunzip 文件名
    2.tar 
    tar -zcvf 文件名.tgz 压缩
    tar -zxvf 文件名.tgz 解压
    3.bzip
    
    例如:
    bizp2 install.log
    ls -l install.log.bz2
    bzip2 -d install.log.bz2
    
    4.cpio
    
    备份:find /etc -name *.conf | cpio -cov > /tmp/conf.cpio
    
    还原:cpio --absolte-filename -icvu < /tmp/conf.cpio
     
    
  • 相关阅读:
    实验4:开源控制器实践——OpenDaylight
    实验3:OpenFlow协议分析实践
    实验2:Open vSwitch虚拟交换机实践
    第一次个人编程作业
    SDN实验1:SDN拓扑实践
    第一次博客作业
    LeetCode-1290.Convert Binary Number in a Linked List to Integer
    面试题 02.02. Kth Node From End of List LCCI
    剑指 Offer 24. 反转链表
    剑指 Offer 06. 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/youcong/p/7802145.html
Copyright © 2020-2023  润新知