美文网首页
day 13 命令行模式特殊字符and 硬链接

day 13 命令行模式特殊字符and 硬链接

作者: Linux_淡忘 | 来源:发表于2019-03-18 16:37 被阅读0次

    Day 13

    作者:翟玉龙

    归档:课堂笔记

    2019/3/18

    快捷键:

    Ctrl  + 1    标题1

    Ctrl  + 2    标题2

    Ctrl  + 3    标题3

    Ctrl  + 4    实例

    Ctrl  + 5    程序代码

    Ctrl  + 6    正文

    格式说明:

    蓝色字体:注释

    黄色背景:重要

    绿色背景:注意

    老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结

    学无止境,老男孩教育成就你人生的起点!

    联系方式:

    网站运维QQ交流群:

    Linux 385168604架构师390642196

    Python 29215534大数据421358633

    官方网站:

    http://www.oldboyedu.com 

    目录

    学无止境,老男孩教育成就你人生的起点!... 1

    第1章 SELinux. 1

    1.1 安全规则让Linux系统更安全的一套规则... 1

    1.2 怎么关掉selinux. 1

    1.2.1 临时关闭... 1

    1.2.2 永久关闭... 1

    第2章 老男孩思想之优秀的运维思想... 1

    第3章 防火墙简介... 1

    第4章 硬链接... 2

    4.1 什么是硬连接?... 2

    第5章 通配符知识与实践... 3

    5.1 通配符... 3

    5.1.1 基本含意... 3

    通配符就是键盘上的一些特殊字符,实现某些特殊的功能... 3

    5.1.2 适用范围... 3

    [if !supportLists]第1章 [endif]SELinux

    [if !supportLists]1.1 [endif]安全规则让Linux系统更安全的一套规则

    但是这个规则太严格了,所以一般情况下都会关闭selinux

    [if !supportLists]1.2 [endif]怎么关掉selinux

    查看状态getenforce

    [if !supportLists]1.2.1 [endif]   临时关闭

           Setenforce  0

    [if !supportLists]1.2.2 [endif]   永久关闭

      /etc/selinux/config

    [if !supportLists]第2章 [endif]防火墙简介

    Linux 里的防火墙 C6 iptables   C7 firewalld

    作用:防护计算机 防止被入侵

    Systemctl  status firewalld.service

    开机自启动4

    Systemctl enable firewalld.service

    开机不启动即使

       Disable

    C6用法

         Chkconfig  iptables[if !vml]

    [endif]off

    [if !supportLists]第3章 [endif]硬链接

    [if !supportLists]3.1[endif]   什么是硬连接?

    具有相同inode 节点号的文件互为硬链接

    一个文件的两个入口。

    [root@oldboyedu~]# ls -ldi test test/.

    16964029drwxr-xr-x. 2 root root 4096 Oct  1 14:07test

    16964029drwxr-xr-x. 2 root root 4096 Oct  1 14:07test/.

    [root@oldboyedu/data]# ls -ldi oldboy

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy

    [root@oldboyedu/data]# ls -ldi oldboy oldboy/. oldboy/test{1..3}/..

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy/.

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy/test1/..

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy/test2/..

    33631853drwxr-xr-x. 5 root root 45 Oct  4 21:03oldboy/test3/..

    2.硬链接的原理 

    相同文件不同名字

    3  测试

    创建硬链接

     Ln   原文件  硬链接文件

    A  文件的硬链接a.文件硬链接

    [root@oldboyedu/data]# echo "I am oldboy." >oldboy.txt

    [root@oldboyedu/data]# cat oldboy.txt

    I am oldboy.

    [root@oldboyedu/data]# ln oldboy.t

    oldboy.tar.gz  oldboy.txt    

    [root@oldboyedu/data]# ln oldboy.txt oldboy_hard_link

    [root@oldboyedu/data]# ls -lirt

    total 20

    33631860 -rw-r--r--.1 root root   0 Oct  1 00:19 5.txt

    33631855-rw-r--r--. 1 root root   0 Oct  1 00:19 4.txt

    33631847-rw-r--r--. 1 root root   0 Oct  1 00:19 3.txt

    33631845-rw-r--r--. 1 root root   0 Oct  1 00:19 2.txt

    33631841-rw-r--r--. 1 root root   0 Oct  1 00:19 1.txt

    33656236-rw-r--r--. 1 root root  18 Oct  1 09:01 paichu.txt

    33631869-rw-r--r--. 1 root root 187 Oct  1 09:01oldboy.tar.gz

    33656257-rwxr-xr-x. 1 root root  14 Oct  1 11:07 test.txt

    33631853drwxr-xr-x. 5 root root  45 Oct  4 21:03 oldboy

    33656238-rw-r--r--. 2 root root  13 Oct  4 21:10 oldboy.txt

    33656238-rw-r--r--. 2 root root  13 Oct  4 21:10 oldboy_hard_link

    作用:

    1、备份,防止误删。

    [root@oldboyedu/data]# ln /etc/hostname /opt/hostname

    [root@oldboyedu/data]# cat /opt/hostname

    oldboyedu

    [root@oldboyedu/data]# rm -f /etc/hostname

    [root@oldboyedu/data]# cat /etc/hostname

    cat:/etc/hostname: No such file or directory

    [root@oldboyedu/data]# cat /opt/hostname

    oldboyedu

    [root@oldboyedu/data]# ln /opt/hostname /etc/hostname

    [root@oldboyedu/data]# cat /etc/hostname

    oldboyedu

    作用,备份 防止误删

    Linux里不支持人工对目录创建硬链接

    Linux 文件删除原理

    [if !vml]

    [endif]

    [if !supportLists]1.     [endif]静态文件,:没有进程或者程序正在访问的文件

    所有的硬链接数为0(i_link)  即所有硬链接都被干掉了,包括自身

    硬链接的数量的代表变量符号I_link

    Rm -f

    oldboy.txtt oldboy_hard_link 执行完,其实文件也没删

    A.系统会定时清理没有文件名的inode

         b.磁盘检查的时候会清理

         c.当增加新文件是会优先占用没有文件名的inode

    恢复工具:debugfs,ext3grep等等

    但是亡羊补牢实不可取的,直接违反运维的三大职责

    解决方法:多备份,操作前备份,异服务器备份和异地备份

    [if !supportLists]2.     [endif]动态文件:有程序或进程访问的文件

    [if !supportLists]A.    [endif]i_link为0

    [if !supportLists]B. [endif]i_count为0 。i_count是进程调用文件的数量(引用计数),所有进程调用都要停止取消。

    [if !supportLists]3.     [endif]实践文件删除原理。

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

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

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

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

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

    df -h                                        #<==检查挂载结果。

    实践:

    [root@oldboyedu /data]# cd /app/logs/

    [root@oldboyedu /app/logs]# touch nginx.log

    [root@oldboyedu /app/logs]# tail -fnginx.log

    [root@oldboyedu /app/logs]# cat/etc/services >>nginx.log

    cat: write error: No space left on device

    [root@oldboyedu /app/logs]# df -h

    Filesystem      Size Used Avail Use% Mounted on

    /dev/sda3        19G 1.9G   18G  10% /

    devtmpfs        980M  80K  980M   1% /dev

    tmpfs           991M     0 991M   0% /dev/shm

    tmpfs           991M 9.5M  981M   1% /run

    tmpfs           991M     0 991M   0% /sys/fs/cgroup

    /dev/sda1       253M 136M  118M  54% /boot

    tmpfs           199M     0 199M   0% /run/user/0

    /dev/loop0       73K  71K     0 100% /app/logs

    2

    明明删除了,结果还是100%。

    [root@oldboyedu /app/logs]# rm -f nginx.log

    [root@oldboyedu /app/logs]# lsof|grep nginx

    tail     7927         root    3r     REG                7,0     57344         12 /app/logs/nginx.log (deleted)

    [root@oldboyedu /app/logs]# df -h

    Filesystem      Size Used Avail Use% Mounted on

    /dev/sda3        19G 1.9G   18G  10% /

    devtmpfs        980M  80K  980M   1% /dev

    tmpfs           991M     0 991M   0% /dev/shm

    tmpfs           991M 9.5M  981M   1% /run

    tmpfs           991M     0 991M   0% /sys/fs/cgroup

    /dev/sda1       253M 136M  118M  54% /boot

    tmpfs           199M     0 199M   0% /run/user/0

    /dev/loop0       73K  71K     0 100% /app/logs

    重来:

    模拟进程读文件:

    [root@oldboyedu /app/logs]# touch nginx.log

    [root@oldboyedu /app/logs]# tail -fnginx.log

    ln nginx.log nginx_hard.log

    当前:

    i_link=2

    i_count=1

    模拟把文件变大,让分区满

    [root@oldboyedu /app/logs]# cat/etc/services >>nginx.log

    cat: write error: No space left on device

    [root@oldboyedu /app/logs]# df -h

    Filesystem      Size Used Avail Use% Mounted on

    /dev/sda3        19G 1.9G   18G  10% /

    devtmpfs        980M  80K  980M   1% /dev

    tmpfs           991M     0 991M   0% /dev/shm

    tmpfs           991M 9.5M  981M   1% /run

    tmpfs           991M     0 991M   0% /sys/fs/cgroup

    /dev/sda1       253M 136M  118M  54% /boot

    tmpfs          199M     0 199M   0% /run/user/0

    /dev/loop0       73K  71K     0 100% /app/logs

    分区满了:清理,删除。

    删除源文件

    [root@oldboyedu /app/logs]# rm -f nginx.log

    结果:

    i_link=1

    i_count=1

    ctrl+c 中断进程调用文件

    结果:

    i_link=1

    i_count=0

    删除硬链接文件

    [root@oldboyedu /app/logs]# rm -fnginx_hard.log

    结果:

    i_link=0

    i_count=0

    [root@oldboyedu /app/logs]# df -h

    Filesystem      Size Used Avail Use% Mounted on

    /dev/sda3        19G 1.9G   18G  10% /

    devtmpfs        980M  80K  980M   1% /dev

    tmpfs           991M     0 991M   0% /dev/shm

    tmpfs           991M 9.5M  981M   1% /run

    tmpfs           991M     0 991M   0% /sys/fs/cgroup

    /dev/sda1       253M 136M  118M  54% /boot

    tmpfs           199M     0 199M   0% /run/user/0

    /dev/loop0       73K  14K   54K  21% /app/logs

    软链接:

    本质是快捷方式 指向原文件实体,本身和原文件是不同的文件

    目录

    必会面试题:

    软链接和硬链接的区别?

                            第十章特殊符号

    [if !supportLists]第4章 [endif]通配符知识与实践

    [if !supportLists]4.1 [endif]通配符

    [if !supportLists]4.1.1 [endif]基本含意

    通配符就是键盘上的一些特殊字符,实现某些特殊的功能

    例如可以用*来代表所有模糊查找系统中的文件

    [if !supportLists]4.1.2 [endif]适用范围

    命令行中普通命令或者脚本编程中。

    [if !vml]

    [endif]

    相关文章

      网友评论

          本文标题:day 13 命令行模式特殊字符and 硬链接

          本文链接:https://www.haomeiwen.com/subject/gfrbmqtx.html