1.日期,时间命令 date (data这是数据)

1.date -s “2030/5/14”              #修改日期

2.date -s “2030/5/14 23:45:12”#修改时间

3.clock -w                              #写到bios永久生效

(工作中服务器的时间是定时和互联网时间同步的,自己配置定时同步(设置搭建时间服务器))

[root@localhost ~]# date -s "2030/5/14"      #修改日期
Tue May 14 00:00:00 CST 2030
[root@localhost ~]# date
Tue May 14 00:00:16 CST 2030
[root@localhost ~]# date -s “2030/5/14 23:45:12”   #修改时间
date: the argument ‘23:45:12”’ lacks a leading '+';
when using an option to specify date(s), any non-option
argument must be a format string beginning with '+'
Try 'date --help' for more information.
[root@localhost ~]# clock -w    #写到bios永久生效

学习笔记-第10天-命令合集9_硬链接

[root@localhost ~]# date +%F
2030-05-14
[root@localhost ~]# date +%Y
2030
[root@localhost ~]# date +%m
05
[root@localhost ~]# date +%d
14
[root@localhost ~]# date +%Y-%m-%d
2030-05-14
[root@localhost ~]# date +%H
00
[root@localhost ~]# date +%M
07
[root@localhost ~]# date +%S
45
[root@localhost ~]# date +%H-%M-%S
00-08-21
[root@localhost ~]# date +%H:%M:%S
00:09:08
[root@localhost ~]# date +%Y-%m-%d\ %H:%M:%S
2030-05-14 00:10:17
[root@localhost ~]# date +%F\ %T
2030-05-14 00:10:47
[root@localhost ~]# date +%w     #表示星期
2

学习笔记-第10天-命令合集9_文件系统_02

-d 显示时间

过去的时间(- 表示过去)

[root@localhost ~]# date +%F -d "-3day"
2030-05-11
[root@localhost ~]# date +%F -d "-3month"
2030-02-14
[root@localhost ~]# date +%F -d "-3year"
2027-05-14
[root@localhost ~]# date +%F -d "-24hour"
2030-05-13
[root@localhost ~]# date +%F -d "-1440min"
2030-05-13
[root@localhost ~]# date +%F -d "-86400sec"
2030-05-13

学习笔记-第10天-命令合集9_数据_03

未来的时间(+ 表示未来)

[root@localhost ~]# date +%F -d "+3day"
2030-05-17
[root@localhost ~]# date +%F -d "+3month"
2030-08-14
[root@localhost ~]# date +%F -d "+3year"
2033-05-14
[root@localhost ~]# date +%F -d "+24hour"
2030-05-15
[root@localhost ~]# date +%F -d "+1440min"
2030-05-15
[root@localhost ~]# date +%F -d "+86400sec"
2030-05-15

学习笔记-第10天-命令合集9_数据_04

2.企业级打包案例

案例1:每天打包/etc/目录,到/backup目录备份,要求压缩包的名字按照每天的日期命名。

1) 知识点

$()和``反引号,里面都是放命令,可以作为路径,文件名的一部分。

2) 测试

[root@localhost ~]# echo $(date +%F)
2030-05-14
[root@localhost ~]# echo `date +%F`
2030-05-14

学习笔记-第10天-命令合集9_硬链接_05

3) 练习

[root@localhost ~]# tar zcf /tmp/etc_$(date +%F).tar.gz /etc
tar: Removing leading `/' from member names
[root@localhost ~]# ls /tmp/
a.hosts    etc_2030-05-14.tar.gz  file3  local.tar.gz   pai.tar.gz
a.tar.bz2  file1  file4  local.tar.gz.  systemd-private-49796456568140c5bdc4e13507328a57-chronyd.service-tox84l
dir        file2  file5  oldboy         systemd-private-676006513dc04dfeaf49d28c2b2adc5e-chronyd.service-N8o7Zn

学习笔记-第10天-命令合集9_硬链接_06

4) 解答

[root@localhost ~]# ls -ld /etc
drwxr-xr-x. 74 root root 8192 May 24  2023 /etc
[root@localhost ~]# mkdir /backup -p
[root@localhost ~]# ls -ld /backup/
drwxr-xr-x 2 root root 6 May 14 00:33 /backup/
[root@localhost ~]# tar zcf /backup/bak_etc_$(date +%F).tar.gz /etc
tar: Removing leading `/' from member names
[root@localhost ~]# ls /backup/
bak_etc_2030-05-14.tar.gz

学习笔记-第10天-命令合集9_硬链接_07

案例2:查找/etc下扩展名是.conf的所有文件,打包备份到/backup,文件名包含日期。

find+tar组合

(1) 查找/etc下扩展名是.conf的所有文件

find /etc/ -name "*.conf"

[root@localhost ~]# find /etc/ -name "*.conf"
/etc/resolv.conf
/etc/pki/ca-trust/ca-legacy.conf
/etc/yum/pluginconf.d/fastestmirror.conf
/etc/yum/pluginconf.d/langpacks.conf
/etc/yum/protected.d/systemd.conf
/etc/yum/version-groups.conf
/etc/asound.conf
/etc/logrotate.conf
/etc/dracut.conf
/etc/yum.conf
/etc/depmod.d/dist.conf
/etc/modprobe.d/firewalld-sysctls.conf
/etc/modprobe.d/tuned.conf
/etc/modprobe.d/dccp-blacklist.conf

学习笔记-第10天-命令合集9_文件系统_08

(2) 解答

方法1:

tar zcf /backup/conf_bak_$(date +%F) $(find /etc/ -name "*.conf")

[root@localhost ~]# tar zcf /backup/conf_bak_$(date +%F) $(find /etc/ -name "*.conf")
tar: Removing leading `/' from member names

方法2:

find /etc/ -name "*.conf"|xargs tar zcf /backup/conf_bak_$(date +%F)

[root@localhost ~]# find /etc/ -name "*.conf"|xargs tar zcf /backup/conf_bak_$(date +%F)
tar: Removing leading `/' from member names

学习笔记-第10天-命令合集9_文件系统_09

3.文件核心 属性知识

1. 什么是索引节点(inode)

      中文意思是索引节点(index node)

      是磁盘上的一块[存储空间]。

   一个inode大小256字节。

   看到形态是一个串数字。

2.索引节点作用

   存储文件的属性信息(大小、用户、组、修改时间  ls -1的信息都在里面放着)。

   还存放一个重要的东西,指向文件真正实体的位置信息 (指针)

3.inode是怎么产生的?

1)买回来磁盘,要使用的4个步骤。

(1)分区(打隔断),c,d,e/ sdal/sda2

(2) 格式化(装修),创建文件系统。

   什么是文件系统?组织和存储数据的一种机制。(装修风格)

    (3)挂载(搞个门搞个窗户)

    (4)使用(拎包入住)。

2) inode是在磁盘格式化,创建[文件系统]的时候产生的。

    Linux文件系统ext4,xfs;windows文件系统,ntfs,fat32

    创建[文件系统]的时候就会生成inode和block.

    inode和block都是磁盘空间的组成。

数据分为两种形式:

   1)女生实体 称之为真正的数据。

    2)女生属性信息,(身高,体重,年龄)。元数据: 数据的数据信息。

    找女生:先要获取元数据,在需要数据。

    元数据:要放在inode里。

    真正的数据:要放在block里。

4.inode的特点:

  1)是文件的唯一标识(身份证)。

  2)大小256字节。

  3)存放文件属性信息及指向文件所在位置信息。

  4)创建文件的时候就分配inode。

  5)一个文件有且只有一个inode (分区或磁盘内)。

  6)多个文件有相同的inode,是同一个文件的不同文件名。

 这样的文件被称为硬链接文件。

5.Linux系统读取文件的原理:学习笔记-第10天-命令合集9_文件系统_10

创建文件。/oldboy.log

1.文件名放到/下block里。

2.分配到inode(256字节),放文件属性。

3.分配block,放文件内容(多个block)。

6.企业生产案例: No space left on device问题企业案例

No   space left   on device

没有 空间 剩余   在设备上

windows通常是block满了。

磁盘满有两种情况:

1. inode满了。

2.block满了。

任意之一不够用空间就会提示No space left on device

一个电影40G,属性占一个inode,100万个block (单个block4K)。

磁盘存储的都是大文件这个时候一定block不够用。

磁盘存储的都是小文件(低于block大小的文件)这个时候一定inode不够用。

分区在格式化的时候inode多,还是block多?为什么?

解答: block多

          工作中磁盘里的文件大部分都是大于4K,所以格式化时候,系统自动安排适合业务场景            的分配模式。

一个文件至少是一个inode,消耗inode是基本就是一对一。消耗block是1对多。

block介绍:

1)存放文件实体内容的空间。

2) 默认大小1,2,4K。

3)一个block只能被一个文件占有,不能放两个文件。

   如果文件大小0.1K,也会占一个block。剩余3.9K浪费了。

4)block是文件系统存储大小的基本单位。

           如果文件较大,block就是大点好,读数据是按block读取,block是4K,一次读4K。如             果文件小,

           分布式文件系统,block可能到64K

Block的特点如下:

磁盘读取数据是按Block为单位读取的。

每读取一个Block就会消耗一次磁盘I/0 (input/output 磁盘读写)

若文件比较大,一个文件可能占用多个Block。

若文件比较小,一个Block剩余空间会被浪费,无论内容有多小。

和磁盘block,inode有关的命令

1) 查看文件inode

[root@localhost ~]# ls -li
total 32
135116374 -rw-r--r-- 1 root root  74 May 24  2023 ab.txt
135116371 -rw-r--r-- 1 root root   8 May 24  2023 a.txt
135116375 -rw-r--r-- 1 root root  87 May 24  2023 b.txt
67118104 drwxr-xr-x 2 root root   6 May 23  2023 dir
          539794 drwxr-xr-x 2 root root   6 May 23  2023 dir1
          67109271 drwxr-xr-x 2 root root   6 May 23  2023 dir2
135116367 drwxr-xr-x 2 root root   6 May 23  2023 dir3
202163968 drwxr-xr-x 2 root root   6 May 23  2023 dir4
          539797 drwxr-xr-x 2 root root   6 May 23  2023 dir5
135116365 -rw-r--r-- 1 root root   0 May 23  2023 oldboy
134320002 -rw-r--r-- 1 root root 104 May 24  2023 oldboy.txt
135116360 -rw-r--r-- 1 root root  30 May 24  2023 oldgirl.txt
135116370 -rw-r--r-- 1 root root   0 May 23  2023 seq
135116368 -rw-r--r-- 1 root root  21 May 24  2023 seq.txt
135116369 -rw-r--r-- 1 root root  74 May 24  2023 test.txt
135116373 -rw-r--r-- 1 root root  74 May 24  2023 u.txt

学习笔记-第10天-命令合集9_硬链接_11

2)查看磁盘和分区的inode

[root@localhost ~]# df -i
Filesystem       Inodes IUsed    IFree IUse% Mounted on
devtmpfs         121772   364   121408    1% /dev
tmpfs            124459     1   124458    1% /dev/shm
tmpfs            124459   676   123783    1% /run
tmpfs            124459    16   124443    1% /sys/fs/cgroup
/dev/sda2      52325888 34034 52291854    1% /
/dev/sda1        102400   326   102074    1% /boot
tmpfs            124459     1   124458    1% /run/user/0

学习笔记-第10天-命令合集9_数据_12

3)查看磁盘和分区的大小(block)

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M   45M  443M  10% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda2       100G  1.6G   99G   2% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs            98M     0   98M   0% /run/user/0

学习笔记-第10天-命令合集9_文件系统_13

什么情况会导致inode满?

1) 小文件特别多的时候。

2) 多数情况下是基于日常Linux定时任务crond配置不当导致的

企业生产案例:No space left on device问题企业案例

实践:

环境准备,命令集合如下:

mkdir -p /app/logs                                              #创建用于挂载的目录。

dd if=/dev/zero of=/dev/sdc bs=8K  count=100   #创建指定大小的文件。

mkfs.ext4 /dev/sdc                                              #格式化。

mount -o loop /dev/sdc /app/logs                       #-挂载。

df -h                                                                  #检查挂载结果。

链接:

1.链接可分为两种:一种为硬链接 (Hard link),另一种为软链接 (Soft link)。

2.命令是ln:

如果使用1n -s创建链接则为软链接,软链接文件的文件类型为l(字母L)。

创建硬链接语法: “ln 原始文件 目标文件”(注意空格)。

创建软链接语法: “ln -s 原始文件 目标文件”(目标文件不能事先存在)。

1.什么是硬链接?

1)具有[相同索引节点号]的文件,互相称之为硬链接文件

2)具有[相同索引节点号]的文件,指向同一个文件实体。

2.硬链接文件作用:

用于备份,防止误删文件。

3.找一找互为便链接的文件。

.和当前目录互为硬链接文件,点和当前目录是一个目录?可以

..和上一级目录互为硬链接文件。

特征:索引节点相同。

实践:

[root@localhost ~]# pwd
/root
[root@localhost ~]# cd .
[root@localhost ~]# cd ~
[root@localhost ~]# cd ./
[root@localhost ~]# cd /root
[root@localhost ~]# ls -lid . ~ ./ /root
134320001 dr-xr-x---. 8 root root 4096 May 24  2023 .
134320001 dr-xr-x---. 8 root root 4096 May 24  2023 ./
134320001 dr-xr-x---. 8 root root 4096 May 24  2023 /root
134320001 dr-xr-x---. 8 root root 4096 May 24  2023 /root
[root@localhost ~]# ls -lid ../
64 dr-xr-xr-x. 20 root root 4096 May 14 04:29 ../

学习笔记-第10天-命令合集9_硬链接_14问题:上面20(21)数字代表/的硬链接数,请找出上面20(21)数字的所有硬链接.

        1)所有/下子目录下的..都是。

         2)当下目录的.

         3)自身 /

[root@localhost etc]# ls -lid / /. /root/.. /home/.. /opt/.. /etc/.. /boot/..
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /.
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /boot/..
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /etc/..
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /home/..
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /opt/..
64 dr-xr-xr-x. 21 0 0 4096 May 15 00:49 /root/..

学习笔记-第10天-命令合集9_数据_15

4. 硬链接实践:

ln源文件   硬链接文件(不能事先)

[root@localhost ~]# mkdir /oldboy -p
[root@localhost ~]# touch /oldboy/oldboyfile    #源文件
[root@localhost ~]# cd /oldboy
[root@localhost oldboy]# ln oldboyfile oldboyfile_hard_link
[root@localhost oldboy]# ls -li oldboyfile oldboyfile_hard_link
1445 -rw-r--r-- 2 root root 0 May 25 18:15 oldboyfile
1445 -rw-r--r-- 2 root root 0 May 25 18:15 oldboyfile_hard_link
[root@localhost oldboy]# ln oldboyfile oldboyfile_hard_link1
[root@localhost oldboy]# ls -li
total 0
1445 -rw-r--r-- 3 root root 0 May 25 18:15 oldboyfile
1445 -rw-r--r-- 3 root root 0 May 25 18:15 oldboyfile_hard_link
1445 -rw-r--r-- 3 root root 0 May 25 18:15 oldboyfile_hard_link1

学习笔记-第10天-命令合集9_数据_16

结论:

    1. 只要有一个硬链接数,数据就不会丢失。

    2. 把全部的硬链接删除,数据就丢失了。

[root@localhost oldboy]# echo "i am oldboy" >oldboyfile
[root@localhost oldboy]# cat oldboyfile
i am oldboy
[root@localhost oldboy]# cat oldboyfile_hard_link
i am oldboy
[root@localhost oldboy]# cat oldboyfile_hard_link1
i am oldboy

学习笔记-第10天-命令合集9_硬链接_17

5.硬链接知识小结:

1) 具有相同Inode节点号的多个文件互为硬链接文件,本质是相同文件不同文件名。

2) 删除硬链接文件或者删除源文件任意之-,文件实体并未被删除。只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。

3) 待所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收(养成删除及使用多套环境测试的好习惯)。

4) 硬链接文件就是文件的另一个入口(相当于超市的前门、后门)

5) 可以通过给文件设置硬链接文件,来防止重要文件被误删。

6) 通过执行命令”1n 源文件 硬链接文件”,即可完成创建硬链接。

7) 硬链接文件是普通文件,因此可以用rm命令删除。

8) 创硬链接只能针对文件,不能针对目录。

[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# ls /etc/hosts
/etc/hosts
[root@localhost ~]# ls /etc/hosts -li
67109833 -rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts
[root@localhost ~]# ln /etc/hosts a
[root@localhost ~]# ls /etc/hosts -li
67109833 -rw-r--r--. 2 root root 158 Jun  7  2013 /etc/hosts
[root@localhost ~]# rm -f /etc/hosts
[root@localhost ~]# cat a
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

学习笔记-第10天-命令合集9_文件系统_18

6.软连接:

1.什么是软链接?

软链接就是快捷方式,指向源文件的位置。

2.为什么需要软链接?作用

1)复杂的路径简单化。

[root@localhost ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 ~/oldboy

2)企业作用:编译安装的软件升级时候nginx web服务:

     安装目录: /application/nginx-1.19.1

     使用方面:/application/nginx    #简单方便,程序软件配置的都是这个。

     升级版本:/application/nginx-1.20.2    #正式使用。

     升级操作:

     rm  -f  /application/nginx

     ln  -s  /application/nginx-1.20.2  /application/nginx

[root@localhost ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 ~/oldboy
[root@localhost ~]# ls -l ~/oldboy 
lrwxrwxrwx 1 root root 41 May 29 23:23 /root/oldboy -> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# ls -l /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-r--r--. 1 root root 126 May  7 20:45 /etc/sysconfig/network-scripts/ifcfg-eth0

学习笔记-第10天-命令合集9_硬链接_197.软链接知识小结:

1) 软链接类似windows的快捷方式(可以通过readlink查看其指向)。

2) 软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。

3) 删除源文件,软链接文件依然存在,但是无法访问指向源文件路径内容了。链接失效的时候一般是白字红底闪烁提示。

4) 执行命令“1n -s 源文件 软链接文件”,即可完成创建软链接(目标不能存在)。

5) 软链接和源文件是不同类型的文件,也是不同的文件,Inode号也不相同。

6) 软链接文件的文件类型为字母(1),可以用rm命今删除。

7) 软链接文件不仅可以针对文件,更可以针对目录(企业中常用)。

企业面试:请描述Linux中软链接和硬链接的区别:

1)答分类: 在linux系统中,链接分两种 :一种被称为硬链接 (Hard Link),另一种被称为符号链接或软链接 (Symbolic Link)。

2)答概念:硬链接文件与源文件的Inode节点号相同,而软链接文件相当于Windows下面的快捷方式(Inode节点号与源文件不同)

3)答创建:默认不带参数情况下,ln命令创建的是硬链接,带-s参数的1n命令创建的是软链接,               【创建命令示例】

4)答特点:

a)不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。

b)软链接可以跨文件系统,硬链接不可以跨文件系统。

c)删除软链接文件,对源文件及硬链接文件无任何影响。

d)删除文件的硬链接文件,对源文件及软链接文件无任何影响。

e)删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

f)同时删除源文件及其硬链接文件,整个文件才会被"真正"的删除。

5)答案例:硬链接用处不多,可以用来对重要文件做快照防止误删,对目录建立软链接在工作中很常用,例如:安装软件会用nginx-1.10作为目录,安装完后设置软链接为nginx,即保持了版本号标识,又方便使用,以及后续软件升级。

8.Linux系统问价删除原理:

1)静态文件:

i_link=0,解释硬连接数为0,所有的硬链接都删除文件就被删除了。

2)动态文件:

i_count=0,进程引用计数为0,没有被进程调用(使用)的文件。

学习笔记-第10天-命令合集9_文件系统_20