• Linux11_文件及目录以及其相关的组织命令


    Linux文件:
    普通文件:文本文件(.txt .doc .odt)、音频文件等等
    特殊文件:设备
    一切皆文件;这与Windows不同;


    Windows目录:
    C盘是硬盘的根目录(加入没有把C盘磁盘分区的话);
    H盘可能是光盘驱动器根目录;


    Linux有且只有一个根目录 /斜杠;
    根目录是最顶层的目录;

    Linux目录名可以包含空格,但一般不这么用;
    常用直属子目录:
    /bin            binary缩写,表示二进制文件,所有可执行文件都是二进制的,bin文件包含了会被所有用户使用的可执行程序;
    /dev           device 设备,外设;
    /etc            and so on等等;零碎东西,历史遗留
    /home       用户的私人目录,每个用户在home下都有私人目录
    /root          根用户的目录,比较特殊,有自己的目录,比较任性
    /media      表示媒体,可移动外设插入电脑时,linux可以让我们通过media这个子目录访问这些外设中的内容
    /mnt          表示挂载,mount,临时挂载一些装置,有点类似media
    /lib            库,表示被程序所调用的库文件,例如.so结尾的文件;windows下的库文件都是.dll结尾的
    /opt          optional application software package,可选的应用软件包,用于安装多数第三方软件和插件
    /sbin       表示系统二进制,多了个前缀system,系统级重要可执行程序
    /srv         表示服务,包含一些网络服务启动之后所需要取用的数据
    /tmp        表示临时,普通用户和程序,存放临时文件的地方
    /usr        Unix Software Resource,最庞大的目录,包含大量用户调用的程序;其名字类似etc,是历史遗留命名,类似Windows中C:Windows、C:Program Files
    /var        variable 动态的,可变的,var通常包含程序的数据比如日志文件,

    这种目录结构与命名形式,在类Unix操作系统中也类似;macOX目录结构也是从根目录开始的;

    不用硬背这些,使用中慢慢去理解即可;
    Linux文件系统结构像一个倒立的树;
    逐级分布,层叠包含;

    ================================================== 

    pwd              //显示当前所在路径

    根据当前提示符和pwd命令:获知当前所在目录位置;

    ==================================================
    which           //显示命令对应可执行程序的位置;一个命令其实是随时可调用的程序罢了;

    linux中可执行程序一般没有后缀的
    linux中可执行程序不都位于同一个位置中;

    ===================================================

    ls         列出文件和目录

    CentOS终端默认是有颜色标注的:
    一般来讲:
    蓝色 ->目录
    绿色 ->可执行文件
    红色 ->压缩文件
    浅蓝色->链接文件
    灰色 ->其他文件


    ls --coler=auto //开启颜色标注
    ls --coler=none //关闭颜色标注

    为了避免每次都要输入额外的参数,其实可以在一个配置文件里修改

    ls 常用的参数:
    -a 显示所有文件和目录,包括隐藏的;
    //注意不包含. ..;   . 表示当前目录, .. 表示上级目录;
    -A 和-a差不多,唯一区别是不列出.  ..;


    -l  是ls命令最常用的;列出每个文件或目录的详细信息;都有一行信息;

     

    详细信息行的解读:

    drwxr-xr-x. 文件权限
    2                链接数目
    grooovvve 文件所有者名称
    grooovvve 群组
    6               表示文件大小,单位byte
    日期
    最后是文件名

    额外参数:
    文件大小是以字节为单位的;不是太直观;
    -h 会使得文件大小适合人类阅读的,超过1000byte,会成为1kb
    -t 按文件最近一次修改时间排序
    ls 常用参数放在一起,效果是叠加的;

    ====================================================

    cd

    cd change directory 切换目录
    是最常用命令之一;
    命令格式:cd 要去的目录路径

    连续回退两个目录:

    回退一个目录:

    相对路径与绝对路径:

    绝对路径法切换目录:都是从/开始的;

    相对路径法切换目录:必须当前目录下有对应文件或目录;

    回到家目录的三种方法:

    1、cd /home/grooovvve   //绝对目录的方式
    2、cd ~                            //使用~
    3、cd                               //直接cd 不加参数最方便

    技巧:

    此外使用tab键会自动补全目录,防止手动输入路径时名字写错;

    ================================================

    du    统计目录大小

    显示目录包含的文件大小;
    深入遍历目录的子目录,统计所有文件的大小;

    相关参数: 

    du -h         //适合人类阅读,单位转换
    du -a        //显示文件和目录的大小
    du            //默认是只显示文件的大小
    du -s        //只想知道当前目录大小

     

    ===============================================

    cat和less命令

    只是显示文件内容,不能修改;
    cat 是concatenate的缩写,表示“连接和串联”
    cat 命令可以一次性在终端中显示文件的所有内容。
    用法: cat 要显示的文件路径
    cat 命令适合小文件显示
    cat -n //可以显示行号

    less 命令用于分页显示文件内容
    如果文件较大,cat会令人猝不及防
    相关快捷键:
    空格 前进一个屏幕的内容,和pgdown类似;
    回车 前进一行
    d键 前进半页
    b键 后退一页
    y键 后退一行
    u键 后退半页
    q键 停止,退出less命令

    注意linux中通常区分大小写
    shift+d 表示大写

    高阶快捷键:
    = 显示你在文件中位置
    h 显示帮助文档
    / 进入搜索模式,n跳转下一个符合项目,shift+n跳转上一个符合项目;

    more 和less类似,功能没有less那么强大
    more是老命令

    =================================================

    head 和tail命令

    显示文件的开头和结尾
    有点对立的关系
    head 显示文件开头几行
    tail 显示文件结尾几行

    head 默认情况下会显示文件的前10行
    tail 默认情况下会显示文件的尾10行

    还可以配合-n 数值;
    指定要显示几行
    例如   head -n 5 文件名 //显示文件的前5行

    另外tail还有很强大的功能:

    tail -f    //可以实时最终文件的更新

    如下图所示,可以看到光标闪烁

    默认情况下,是每个一秒检查文件更新;

    我们还可以手动设置这个检查的间隔:tail -f -s 4 文件名

    此外有个快捷键要注意一下:

    ctrl+C 中止大部分正在执行的终端命令

    ==================================================

    touch和mkdir命令

    用于创建文件和目录

    touch用于创建一个空白文件

    实际上linux没有一个命令是专门用来创建一个空白文件的;

    touch命令一开始的初衷是修改文件的时间戳,让系统以为文件是那个时候被创建或修改的;

    touch 命令如果后面文件不存在,就会创建一个新的;

    touch 命令可以创建多个文件,而且如果文件名包含空格的话,要注意使用引号;

    mkdir用于创建目录

    使用格式:mkdir 文件名

    -p参数
    递归创建目录结构

     

    ==================================================

    cp  拷贝文件或目录,类似于复制+粘贴

    cp  是copy的缩写,表示拷贝

    不仅可以拷贝单个文件,还可以拷贝多个文件;

    格式:cp  被拷贝文件 副本文件

    不一定要在同一目录下拷贝;

    运行cp new_file new_file_copy 可以看到多了一个文件;

    如果拷贝在其他目录,只需要把第二个参数换成目录名即可:

    cp new_file one/

    如果拷贝文件到别的目录,而且换个名字:

    拷贝目录:

    需要在命令之后加上-r 或者-R参数

    因为这是Recursive的缩写,表示递归

    使用通配符

    把当前目录以ha*开头的文件都拷贝到folder目录中;

    通配符很强大,可以提高效率;

    ==================================================

    mv 移动命令  移动文件,类似于剪切+粘贴

    mv 是英文move的缩写,表示移动;

    移动文件或者目录;

    重命名文件或目录;

    移动目录比较简单

     

    mv命令也可以配合通配符一起使用;

    mv命令还可以重命名文件;

    机制是移动后,文件的原名字变成新的名字,这就相当于重命名;

    ==================================================

    rm 命令 用来删除文件和目录

    rm可以删除 一个文件、多个文件,目录;

    删除一个文件:

    删除多个文件

    只要用空格隔开每个文件即可

     

    -i参数 向用户确认是否删除

    保险起见用rm删除文件时,使用-i参数;

    -f参数   强制删除,不会询问

    慎用

    -r参数  递归地删除

    rm -rf 极为危险!

    尤其是rm -rf  /          //这个直接把整个系统删掉了

    只有root用户能用这个命令;

    现在Linux系统一般都有保护机制;

    但是如果在/目录下 运行rm -rf /的话,就没有保护措施;

    ================================================

    ln命令 创建链接

    ln 类似于快捷方式,用于在文件之间创建链接;

    Linux有两种链接类型:

      物理链接、硬链接

      符号链接、软链接

    文件存储:

    大致来说,每个文件分为两个部分:文件名+文件内容

    文件名的列表是存储在硬盘的其他地方的;和文件内容分开存放的;这样方便Linux管理;

    其实每个文件有三部分:

    文件名、权限、文件内容;

    每个文件的文件内容被分配到一个标识号码,叫做inode;

    每个文件名都绑定到其文件内容(用inode标识);

    创建硬链接:

    使链接的两个文件,共享同一个文件内容;硬链接有缺陷,只能创建指向文件的硬链接,不能创建指向目录的硬链接;

    通过一些参数的修改,也能创建指向目录的硬链接,但是比较麻烦;

    软链接可以指向目录或文件。目录一般用软链接;

    创建一个硬链接

    ln  被硬链接的文件   硬链接文件

     使用ls -i 查看文件的inode

     

    对于硬链接来说,只有同时删除file1 与 file2,inode才会真正被删除;

    此外可以发现删除file2之后,ls -l中 详细信息行中 2变成1,说明指向该inode的文件剩下一个;

     

    软连接比较像Windows的快捷方式;

    创建软连接需要加上-s参数 s是symbolic的缩写;

    创建硬链接不需要任何参数;

    格式 ln -s file1 file2    //创建file1的软连接file2

    file2此时指向的是file1文件名,而不是像硬链接那样指向inode;

    而且可以看到软链接file2开头的字母变成了l,表示软连接;

    而且还可以看到1,而不是像硬链接那样是2;

     

    而且inode号是不一样的;

     

    对于软链接而言,删除file2对于file1来说没什么影响;

    但是如果删除file1,file2会变成死链接,不知道指向谁;

    变成红色了;

     

    此外软链接是可以指向目录的;

    ================================================

       

  • 相关阅读:
    Linux 文件隐藏属性-创建文件默认权限
    Linux 文件权限管理
    Linux 用户管理_用户相关配置文件详解
    Linux 压缩包管理
    vim 编辑器高级用法
    Linux ll查看文件属性详解-软硬链接详解
    安卓学习28
    安卓学习27
    安卓学习26
    安卓学习25
  • 原文地址:https://www.cnblogs.com/grooovvve/p/12439012.html
Copyright © 2020-2023  润新知