第二周内容


1、描述Linux发行版的系统目录名称命名规则以及用途。

    Linux系统基础目录的命名法则:

            -  严格区分大小写

            - 目录也是文件,在同一路径下,两个文件不能同名

            - 支持使用除 / 以外的任意字符

            - 最长字符不能超过255个字符

      Linux 根下目录及用途

               /bin  存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里

                /etc  配置文件

                /home 用户家目录

                /root 超级用户(系统管理员)的主目录

                /sbin 存放二进制可执行文件,超级权限用户才能访问

                /dev  设备文件

                /mnt  临时文件系统的安装点

                /boot 存放用于系统引导时使用的各种文件

                /lib  存放跟文件系统中的程序运行所需要的共享库及内核模块

                /var  用于存放运行时需要改变数据的文件

2. 描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

元数据信息包含:

    File:文件名

    Blocks:文件所占块个数

    IO Block:每个数据块的大小(单位:B)

    regular file:普通文件(此处显示文件的类型)

    Inode:文件的Inode号,文件的索引节点号

    Links:硬链接次数

    Access:权限

    Uid:(属主id/属主名)

    Gid:(属组id/属组名)

    Context:文件所在的环境

    Access:最近访问时间

    Modify:数据改动时间

    Change:元数据改动时间

    Creat/Birth:文件创建时间

查看文件的元数据的方法:

    stat命令: 查看文件的元数据

    语法:stat FILE…

    Stat  /etc/passwd

[root@dcy-test ~]# stat rm.sh

  File: ‘rm.sh’

  Size: 108      Blocks: 8          IO Block: 4096  regular file

Device: 801h/2049d Inode: 8460798    Links: 1

Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)  Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2019-12-31 11:56:37.908776011 +0800

Modify: 2019-12-31 11:56:29.836669331 +0800

Change: 2019-12-31 11:56:29.857669609 +0800

Birth: -

文件的三个时间戳详细介绍如下:

        atime:访问时间:读一次文件的内容,这个时间就会更新。比如more、cat等命令。ls、stat命令不会修改atime

mtime:修改时间:修改时间是文件内容最后一次被修改的时间。比如:vim操作后保存文件。ls -l列出的就是这个时间

ctime:状态改动时间。是该文件的inode节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。文件的时间戳修改需要用touch命令进行修改,touch命令格式如下:

**touch命令: touch - change file timestamps**

      touch [OPTION]… FILE… 需要注意的是Changetime无法指定进行修改,在atime以及mtime修改后,ctime自动进行更新。

  -c: 指定的文件路径不存在时不予创建;

  -a: 仅修改access time;

  -m:仅修改modify time;

  -t STAMP

  [[CC]YY]MMDDhhmm[.ss]

[root@dcy-test ~]# touch -a 20200303 rm.sh

[root@dcy-test ~]# stat rm.sh

  File: ‘rm.sh’

  Size: 108      Blocks: 8          IO Block: 4096  regular file

Device: 801h/2049d Inode: 8460798    Links: 1

Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)  Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2020-03-05 10:24:54.669800961 +0800

Modify: 2019-12-31 11:56:29.836669331 +0800

Change: 2020-03-05 10:24:54.669800961 +0800

Birth: -

3. 总结软硬连接的区别,并用实例操作说明

  ​ 软连接:其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(和windows 下的快捷方式的接近的意思)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录”)

  ​ 硬连接:硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件是不会建立inode的,ls -i 文件查看indoe,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

| 软连接与硬连接的区别 : 

      软连接: 可跨设备;会创建新的inod;软链接的访问属性是l,且访问权限不能设置,只能是777,真正的权限取决于源文件;不能对目录进行创建 ;移动或删除目标文件或目录,连接失败 。
     硬连接: 不可跨设备; 不会创建inode,和原文件inode一样 ;硬链接的访问属性和源文件一模一样;能对目录进行创建;移动或删除目标文件或目录,不影响连接文件

   [root@dcy-test ~]# touch 1.txt

  [root@dcy-test ~]# ll  1.txt

  -rw-r--r--. 1 root root 0 Mar  5 11:33 1.txt

  [root@dcy-test ~]# ln 1.txt /tmp/2.txt

  [root@dcy-test ~]# ll 1.txt

  -rw-r--r--. 2 root root 0 Mar  5 11:33 1.txt

  [root@dcy-test ~]# ll /tmp/2.txt

  -rw-r--r--. 2 root root 0 Mar  5 11:33 /tmp/2.txt

  [root@dcy-test ~]# ls -i 1.txt                            #查看文件inode存储块

  8758773 1.txt

  [root@dcy-test ~]# ls -i /tmp/2.txt

  8758773 /tmp/2.txt

  [root@dcy-test ~]#


  [root@dcy-test ~]# ln -s a.txt b.txt

  lrwxrwxrwx. 1 root root 5 Mar  5 11:40 b.txt -> a.txt

  [root@dcy-test ~]# echo "1" > a.txt

  [root@dcy-test ~]# cat a.txt

  1

  [root@dcy-test ~]# cat b.txt

  1

  [root@dcy-test ~]# ll b.txt

  ```

4.linux 上文件管理类命令有哪些,其常用 的使用方面及其相关示例演示

1.  ls  列出指定目录下的内容格式

  ls [option] [file] 

    ​ option: -a  所有文件包括隐藏文件

    ​       -A:显示除.和..之外的所有文件

    ​     -i  查看文件inode号

    ​     -l,--long:显示文件的详细属性信息 等于  ll 命令

    ​   -h:对文件大小进行单位换算,可能影响精度

      -d:查看目录本身而非其内部的文件

      -r:逆序显示文件

      -R:递归显示文件

    file

    ​ file 文件1  查看文件的属性  

    [root@dcy-test ~]# file a.txt

    a.txt: ASCII text

    [root@dcy-test ~]# file /etc/passwd

    /etc/passwd: ASCII text

    cat  文件    #查看文件内容,从开显示至尾部      -n:给显示的文本行编号

    tac  文件    #查看文件内容,从尾部显示至头部,倒序查看;

    head  文件    #查看文件头部开始默认显示10行

    ​ -n #:显示文本头n行内容 

      例:head -5 /etc/passwd  == head -n5 /etc/passwd --显示文件头5行内容

    tail  显示文本内容,默认显示后10行

    ​ 格式:tail [OPTION]... [FILE]...

    -n #:显示文本后#行内容

    -f:查看文件尾部内容结束后不退出,跟随显示新增的行

      例:tail -8 /etc/passwd --显示文件后8行内容

    cp  源文件  目标文件  复制文件工具

    ​ 格式:单源复制:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)

       多源复制:cp [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)

    ​      -i:交互式复制,即覆盖前提醒用户确认

    ​        -f:强制覆盖目标文件

    ​        -r,-R:递归复制目录

    ​        示例:cp -if /data/[1-3].txt /data/test    #test必须为目录,把三个文件一起复制到test中

    ​ cp /tmp/1.txt /tmp/a.txt  /data/

    ​        cp -r /data /practice      #把data目录及目录下的内容一起复制到practice中

    mv  单个文件或多个文件    单个文件或目标目录

    ​ 源文件是多个文件时,目标文件应为目录

    ​ mv  /tmp/1.txt /tmp/a.txt  /data/

    rm  [选项] [文件或目录]

    ​ -r  表示删除目录 ;  -f  强制删除不提醒;- i  提示,默认已加了-i选项;

    ​     rm -rf  /tmp/cp   

    mkdir [选项] 目录名  创建目录命令    -p: 递归创建

  [root@dcy-test ~]# mkdir /tmp/cp ; mkdir  -p /tmp/a/{a,b}

  [root@dcy-test ~]# mkdir -p /tmp/test/{a,b}/{c,d}

  [root@dcy-test ~]# tree /tmp/test/

    /tmp/test/

    ├── a

    │   ├── c

    │   └── d

    └── b

        ├── c

        └── d

    cd    切换目录命令

    ​ 示例:cd ..:切换到上级目录

        cd ~:切换回自己的家目录

        cd -:在上一次目录与当前目录直接来回切换

​        pwd:显示当前目录

5.复制/etc/profile 至/tmp目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

[root@dcy-test ~]# cp /etc/profile /tmp/

[root@dcy-test ~]# sed -i 's/^[[:space:]]\+//g' /tmp/profile # +表示前面[]里的重复1次或多次

[root@dcy-test ~]# cat /tmp/profile

6. ###### 在vim中设置tab缩进为4个字符

  ```

  vim /etc/vimrc

  set tabstop=4   

  ```

你可能感兴趣的:(第二周内容)