day 13 文件属性+软硬连接+文件删除原理+通配符与特殊符号

|

Day13

思想教育:

优秀的运维习惯

1、内容尽量复制,减少错误

2、操作前备份,操作后检查

3、使用中记忆,多用快捷键

4、眼睛里一定不要放过输出的英文(可以用有道翻译)

5、永远不要重启linux

老男孩思想之如何解决拖延症?

1、把刀把交给别人

破釜沉舟,不留后路。

A. 告诉别人做不到,我就给你什么好处

B. 定制目标,然后告诉身边的人

C. 先把好处给对方,做到了再还给你。

2、塑造价值观

A. 正向价值观:多想做到结果后的好处。

B. 负面价值观

3、让你最在意的人逼你(对你好的人)

文件属性

第二列结尾的 .(点)是表示selinux的符号

1、 selinux****是什么?

安全规则,让linux系统更安全的一套规则。

这个规则太严格了,一般情况下都会关闭selinux。

自己开启防火墙啊,用其他手段来实现同样的安全目的。

2、怎么关闭selinux?

查看方法: getenforce

临时关闭:setenforce

[root@oldboyedu ~]# setenforce

usage: setenforce [ Enforcing | Permissive | 1 | 0 ]

[root@oldboyedu ~]# setenforce 0

[root@oldboyedu ~]# getenforce

Permissive

永久关闭:

vim /etc/selinux/config

[root@oldboyedu ~]# grep dis /etc/selinux/config

disabled - No SELinux policy is loaded.

SELINUX=disabled


image.png

Linux****里防火墙C6 iptables C7 firewalld

防火墙作用:防护计算机,防止被入侵。

查看防火墙状态:systemctl status firewalld.service

开启firewalld(C6 service iptables start 或者/etc/init.d/iptables start)

[root@oldboy~]# systemctl start firewalld.service

[root@oldboy~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: active (running) since Mon 2020-10-05 02:28:55 CST; 38s ago

Docs: man:firewalld(1)

Main PID: 8000 (firewalld)

CGroup: /system.slice/firewalld.service

└─8000 /usr/bin/python -Es /usr/sbin/firewalld --nofork ...

Oct 05 02:28:54 oldboy systemd[1]: Starting firewalld - dynamic fi....

Oct 05 02:28:55 oldboy systemd[1]: Started firewalld - dynamic fir....

Hint: Some lines were ellipsized, use -l to show in full.

让firewalld开机自启动

[root@oldboy~]# systemctl enable firewalld.service

Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.

Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.

开机自启动方式:

1、cat /etc/rc.local

2、systemctl enable firewalld.service


image.png

继续讲文件属性

第三列信息:硬链接数

33650863 -rw-r--r-- 1root root 0 Mar 7 2019 c.txt

1、什么是硬链接?

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

相当于一个文件的两个入口。

检查硬链接:[root@oldboy~]# ls -ldi+文件名

[root@oldboy~]# ls -ldi data

51862499 drwxr-xr-x 2 root root 71 Oct 1 12:19 data

硬链接的计算方法:

检查硬链接:

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

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

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

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

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

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

2、硬链接原理:
打个比方:你要到超市去,但超市有前后两个门,不管从哪个门进去,最终都会进入到你要找的超市中。


image.png

3、测试

创建硬链接:

ln 原文件 硬链接文件 _hard_link

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:01 oldboy.tar.gz

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

33631853 drwxr-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

b.目录硬链接

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

root@oldboyedu /data]# ln oldboy oldgirl

ln: ‘oldboy’: hard link not allowed for directory

老男孩的思考:

/etc/目录,对应一个分区

/home目录,还可能对应一个分区。

ln /etc/ /home/oldboy

作用:

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

软链接:

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

软链接也有inode,但没有block,它不需要。

实践

文件:

[root@oldboyedu /data]# !echo

echo "I am oldboy." >oldboy.txt

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

I am oldboy.

[root@oldboyedu /data]# ln -s oldboy.txt oldboy_soft_link

目录:创建目录软链接是工作中的重点

[root@oldboy/data]# mkdir oldboy

[root@oldboy/data]# ll

total 8

drwxr-xr-x 2 root root 6 Oct 5 03:13 oldboy

-rw-r--r-- 2 root root 12 Oct 5 03:10 oldboy_hard_link

lrwxrwxrwx 1 root root 10 Oct 5 03:12 oldboy_soft_link -> oldboy.txt

-rw-r--r-- 2 root root 12 Oct 5 03:10 oldboy.txt

[root@oldboy/data]# touch oldboy/test.txt

[root@oldboy/data]# ln -s oldboy oldboy_soft_link_dir

[root@oldboy/data]# ls oldboy_soft_link_dir

test.txt

[root@oldboy/data]# ls oldboy

test.txt

工作中为什么会使用软链接。

第一个用途:

安装软件:/application/nginx-1.10

过半年:/application/nginx-1.20

导致一个问题,工作中,开发等引用/application/nginx-1.10路径。

安装软件:/application/nginx-1.10===>/application/nginx(让开发用)

过半年: /application/nginx-1.20===>/application/nginx(让开发用)

第二个用途:

/etc/对应的分区要满了,没法放很多文件,但是程序还想通过/etc/目录访问文件。

此时,我们可以把文件放入/opt/oldboy下,然后做一个到/etc/oldboy的软链接。

[root@oldboyedu /data]# mkdir /opt/oldboy

[root@oldboyedu /data]# touch /opt/oldboy/{1..3}.txt

[root@oldboyedu /data]# ln -s /opt/oldboy/ /etc/oldboy

[root@oldboyedu /data]# ls /etc/oldboy

1.txt 2.txt 3.txt

[root@oldboyedu /data]# ll /opt/oldboy

total 0

-rw-r--r--. 1 root root 0 Oct 4 22:02 1.txt

-rw-r--r--. 1 root root 0 Oct 4 22:02 2.txt

-rw-r--r--. 1 root root 0 Oct 4 22:02 3.txt

必会企业面试题:软链接和硬链接的区别?(下一关考试必考)

  1. 答分类:在Linux系统中,链接分两种:一种被称为硬链接(hard link),另一种被称为符号链接或软链接(symbolic link)。

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

  3. 答创建:默认不带参数的情况下,ln命令创建的是硬链接,带-s参数的命令创建的是软链接。

  4. 答特点:

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

B. 软链接可以跨文件系统,硬链接不可以跨文件系统。

C. 删除软连接文件,对源文件及硬链接文件无影响。

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

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

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

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

Linux****文件删除原理

1、静态文件:没有进程或没有程序正在访问的文件

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

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

rm -f oldboy.txt oldboy_hard_link

执行完 其实文件也没删,关机停止运行。

a.系统定时清理没有文件名的inode。

b.磁盘检查会清理。

c.增加新文件时优先占用没有文件名的inode。

恢复的工具:debugfs,ext3grep等等。

亡羊补牢其实不可取的,违反运维的三大核心原则。

多备份,操作前备份,异服务器和异地备份。

流浪地球,人类备份。

课外知识:


image.png

2、动态文件:有程序或者进程访问的文件

删除:

A. i_link为0,所有硬链接删除。

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

3、实践文件删除原理:

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

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 -f nginx.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 -f nginx_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

工作中遇到过什么故障,怎么解决的!

把他变成你的。

Web****服务器磁盘满故障深入解析,地址为

http://oldboy.blog.51cto.com/2561410/612351

老师讲的就是你遇到的,你学习时遇到的就是你遇到的。

#####****重点****#####

1****、软硬连接区别。

2****、文件删除原理。

1****)掌握Linux****文件属性的各个列的含义(ls -lhi****结果)及对应知识概念。

2****)磁盘空间不足故障的多重判断和解决(面试常考)。

3****)请描述软链接和硬链接的特点及区别(面试常考)。

4****)请描述Linux****系统文件删除的原理(面试常考)。

(买个域名)

第10章 linux通配符与特殊符号知识应用实践

什么是通配符

1****、基本含义

image.png

通配符简单说就是键盘上的一些特殊字符,可以实现某些特殊的功能。

例如可以用*****来代表所有,来模糊搜索系统中的文件

2****、范围:通配符的试用范围是命令行中【普通命令】或脚本编程中

3****、

image.png

image.png
image.png

第一组 模糊匹配

[root@oldboyedu /data]# touch a.txt b.txt aa.txt test.txt
[root@oldboyedu /data]# ls
aa.txt a.txt b.txt test.txt

[root@oldboyedu /data]# ls ?.txt
a.txt b.txt
[root@oldboyedu /data]# ls ????.txt
test.txt
[root@oldboyedu /data]# ls ???.txt
ls: cannot access ???.txt: No such file or directory
[root@oldboyedu /data]# ls ??.txt
aa.txt

image.png

{ }****使用实践:

[root@oldboyedu ~]# a="oldboy"
[root@oldboyedu ~]# echo a is a teacher."
oldboy is a teacher.
[root@oldboyedu ~]# echo "a}is a teacher."
{oldboy}is a teacher.
[root@oldboyedu ~]# echo "${a}is a teacher."
oldboyis a teacher.

&&****和 | | 使用实践:

[root@oldboyedu ~]# pwd && echo oldboy

/root

oldboy

[root@oldboyedu ~]# pd && echo oldboy

-bash: pd: command not found

[root@oldboyedu ~]# pd || echo oldboy

-bash: pd: command not found

oldboy

[root@oldboyedu ~]# pwd || echo oldboy

/root

你可能感兴趣的:(day 13 文件属性+软硬连接+文件删除原理+通配符与特殊符号)