老男孩Linux云计算58期-day13-
第二列结尾的. 是标识selinux的符号
1、selinux是什么?
安全规则,让Linux系统更安全的一套规则。
这个规则太严格了,一般的情况下都会关闭selinux。
自己开启防火墙啊,用其他手段来实现同样的安全目的。
2、怎么关掉Selinux?
查看方法: getenforce
Enforcing
临时关掉: setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
setenforce 0
getenforce
Permissive
永久关闭:
vim /etc/selinux/config
grep dis /etc/selinux/config
# disabled - No SELinux policy is loaded.
SELINUX=disabled
Linux里防火墙C6 iptables C7 firewalld
作用:防护计算机,防止被入侵。
systemctl status firewalld.service
开启firewalld(C6 service iptables start 或者/etc/init.d/iptables start)
# 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 Sun 2020-10-04 20:48:49 CST; 1s ago
Docs: man:firewalld(1)
Main PID: 7003 (firewalld)
CGroup: /system.slice/firewalld.service
└─7003 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Oct 04 20:48:48 oldboyedu systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 04 20:48:49 oldboyedu systemd[1]: Started firewalld - dynamic firewall daemon.
让firewalld开机自启动: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.
C6用法:chkconfig iptables off
C7就是一个命令systemctl
自学能力:总结两个命令systemctl和chkconfig。
硬链接数
1、什么是硬链接?
具有相同inode节点号的文件互为硬链接。
一个文件的两个入口。
2、硬链接原理。
3、测试
创建硬链接:
ln 源文件 硬链接文件
a.文件硬链接
软链接:
本质是快捷方式,指向源文件实体,本身和源文件是不同的文件。
工作中为什么会使用软链接。
第一个用途:
安装软件:/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的软链接。
# mkdir /opt/oldboy
# touch /opt/oldboy/{1..3}.txt
# ln -s /opt/oldboy/ /etc/oldboy
# ls /etc/oldboy
1.txt 2.txt 3.txt
# 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
必会面试题:软链接和硬链接的区别?
Linux文件删除原理:
1、静态文件:没有进程或程序正在访问的文件。
所有的硬链接数为0(i_link),即所有硬链接都被干掉了,包括自身。
硬链接的数量的代表变量符号i_link
rm -f oldboy.txt oldboy_hard_link
执行完 其实文件也没删,关机停止运行。
a.系统定时清理没有文件名的inode。
b.磁盘检查会清理。
c.增加新文件时优先占用没有文件名的inode。
恢复的工具:debugfs,ext3grep等等。
亡羊补牢其实不可取的,违反运维的三大核心原则。
多备份,操作前备份,异服务器和异地备份。
流浪地球,人类备份。
光一秒30w公里
月地距离 38万公里
日地距离 1.5亿公里 8分钟
太阳系大小
第二近的恒星 4光年
地球 46亿年了。42亿前。
太阳处于中年 寿命70亿年。大到太阳吞噬地球。
银河系大小 10万光年
宇宙大小 可探测到的直径1000亿光年
2、动态文件:有程序或进程访问的文件
删除原理:
a.所有硬链接删除。i_link为0.
b..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 #<==检查挂载结果。
老男孩Linux云计算58期-day14-
3W1H:
1、什么是正则表达式?
作用和特殊字符一样。
正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。
开发者
假设"@"代表“I am”,"!"代表“oldboy”,
则执行echo "@!"的结果就是输出“I am oldboy”。
发明语言:
上了火星,发明火星语。
! 我喜欢你
@ 滚
2、提高效率,快速获取到想要的内容。
3、适用于三剑客命令 grep(egrep),sed,awk
以行为单位处理。
4、实践来讲解
易混淆事项
1、和通配符区别。
2、开发人员正则,一般是Perl兼容正则表达式。
3、Linux系统三剑客正则表达式******。
Linux三剑客
awk sed grep
sed
Sed是操作、过滤和转换文本内容的强大工具。
常用功能有对文件实现快速增删改查(增加、删除、修改、查询),
其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。
sed [选项] [sed内置命令字符] [文件]
选项:
-n 取消默认sed的输出,常与sed内置命令的p连用※
-i 直接修改文件内容,而不是输出到终端。
如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※
sed的内置命令字符说明
s 替换
g 全局global
p 打印print
d 删除delete
老男孩Linux云计算58期-day15-
一、cut 按列切割
cut -d指定分隔符“ ”-f指定那一列 文件
cut -c按字符去内容 -c1-6 查找1到6列的内容
二、Linux三剑客
awk sed grep
1、sed
Sed是操作、过滤和转换文本内容的强大工具。
常用功能有对文件实现快速增删改查(增加、删除、修改、查询),
其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。
sed [选项] [sed内置命令字符] [文件]
选项:
-n 取消默认sed的输出,常与sed内置命令的p连用※
-i 直接修改文件内容,而不是输出到终端。
如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※
sed的内置命令字符说明
s 替换
g 全局global
p 打印print
d 删除delete
2、awk是一门命令行操作也可以作为编程语言,处理字符串
特长是取列
语法awk 参数 条件 文件
参数:-F指定分隔符
$0整行 $1第1列 $NF最后一列 $(NF-1)倒数第二列 NR行号
[^r]非r ^[^r]以非r字符开头
老男孩Linux云计算58期-day16-
Linux基础权限是9个字符
分3组:
前三个字符是表示用户(属主)权限位 user(用户) u
中三个字符是表示用户组权限位 group(用户组) g
后三个字符是其它用户权限位 others(其他用户) o
同一组的三个字符权限也是有位置的:
r-- 第一个字符的位置读的权限位
第二个字符的位置写的权限位
第三个字符的位置是执行的权限位。
r 4
w 2
x 1
- 0
Linux权限有两种表现形式:
1、数字表示法 称为8进制权限
r 4
w 2
x 1
- 0
实际的权限表示就是将每3位相加即可。
rwxr-xr-x 755
rwx 7
r-x 5
r-x 5
2、字符表示法
rw-rw-r-x 代表的数字权限为665
--xr-x-wx 代表的数字权限为153
-wx--x--x 代表的数字权限为311
而以下数字权限表示的字符权限如下:
755 代表的字符权限为rwxr-xr-x
644 代表的字符权限为rw-r--r--
134 代表的字符权限为--x-wxr--
修改文件属性的用户和组
chown 用户.用户组 文件 这里的点可以用:替换。
chown 用户 文件
chown .用户组 文件 ====chgrp 用户组 文件
老男孩Linux云计算58期-day17
一、sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,
拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。
locate搜索内容,默认从updatedb对应的数据库中查找
updatedb 更新locate查找内容对应的数据库。
sgid基于目录的作用:
让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限
二、Linux系统定时任务:
1、什么是定时任务?
周期性的执行任务计划的软件,Linux定时任务的常用软件crond。
2、使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作。
例如:备份 都是0点以后,2点爬起来备份,4点以后睡觉。
需要写一个程序实现自动备份,然后让定时任务软件帮你执行。
闹钟。。。。可以追女朋友。。。
3、怎么用
(1)系统定时任务计划
1.不用管理员干预,系统自动执行。
2.也可以利用系统任务为管理员服务。
(2)用户定时任务计划
在Linux系统中,
cron是定时任务的软件名,
crond是服务进程名,真正实现定时任务服务。
crontab命令是用来设置定时任务规则的配置命令。
要想配置定时任务,首先启动crond服务。
systemctl start crond.service
systemctl stop crond.service
systemctl status crond.service
开启自启动:
systemctl disable crond.service
systemctl enable crond.service
三、crontab命令是用来设置定时任务规则的配置命令。
内容存放哪里了。定时任务内容存放的位置/var/spool/cron/
以当前用户名作为文件名
-l l列表 查看已经设置的定时任务*
-e edit 编辑定时任务*
-u user 查看特定用户下定时任务
root:
crontab -l == cat /var/spool/cron/root
crontab -e == vim /var/spool/cron/root
编写定时任务的语法:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * (command to be executed)
共六列:
第一列:分 minute (0 - 59)
第二列:时 hour (0 - 23)
第三列:日 day of month (1 - 31)
第四列:月 month (1 - 12) OR jan,feb,mar,apr ...
第五列:周 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
第六列:要执行的任务命令或程序
特殊符号:
* 表示的 每或每一 的意思
00 23 * * * cmd
- 连续区间 1-10
00 8-23 * * * cmd
, 列举 1,2,3,4,8
00 1,2,3,4,8 * * * cmd
/n n是数字。
n代表自然数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成
*/10 * * * * cmd