第三周课堂笔记

第三列:硬链接数
1、 什么是硬链接?
具有相同inode节点号的文件互为硬链接。
2、 硬链接的原理?
3、 测试
ln创建硬链接
作用:
1、 备份,防止误删。
目录的硬链接
不支持人工创建目录硬链接
软链接:
本质是快捷方式,指向源文件实体,本身和源文件是不同的文件。
工作中为什么使用软链接?
第二个用途:
/etc/对应的分区要满了,没法放很多文件
软链接和硬链接的区别?


第三周课堂笔记_第1张图片
image.png

Linux文件的删除原理:
1、 静态文件:没有进程或程序正在访问的文件。
所有的硬链接数为0(i link),即所有的硬链接都被干掉了,包括自身。
硬链接的数量的代表变量符号
rm -f 文件名 执行完 其实文件也没删。
a. 系统定时清理没有文件名的inode
b. 磁盘检查会清理.
c. 增加新文件时优先占用没有文件名的inode
恢复的工具:debugfs,ext3grep等等(亡羊补牢其实不可取的,违反运维的大核心原则)
多备份,操作前备份,异服务器和异地备份。
2、 动态文件:有程序或进程访问的文件
删除:
a. i_link为0
b. i_count为0 i_count是进程调用文件的数量(引用计数)所有进程调用都要停止
第10章 Linux通配符与特殊符号知识应用实践
1、 基本含义
通配符简单说就是键盘上的一些特殊字符,可以实现某些特殊的功能,
例如用*代表所有模糊搜索系统中的文件


第三周课堂笔记_第2张图片
image.png

第三周课堂笔记_第3张图片
image.png

第11章 Linux正则表达式与三剑客知识应用实践

1、什么 是正规表达式?

作用 和特殊字符一样;正规表达式是为处理大量的字符串及文本而定义的一套规则和方法。

2、为什么要用正规表达式?

提高效率,快速获取到想要的内容


第三周课堂笔记_第4张图片
image.png

适合于三剑客命令grep(egrep)、sed、 awk

4、Linux三剑客的正规表达式有什么特点?

易混淆事项
1、和通配字符区别
2、开发人员正规,一般是perl兼容正规表达式。
3、Linux系统三剑客正规表达式
环境准备:
export LC_ALL=C

5、sed:流编辑器(Linux三剑客之老二)*****

sed是操作、过滤和转换文本内容的强大工具。
常用功能有对文件实现快速增删改查(增加、删除、修改、查询),
其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。
sed [选项] [sed内置命令字符] [输入文件]
选项:
-n 取消默认sed的输出,常与sed内置命令的p连用
-i 直接修改文件内容,而不是输出到终端。
sed的内置命令字符
s 替换
g 全局(global)
p 打印(print)
d 删除 (delete)
问题1:输出oldboy.txt的第2-3行内容。
sed -n '2,3p' oldgirl.txt
问题2:过滤出含有oldboy字符串的行。
sed -n '/oldboy/p' oldgirl.txt
问题3:删除含有oldboy字符串的行。
sed '/oldboy/d' oldgirl.txt
问题4:将文件中的oldboy字符串全部替换为oldgirl。
sed 's#oldboy#oldgirl#g' oldgirl.txt
永久生效:sed -i 's#oldboy#oldgirl#g' oldgirl.txt
问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。
sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldgirl.txtsed:
在第二行插入多行文本sed '2i I teacher linux.i\n内容\n内容' oldgirl.txt
在第二行的下面一行插入文本:sed '2a I teacher linux ' oldgirl.txt
删除指定行:
sed -i '3d' oldboy.txt
sed -i '5,8d' oldboy.txt
取出Linux中执行ifconfig eth0 后对应的IP地址
ifconfig eth0|sed -n 2p|sed 's#^.inet ##g'|sed 's# netm.##g' 三剑客自身的特长 grep : 过滤查找内容。筛子 sed:取行,替换,删除,追加 awk:(三剑客之老大)取列 cut 按列切割 参数: -d 指定分隔符 -f指定列 列:1 第一列 0 整行
(NF-1) 倒数第二列

第12章Linux系统权限知识及应用实践

12.1 Linux基础权限,是rwxr-xr-x

分三组;
前三个字符是表示用户(属主)的权限位 user(用户)
中三个字符是表示用户组的权限位 group(用户组)
后个字符是表示其他人的权限位 others(其他用户)
同一组的三个字符权限也是有位置的:
r--第一个字符的位置读的权限位
第二个字符的位置写的权限位
第三个字符的位置是执行的权限位


第三周课堂笔记_第5张图片
image.png

第三周课堂笔记_第6张图片
image.png

1)可读r:表示具有读取、浏览文件内容(即读取文件实体block)的权限
2)可写w:表示具有新增、修改、删除文件内容的权限。
3)可执行x:表示具有执行文件的权限。
对可读r说明:
① 如果没有可读r配合,那么使用vi编辑文件时会提示无法编辑(但强制编辑),可以使用echo等命令进行重定向或追加;
② 删除文件或创建文件的权限是受父目录(上一级目录)的权限控制的(因为文件没有存放在Inode里,而是在上级目录的block里存放着的,若修改上级目录的block(删除文件本质)当然会受上级目录的Inode的权限控制),和文件本身的权限无关,因此文件本身的可写w权限和文件是否能被删除和改名无关。
对于可执行x,需要注意的事项:
① 首先文件的本身要能执行(命令或脚本)。
② 如果是普通用户,同时还需要具备可读r的权限才能执行文件。
③ 而root用户只要有可执行x的权限就能执行文件

1、 可读r:表示具有浏览目录下面文件及子目录内容的权限。
2、 可写w:表示具有增加、修改、删除目录内文件内容的权限,但是,如果没有可执行x的配合,即使有w权限,也无法删除或创建文件及子目录。
3、 可执行x:表示具有进入目录的权限。
设置及更改文件和目录权限的命令
Linux权限有两种表现形式
1、 数字表示法
r 4
w 2
x 1
“- ” 0
实际的权限表示就是将每3位相加即可
2、 字符表示法

chmod命令 修改文件权限
-R 递归修改
chown命令 改变文件用户和组
-R 递归修改
修改文件属性的用户和组
chown 用户.用户组 文件 这里的.可以用:替换
chown 用户 文件
chown .用户组 文件 ====chgrp 用户组 文件

12.2企业环境下文件和目录的安全核心知识

安全权限临界点:
文件不想被修改:644(默认) -rw-r—r—
目录的临界点:
目录不想被修改(删除移动创建)被执行(进入):755
网站文件被篡改解决方案:
1、 备份
2、 找到被修改的文件
3、 批量删除
4、 找到文件被篡改的来源,并进行优化调整。
5、 写总结 故障报告。
文件:

12.3 控制默认权限的东西 umask (临时修改umask值)

创建文件默认最大的权限666(-rw-rw-rw-)
基于文件:默认权限规则
从666计算
umask都是偶数 默认权限用减法
umask都是奇数 默认权限用减法 然后奇数位加1
基于目录:默认权限规则
从777计算
默认权限用减法

12.4 Linux系统特殊权限位知识

1、suid位:针对二进制命令的,给一个二进制命令
suid作用:
suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序是,拥有和root管理员一样的身份和权限
suid核心知识小结


第三周课堂笔记_第7张图片
image.png

sgid
2、sgid位:
sgid的作用就是让普通用户可以在执行某个设置了sgid位的命 令时,拥有和命令
3、sticky(粘滞位):


第三周课堂笔记_第8张图片
image.png

第13章 Linux系统定时任务Cron(d)服务应用实践,

13.1 Cron(d)介绍

13.1.1 什么是定时任务?

周期性的执行任务计划的软件,Linux定时任务的常用软件crond。

13.1.2 使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作。

备份 需要写一个程序实现自动备份,然后让定时任务软件帮你执行。

13.1.3 怎么用定时任务?

(1)系统定时任务计划
不用管理员干预,系统自动执行
也可以利用系统任务为管理员服务
(2)用户定时任务计划
在Linux系统中
cron是定时任务的软件名
crond是服务进程名,真正实现定时任务服务
crontab命令是用来设置定时任务的
要想配置定时任务,首先启动crond服务
systemctl start crond.service 启动
systemctl stop crond.service 关闭
systemctl status crond.service 检查
crontab命令
定时任务内容存放的位置/var/spool/cron/
-l 列表 查看已经设置的定时任务*
-e 编辑 编辑定时任务*
-u user 查看特点用户下的定时任务
crontab -l=cat /var/spool/cron/root
crontab -e=vim /var/spool/cron/root
编写定时任务的语法:
共六列:
第一列:分 (0-59)
第二列:时(0-23)
第三列:日(1-31)
第四列:月(1-12)
第五列:周(0-7)
第六列:要执行的任务命令或程序特殊符号:

  • 表示的 每或每一 的意思
  • 连续区间 1-10
    ,列举 1,2,3,4
    /n 每隔n单位的时间
    实践:
    1、 每分钟追加一次oldboy字符串到/tmp/log/oldboy.log
    a. 命令行执行成功。
    b. 配置定时任务crontab -e 编辑配置
    c. 检查
    2、 让服务器时间每5分钟和互联网时间做一次同步。
    3、 每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生成不同的备份包名。(用脚本文件进行设置定时任务错误率更低)
    mkdir /server/scripts -p #存放脚本的文件
    cd /server/scripts
    ① 命令行执行
    ② 尽量用脚本文件
    ③ 编辑定时任务

检查正式结果生产环境下的定时cron书写要领
要领1:为定时任务规则加必要的注释
要领2:所有的定时任务尽量都已脚本的形式执行
要领3:在执行的shell脚本前加上/bin/sh
要领4:定时任务中命令或脚本的结尾加》/dev/nill 2>&1
要领5:在指定用户下执行相关定时任务
要领6:在生产任务计划程序中不要随意打印输出信息
要领7:定时任务执行的脚本要存放到规范路径下
要领8:配置定时任务要规范操作过程,减少出错
要领9:定时任务脚本中程序命令及路径尽量用全路径
要领10:时间变量%号要用反斜线转义
要领11:若脚本中调用了系统环境变量,要重新定时

你可能感兴趣的:(第三周课堂笔记)